Simplify confirm_server_resite_test and make more accurate
This also limits the servers being used for the test to only those in the openstack_admin's project so as not to disrupt servers being used in other tenants for other purposes.
This commit is contained in:
@@ -10,7 +10,7 @@ module Aviator
|
||||
link 'documentation',
|
||||
'http://docs.openstack.org/api/openstack-compute/2/content/Confirm_Resized_Server-d1e3868.html'
|
||||
|
||||
param :id, required: true
|
||||
param :id, required: true
|
||||
|
||||
|
||||
def body
|
||||
|
||||
@@ -28,50 +28,39 @@ class Aviator::Test
|
||||
|
||||
def session
|
||||
unless @session
|
||||
environment = 'openstack_admin'
|
||||
@session = Aviator::Session.new(
|
||||
config_file: Environment.path,
|
||||
environment: environment
|
||||
)
|
||||
@session = Aviator::Session.new(
|
||||
config_file: Environment.path,
|
||||
environment: 'openstack_admin'
|
||||
)
|
||||
|
||||
@session.authenticate
|
||||
|
||||
creds = YAML.load_file(Environment.path).with_indifferent_access[environment]['auth_credentials']
|
||||
|
||||
tenants = @session.identity_service.request(:list_tenants).body['tenants']
|
||||
|
||||
resized_server = nil
|
||||
|
||||
tenants.each do |t|
|
||||
@session.authenticate do |c|
|
||||
c[:username] = creds[:username]
|
||||
c[:password] = creds[:password]
|
||||
c[:tenantName] = t['name']
|
||||
end
|
||||
|
||||
servers = @session.compute_service.request(:list_servers){ |p| p[:details] = true }.body['servers']
|
||||
|
||||
unless servers.empty?
|
||||
resized_server = servers.find{ |s| s['status'] == 'VERIFY_RESIZE' }
|
||||
break if resized_server
|
||||
end
|
||||
end
|
||||
|
||||
raise "\n\nEnvironment should have at least 1 recently"\
|
||||
" resized server with a status of VERIFY_STATUS\n\n" unless resized_server
|
||||
|
||||
end
|
||||
|
||||
@session
|
||||
end
|
||||
|
||||
|
||||
|
||||
def server
|
||||
@server ||= session.compute_service
|
||||
.request(:list_servers){ |p| p[:details] = true }
|
||||
.body[:servers]
|
||||
.find{ |s| s['status'] == 'VERIFY_RESIZE' }
|
||||
.with_indifferent_access
|
||||
unless @server
|
||||
response = session.compute_service.request(:list_servers) do |params|
|
||||
params[:details] = true
|
||||
params[:all_tenants] = true
|
||||
end
|
||||
|
||||
current_tenant = get_session_data[:access][:token][:tenant]
|
||||
|
||||
resized_servers = response.body[:servers].select do |server|
|
||||
server[:status] == 'VERIFY_RESIZE' && server[:tenant_id] == current_tenant[:id]
|
||||
end
|
||||
|
||||
raise "\n\nProject '#{ current_tenant[:name] }' should have at least 1 server with "\
|
||||
"a status of VERIFY_RESIZE\n\n" if resized_servers.empty?
|
||||
|
||||
@server = resized_servers.first
|
||||
end
|
||||
|
||||
@server
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user