> From: [email protected]
> To: [email protected]
> Sent: Tuesday, December 18, 2012 12:26:21 PM
> Subject: [PATCH 1/3] CIMI: tidy up - add features for Machine and missing 
> VolumeTemplates
> 
> From: marios <[email protected]>
> 
> 
> Signed-off-by: marios <[email protected]>
> ---
>  server/lib/cimi/collections/machines.rb         |  3 ++
>  server/lib/cimi/collections/volume_templates.rb | 47
>  +++++++++++++++++++++++++
>  server/lib/cimi/models/volume_template.rb       |  3 ++
>  3 files changed, 53 insertions(+)
>  create mode 100644 server/lib/cimi/collections/volume_templates.rb
> 
> diff --git a/server/lib/cimi/collections/machines.rb
> b/server/lib/cimi/collections/machines.rb
> index b18fb1c..e5e1836 100644
> --- a/server/lib/cimi/collections/machines.rb
> +++ b/server/lib/cimi/collections/machines.rb
> @@ -16,7 +16,10 @@
>  module CIMI::Collections
>    class Machines < Base
>  
> +    include CIMI::Features
> +
>      set :capability, lambda { |m| driver.respond_to? m }
> +    check_features :for => lambda { |c, f|
> driver.class.has_feature?(c, f) }
>  
>      collection :machines do
>        description 'List all machine'
> diff --git a/server/lib/cimi/collections/volume_templates.rb
> b/server/lib/cimi/collections/volume_templates.rb
> new file mode 100644
> index 0000000..c73934e
> --- /dev/null
> +++ b/server/lib/cimi/collections/volume_templates.rb
> @@ -0,0 +1,47 @@
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed
> with
> +# this work for additional information regarding copyright
> ownership.  The
> +# ASF licenses this file to you under the Apache License, Version
> 2.0 (the
> +# "License"); you may not use this file except in compliance with
> the
> +# License.  You may obtain a copy of the License at
> +#
> +#       http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing,
> software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT
> +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  See the
> +# License for the specific language governing permissions and
> limitations
> +# under the License.
> +
> +module CIMI::Collections
> +  class VolumeTemplates < Base
> +
> +#    set :capability, lambda { |m| driver.respond_to? m }
> +
> +    collection :volume_templates do
> +
> +      operation :index do
> +        description "Get list all VolumeTemplates"
> +        control do
> +          volume_template =
> VolumeTemplates.list(self).filter_by(params['$select'])
> +          respond_to do |format|
> +            format.xml { volume_template.to_xml }
> +            format.json { volume_template.to_json }
> +          end
> +        end
> +      end
> +
> +      operation :show do
> +        description "Get a specific VolumeTemplate"
> +        control do
> +          volume_template = VolumeTemplate.find(params[:id], self)
> +          respond_to do |format|
> +            format.xml { volume_template.to_xml }
> +            format.json { volume_template.json }
> +          end
> +        end
> +      end
> +    end
> +
> +  end
> +end
> diff --git a/server/lib/cimi/models/volume_template.rb
> b/server/lib/cimi/models/volume_template.rb
> index b2ac323..bb632c6 100644
> --- a/server/lib/cimi/models/volume_template.rb
> +++ b/server/lib/cimi/models/volume_template.rb
> @@ -22,4 +22,7 @@ class CIMI::Model::VolumeTemplate <
> CIMI::Model::Base
>    array :operations do
>      scalar :rel, :href
>    end
> +
> +  def self.find(id, context)
> +  end
>  end
> --
> 1.7.11.7
> 
Hi Marios,

I get the following error from GET /cimi/volume_templates - mock provider 
(after "rake mock:fixtures:reset"):

curl -X GET --user "un:pw" 
"http://qeblade39.rhq.lab.eng.bos.redhat.com:3001/cimi/volume_templates";
{"code":500,"message":"undefined method `list' for 
CIMI::Collections::VolumeTemplates:Class","error":"NoMethodError"}

Similar error + place from running cep_test.rb:

**********
 ERROR -- 500: [NoMethodError] undefined method `list' for 
CIMI::Collections::VolumeTemplates:Class

/home/dcloud/workspace/deltacloud/server/lib/cimi/collections/volume_templates.rb:26:in
 `block (3 levels) in <class:VolumeTemplates>'
/usr/local/share/gems/gems/sinatra-rabbit-1.1.3/lib/sinatra/rabbit/base.rb:396:in
 `instance_eval'
/usr/local/share/gems/gems/sinatra-rabbit-1.1.3/lib/sinatra/rabbit/base.rb:396:in
 `block in control'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in `call'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in `block in 
compile!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `[]'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `block (3 
levels) in route!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:851:in `route_eval'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `block (2 
levels) in route!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:872:in `block in 
process_route'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in `catch'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in 
`process_route'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:834:in `block in 
route!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in `each'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in `route!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:936:in `dispatch!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `block in 
call!'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `block in 
invoke'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `catch'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `invoke'
/usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `call!'

**********

Applied all three patches in http://tracker.deltacloud.org/set/212.

Reply via email to