You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by lu...@redhat.com on 2012/11/08 05:05:34 UTC

[PATCH 08/10] CIMI: define order of toplevel resources explicitly

From: David Lutterkort <lu...@redhat.com>

This allows us to load models in models.rb in the order in which they are
needed by the code
---
 server/lib/cimi/models.rb                   |   12 +++++-------
 server/lib/cimi/models/cloud_entry_point.rb |   17 +++++++++++++++++
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/server/lib/cimi/models.rb b/server/lib/cimi/models.rb
index 3f5dace..3e7027d 100644
--- a/server/lib/cimi/models.rb
+++ b/server/lib/cimi/models.rb
@@ -27,23 +27,21 @@ require_relative './models/action'
 require_relative './models/machine_volume'
 require_relative './models/disk'
 
-# Toplevel entities; order matters as it determines the order
-# in which the entities appear in the CEP
 require_relative './models/cloud_entry_point'
 require_relative './models/resource_metadata'
+require_relative './models/volume'
+require_relative './models/volume_template'
+require_relative './models/volume_configuration'
+require_relative './models/volume_image'
 require_relative './models/machine'
 require_relative './models/machine_template'
 require_relative './models/machine_configuration'
 require_relative './models/machine_image'
 require_relative './models/credential'
-require_relative './models/volume'
-require_relative './models/volume_template'
-require_relative './models/volume_configuration'
-require_relative './models/volume_image'
+require_relative './models/network_port'
 require_relative './models/network'
 require_relative './models/network_template'
 require_relative './models/network_configuration'
-require_relative './models/network_port'
 require_relative './models/network_port_template'
 require_relative './models/network_port_configuration'
 require_relative './models/address'
diff --git a/server/lib/cimi/models/cloud_entry_point.rb b/server/lib/cimi/models/cloud_entry_point.rb
index 55b0a21..c03c524 100644
--- a/server/lib/cimi/models/cloud_entry_point.rb
+++ b/server/lib/cimi/models/cloud_entry_point.rb
@@ -15,8 +15,25 @@
 
 class CIMI::Model::CloudEntryPoint < CIMI::Model::Base
 
+  # All possible CIMI collections, in the order in which they should appear
+  # in the CEP
+  COLLECTIONS = [ "resourceMetadata", "systems", "systemTemplates",
+            "machines" , "machineTemplates", "machineConfigs",
+            "machineImages", "credentials", "credentialTemplates",
+            "volumes", "volumeTemplates", "volumeConfigs", "volumeImages",
+            "networks", "networkTemplates", "networkConfigs", "networkPorts",
+            "networkPortTemplates", "networkPortConfigs",
+            "addresses", "addressTemplates", "forwardingGroups",
+            "forwardingGroupTemplates",
+            "jobs", "meters", "meterTemplates", "meterConfigs",
+            "eventLogs", "eventLogTemplates" ]
+
   text  :base_uri, :xml_name => "baseURI", :json_name => "baseURI"
 
+  COLLECTIONS.each do |coll|
+    href coll.underscore
+  end
+
   def self.create(context)
     self.new(entities(context).merge({
       :name => context.driver.name,
-- 
1.7.7.6