On 20/11/12 13:29, Florin Ardelian wrote: > Hi Marios, > > Here's the output from curl: > > <api driver='profitbricks' version='1.0.5'> > <link href='http://localhost:3001/api/realms' rel='realms'> > </link> > <link href='http://localhost:3001/api/drivers' rel='drivers'> > </link> > <link href='http://localhost:3001/api/instance_states' > rel='instance_states'> > </link> > <link href='http://localhost:3001/api/hardware_profiles' > rel='hardware_profiles'> > </link> > <link href='http://localhost:3001/api/images' rel='images'> > </link> > <link href='http://localhost:3001/api/instances' rel='instances'> > <feature name='realm_filter' rel='index'> > <param name='realm_id' /> > </feature> > </link> > </api> > > > I am sure I have the requested methods declared: > > $ cat ./profitbricks_driver.rb | grep storage > storage ( 1 .. 64*1024 ) > *def storage_volumes*( credentials, opts = { } ) > *def create_storage_volume*(credentials, opts={}) > @client.store(:storage_volumes, volume) > *def destroy_storage_volume*(credentials, opts={}) > @client.destroy(:storage_volumes, opts[:id]) > def attach_storage_volume(credentials, opts={}) > def detach_storage_volume(credentials, opts) > > > I cleared the browser cache and used curl. No change, I still don't see the > "Storage volumes" feature. >
can't be sure what's going on without seeing the code - but the 'supported_collections' are determined by a method in base driver: server/lib/deltacloud/drivers/base_driver.rb 154 def supported_collections(credentials)$ 155 collection_arr = []$ 156 Deltacloud::Collections.deltacloud_modules.each do |m|$ 157 m.collections.each do |c|$ 158 # Get the required capability for the :index operation (like 'realms' or 'instance_state_machine')$ 159 index_operation_capability = c.operation(:index).required_capability$ 160 # Then use this capability to check if the 'capability' lambda defined$ 161 # for the Sinatra::Base class evaluate to 'true'$ 162 next if m.settings.respond_to?(:capability) and !m.settings.capability(index_operation_capability)$ 163 yield c if block_given?$ 164 collection_arr << c$ 165 end$ 166 end$ 167 puts collection_arr$ 168 collection_arr$ try debugging at line 167 above, or if you don't have a debugger installed just use a 'puts' as I have above. What are the reported collections there? marios > > On Tue, Nov 20, 2012 at 12:50 PM, [email protected] > <[email protected]>wrote: > >> On 20/11/12 12:30, Florin Ardelian wrote: >>> Hi guys, >>> >>> I have declared the methods needed to manipulate storages, but I don't >> have >>> the Storage volumes option in the main menu. What am I missing? >>> >>> Thanks, >>> Florin >>> >> >> weird - if you define the storage_volumes methods like: >> >> def storage_volumes >> >> def create_storage_volume >> >> etc, then this collection should be exposed. Make sure you've restarted >> the server after the changes, and perhaps it is a browser cache/state >> issue (sorry if this is silly but have been bitten by it in the past). >> What output do you get when you list collections with curl? >> >> curl --user "user:pass" -H "Accept: application/xml" >> http://localhost:3001/api >> >> marios >> > > >
