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 -- 1.7.4.4
