mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[openstack|compute] General Cleanup and Update
- Focus on adding additional vm actions support - New request types are not fully tested
This commit is contained in:
parent
74fe4885c9
commit
4d33ccb7a7
29 changed files with 420 additions and 135 deletions
|
@ -10,94 +10,119 @@ module Fog
|
|||
recognizes :openstack_auth_token, :openstack_management_url,
|
||||
:persistent, :openstack_compute_service_name, :openstack_tenant
|
||||
|
||||
## MODELS
|
||||
#
|
||||
model_path 'fog/openstack/models/compute'
|
||||
model :address
|
||||
collection :addresses
|
||||
model :flavor
|
||||
collection :flavors
|
||||
model :image
|
||||
collection :images
|
||||
model :server
|
||||
collection :servers
|
||||
model :meta
|
||||
model :image
|
||||
collection :images
|
||||
model :flavor
|
||||
collection :flavors
|
||||
model :metadatum
|
||||
collection :metadata
|
||||
model :key_pair
|
||||
collection :key_pairs
|
||||
model :address
|
||||
collection :addresses
|
||||
model :security_group
|
||||
collection :security_groups
|
||||
model :key_pair
|
||||
collection :key_pairs
|
||||
model :tenant
|
||||
collection :tenants
|
||||
model :volume
|
||||
collection :volumes
|
||||
model :network
|
||||
collection :networks
|
||||
|
||||
|
||||
## REQUESTS
|
||||
#
|
||||
request_path 'fog/openstack/requests/compute'
|
||||
request :create_server
|
||||
request :delete_image
|
||||
request :delete_server
|
||||
request :get_flavor_details
|
||||
request :get_image_details
|
||||
request :get_server_details
|
||||
|
||||
request :list_flavors
|
||||
request :list_flavors_detail
|
||||
request :list_images
|
||||
request :list_images_detail
|
||||
# Server CRUD
|
||||
request :list_servers
|
||||
request :list_servers_detail
|
||||
request :create_server
|
||||
request :get_server_details
|
||||
request :update_server
|
||||
request :delete_server
|
||||
|
||||
# Server Actions
|
||||
request :server_actions
|
||||
request :server_action
|
||||
request :change_password_server
|
||||
request :reboot_server
|
||||
request :rebuild_server
|
||||
request :resize_server
|
||||
request :confirm_resized_server
|
||||
request :revert_resized_server
|
||||
request :confirm_resize_server
|
||||
request :revert_resize_server
|
||||
request :pause_server
|
||||
request :unpause_server
|
||||
request :rescue_server
|
||||
request :change_server_password
|
||||
request :add_fixed_ip
|
||||
request :remove_fixed_ip
|
||||
request :server_diagnostics
|
||||
|
||||
# Server Extenstions
|
||||
request :get_console_output
|
||||
request :get_vnc_console
|
||||
request :live_migrate_server
|
||||
request :migrate_server
|
||||
|
||||
# Image CRUD
|
||||
request :list_images
|
||||
request :list_images_detail
|
||||
request :create_image
|
||||
request :get_image_details
|
||||
request :delete_image
|
||||
|
||||
request :update_server
|
||||
# Flavor
|
||||
request :list_flavors
|
||||
request :list_flavors_detail
|
||||
request :get_flavor_details
|
||||
|
||||
# Metadata
|
||||
request :list_metadata
|
||||
request :get_metadata
|
||||
request :set_metadata
|
||||
request :update_metadata
|
||||
request :list_metadata
|
||||
|
||||
request :get_meta
|
||||
request :update_meta
|
||||
request :delete_meta
|
||||
request :delete_metadata
|
||||
|
||||
# Address
|
||||
request :list_addresses
|
||||
request :list_all_addresses
|
||||
request :list_private_addresses
|
||||
request :list_public_addresses
|
||||
request :get_address
|
||||
request :allocate_address
|
||||
request :associate_address
|
||||
request :disassociate_address
|
||||
request :get_address
|
||||
request :list_addresses
|
||||
request :release_address
|
||||
request :disassociate_address
|
||||
|
||||
# Security Group
|
||||
request :list_security_groups
|
||||
request :get_security_group
|
||||
request :create_security_group
|
||||
request :create_security_group_rule
|
||||
request :delete_security_group
|
||||
request :delete_security_group_rule
|
||||
request :list_security_groups
|
||||
request :get_security_group
|
||||
|
||||
# Key Pair
|
||||
request :list_key_pairs
|
||||
request :create_key_pair
|
||||
request :delete_key_pair
|
||||
request :list_key_pairs
|
||||
|
||||
# Tenant
|
||||
request :list_tenants
|
||||
request :set_tenant
|
||||
|
||||
# Volume
|
||||
request :list_volumes
|
||||
request :get_volume_details
|
||||
request :create_volume
|
||||
request :get_volume_details
|
||||
request :delete_volume
|
||||
|
||||
# Usage
|
||||
request :list_usages
|
||||
request :get_console_output
|
||||
request :live_migrate_server
|
||||
request :migrate_server
|
||||
|
||||
class Mock
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'fog/core/collection'
|
||||
require 'fog/openstack/models/meta_parent'
|
||||
require 'fog/openstack/models/compute/meta'
|
||||
require 'fog/openstack/models/compute/metadatum'
|
||||
require 'fog/openstack/models/compute/image'
|
||||
require 'fog/openstack/models/compute/server'
|
||||
|
||||
|
@ -10,7 +10,7 @@ module Fog
|
|||
|
||||
class Metadata < Fog::Collection
|
||||
|
||||
model Fog::Compute::OpenStack::Meta
|
||||
model Fog::Compute::OpenStack::Metadatum
|
||||
|
||||
include Fog::Compute::OpenStack::MetaParent
|
||||
|
||||
|
@ -52,15 +52,15 @@ module Fog
|
|||
if data.nil?
|
||||
data={}
|
||||
self.each do |meta|
|
||||
if meta.is_a?(Fog::Compute::OpenStack::Meta) then
|
||||
if meta.is_a?(Fog::Compute::OpenStack::Metadatum) then
|
||||
data.store(meta.key, meta.value)
|
||||
else
|
||||
data.store(meta["key"], meta["value"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
data
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ require 'fog/openstack/models/meta_parent'
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Meta < Fog::Model
|
||||
class Metadatum < Fog::Model
|
||||
|
||||
include Fog::Compute::OpenStack::MetaParent
|
||||
|
13
lib/fog/openstack/models/compute/network.rb
Normal file
13
lib/fog/openstack/models/compute/network.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
require 'fog/core/model'
|
||||
|
||||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Network < Fog::Model
|
||||
identity :id
|
||||
attribute :name
|
||||
attribute :addresses
|
||||
end # class Network
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
29
lib/fog/openstack/models/compute/networks.rb
Normal file
29
lib/fog/openstack/models/compute/networks.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
require 'fog/core/collection'
|
||||
require 'fog/openstack/models/compute/network'
|
||||
|
||||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Networks < Fog::Collection
|
||||
model Fog::Compute::OpenStack::Network
|
||||
|
||||
attribute :server
|
||||
|
||||
def all
|
||||
requires :server
|
||||
|
||||
networks = Array.new
|
||||
server.addresses.each_with_index do |address, index|
|
||||
networks << {
|
||||
:id => index + 1,
|
||||
:name => address[0],
|
||||
:addresses => address[1].map {|a| a['addr'] }
|
||||
}
|
||||
end
|
||||
|
||||
load(networks)
|
||||
end
|
||||
end # class Networks
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
|
@ -178,7 +178,7 @@ module Fog
|
|||
def live_migrate(host, block_migration, disk_over_commit)
|
||||
requires :id
|
||||
connection.live_migrate_server(id, host, block_migration, disk_over_commit)
|
||||
end
|
||||
end
|
||||
|
||||
def associate_address(floating_ip)
|
||||
requires :id
|
||||
|
@ -198,6 +198,10 @@ module Fog
|
|||
@max_count = new_max_count
|
||||
end
|
||||
|
||||
def networks
|
||||
connection.networks(:server => self)
|
||||
end
|
||||
|
||||
# TODO: Implement /os-volumes-boot support with 'block_device_mapping'
|
||||
def save
|
||||
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
|
||||
|
|
29
lib/fog/openstack/requests/compute/add_fixed_ip.rb
Normal file
29
lib/fog/openstack/requests/compute/add_fixed_ip.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Add an IP address on a network.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server in which to add an IP to.
|
||||
# * network_id <~String> - The ID of the network the IP should be on.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def add_fixed_ip(server_id, network_id)
|
||||
body = {
|
||||
'addFixedIp' => {
|
||||
'networkId' => network_id
|
||||
}
|
||||
}
|
||||
server_action(server_id, body).status == 202
|
||||
end # def add_fixed_ip
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def add_fixed_ip(server_id, network_id)
|
||||
true
|
||||
end # def add_fixed_ip
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
|
@ -3,7 +3,7 @@ module Fog
|
|||
class OpenStack
|
||||
class Real
|
||||
|
||||
def change_password_server(server_id, admin_password)
|
||||
def change_server_password(server_id, admin_password)
|
||||
body = { 'changePassword' => { 'adminPass' => admin_password }}
|
||||
server_action(server_id, body)
|
||||
end
|
||||
|
@ -12,7 +12,7 @@ module Fog
|
|||
|
||||
class Mock
|
||||
|
||||
def change_password_server(server_id, admin_password)
|
||||
def change_server_password(server_id, admin_password)
|
||||
response = Excon::Response.new
|
||||
response.status = 202
|
||||
response
|
|
@ -3,7 +3,7 @@ module Fog
|
|||
class OpenStack
|
||||
class Real
|
||||
|
||||
def confirm_resized_server(server_id)
|
||||
def confirm_resize_server(server_id)
|
||||
body = { 'confirmResize' => nil }
|
||||
server_action(server_id, body, 204)
|
||||
end
|
||||
|
@ -12,7 +12,7 @@ module Fog
|
|||
|
||||
class Mock
|
||||
|
||||
def confirm_resized_server(server_id)
|
||||
def confirm_resize_server(server_id)
|
||||
response = Excon::Response.new
|
||||
response.status = 204
|
||||
response
|
|
@ -3,7 +3,7 @@ module Fog
|
|||
class OpenStack
|
||||
class Real
|
||||
|
||||
def delete_meta(collection_name, parent_id, key)
|
||||
def delete_metadata(collection_name, parent_id, key)
|
||||
request(
|
||||
:expects => 204,
|
||||
:method => 'DELETE',
|
||||
|
@ -15,7 +15,7 @@ module Fog
|
|||
|
||||
class Mock
|
||||
|
||||
def delete_meta(collection_name, parent_id, key)
|
||||
def delete_metadata(collection_name, parent_id, key)
|
||||
response = Excon::Response.new
|
||||
response.status = 204
|
||||
response
|
|
@ -3,7 +3,7 @@ module Fog
|
|||
class OpenStack
|
||||
class Real
|
||||
|
||||
def get_meta(collection_name, parent_id, key)
|
||||
def get_metadata(collection_name, parent_id, key)
|
||||
request(
|
||||
:expects => [200, 203],
|
||||
:method => 'GET',
|
||||
|
@ -15,7 +15,7 @@ module Fog
|
|||
|
||||
class Mock
|
||||
|
||||
def get_meta(collection_name, parent_id, key)
|
||||
def get_metadata(collection_name, parent_id, key)
|
||||
response = Excon::Response.new
|
||||
response.status = 200
|
||||
response.body = { 'meta' => {} }
|
40
lib/fog/openstack/requests/compute/get_vnc_console.rb
Normal file
40
lib/fog/openstack/requests/compute/get_vnc_console.rb
Normal file
|
@ -0,0 +1,40 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Get a vnc console for an instance.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server.
|
||||
# * console_type <~String> - Type of vnc console to get ('novnc' or 'xvpvnc').
|
||||
# === Returns
|
||||
# * response <~Excon::Response>:
|
||||
# * body <~Hash>:
|
||||
# * url <~String>
|
||||
# * type <~String>
|
||||
def get_vnc_console(server_id, console_type)
|
||||
body = {
|
||||
'os-getVNCConsole' => {
|
||||
'type' => console_type
|
||||
}
|
||||
}
|
||||
server_action(server_id, body)
|
||||
end # def get_vnc_console
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def get_vnc_console(server_id, console_type)
|
||||
response = Excon::Response.new
|
||||
response.status = 200
|
||||
response.body = {
|
||||
"console" => {
|
||||
"url" => "http://192.168.27.100:6080/vnc_auto.html?token=c3606020-d1b7-445d-a88f-f7af48dd6a20",
|
||||
"type" => "novnc"
|
||||
}
|
||||
}
|
||||
response
|
||||
end # def get_vnc_console
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
|
@ -1,23 +0,0 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
|
||||
def list_security_groups
|
||||
request(
|
||||
:expects => [200],
|
||||
:method => 'GET',
|
||||
:path => 'os-security-groups.json'
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Mock
|
||||
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
24
lib/fog/openstack/requests/compute/pause_server.rb
Normal file
24
lib/fog/openstack/requests/compute/pause_server.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Pause the server.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to pause.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def pause_server(server_id)
|
||||
body = { 'pause' => nil }
|
||||
server_action(server_id, body) == 202
|
||||
end # def pause_server
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def pause_server(server_id)
|
||||
true
|
||||
end # def pause_server
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
29
lib/fog/openstack/requests/compute/remove_fixed_ip.rb
Normal file
29
lib/fog/openstack/requests/compute/remove_fixed_ip.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Remove an IP address.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server in which to remove an IP from.
|
||||
# * address <~String> - The IP address to be removed.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def remove_fixed_ip(server_id, address)
|
||||
body = {
|
||||
'removeFixedIp' => {
|
||||
'address' => address
|
||||
}
|
||||
}
|
||||
server_action(server_id, body).status == 202
|
||||
end # def remove_fixed_ip
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def remove_fixed_ip(server_id, network_id)
|
||||
true
|
||||
end # def remove_fixed_ip
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
24
lib/fog/openstack/requests/compute/rescue_server.rb
Normal file
24
lib/fog/openstack/requests/compute/rescue_server.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Rescue the server.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to be rescued.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def rescue_server(server_id)
|
||||
body = { 'rescue' => nil }
|
||||
server_action(server_id, body) == 202
|
||||
end # def rescue_server
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def rescue_server(server_id)
|
||||
true
|
||||
end # def rescue_server
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
24
lib/fog/openstack/requests/compute/resume_server.rb
Normal file
24
lib/fog/openstack/requests/compute/resume_server.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Resume the server.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to be resumed.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def resume_server(server_id)
|
||||
body = { 'resume' => nil }
|
||||
server_action(server_id, body) == 202
|
||||
end # def resume_server
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def resume_server(server_id)
|
||||
true
|
||||
end # def resume_server
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
27
lib/fog/openstack/requests/compute/server_actions.rb
Normal file
27
lib/fog/openstack/requests/compute/server_actions.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Retrieve server actions.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to query for available actions.
|
||||
# === Returns
|
||||
# * actions <~Array>
|
||||
def server_actions(server_id)
|
||||
request(
|
||||
:expects => 200,
|
||||
:method => 'GET',
|
||||
:path => "servers/#{server_id}/actions"
|
||||
).body['actions']
|
||||
end # def server_actions
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def server_actions(server_id)
|
||||
Array.new
|
||||
end # def server_actions
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # moduel Fog
|
25
lib/fog/openstack/requests/compute/server_diagnostics.rb
Normal file
25
lib/fog/openstack/requests/compute/server_diagnostics.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Retrieve server diagnostics.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to retrieve diagnostics.
|
||||
# === Returns
|
||||
# * actions <~Array>
|
||||
def server_diagnostics(server_id)
|
||||
request(
|
||||
:method => 'GET',
|
||||
:path => "servers/#{server_id}/diagnostics"
|
||||
)
|
||||
end # def server_diagnostics
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def server_diagnostics(server_id)
|
||||
end # def server_diagnostics
|
||||
end # class Real
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
24
lib/fog/openstack/requests/compute/suspend_server.rb
Normal file
24
lib/fog/openstack/requests/compute/suspend_server.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Suspend the server.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to suspend.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def suspend_server(server_id)
|
||||
body = { 'suspend' => nil }
|
||||
server_action(server_id, body).status == 202
|
||||
end # def suspend_server
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def suspend_server(server_id)
|
||||
true
|
||||
end # def suspend_server
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
24
lib/fog/openstack/requests/compute/unpause_server.rb
Normal file
24
lib/fog/openstack/requests/compute/unpause_server.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
class Real
|
||||
# Unpause the server.
|
||||
#
|
||||
# === Parameters
|
||||
# * server_id <~String> - The ID of the server to unpause.
|
||||
# === Returns
|
||||
# * success <~Boolean>
|
||||
def unpause_server(server_id)
|
||||
body = { 'unpause' => nil }
|
||||
server_action(server_id, body).status == 202
|
||||
end # def unpause_server
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def unpause_server(server_id)
|
||||
true
|
||||
end # def unpause_server
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Compute
|
||||
end # module Fog
|
|
@ -1,45 +0,0 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class OpenStack
|
||||
|
||||
class Real
|
||||
|
||||
def update_meta(collection_name, parent_id, key, value)
|
||||
request(
|
||||
:body => Fog::JSON.encode({ 'meta' => { key => value }}),
|
||||
:expects => 200,
|
||||
:method => 'PUT',
|
||||
:path => "#{collection_name}/#{parent_id}/metadata/#{key}"
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Mock
|
||||
|
||||
def update_meta(collection_name, parent_id, key, value)
|
||||
|
||||
if collection_name == "images" then
|
||||
if not list_images_detail.body['images'].detect {|_| _['id'] == parent_id}
|
||||
raise Fog::Compute::OpenStack::NotFound
|
||||
end
|
||||
end
|
||||
|
||||
if collection_name == "servers" then
|
||||
if not list_servers_detail.body['servers'].detect {|_| _['id'] == parent_id}
|
||||
raise Fog::Compute::OpenStack::NotFound
|
||||
end
|
||||
end
|
||||
|
||||
response = Excon::Response.new
|
||||
response.body = { "meta" => { key => value } }
|
||||
response.status = 200
|
||||
response
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -23,8 +23,8 @@ module Fog
|
|||
response = Excon::Response.new
|
||||
response.status = 202
|
||||
data = {
|
||||
'id' => Fog::Mock.random_numbers(6).to_s,
|
||||
'name' => name
|
||||
'id' => Fog::Mock.random_numbers(6).to_s,
|
||||
'name' => name
|
||||
}
|
||||
self.data[:roles][data['id']] = data
|
||||
response.body = { 'role' => data }
|
||||
|
|
|
@ -14,7 +14,11 @@ module Fog
|
|||
end
|
||||
|
||||
class Mock
|
||||
|
||||
def create_user_role(tenant_id, user_id, role_id)
|
||||
response = Excon::Response.new
|
||||
response.status = 200
|
||||
response
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,11 @@ module Fog
|
|||
end
|
||||
|
||||
class Mock
|
||||
|
||||
def delete_user_role(tenant_id, user_id, role_id)
|
||||
response = Excon::Response.new
|
||||
response.status = 200
|
||||
response
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,10 +16,7 @@ module Fog
|
|||
response = Excon::Response.new
|
||||
response.status = 200
|
||||
response.body = {
|
||||
'roles' => [
|
||||
{'id' => '1',
|
||||
'name' => 'admin'}
|
||||
]
|
||||
'roles' => self.data[:roles]
|
||||
}
|
||||
response
|
||||
end # def list_roles_for_user_on_tenant
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Shindo.tests("Fog::Identity[:openstack] | role", ['openstack']) do
|
||||
@instance = Fog::Identity[:openstack].roles.new({:name => 'Role Name', :user_id => 1, :role_id => 1})
|
||||
@user = Fog::Identity[:openstack].users.all.first
|
||||
@tenant = Fog::Identity[:openstack].tenants.all.first
|
||||
@tenant = Fog::Identity[:openstack].tenants.create(:name => 'test_user')
|
||||
@user = Fog::Identity[:openstack].users.create(:name => 'test_user', :tenant_id => @tenant.id, :password => 'spoof')
|
||||
|
||||
tests('success') do
|
||||
tests('#save').returns(true) do
|
||||
|
@ -20,5 +20,8 @@ Shindo.tests("Fog::Identity[:openstack] | role", ['openstack']) do
|
|||
@instance.destroy
|
||||
end
|
||||
end
|
||||
|
||||
@user.destroy
|
||||
@tenant.destroy
|
||||
end
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
Shindo.tests("Fog::Identity[:openstack] | roles", ['openstack']) do
|
||||
@user = Fog::Identity[:openstack].users.all.first
|
||||
@tenant = Fog::Identity[:openstack].tenants.all.first
|
||||
@roles = Fog::Identity[:openstack].roles(:user => @user, :tenant => @tenant)
|
||||
@tenant = Fog::Identity[:openstack].tenants.create(:name => 'test_user')
|
||||
@user = Fog::Identity[:openstack].users.create(:name => 'test_user', :tenant_id => @tenant.id, :password => 'spoof')
|
||||
@role = Fog::Identity[:openstack].roles(:user => @user, :tenant => @tenant).create(:name => 'test_role')
|
||||
@roles = Fog::Identity[:openstack].roles(:user => @user, :tenant => @tenant)
|
||||
|
||||
tests('success') do
|
||||
tests('#all').succeeds do
|
||||
|
@ -12,4 +13,7 @@ Shindo.tests("Fog::Identity[:openstack] | roles", ['openstack']) do
|
|||
@roles.get @roles.first.id
|
||||
end
|
||||
end
|
||||
|
||||
@user.destroy
|
||||
@tenant.destroy
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue