I've addressed that issue and uploaded a new patch series ( http://tracker.deltacloud.org/set/368 )
I get a good number of test failures from the blackobox tests though. Will have to investigate further tomorrow. Also, when I put the attached test into tests/cimi/collections, it passes if I run it by itself with 'ruby tests/cimi/collections/volumes_test.rb) but it fails when I run rake test:cimi because the collection of volume configs is empty in make_volume_create ... David On Mon, 2013-03-04 at 17:35 -0800, David Lutterkort wrote: > On Fri, 2013-03-01 at 17:25 -0800, David Lutterkort wrote: > > On Fri, 2013-03-01 at 14:40 +0100, Michal Fojtik wrote: > > > - ResourceMetada are now broken and need to be fixed. > > > (an informative warning included ;-) > > > > I added one more patch to your series and rerecorded as > > http://tracker.deltacloud.org/set/364 > > I noticed a bunch of minor issues, and one bigger one today: if you look > at VolumeCreate#create now: > > def create(context) > if volume_template.href? > template = volume_template.find(context) > else > template = > CIMI::Service::VolumeTemplate.from_xml(volume_template.to_xml) > end > > volume_image = template.volume_image.href? ? > template.volume_image.find(context) : template.volume_image > > volume_config = template.volume_config.href? ? > template.volume_config.find(context) : template.volume_config > > ... > end > > things blow up horribly because volume_template.find(context) winds up > calling CIMI::Model::VolumeTemplate::find - which doesn't exist anymore. > > To address that, I want to add some magic to CIMI::Service::Base; I just > haven't made up my mind what that magic should be exactly. Option (1) > would be to wrap each model object in a service object as it is returned > from Service::Base#[] .. but that seems like overkill. Option (2) is to > only do something special for Ref's, but still return CIMI::Model > objects from accessors. Ideally, that something could also help us get > rid of the boilerplate above, so that you could just write > > template = volume_template.unref(context) > > and have it (a) look up the volume_template if href is set and (b) set > attributes that were directly defined. That would have the advantage > that we'd do the right thing where requests reference an existing entity > and then override some of its attributes. > > Clearly, allowing to write volume_template.unref would require > monkeypatching the CIMI::Model::VolumeTemplateRef class - and I am still > hoping to come up with something that would avoid that. > > I'll look more into this business tomorrow. > > David > >
volumes_test.rb
Description: application/ruby