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