From: NjeriChelimo <martha.c.ch...@gmail.com>

---
 clients/cimi/lib/entities/machine_template.rb |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/clients/cimi/lib/entities/machine_template.rb 
b/clients/cimi/lib/entities/machine_template.rb
index ccc80a3..026d244 100644
--- a/clients/cimi/lib/entities/machine_template.rb
+++ b/clients/cimi/lib/entities/machine_template.rb
@@ -22,9 +22,33 @@ class CIMI::Frontend::MachineTemplate < 
CIMI::Frontend::Entity
   end
 
   get '/cimi/machine_templates' do
+    machine_image_xml = get_entity_collection('machine_images', credentials)
+    @machine_images = 
CIMI::Model::MachineImageCollection.from_xml(machine_image_xml)
+    machine_conf_xml = get_entity_collection('machine_configurations', 
credentials)
+    @machine_configurations = 
CIMI::Model::MachineConfigurationCollection.from_xml(machine_conf_xml)
     machine_template_xml = get_entity_collection('machine_templates', 
credentials)
     @machine_templates = 
CIMI::Model::MachineTemplateCollection.from_xml(machine_template_xml)
     haml :'machine_templates/index'
   end
 
+  post '/cimi/machine_templates' do
+    machine_template_xml = Nokogiri::XML::Builder.new do |xml|
+      xml.MachineTemplate(:xmlns => CIMI::Frontend::CMWG_NAMESPACE) {
+        xml.name params[:machine_template][:name]
+        xml.description params[:machine_template][:description]
+        xml.machineConfig( :href => 
params[:machine_template][:machine_configuration] )
+        xml.machineImage( :href => params[:machine_template][:machine_image] )
+      }
+    end.to_xml
+    begin
+      result = create_entity('machine_templates', machine_template_xml, 
credentials)
+      machine_template = 
CIMI::Model::MachineTemplateCollection.from_xml(result)
+      flash[:success] = "Machine Template was successfully created."
+      redirect "/cimi/machine_templates/#{machine_template.name}", 302
+    rescue => e
+      flash[:error] = "Machine Template cannot be created: #{e.message}"
+      redirect :back
+    end
+  end
+
 end
-- 
1.7.9.5

Reply via email to