From: marios <[email protected]>

https://issues.apache.org/jira/browse/DTACLOUD-447

Signed-off-by: marios <[email protected]>
---
 server/lib/cimi/models/machine.rb                 | 11 ++++++++---
 server/lib/deltacloud/drivers/mock/mock_driver.rb |  4 ++--
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/server/lib/cimi/models/machine.rb 
b/server/lib/cimi/models/machine.rb
index 67e3eef..6e075e8 100644
--- a/server/lib/cimi/models/machine.rb
+++ b/server/lib/cimi/models/machine.rb
@@ -52,6 +52,7 @@ class CIMI::Model::Machine < CIMI::Model::Base
 
   def self.create_from_json(body, context)
     json = JSON.parse(body)
+    additional_params={}
     machine_template = json['machineTemplate']
     if !machine_template['href'].nil?
       template = current_db.machine_templates.first(:id => 
machine_template['href'].split('/').last)
@@ -65,8 +66,9 @@ class CIMI::Model::Machine < CIMI::Model::Base
         additional_params[:keyname] = 
machine_template['credential']["href"].split('/').last
       end
     end
-
-    additional_params = {}
+    if machine_template.has_key? "initialState"
+      additional_params[:initial_state] = 
machine_template["initialState"].strip
+    end
     additional_params[:name] = json['name'] if json['name']
     instance = context.driver.create_instance(context.credentials, image_id, {
       :hwp_id => hardware_profile_id
@@ -80,6 +82,7 @@ class CIMI::Model::Machine < CIMI::Model::Base
 
   def self.create_from_xml(body, context)
     xml = XmlSimple.xml_in(body)
+    additional_params = {}
     if xml['machineTemplate'][0]['href']
       template = current_db.machine_templates_dataset.first(:id => 
xml['machineTemplate'][0]['href'].split('/').last)
       hardware_profile_id = template.machine_config.split('/').last
@@ -92,7 +95,9 @@ class CIMI::Model::Machine < CIMI::Model::Base
         additional_params[:keyname] = 
machine_template['credential'][0]["href"].split('/').last
       end
     end
-    additional_params = {}
+    if xml["machineTemplate"][0].has_key? "initialState"
+      additional_params[:initial_state] = 
xml["machineTemplate"][0]["initialState"].first.strip
+    end
     additional_params[:name] = xml['name'][0] if xml['name']
     instance = context.driver.create_instance(context.credentials, image_id, {
       :hwp_id => hardware_profile_id
diff --git a/server/lib/deltacloud/drivers/mock/mock_driver.rb 
b/server/lib/deltacloud/drivers/mock/mock_driver.rb
index b12ca57..72c65ad 100644
--- a/server/lib/deltacloud/drivers/mock/mock_driver.rb
+++ b/server/lib/deltacloud/drivers/mock/mock_driver.rb
@@ -205,11 +205,11 @@ module Deltacloud::Drivers::Mock
       hwp ||= find_hardware_profile(credentials, 'm1-small', image_id)
 
       name = opts[:name] || "i-#{Time.now.to_i}"
-
+      initial_state = opts[:initial_state] || "RUNNING"
       instance = {
         :id => next_id,
         :name=>name,
-        :state=>'RUNNING',
+        :state=> (initial_state == "STARTED" ? "RUNNING" : initial_state),
         :keyname => opts[:keyname],
         :image_id=>image_id,
         :owner_id=>credentials.user,
-- 
1.7.11.7

Reply via email to