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
> 
> 

Attachment: volumes_test.rb
Description: application/ruby

Reply via email to