On Nov 29, 2011, at 4:32 PM, [email protected] wrote: > ACK to the entire patch_nuke
Thanks! As a bonus I generated all green CIMI Cucumber report: http://omicron.mifo.sk/cimi_features.html -- Michal > > On 29/11/11 15:44, [email protected] wrote: >> From: Michal Fojtik <[email protected]> >> >> >> Signed-off-by: Michal fojtik <[email protected]> >> --- >> server/lib/cimi/model/machine.rb | 12 ++++++++++++ >> server/lib/cimi/server.rb | 31 ++++++++----------------------- >> 2 files changed, 20 insertions(+), 23 deletions(-) >> >> diff --git a/server/lib/cimi/model/machine.rb >> b/server/lib/cimi/model/machine.rb >> index 932acdf..4ad4732 100644 >> --- a/server/lib/cimi/model/machine.rb >> +++ b/server/lib/cimi/model/machine.rb >> @@ -54,4 +54,16 @@ class CIMI::Model::Machine < CIMI::Model::Base >> scalar :rel, :href >> end >> >> + def self.find(id, _self) >> + instances = [] >> + if id == :all >> + instances = _self.driver.instances(_self.credentials) >> + instances.map { |instance| from_instance(instance, _self) }.compact >> + else >> + instance = _self.driver.instance(_self.credentials, id) >> + from_instance(instance, _self) >> + end >> + end >> + >> + >> end >> diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb >> index 3b3e7d0..b05fa31 100644 >> --- a/server/lib/cimi/server.rb >> +++ b/server/lib/cimi/server.rb >> @@ -159,16 +159,11 @@ global_collection :machines do >> operation :index do >> description "List all machines" >> control do >> - instances = driver.send(:instances, credentials, {}) >> - @dmtf_col_items = [] >> - if instances >> - instances.map do |instance| >> - new_item = { "name" => instance.name, >> - "href" => machine_url(instance.id) } >> - @dmtf_col_items.insert 0, new_item >> - end >> + machines = Machine.all(self) >> + respond_to do |format| >> + format.xml { machines.to_xml_cimi_collection(self) } >> + format.json { machines.to_json_cimi_collection(self) } >> end >> - respond_to_collection "machine.col.xml" >> end >> end >> >> @@ -177,20 +172,10 @@ global_collection :machines do >> with_capability :instance >> param :id, :string, :required >> control do >> - @machine = driver.send(:instance, credentials, { :id => params[:id]} ) >> - if @machine >> - #setup the default values for a machine imageion >> - resource_default = get_resource_default "machine" >> - #get the actual values from image >> - resource_value = { "name" => @machine.name, >> - "status" => @machine.state, "uri" => @machine.id, >> - "href" => machine_url(@machine.id) } >> - #mixin actual values get from the specific image >> - @dmtfitem = resource_default["dmtfitem"].merge resource_value >> - show_resource "machines/show", "Machine", >> - {"property" => "properties", "disk" => "disks", "operation" => >> "operations"} >> - else >> - report_error(404) >> + machine = Machine.find(params[:id], self) >> + respond_to do |format| >> + format.xml { machine.to_xml } >> + format.json { machine.to_json } >> end >> end >> end > ------------------------------------------------------ Michal Fojtik, [email protected] Deltacloud API: http://deltacloud.org
