Skip to content

Commit a4f4c98

Browse files
author
Prachi Damle
committed
OrchestrationService: some changes for DeployVM
1 parent 992fa47 commit a4f4c98

14 files changed

Lines changed: 5413 additions & 3595 deletions

File tree

api/src/com/cloud/vm/VirtualMachine.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,8 @@ public static boolean isSystemVM(VirtualMachine.Type vmtype) {
286286
public Date getCreated();
287287

288288
public long getServiceOfferingId();
289+
290+
public long getDiskOfferingId();
289291

290292
Type getType();
291293

core/src/com/cloud/vm/VMInstanceVO.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,4 +475,10 @@ public void setServiceOfferingId(long serviceOfferingId) {
475475
this.serviceOfferingId = serviceOfferingId;
476476
}
477477

478+
@Override
479+
public long getDiskOfferingId() {
480+
// TODO Auto-generated method stub
481+
return 0;
482+
}
483+
478484
}

engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
@Path("vm/{id}")
4141
@Produces({"application/json", "application/xml"})
4242
@XmlRootElement(name="vm")
43-
public interface VirtualMachineEntity extends VirtualMachine, CloudStackEntity {
43+
public interface VirtualMachineEntity extends CloudStackEntity {
4444

4545
/**
4646
* @return List of uuids for volumes attached to this virtual machine.

engine/api/src/org/apache/cloudstack/engine/service/api/OrchestrationService.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
3333
import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity;
3434

35+
import com.cloud.deploy.DeploymentPlan;
36+
import com.cloud.exception.InsufficientCapacityException;
3537
import com.cloud.hypervisor.Hypervisor;
3638

3739
@Path("orchestration")
@@ -61,13 +63,16 @@ VirtualMachineEntity createVirtualMachine(
6163
@QueryParam("template-id") String templateId,
6264
@QueryParam("host-name") String hostName,
6365
@QueryParam("display-name") String displayName,
66+
@QueryParam("hypervisor") String hypervisor,
6467
@QueryParam("cpu") int cpu,
6568
@QueryParam("speed") int speed,
66-
@QueryParam("ram") long memory,
69+
@QueryParam("ram") long memory,
70+
@QueryParam("disk-size") Long diskSize,
6771
@QueryParam("compute-tags") List<String> computeTags,
6872
@QueryParam("root-disk-tags") List<String> rootDiskTags,
69-
@QueryParam("networks") List<String> networks
70-
);
73+
@QueryParam("networks") List<String> networks,
74+
@QueryParam("deploymentplan") DeploymentPlan plan
75+
) throws InsufficientCapacityException;
7176

7277
@POST
7378
VirtualMachineEntity createVirtualMachineFromScratch(
@@ -81,9 +86,12 @@ VirtualMachineEntity createVirtualMachineFromScratch(
8186
@QueryParam("cpu") int cpu,
8287
@QueryParam("speed") int speed,
8388
@QueryParam("ram") long memory,
89+
@QueryParam("disk-size") Long diskSize,
8490
@QueryParam("compute-tags") List<String> computeTags,
8591
@QueryParam("root-disk-tags") List<String> rootDiskTags,
86-
@QueryParam("networks") List<String> networks);
92+
@QueryParam("networks") List<String> networks,
93+
@QueryParam("deploymentplan") DeploymentPlan plan
94+
) throws InsufficientCapacityException;
8795

8896
@POST
8997
NetworkEntity createNetwork(String id, String name, String domainName, String cidr, String gateway);

engine/orchestration/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@
4848
<artifactId>cloud-utils</artifactId>
4949
<version>${project.version}</version>
5050
</dependency>
51+
<dependency>
52+
<groupId>org.apache.cloudstack</groupId>
53+
<artifactId>cloud-server</artifactId>
54+
<version>${project.version}</version>
55+
</dependency>
5156
<dependency>
5257
<groupId>org.mockito</groupId>
5358
<artifactId>mockito-all</artifactId>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.apache.cloudstack.engine.cloud.entity.api;
2+
3+
import org.apache.cloudstack.engine.cloud.entity.api.db.VMEntityVO;
4+
5+
public interface VMEntityManager {
6+
7+
VMEntityVO loadVirtualMachine(String vmId);
8+
9+
void saveVirtualMachine(VMEntityVO vmInstanceVO);
10+
}
Lines changed: 223 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
package org.apache.cloudstack.engine.cloud.entity.api;
2+
3+
import java.lang.reflect.Method;
4+
import java.util.Date;
5+
import java.util.List;
6+
import java.util.Map;
7+
8+
9+
10+
import org.apache.cloudstack.engine.cloud.entity.api.db.VMEntityVO;
11+
import com.cloud.deploy.DeployDestination;
12+
import com.cloud.deploy.DeploymentPlanner.ExcludeList;
13+
14+
public class VirtualMachineEntityImpl implements VirtualMachineEntity {
15+
16+
private VMEntityManager manager;
17+
18+
private VMEntityVO vmEntityVO;
19+
20+
public VirtualMachineEntityImpl(String vmId, VMEntityManager manager) {
21+
this.manager = manager;
22+
this.vmEntityVO = this.manager.loadVirtualMachine(vmId);
23+
}
24+
25+
public VirtualMachineEntityImpl(String vmId, String owner, String hostName, String displayName, int cpu, int speed, long memory, List<String> computeTags, List<String> rootDiskTags, List<String> networks, VMEntityManager manager) {
26+
this(vmId, manager);
27+
this.vmEntityVO.setOwner(owner);
28+
this.vmEntityVO.setHostname(hostName);
29+
this.vmEntityVO.setDisplayname(displayName);
30+
this.vmEntityVO.setSpeed(speed);
31+
this.vmEntityVO.setComputeTags(computeTags);
32+
this.vmEntityVO.setRootDiskTags(rootDiskTags);
33+
this.vmEntityVO.setNetworkIds(networks);
34+
35+
manager.saveVirtualMachine(vmEntityVO);
36+
}
37+
38+
@Override
39+
public String getUuid() {
40+
return vmEntityVO.getUuid();
41+
}
42+
43+
@Override
44+
public long getId() {
45+
return vmEntityVO.getId();
46+
}
47+
48+
@Override
49+
public String getCurrentState() {
50+
// TODO Auto-generated method stub
51+
return null;
52+
}
53+
54+
@Override
55+
public String getDesiredState() {
56+
// TODO Auto-generated method stub
57+
return null;
58+
}
59+
60+
@Override
61+
public Date getCreatedTime() {
62+
return vmEntityVO.getCreated();
63+
}
64+
65+
@Override
66+
public Date getLastUpdatedTime() {
67+
return vmEntityVO.getUpdateTime();
68+
}
69+
70+
@Override
71+
public String getOwner() {
72+
// TODO Auto-generated method stub
73+
return null;
74+
}
75+
76+
@Override
77+
public Map<String, String> getDetails() {
78+
return vmEntityVO.getDetails();
79+
}
80+
81+
@Override
82+
public void addDetail(String name, String value) {
83+
vmEntityVO.setDetail(name, value);
84+
}
85+
86+
@Override
87+
public void delDetail(String name, String value) {
88+
// TODO Auto-generated method stub
89+
}
90+
91+
@Override
92+
public void updateDetail(String name, String value) {
93+
// TODO Auto-generated method stub
94+
}
95+
96+
@Override
97+
public List<Method> getApplicableActions() {
98+
// TODO Auto-generated method stub
99+
return null;
100+
}
101+
102+
@Override
103+
public List<String> listVolumeIds() {
104+
// TODO Auto-generated method stub
105+
return null;
106+
}
107+
108+
@Override
109+
public List<VolumeEntity> listVolumes() {
110+
// TODO Auto-generated method stub
111+
return null;
112+
}
113+
114+
@Override
115+
public List<String> listNicUuids() {
116+
// TODO Auto-generated method stub
117+
return null;
118+
}
119+
120+
@Override
121+
public List<NicEntity> listNics() {
122+
// TODO Auto-generated method stub
123+
return null;
124+
}
125+
126+
@Override
127+
public TemplateEntity getTemplate() {
128+
// TODO Auto-generated method stub
129+
return null;
130+
}
131+
132+
@Override
133+
public List<String> listTags() {
134+
// TODO Auto-generated method stub
135+
return null;
136+
}
137+
138+
@Override
139+
public void addTag() {
140+
// TODO Auto-generated method stub
141+
142+
}
143+
144+
@Override
145+
public void delTag() {
146+
// TODO Auto-generated method stub
147+
148+
}
149+
150+
@Override
151+
public String reserve(String plannerToUse, DeployDestination dest,
152+
ExcludeList exclude) {
153+
// TODO Auto-generated method stub
154+
return null;
155+
}
156+
157+
@Override
158+
public void migrateTo(String reservationId) {
159+
// TODO Auto-generated method stub
160+
161+
}
162+
163+
@Override
164+
public void deploy(String reservationId) {
165+
// TODO Auto-generated method stub
166+
167+
}
168+
169+
@Override
170+
public void stop() {
171+
// TODO Auto-generated method stub
172+
173+
}
174+
175+
@Override
176+
public void cleanup() {
177+
// TODO Auto-generated method stub
178+
179+
}
180+
181+
@Override
182+
public void destroy() {
183+
// TODO Auto-generated method stub
184+
185+
}
186+
187+
@Override
188+
public VirtualMachineEntity duplicate(String externalId) {
189+
// TODO Auto-generated method stub
190+
return null;
191+
}
192+
193+
@Override
194+
public SnapshotEntity takeSnapshotOf() {
195+
// TODO Auto-generated method stub
196+
return null;
197+
}
198+
199+
@Override
200+
public void attach(VolumeEntity volume, short deviceId) {
201+
// TODO Auto-generated method stub
202+
203+
}
204+
205+
@Override
206+
public void detach(VolumeEntity volume) {
207+
// TODO Auto-generated method stub
208+
209+
}
210+
211+
@Override
212+
public void connectTo(NetworkEntity network, short nicId) {
213+
// TODO Auto-generated method stub
214+
215+
}
216+
217+
@Override
218+
public void disconnectFrom(NetworkEntity netowrk, short nicId) {
219+
// TODO Auto-generated method stub
220+
221+
}
222+
223+
}

0 commit comments

Comments
 (0)