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/04/04 15:14:40 UTC
[2/2] git commit: FGCP: added nil check for systems with no machines,
volumes or addresses; also fixed system state when CREATING
FGCP: added nil check for systems with no machines, volumes or
addresses; also fixed system state when CREATING
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/4551f3ce
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/4551f3ce
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/4551f3ce
Branch: refs/heads/master
Commit: 4551f3ce9ad1210e26b5ca523f36932c6650366e
Parents: f2bebda
Author: Dies Koper <di...@fast.au.fujitsu.com>
Authored: Thu Apr 4 17:50:24 2013 +1100
Committer: Dies Koper <di...@fast.au.fujitsu.com>
Committed: Fri Apr 5 00:14:29 2013 +1100
----------------------------------------------------------------------
server/lib/deltacloud/drivers/fgcp/fgcp_client.rb | 4 ++
.../drivers/fgcp/fgcp_driver_cimi_methods.rb | 29 ++++++++++++---
2 files changed, 27 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/4551f3ce/server/lib/deltacloud/drivers/fgcp/fgcp_client.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/fgcp/fgcp_client.rb b/server/lib/deltacloud/drivers/fgcp/fgcp_client.rb
index 9597c13..5520735 100644
--- a/server/lib/deltacloud/drivers/fgcp/fgcp_client.rb
+++ b/server/lib/deltacloud/drivers/fgcp/fgcp_client.rb
@@ -82,6 +82,10 @@ class FgcpClient
request('ListVSYS')
end
+ def get_vsys_status(vsys_id)
+ request('GetVSYSStatus', {'vsysId' => vsys_id})
+ end
+
def get_vsys_attributes(vsys_id)
request('GetVSYSAttributes', {'vsysId' => vsys_id})
end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/4551f3ce/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
index 6e08de9..e147960 100644
--- a/server/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb
+++ b/server/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb
@@ -51,11 +51,10 @@ module Deltacloud::Drivers::Fgcp
systems.each do |system|
vservers = client.list_vservers(system[:id])['vservers'][0]['vserver']
if vservers.nil?
- system[:state] = 'MIXED'
+ system[:state] = client.get_vsys_status(system[:id])['vsysStatus'][0] == 'DEPLOYING' ? 'CREATING' : 'MIXED'
else
vservers.each do |vserver|
- state = @@INSTANCE_STATE_MAP[client.get_vserver_status(vserver['vserverId'][0])['vserverStatus'][0]]
- state = 'STARTED' if state == 'RUNNING'
+ state = @@MACHINE_STATE_MAP[client.get_vserver_status(vserver['vserverId'][0])['vserverStatus'][0]]
system[:state] ||= state
if system[:state] != state
system[:state] = 'MIXED'
@@ -91,7 +90,7 @@ module Deltacloud::Drivers::Fgcp
context = opts[:env]
vsys_id = opts[:system_id]
xml = client.list_vservers(vsys_id)['vservers']
- return [] if xml.nil?
+ return [] unless xml and xml[0]['vserver']
machines = xml[0]['vserver'].collect do |vserver|
vserver_id = vserver['vserverId'][0]
@@ -112,7 +111,7 @@ module Deltacloud::Drivers::Fgcp
vsys_id = opts[:system_id]
#if :expand not specified, list of hrefs only, else convert from :storage_volumes?
xml = client.list_vdisk(vsys_id)['vdisks']
- return [] if xml.nil?
+ return [] unless xml and xml[0]['vdisk']
volumes = xml[0]['vdisk'].collect do |vdisk|
vdisk_id = vdisk['vdiskId'][0]
@@ -155,7 +154,7 @@ module Deltacloud::Drivers::Fgcp
vsys_id = opts[:system_id]
#if :expand not specified, list of hrefs only, else ??
xml = client.list_public_ips(vsys_id)['publicips']
- return [] if xml.nil?
+ return [] unless xml and xml[0]['publicip']
# retrieve network segment (subnet) info
addresses = xml[0]['publicip'].collect do |ip|
@@ -246,6 +245,24 @@ module Deltacloud::Drivers::Fgcp
end
end
+ # FGCP instance states mapped to CIMI machine states
+ @@MACHINE_STATE_MAP = {
+ 'DEPLOYING' => 'CREATING',
+ 'RUNNING' => 'STARTED',
+ 'STOPPING' => 'STOPPING',
+ 'STOPPED' => 'STOPPED',
+ 'STARTING' => 'STARTING', # not sure about this one
+ 'FAILOVER' => 'STARTED',
+ 'UNEXPECTED_STOP' => 'STOPPED',
+ 'RESTORING' => 'RESTORING',
+ 'BACKUP_ING' => 'CAPTURING',
+ 'ERROR' => 'ERROR', # allowed actions limited
+ 'START_ERROR' => 'STOPPED', # allowed actions are same as for STOPPED
+ 'STOP_ERROR' => 'STARTED', # allowed actions are same as for RUNNING
+ 'REGISTERING' => 'PENDING',
+ 'CHANGE_TYPE' => 'PENDING'
+ }
+
end
end