fog/fog-azure-rm

View on GitHub
lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb

Summary

Maintainability
A
0 mins
Test Coverage
F
36%
module Fog
  module Compute
    class AzureRM
      # This class provides the actual implementation for service calls.
      class Real
        def power_off_virtual_machine(resource_group, name, async)
          msg = "Powering off Virtual Machine #{name} in Resource Group #{resource_group}"
          Fog::Logger.debug msg
          begin
            if async 
              response = @compute_mgmt_client.virtual_machines.power_off_async(resource_group, name)
            else
              @compute_mgmt_client.virtual_machines.power_off(resource_group, name)
            end
          rescue  MsRestAzure::AzureOperationError => e
            raise_azure_exception(e, msg)
          end
          if async
            response
          else
            Fog::Logger.debug "Virtual Machine #{name} Powered off Successfully."
            true
          end
        end
      end
      # This class provides the mock implementation for unit tests.
      class Mock
        def power_off_virtual_machine(*)
          Fog::Logger.debug 'Virtual Machine fog-test-server from Resource group fog-test-rg Powered off successfully.'
          true
        end
      end
    end
  end
end