You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2012/09/18 15:37:28 UTC

[7/7] git commit: CIMI: updates CIMI networking models and methods for Deltacloud mock driver

CIMI: updates CIMI networking models and methods for Deltacloud mock driver


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/80b7ac4b
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/80b7ac4b
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/80b7ac4b

Branch: refs/heads/master
Commit: 80b7ac4b0c3669c0c6d1707d4c15593036fe7f6e
Parents: 47339ac
Author: marios <ma...@redhat.com>
Authored: Fri Sep 14 18:38:36 2012 +0300
Committer: marios <ma...@redhat.com>
Committed: Tue Sep 18 16:34:36 2012 +0300

----------------------------------------------------------------------
 server/lib/cimi/collections/vsp_configurations.rb  |   49 -------
 server/lib/cimi/collections/vsp_templates.rb       |   51 -------
 server/lib/cimi/collections/vsps.rb                |  109 ---------------
 server/lib/cimi/models.rb                          |   12 +-
 server/lib/cimi/models/vsp.rb                      |  102 --------------
 server/lib/cimi/models/vsp_collection.rb           |   34 -----
 server/lib/cimi/models/vsp_configuration.rb        |   40 ------
 .../cimi/models/vsp_configuration_collection.rb    |   34 -----
 server/lib/cimi/models/vsp_template.rb             |   34 -----
 server/lib/cimi/models/vsp_template_collection.rb  |   34 -----
 .../drivers/mock/data/cimi/vsp/vsp1.json           |   16 --
 .../drivers/mock/data/cimi/vsp/vsp2.json           |   16 --
 .../drivers/mock/data/cimi/vsp/vsp3.json           |   18 ---
 .../drivers/mock/data/cimi/vsp/vsp4.json           |   18 ---
 .../data/cimi/vsp_configuration/vspconfig1.json    |   14 --
 .../data/cimi/vsp_configuration/vspconfig2.json    |   14 --
 .../mock/data/cimi/vsp_template/template1.json     |   10 --
 .../mock/data/cimi/vsp_template/template2.json     |   10 --
 .../drivers/mock/mock_driver_cimi_methods.rb       |   56 +++++---
 19 files changed, 40 insertions(+), 631 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/collections/vsp_configurations.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/vsp_configurations.rb b/server/lib/cimi/collections/vsp_configurations.rb
deleted file mode 100644
index 8a76605..0000000
--- a/server/lib/cimi/collections/vsp_configurations.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# 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.
-
-module CIMI::Collections
-  class VspConfigurations < Base
-
-    set :capability, lambda { |m| driver.respond_to? m }
-
-    collection :vsp_configurations do
-
-      operation :index, :with_capability => :vsp_configurations do
-        description 'List all VSPConfigurations in the VSPConfigurationCollection'
-        param :CIMISelect, :string, :optional
-        control do
-          vsp_configs = VSPConfigurationCollection.default(self).filter_by(params[:CIMISelect])
-          respond_to do |format|
-            format.xml {vsp_configs.to_xml}
-            format.json {vsp_configs.to_json}
-          end
-        end
-      end
-
-      operation :show, :with_capability => :vsp_configuration do
-        description 'Show a specific VSPConfiguration'
-        control do
-          vsp_config = VSPConfiguration.find(params[:id], self)
-          respond_to do |format|
-            format.xml {vsp_config.to_xml}
-            format.json {vsp_config.to_json}
-          end
-        end
-      end
-
-    end
-
-  end
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/collections/vsp_templates.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/vsp_templates.rb b/server/lib/cimi/collections/vsp_templates.rb
deleted file mode 100644
index dab7db3..0000000
--- a/server/lib/cimi/collections/vsp_templates.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-# 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.
-
-module CIMI::Collections
-  class VspTemplates < Base
-
-    set :capability, lambda { |m| driver.respond_to? m }
-
-    collection :vsp_templates do
-
-      description 'The VSP Template is a set of Configuration values for realizing a VSP. A VSP Template may be used to create multiple VSPs'
-
-      operation :index, :with_capability => :vsp_templates do
-        description 'List all VSPTemplates in the VSPTemplateCollection'
-        param :CIMISelect, :string, :optional
-        control do
-          vsp_templates = VSPTemplateCollection.default(self).filter_by(params[:CIMISelect])
-          respond_to do |format|
-            format.xml {vsp_templates.to_xml}
-            format.json {vsp_templates.to_json}
-          end
-        end
-      end
-
-      operation :show, :with_capability => :vsp_template do
-        description 'Show a specific VSPTemplate'
-        control do
-          vsp_template = VSPTemplate.find(params[:id], self)
-          respond_to do |format|
-            format.xml {vsp_template.to_xml}
-            format.json {vsp_template.to_json}
-          end
-        end
-      end
-
-    end
-
-  end
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/collections/vsps.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/vsps.rb b/server/lib/cimi/collections/vsps.rb
deleted file mode 100644
index 7106c91..0000000
--- a/server/lib/cimi/collections/vsps.rb
+++ /dev/null
@@ -1,109 +0,0 @@
-# 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.
-
-module CIMI::Collections
-  class Vsps < Base
-
-    set :capability, lambda { |m| driver.respond_to? m }
-
-    collection :vsps do
-
-      description 'A VSP represents the connection parameters of a network port'
-
-      operation :index, :with_capability => :vsps do
-        description 'List all VSPs in the VSPCollection'
-        param :CIMISelect, :string, :optional
-        control do
-          vsps = VSPCollection.default(self).filter_by(params[:CIMISelect])
-          respond_to do |format|
-            format.xml {vsps.to_xml}
-            format.json {vsps.to_json}
-          end
-        end
-      end
-
-      operation :show, :with_capability => :vsp do
-        description 'Show a specific VSP'
-        control do
-          vsp = VSP.find(params[:id], self)
-          respond_to do |format|
-            format.xml {vsp.to_xml}
-            format.json {vsp.to_json}
-          end
-        end
-      end
-
-      operation :create, :with_capability => :create_vsp do
-        description "Create a new VSP"
-        control do
-          if request.content_type.end_with?("json")
-            vsp = CIMI::Model::VSP.create(request.body.read, self, :json)
-          else
-            vsp = CIMI::Model::VSP.create(request.body.read, self, :xml)
-          end
-          respond_to do |format|
-            format.xml { vsp.to_xml }
-            format.json { vsp.to_json }
-          end
-        end
-      end
-
-      operation :destroy, :with_capability => :delete_vsp do
-        description "Delete a specified VSP"
-        control do
-          CIMI::Model::VSP.delete!(params[:id], self)
-          no_content_with_status(200)
-        end
-      end
-
-      action :start, :with_capability => :start_vsp do
-        description "Start specific VSP."
-        param :id,          :string,    :required
-        control do
-          vsp = VSP.find(params[:id], self)
-          report_error(404) unless vsp
-          if request.content_type.end_with?("json")
-            action = Action.from_json(request.body.read)
-          else
-            action = Action.from_xml(request.body.read)
-          end
-          vsp.perform(action, self) do |operation|
-            no_content_with_status(202) if operation.success?
-            # Handle errors using operation.failure?
-          end
-        end
-      end
-
-      action :stop, :with_capability => :stop_vsp do
-        description "Stop specific VSP."
-        control do
-          vsp = VSP.find(params[:id], self)
-          report_error(404) unless vsp
-          if request.content_type.end_with?("json")
-            action = Action.from_json(request.body.read)
-          else
-            action = Action.from_xml(request.body.read)
-          end
-          vsp.perform(action, self) do |operation|
-            no_content_with_status(202) if operation.success?
-            # Handle errors using operation.failure?
-          end
-        end
-      end
-
-    end
-
-  end
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models.rb b/server/lib/cimi/models.rb
index b447e50..333f5bd 100644
--- a/server/lib/cimi/models.rb
+++ b/server/lib/cimi/models.rb
@@ -54,12 +54,12 @@ require_relative './models/routing_group'
 require_relative './models/routing_group_collection'
 require_relative './models/routing_group_template'
 require_relative './models/routing_group_template_collection'
-require_relative './models/vsp'
-require_relative './models/vsp_collection'
-require_relative './models/vsp_configuration'
-require_relative './models/vsp_configuration_collection'
-require_relative './models/vsp_template'
-require_relative './models/vsp_template_collection'
+require_relative './models/network_port'
+require_relative './models/network_port_collection'
+require_relative './models/network_port_configuration'
+require_relative './models/network_port_configuration_collection'
+require_relative './models/network_port_template'
+require_relative './models/network_port_template_collection'
 require_relative './models/address'
 require_relative './models/address_collection'
 require_relative './models/address_template'

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models/vsp.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/vsp.rb b/server/lib/cimi/models/vsp.rb
deleted file mode 100644
index b8b27f5..0000000
--- a/server/lib/cimi/models/vsp.rb
+++ /dev/null
@@ -1,102 +0,0 @@
-# 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::Model::VSP < CIMI::Model::Base
-
-  text :state
-
-  href :network
-
-  text :bandwidth_reservation
-
-  text :traffic_priority
-
-  text :max_traffic_delay
-
-  text :max_traffic_loss
-
-  text :max_traffic_jitter
-
-  href :event_log
-
-  array :meters do
-    scalar :href
-  end
-
-  array :operations do
-    scalar :rel, :href
-  end
-
-  def self.find(id, context)
-    if id==:all
-      context.driver.vsps(context.credentials, {:env=>context})
-    else
-      context.driver.vsps(context.credentials, {:id=>id, :env=>context})
-    end
-  end
-
-  def self.create(request_body, context, type)
-    input = (type == :xml)? XmlSimple.xml_in(request_body, {"ForceArray"=>false, "NormaliseSpace"=>2}) : JSON.parse(request_body)
-    if input["vspTemplate"]["href"] #template by reference
-      vsp_config, network = get_by_reference(input, context)
-    else
-      if input["vspTemplate"]["vspConfig"]["href"] # configuration by reference
-        vsp_config = CIMI::Model::VSPConfiguration.find(context.href_id(input["vspTemplate"]["vspConfig"]["href"],:vsp_configurations), context)
-      else #configuration by value
-        vsp_config = get_by_value(request_body, type)
-      end
-      network = CIMI::Model::Network.find(context.href_id(input["vspTemplate"]["network"]["href"], :networks), context)
-    end
-    params = {:vsp_config => vsp_config, :network => network, :name=>input["name"], :description=>input["description"], :env=>context}
-    raise CIMI::Model::BadRequest.new("Bad request - missing required parameters. Client sent: #{request_body} which produced #{params.inspect}")  if params.has_value?(nil)
-    context.driver.create_vsp(context.credentials, params)
-  end
-
-  def self.delete!(id, context)
-    context.driver.delete_vsp(context.credentials, id)
-  end
-
-  def perform(action, context, &block)
-    begin
-      if context.driver.send(:"#{action.name}_vsp", context.credentials, self.name)
-        block.callback :success
-      else
-        raise "Operation #{action.name} failed to execute on the VSP #{self.name} "
-      end
-    rescue => e
-      block.callback :failure, e.message
-    end
-  end
-
-
-  private
-
-  def self.get_by_reference(input, context)
-    vsp_template = CIMI::Model::VSPTemplate.find(context.href_id(input["vspTemplate"]["href"], :vsp_templates), context)
-    vsp_config = CIMI::Model::VSPConfiguration.find(context.href_id(vsp_template.vsp_config.href, :vsp_configurations), context)
-    network = CIMI::Model::Network.find(context.href_id(vsp_template.network.href, :networks), context)
-    return vsp_config, network
-  end
-
-  def self.get_by_value(request_body, type)
-    if type == :xml
-      xml_arrays = XmlSimple.xml_in(request_body, {"NormaliseSpace"=>2})
-      vsp_config = CIMI::Model::VSPConfiguration.from_xml(XmlSimple.xml_out(xml_arrays["vspTemplate"][0]["vspConfig"][0]))
-    else
-     json = JSON.parse(request_body)
-      vsp_config = CIMI::Model::VSPConfiguration.from_json(JSON.generate(json["vspTemplate"]["vspConfig"]))
-    end
-  end
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models/vsp_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/vsp_collection.rb b/server/lib/cimi/models/vsp_collection.rb
deleted file mode 100644
index fc72024..0000000
--- a/server/lib/cimi/models/vsp_collection.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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::Model::VSPCollection < CIMI::Model::Base
-
-  CIMI::Model.register_as_root_entity! "VSPs"
-
-  array :vsps do
-    scalar :href
-  end
-
-  def self.default(context)
-    self.new(
-      :id => context.vsps_url,
-      :name => 'default',
-      :created => Time.now,
-      :description => "#{context.driver.name.capitalize} VSPCollection",
-      :vsps => CIMI::Model::VSP.all_uri(context)
-    )
-  end
-
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models/vsp_configuration.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/vsp_configuration.rb b/server/lib/cimi/models/vsp_configuration.rb
deleted file mode 100644
index c9a9bf3..0000000
--- a/server/lib/cimi/models/vsp_configuration.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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::Model::VSPConfiguration < CIMI::Model::Base
-
-  text :bandwidth_reservation
-
-  text :traffic_priority
-
-  text :max_traffic_delay
-
-  text :max_traffic_loss
-
-  text :max_traffic_jitter
-
-  array :operations do
-    scalar :rel, :href
-  end
-
-  def self.find(id, context)
-    if id==:all
-      context.driver.vsp_configurations(context.credentials, {:env=>context})
-    else
-      context.driver.vsp_configurations(context.credentials, {:env=>context, :id=>id})
-    end
-  end
-
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models/vsp_configuration_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/vsp_configuration_collection.rb b/server/lib/cimi/models/vsp_configuration_collection.rb
deleted file mode 100644
index d4927e7..0000000
--- a/server/lib/cimi/models/vsp_configuration_collection.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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::Model::VSPConfigurationCollection < CIMI::Model::Base
-
-  CIMI::Model.register_as_root_entity! "VSPConfigurations"
-
-  array :vsp_configurations do
-    scalar :href
-  end
-
-  def self.default(context)
-    self.new(
-      :id => context.vsp_configurations_url,
-      :name => 'default',
-      :created => Time.now,
-      :description => "#{context.driver.name.capitalize} VSPConfigurationCollection",
-      :vsp_configurations => CIMI::Model::VSPConfiguration.all_uri(context)
-    )
-  end
-
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models/vsp_template.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/vsp_template.rb b/server/lib/cimi/models/vsp_template.rb
deleted file mode 100644
index f1b8078..0000000
--- a/server/lib/cimi/models/vsp_template.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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::Model::VSPTemplate < CIMI::Model::Base
-
-  href :network
-
-  href :vsp_config
-
-  array :operations do
-    scalar :rel, :href
-  end
-
-  def self.find(id, context)
-    if id==:all
-      context.driver.vsp_templates(context.credentials, {:env=>context})
-    else
-      context.driver.vsp_templates(context.credentials, {:env=>context, :id=>id})
-    end
-  end
-
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/cimi/models/vsp_template_collection.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/vsp_template_collection.rb b/server/lib/cimi/models/vsp_template_collection.rb
deleted file mode 100644
index 61d5311..0000000
--- a/server/lib/cimi/models/vsp_template_collection.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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::Model::VSPTemplateCollection < CIMI::Model::Base
-
-  CIMI::Model.register_as_root_entity! "VSPTemplates"
-
-  array :vsp_templates do
-    scalar :href
-  end
-
-  def self.default(context)
-    self.new(
-      :id => context.vsp_templates_url,
-      :name => 'default',
-      :created => Time.now,
-      :description => "#{context.driver.name.capitalize} VSPTemplateCollection",
-      :vsp_templates => CIMI::Model::VSPTemplate.all_uri(context)
-    )
-  end
-
-end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp1.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp1.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp1.json
deleted file mode 100644
index 191ed4e..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp1.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "id": "http://cimi.example.org/vsps/vsp1",
-  "name": "vsp1",
-  "description": "a mock switchport",
-  "created": "Fri Mar 16 17:06:41 EET 2012",
-  "state": "STARTED",
-  "network": {"href": "http://cimi.example.org/networks/network1"},
-  "bandwidthReservation": 0.5,
-  "trafficPriority": 1,
-  "maxTrafficDelay": 500000,
-  "maxTrafficLoss": 100,
-  "maxTrafficJitter": 100000,
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsps/vsp1" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsps/vsp1" }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp2.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp2.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp2.json
deleted file mode 100644
index 4173f0c..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp2.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "id": "http://cimi.example.org/vsps/vsp2",
-  "name": "vsp2",
-  "description": "a mock switchport",
-  "created": "Fri Mar 16 17:09:27 EET 2012",
-  "state": "STARTED",
-  "network": {"href": "http://cimi.example.org/networks/network1"},
-  "bandwidthReservation": 0.5,
-  "trafficPriority": 1,
-  "maxTrafficDelay": 500000,
-  "maxTrafficLoss": 100,
-  "maxTrafficJitter": 100000,
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsps/vsp2" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsps/vsp2" }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp3.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp3.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp3.json
deleted file mode 100644
index b7f9cf5..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp3.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "id": "http://cimi.example.org/vsps/vsp3",
-  "name": "vsp3",
-  "description": "a mock switchport",
-  "created": "Fri Mar 16 17:10:36 EET 2012",
-  "state": "STARTED",
-  "network": {"href": "http://cimi.example.org/networks/network2"},
-  "bandwidthReservation": 1,
-  "trafficPriority": 1,
-  "maxTrafficDelay": 500000,
-  "maxTrafficLoss": 100,
-  "maxTrafficJitter": 100000,
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsps/vsp3" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsps/vsp3" }
-  ]
-}
-
-

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp4.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp4.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp4.json
deleted file mode 100644
index 33fcbf8..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp/vsp4.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "id": "http://cimi.example.org/vsps/vsp4",
-  "name": "vsp4",
-  "description": "a mock switchport",
-  "created": "Fri Mar 16 17:10:36 EET 2012",
-  "state": "STARTED",
-  "network": {"href": "http://cimi.example.org/networks/network2"},
-  "bandwidthReservation": 1,
-  "trafficPriority": 1,
-  "maxTrafficDelay": 500000,
-  "maxTrafficLoss": 100,
-  "maxTrafficJitter": 100000,
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsps/vsp4" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsps/vsp4" }
-  ]
-}
-
-

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig1.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig1.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig1.json
deleted file mode 100644
index f43bd62..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig1.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "id": "http://cimi.example.org/vsp_configurations/vspconfig1",
-  "name": "vspconfig1",
-  "description": "a mock vsp configuration",
-  "created": "Fri Mar 16 18:39:41 EET 2012",
-  "bandwidthReservation": 0.5,
-  "trafficPriority": 1,
-  "maxTrafficDelay": 500000,
-  "maxTrafficLoss": 100,
-  "maxTrafficJitter": 100000,
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsp_configurations/vspconfig1" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsp_configurations/vspconfig1" }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig2.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig2.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig2.json
deleted file mode 100644
index 1910259..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_configuration/vspconfig2.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "id": "http://cimi.example.org/vsp_configurations/vspconfig2",
-  "name": "vspconfig2",
-  "description": "a mock vsp configuration",
-  "created": "Fri Mar 16 18:41:41 EET 2012",
-  "bandwidthReservation": 1,
-  "trafficPriority": 1,
-  "maxTrafficDelay": 500000,
-  "maxTrafficLoss": 100,
-  "maxTrafficJitter": 100000,
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsp_configurations/vspconfig2" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsp_configurations/vspconfig2" }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template1.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template1.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template1.json
deleted file mode 100644
index 5df8fdd..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template1.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "id": "http://cimi.example.org/vsp_templates/template1",
-  "name": "template1",
-  "description": "A mock VSP template",
-  "created": "Fri Mar 16 19:26:41 EET 2012",
-  "network": { "href": "http://cimi.example.org/networks/network1"},
-  "vspConfig": { "href": "http://cimi.example.org/vsp_configs/vspconfig1"},
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsp_templates/template1" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsp_templates/template1" }]
-}

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template2.json
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template2.json b/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template2.json
deleted file mode 100644
index cc17c1b..0000000
--- a/server/lib/deltacloud/drivers/mock/data/cimi/vsp_template/template2.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "id": "http://cimi.example.org/vsp_templates/template2",
-  "name": "template2",
-  "description": "A mock VSP template",
-  "created": "Fri Mar 16 19:26:41 EET 2012",
-  "network": { "href": "http://cimi.example.org/networks/network2"},
-  "vspConfig": { "href": "http://cimi.example.org/vsp_configs/vspconfig2"},
-  "operations": [
-    { "rel": "edit", "href": "http://cimi.example.org/vsp_templates/template2" },
-    { "rel": "delete", "href": "http://cimi.example.org/vsp_templates/template2" }]
-}

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/80b7ac4b/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb b/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
index bebc45c..3431e51 100644
--- a/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
+++ b/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
@@ -20,7 +20,6 @@
 module Deltacloud::Drivers::Mock
 
   class MockDriver < Deltacloud::BaseDriver
-
     def networks(credentials, opts={})
       check_credentials(credentials)
       if opts[:id].nil?
@@ -76,36 +75,36 @@ module Deltacloud::Drivers::Mock
       end
     end
 
-    def vsps(credentials, opts={})
+    def network_ports(credentials, opts={})
       check_credentials(credentials)
       if opts[:id].nil?
-        vsps = @client.load_all_cimi(:vsp).map{|vsp| CIMI::Model::VSP.from_json(vsp)}
-        vsps.map{|vsp|convert_cimi_mock_urls(:vsp, vsp, opts[:env])}.flatten
+        ports = @client.load_all_cimi(:network_port).map{|net_port| CIMI::Model::NetworkPort.from_json(net_port)}
+        ports.map{|net_port|convert_cimi_mock_urls(:network_port, net_port, opts[:env])}.flatten
       else
-        vsp = CIMI::Model::VSP.from_json(@client.load_cimi(:vsp, opts[:id]))
-        convert_cimi_mock_urls(:vsp, vsp, opts[:env])
+        port = CIMI::Model::NetworkPort.from_json(@client.load_cimi(:network_port, opts[:id]))
+        convert_cimi_mock_urls(:network_port, port, opts[:env])
       end
     end
 
-    def vsp_configurations(credentials, opts={})
+    def network_port_configurations(credentials, opts={})
       check_credentials(credentials)
       if opts[:id].nil?
-        vsp_configurations = @client.load_all_cimi(:vsp_configuration).map{|vsp_config| CIMI::Model::VSPConfiguration.from_json(vsp_config)}
-        vsp_configurations.map{|vsp_config|convert_cimi_mock_urls(:vsp_configuration, vsp_config, opts[:env])}.flatten
+        network_port_configurations = @client.load_all_cimi(:network_port_configuration).map{|network_port_config| CIMI::Model::NetworkPortConfiguration.from_json(network_port_config)}
+        network_port_configurations.map{|network_port_config|convert_cimi_mock_urls(:network_port_configuration, network_port_config, opts[:env])}.flatten
       else
-        vsp_configuration = CIMI::Model::VSPConfiguration.from_json(@client.load_cimi(:vsp_configuration, opts[:id]))
-        convert_cimi_mock_urls(:vsp_configuration, vsp_configuration, opts[:env])
+        network_port_configuration = CIMI::Model::NetworkPortConfiguration.from_json(@client.load_cimi(:network_port_configuration, opts[:id]))
+        convert_cimi_mock_urls(:network_port_configuration, network_port_configuration, opts[:env])
       end
     end
 
-    def vsp_templates(credentials, opts={})
+    def network_port_templates(credentials, opts={})
       check_credentials(credentials)
       if opts[:id].nil?
-        vsp_templates = @client.load_all_cimi(:vsp_template).map{|vsp_templ| CIMI::Model::VSPTemplate.from_json(vsp_templ)}
-        vsp_templates.map{|vsp_templ|convert_cimi_mock_urls(:vsp_template, vsp_templ, opts[:env])}.flatten
+        network_port_templates = @client.load_all_cimi(:network_port_template).map{|net_port_templ| CIMI::Model::NetworkPortTemplate.from_json(net_port_templ)}
+        network_port_templates.map{|net_port_templ|convert_cimi_mock_urls(:network_port_template, net_port_templ, opts[:env])}.flatten
       else
-        vsp_template = CIMI::Model::VSPTemplate.from_json(@client.load_cimi(:vsp_template, opts[:id]))
-        convert_cimi_mock_urls(:vsp_template, vsp_template, opts[:env])
+        network_port_template = CIMI::Model::NetworkPortTemplate.from_json(@client.load_cimi(:network_port_template, opts[:id]))
+        convert_cimi_mock_urls(:network_port_template, network_port_template, opts[:env])
       end
     end
 
@@ -120,7 +119,11 @@ module Deltacloud::Drivers::Mock
                 convert_struct_urls(item, k.to_s.singularize.to_sym, context)
               end
             else
-              convert_struct_urls(v, k, context)
+              opts = nil
+              if is_subcollection?(v, cimi_object.id)
+                opts = {:parent_model_name => model_name, :parent_item_name => cimi_object.name}
+              end
+              convert_struct_urls(v, k, context, opts)
             end
         end
       end
@@ -130,13 +133,22 @@ module Deltacloud::Drivers::Mock
       cimi_object
     end
 
-    def convert_struct_urls(struct, cimi_name, context)
+    def is_subcollection?(struct, cimi_object_id)
+      return false if struct.href.nil?
+      struct.href.include?(cimi_object_id)
+    end
+
+    def convert_struct_urls(struct, cimi_name, context, opts = nil)
       return unless (struct.respond_to?(:href) && (not struct.href.nil?) && (not cimi_name == :operation ))
-      obj_name = struct.href.split("/").last
-      if cimi_name.to_s.end_with?("config")
-        struct.href = context.send(:"#{cimi_name}uration_url", obj_name)
+      if opts
+        struct.href = context.send(:"#{opts[:parent_model_name]}_url", opts[:parent_item_name]) + "/#{cimi_name}"
       else
-        struct.href = context.send(:"#{cimi_name}_url", obj_name)
+        obj_name = struct.href.split("/").last
+        if cimi_name.to_s.end_with?("config")
+          struct.href = context.send(:"#{cimi_name}uration_url", obj_name)
+        else
+          struct.href = context.send(:"#{cimi_name}_url", obj_name)
+        end
       end
     end