You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by ma...@redhat.com on 2012/03/09 18:42:45 UTC

CIMI Networking - updating CIMI client

Continuation of CIMI Networking implementation. Adds mocking data for
mock_driver network/network_config and updates CIMI client to handle these
collections. Still more to be done for CIMI::Networks


marios

[PATCH 4/4] CIMI - adds CIMI Client views for index/show network and network_configurations

Posted by ma...@redhat.com.
From: marios <ma...@redhat.com>


Signed-off-by: marios <ma...@redhat.com>
---
 .../cimi/views/network_configurations/index.haml   |   34 +++++++++++++++
 .../cimi/views/network_configurations/show.haml    |   43 +++++++++++++++++++
 clients/cimi/views/networks/index.haml             |   34 +++++++++++++++
 clients/cimi/views/networks/show.haml              |   45 ++++++++++++++++++++
 4 files changed, 156 insertions(+), 0 deletions(-)
 create mode 100644 clients/cimi/views/network_configurations/index.haml
 create mode 100644 clients/cimi/views/network_configurations/show.haml
 create mode 100644 clients/cimi/views/networks/index.haml
 create mode 100644 clients/cimi/views/networks/show.haml

diff --git a/clients/cimi/views/network_configurations/index.haml b/clients/cimi/views/network_configurations/index.haml
new file mode 100644
index 0000000..155baca
--- /dev/null
+++ b/clients/cimi/views/network_configurations/index.haml
@@ -0,0 +1,34 @@
+- @title=@network_configs.description
+
+- content_for :breadcrumb do
+  %ul.breadcrumb
+    %li
+      %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint
+      %span.divider="/"
+    %li.active
+      NetworkConfigurationCollection
+- content_for :actions do
+  %p
+    %a{ :href => "#{@network_configs.uri}?format=xml", :class => 'label warning' } XML
+    %a{ :href => "#{@network_configs.uri}?format=json", :class => 'label warning' } JSON
+
+%blockquote
+  %p
+    A Network Configuration Collection entity represents the collection
+    of Network Configurations within a Provider. This entity can be used
+    to locate and create Network Configurations
+
+%ul
+  - @network_configs.network_configurations.each do |conf|
+    %li
+      %a{ :href => "/cimi/network_configurations/#{conf.href.split('/').last}"}=conf.href.split('/').last
+
+%h3 Collection details
+
+%dl
+  %dt URI
+  %dd=@network_configs.uri
+  %dt Description
+  %dd=@network_configs.description
+  %dt Created
+  %dd=@network_configs.created
diff --git a/clients/cimi/views/network_configurations/show.haml b/clients/cimi/views/network_configurations/show.haml
new file mode 100644
index 0000000..676ee9c
--- /dev/null
+++ b/clients/cimi/views/network_configurations/show.haml
@@ -0,0 +1,43 @@
+- @title="#{@network_config.name}"
+
+- content_for :breadcrumb do
+  %ul.breadcrumb
+    %li
+      %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint
+      %span.divider="/"
+    %li
+      %a{ :href => "/cimi/network_configurations"} NetworkConfigurationCollection
+      %span.divider="/"
+    %li.active
+      = @network_config.name
+
+- content_for :actions do
+  %p
+    %a{ :href => "#{@network_config.uri}?format=xml", :class => 'label warning' } XML
+    %a{ :href => "#{@network_config.uri}?format=json", :class => 'label warning' } JSON
+
+%blockquote
+  %p
+    A Network Configuration entity is the set of configuration values representing
+    the information needed to create a Network with certain characteristics.
+
+%dl
+  %dt URI
+  %dd
+    %a{ :href => @network_config.uri }=@network_config.uri
+  %dt Description
+  %dd=@network_config.description
+  %dt Created
+  %dd=@network_config.created
+  %dt Access
+  %dd=@network_config.access
+  %dt Bandwidth Limit
+  %dd=@network_config.bandwidth_limit
+  %dt Traffic Priority
+  %dd=@network_config.traffic_priority
+  %dt Maximum Traffic Delay
+  %dd=@network_config.max_traffic_delay
+  %dt Maximum Traffic Loss
+  %dd=@network_config.max_traffic_loss
+  %dt Maximum Traffic Jitter
+  %dd=@network_config.max_traffic_jitter
diff --git a/clients/cimi/views/networks/index.haml b/clients/cimi/views/networks/index.haml
new file mode 100644
index 0000000..699ebf8
--- /dev/null
+++ b/clients/cimi/views/networks/index.haml
@@ -0,0 +1,34 @@
+- @title=@networks.description
+
+- content_for :breadcrumb do
+  %ul.breadcrumb
+    %li
+      %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint
+      %span.divider="/"
+    %li.active
+      NetworkCollection
+
+- content_for :actions do
+  %p
+    %a{ :href => "#{@networks.uri}?format=xml", :class => 'label warning' } XML
+    %a{ :href => "#{@networks.uri}?format=json", :class => 'label warning' } JSON
+
+%blockquote
+  %p
+    A Network Collection entity represents the collection of Networks
+    within a Provider. This entity can be used to locate and create Networks.
+
+%ul
+  - @networks.networks.each do |network|
+    %li
+      %a{ :href => "/cimi/networks/#{network.href.split('/').last}"}=network.href.split('/').last
+
+%h3 Collection details
+
+%dl
+  %dt URI
+  %dd=@networks.uri
+  %dt Description
+  %dd=@networks.description
+  %dt Created
+  %dd=@networks.created
diff --git a/clients/cimi/views/networks/show.haml b/clients/cimi/views/networks/show.haml
new file mode 100644
index 0000000..111254a
--- /dev/null
+++ b/clients/cimi/views/networks/show.haml
@@ -0,0 +1,45 @@
+- @title="#{@network.name}"
+
+- content_for :breadcrumb do
+  %ul.breadcrumb
+    %li
+      %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint
+      %span.divider="/"
+    %li
+      %a{ :href => "/cimi/networks"} NetworkCollection
+      %span.divider="/"
+    %li.active
+      = @network.name
+
+- content_for :actions do
+  %p
+    %a{ :href => "#{@network.uri}?format=xml", :class => 'label warning' } XML
+    %a{ :href => "#{@network.uri}?format=json", :class => 'label warning' } JSON
+
+%blockquote
+  %p
+    This entity represents a Network - a realized entity
+    that represents an abstraction of a layer 2 broadcast domain.
+
+%dl
+  %dt URI
+  %dd
+    %a{ :href => @network.uri }=@network.uri
+  %dt Description
+  %dd=@network.description
+  %dt Created
+  %dd=@network.created
+  %dt State
+  %dd=@network.state
+  %dt Access
+  %dd=@network.access
+  %dt Bandwidth Limit
+  %dd=@network.bandwidth_limit
+  %dt Traffic Priority
+  %dd=@network.traffic_priority
+  %dt Maximum Traffic Delay
+  %dd=@network.max_traffic_delay
+  %dt Maximum Traffic Loss
+  %dd=@network.max_traffic_loss
+  %dt Maximum Traffic Jitter
+  %dd=@network.max_traffic_jitter
-- 
1.7.6.5


Re: [PATCH 3/4] CIMI - Adds network and network_configuration for CIMI client

Posted by Michal Fojtik <mi...@mifo.sk>.
On Mar 9, 2012, at 6:42 PM, marios@redhat.com wrote:

ACK.

 -- Michal


> From: marios <ma...@redhat.com>
> 
> 
> Signed-off-by: marios <ma...@redhat.com>
> ---
> clients/cimi/app.rb                                |    2 +
> clients/cimi/lib/entities.rb                       |    2 +
> clients/cimi/lib/entities/network.rb               |   30 ++++++++++++++++++++
> clients/cimi/lib/entities/network_configuration.rb |   30 ++++++++++++++++++++
> 4 files changed, 64 insertions(+), 0 deletions(-)
> create mode 100644 clients/cimi/lib/entities/network.rb
> create mode 100644 clients/cimi/lib/entities/network_configuration.rb
> 
> diff --git a/clients/cimi/app.rb b/clients/cimi/app.rb
> index 510fd33..505aaa7 100644
> --- a/clients/cimi/app.rb
> +++ b/clients/cimi/app.rb
> @@ -28,6 +28,8 @@ module CIMI::Frontend
>     use CIMI::Frontend::VolumeConfiguration
>     use CIMI::Frontend::VolumeImage
>     use CIMI::Frontend::Volume
> +    use CIMI::Frontend::Network
> +    use CIMI::Frontend::NetworkConfiguration
>     use Rack::Session::Cookie
> 
>     helpers CIMI::Frontend::Helper
> diff --git a/clients/cimi/lib/entities.rb b/clients/cimi/lib/entities.rb
> index ddb8f91..d6f566b 100644
> --- a/clients/cimi/lib/entities.rb
> +++ b/clients/cimi/lib/entities.rb
> @@ -28,3 +28,5 @@ require 'entities/machine_template'
> require 'entities/volume_configuration'
> require 'entities/volume_image'
> require 'entities/volume'
> +require 'entities/network'
> +require 'entities/network_configuration'
> diff --git a/clients/cimi/lib/entities/network.rb b/clients/cimi/lib/entities/network.rb
> new file mode 100644
> index 0000000..8ce9942
> --- /dev/null
> +++ b/clients/cimi/lib/entities/network.rb
> @@ -0,0 +1,30 @@
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed with
> +# this work for additional information regarding copyright ownership.  The
> +# ASF licenses this file to you under the Apache License, Version 2.0 (the
> +# "License"); you may not use this file except in compliance with the
> +# License.  You may obtain a copy of the License at
> +#
> +#       http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
> +# 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::Frontend::Network < CIMI::Frontend::Entity
> +
> +  get '/cimi/networks/:id' do
> +    network_xml = get_entity('networks', params[:id], credentials)
> +    @network = CIMI::Model::Network.from_xml(network_xml)
> +    haml :'networks/show'
> +  end
> +
> +  get '/cimi/networks' do
> +    networks_xml = get_entity_collection('networks', credentials)
> +    @networks = CIMI::Model::NetworkCollection.from_xml(networks_xml)
> +    haml :'networks/index'
> +  end
> +
> +end
> diff --git a/clients/cimi/lib/entities/network_configuration.rb b/clients/cimi/lib/entities/network_configuration.rb
> new file mode 100644
> index 0000000..2180126
> --- /dev/null
> +++ b/clients/cimi/lib/entities/network_configuration.rb
> @@ -0,0 +1,30 @@
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed with
> +# this work for additional information regarding copyright ownership.  The
> +# ASF licenses this file to you under the Apache License, Version 2.0 (the
> +# "License"); you may not use this file except in compliance with the
> +# License.  You may obtain a copy of the License at
> +#
> +#       http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
> +# 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::Frontend::NetworkConfiguration < CIMI::Frontend::Entity
> +
> +  get '/cimi/network_configurations/:id' do
> +    network_config_xml = get_entity('network_configurations', params[:id], credentials)
> +    @network_config = CIMI::Model::NetworkConfiguration.from_xml(network_config_xml)
> +    haml :'network_configurations/show'
> +  end
> +
> +  get '/cimi/network_configurations' do
> +    network_configs_xml = get_entity_collection('network_configurations', credentials)
> +    @network_configs = CIMI::Model::NetworkConfigurationCollection.from_xml(network_configs_xml)
> +    haml :'network_configurations/index'
> +  end
> +
> +end
> -- 
> 1.7.6.5
> 


[PATCH 3/4] CIMI - Adds network and network_configuration for CIMI client

Posted by ma...@redhat.com.
From: marios <ma...@redhat.com>


Signed-off-by: marios <ma...@redhat.com>
---
 clients/cimi/app.rb                                |    2 +
 clients/cimi/lib/entities.rb                       |    2 +
 clients/cimi/lib/entities/network.rb               |   30 ++++++++++++++++++++
 clients/cimi/lib/entities/network_configuration.rb |   30 ++++++++++++++++++++
 4 files changed, 64 insertions(+), 0 deletions(-)
 create mode 100644 clients/cimi/lib/entities/network.rb
 create mode 100644 clients/cimi/lib/entities/network_configuration.rb

diff --git a/clients/cimi/app.rb b/clients/cimi/app.rb
index 510fd33..505aaa7 100644
--- a/clients/cimi/app.rb
+++ b/clients/cimi/app.rb
@@ -28,6 +28,8 @@ module CIMI::Frontend
     use CIMI::Frontend::VolumeConfiguration
     use CIMI::Frontend::VolumeImage
     use CIMI::Frontend::Volume
+    use CIMI::Frontend::Network
+    use CIMI::Frontend::NetworkConfiguration
     use Rack::Session::Cookie
 
     helpers CIMI::Frontend::Helper
diff --git a/clients/cimi/lib/entities.rb b/clients/cimi/lib/entities.rb
index ddb8f91..d6f566b 100644
--- a/clients/cimi/lib/entities.rb
+++ b/clients/cimi/lib/entities.rb
@@ -28,3 +28,5 @@ require 'entities/machine_template'
 require 'entities/volume_configuration'
 require 'entities/volume_image'
 require 'entities/volume'
+require 'entities/network'
+require 'entities/network_configuration'
diff --git a/clients/cimi/lib/entities/network.rb b/clients/cimi/lib/entities/network.rb
new file mode 100644
index 0000000..8ce9942
--- /dev/null
+++ b/clients/cimi/lib/entities/network.rb
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# 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::Frontend::Network < CIMI::Frontend::Entity
+
+  get '/cimi/networks/:id' do
+    network_xml = get_entity('networks', params[:id], credentials)
+    @network = CIMI::Model::Network.from_xml(network_xml)
+    haml :'networks/show'
+  end
+
+  get '/cimi/networks' do
+    networks_xml = get_entity_collection('networks', credentials)
+    @networks = CIMI::Model::NetworkCollection.from_xml(networks_xml)
+    haml :'networks/index'
+  end
+
+end
diff --git a/clients/cimi/lib/entities/network_configuration.rb b/clients/cimi/lib/entities/network_configuration.rb
new file mode 100644
index 0000000..2180126
--- /dev/null
+++ b/clients/cimi/lib/entities/network_configuration.rb
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# 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::Frontend::NetworkConfiguration < CIMI::Frontend::Entity
+
+  get '/cimi/network_configurations/:id' do
+    network_config_xml = get_entity('network_configurations', params[:id], credentials)
+    @network_config = CIMI::Model::NetworkConfiguration.from_xml(network_config_xml)
+    haml :'network_configurations/show'
+  end
+
+  get '/cimi/network_configurations' do
+    network_configs_xml = get_entity_collection('network_configurations', credentials)
+    @network_configs = CIMI::Model::NetworkConfigurationCollection.from_xml(network_configs_xml)
+    haml :'network_configurations/index'
+  end
+
+end
-- 
1.7.6.5


Re: [PATCH 2/4] CIMI - Adds network configuration calls for mock driver

Posted by Michal Fojtik <mi...@mifo.sk>.
On Mar 9, 2012, at 6:42 PM, marios@redhat.com wrote:

ACK.

 -- Michal

> From: marios <ma...@redhat.com>
> 
> 
> Signed-off-by: marios <ma...@redhat.com>
> ---
> server/lib/cimi/model/network_configuration.rb |    7 +++----
> server/lib/cimi/server.rb                      |    2 +-
> 2 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/server/lib/cimi/model/network_configuration.rb b/server/lib/cimi/model/network_configuration.rb
> index b329919..1b04548 100644
> --- a/server/lib/cimi/model/network_configuration.rb
> +++ b/server/lib/cimi/model/network_configuration.rb
> @@ -34,17 +34,16 @@ class CIMI::Model::NetworkConfiguration < CIMI::Model::Base
>   def self.find(id, context)
>     network_configs = []
>     if id==:all
> -
> +      network_configs = context.driver.network_configurations(context.credentials, {:env=>context})
>     else
> -
> +      network_configs = context.driver.network_configurations(context.credentials, {:env=>context, :id=>id})
>     end
>     network_configs
>   end
> -require 'cimi/model/network_configuration_collection'
> +
>   def self.create_from_xml(request_body, context)
>   end
> 
>   def self.create_from_json(request_body, context)
>   end
> -
> end
> diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb
> index 2a90c0e..9dd0b3f 100644
> --- a/server/lib/cimi/server.rb
> +++ b/server/lib/cimi/server.rb
> @@ -565,7 +565,7 @@ global_collection :network_configurations do
>     param :id, :string, :required
>     control do
>       network_config = NetworkConfiguration.find(params[:id], self)
> -      respond_to do
> +      respond_to do |format|
>         format.xml { network_config.to_xml }
>         format.json { network_config.to_json }
>       end
> -- 
> 1.7.6.5
> 


[PATCH 2/4] CIMI - Adds network configuration calls for mock driver

Posted by ma...@redhat.com.
From: marios <ma...@redhat.com>


Signed-off-by: marios <ma...@redhat.com>
---
 server/lib/cimi/model/network_configuration.rb |    7 +++----
 server/lib/cimi/server.rb                      |    2 +-
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/server/lib/cimi/model/network_configuration.rb b/server/lib/cimi/model/network_configuration.rb
index b329919..1b04548 100644
--- a/server/lib/cimi/model/network_configuration.rb
+++ b/server/lib/cimi/model/network_configuration.rb
@@ -34,17 +34,16 @@ class CIMI::Model::NetworkConfiguration < CIMI::Model::Base
   def self.find(id, context)
     network_configs = []
     if id==:all
-
+      network_configs = context.driver.network_configurations(context.credentials, {:env=>context})
     else
-
+      network_configs = context.driver.network_configurations(context.credentials, {:env=>context, :id=>id})
     end
     network_configs
   end
-require 'cimi/model/network_configuration_collection'
+
   def self.create_from_xml(request_body, context)
   end
 
   def self.create_from_json(request_body, context)
   end
-
 end
diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb
index 2a90c0e..9dd0b3f 100644
--- a/server/lib/cimi/server.rb
+++ b/server/lib/cimi/server.rb
@@ -565,7 +565,7 @@ global_collection :network_configurations do
     param :id, :string, :required
     control do
       network_config = NetworkConfiguration.find(params[:id], self)
-      respond_to do
+      respond_to do |format|
         format.xml { network_config.to_xml }
         format.json { network_config.to_json }
       end
-- 
1.7.6.5


Re: [PATCH 1/4] CIMI - Adds mock data for network and network_configs for mock driver

Posted by "marios@redhat.com" <ma...@redhat.com>.
On 12/03/12 11:55, Michal Fojtik wrote:
> ACK.
> 
> Small minor nit/suggestion below.
> 
>   -- Michal
> 
> On Mar 9, 2012, at 6:42 PM, marios@redhat.com wrote:
> 
>> From: marios <ma...@redhat.com>
>>
>>
>> Signed-off-by: marios <ma...@redhat.com>
>> ---
>> .../drivers/mock/data/cimi/network/network1.json   |    6 ++++
>> .../drivers/mock/data/cimi/network/network2.json   |    6 ++++
>> .../network_configuration/network_config1.json     |   15 ++++++++++++
>> .../network_configuration/network_config2.json     |   15 ++++++++++++
>> server/lib/deltacloud/drivers/mock/mock_driver.rb  |   25 ++++++++++++++-----
>> 5 files changed, 60 insertions(+), 7 deletions(-)

{snip---8<--------------}

>> -    def convert_cimi_network(network, context)
>> -      uri=context.network_url(network.name)
>> -      network.uri=uri
>> -      network.operations.each{|op| op.href=uri}
>> -      network
>> +    def convert_cimi_mock_urls(model_name, cimi_object, context)
>> +      uri=context.send(:"#{model_name}_url", cimi_object.name)
> 
> We should wrap this ^^ construction to some method, since I know
> we use this .send on many places. Some decent helper will prevent us
> from the pain when we change this 'url_for' in future:


ok, am going to push these as is for now - since I need to send fresh
patches to deal with new 'table' views for network index/show - I'll
include fixes in new patches. But not entirely sure what you mean here
though... like you want a new definition like cimi_url_for
in server/lib/sinatra/url_for.rb?


marios


> 
> def url_for(model, id) # url_for model_name, cimi_object.name
> 
> 
>> +      cimi_object.uri=uri
>> +      cimi_object.operations.each{|op| op.href=uri}
>> +      cimi_object
>>     end
>>
>>     exceptions do
>> -- 
>> 1.7.6.5
>>
> 


Re: [PATCH 1/4] CIMI - Adds mock data for network and network_configs for mock driver

Posted by Michal Fojtik <mi...@mifo.sk>.
ACK.

Small minor nit/suggestion below.

  -- Michal

On Mar 9, 2012, at 6:42 PM, marios@redhat.com wrote:

> From: marios <ma...@redhat.com>
> 
> 
> Signed-off-by: marios <ma...@redhat.com>
> ---
> .../drivers/mock/data/cimi/network/network1.json   |    6 ++++
> .../drivers/mock/data/cimi/network/network2.json   |    6 ++++
> .../network_configuration/network_config1.json     |   15 ++++++++++++
> .../network_configuration/network_config2.json     |   15 ++++++++++++
> server/lib/deltacloud/drivers/mock/mock_driver.rb  |   25 ++++++++++++++-----
> 5 files changed, 60 insertions(+), 7 deletions(-)
> create mode 100644 server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json
> create mode 100644 server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json
> 
> diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json b/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json
> index f3af747..165ef8a 100644
> --- a/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json
> +++ b/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json
> @@ -4,6 +4,12 @@
>   "created": "Thu Jan 12 15:25:41 EET 2012",
>   "state": "STARTED",
>   "access": "Public",
> +  "bandwidthLimit": 2,
> +  "trafficPriority": 1,
> +  "maxTrafficDelay": 500000,
> +  "maxTrafficLoss": 100,
> +  "maxTrafficJitter": 100000,
> +  "routingGroup": { "href": "http://cimi.example.org/routinggroups/group1" },
>   "operations": [
>     { "rel": "edit", "href": "http://cimi.example.org/networks/network1" },
>     { "rel": "delete", "href": "http://cimi.example.org/networks/network1" }
> diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json b/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json
> index f6c7faf..3bd264e 100644
> --- a/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json
> +++ b/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json
> @@ -4,6 +4,12 @@
>   "created": "Fri Jan 13 17:30:34 EET 2012",
>   "state": "STARTED",
>   "access": "Public",
> +  "bandwidthLimit": 3,
> +  "trafficPriority": 2,
> +  "maxTrafficDelay": 600000,
> +  "maxTrafficLoss": 100,
> +  "maxTrafficJitter": 200000,
> +  "routingGroup": { "href": "http://cimi.example.org/routinggroups/group1" },
>   "operations": [
>     { "rel": "edit", "href": "http://cimi.example.org/networks/network2" },
>     { "rel": "delete", "href": "http://cimi.example.org/networks/network2" }
> diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json
> new file mode 100644
> index 0000000..f767de9
> --- /dev/null
> +++ b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json
> @@ -0,0 +1,15 @@
> +{ "uri": "http://cimi.example.org/network_configurations/network_config1",
> +  "name": "network_config1",
> +  "description": "a network configuration",
> +  "created": "Fri Mar 9 11:57:39 EET 2012",
> +  "access": "Public",
> +  "bandwidthLimit": 2,
> +  "trafficPriority": 1,
> +  "maxTrafficDelay": 500000,
> +  "maxTrafficLoss": 100,
> +  "maxTrafficJitter": 100000,
> +  "operations": [
> +    { "rel": "edit", "href": "http://cimi.example.org/network_configurations/network_config1" },
> +    { "rel": "delete", "href": "http://cimi.example.org/network_configurations/network_config1" }
> +  ]
> +}
> diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json
> new file mode 100644
> index 0000000..b22d837
> --- /dev/null
> +++ b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json
> @@ -0,0 +1,15 @@
> +{ "uri": "http://cimi.example.org/network_configurations/network_config2",
> +  "name": "network_config2",
> +  "description": "a network configuration",
> +  "created": "Fri Mar 9 12:01:53 EET 2012",
> +  "access": "Public",
> +  "bandwidthLimit": 3,
> +  "trafficPriority": 2,
> +  "maxTrafficDelay": 600000,
> +  "maxTrafficLoss": 100,
> +  "maxTrafficJitter": 200000,
> +  "operations": [
> +    { "rel": "edit", "href": "http://cimi.example.org/network_configurations/network_config2" },
> +    { "rel": "delete", "href": "http://cimi.example.org/network_configurations/network_config2" }
> +  ]
> +}
> diff --git a/server/lib/deltacloud/drivers/mock/mock_driver.rb b/server/lib/deltacloud/drivers/mock/mock_driver.rb
> index 765338d..e522926 100644
> --- a/server/lib/deltacloud/drivers/mock/mock_driver.rb
> +++ b/server/lib/deltacloud/drivers/mock/mock_driver.rb
> @@ -455,10 +455,21 @@ module Deltacloud::Drivers::Mock
>       check_credentials(credentials)
>       if opts[:id].nil?
>         networks = @client.load_all_cimi(:network).map{|net| CIMI::Model::Network.from_json(net)}
> -        networks.map{|net|convert_cimi_network(net,opts[:env])}.flatten
> +        networks.map{|net|convert_cimi_mock_urls(:network, net ,opts[:env])}.flatten
>       else
>         network = CIMI::Model::Network.from_json(@client.load_cimi(:network, opts[:id]))
> -        convert_cimi_network(network, opts[:env])
> +        convert_cimi_mock_urls(:network, network, opts[:env])
> +      end
> +    end
> +
> +    def network_configurations(credentials, opts={})
> +      check_credentials(credentials)
> +      if opts[:id].nil?
> +        network_configs = @client.load_all_cimi(:network_configuration).map{|net_config| CIMI::Model::NetworkConfiguration.from_json(net_config)}
> +        network_configs.map{|net_config|convert_cimi_mock_urls(:network_configuration, net_config, opts[:env])}.flatten
> +      else
> +        network_config = CIMI::Model::NetworkConfiguration.from_json(@client.load_cimi(:network_configuration, opts[:id]))
> +        convert_cimi_mock_urls(:network_configuration, network_config, opts[:env])
>       end
>     end
> 
> @@ -498,11 +509,11 @@ module Deltacloud::Drivers::Mock
>       StorageVolume.new(volume)
>     end
> 
> -    def convert_cimi_network(network, context)
> -      uri=context.network_url(network.name)
> -      network.uri=uri
> -      network.operations.each{|op| op.href=uri}
> -      network
> +    def convert_cimi_mock_urls(model_name, cimi_object, context)
> +      uri=context.send(:"#{model_name}_url", cimi_object.name)

We should wrap this ^^ construction to some method, since I know
we use this .send on many places. Some decent helper will prevent us
from the pain when we change this 'url_for' in future:

def url_for(model, id) # url_for model_name, cimi_object.name


> +      cimi_object.uri=uri
> +      cimi_object.operations.each{|op| op.href=uri}
> +      cimi_object
>     end
> 
>     exceptions do
> -- 
> 1.7.6.5
> 


[PATCH 1/4] CIMI - Adds mock data for network and network_configs for mock driver

Posted by ma...@redhat.com.
From: marios <ma...@redhat.com>


Signed-off-by: marios <ma...@redhat.com>
---
 .../drivers/mock/data/cimi/network/network1.json   |    6 ++++
 .../drivers/mock/data/cimi/network/network2.json   |    6 ++++
 .../network_configuration/network_config1.json     |   15 ++++++++++++
 .../network_configuration/network_config2.json     |   15 ++++++++++++
 server/lib/deltacloud/drivers/mock/mock_driver.rb  |   25 ++++++++++++++-----
 5 files changed, 60 insertions(+), 7 deletions(-)
 create mode 100644 server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json
 create mode 100644 server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json

diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json b/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json
index f3af747..165ef8a 100644
--- a/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json
+++ b/server/lib/deltacloud/drivers/mock/data/cimi/network/network1.json
@@ -4,6 +4,12 @@
   "created": "Thu Jan 12 15:25:41 EET 2012",
   "state": "STARTED",
   "access": "Public",
+  "bandwidthLimit": 2,
+  "trafficPriority": 1,
+  "maxTrafficDelay": 500000,
+  "maxTrafficLoss": 100,
+  "maxTrafficJitter": 100000,
+  "routingGroup": { "href": "http://cimi.example.org/routinggroups/group1" },
   "operations": [
     { "rel": "edit", "href": "http://cimi.example.org/networks/network1" },
     { "rel": "delete", "href": "http://cimi.example.org/networks/network1" }
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json b/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json
index f6c7faf..3bd264e 100644
--- a/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json
+++ b/server/lib/deltacloud/drivers/mock/data/cimi/network/network2.json
@@ -4,6 +4,12 @@
   "created": "Fri Jan 13 17:30:34 EET 2012",
   "state": "STARTED",
   "access": "Public",
+  "bandwidthLimit": 3,
+  "trafficPriority": 2,
+  "maxTrafficDelay": 600000,
+  "maxTrafficLoss": 100,
+  "maxTrafficJitter": 200000,
+  "routingGroup": { "href": "http://cimi.example.org/routinggroups/group1" },
   "operations": [
     { "rel": "edit", "href": "http://cimi.example.org/networks/network2" },
     { "rel": "delete", "href": "http://cimi.example.org/networks/network2" }
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json
new file mode 100644
index 0000000..f767de9
--- /dev/null
+++ b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json
@@ -0,0 +1,15 @@
+{ "uri": "http://cimi.example.org/network_configurations/network_config1",
+  "name": "network_config1",
+  "description": "a network configuration",
+  "created": "Fri Mar 9 11:57:39 EET 2012",
+  "access": "Public",
+  "bandwidthLimit": 2,
+  "trafficPriority": 1,
+  "maxTrafficDelay": 500000,
+  "maxTrafficLoss": 100,
+  "maxTrafficJitter": 100000,
+  "operations": [
+    { "rel": "edit", "href": "http://cimi.example.org/network_configurations/network_config1" },
+    { "rel": "delete", "href": "http://cimi.example.org/network_configurations/network_config1" }
+  ]
+}
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json
new file mode 100644
index 0000000..b22d837
--- /dev/null
+++ b/server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json
@@ -0,0 +1,15 @@
+{ "uri": "http://cimi.example.org/network_configurations/network_config2",
+  "name": "network_config2",
+  "description": "a network configuration",
+  "created": "Fri Mar 9 12:01:53 EET 2012",
+  "access": "Public",
+  "bandwidthLimit": 3,
+  "trafficPriority": 2,
+  "maxTrafficDelay": 600000,
+  "maxTrafficLoss": 100,
+  "maxTrafficJitter": 200000,
+  "operations": [
+    { "rel": "edit", "href": "http://cimi.example.org/network_configurations/network_config2" },
+    { "rel": "delete", "href": "http://cimi.example.org/network_configurations/network_config2" }
+  ]
+}
diff --git a/server/lib/deltacloud/drivers/mock/mock_driver.rb b/server/lib/deltacloud/drivers/mock/mock_driver.rb
index 765338d..e522926 100644
--- a/server/lib/deltacloud/drivers/mock/mock_driver.rb
+++ b/server/lib/deltacloud/drivers/mock/mock_driver.rb
@@ -455,10 +455,21 @@ module Deltacloud::Drivers::Mock
       check_credentials(credentials)
       if opts[:id].nil?
         networks = @client.load_all_cimi(:network).map{|net| CIMI::Model::Network.from_json(net)}
-        networks.map{|net|convert_cimi_network(net,opts[:env])}.flatten
+        networks.map{|net|convert_cimi_mock_urls(:network, net ,opts[:env])}.flatten
       else
         network = CIMI::Model::Network.from_json(@client.load_cimi(:network, opts[:id]))
-        convert_cimi_network(network, opts[:env])
+        convert_cimi_mock_urls(:network, network, opts[:env])
+      end
+    end
+
+    def network_configurations(credentials, opts={})
+      check_credentials(credentials)
+      if opts[:id].nil?
+        network_configs = @client.load_all_cimi(:network_configuration).map{|net_config| CIMI::Model::NetworkConfiguration.from_json(net_config)}
+        network_configs.map{|net_config|convert_cimi_mock_urls(:network_configuration, net_config, opts[:env])}.flatten
+      else
+        network_config = CIMI::Model::NetworkConfiguration.from_json(@client.load_cimi(:network_configuration, opts[:id]))
+        convert_cimi_mock_urls(:network_configuration, network_config, opts[:env])
       end
     end
 
@@ -498,11 +509,11 @@ module Deltacloud::Drivers::Mock
       StorageVolume.new(volume)
     end
 
-    def convert_cimi_network(network, context)
-      uri=context.network_url(network.name)
-      network.uri=uri
-      network.operations.each{|op| op.href=uri}
-      network
+    def convert_cimi_mock_urls(model_name, cimi_object, context)
+      uri=context.send(:"#{model_name}_url", cimi_object.name)
+      cimi_object.uri=uri
+      cimi_object.operations.each{|op| op.href=uri}
+      cimi_object
     end
 
     exceptions do
-- 
1.7.6.5