You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2012/08/24 03:12:23 UTC

git commit: modules

Updated Branches:
  refs/heads/javelin d06d6dae7 -> 07d00ebbf


modules


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/07d00ebb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/07d00ebb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/07d00ebb

Branch: refs/heads/javelin
Commit: 07d00ebbfa3fa72a735ec0be36b9a99a8b366429
Parents: d06d6da
Author: Alex Huang <al...@citrix.com>
Authored: Thu Aug 23 17:47:36 2012 -0700
Committer: Alex Huang <al...@citrix.com>
Committed: Thu Aug 23 18:11:47 2012 -0700

----------------------------------------------------------------------
 framework/events/.classpath                        |    6 +
 framework/events/.project                          |   17 ++
 framework/ipc/.classpath                           |    6 +
 framework/ipc/.project                             |   17 ++
 framework/ipc/.settings/org.eclipse.jdt.core.prefs |   11 +
 .../framework/container/ServerContainer.java       |   27 +++
 .../org/apache/cloudstack/framework/ipc/Ipc.java   |   33 +++
 .../cloudstack/framework/ipc/IpcIntercepter.java   |   23 ++
 .../apache/cloudstack/framework/ipc/IpcParam.java  |   22 ++
 .../apache/cloudstack/framework/ipc/Message.java   |   26 +++
 .../cloudstack/framework/ipc/MessageSystem.java    |   43 ++++
 .../apache/cloudstack/framework/ipc/Publisher.java |   42 ++++
 .../cloudstack/framework/ipc/Subscriber.java       |   37 ++++
 framework/jobs/.classpath                          |    6 +
 framework/jobs/.project                            |   17 ++
 .../jobs/.settings/org.eclipse.jdt.core.prefs      |   11 +
 .../org/apache/cloudstack/framework/job/Job.java   |   24 ++
 .../cloudstack/framework/job/JobInterceptor.java   |   27 +++
 platform/api/.classpath                            |    8 +
 platform/api/.project                              |   17 ++
 .../platform/service/api/DirectoryService.java     |   29 +++
 .../platform/service/api/EntityService.java        |   45 ++++
 .../service/api/JobsManagementService.java         |   35 +++
 .../platform/service/api/ManagementService.java    |   64 ++++++
 .../platform/service/api/OrchestrationService.java |  127 +++++++++++
 .../subsystem/api/hypervisor/ComputeSubsystem.java |   30 +++
 .../api/network/NetworkServiceProvider.java        |   47 ++++
 .../subsystem/api/network/NetworkSubsystem.java    |   35 +++
 .../api/storage/DataMigrationSubSystem.java        |   23 ++
 .../subsystem/api/storage/StorageSubSystem.java    |   13 ++
 platform/compute/.classpath                        |    7 +
 platform/compute/.project                          |   17 ++
 .../cloudstack/compute/ComputeOrchestrator.java    |   38 ++++
 .../compute/ComputeOrchestratorImpl.java           |   41 ++++
 platform/network/.classpath                        |    6 +
 platform/network/.project                          |   17 ++
 .../cloudstack/network/NetworkOrchestrator.java    |   40 ++++
 platform/orchestration/.classpath                  |   10 +
 platform/orchestration/.project                    |   17 ++
 .../.settings/org.eclipse.jdt.core.prefs           |   11 +
 .../platform/orchestration/CloudOrchestrator.java  |  164 +++++++++++++++
 platform/planning/.classpath                       |    8 +
 platform/planning/.project                         |   17 ++
 .../cloudstack/platform/planning/Concierge.java    |   36 ++++
 platform/storage/.classpath                        |    6 +
 platform/storage/.project                          |   17 ++
 .../cloudstack/storage/StorageOrchestrator.java    |   52 +++++
 47 files changed, 1372 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/events/.classpath
----------------------------------------------------------------------
diff --git a/framework/events/.classpath b/framework/events/.classpath
new file mode 100755
index 0000000..fb50116
--- /dev/null
+++ b/framework/events/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/events/.project
----------------------------------------------------------------------
diff --git a/framework/events/.project b/framework/events/.project
new file mode 100755
index 0000000..677cea5
--- /dev/null
+++ b/framework/events/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>framework-events</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/.classpath
----------------------------------------------------------------------
diff --git a/framework/ipc/.classpath b/framework/ipc/.classpath
new file mode 100755
index 0000000..fb565a5
--- /dev/null
+++ b/framework/ipc/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/.project
----------------------------------------------------------------------
diff --git a/framework/ipc/.project b/framework/ipc/.project
new file mode 100755
index 0000000..11b8968
--- /dev/null
+++ b/framework/ipc/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>framework-ipc</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/framework/ipc/.settings/org.eclipse.jdt.core.prefs b/framework/ipc/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 0000000..7341ab1
--- /dev/null
+++ b/framework/ipc/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/container/ServerContainer.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/container/ServerContainer.java b/framework/ipc/src/org/apache/cloudstack/framework/container/ServerContainer.java
new file mode 100755
index 0000000..04ec031
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/container/ServerContainer.java
@@ -0,0 +1,27 @@
+/*
+ * 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.framework.container;
+
+/**
+ * Container of different processes so it doesn't have to deal with message
+ * to Java call.
+ */
+public interface ServerContainer {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/Ipc.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/Ipc.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Ipc.java
new file mode 100755
index 0000000..31903c5
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Ipc.java
@@ -0,0 +1,33 @@
+/*
+ * 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.framework.ipc;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Marks a method as an ipc mechanism 
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface Ipc {
+    String topic();
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcIntercepter.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcIntercepter.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcIntercepter.java
new file mode 100755
index 0000000..82c2a47
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcIntercepter.java
@@ -0,0 +1,23 @@
+/*
+ * 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.framework.ipc;
+
+public class IpcIntercepter {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcParam.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcParam.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcParam.java
new file mode 100755
index 0000000..9bb811d
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/IpcParam.java
@@ -0,0 +1,22 @@
+/*
+ * 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.framework.ipc;
+
+public @interface IpcParam {
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/Message.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/Message.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Message.java
new file mode 100755
index 0000000..cb5a043
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Message.java
@@ -0,0 +1,26 @@
+/*
+ * 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.framework.ipc;
+
+import java.util.Map;
+
+public interface Message {
+    String getTopic();
+    Map<String, Object> getContent();
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/MessageSystem.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/MessageSystem.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/MessageSystem.java
new file mode 100755
index 0000000..e5685f5
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/MessageSystem.java
@@ -0,0 +1,43 @@
+/*
+ * 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.framework.ipc;
+
+public interface MessageSystem {
+    /**
+     * Creates the publisher
+     * @param name of the publisher
+     * @return publisher
+     */
+    Publisher createPublisher(String name);
+
+    /**
+     * Creates the subscriber
+     * @param name of the subscriber
+     * @return subscriber
+     */
+    Subscriber createSubscriber(String name);
+
+    /**
+     * registers the subscriber
+     * @param subscriber subscriber
+     * @param topic topic to listen to
+     * @return subscriber
+     */
+    boolean registerSubscriber(Subscriber subscriber, String topic);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/Publisher.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/Publisher.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Publisher.java
new file mode 100755
index 0000000..4afabd4
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Publisher.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.framework.ipc;
+
+import java.util.Map;
+
+/**
+ * Publish the Event 
+ *
+ */
+public interface Publisher {
+    /**
+     * Publish a topic 
+     *  
+     * @param topic topic being published 
+     * @param content  content published
+     * @return true if the topic has been picked up; false if not.
+     */
+    boolean publish(String topic, Map<String, Object> content);
+
+    /**
+     * @return the name of this publisher
+     */
+    String getName();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/ipc/src/org/apache/cloudstack/framework/ipc/Subscriber.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/ipc/Subscriber.java b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Subscriber.java
new file mode 100755
index 0000000..56e5826
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/ipc/Subscriber.java
@@ -0,0 +1,37 @@
+/*
+ * 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.framework.ipc;
+
+/**
+ * Event subscriber interface
+ *
+ */
+public interface Subscriber {
+
+    /**
+     * Message received
+     */
+    Message receive();
+
+    /**
+     * @return the name of the subscriber
+     */
+    String getName();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/jobs/.classpath
----------------------------------------------------------------------
diff --git a/framework/jobs/.classpath b/framework/jobs/.classpath
new file mode 100755
index 0000000..fb565a5
--- /dev/null
+++ b/framework/jobs/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/jobs/.project
----------------------------------------------------------------------
diff --git a/framework/jobs/.project b/framework/jobs/.project
new file mode 100755
index 0000000..edada9c
--- /dev/null
+++ b/framework/jobs/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>framework-jobs</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/jobs/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/framework/jobs/.settings/org.eclipse.jdt.core.prefs b/framework/jobs/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 0000000..7341ab1
--- /dev/null
+++ b/framework/jobs/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/jobs/src/org/apache/cloudstack/framework/job/Job.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/job/Job.java b/framework/jobs/src/org/apache/cloudstack/framework/job/Job.java
new file mode 100755
index 0000000..6d28445
--- /dev/null
+++ b/framework/jobs/src/org/apache/cloudstack/framework/job/Job.java
@@ -0,0 +1,24 @@
+/*
+ * 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.framework.job;
+
+public @interface Job {
+
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/framework/jobs/src/org/apache/cloudstack/framework/job/JobInterceptor.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/job/JobInterceptor.java b/framework/jobs/src/org/apache/cloudstack/framework/job/JobInterceptor.java
new file mode 100755
index 0000000..6265f8d
--- /dev/null
+++ b/framework/jobs/src/org/apache/cloudstack/framework/job/JobInterceptor.java
@@ -0,0 +1,27 @@
+/*
+ * 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.framework.job;
+
+/**
+ * @author ahuang
+ *
+ */
+public class JobInterceptor {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/.classpath
----------------------------------------------------------------------
diff --git a/platform/api/.classpath b/platform/api/.classpath
new file mode 100755
index 0000000..1275c98
--- /dev/null
+++ b/platform/api/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/api"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/server"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/.project
----------------------------------------------------------------------
diff --git a/platform/api/.project b/platform/api/.project
new file mode 100755
index 0000000..6515efe
--- /dev/null
+++ b/platform/api/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>platform-api</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java
new file mode 100755
index 0000000..b724a86
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java
@@ -0,0 +1,29 @@
+/*
+ * 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.platform.service.api;
+
+import java.net.URI;
+import java.util.List;
+
+public interface DirectoryService {
+    void registerService(String serviceName, URI endpoint);
+    void unregisterService(String serviceName, URI endpoint);
+    List<URI> getEndPoints(String serviceName);
+    URI getLoadBalancedEndPoint(String serviceName);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java
new file mode 100755
index 0000000..6983d28
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java
@@ -0,0 +1,45 @@
+/*
+ * 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.platform.service.api;
+
+import java.util.List;
+
+import com.cloud.network.Network;
+import com.cloud.storage.Volume;
+import com.cloud.vm.VirtualMachine;
+
+/**
+ * Service to retrieve CloudStack entities
+ * very likely to change
+ */
+public interface EntityService {
+    List<String> listVirtualMachines();
+    List<String> listVolumes();
+    List<String> listNetworks();
+    List<String> listNics();
+    List<String> listSnapshots();
+    List<String> listTemplates();
+    List<String> listStoragePools();
+    List<String> listHosts();
+
+    VirtualMachine getVirtualMachine(String vm);
+    Volume getVolume(String volume);
+    Network getNetwork(String network);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/service/api/JobsManagementService.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/JobsManagementService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/JobsManagementService.java
new file mode 100755
index 0000000..ed1c4c0
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/service/api/JobsManagementService.java
@@ -0,0 +1,35 @@
+/*
+ * 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.platform.service.api;
+
+import java.util.List;
+
+import com.cloud.async.AsyncJob;
+
+public interface JobsManagementService {
+    List<AsyncJob> listJobs();
+
+    List<AsyncJob> listJobsInProgress();
+
+    List<AsyncJob> listJobsCompleted(Long from);
+
+    List<AsyncJob> listJobsInWaiting();
+
+    void cancelJob(String job);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/service/api/ManagementService.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/ManagementService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/ManagementService.java
new file mode 100755
index 0000000..128aed0
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/service/api/ManagementService.java
@@ -0,0 +1,64 @@
+/*
+ * 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.platform.service.api;
+
+import java.util.List;
+import java.util.Map;
+
+import com.cloud.dc.DataCenter;
+import com.cloud.dc.Pod;
+import com.cloud.host.Host;
+import com.cloud.host.Status;
+import com.cloud.storage.StoragePool;
+
+
+/**
+ * ManagementService specifies the management aspects of the
+ * Orchestration Platform. 
+ */
+public interface ManagementService {
+
+    /**
+     * Registers a storage to use
+     * @param uuid
+     * @return
+     */
+    String registerStorage(String name, List<String> tags, Map<String, String> details);
+    String registerZone(String name, List<String> tags, Map<String, String> details);
+    String registerPod(String name, List<String> tags, Map<String, String> details);
+    String registerCluster(String name, List<String> tags, Map<String, String> details);
+    String registerHost(String name, List<String> tags, Map<String, String> details);
+
+    void deregisterStorage(String uuid);
+    void deregisterZone();
+    void deregisterPod();
+    void deregisterCluster();
+    void deregisterHost();
+
+    void changeState(String type, String entity, Status state);
+
+    List<Host> listHosts();
+
+    List<Pod> listPods();
+
+    List<DataCenter> listZones();
+
+    List<StoragePool> listStorage();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java
new file mode 100755
index 0000000..1eb0474
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java
@@ -0,0 +1,127 @@
+/*
+ * 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.platform.service.api;
+
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.hypervisor.Hypervisor;
+import com.cloud.vm.VirtualMachine;
+
+public interface OrchestrationService {
+    /**
+     * Reserves  a new virtual machine
+     * 
+     * @param uuid externally unique name to reference the virtual machine
+     * @param template reference to the template
+     * @param hostName name of the host
+     * @param cpu # of cpu cores
+     * @param speed speed of the cpu core
+     * @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
+     */
+    VirtualMachine create(String uuid, 
+            String template,
+            String hostName,
+            int cpu, 
+            int speed, 
+            long memory, 
+            List<String> networks, 
+            List<String> rootDiskTags,
+            List<String> computeTags, 
+            Map<String, String> details,
+            String owner);
+
+    VirtualMachine createFromScratch(String uuid,
+            String iso,
+            String os,
+            String hypervisor,
+            String hostName,
+            int cpu,
+            int speed,
+            long memory,
+            List<String> networks,
+            List<String> computeTags,
+            Map<String, String> details,
+            String owner);
+
+    /**
+     * Make reservations for a VM
+     * @param vm uuid of the VM
+     * @param planner DeploymentPlanner to use
+     * @param until time specified in seconds before reservation expires.  null means to reserve forever.
+     * @return reservation id
+     */
+    String reserve(String vm, String planner, Long until) throws InsufficientCapacityException;
+
+    String cancel(String reservationId);
+
+    /**
+     * Deploy the reservation
+     * @param reservationId  reservation id during the deployment
+     * @return job Id
+     * @throws CloudRuntimeException if error 
+     */
+    @Job(callback=)
+    String deploy(String reservationId);
+
+    /**
+     * Stops the vm
+     * @param vm vm
+     * @throws CloudRuntimeException if error
+     */
+    String stop(String vm);
+
+    /**
+     * destroys the vm
+     * @param vm vm
+     * @throws CloudRuntimeException if error
+     */
+    void destroy(String vm);
+
+    void joinNetwork(String network1, String network2);
+
+    void attachNetwork(String network, String vm);
+
+    void detachNetwork(String network, String vm);
+
+    void attachVolume(String vm, String vol);
+
+    void createNetwork();
+
+    void destroyNetwork();
+
+    void createVolume();
+
+    void destroyVolume();
+
+    void snapshotVirtualMachine(String vm);
+
+    void snapshotVolume(String volume);
+
+    void backup(String snapshot);
+
+    void registerTemplate(String name, URL path, String os, Hypervisor hypervisor);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java
new file mode 100644
index 0000000..03d19c0
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java
@@ -0,0 +1,30 @@
+/*
+ * 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.platform.subsystem.api.hypervisor;
+
+public interface ComputeSubsystem {
+
+    void start(String vm, String reservationId);
+
+    void cancel(String reservationId);
+
+    void stop(String vm, String reservationId);
+
+    void migrate(String vm, String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java
new file mode 100755
index 0000000..a66a4f5
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java
@@ -0,0 +1,47 @@
+/*
+ * 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.platform.subsystem.api.network;
+
+public interface NetworkServiceProvider {
+    /**
+     * Plug your network elements into this network
+     * @param network
+     * @param reservationId
+     */
+    void plugInto(String network, String reservationId);
+
+    /**
+     * Unplug your network elements from this network
+     * @param network
+     * @param reservationId
+     */
+    void unplugFrom(String network, String reservationId);
+
+    /**
+     * Cancel a previous work
+     * @param reservationId
+     */
+    void cancel(String reservationId);
+
+    void provideServiceTo(String vm, String network, String reservationId);
+
+    void removeServiceFrom(String vm, String network, String reservationId);
+
+    void cleanUp(String network, String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java
new file mode 100755
index 0000000..7e28ed3
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java
@@ -0,0 +1,35 @@
+/*
+ * 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.platform.subsystem.api.network;
+
+public interface NetworkSubsystem {
+    String createNetwork();
+
+    String start(String network, String reservationId);
+
+    void shutdown(String nework, String reservationId);
+
+    void prepare(String vm, String network, String reservationId);
+
+    void release(String vm, String network, String reservationId);
+
+    void cancel(String reservationId);
+
+    void destroy(String network, String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java
new file mode 100755
index 0000000..30185b7
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java
@@ -0,0 +1,23 @@
+/*
+ * 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.platform.subsystem.api.storage;
+
+public interface DataMigrationSubSystem {
+    void migrate(String volume, String storagePool, String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java
----------------------------------------------------------------------
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java
new file mode 100755
index 0000000..e12ff79
--- /dev/null
+++ b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java
@@ -0,0 +1,13 @@
+package org.apache.cloudstack.platform.subsystem.api.storage;
+
+import java.net.URI;
+
+import com.cloud.org.Grouping;
+
+public interface StorageSubSystem {
+    String getType();
+    Class<? extends Grouping> getScope();
+
+    URI grantAccess(String vol, String reservationId);
+    URI RemoveAccess(String vol, String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/compute/.classpath
----------------------------------------------------------------------
diff --git a/platform/compute/.classpath b/platform/compute/.classpath
new file mode 100755
index 0000000..9cfdd7f
--- /dev/null
+++ b/platform/compute/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/framework-ipc"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/compute/.project
----------------------------------------------------------------------
diff --git a/platform/compute/.project b/platform/compute/.project
new file mode 100755
index 0000000..763fcb6
--- /dev/null
+++ b/platform/compute/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>platform-compute</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java
----------------------------------------------------------------------
diff --git a/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java b/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java
new file mode 100755
index 0000000..21813ab
--- /dev/null
+++ b/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java
@@ -0,0 +1,38 @@
+/*
+ * 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.compute;
+
+import org.apache.cloudstack.framework.ipc.Ipc;
+import org.apache.cloudstack.framework.ipc.IpcParam;
+
+public interface ComputeOrchestrator {
+    /**
+     * start the vm 
+     * @param vm vm
+     * @param reservationId
+     */
+    @Ipc(topic="cs.compute.start")
+    void start(@IpcParam String vm, @IpcParam String reservationId);
+
+    @Ipc(topic="cs.compute.cancel")
+    void cancel(@IpcParam String reservationId);
+
+    @Ipc(topic="cs.compute.stop")
+    void stop(@IpcParam String vm, @IpcParam String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java b/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java
new file mode 100755
index 0000000..5030feb
--- /dev/null
+++ b/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java
@@ -0,0 +1,41 @@
+/*
+ * 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.compute;
+
+
+public class ComputeOrchestratorImpl implements ComputeOrchestrator {
+
+    @Override
+    public void start(String vm, String reservationId) {
+        // Retrieve the VM
+        // Locate the HypervisorGuru based on the VM type
+        // Call HypervisorGuru to start the VM
+    }
+
+    @Override
+    public void cancel(String reservationId) {
+    }
+
+    @Override
+    public void stop(String vm, String reservationId) {
+        // Retrieve the VM
+        // Locate the HypervisorGuru based on the VM type
+        // Call HypervisorGuru to stop the VM
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/network/.classpath
----------------------------------------------------------------------
diff --git a/platform/network/.classpath b/platform/network/.classpath
new file mode 100755
index 0000000..fb50116
--- /dev/null
+++ b/platform/network/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/network/.project
----------------------------------------------------------------------
diff --git a/platform/network/.project b/platform/network/.project
new file mode 100755
index 0000000..875ec88
--- /dev/null
+++ b/platform/network/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>platform-network</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java
----------------------------------------------------------------------
diff --git a/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java b/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java
new file mode 100755
index 0000000..82756ac
--- /dev/null
+++ b/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java
@@ -0,0 +1,40 @@
+/*
+ * 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.network;
+
+public interface NetworkOrchestrator {
+
+    /**
+     * Prepares for a VM to join a network
+     * @param vm vm
+     * @param reservationId reservation id
+     */
+    void prepare(String vm, String reservationId);
+
+    /**
+     * Release all reservation 
+     */
+    void release(String vm, String reservationId);
+
+    /**
+     * Cancel a previous reservation
+     * @param reservationId
+     */
+    void cancel(String reservationId);
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/orchestration/.classpath
----------------------------------------------------------------------
diff --git a/platform/orchestration/.classpath b/platform/orchestration/.classpath
new file mode 100755
index 0000000..3028798
--- /dev/null
+++ b/platform/orchestration/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/api"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/platform-api"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/platform-planning"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/framework-ipc"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/orchestration/.project
----------------------------------------------------------------------
diff --git a/platform/orchestration/.project b/platform/orchestration/.project
new file mode 100755
index 0000000..fe968bc
--- /dev/null
+++ b/platform/orchestration/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>platform-orchestration</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/orchestration/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/platform/orchestration/.settings/org.eclipse.jdt.core.prefs b/platform/orchestration/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 0000000..7341ab1
--- /dev/null
+++ b/platform/orchestration/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
----------------------------------------------------------------------
diff --git a/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java b/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
new file mode 100755
index 0000000..405289d
--- /dev/null
+++ b/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
@@ -0,0 +1,164 @@
+/*
+ * 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.platform.orchestration;
+
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cloudstack.framework.ipc.Publisher;
+import org.apache.cloudstack.platform.planning.Concierge;
+import org.apache.cloudstack.platform.service.api.OrchestrationService;
+
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.hypervisor.Hypervisor;
+import com.cloud.vm.VirtualMachine;
+
+public class CloudOrchestrator implements OrchestrationService {
+    int _retryCount = 5;
+    Concierge _concierge = null;    // These are injected
+    Publisher _publisher = null;
+
+    @Override
+    public VirtualMachine create(String uuid, String template, String hostName, int cpu, int speed, long memory, List<String> networks, List<String> rootDiskTags, List<String> computeTags, Map<String, String> details,
+            String owner) {
+        // creates a virtual machine and relevant work in database
+        return null;
+    }
+
+    @Override
+    public VirtualMachine createFromScratch(String uuid, String iso, String os, String hypervisor, String hostName, int cpu, int speed, long memory, List<String> networks, List<String> computeTags,
+            Map<String, String> details, String owner) {
+        // creates a virtual machine and relevant work in database
+        return null;
+    }
+
+    @Override
+    public String reserve(String vm, String planner, Long until) throws InsufficientCapacityException {
+        return _concierge.reserve(vm, planner);
+    }
+
+    @Override
+    public String cancel(String reservationId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public String deploy(String reservationId, String callback) {
+        for (int i = 0; i < _retryCount; i++) {
+            try {
+                // Retrieves the reservation
+                // Signals Network and Storage to prepare
+                // Signals Compute
+                _concierge.claim(reservationId);
+            } catch (Exception e) {
+                // Cancel reservations.
+            }
+            _concierge.reserveAnother(reservationId);
+        }
+        return null;
+    }
+
+    @Override
+    public String stop(String vm) {
+
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void destroy(String vm) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void joinNetwork(String network1, String network2) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void attachNetwork(String network, String vm) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void detachNetwork(String network, String vm) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void attachVolume(String vm, String vol) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void createNetwork() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void destroyNetwork() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void createVolume() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void destroyVolume() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void snapshotVirtualMachine(String vm) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void snapshotVolume(String volume) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void backup(String snapshot) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void registerTemplate(String name, URL path, String os, Hypervisor hypervisor) {
+        // TODO Auto-generated method stub
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/planning/.classpath
----------------------------------------------------------------------
diff --git a/platform/planning/.classpath b/platform/planning/.classpath
new file mode 100755
index 0000000..0fc1f1e
--- /dev/null
+++ b/platform/planning/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/api"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/framework-ipc"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/planning/.project
----------------------------------------------------------------------
diff --git a/platform/planning/.project b/platform/planning/.project
new file mode 100755
index 0000000..c228af2
--- /dev/null
+++ b/platform/planning/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>platform-planning</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java
----------------------------------------------------------------------
diff --git a/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java b/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java
new file mode 100755
index 0000000..97dfb2b
--- /dev/null
+++ b/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java
@@ -0,0 +1,36 @@
+/*
+ * 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.platform.planning;
+
+import org.apache.cloudstack.framework.ipc.Ipc;
+
+public interface Concierge {
+    @Ipc(topic="cs.concierge.reserve")
+    String reserve(String vm, String planner, Long until);
+
+    @Ipc(topic="cs.concierge.cancel")
+    String cancel(String reservationId);
+
+    @Ipc(topic="cs.concierge.claim")
+    String claim(String reservationId);
+
+    @Ipc(topic="cs.concierge.reserveAnother")
+    String reserveAnother(String reservationId);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/storage/.classpath
----------------------------------------------------------------------
diff --git a/platform/storage/.classpath b/platform/storage/.classpath
new file mode 100755
index 0000000..fb50116
--- /dev/null
+++ b/platform/storage/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/storage/.project
----------------------------------------------------------------------
diff --git a/platform/storage/.project b/platform/storage/.project
new file mode 100755
index 0000000..ba98bbb
--- /dev/null
+++ b/platform/storage/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>platform-storage</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/07d00ebb/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java
----------------------------------------------------------------------
diff --git a/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java b/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java
new file mode 100755
index 0000000..dc5d701
--- /dev/null
+++ b/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java
@@ -0,0 +1,52 @@
+/*
+ * 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.storage;
+
+import java.util.List;
+
+public interface StorageOrchestrator {
+
+    /**
+     * Prepares all storage ready for a VM to start
+     * @param vm
+     * @param reservationId
+     */
+    void prepare(String vm, String reservationId);
+
+    /**
+     * Releases all storage that were used for a VM shutdown
+     * @param vm
+     * @param disks
+     * @param reservationId
+     */
+    void release(String vm, String reservationId);
+
+    /**
+     * Destroy all disks
+     * @param disks
+     * @param reservationId
+     */
+    void destroy(List<String> disks, String reservationId);
+
+    /**
+     * Cancel a reservation
+     * @param reservationId reservation to 
+     */
+    void cancel(String reservationId);
+}