You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2012/09/10 11:21:47 UTC
[1/2] git commit: CIMI: Added syntax sugar for collection members
Updated Branches:
refs/heads/master cfe30412e -> 731eae93a
CIMI: Added syntax sugar for collection members
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/731eae93
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/731eae93
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/731eae93
Branch: refs/heads/master
Commit: 731eae93a55597135bb432f809f07afe854df56f
Parents: 66c55d1
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu Sep 6 14:39:13 2012 +0200
Committer: Michal fojtik <mf...@redhat.com>
Committed: Mon Sep 10 11:22:22 2012 +0200
----------------------------------------------------------------------
server/lib/cimi/models/base.rb | 14 ++++++++++++++
server/lib/cimi/models/disk_collection.rb | 3 +--
server/lib/cimi/models/machine_collection.rb | 2 +-
.../models/machine_configuration_collection.rb | 4 +---
server/lib/cimi/models/machine_image_collection.rb | 2 +-
.../lib/cimi/models/machine_template_collection.rb | 4 +---
.../lib/cimi/models/machine_volume_collection.rb | 2 +-
server/lib/cimi/models/network_collection.rb | 4 ++--
server/lib/cimi/models/schema.rb | 4 +---
server/lib/cimi/models/volume_collection.rb | 2 +-
.../cimi/models/volume_configuration_collection.rb | 2 +-
server/lib/cimi/models/volume_image_collection.rb | 4 ++--
.../lib/cimi/models/volume_template_collection.rb | 2 +-
13 files changed, 28 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/server/lib/cimi/models/base.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/base.rb b/server/lib/cimi/models/base.rb
index b375ce0..b627b82 100644
--- a/server/lib/cimi/models/base.rb
+++ b/server/lib/cimi/models/base.rb
@@ -94,6 +94,20 @@ class CIMI::Model::Base
# attribute, we also define a getter and a setter to access/change the
# value for that attribute
class << self
+
+ def <<(model)
+ clone_base_schema unless base_schema_cloned?
+ member_name = model.name.split("::").last
+ if ::Struct.const_defined?("CIMI_#{member_name}")
+ puts "Removing struct"
+ ::Struct.send(:remove_const, "CIMI_#{member_name}")
+ end
+ member_symbol = member_name.underscore.pluralize.to_sym
+ members = CIMI::Model::Schema::Array.new(member_symbol)
+ members.struct.schema.attributes = model.schema.attributes
+ base_schema.attributes << members
+ end
+
def base_schema
@schema ||= CIMI::Model::Schema.new
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/server/lib/cimi/models/disk_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/disk_collection.rb b/server/lib/cimi/models/disk_collection.rb
index b86a3c9..7dbff39 100644
--- a/server/lib/cimi/models/disk_collection.rb
+++ b/server/lib/cimi/models/disk_collection.rb
@@ -16,7 +16,7 @@ class CIMI::Model::DiskCollection < CIMI::Model::Base
text :count
#add disks array:
- self.schema.add_collection_member_array(CIMI::Model::Disk)
+ self << CIMI::Model::Disk
array :operations do
scalar :rel, :href
@@ -26,7 +26,6 @@ class CIMI::Model::DiskCollection < CIMI::Model::Base
instance = context.driver.instance(context.credentials, :id=>instance_id)
machine_conf = CIMI::Model::MachineConfiguration.find(instance.instance_profile.name, context)
disks = CIMI::Model::Disk.find(instance, machine_conf, context, :all)
- storage_override = instance.instance_profile.overrides.find { |p, v| p == :storage }
self.new(
:id => context.machine_url(instance_id)+"/disks",
:description => "DiskCollection for Machine #{instance_id}",
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 27c721d..9c57301 100644
--- a/server/lib/cimi/models/machine_collection.rb
+++ b/server/lib/cimi/models/machine_collection.rb
@@ -20,7 +20,7 @@ class CIMI::Model::MachineCollection < CIMI::Model::Base
text :count
#add machines array:
- self.schema.add_collection_member_array(CIMI::Model::Machine)
+ self << CIMI::Model::Machine
def self.default(context)
machines = CIMI::Model::Machine.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 e75bbb4..051e1b9 100644
--- a/server/lib/cimi/models/machine_configuration_collection.rb
+++ b/server/lib/cimi/models/machine_configuration_collection.rb
@@ -15,11 +15,9 @@
class CIMI::Model::MachineConfigurationCollection < CIMI::Model::Base
- act_as_root_entity :machine_configuration
-
text :count
- self.schema.add_collection_member_array(CIMI::Model::MachineConfiguration)
+ self << CIMI::Model::MachineConfiguration
def self.default(context)
machine_configurations = CIMI::Model::MachineConfiguration.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 703e515..cd4b5b4 100644
--- a/server/lib/cimi/models/machine_image_collection.rb
+++ b/server/lib/cimi/models/machine_image_collection.rb
@@ -19,7 +19,7 @@ class CIMI::Model::MachineImageCollection < CIMI::Model::Base
text :count
- self.schema.add_collection_member_array(CIMI::Model::MachineImage)
+ self << CIMI::Model::MachineImage
def self.default(context)
machine_images = CIMI::Model::MachineImage.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 bef9aaf..289c984 100644
--- a/server/lib/cimi/models/machine_template_collection.rb
+++ b/server/lib/cimi/models/machine_template_collection.rb
@@ -15,11 +15,9 @@
class CIMI::Model::MachineTemplateCollection < CIMI::Model::Base
- act_as_root_entity :machine_template
-
text :count
- self.schema.add_collection_member_array(CIMI::Model::MachineTemplate)
+ self << CIMI::Model::MachineTemplate
def self.default(context)
machine_templates = CIMI::Model::MachineTemplate.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/server/lib/cimi/models/machine_volume_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/machine_volume_collection.rb b/server/lib/cimi/models/machine_volume_collection.rb
index 85483ff..b9dfcad 100644
--- a/server/lib/cimi/models/machine_volume_collection.rb
+++ b/server/lib/cimi/models/machine_volume_collection.rb
@@ -16,7 +16,7 @@ class CIMI::Model::MachineVolumeCollection < CIMI::Model::Base
text :count
- self.schema.add_collection_member_array(CIMI::Model::MachineVolume)
+ self << CIMI::Model::MachineVolume
array :operations do
scalar :rel, :href
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 c17c3f7..7c746b4 100644
--- a/server/lib/cimi/models/network_collection.rb
+++ b/server/lib/cimi/models/network_collection.rb
@@ -17,8 +17,8 @@ class CIMI::Model::NetworkCollection < CIMI::Model::Base
act_as_root_entity :network
text :count
-#add networks Array:
- self.schema.add_collection_member_array(CIMI::Model::Network)
+ #add networks Array:
+ self << CIMI::Model::Network
def self.default(context)
networks = CIMI::Model::Network.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/server/lib/cimi/models/schema.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/schema.rb b/server/lib/cimi/models/schema.rb
index 4aa512a..03914b6 100644
--- a/server/lib/cimi/models/schema.rb
+++ b/server/lib/cimi/models/schema.rb
@@ -138,9 +138,7 @@ class CIMI::Model::Schema
private
def struct
- cname = "CIMI_#{json_name.upcase_first}"
- ::Struct.send(:remove_const, cname) if ::Struct.const_defined?(cname)
- @struct_class ||= ::Struct.new(cname, *@schema.attribute_names)
+ @struct_class ||= ::Struct.new(nil, *@schema.attribute_names)
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 6bec78f..e780845 100644
--- a/server/lib/cimi/models/volume_collection.rb
+++ b/server/lib/cimi/models/volume_collection.rb
@@ -19,7 +19,7 @@ class CIMI::Model::VolumeCollection < CIMI::Model::Base
text :count
- self.schema.add_collection_member_array(CIMI::Model::Volume)
+ self << CIMI::Model::Volume
def self.default(context)
volumes = CIMI::Model::Volume.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 8800e35..d8ac229 100644
--- a/server/lib/cimi/models/volume_configuration_collection.rb
+++ b/server/lib/cimi/models/volume_configuration_collection.rb
@@ -19,7 +19,7 @@ class CIMI::Model::VolumeConfigurationCollection < CIMI::Model::Base
text :count
- self.schema.add_collection_member_array(CIMI::Model::VolumeConfiguration)
+ self << CIMI::Model::VolumeConfiguration
def self.default(context)
volume_configurations = CIMI::Model::VolumeConfiguration.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 78881d5..d411431 100644
--- a/server/lib/cimi/models/volume_image_collection.rb
+++ b/server/lib/cimi/models/volume_image_collection.rb
@@ -17,9 +17,9 @@ class CIMI::Model::VolumeImageCollection < CIMI::Model::Base
act_as_root_entity :volume_image
- text :count
+ text :count
- self.schema.add_collection_member_array(CIMI::Model::VolumeImage)
+ self << CIMI::Model::VolumeImage
def self.default(context)
volume_images = CIMI::Model::VolumeImage.all(context)
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/731eae93/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 3f2ae02..90462a0 100644
--- a/server/lib/cimi/models/volume_template_collection.rb
+++ b/server/lib/cimi/models/volume_template_collection.rb
@@ -19,7 +19,7 @@ class CIMI::Model::VolumeTemplateCollection < CIMI::Model::Base
text :count
- self.schema.add_collection_member_array(CIMI::Model::VolumeTemplate)
+ self << CIMI::Model::VolumeTemplate
def self.default(context)
volume_templates = CIMI::Model::VolumeTemplate.all(context)