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 2013/03/27 13:36:48 UTC
[2/2] git commit: CIMI: Revamp all collections to use generated
operations (where possible)
CIMI: Revamp all collections to use generated operations (where possible)
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/fcffad13
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/fcffad13
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/fcffad13
Branch: refs/heads/master
Commit: fcffad13e66175152cf8a43d615b79727902b5ee
Parents: f2df008
Author: Michal Fojtik <mf...@redhat.com>
Authored: Wed Mar 27 08:57:23 2013 +0100
Committer: Michal fojtik <mf...@redhat.com>
Committed: Wed Mar 27 08:57:23 2013 +0100
----------------------------------------------------------------------
server/lib/cimi/collections/address_templates.rb | 46 +------------
server/lib/cimi/collections/addresses.rb | 48 ++------------
server/lib/cimi/collections/base.rb | 6 ++-
server/lib/cimi/collections/credentials.rb | 47 +------------
.../cimi/collections/forwarding_group_templates.rb | 22 +------
server/lib/cimi/collections/forwarding_groups.rb | 23 +------
.../lib/cimi/collections/machine_configurations.rb | 22 +------
server/lib/cimi/collections/machine_images.rb | 46 +------------
server/lib/cimi/collections/machine_templates.rb | 46 +------------
server/lib/cimi/collections/machines.rb | 46 +------------
.../lib/cimi/collections/network_configurations.rb | 22 +------
.../collections/network_port_configurations.rb | 23 +------
.../lib/cimi/collections/network_port_templates.rb | 25 +-------
server/lib/cimi/collections/network_ports.rb | 52 ++-------------
server/lib/cimi/collections/network_templates.rb | 23 +------
server/lib/cimi/collections/networks.rb | 44 +-----------
server/lib/cimi/collections/resource_metadata.rb | 23 +------
server/lib/cimi/collections/system_templates.rb | 49 +-------------
server/lib/cimi/collections/systems.rb | 49 +-------------
.../lib/cimi/collections/volume_configurations.rb | 49 +-------------
server/lib/cimi/collections/volume_images.rb | 46 +------------
server/lib/cimi/collections/volume_templates.rb | 49 ++------------
server/lib/cimi/collections/volumes.rb | 52 +-------------
server/lib/cimi/helpers.rb | 1 +
server/lib/cimi/service/cloud_entry_point.rb | 4 +
25 files changed, 86 insertions(+), 777 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/address_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/address_templates.rb b/server/lib/cimi/collections/address_templates.rb
index 99fe745..0754002 100644
--- a/server/lib/cimi/collections/address_templates.rb
+++ b/server/lib/cimi/collections/address_templates.rb
@@ -20,48 +20,10 @@ module CIMI::Collections
collection :address_templates do
- operation :index do
- description 'List all AddressTemplates in the AddressTemplateCollection'
- control do
- address_templates = AddressTemplate.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {address_templates.to_xml}
- format.json {address_templates.to_json}
- end
- end
- end
-
- operation :show do
- description 'Show a specific AddressTemplate'
- control do
- address_template = AddressTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml {address_template.to_xml}
- format.json {address_template.to_json}
- end
- end
- end
-
- operation :create do
- description "Create new AddressTemplate"
- control do
- addr_templ = AddressTemplateCreate.parse(self)
- new_address_template = addr_templ.create
- headers_for_create new_address_template
- respond_to do |format|
- format.json { new_address_template.to_json }
- format.xml { new_address_template.to_xml }
- end
- end
- end
-
- operation :destroy do
- description "Delete a specified AddressTemplate"
- control do
- AddressTemplate.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_index_operation
+ generate_show_operation
+ generate_create_operation
+ generate_delete_operation
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/addresses.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/addresses.rb b/server/lib/cimi/collections/addresses.rb
index 682cce4..1877c67 100644
--- a/server/lib/cimi/collections/addresses.rb
+++ b/server/lib/cimi/collections/addresses.rb
@@ -19,53 +19,15 @@ module CIMI::Collections
set :capability, lambda { |m| driver.respond_to? m }
collection :addresses do
-
description 'An Address represents an IP address, and its associated metadata, for a particular Network.'
- operation :index, :with_capability => :addresses do
- description 'List all Addresses in the AddressCollection'
- control do
- addresses = Address.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {addresses.to_xml}
- format.json {addresses.to_json}
- end
- end
- end
-
- operation :show, :with_capability => :address do
- description 'Show a specific Address'
- control do
- address = Address.find(params[:id], self)
- respond_to do |format|
- format.xml {address.to_xml}
- format.json {address.to_json}
- end
- end
- end
-
- operation :create, :with_capability => :create_address do
- description "Create a new Address"
- control do
- addr = AddressCreate.parse(self)
- address = addr.create
- respond_to do |format|
- format.xml { address.to_xml }
- format.json { address.to_json }
- end
- end
- end
-
- operation :destroy, :with_capability => :delete_address do
- description "Delete a specified Address"
- param :id, :string, :required
- control do
- Address.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_index_operation :with_capability => :addresses
+ generate_show_operation :with_capability => :address
+ generate_delete_operation :with_capability => :destroy_address
+ generate_create_operation :with_capability => :create_address
end
+
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/base.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/base.rb b/server/lib/cimi/collections/base.rb
index 29657ab..515a074 100644
--- a/server/lib/cimi/collections/base.rb
+++ b/server/lib/cimi/collections/base.rb
@@ -22,6 +22,10 @@ module CIMI::Collections
enable :use_namespace
end
+ helpers Sinatra::Rabbit::URLHelper
+
+ Sinatra::Rabbit::Collection.extend(CIMI::RabbitHelper)
+
include Sinatra::Rabbit
include Sinatra::Rabbit::Features
include CIMI::Service
@@ -29,7 +33,7 @@ module CIMI::Collections
helpers Deltacloud::Helpers::Drivers
helpers Deltacloud::Helpers::Database
helpers Sinatra::AuthHelper
- helpers Sinatra::Rabbit::URLHelper
+
helpers Deltacloud::Helpers::Application
helpers CIMI::Helper
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/credentials.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/credentials.rb b/server/lib/cimi/collections/credentials.rb
index 0cd44b9..5abbd85 100644
--- a/server/lib/cimi/collections/credentials.rb
+++ b/server/lib/cimi/collections/credentials.rb
@@ -21,49 +21,10 @@ module CIMI::Collections
collection :credentials do
description 'Machine Admin entity'
- operation :index, :with_capability => :keys do
- description "List all machine admins"
- control do
- credentials = Credential.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { credentials.to_xml }
- format.json { credentials.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :key do
- description "Show specific machine admin"
- control do
- credential = Credential.find(params[:id], self)
- respond_to do |format|
- format.xml { credential.to_xml }
- format.json { credential.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_key do
- description "Show specific machine admin"
- control do
- c = CredentialCreate.parse(self)
- new_admin = c.create
- headers_for_create new_admin
- respond_to do |format|
- format.json { new_admin.to_json }
- format.xml { new_admin.to_xml }
- end
- end
- end
-
- operation :delete, :with_capability => :destroy_key do
- description "Delete specified Credential entity"
- control do
- Credential.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
-
+ generate_show_operation :with_capability => :keys
+ generate_index_operation :with_capability => :keys
+ generate_create_operation :with_capability => :create_key
+ generate_delete_operation :with_capability => :delete_key
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/forwarding_group_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/forwarding_group_templates.rb b/server/lib/cimi/collections/forwarding_group_templates.rb
index 98c19d5..072783a 100644
--- a/server/lib/cimi/collections/forwarding_group_templates.rb
+++ b/server/lib/cimi/collections/forwarding_group_templates.rb
@@ -19,27 +19,9 @@ module CIMI::Collections
collection :forwarding_group_templates do
- operation :index, :with_capability => :forwarding_groups do
- description 'List all ForwardingGroupTemplates in the ForwardingGroupTemplateCollection'
- control do
- forwarding_group_templates = ForwardingGroupTemplate.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {forwarding_group_templates.to_xml}
- format.json {forwarding_group_templates.to_json}
- end
- end
- end
+ generate_index_operation :with_capability => :forwarding_groups
+ generate_show_operation :with_capability => :forwarding_groups
- operation :show, :with_capability => :forwarding_groups do
- description 'Show a specific ForwardingGroupTemplate'
- control do
- forwarding_group_template = ForwardingGroupTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml {forwarding_group_template.to_xml}
- format.json {forwarding_group_template.to_json}
- end
- end
- end
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/forwarding_groups.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/forwarding_groups.rb b/server/lib/cimi/collections/forwarding_groups.rb
index 6422b50..fe2ec3d 100644
--- a/server/lib/cimi/collections/forwarding_groups.rb
+++ b/server/lib/cimi/collections/forwarding_groups.rb
@@ -19,27 +19,8 @@ module CIMI::Collections
collection :forwarding_groups do
- operation :index, :with_capability => :forwarding_groups do
- description 'List all ForwardingGroups in the ForwardingGroupsCollection'
- control do
- forwarding_groups = ForwardingGroup.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {forwarding_groups.to_xml}
- format.json {forwarding_groups.to_json}
- end
- end
- end
-
- operation :show, :with_capability => :forwarding_groups do
- description 'Show a specific ForwardingGroup'
- control do
- forwarding_group = ForwardingGroup.find(params[:id], self)
- respond_to do |format|
- format.xml {forwarding_group.to_xml}
- format.json {forwarding_group.to_json}
- end
- end
- end
+ generate_index_operation :with_capability => :forwarding_groups
+ generate_show_operation :with_capability => :forwarding_groups
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/machine_configurations.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/machine_configurations.rb b/server/lib/cimi/collections/machine_configurations.rb
index 2d75559..6a48183 100644
--- a/server/lib/cimi/collections/machine_configurations.rb
+++ b/server/lib/cimi/collections/machine_configurations.rb
@@ -21,27 +21,9 @@ module CIMI::Collections
collection :machine_configurations do
description 'List all machine configurations'
- operation :index, :with_capability => :hardware_profiles do
- description "List all machine configurations"
- control do
- machine_configs = MachineConfiguration.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { machine_configs.to_xml }
- format.json { machine_configs.to_json }
- end
- end
- end
+ generate_show_operation :with_capability => :hardware_profile
+ generate_index_operation :with_capability => :hardware_profiles
- operation :show, :with_capability => :hardware_profile do
- control do
- machine_conf = MachineConfiguration.find(params[:id], self)
- respond_to do |format|
- format.xml { machine_conf.to_xml }
- format.json { machine_conf.to_json }
- end
- end
-
- end
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/machine_images.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/machine_images.rb b/server/lib/cimi/collections/machine_images.rb
index 66c74c2..3c6e5f3 100644
--- a/server/lib/cimi/collections/machine_images.rb
+++ b/server/lib/cimi/collections/machine_images.rb
@@ -21,48 +21,10 @@ module CIMI::Collections
collection :machine_images do
description 'List all machine images'
- operation :index, :with_capability => :images do
- description "List all machine configurations"
- control do
- machine_images = MachineImage.list(self)
- respond_to do |format|
- format.xml { machine_images.to_xml }
- format.json { machine_images.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :image do
- description "Show specific machine image."
- control do
- machine_image = MachineImage.find(params[:id], self)
- respond_to do |format|
- format.xml { machine_image.to_xml }
- format.json { machine_image.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_image do
- description "Create a new machine image."
- control do
- mi = MachineImageCreate.parse(self)
- machine_image = mi.create
- headers_for_create machine_image
- respond_to do |format|
- format.xml { machine_image.to_xml }
- format.json { machine_image.to_json }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_image do
- description "Delete a specified MachineImage"
- control do
- MachineImage.delete!(params[:id], self)
- no_content_with_status 200
- end
- end
+ generate_show_operation :with_capability => :image
+ generate_index_operation :with_capability => :images
+ generate_delete_operation :with_capability => :destroy_image
+ generate_create_operation :with_capability => :create_image
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/machine_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/machine_templates.rb b/server/lib/cimi/collections/machine_templates.rb
index fcdafcc..04f9093 100644
--- a/server/lib/cimi/collections/machine_templates.rb
+++ b/server/lib/cimi/collections/machine_templates.rb
@@ -20,48 +20,10 @@ module CIMI::Collections
collection :machine_templates do
- operation :index do
- description "List all machine templates"
- control do
- machine_templates = MachineTemplate.list(self)
- respond_to do |format|
- format.xml { machine_templates.to_xml }
- format.json { machine_templates.to_json }
- end
- end
- end
-
- operation :show do
- description "Show specific machine template"
- control do
- machine_template = MachineTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml { machine_template.to_xml }
- format.json { machine_template.to_json }
- end
- end
- end
-
- operation :create do
- description "Create new machine template"
- control do
- mt = MachineTemplateCreate.parse(self)
- new_machine_template = mt.create
- headers_for_create new_machine_template
- respond_to do |format|
- format.json { new_machine_template.to_json }
- format.xml { new_machine_template.to_xml }
- end
- end
- end
-
- operation :destroy do
- description "Delete a specified machine template"
- control do
- MachineTemplate.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_show_operation
+ generate_index_operation
+ generate_create_operation
+ generate_delete_operation
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/machines.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/machines.rb b/server/lib/cimi/collections/machines.rb
index f74b02b..0892604 100644
--- a/server/lib/cimi/collections/machines.rb
+++ b/server/lib/cimi/collections/machines.rb
@@ -21,48 +21,10 @@ module CIMI::Collections
collection :machines do
description 'List all machine'
- operation :index, :with_capability => :instances do
- description "List all machines"
- control do
- machines = Machine.list(self)
- respond_to do |format|
- format.xml { machines.to_xml }
- format.json { machines.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :instance do
- description "Show specific machine."
- control do
- machine = Machine.find(params[:id], self)
- respond_to do |format|
- format.xml { machine.to_xml }
- format.json { machine.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_instance do
- description "Create a new Machine entity."
- control do
- mc = MachineCreate.parse(self)
- new_machine = mc.create
- headers_for_create new_machine
- respond_to do |format|
- format.json { new_machine.to_json }
- format.xml { new_machine.to_xml }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_instance do
- description "Delete a specified machine."
- control do
- Machine.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_show_operation :with_capability => :instance
+ generate_index_operation :with_capability => :instances
+ generate_delete_operation :with_capability => :destroy_instance
+ generate_create_operation :with_capability => :create_instance
action :stop, :with_capability => :stop_instance do
description "Stop specific machine."
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/network_configurations.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/network_configurations.rb b/server/lib/cimi/collections/network_configurations.rb
index 5dcaa9b..007f844 100644
--- a/server/lib/cimi/collections/network_configurations.rb
+++ b/server/lib/cimi/collections/network_configurations.rb
@@ -20,27 +20,9 @@ module CIMI::Collections
collection :network_configurations do
- operation :index, :with_capability => :network_configurations do
- description 'List all NetworkConfigurations'
- control do
- network_configurations = NetworkConfiguration.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { network_configurations.to_xml }
- format.json { network_configurations.to_json }
- end
- end
- end
+ generate_show_operation :with_capability => :network_configurations
+ generate_index_operation :with_capability => :network_configurations
- operation :show, :with_capability => :network_configurations do
- description 'Show a specific NetworkConfiguration'
- control do
- network_config = NetworkConfiguration.find(params[:id], self)
- respond_to do |format|
- format.xml { network_config.to_xml }
- format.json { network_config.to_json }
- end
- end
- end
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/network_port_configurations.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/network_port_configurations.rb b/server/lib/cimi/collections/network_port_configurations.rb
index 52a8b86..ea1b49b 100644
--- a/server/lib/cimi/collections/network_port_configurations.rb
+++ b/server/lib/cimi/collections/network_port_configurations.rb
@@ -20,27 +20,8 @@ module CIMI::Collections
collection :network_port_configurations do
- operation :index, :with_capability => :network_port_configurations do
- description 'List all NetworkPortConfigurations in the NetworkPortConfigurationCollection'
- control do
- net_port_configs = NetworkPortConfiguration.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {net_port_configs.to_xml}
- format.json {net_port_configs.to_json}
- end
- end
- end
-
- operation :show, :with_capability => :network_port_configurations do
- description 'Show a specific NetworkPortConfiguration'
- control do
- net_port_config = NetworkPortConfiguration.find(params[:id], self)
- respond_to do |format|
- format.xml {net_port_config.to_xml}
- format.json {net_port_config.to_json}
- end
- end
- end
+ generate_index_operation :with_capability => :network_port_configurations
+ generate_show_operation :with_capability => :network_port_configurations
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/network_port_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/network_port_templates.rb b/server/lib/cimi/collections/network_port_templates.rb
index 94c6744..38f6b4d 100644
--- a/server/lib/cimi/collections/network_port_templates.rb
+++ b/server/lib/cimi/collections/network_port_templates.rb
@@ -20,29 +20,8 @@ module CIMI::Collections
collection :network_port_templates do
- description 'The NetworkPort Template is a set of Configuration values for realizing a NetworkPort. A NetworkPort Template may be used to create multiple NetworkPorts'
-
- operation :index, :with_capability => :network_port_templates do
- description 'List all NetworkPortTemplates in the NetworkPortTemplateCollection'
- control do
- network_port_templates = NetworkPortTemplate.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {network_port_templates.to_xml}
- format.json {network_port_templates.to_json}
- end
- end
- end
-
- operation :show, :with_capability => :network_port_templates do
- description 'Show a specific NetworkPortTemplate'
- control do
- network_port_template = NetworkPortTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml {network_port_template.to_xml}
- format.json {network_port_template.to_json}
- end
- end
- end
+ generate_show_operation :with_capability => :network_port_templates
+ generate_index_operation :with_capability => :network_port_templates
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/network_ports.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/network_ports.rb b/server/lib/cimi/collections/network_ports.rb
index 021ae7b..878b532 100644
--- a/server/lib/cimi/collections/network_ports.rb
+++ b/server/lib/cimi/collections/network_ports.rb
@@ -19,53 +19,13 @@ module CIMI::Collections
set :capability, lambda { |m| driver.respond_to? m }
collection :network_ports do
+ description 'A NetworkPort is a realized connection point between a Network'+
+ ' and a resource - such as a Machine.'
- description 'A NetworkPort is a realized connection point between a Network and a resource - such as a Machine.'
-
- operation :index, :with_capability => :network_ports do
- description 'List all NetworkPorts in the NetworkPortCollection'
- control do
- network_ports = NetworkPort.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {network_ports.to_xml}
- format.json {network_ports.to_json}
- end
- end
- end
-
- operation :show, :with_capability => :network_ports do
- description 'Show a specific NetworkPort'
- control do
- network_port = NetworkPort.find(params[:id], self)
- respond_to do |format|
- format.xml {network_port.to_xml}
- format.json {network_port.to_json}
- end
- end
- end
-
- operation :create, :with_capability => :create_network_port do
- description "Create a new NetworkPort"
- control do
- if current_content_type == :json
- network_port = NetworkPort.create(request.body.read, self, :json)
- else
- network_port = NetworkPort.create(request.body.read, self, :xml)
- end
- respond_to do |format|
- format.xml { network_port.to_xml }
- format.json { network_port.to_json }
- end
- end
- end
-
- operation :destroy, :with_capability => :delete_network_port do
- description "Delete a specified NetworkPort"
- control do
- NetworkPort.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_show_operation :with_capability => :network_port
+ generate_index_operation :with_capability => :networks_ports
+ generate_create_operation :with_capability => :create_network_port
+ generate_delete_operation :with_capability => :destroy_network_port
action :start, :with_capability => :start_network_port do
description "Start specific NetworkPort."
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/network_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/network_templates.rb b/server/lib/cimi/collections/network_templates.rb
index 541d607..887f1db 100644
--- a/server/lib/cimi/collections/network_templates.rb
+++ b/server/lib/cimi/collections/network_templates.rb
@@ -20,27 +20,8 @@ module CIMI::Collections
collection :network_templates do
- operation :index, :with_capability => :network_templates do
- description 'List all Network Templates in the NetworkTemplateCollection'
- control do
- network_templates = NetworkTemplate.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml {network_templates.to_xml}
- format.json {network_templates.to_json}
- end
- end
- end
-
- operation :show, :with_capability => :network_templates do
- description 'Show a specific Network Template'
- control do
- network_template = NetworkTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml {network_template.to_xml}
- format.json {network_template.to_json}
- end
- end
- end
+ generate_index_operation :with_capability => :network_templates
+ generate_show_operation :with_capability => :network_templates
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/networks.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/networks.rb b/server/lib/cimi/collections/networks.rb
index f3d6fc9..92f56ca 100644
--- a/server/lib/cimi/collections/networks.rb
+++ b/server/lib/cimi/collections/networks.rb
@@ -21,47 +21,11 @@ module CIMI::Collections
collection :networks do
description 'A Network represents an abstraction of a layer 2 broadcast domain'
- operation :index, :with_capability => :networks do
- description "List all Networks"
- control do
- networks = Network.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { networks.to_xml }
- format.json { networks.to_json }
- end
- end
- end
+ generate_show_operation :with_capability => :network
+ generate_index_operation :with_capability => :networks
+ generate_delete_operation :with_capability => :destroy_network
+ generate_create_operation :with_capability => :create_network
- operation :show, :with_capability => :networks do
- description "Show a specific Network"
- control do
- network = Network.find(params[:id], self)
- respond_to do |format|
- format.xml { network.to_xml }
- format.json { network.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_network do
- description "Create a new Network"
- control do
- n = NetworkCreate.parse(self)
- network = n.create
- respond_to do |format|
- format.xml { network.to_xml}
- format.json { network.to_json }
- end
- end
- end
-
- operation :destroy, :with_capability => :delete_network do
- description "Delete a specified Network"
- control do
- Network.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
action :start, :with_capability => :start_network do
description "Start specific network."
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/resource_metadata.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/resource_metadata.rb b/server/lib/cimi/collections/resource_metadata.rb
index f27ee33..b453dc6 100644
--- a/server/lib/cimi/collections/resource_metadata.rb
+++ b/server/lib/cimi/collections/resource_metadata.rb
@@ -18,27 +18,8 @@ module CIMI::Collections
collection :resource_metadata do
- operation :index do
- description "List all resource metadata defined for this provider"
- control do
- resource_metadata = CIMI::Service::ResourceMetadata.list(self)
- respond_to do |format|
- format.xml{resource_metadata.to_xml}
- format.json{resource_metadata.to_json}
- end
- end
- end
-
- operation :show do
- description "Get the resource metadata for a specific collection"
- control do
- resource_metadata = CIMI::Service::ResourceMetadata.find(params[:id], self)
- respond_to do |format|
- format.xml{resource_metadata.to_xml}
- format.json{resource_metadata.to_json}
- end
- end
- end
+ generate_index_operation
+ generate_show_operation
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/system_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/system_templates.rb b/server/lib/cimi/collections/system_templates.rb
index fe27cd3..d7e51f6 100644
--- a/server/lib/cimi/collections/system_templates.rb
+++ b/server/lib/cimi/collections/system_templates.rb
@@ -20,51 +20,10 @@ module CIMI::Collections
collection :system_templates do
- operation :index, :with_capability => :system_templates do
- description "List all system templates"
- control do
- system_templates = SystemTemplate.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { system_templates.to_xml }
- format.json { system_templates.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :system_templates do
- description "Show specific system template"
- control do
- system_template = SystemTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml { system_template.to_xml }
- format.json { system_template.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_system_template do
- description "Create new system template"
- control do
- if grab_content_type(request.content_type, request.body) == :json
- new_system_template = SystemTemplate.create_from_json(request.body.read, self)
- else
- new_system_template = SystemTemplate.create_from_xml(request.body.read, self)
- end
- headers_for_create new_system_template
- respond_to do |format|
- format.json { new_system_template.to_json }
- format.xml { new_system_template.to_xml }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_system_template do
- description "Delete a specified system template"
- control do
- SystemTemplate.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_index_operation :with_capability => :system_templates
+ generate_show_operation :with_capability => :system_templates
+ generate_create_operation :with_capability => :create_system_template
+ generate_delete_operation :with_capability => :destroy_system_template
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/systems.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/systems.rb b/server/lib/cimi/collections/systems.rb
index a6adb8d..5c3903e 100644
--- a/server/lib/cimi/collections/systems.rb
+++ b/server/lib/cimi/collections/systems.rb
@@ -21,51 +21,10 @@ module CIMI::Collections
collection :systems do
description 'List all systems'
- operation :index, :with_capability => :systems do
- description "List all systems"
- control do
- systems = System.list(self).select_by(params['$select']).filter_by(params['$filter'])
- respond_to do |format|
- format.xml { systems.to_xml }
- format.json { systems.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :systems do
- description "Show specific system."
- control do
- system = System.find(params[:id], self)
- respond_to do |format|
- format.xml { system.to_xml }
- format.json { system.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_system do
- description "Create a new System entity."
- control do
- if grab_content_type(request.content_type, request.body) == :json
- new_system = System.create_from_json(request.body.read, self)
- else
- new_system = System.create_from_xml(request.body.read, self)
- end
- headers_for_create new_system
- respond_to do |format|
- format.json { new_system.to_json }
- format.xml { new_system.to_xml }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_system do
- description "Delete a specified system."
- control do
- System.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_index_operation :with_capability => :systems
+ generate_show_operation :with_capability => :systems
+ generate_create_operation :with_capability => :create_system
+ generate_delete_operation :with_capability => :destroy_system
action :stop, :with_capability => :stop_system do
description "Stop specific system."
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/volume_configurations.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/volume_configurations.rb b/server/lib/cimi/collections/volume_configurations.rb
index 45a9d47..405e194 100644
--- a/server/lib/cimi/collections/volume_configurations.rb
+++ b/server/lib/cimi/collections/volume_configurations.rb
@@ -20,51 +20,10 @@ module CIMI::Collections
collection :volume_configurations do
- operation :index, :with_capability => :storage_volumes do
- description "Get list all VolumeConfigurations"
- control do
- volume_configuration = VolumeConfiguration.list(self)
- respond_to do |format|
- format.xml { volume_configuration.to_xml }
- format.json { volume_configuration.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :storage_volume do
- description "Get a specific VolumeConfiguration"
- control do
- volume_config = VolumeConfiguration.find(params[:id], self)
- respond_to do |format|
- format.xml { volume_config.to_xml }
- format.json { volume_config.json }
- end
- end
- end
-
- operation :create, :with_capability => :create_storage_volume do
- description "Create new VolumeConfiguration"
- control do
- if current_content_type == :json
- new_config = VolumeConfiguration.create_from_json(request.body.read, self)
- else
- new_config = VolumeConfiguration.create_from_xml(request.body.read, self)
- end
- headers_for_create new_config
- respond_to do |format|
- format.json { new_config.to_json }
- format.xml { new_config.to_xml }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_storage_volume do
- description "Delete a specified VolumeConfiguration"
- control do
- VolumeConfiguration.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
+ generate_index_operation :with_capability => :storage_volumes
+ generate_show_operation :with_capability => :storage_volume
+ generate_create_operation :with_capability => :create_storage_volume
+ generate_delete_operation :with_capability => :storage_volume
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/volume_images.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/volume_images.rb b/server/lib/cimi/collections/volume_images.rb
index b9970b4..22ae879 100644
--- a/server/lib/cimi/collections/volume_images.rb
+++ b/server/lib/cimi/collections/volume_images.rb
@@ -21,48 +21,10 @@ module CIMI::Collections
collection :volume_images do
description 'This entity represents an image that could be place on a pre-loaded volume.'
- operation :index, :with_capability => :storage_snapshots do
- description "List all volumes images"
- control do
- volume_images = VolumeImage.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { volume_images.to_xml }
- format.json { volume_images.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :storage_snapshot do
- description "Show a specific volume image"
- control do
- volume_image = VolumeImage.find(params[:id], self)
- respond_to do |format|
- format.xml { volume_image.to_xml }
- format.json { volume_image.to_json }
- end
- end
- end
-
- operation :create, :with_capability => :create_storage_snapshot do
- description "Create a new volume image."
- control do
- img = VolumeImageCreate.parse(self)
- volume_image = img.create
- headers_for_create volume_image
- respond_to do |format|
- format.xml { volume_image.to_xml }
- format.json { volume_image.to_json }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_storage_snapshot do
- description "Delete a specified VolumeImage"
- control do
- VolumeImage.delete!(params[:id], self)
- no_content_with_status 200
- end
- end
+ generate_index_operation :with_capability => :storage_snapshots
+ generate_show_operation :with_capability => :storage_snapshot
+ generate_create_operation :with_capability => :create_storage_snapshot
+ generate_delete_operation :with_capability => :destroy_storage_snapshot
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/volume_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/volume_templates.rb b/server/lib/cimi/collections/volume_templates.rb
index 556fe96..9e2a2b4 100644
--- a/server/lib/cimi/collections/volume_templates.rb
+++ b/server/lib/cimi/collections/volume_templates.rb
@@ -20,51 +20,12 @@ module CIMI::Collections
collection :volume_templates do
- operation :index, :with_capability => :storage_volumes do
- description "Retrieve the Volume Template Collection"
- control do
- volume_template = VolumeTemplate.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { volume_template.to_xml }
- format.json { volume_template.to_json }
- end
- end
- end
+ generate_index_operation :with_capability => :storage_volumes
+ generate_show_operation :with_capability => :storage_volume
+ generate_create_operation :with_capability => :create_storage_volume
+ generate_delete_operation :with_capability => :destroy_storage_volume
- operation :show, :with_capability => :storage_volume do
- description "Get a specific VolumeTemplate"
- control do
- volume_template = VolumeTemplate.find(params[:id], self)
- respond_to do |format|
- format.xml { volume_template.to_xml }
- format.json { volume_template.json }
- end
- end
- end
-
- operation :create, :with_capability => :create_storage_volume do
- description "Create new VolumeTemplate"
- control do
- puts request.body
- vol = VolumeTemplateCreate.parse(self)
- new_template = vol.create
- headers_for_create new_template
- respond_to do |format|
- format.json { new_template.to_json }
- format.xml { new_template.to_xml }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_storage_volume do
- description "Delete a specified VolumeTemplate"
- control do
- VolumeTemplate.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
-
- end
+ end
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/collections/volumes.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/volumes.rb b/server/lib/cimi/collections/volumes.rb
index 49a58b3..c32cfa8 100644
--- a/server/lib/cimi/collections/volumes.rb
+++ b/server/lib/cimi/collections/volumes.rb
@@ -19,54 +19,10 @@ module CIMI::Collections
set :capability, lambda { |m| driver.respond_to? m }
collection :volumes do
-
- operation :index, :with_capability => :storage_volumes do
- description "List all volumes"
- control do
- volumes = Volume.list(self).select_by(params['$select'])
- respond_to do |format|
- format.xml { volumes.to_xml }
- format.json { volumes.to_json }
- end
- end
- end
-
- operation :show, :with_capability => :storage_volume do
- description "Show specific Volume."
- control do
- volume = Volume.find(params[:id], self)
- if volume
- respond_to do |format|
- format.xml { volume.to_xml }
- format.json { volume.to_json }
- end
- else
- report_error(404)
- end
- end
- end
-
- operation :create, :with_capability => :create_storage_volume do
- description "Create a new Volume."
- control do
- vol = VolumeCreate.parse(self)
- new_volume = vol.create
- headers_for_create new_volume
- respond_to do |format|
- format.json { new_volume.to_json }
- format.xml { new_volume.to_xml }
- end
- end
- end
-
- operation :destroy, :with_capability => :destroy_storage_volume do
- description "Delete a specified Volume"
- control do
- Volume.delete!(params[:id], self)
- no_content_with_status(200)
- end
- end
-
+ generate_index_operation :with_capability => :storage_volumes
+ generate_show_operation :with_capability => :storage_volume
+ generate_create_operation :with_capability => :create_storage_volume
+ generate_delete_operation :with_capability => :destroy_storage_volume
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/helpers.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/helpers.rb b/server/lib/cimi/helpers.rb
index 75f9770..43f61f3 100644
--- a/server/lib/cimi/helpers.rb
+++ b/server/lib/cimi/helpers.rb
@@ -35,4 +35,5 @@ require_relative '../deltacloud/helpers/deltacloud_helper'
require_relative '../deltacloud/helpers/rabbit_helper'
require_relative './helpers/cimi_helper'
+require_relative './helpers/cimi_rabbit_helper'
require_relative './helpers/database_helper'
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/fcffad13/server/lib/cimi/service/cloud_entry_point.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/service/cloud_entry_point.rb b/server/lib/cimi/service/cloud_entry_point.rb
index 9491e3d..a61eec7 100644
--- a/server/lib/cimi/service/cloud_entry_point.rb
+++ b/server/lib/cimi/service/cloud_entry_point.rb
@@ -34,6 +34,10 @@ class CIMI::Service::CloudEntryPoint < CIMI::Service::Base
def self.entities(context)
CIMI::Collections.modules(:cimi).inject({}) do |supported_entities, m|
m.collections.each do |c|
+ if c.operation(:index).nil?
+ warn "#{c} does not have :index operation."
+ next
+ end
index_operation_capability = c.operation(:index).required_capability
next if m.settings.respond_to?(:capability) and !m.settings.capability(index_operation_capability)
supported_entities[c.collection_name.to_s] = { :href => context.send(:"#{c.collection_name}_url") }