diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index 88b3b380b5f..45153d82469 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -33,6 +33,17 @@
cloud-api
${project.version}
+
+ org.apache.cxf
+ cxf-bundle-jaxrs
+ 2.7.0
+
+
+ org.eclipse.jetty
+ jetty-server
+
+
+
install
diff --git a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java
index ad44f19312c..8fb3896f569 100755
--- a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java
+++ b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java
@@ -20,6 +20,12 @@ package org.apache.cloudstack.engine.cloud.entity.api;
import java.util.List;
+import javax.ws.rs.BeanParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.xml.bind.annotation.XmlRootElement;
+
import org.apache.cloudstack.engine.entity.api.CloudStackEntity;
import com.cloud.deploy.DeployDestination;
@@ -31,12 +37,16 @@ import com.cloud.vm.VirtualMachine;
* Platform.
*
*/
+@Path("vm/{id}")
+@Produces({"application/json", "application/xml"})
+@XmlRootElement(name="vm")
public interface VirtualMachineEntity extends VirtualMachine, CloudStackEntity {
/**
* @return List of uuids for volumes attached to this virtual machine.
*/
- List listVolumeUuids();
+ @GET
+ List listVolumeIds();
/**
* @return List of volumes attached to this virtual machine.
@@ -74,7 +84,7 @@ public interface VirtualMachineEntity extends VirtualMachine, CloudStackEntity {
* @param exclude list of areas to exclude
* @return a reservation id
*/
- String reserve(String plannerToUse, DeployDestination dest, ExcludeList exclude);
+ String reserve(String plannerToUse, @BeanParam DeployDestination dest, ExcludeList exclude);
/**
* Migrate this VM to a certain destination.
diff --git a/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/DataCenterResourceEntity.java b/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/DataCenterResourceEntity.java
index 75faed76abb..6752abe1233 100755
--- a/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/DataCenterResourceEntity.java
+++ b/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/DataCenterResourceEntity.java
@@ -18,6 +18,8 @@
*/
package org.apache.cloudstack.engine.datacenter.entity.api;
+import javax.ws.rs.POST;
+
import org.apache.cloudstack.engine.entity.api.CloudStackEntity;
import com.cloud.utils.fsm.StateMachine2;
@@ -60,24 +62,29 @@ public interface DataCenterResourceEntity extends CloudStackEntity, StateObject<
}
}
+
/**
* Prepare the resource to take new on new demands.
*/
+ @POST
boolean enable();
/**
* Disables the resource. Cleanup. Prepare for the resource to be removed.
*/
+ @POST
boolean disable();
/**
* Do not use the resource for new demands.
*/
+ @POST
boolean deactivate();
/**
* Reactivates a deactivated resource.
*/
+ @POST
boolean reactivate();
}
diff --git a/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntity.java b/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntity.java
index 587e40b31cb..577323c2a4e 100755
--- a/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntity.java
+++ b/engine/api/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntity.java
@@ -20,11 +20,16 @@ package org.apache.cloudstack.engine.datacenter.entity.api;
import java.util.List;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+
import com.cloud.dc.DataCenter;
/**
* Describes a zone and operations that can be done in a zone.
*/
+@Path("zone/{zone-id}")
public interface ZoneEntity extends DataCenterResourceEntity, DataCenter {
- List listPods();
+ @GET
+ List listPods();
}
diff --git a/engine/api/src/org/apache/cloudstack/engine/entity/api/CloudStackEntity.java b/engine/api/src/org/apache/cloudstack/engine/entity/api/CloudStackEntity.java
index ebda6a26d97..3b19cca3000 100755
--- a/engine/api/src/org/apache/cloudstack/engine/entity/api/CloudStackEntity.java
+++ b/engine/api/src/org/apache/cloudstack/engine/entity/api/CloudStackEntity.java
@@ -23,6 +23,9 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
+import javax.ws.rs.GET;
+import javax.ws.rs.QueryParam;
+
/**
* All entities returned by the Cloud Orchestration Platform must implement
* this interface. CloudValueEntity is an immutable representation of
@@ -36,6 +39,7 @@ public interface CloudStackEntity {
/**
* @return the uuid of the object.
*/
+ @GET
String getUuid();
/**
@@ -43,40 +47,41 @@ public interface CloudStackEntity {
*/
long getId();
- /**
- * @return external id set by the caller
- */
- String getExternalId();
-
/**
* @return current state for the entity
*/
+ @GET
String getCurrentState();
/**
* @return desired state for the entity
*/
+ @GET
String getDesiredState();
/**
* Get the time the entity was created
*/
+ @GET
Date getCreatedTime();
/**
* Get the time the entity was last updated
*/
+ @GET
Date getLastUpdatedTime();
/**
* @return reference to the owner of this entity
*/
+ @GET
String getOwner();
/**
* @return details stored for this entity when created.
*/
- Map getDetails(String source);
+ Map getDetails(
+ @QueryParam("source") String source);
/**
* @return a list of sources that have added to the details.
diff --git a/engine/api/src/org/apache/cloudstack/engine/service/api/EntityService.java b/engine/api/src/org/apache/cloudstack/engine/service/api/EntityService.java
index 44c9b5cd2f1..2743ab8523a 100755
--- a/engine/api/src/org/apache/cloudstack/engine/service/api/EntityService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/service/api/EntityService.java
@@ -20,6 +20,8 @@ package org.apache.cloudstack.engine.service.api;
import java.util.List;
+import javax.ws.rs.Path;
+
import com.cloud.network.Network;
import com.cloud.storage.Volume;
import com.cloud.vm.VirtualMachine;
@@ -28,6 +30,7 @@ import com.cloud.vm.VirtualMachine;
* Service to retrieve CloudStack entities
* very likely to change
*/
+@Path("resources")
public interface EntityService {
List listVirtualMachines();
List listVolumes();
diff --git a/engine/api/src/org/apache/cloudstack/engine/service/api/OrchestrationService.java b/engine/api/src/org/apache/cloudstack/engine/service/api/OrchestrationService.java
index 2dc0e4c67d5..0bb256da726 100755
--- a/engine/api/src/org/apache/cloudstack/engine/service/api/OrchestrationService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/service/api/OrchestrationService.java
@@ -20,7 +20,12 @@ package org.apache.cloudstack.engine.service.api;
import java.net.URL;
import java.util.List;
-import java.util.Map;
+
+import javax.ws.rs.DELETE;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import org.apache.cloudstack.engine.cloud.entity.api.NetworkEntity;
import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
@@ -29,56 +34,68 @@ import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity;
import com.cloud.hypervisor.Hypervisor;
+@Path("orchestration")
+@Produces({"application/json", "application/xml"})
public interface OrchestrationService {
/**
* creates a new virtual machine
*
- * @param uuid externally unique name to reference the virtual machine
+ * @param id externally unique name to reference the virtual machine
+ * @param owner owner reference
* @param template reference to the template
* @param hostName name of the host
+ * @param displayName name to look at
* @param cpu # of cpu cores
- * @param speed speed of the cpu core
+ * @param speed speed of the cpu core in MHZ
* @param memory memory to allocate in bytes
- * @param networks networks that this VM belongs in
- * @param rootDiskTags tags for the root disk
* @param computeTags tags for the compute
- * @param details extra details to store for the VM
- * @return VirtualMachine
+ * @param rootDiskTags tags for the root disk
+ * @param networks networks that this VM should join
+ * @return VirtualMachineEntity
*/
- VirtualMachineEntity createVirtualMachine(String name,
- String template,
- String hostName,
- int cpu,
- int speed,
- long memory,
- List networks,
- List rootDiskTags,
- List computeTags,
- Map details,
- String owner);
+ @POST
+ VirtualMachineEntity createVirtualMachine(
+ @QueryParam("id") String id,
+ @QueryParam("owner") String owner,
+ @QueryParam("template-id") String templateId,
+ @QueryParam("host-name") String hostName,
+ @QueryParam("display-name") String displayName,
+ @QueryParam("cpu") int cpu,
+ @QueryParam("speed") int speed,
+ @QueryParam("ram") long memory,
+ @QueryParam("compute-tags") List computeTags,
+ @QueryParam("root-disk-tags") List rootDiskTags,
+ @QueryParam("networks") List networks
+ );
- VirtualMachineEntity createVirtualMachineFromScratch(String uuid,
- String iso,
- String os,
- String hypervisor,
- String hostName,
- int cpu,
- int speed,
- long memory,
- List networks,
- List computeTags,
- Map details,
- String owner);
+ @POST
+ VirtualMachineEntity createVirtualMachineFromScratch(
+ @QueryParam("id") String id,
+ @QueryParam("owner") String owner,
+ @QueryParam("iso-id") String isoId,
+ @QueryParam("host-name") String hostName,
+ @QueryParam("display-name") String displayName,
+ @QueryParam("hypervisor") String hypervisor,
+ @QueryParam("os") String os,
+ @QueryParam("cpu") int cpu,
+ @QueryParam("speed") int speed,
+ @QueryParam("ram") long memory,
+ @QueryParam("compute-tags") List computeTags,
+ @QueryParam("root-disk-tags") List rootDiskTags,
+ @QueryParam("networks") List networks);
- NetworkEntity createNetwork(String externaId, String name, String cidr, String gateway);
+ @POST
+ NetworkEntity createNetwork(String id, String name, String domainName, String cidr, String gateway);
+ @DELETE
void destroyNetwork(String networkUuid);
+ @POST
VolumeEntity createVolume();
+ @DELETE
void destroyVolume(String volumeEntity);
+ @POST
TemplateEntity registerTemplate(String name, URL path, String os, Hypervisor hypervisor);
-
-
}
diff --git a/engine/api/src/org/apache/cloudstack/engine/service/api/ProvisioningService.java b/engine/api/src/org/apache/cloudstack/engine/service/api/ProvisioningService.java
index 8f11273534f..a8cd5d2f359 100755
--- a/engine/api/src/org/apache/cloudstack/engine/service/api/ProvisioningService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/service/api/ProvisioningService.java
@@ -21,9 +21,17 @@ package org.apache.cloudstack.engine.service.api;
import java.util.List;
import java.util.Map;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.apache.cloudstack.engine.datacenter.entity.api.ClusterEntity;
+import org.apache.cloudstack.engine.datacenter.entity.api.PodEntity;
+import org.apache.cloudstack.engine.datacenter.entity.api.StorageEntity;
import org.apache.cloudstack.engine.datacenter.entity.api.ZoneEntity;
-import com.cloud.dc.DataCenter;
import com.cloud.dc.Pod;
import com.cloud.host.Host;
import com.cloud.host.Status;
@@ -34,32 +42,56 @@ import com.cloud.storage.StoragePool;
* ProvisioningService registers and deregisters physical and virtual
* resources that the management server can use.
*/
+@Path("/provision")
+@Produces({"application/json", "application/xml"})
public interface ProvisioningService {
- String registerStorage(String name, List tags, Map details);
+ @POST
+ StorageEntity registerStorage(String name, List tags, Map details);
+
+ @POST
ZoneEntity registerZone(String name, List tags, Map details);
- String registerPod(String name, List tags, Map details);
- String registerCluster(String name, List tags, Map details);
+
+ @POST
+ PodEntity registerPod(String name, List tags, Map details);
+
+ @POST
+ ClusterEntity registerCluster(String name, List tags, Map details);
+
+ @POST
String registerHost(String name, List tags, Map details);
-
-
+ @DELETE
void deregisterStorage(String uuid);
+
+ @DELETE
void deregisterZone();
+
+ @DELETE
void deregisterPod();
+
+ @DELETE
void deregisterCluster();
+
+ @DELETE
void deregisterHost();
void changeState(String type, String entity, Status state);
+ @GET
+ @Path("/hosts")
List listHosts();
+ @GET
+ @Path("/pods")
List listPods();
- List listZones();
-
-
+ @GET
+ @Path("/zones")
+ List listZones();
+ @GET
+ @Path("/storages")
List listStorage();
}
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntityImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntityImpl.java
new file mode 100644
index 00000000000..cd62155b7da
--- /dev/null
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/ZoneEntityImpl.java
@@ -0,0 +1,294 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cloudstack.engine.datacenter.entity.api;
+
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+@Path("/zone/{id}")
+public class ZoneEntityImpl implements ZoneEntity {
+
+ @Override
+ @POST
+ public boolean enable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ @POST
+ public boolean disable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ @POST
+ public boolean deactivate() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ @POST
+ public boolean reactivate() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ @GET
+ public String getUuid() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public long getId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ @GET
+ public String getCurrentState() {
+ // TODO Auto-generated method stub
+ return "state";
+ }
+
+ @Override
+ @GET
+ public String getDesiredState() {
+ // TODO Auto-generated method stub
+ return "desired_state";
+ }
+
+ @Override
+ @GET
+ public Date getCreatedTime() {
+ // TODO Auto-generated method stub
+ return new Date();
+ }
+
+ @Override
+ @GET
+ public Date getLastUpdatedTime() {
+ // TODO Auto-generated method stub
+ return new Date();
+ }
+
+ @Override
+ @GET
+ public String getOwner() {
+ // TODO Auto-generated method stub
+ return "owner";
+ }
+
+ @Override
+ public Map getDetails(String source) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List getDetailSources() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void addDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void delDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void updateDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public List getApplicableActions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public State getState() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDns1() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDns2() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getGuestNetworkCidr() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Long getDomainId() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDomain() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public NetworkType getNetworkType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getInternalDns1() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getInternalDns2() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDnsProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getGatewayProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getFirewallProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDhcpProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getLoadBalancerProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getUserDataProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getVpnProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean isSecurityGroupEnabled() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Map getDetails() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setDetails(Map details) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public AllocationState getAllocationState() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getZoneToken() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean isLocalStorageEnabled() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public List listPods() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java
new file mode 100644
index 00000000000..d3c0e112e88
--- /dev/null
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cloudstack.engine.service.api;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.apache.cloudstack.engine.datacenter.entity.api.ClusterEntity;
+import org.apache.cloudstack.engine.datacenter.entity.api.PodEntity;
+import org.apache.cloudstack.engine.datacenter.entity.api.StorageEntity;
+import org.apache.cloudstack.engine.datacenter.entity.api.ZoneEntity;
+import org.springframework.stereotype.Service;
+
+import com.cloud.dc.Pod;
+import com.cloud.host.Host;
+import com.cloud.host.Status;
+import com.cloud.storage.StoragePool;
+
+@Service("provisioningService")
+@Path("/provisioning")
+public class ProvisioningServiceImpl implements ProvisioningService {
+
+ @Override
+ public StorageEntity registerStorage(String name, List tags, Map details) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ZoneEntity registerZone(String name, List tags, Map details) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PodEntity registerPod(String name, List tags, Map details) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ClusterEntity registerCluster(String name, List tags, Map details) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String registerHost(String name, List tags, Map details) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void deregisterStorage(String uuid) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void deregisterZone() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void deregisterPod() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void deregisterCluster() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void deregisterHost() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void changeState(String type, String entity, Status state) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public List listHosts() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List listPods() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ @GET
+ @Path("/zones")
+ @Produces("text/plain")
+ public List listZones() {
+ List zones = new ArrayList();
+ // TODO Auto-generated method stub
+ return zones;
+ }
+
+ @Override
+ public List listStorage() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/engine/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
index 13fe88b27dc..36784c5d934 100755
--- a/engine/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
@@ -34,11 +34,7 @@ import com.cloud.hypervisor.Hypervisor;
public class CloudOrchestrator implements OrchestrationService {
- public VirtualMachineEntity create(String name, String template, String hostName, int cpu, int speed, long memory, List networks, List rootDiskTags, List computeTags,
- Map details, String owner) {
- // TODO Auto-generated method stub
- return null;
- }
+
public VirtualMachineEntity createFromScratch(String uuid, String iso, String os, String hypervisor, String hostName, int cpu, int speed, long memory, List networks, List computeTags,
Map details, String owner) {
@@ -82,26 +78,6 @@ public class CloudOrchestrator implements OrchestrationService {
return null;
}
- @Override
- public VirtualMachineEntity createVirtualMachine(String name, String template, String hostName, int cpu, int speed, long memory, List networks, List rootDiskTags, List computeTags,
- Map details, String owner) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public VirtualMachineEntity createVirtualMachineFromScratch(String uuid, String iso, String os, String hypervisor, String hostName, int cpu, int speed, long memory, List networks, List computeTags,
- Map details, String owner) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public NetworkEntity createNetwork(String externaId, String name, String cidr, String gateway) {
- // TODO Auto-generated method stub
- return null;
- }
-
@Override
public void destroyNetwork(String networkUuid) {
// TODO Auto-generated method stub
@@ -114,4 +90,33 @@ public class CloudOrchestrator implements OrchestrationService {
}
+ @Override
+ public VirtualMachineEntity createVirtualMachine(
+ String id,
+ String owner,
+ String templateId,
+ String hostName,
+ String displayName,
+ int cpu,
+ int speed,
+ long memory,
+ List computeTags,
+ List rootDiskTags,
+ List networks) {
+ return null;
+ }
+
+ @Override
+ public VirtualMachineEntity createVirtualMachineFromScratch(String id, String owner, String isoId, String hostName, String displayName, String hypervisor, String os, int cpu, int speed, long memory,
+ List computeTags, List rootDiskTags, List networks) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public NetworkEntity createNetwork(String id, String name, String domainName, String cidr, String gateway) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff --git a/engine/service/pom.xml b/engine/service/pom.xml
index 0f9e0da5336..c39f0e76133 100644
--- a/engine/service/pom.xml
+++ b/engine/service/pom.xml
@@ -1,18 +1,17 @@
-
+
4.0.0
org.apache.cloudstack
cloud-engine
4.1.0-SNAPSHOT
- org.apache.cloudstack
cloud-engine-service
- 4.1.0-SNAPSHOT
war
- service Maven Webapp
- http://maven.apache.org
+ CloudStack Cloud-Engine Service
+ http://www.cloudstack.org
junit
@@ -55,10 +54,49 @@
cloud-engine-compute
${project.version}
+
+ org.apache.cxf
+ cxf-bundle-jaxrs
+ 2.7.0
+
+
+ org.eclipse.jetty
+ jetty-server
+
+
+
+
+ org.springframework
+ spring-context
+ 3.1.2.RELEASE
+
+
+ org.springframework
+ spring-web
+ 3.1.2.RELEASE
+
engine
- src
- test
+
+
+ org.mortbay.jetty
+ jetty-maven-plugin
+ 8.1.7.v20120910
+
+ 10
+
+ /engine
+
+
+
+ 1736
+ 60000
+
+
+
+
+
diff --git a/engine/service/src/main/java/org/apache/cloudstack/test/TimeService.java b/engine/service/src/main/java/org/apache/cloudstack/test/TimeService.java
new file mode 100755
index 00000000000..817db59afe1
--- /dev/null
+++ b/engine/service/src/main/java/org/apache/cloudstack/test/TimeService.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cloudstack.test;
+
+import java.util.Calendar;
+import java.util.Locale;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.springframework.format.datetime.DateFormatter;
+import org.springframework.stereotype.Service;
+
+@Service("timeService")
+@Path("/time")
+public class TimeService {
+
+ @GET @Produces("text/plain")
+ public String getDateTime()
+ {
+ DateFormatter formatter = new DateFormatter("dd/MM/yyyy hh:mm:ss");
+ return formatter.print(Calendar.getInstance().getTime(), Locale.getDefault());
+ }
+}
+
diff --git a/engine/service/src/main/webapp/WEB-INF/beans.xml b/engine/service/src/main/webapp/WEB-INF/beans.xml
new file mode 100755
index 00000000000..28b7d6b41bf
--- /dev/null
+++ b/engine/service/src/main/webapp/WEB-INF/beans.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/engine/service/src/main/webapp/WEB-INF/log4j.xml b/engine/service/src/main/webapp/WEB-INF/log4j.xml
new file mode 100755
index 00000000000..d4b09d0772b
--- /dev/null
+++ b/engine/service/src/main/webapp/WEB-INF/log4j.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/engine/service/src/main/webapp/WEB-INF/web.xml b/engine/service/src/main/webapp/WEB-INF/web.xml
index 04563ea82dc..a89e6ed4c9d 100644
--- a/engine/service/src/main/webapp/WEB-INF/web.xml
+++ b/engine/service/src/main/webapp/WEB-INF/web.xml
@@ -3,5 +3,25 @@
"http://java.sun.com/dtd/web-app_2_3.dtd" >
- Archetype Created Web Application
+
+ contextConfigLocation
+ WEB-INF/beans.xml
+
+
+
+ org.springframework.web.context.ContextLoaderListener
+
+
+
+ CXFServlet
+ CXF Servlet
+
+ org.apache.cxf.transport.servlet.CXFServlet
+
+ 1
+
+
+ CXFServlet
+ /rest/*
+
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/TemplateEntityImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/TemplateEntityImpl.java
index 8783804ef69..384ca0d7b2c 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/TemplateEntityImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/TemplateEntityImpl.java
@@ -24,8 +24,6 @@ import java.util.List;
import java.util.Map;
import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
-import org.apache.cloudstack.storage.image.db.ImageDataVO;
-import org.apache.cloudstack.storage.image.store.ImageDataStore;
import org.apache.cloudstack.storage.image.store.ImageDataStoreInfo;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
@@ -33,262 +31,256 @@ import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.TemplateType;
public class TemplateEntityImpl implements TemplateEntity {
- protected TemplateInfo templateInfo;
+ protected TemplateInfo templateInfo;
public TemplateEntityImpl(TemplateInfo templateInfo) {
- this.templateInfo = templateInfo;
+ this.templateInfo = templateInfo;
}
public ImageDataStoreInfo getImageDataStore() {
return templateInfo.getImageDataStore();
}
-
+
public long getImageDataStoreId() {
- return getImageDataStore().getImageDataStoreId();
+ return getImageDataStore().getImageDataStoreId();
}
-
+
public TemplateInfo getTemplateInfo() {
- return this.templateInfo;
+ return this.templateInfo;
}
- @Override
- public String getUuid() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getUuid() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public long getId() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public long getId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- @Override
- public String getExternalId() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getCurrentState() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getCurrentState() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getDesiredState() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getDesiredState() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Date getCreatedTime() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public Date getCreatedTime() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Date getLastUpdatedTime() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public Date getLastUpdatedTime() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getOwner() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getOwner() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Map getDetails(String source) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public Map getDetails(String source) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public List getDetailSources() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public List getDetailSources() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public void addDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
- @Override
- public void addDetail(String source, String name, String value) {
- // TODO Auto-generated method stub
-
- }
+ }
- @Override
- public void delDetail(String source, String name, String value) {
- // TODO Auto-generated method stub
-
- }
+ @Override
+ public void delDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
- @Override
- public void updateDetail(String source, String name, String value) {
- // TODO Auto-generated method stub
-
- }
+ }
- @Override
- public List getApplicableActions() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public void updateDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
- @Override
- public boolean isFeatured() {
- // TODO Auto-generated method stub
- return false;
- }
+ }
- @Override
- public boolean isPublicTemplate() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public List getApplicableActions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public boolean isExtractable() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean isFeatured() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public String getName() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public boolean isPublicTemplate() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public ImageFormat getFormat() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public boolean isExtractable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public boolean isRequiresHvm() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public String getName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getDisplayText() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public ImageFormat getFormat() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public boolean getEnablePassword() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean isRequiresHvm() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public boolean getEnableSshKey() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public String getDisplayText() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public boolean isCrossZones() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean getEnablePassword() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public Date getCreated() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public boolean getEnableSshKey() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public long getGuestOSId() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public boolean isCrossZones() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public boolean isBootable() {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public Date getCreated() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public TemplateType getTemplateType() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public long getGuestOSId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- @Override
- public HypervisorType getHypervisorType() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public boolean isBootable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public int getBits() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public TemplateType getTemplateType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getUniqueName() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public HypervisorType getHypervisorType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getUrl() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public int getBits() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- @Override
- public String getChecksum() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getUniqueName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public Long getSourceTemplateId() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getUrl() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public String getTemplateTag() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getChecksum() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public Map getDetails() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Long getSourceTemplateId() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public long getAccountId() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public String getTemplateTag() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public long getDomainId() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public Map getDetails() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public long getPhysicalSize() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public long getAccountId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- @Override
- public long getVirtualSize() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public long getDomainId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getPhysicalSize() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getVirtualSize() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
}
diff --git a/engine/storage/src/org/apache/cloudstack/storage/volume/VolumeEntityImpl.java b/engine/storage/src/org/apache/cloudstack/storage/volume/VolumeEntityImpl.java
index e79614c99d0..424c7f720d8 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/volume/VolumeEntityImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/volume/VolumeEntityImpl.java
@@ -31,187 +31,181 @@ import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskTyp
import org.apache.cloudstack.engine.subsystem.api.storage.type.VolumeType;
public class VolumeEntityImpl implements VolumeEntity {
- private VolumeInfo volumeInfo;
-
- public VolumeEntityImpl(VolumeInfo volumeObject) {
- this.volumeInfo = volumeObject;
- }
-
- public VolumeInfo getVolumeInfo() {
- return volumeInfo;
- }
-
- public void setVolumeInfo(VolumeInfo vi) {
- this.volumeInfo = vi;
- }
-
- @Override
- public String getUuid() {
- return volumeInfo.getUuid();
- }
+ private VolumeInfo volumeInfo;
- @Override
- public long getId() {
- return volumeInfo.getId();
- }
+ public VolumeEntityImpl(VolumeInfo volumeObject) {
+ this.volumeInfo = volumeObject;
+ }
- @Override
- public String getExternalId() {
- // TODO Auto-generated method stub
- return null;
- }
+ public VolumeInfo getVolumeInfo() {
+ return volumeInfo;
+ }
- @Override
- public String getCurrentState() {
- return volumeInfo.getCurrentState().toString();
- }
+ public void setVolumeInfo(VolumeInfo vi) {
+ this.volumeInfo = vi;
+ }
- @Override
- public String getDesiredState() {
- return volumeInfo.getDesiredState().toString();
- }
+ @Override
+ public String getUuid() {
+ return volumeInfo.getUuid();
+ }
- @Override
- public Date getCreatedTime() {
- return volumeInfo.getCreatedData();
- }
+ @Override
+ public long getId() {
+ return volumeInfo.getId();
+ }
- @Override
- public Date getLastUpdatedTime() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getCurrentState() {
+ return volumeInfo.getCurrentState().toString();
+ }
- @Override
- public String getOwner() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getDesiredState() {
+ return volumeInfo.getDesiredState().toString();
+ }
- @Override
- public Map getDetails(String source) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Date getCreatedTime() {
+ return volumeInfo.getCreatedData();
+ }
- @Override
- public List getDetailSources() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Date getLastUpdatedTime() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public void addDetail(String source, String name, String value) {
- // TODO Auto-generated method stub
+ @Override
+ public String getOwner() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- }
+ @Override
+ public Map getDetails(String source) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public void delDetail(String source, String name, String value) {
- // TODO Auto-generated method stub
+ @Override
+ public List getDetailSources() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- }
+ @Override
+ public void addDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
- @Override
- public void updateDetail(String source, String name, String value) {
- // TODO Auto-generated method stub
+ }
- }
+ @Override
+ public void delDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
- @Override
- public List getApplicableActions() {
- // TODO Auto-generated method stub
- return null;
- }
+ }
- @Override
- public SnapshotEntity takeSnapshotOf(boolean full) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public void updateDetail(String source, String name, String value) {
+ // TODO Auto-generated method stub
- @Override
- public String reserveForMigration(long expirationTime) {
- // TODO Auto-generated method stub
- return null;
- }
+ }
- @Override
- public void migrate(String reservationToken) {
- // TODO Auto-generated method stub
+ @Override
+ public List getApplicableActions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- }
+ @Override
+ public SnapshotEntity takeSnapshotOf(boolean full) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public VolumeEntity setupForCopy() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String reserveForMigration(long expirationTime) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public void copy(VolumeEntity dest) {
- // TODO Auto-generated method stub
+ @Override
+ public void migrate(String reservationToken) {
+ // TODO Auto-generated method stub
- }
+ }
- @Override
- public void attachTo(String vm, long deviceId) {
- // TODO Auto-generated method stub
+ @Override
+ public VolumeEntity setupForCopy() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- }
+ @Override
+ public void copy(VolumeEntity dest) {
+ // TODO Auto-generated method stub
- @Override
- public void detachFrom() {
- // TODO Auto-generated method stub
+ }
- }
+ @Override
+ public void attachTo(String vm, long deviceId) {
+ // TODO Auto-generated method stub
- @Override
- public void destroy() {
- // TODO Auto-generated method stub
+ }
- }
+ @Override
+ public void detachFrom() {
+ // TODO Auto-generated method stub
- @Override
- public long getSize() {
- // TODO Auto-generated method stub
- return 0;
- }
+ }
- @Override
- public String getTemplatePath() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public void destroy() {
+ // TODO Auto-generated method stub
- @Override
- public String getTemplateUuid() {
- // TODO Auto-generated method stub
- return null;
- }
+ }
- @Override
- public VolumeDiskType getDiskType() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public long getSize() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- @Override
- public VolumeType getType() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getTemplatePath() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public StorageEntity getDataStore() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String getTemplateUuid() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public void setPath(String path) {
- // TODO Auto-generated method stub
+ @Override
+ public VolumeDiskType getDiskType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- }
+ @Override
+ public VolumeType getType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntity getDataStore() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setPath(String path) {
+ // TODO Auto-generated method stub
+
+ }
}