calculate_subscription_price(data)
click to toggle source
def calculate_subscription_price(data)
end
clone_libvolume(vol_id, clone_params={})
click to toggle source
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
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_volume(vol_id, clone_params={})
click to toggle source
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
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
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_subscription(data)
click to toggle source
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
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
def data
self.class.data[:test]
end
delete_server(server_id)
click to toggle source
def delete_server(server_id)
mock_delete(:servers, 204, server_id)
end
delete_volume(vol_id)
click to toggle source
def delete_volume(vol_id)
mock_delete(:volumes, 204, vol_id)
end
extend_subscription(sub_id, data)
click to toggle source
def extend_subscription(sub_id, data)
end
get_balance()
click to toggle source
def get_balance
mock_get(:balance, 200)
end
get_current_usage()
click to toggle source
def get_current_usage
end
get_ip(ip)
click to toggle source
def get_ip(ip)
mock_get(:ips, 200, ip)
end
get_lib_volume(vol_id)
click to toggle source
def get_lib_volume(vol_id)
mock_get(:libvolumes, 200, vol_id)
end
get_pricing(currency=nil, subscription=false)
click to toggle source
def get_pricing(currency=nil, subscription=false)
mock_get(:pricing, 200)
end
get_profile()
click to toggle source
def get_profile
mock_get(:profile, 200)
end
get_server(server_id)
click to toggle source
def get_server(server_id)
mock_get(:servers, 200, server_id)
end
get_subscription(sub_id)
click to toggle source
def get_subscription(sub_id)
mock_get(:subscriptions, 200, sub_id)
end
get_vlan(vlan)
click to toggle source
def get_vlan(vlan)
mock_get(:vlans, 200, vlan)
end
get_volume(vol_id)
click to toggle source
def get_volume(vol_id)
mock_get(:volumes, 200, vol_id)
end
list_fwpolicies()
click to toggle source
def list_fwpolicies
Fog::Mock.not_implemented
end
list_ips()
click to toggle source
def list_ips
mock_list(:ips, 200)
end
list_lib_volumes()
click to toggle source
def list_lib_volumes
mock_list(:libvolumes, 200)
end
list_servers()
click to toggle source
def list_servers
mock_list(:servers, 200)
end
list_subscriptions()
click to toggle source
def list_subscriptions
mock_list(:subscriptions, 200)
end
list_vlans()
click to toggle source
def list_vlans
mock_list(:vlans, 200)
end
list_volumes()
click to toggle source
def list_volumes
mock_list(:volumes, 200)
end
open_vnc(server_id)
click to toggle source
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
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)
click to toggle source
def stop_server(server_id)
server = self.data[:servers][server_id]
server['status'] = 'stopped'
response = Excon::Response.new
response.status = 200
response.body = {
'action' => 'stop',
'result' => 'success',
'uuid' => server_id
}
response
end
update_profile(data)
click to toggle source
def update_profile(data)
mock_update(data, :profile, 200)
end
update_server(server_id, data)
click to toggle source
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_vlan(vlan_id, data)
click to toggle source
def update_vlan(vlan_id, data)
mock_update(data, :vlans, 200, vlan_id)
end
update_volume(vol_id, data)
click to toggle source
def update_volume(vol_id, data)
mock_update(data, :volumes, 200, vol_id)
end