You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2013/04/10 22:41:20 UTC
git commit: * lib/cimi/service/disk.rb: correctly look up
DiskCollection
Updated Branches:
refs/heads/master 344199882 -> 04006b7a0
* lib/cimi/service/disk.rb: correctly look up DiskCollection
The DiskCollection is generated scoped inside the class in which it is used
as a collection (CIMI::Model::Machine) Use the correct class name in
collection_for_instance.
Fixes https://issues.apache.org/jira/browse/DTACLOUD-536
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/04006b7a
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/04006b7a
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/04006b7a
Branch: refs/heads/master
Commit: 04006b7a03073f16804a1911b4bd34b5776ec4a8
Parents: 3441998
Author: David Lutterkort <lu...@redhat.com>
Authored: Tue Apr 9 15:45:58 2013 -0700
Committer: David Lutterkort <lu...@redhat.com>
Committed: Wed Apr 10 13:40:54 2013 -0700
----------------------------------------------------------------------
server/lib/cimi/service/disk.rb | 9 ++-------
server/tests/cimi/collections/common.rb | 8 +++++++-
server/tests/cimi/collections/machines_test.rb | 12 ++++++++++++
3 files changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/04006b7a/server/lib/cimi/service/disk.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/service/disk.rb b/server/lib/cimi/service/disk.rb
index 1af908e..8fde6b5 100644
--- a/server/lib/cimi/service/disk.rb
+++ b/server/lib/cimi/service/disk.rb
@@ -62,18 +62,13 @@ class CIMI::Service::Disk < CIMI::Service::Base
def self.collection_for_instance(instance_id, context)
instance = context.driver.instance(context.credentials, :id => instance_id)
disks = find(instance, nil, context)
- unless CIMI::Model.const_defined?('DiskCollection')
- collection_class = CIMI::Model::Collection.generate(self)
- else
- collection_class = CIMI::Model::DiskCollection
- end
- collection_class.new(context, :values => {
+ CIMI::Model::Machine::DiskCollection.new(
:id => context.url("/machines/#{instance_id}/disks"),
:name => 'default',
:count => disks.size,
:description => "Disk collection for Machine #{instance_id}",
:entries => disks
- })
+ )
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/04006b7a/server/tests/cimi/collections/common.rb
----------------------------------------------------------------------
diff --git a/server/tests/cimi/collections/common.rb b/server/tests/cimi/collections/common.rb
index f44f9cd..ce9b516 100644
--- a/server/tests/cimi/collections/common.rb
+++ b/server/tests/cimi/collections/common.rb
@@ -36,7 +36,13 @@ def model_class
else
raise "Unexpected content type #{resp.content_type}"
end
- CIMI::Model::const_get(resource)
+ if resource == "DiskCollection"
+ # We scope subcollections within the containing class
+ # CIMI resource_uri's don't
+ CIMI::Model::Machine::DiskCollection
+ else
+ CIMI::Model::const_get(resource)
+ end
end
def model
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/04006b7a/server/tests/cimi/collections/machines_test.rb
----------------------------------------------------------------------
diff --git a/server/tests/cimi/collections/machines_test.rb b/server/tests/cimi/collections/machines_test.rb
index 5e8346e..b6f1de1 100644
--- a/server/tests/cimi/collections/machines_test.rb
+++ b/server/tests/cimi/collections/machines_test.rb
@@ -42,6 +42,18 @@ describe CIMI::Collections::Machines do
add_ops.size.must_equal 1
end
+ it "should return the disks collection for a machine" do
+ get root_url + '/machines'
+ model.operations.wont_be_empty
+ href = model.entries.first.disks[:href]
+ href.wont_be_empty
+ get href
+ status.must_equal 200
+ model.must_be_kind_of CIMI::Model::Machine::DiskCollection
+ model.entries.size.must_equal 1
+ model.entries.first.name.must_equal "inst0_disk_0"
+ end
+
describe "$expand" do
def machine(*expand)
url = '/machines/inst1'