You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by dk...@apache.org on 2013/02/23 06:28:27 UTC
git commit: FGCP: add mapping for GET system and system_templates
Updated Branches:
refs/heads/master 0c3bc007e -> 022dd0b2c
FGCP: add mapping for GET system and system_templates
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/022dd0b2
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/022dd0b2
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/022dd0b2
Branch: refs/heads/master
Commit: 022dd0b2c227e82c97ee3e6ac9942591a18a883a
Parents: 0c3bc00
Author: Dies Koper <di...@fast.au.fujitsu.com>
Authored: Fri Feb 22 17:35:41 2013 +1100
Committer: Dies Koper <di...@fast.au.fujitsu.com>
Committed: Sat Feb 23 16:27:01 2013 +1100
----------------------------------------------------------------------
server/lib/cimi/models/system.rb | 7 +-
server/lib/cimi/models/system_template.rb | 7 +-
server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb | 1 +
.../drivers/fgcp/fgcp_driver_cimi_methods.rb | 74 +++++++++++++++
.../drivers/mock/mock_driver_cimi_methods.rb | 14 +--
5 files changed, 87 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/022dd0b2/server/lib/cimi/models/system.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/system.rb b/server/lib/cimi/models/system.rb
index c2b94db..e238259 100644
--- a/server/lib/cimi/models/system.rb
+++ b/server/lib/cimi/models/system.rb
@@ -39,13 +39,12 @@ class CIMI::Model::System < CIMI::Model::Base
end
def self.find(id, context)
- systems = []
if id == :all
systems = context.driver.systems(context.credentials, {:env=>context})
else
- system = context.driver.systems(context.credentials, {:env=>context, :id=>id})
- raise CIMI::Model::NotFound unless system
- system
+ systems = context.driver.systems(context.credentials, {:env=>context, :id=>id})
+ raise CIMI::Model::NotFound unless systems.first
+ systems.first
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/022dd0b2/server/lib/cimi/models/system_template.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/system_template.rb b/server/lib/cimi/models/system_template.rb
index f252e28..09cd9b0 100644
--- a/server/lib/cimi/models/system_template.rb
+++ b/server/lib/cimi/models/system_template.rb
@@ -45,13 +45,12 @@ class CIMI::Model::SystemTemplate < CIMI::Model::Base
class << self
def find(id, context)
- templates = []
if id == :all
templates = context.driver.system_templates(context.credentials, {:env=>context})
else
- template = context.driver.system_templates(context.credentials, {:env=>context, :id=>id})
- raise CIMI::Model::NotFound unless template
- template
+ templates = context.driver.system_templates(context.credentials, {:env=>context, :id=>id})
+ raise CIMI::Model::NotFound unless templates.first
+ templates.first
end
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/022dd0b2/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb b/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
index 8d29a8e..436cb50 100644
--- a/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
+++ b/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
@@ -17,6 +17,7 @@
require_relative 'fgcp_client'
require_relative '../../runner'
+require_relative 'fgcp_driver_cimi_methods'
require 'openssl'
require 'xmlsimple'
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/022dd0b2/server/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb b/server/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb
new file mode 100644
index 0000000..b4d31f6
--- /dev/null
+++ b/server/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb
@@ -0,0 +1,74 @@
+#
+# 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.
+#
+#Definition of CIMI methods for the Fgcp driver - separation from deltacloud
+#API Fgcp driver methods
+
+module Deltacloud::Drivers::Fgcp
+
+ class FgcpDriver < Deltacloud::BaseDriver
+
+ #cimi features
+ feature :machines, :default_initial_state do
+ { :values => ["STOPPED"] }
+ end
+
+ def systems(credentials, opts={})
+ safely do
+ client = new_client(credentials)
+
+ if opts and opts[:id]
+ vsys_ids = [opts[:id]]
+ else
+ xml = client.list_vsys['vsyss']
+ return [] if xml.nil?
+ vsys_ids = xml[0]['vsys'].collect { |vsys| vsys['vsysId'][0] }
+ end
+
+ vsys_ids.collect do |vsys_id|
+ vsys = client.get_vsys_configuration(vsys_id)['vsys'][0]
+ vsys_description_el = vsys['description']
+ CIMI::Model::System.new(
+ :id => vsys['vsysId'][0],
+ :name => vsys['vsysName'][0],
+# :machines => "http://cimi.example.org/systems/#{vsys['vsysId'][0]}/machines?realm_id=#{vsys['vsysId'][0]}",
+# :volumes => "http://cimi.example.org/systems/#{vsys['vsysId'][0]}/volumes?realm_id=#{vsys['vsysId'][0]}",
+# :networks => "http://cimi.example.org/systems/#{vsys['vsysId'][0]}/networks?realm_id=#{vsys['vsysId'][0]}",
+# :addresses => "http://cimi.example.org/systems/#{vsys['vsysId'][0]}/addresses?realm_id=#{vsys['vsysId'][0]}",
+ :description => vsys_description_el ? vsys_description_el[0] : nil
+ )
+ end
+ end
+ end
+
+ def system_templates(credentials, opts={})
+ safely do
+ client = new_client(credentials)
+ templates = client.list_vsys_descriptor['vsysdescriptors'][0]['vsysdescriptor'].collect do |desc|
+ CIMI::Model::SystemTemplate.new(
+ :id => desc['vsysdescriptorId'][0],
+ :name => desc['vsysdescriptorName'][0],
+ :description => desc['description'][0]
+ )
+ end
+ templates = templates.select { |t| opts[:id] == t[:id] } if opts[:id]
+ templates
+ end
+ end
+
+ end
+
+end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/022dd0b2/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb b/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
index 1180243..b1c57c8 100644
--- a/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
+++ b/server/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb
@@ -25,30 +25,28 @@ module Deltacloud::Drivers::Mock
check_credentials(credentials)
if opts[:id].nil?
systems = @client.load_all_cimi(:system).map{|sys| CIMI::Model::System.from_json(sys)}
- systems.map{|sys|convert_cimi_mock_urls(:system, sys ,opts[:env])}.flatten
else
begin
- system = CIMI::Model::System.from_json(@client.load_cimi(:system, opts[:id]))
- convert_cimi_mock_urls(:system, system, opts[:env])
+ systems = [CIMI::Model::System.from_json(@client.load_cimi(:system, opts[:id]))]
rescue Errno::ENOENT
- nil
+ return []
end
end
+ systems.map{|sys|convert_cimi_mock_urls(:system, sys ,opts[:env])}.flatten
end
def system_templates(credentials, opts={})
check_credentials(credentials)
if opts[:id].nil?
system_templates = @client.load_all_cimi(:system_template).map{|sys_templ| CIMI::Model::SystemTemplate.from_json(sys_templ)}
- system_templates.map{|sys_templ|convert_cimi_mock_urls(:system_template, sys_templ, opts[:env])}.flatten
else
begin
- system_template = CIMI::Model::SystemTemplate.from_json(@client.load_cimi(:system_template, opts[:id]))
- convert_cimi_mock_urls(:system_template, system_template, opts[:env])
+ system_templates = [CIMI::Model::SystemTemplate.from_json(@client.load_cimi(:system_template, opts[:id]))]
rescue Errno::ENOENT
- nil
+ return []
end
end
+ system_templates.map{|sys_templ|convert_cimi_mock_urls(:system_template, sys_templ, opts[:env])}.flatten
end
def networks(credentials, opts={})