You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2012/09/04 14:52:40 UTC

[1/3] git commit: CIMI: sorts out collections - include :count and each member of the collection inline as an element

Updated Branches:
  refs/heads/master 5af799371 -> 78e981597


CIMI: sorts out collections - include :count and each member of
the collection inline as an element


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/30c895d8
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/30c895d8
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/30c895d8

Branch: refs/heads/master
Commit: 30c895d8cb8013ac102832722de1ada07f0f069b
Parents: 5af7993
Author: marios <ma...@redhat.com>
Authored: Fri Aug 31 22:24:54 2012 +0300
Committer: marios <ma...@redhat.com>
Committed: Tue Sep 4 12:55:49 2012 +0300

----------------------------------------------------------------------
 server/lib/cimi/models/machine_collection.rb       |   11 +++++---
 .../models/machine_configuration_collection.rb     |   10 +++++---
 server/lib/cimi/models/machine_image_collection.rb |   10 +++++---
 .../lib/cimi/models/machine_template_collection.rb |   10 +++++---
 server/lib/cimi/models/network_collection.rb       |   11 +++++----
 server/lib/cimi/models/schema.rb                   |   18 +++++++++++++++
 server/lib/cimi/models/volume_collection.rb        |   10 +++++---
 .../cimi/models/volume_configuration_collection.rb |   10 +++++---
 server/lib/cimi/models/volume_image_collection.rb  |   10 +++++---
 .../lib/cimi/models/volume_template_collection.rb  |   10 +++++---
 10 files changed, 73 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/machine_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine_collection.rb b/server/lib/cimi/models/machine_collection.rb
index 9154aa9..27c721d 100644
--- a/server/lib/cimi/models/machine_collection.rb
+++ b/server/lib/cimi/models/machine_collection.rb
@@ -17,17 +17,20 @@ class CIMI::Model::MachineCollection < CIMI::Model::Base
 
   act_as_root_entity :machine
 
-  array :machines do
-    scalar :href
-  end
+  text :count
+
+  #add machines array:
+  self.schema.add_collection_member_array(CIMI::Model::Machine)
 
   def self.default(context)
+    machines = CIMI::Model::Machine.all(context)
     self.new(
       :id => context.machines_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} MachineCollection",
-      :machines => CIMI::Model::Machine.all_uri(context)
+      :count => machines.size,
+      :machines => machines
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/machine_configuration_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine_configuration_collection.rb b/server/lib/cimi/models/machine_configuration_collection.rb
index 6d7ebad..e75bbb4 100644
--- a/server/lib/cimi/models/machine_configuration_collection.rb
+++ b/server/lib/cimi/models/machine_configuration_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::MachineConfigurationCollection < CIMI::Model::Base
 
   act_as_root_entity :machine_configuration
 
-  array :machine_configurations do
-    scalar :href
-  end
+  text :count
+
+  self.schema.add_collection_member_array(CIMI::Model::MachineConfiguration)
 
   def self.default(context)
+    machine_configurations = CIMI::Model::MachineConfiguration.all(context)
     self.new(
       :id => context.machine_configurations_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} MachineConfigurationCollection",
-      :machine_configurations => CIMI::Model::MachineConfiguration.all_uri(context)
+      :count => machine_configurations.count,
+      :machine_configurations => machine_configurations
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/machine_image_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine_image_collection.rb b/server/lib/cimi/models/machine_image_collection.rb
index 70bdc7b..703e515 100644
--- a/server/lib/cimi/models/machine_image_collection.rb
+++ b/server/lib/cimi/models/machine_image_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::MachineImageCollection < CIMI::Model::Base
 
   act_as_root_entity :machine_image
 
-  array :machine_images do
-    scalar :href
-  end
+  text :count
+
+  self.schema.add_collection_member_array(CIMI::Model::MachineImage)
 
   def self.default(context)
+    machine_images = CIMI::Model::MachineImage.all(context)
     self.new(
       :id => context.machine_images_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} MachineImageCollection",
-      :machine_images => CIMI::Model::MachineImage.all_uri(context)
+      :count => machine_images.count,
+      :machine_images => machine_images
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/machine_template_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine_template_collection.rb b/server/lib/cimi/models/machine_template_collection.rb
index d2a3f23..bef9aaf 100644
--- a/server/lib/cimi/models/machine_template_collection.rb
+++ b/server/lib/cimi/models/machine_template_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::MachineTemplateCollection < CIMI::Model::Base
 
   act_as_root_entity :machine_template
 
-  array :machine_templates do
-    scalar :href
-  end
+  text :count
+
+  self.schema.add_collection_member_array(CIMI::Model::MachineTemplate)
 
   def self.default(context)
+    machine_templates = CIMI::Model::MachineTemplate.all(context)
     self.new(
       :id => context.machine_template_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} MachineTemplateCollection",
-      :machine_templates => CIMI::Model::MachineTemplate.all_uri(context)
+      :count => machine_templates.size,
+      :machine_templates => machine_templates
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/network_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/network_collection.rb b/server/lib/cimi/models/network_collection.rb
index d76a3dd..c17c3f7 100644
--- a/server/lib/cimi/models/network_collection.rb
+++ b/server/lib/cimi/models/network_collection.rb
@@ -12,22 +12,23 @@
 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 # License for the specific language governing permissions and limitations
 # under the License.
-
 class CIMI::Model::NetworkCollection < CIMI::Model::Base
 
   act_as_root_entity :network
+  text :count
 
-  array :networks do
-    scalar :href
-  end
+#add networks Array:
+  self.schema.add_collection_member_array(CIMI::Model::Network)
 
   def self.default(context)
+    networks = CIMI::Model::Network.all(context)
     self.new(
       :id => context.networks_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} NetworkCollection",
-      :networks => CIMI::Model::Network.all(context).map { |c| { :href => c.id } }
+      :count => networks.size,
+      :networks => networks
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/schema.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/schema.rb b/server/lib/cimi/models/schema.rb
index 57a190d..088e111 100644
--- a/server/lib/cimi/models/schema.rb
+++ b/server/lib/cimi/models/schema.rb
@@ -81,6 +81,9 @@ class CIMI::Model::Schema
   end
 
   class Struct < Attribute
+
+    attr_accessor :schema
+
     def initialize(name, opts, &block)
       content = opts[:content]
       super(name, opts)
@@ -146,6 +149,9 @@ class CIMI::Model::Schema
   end
 
   class Array < Attribute
+
+    attr_accessor :struct
+
     # For an array :funThings, we collect all <funThing/> elements (XmlSimple
     # actually does the collecting)
     def initialize(name, opts = {}, &block)
@@ -208,6 +214,9 @@ class CIMI::Model::Schema
   #
   # The actual Schema class
   #
+
+  attr_accessor :attributes
+
   def initialize
     @attributes = []
   end
@@ -230,6 +239,15 @@ class CIMI::Model::Schema
     xml
   end
 
+  #For MachineCollection, copy over the schema of Machine to hold
+  #each member of the collection - avoid duplicating the schemas
+  def add_collection_member_array(model)
+    member_symbol = model.name.split("::").last.underscore.pluralize.to_sym
+    members = CIMI::Model::Schema::Array.new(member_symbol)
+    members.struct.schema.attributes = model.schema.attributes
+    self.attributes << members
+  end
+
   def to_json(model, json = {})
     @attributes.freeze
     @attributes.each { |attr| attr.to_json(model, json) }

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/volume_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/volume_collection.rb b/server/lib/cimi/models/volume_collection.rb
index 1f4152e..6bec78f 100644
--- a/server/lib/cimi/models/volume_collection.rb
+++ b/server/lib/cimi/models/volume_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::VolumeCollection < CIMI::Model::Base
 
   act_as_root_entity :volume
 
-  array :volumes do
-    scalar :href
-  end
+  text :count
+
+  self.schema.add_collection_member_array(CIMI::Model::Volume)
 
   def self.default(context)
+    volumes = CIMI::Model::Volume.all(context)
     self.new(
       :id => context.volumes_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} VolumeCollection",
-      :volumes => CIMI::Model::Volume.all_uri(context)
+      :count => volumes.count,
+      :volumes => volumes
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/volume_configuration_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/volume_configuration_collection.rb b/server/lib/cimi/models/volume_configuration_collection.rb
index 2120ae6..8800e35 100644
--- a/server/lib/cimi/models/volume_configuration_collection.rb
+++ b/server/lib/cimi/models/volume_configuration_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::VolumeConfigurationCollection < CIMI::Model::Base
 
   act_as_root_entity :volume_configuration
 
-  array :volume_configurations do
-    scalar :href
-  end
+  text :count
+
+  self.schema.add_collection_member_array(CIMI::Model::VolumeConfiguration)
 
   def self.default(context)
+    volume_configurations = CIMI::Model::VolumeConfiguration.all(context)
     self.new(
       :id => context.volume_configurations_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} VolumeConfigurationCollection",
-      :volume_configurations => CIMI::Model::VolumeConfiguration.all_uri(context)
+      :count => volume_configurations.size,
+      :volume_configurations => volume_configurations
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/volume_image_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/volume_image_collection.rb b/server/lib/cimi/models/volume_image_collection.rb
index f3da877..78881d5 100644
--- a/server/lib/cimi/models/volume_image_collection.rb
+++ b/server/lib/cimi/models/volume_image_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::VolumeImageCollection < CIMI::Model::Base
 
   act_as_root_entity :volume_image
 
-  array :volume_images do
-    scalar :href
-  end
+  text :count 
+
+  self.schema.add_collection_member_array(CIMI::Model::VolumeImage)
 
   def self.default(context)
+      volume_images = CIMI::Model::VolumeImage.all(context)
     self.new(
       :id => context.volume_images_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} VolumeImageCollection",
-      :volume_images => CIMI::Model::VolumeImage.all_uri(context)
+      :count => volume_images.count,
+      :volume_images => volume_images
     )
   end
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/30c895d8/server/lib/cimi/models/volume_template_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/volume_template_collection.rb b/server/lib/cimi/models/volume_template_collection.rb
index f53547c..3f2ae02 100644
--- a/server/lib/cimi/models/volume_template_collection.rb
+++ b/server/lib/cimi/models/volume_template_collection.rb
@@ -17,17 +17,19 @@ class CIMI::Model::VolumeTemplateCollection < CIMI::Model::Base
 
   act_as_root_entity :volume_template
 
-  array :volume_templates do
-    scalar :href
-  end
+  text :count
+
+  self.schema.add_collection_member_array(CIMI::Model::VolumeTemplate)
 
   def self.default(context)
+    volume_templates = CIMI::Model::VolumeTemplate.all(context)
     self.new(
       :id => context.volume_template_url,
       :name => 'default',
       :created => Time.now,
       :description => "#{context.driver.name.capitalize} VolumeTemplateCollection",
-      :volume_templates => CIMI::Model::VolumeTemplate.all_uri(context)
+      :count => volume_templates.size,
+      :volume_templates => volume_templates
     )
   end