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 30
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 168
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 148
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 144
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 133
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 137
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, disk_name) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 164
def delete_disk(rg_name, disk_name)
  compute_client.disks.delete(rg_name, disk_name)
end
delete_nic(rg_name, nic_name) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 156
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 152
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 160
def delete_vm(rg_name, vm_name)
  compute_client.virtual_machines.delete(rg_name, vm_name)
end
get_custom_image(rg_name, image_name) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 108
def get_custom_image(rg_name, image_name)
  compute_client.images.get(rg_name, image_name)
end
get_marketplace_image(location, publisher_name, offer, skus, version) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 96
def get_marketplace_image(location, publisher_name, offer, skus, version)
  compute_client.virtual_machine_images.get(location, publisher_name, offer, skus, version)
end
get_status(virtual_machine) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 173
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 128
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 92
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 77
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_custom_images() click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 104
def list_custom_images
  compute_client.images.list
end
list_galleries() click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 112
def list_galleries
  compute_client.galleries.list
end
list_regions(subscription_id) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 44
def list_regions(subscription_id)
  subscription_client.subscriptions.list_locations(subscription_id)
end
list_resources(filter) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 48
def list_resources(filter)
  resource_client.resources.list(filter)
end
list_versions(location, publisher_name, offer, skus) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 100
def list_versions(location, publisher_name, offer, skus)
  compute_client.virtual_machine_images.list(location, publisher_name, offer, skus)
end
list_vm_sizes(region) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 81
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 87
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 65
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 52
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 184
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 188
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 61
def subnets(rg_name, vnet_name)
  network_client.subnets.list(rg_name, vnet_name)
end
subscription_client() click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 26
def subscription_client
  @subscription_client ||= Subscriptions::Client.new(azure_credentials)
end
vm_disk(rg_name, disk_name) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 73
def vm_disk(rg_name, disk_name)
  compute_client.disks.get(rg_name, disk_name)
end
vm_nic(rg_name,nic_name) click to toggle source
# File lib/foreman_azure_rm/azure_sdk_adapter.rb, line 69
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 57
def vnets
  network_client.virtual_networks.list_all
end