class ForemanAzureRM::AzureSDKAdapter
Public Class Methods
new(tenant, app_ident, secret_key, sub_id)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 3 def initialize(tenant, app_ident, secret_key, sub_id) @tenant = tenant @app_ident = app_ident @secret_key = secret_key @sub_id = sub_id end
Public Instance Methods
azure_credentials()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 26 def azure_credentials provider = MsRestAzure::ApplicationTokenProvider.new( @tenant, @app_ident, @secret_key) credentials = MsRest::TokenCredentials.new(provider) { credentials: credentials, subscription_id: @sub_id } end
check_vm_status(rg_name, vm_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 120 def check_vm_status(rg_name, vm_name) virtual_machine = compute_client.virtual_machines.get(rg_name, vm_name, expand:'instanceView') get_status(virtual_machine) end
compute_client()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 14 def compute_client @compute_client ||= Compute::Client.new(azure_credentials) end
create_or_update_nic(rg_name, nic_name, parameters)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 100 def create_or_update_nic(rg_name, nic_name, parameters) network_client.network_interfaces.create_or_update(rg_name, nic_name, parameters) end
create_or_update_pip(rg_name, pip_name, parameters)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 96 def create_or_update_pip(rg_name, pip_name, parameters) network_client.public_ipaddresses.create_or_update(rg_name, pip_name, parameters) end
create_or_update_vm(rg_name, vm_name, parameters)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 85 def create_or_update_vm(rg_name, vm_name, parameters) compute_client.virtual_machines.create_or_update(rg_name, vm_name, parameters) end
create_or_update_vm_extensions(rg_name, vm_name, vm_extension_name, extension_params)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 89 def create_or_update_vm_extensions(rg_name, vm_name, vm_extension_name, extension_params) compute_client.virtual_machine_extensions.create_or_update(rg_name, vm_name, vm_extension_name, extension_params) end
delete_disk(rg_name, osdisk_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 116 def delete_disk(rg_name, osdisk_name) compute_client.disks.delete(rg_name, osdisk_name) end
delete_nic(rg_name, nic_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 108 def delete_nic(rg_name, nic_name) network_client.network_interfaces.delete(rg_name, nic_name) end
delete_pip(rg_name, pip_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 104 def delete_pip(rg_name, pip_name) network_client.public_ipaddresses.delete(rg_name, pip_name) end
delete_vm(rg_name, vm_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 112 def delete_vm(rg_name, vm_name) compute_client.virtual_machines.delete(rg_name, vm_name) end
get_status(virtual_machine)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 125 def get_status(virtual_machine) vm_statuses = virtual_machine.instance_view.statuses vm_status = nil vm_statuses.each do |status| if status.code.include? 'PowerState' vm_status = status.code.split('/')[1] end end vm_status end
get_storage_accts()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 80 def get_storage_accts result = storage_client.storage_accounts.list result.value end
get_vm(rg_name, vm_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 76 def get_vm(rg_name, vm_name) compute_client.virtual_machines.get(rg_name, vm_name) end
get_vm_extension(rg_name, vm_name, vm_extension_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 61 def get_vm_extension(rg_name, vm_name, vm_extension_name) compute_client.virtual_machine_extensions.get(rg_name, vm_name, vm_extension_name) end
list_vm_sizes(region)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 65 def list_vm_sizes(region) return [] unless region.present? stripped_region = region.gsub(/\s+/, '').downcase compute_client.virtual_machine_sizes.list(stripped_region).value() end
list_vms(region)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 71 def list_vms(region) # List all VMs in a resource group virtual_machines = compute_client.virtual_machines.list_by_location(region) end
network_client()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 18 def network_client @network_client ||= Network::Client.new(azure_credentials) end
public_ip(rg_name, pip_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 53 def public_ip(rg_name, pip_name) network_client.public_ipaddresses.get(rg_name, pip_name) end
resource_client()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 10 def resource_client @resource_client ||= Resources::Client.new(azure_credentials) end
rgs()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 40 def rgs rgs = resource_client.resource_groups.list rgs.map(&:name) end
start_vm(rg_name, vm_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 136 def start_vm(rg_name, vm_name) compute_client.virtual_machines.start(rg_name, vm_name) end
stop_vm(rg_name, vm_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 140 def stop_vm(rg_name, vm_name) compute_client.virtual_machines.power_off(rg_name, vm_name) compute_client.virtual_machines.deallocate(rg_name, vm_name) end
storage_client()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 22 def storage_client @storage_client ||= Storage::Client.new(azure_credentials) end
subnets(rg_name, vnet_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 49 def subnets(rg_name, vnet_name) network_client.subnets.list(rg_name, vnet_name) end
vm_nic(rg_name,nic_name)
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 57 def vm_nic(rg_name,nic_name) network_client.network_interfaces.get(rg_name, nic_name) end
vnets()
click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 45 def vnets network_client.virtual_networks.list_all end