deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michal Fojtik <mfoj...@redhat.com>
Subject Re: CIMI::Models split to CIMI::Services (rev 2) WIP
Date Wed, 06 Mar 2013 14:41:48 GMT
On 03/05, David Lutterkort wrote:
> I've addressed that issue and uploaded a new patch series
> ( http://tracker.deltacloud.org/set/368 )

For some reason, all patches have empty body :-) (tracker upload?)

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

Maybe this has something to do with initializers?

  -- Michal

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



-- 
Michal Fojtik <mfojtik@redhat.com>
Deltacloud API, CloudForms

Mime
View raw message