deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michal Fojtik <mfoj...@redhat.com>
Subject Re: [PATCH 3/5] Adds new CIMI::Network models and routes for Sinatra
Date Mon, 16 Jan 2012 12:38:51 GMT
On Jan 13, 2012, at 6:58 PM, marios@redhat.com wrote:

ACK.

Minor suggestion inline.

> From: marios <marios@redhat.com>
> 
> 
> Signed-off-by: marios <marios@redhat.com>
> ---
> server/lib/cimi/model.rb  |    5 +++
> server/lib/cimi/server.rb |   80 +++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 85 insertions(+), 0 deletions(-)
> 
> diff --git a/server/lib/cimi/model.rb b/server/lib/cimi/model.rb
> index 4fed4e8..1ecf848 100644
> --- a/server/lib/cimi/model.rb
> +++ b/server/lib/cimi/model.rb
> @@ -45,3 +45,8 @@ require 'cimi/model/volume_image_collection'
> require 'cimi/model/volume_template_collection'
> require 'cimi/model/entity_metadata'
> require 'cimi/model/entity_metadata_collection'
> +require 'cimi/model/network'
> +require 'cimi/model/network_collection'
> +require 'cimi/model/network_configuration'
> +require 'cimi/model/network_configuration_collection'
> +require 'cimi/model/network_template'
> diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb
> index 0829f1b..2a90c0e 100644
> --- a/server/lib/cimi/server.rb
> +++ b/server/lib/cimi/server.rb
> @@ -492,4 +492,84 @@ global_collection :entity_metadata do
> 
> end
> 
> +global_collection :networks do
> +  description 'A Network represents an abstraction of a layer 2 broadcast domain'
> +
> +  operation :index do
> +    description "List all Networks"
> +    param :CIMISelect,  :string,  :optional
> +    control do
> +      networks = NetworkCollection.default(self).filter_by(params[:CIMISelect])
> +      respond_to do |format|
> +        format.xml { networks.to_xml }
> +        format.json { networks.to_json }
> +      end
> +    end
> +  end
> +
> +  operation :show do
> +    description "Show a specific Network"
> +    param :id, :string, :required
> +    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 do
> +    description "Create a new Network"
> +    control do
> +      if request.content_type.end_with("+json")

I think we should create a helper:

if json_request?

def json_request?
  request.content_type.end_with("+json")
end

> +        network = Network.create_from_json(request.body.read, self)
> +      else
> +        network = Network.create_from_xml(request.body.read, self)
> +      end
> +      respond_to do |format|
> +        format.xml { network.to_xml}
> +        format.json { network.to_json }
> +      end
> +    end
> +  end
> +
> +  operation :destroy do
> +    description "Delete a specified Network"
> +    param :id, :string, :required
> +    control do
> +      Network.delete!(params[:id], self)
> +      no_content_with_status(200)
> +    end
> +  end
> +
> +end
> +
> +global_collection :network_configurations do
> +  description 'Network Configurations contain the set of configuration values representing
the information needed to create a Network with certain characteristics'
> +
> +  operation :index do
> +    description 'List all NetworkConfigurations'
> +    param :CIMISelect, :string, :optional
> +    control do
> +      network_configurations = NetworkConfigurationCollection.default(self).filter_by(params[:CIMISelect])
> +      respond_to do |format|
> +        format.xml { network_configurations.to_xml  }
> +        format.json { network_configurations.to_json }
> +      end
> +    end
> +  end
> +
> +  operation :show do
> +    description 'Show a specific NetworkConfiguration'
> +    param :id, :string, :required
> +    control do
> +      network_config = NetworkConfiguration.find(params[:id], self)
> +      respond_to do
> +        format.xml { network_config.to_xml }
> +        format.json { network_config.to_json }
> +      end
> +    end
> +  end
> +end
> end
> -- 
> 1.7.6.5
> 

------------------------------------------------------
Michal Fojtik, mfojtik@redhat.com
Deltacloud API: http://deltacloud.org


Mime
View raw message