class Fog::Compute::CloudSigma::Mock
Public Class Methods
data()
click to toggle source
# File lib/fog/cloudsigma/compute.rb, line 199 def self.data @data ||= Hash.new do |hash, key| hash[key] = mock_data end end
mock_data()
click to toggle source
# File lib/fog/cloudsigma/mock_data.rb, line 5 def self.mock_data { :volumes => {}, :servers => {}, :vlans => {}, :ips => {}, :profile => { :login_sms => false, :town => "", :postcode => "", :reseller => "", :has_autotopup => false, :currency => "CHF", :state => "REGULAR", :uuid => "6c2203a1-a2e6-433f-aeab-b976b8cd3d18", :company => "", :api_https_only => false, :my_notes => "", :key_auth => false, :email => "MyFirstName.MyLasttName@MyCompany.com", :bank_reference => "mmlastname278", :first_name => "MyFirstName", :meta =>"", :phone => "", :language => "EN", :vat => "", :last_name => "MyLasttName", :title => "", :mailing_list => true, :autotopup_amount => 0.0, :country => "", :address => "" }, :subscriptions => {}, :current_usage => {}, :balance => { :balance => 100, :currency => 'CHF' } } end
random_mac()
click to toggle source
# File lib/fog/cloudsigma/compute.rb, line 212 def self.random_mac (0..5).map{Fog::Mock.random_hex(2)}.join(':') end
random_uuid()
click to toggle source
# File lib/fog/cloudsigma/compute.rb, line 205 def self.random_uuid # Insert '4' at 13th position and 'a' at 17th as per uuid4 spec hex = Fog::Mock.random_hex(30).insert(12,'4').insert(16, 'a') # Add dashes "#{hex[0...8]}-#{hex[8...12]}-#{hex[12...16]}-#{hex[16...20]}-#{hex[20..32]}" end
Public Instance Methods
calculate_subscription_price(data)
click to toggle source
# File lib/fog/cloudsigma/requests/calculate_subscription_price.rb, line 11 def calculate_subscription_price(data) end
clone_libvolume(vol_id, clone_params={})
click to toggle source
# File lib/fog/cloudsigma/requests/clone_libvolume.rb, line 15 def clone_libvolume(vol_id, clone_params={}) volume = self.data[:libvolumes][vol_id].dup uuid = self.class.random_uuid volume['uuid'] = uuid self.data[:volumes][uuid] = volume response = Excon::Response.new response.status = 200 response.body = volume response end
clone_server(server_id, clone_params={})
click to toggle source
# File lib/fog/cloudsigma/requests/clone_server.rb, line 15 def clone_server(server_id, clone_params={}) server = self.data[:servers][server_id].dup uuid = self.class.random_uuid server['uuid'] = uuid self.data[:servers][uuid] = server response = Excon::Response.new response.status = 200 response.body = server response end
clone_snapshot(snap_id, clone_params={})
click to toggle source
# File lib/fog/cloudsigma/requests/clone_snapshot.rb, line 15 def clone_snapshot(snap_id, clone_params={}) snapshot = self.data[:snapshots][snap_id].dup uuid = self.class.random_uuid snapshot['uuid'] = uuid self.data[:snapshots][uuid] = snapshot response = Excon::Response.new response.status = 200 response.body = snapshot response end
clone_volume(vol_id, clone_params={})
click to toggle source
# File lib/fog/cloudsigma/requests/clone_volume.rb, line 15 def clone_volume(vol_id, clone_params={}) volume = self.data[:volumes][vol_id].dup uuid = self.class.random_uuid volume['uuid'] = uuid self.data[:volumes][uuid] = volume response = Excon::Response.new response.status = 200 response.body = volume response end
close_vnc(server_id)
click to toggle source
# File lib/fog/cloudsigma/requests/close_vnc.rb, line 14 def close_vnc(server_id) response = Excon::Response.new response.status = 200 response.body = { 'action' => 'close_vnc', 'result' => 'success', 'uuid' => server_id, } response end
create_server(data)
click to toggle source
# File lib/fog/cloudsigma/requests/create_server.rb, line 11 def create_server(data) uuid = self.class.random_uuid defaults = {'uuid' => uuid, 'status' => 'stopped', 'smp' => 1, 'hv_relaxed' => false, 'hv_tsc' => false, 'enable_numa' => false, 'cpus_instead_of_cores' => false, 'drives' => [], 'nics' => [], 'tags' => [] } mock_create(:servers, 202, data, uuid, defaults) end
create_snapshot(data)
click to toggle source
# File lib/fog/cloudsigma/requests/create_snapshot.rb, line 11 def create_snapshot(data) uuid = self.class.random_uuid defaults = {'uuid' => uuid, 'timestamp' => Time.now.strftime("%Y-%m-%d %H:%M:%S.%6N%z"), 'status' => 'creating', 'tags' => [], 'grantees' => [], 'allocated_size' => 0 } mock_create(:snapshots, 201, data, uuid, defaults) end
create_subscription(data)
click to toggle source
# File lib/fog/cloudsigma/requests/create_subscription.rb, line 11 def create_subscription(data) if data[:period] != '1 month' || data[:start_time] || data[:end_time] raise Fog::Errors::MockNotImplemented.new('Currently only mocks for subscriptions with period 1 month from now are implemented as mock') end id = Fog::Mock.random_numbers(3).to_i defaults = {'id' => id, 'start_time' => DateTime.now, 'end_time' => DateTime.now + 30 * 24 * 60 *60, 'auto_renew' => false, 'amount' => 1.0} if data[:resource] == 'vlan' vlan_uuid = self.class.random_uuid self.data[:vlans][vlan_uuid] = {'uuid' => vlan_uuid, 'subscription' => {'id' => id}, 'servers' => [], 'meta' => {}, 'tags' => []} defaults['subscribed_object'] = vlan_uuid end mock_create(:subscriptions, 200, data, id, defaults) end
create_volume(data)
click to toggle source
# File lib/fog/cloudsigma/requests/create_volume.rb, line 11 def create_volume(data) uuid = self.class.random_uuid defaults = {'uuid' => uuid, 'status' => 'unmounted', 'tags' => [], 'mounted_on' => [], 'affinities' => [], 'licenses' => [], 'jobs' => [], 'allow_multimount' => false, } mock_create(:volumes, 202, data, uuid, defaults) end
data()
click to toggle source
# File lib/fog/cloudsigma/compute.rb, line 216 def data self.class.data[:test] end
delete_server(server_id)
click to toggle source
# File lib/fog/cloudsigma/requests/delete_server.rb, line 11 def delete_server(server_id) mock_delete(:servers, 204, server_id) end
delete_snapshot(snap_id)
click to toggle source
# File lib/fog/cloudsigma/requests/delete_snapshot.rb, line 11 def delete_snapshot(snap_id) mock_delete(:snapshots, 204, snap_id) end
delete_volume(vol_id)
click to toggle source
# File lib/fog/cloudsigma/requests/delete_volume.rb, line 11 def delete_volume(vol_id) mock_delete(:volumes, 204, vol_id) end
extend_subscription(sub_id, data)
click to toggle source
# File lib/fog/cloudsigma/requests/extend_subscription.rb, line 15 def extend_subscription(sub_id, data) end
get_balance()
click to toggle source
# File lib/fog/cloudsigma/requests/get_balance.rb, line 11 def get_balance mock_get(:balance, 200) end
get_current_usage()
click to toggle source
# File lib/fog/cloudsigma/requests/get_current_usage.rb, line 11 def get_current_usage end
get_ip(ip)
click to toggle source
# File lib/fog/cloudsigma/requests/get_ip.rb, line 11 def get_ip(ip) mock_get(:ips, 200, ip) end
get_lib_volume(vol_id)
click to toggle source
# File lib/fog/cloudsigma/requests/get_lib_volume.rb, line 11 def get_lib_volume(vol_id) mock_get(:libvolumes, 200, vol_id) end
get_pricing(currency=nil, subscription=false)
click to toggle source
# File lib/fog/cloudsigma/requests/get_pricing.rb, line 21 def get_pricing(currency=nil, subscription=false) mock_get(:pricing, 200) end
get_profile()
click to toggle source
# File lib/fog/cloudsigma/requests/get_profile.rb, line 11 def get_profile mock_get(:profile, 200) end
get_server(server_id)
click to toggle source
# File lib/fog/cloudsigma/requests/get_server.rb, line 11 def get_server(server_id) mock_get(:servers, 200, server_id) end
get_snapshot(snap_id)
click to toggle source
# File lib/fog/cloudsigma/requests/get_snapshot.rb, line 11 def get_snapshot(snap_id) mock_get(:snapshots, 200, snap_id) end
get_subscription(sub_id)
click to toggle source
# File lib/fog/cloudsigma/requests/get_subscription.rb, line 11 def get_subscription(sub_id) mock_get(:subscriptions, 200, sub_id) end
get_vlan(vlan)
click to toggle source
# File lib/fog/cloudsigma/requests/get_vlan.rb, line 11 def get_vlan(vlan) mock_get(:vlans, 200, vlan) end
get_volume(vol_id)
click to toggle source
# File lib/fog/cloudsigma/requests/get_volume.rb, line 11 def get_volume(vol_id) mock_get(:volumes, 200, vol_id) end
list_fwpolicies()
click to toggle source
# File lib/fog/cloudsigma/requests/list_fwpolicies.rb, line 11 def list_fwpolicies Fog::Mock.not_implemented end
list_ips()
click to toggle source
# File lib/fog/cloudsigma/requests/list_ips.rb, line 11 def list_ips mock_list(:ips, 200) end
list_lib_volumes()
click to toggle source
# File lib/fog/cloudsigma/requests/list_lib_volumes.rb, line 11 def list_lib_volumes mock_list(:libvolumes, 200) end
list_servers()
click to toggle source
# File lib/fog/cloudsigma/requests/list_servers.rb, line 11 def list_servers mock_list(:servers, 200) end
list_snapshots()
click to toggle source
# File lib/fog/cloudsigma/requests/list_snapshots.rb, line 11 def list_snapshots mock_list(:snapshots, 200) end
list_subscriptions()
click to toggle source
# File lib/fog/cloudsigma/requests/list_subscriptions.rb, line 11 def list_subscriptions mock_list(:subscriptions, 200) end
list_vlans()
click to toggle source
# File lib/fog/cloudsigma/requests/list_vlans.rb, line 11 def list_vlans mock_list(:vlans, 200) end
list_volumes()
click to toggle source
# File lib/fog/cloudsigma/requests/list_volumes.rb, line 11 def list_volumes mock_list(:volumes, 200) end
open_vnc(server_id)
click to toggle source
# File lib/fog/cloudsigma/requests/open_vnc.rb, line 14 def open_vnc(server_id) response = Excon::Response.new response.status = 200 host = @init_options[:cloudsigma_host] port = Fog::Mock.random_number(65000) vnc_url = "vnc://#{host}:#{port}" response.body = { 'action' => 'open_vnc', 'result' => 'success', 'uuid' => server_id, 'vnc_url' => vnc_url } response end
start_server(server_id, start_params={})
click to toggle source
# File lib/fog/cloudsigma/requests/start_server.rb, line 14 def start_server(server_id, start_params={}) server = self.data[:servers][server_id] server['status'] = 'running' response = Excon::Response.new response.status = 200 response.body = { 'action' => 'start', 'result' => 'success', 'uuid' => server_id } response end
stop_server(server_id, graceful_acpi = false)
click to toggle source
# File lib/fog/cloudsigma/requests/stop_server.rb, line 15 def stop_server(server_id, graceful_acpi = false) server = self.data[:servers][server_id] server['status'] = 'stopped' response = Excon::Response.new response.status = 200 response.body = { 'action' => graceful_acpi ? 'shutdown' : 'stop', 'result' => 'success', 'uuid' => server_id } response end
update_profile(data)
click to toggle source
# File lib/fog/cloudsigma/requests/update_profile.rb, line 11 def update_profile(data) mock_update(data, :profile, 200) end
update_server(server_id, data)
click to toggle source
# File lib/fog/cloudsigma/requests/update_server.rb, line 13 def update_server(server_id, data) mock_update(data, :servers, 200, server_id) do |old_data, new_data| old_nics = old_data['nics'] new_nics = new_data['nics'] old_nics_macs = old_nics.map { |nic| nic['mac'] }.compact new_nics_macs = new_nics.map { |nic| nic['mac'] }.compact newly_created_macs = Set.new(new_nics_macs) - old_nics_macs unless newly_created_macs.empty? mac_err = <<-EOS MAC(s) #{newly_created_macs.to_a} not specified on guest #{server_id}. Nic MACs are automatically assigned at creation time and cannot be changed. Do not specify MAC to create a new NIC or specify existing MAC to update existing NIC. EOS raise Fog::CloudSigma::Errors::RequestError.new(mac_err, 'permission') end new_nics.each { |nic| nic['mac'] ||= Fog::Compute::CloudSigma::Mock.random_mac } old_data.merge(new_data) end end
update_snapshot(snap_id, data)
click to toggle source
# File lib/fog/cloudsigma/requests/update_snapshot.rb, line 11 def update_snapshot(snap_id, data) mock_update(data, :snapshots, 200, snap_id) end
update_vlan(vlan_id, data)
click to toggle source
# File lib/fog/cloudsigma/requests/update_vlan.rb, line 13 def update_vlan(vlan_id, data) mock_update(data, :vlans, 200, vlan_id) end
update_volume(vol_id, data)
click to toggle source
# File lib/fog/cloudsigma/requests/update_volume.rb, line 11 def update_volume(vol_id, data) mock_update(data, :volumes, 200, vol_id) end