class IIJ::Sakagura::GP::GC

Attributes

gc_service_code[R]
gp_service_code[R]

Public Class Methods

new(client, gp_service_code, gc_service_code) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 7
def initialize(client, gp_service_code, gc_service_code)
  @client = client
  @gp_service_code = gp_service_code
  @gc_service_code = gc_service_code
end

Public Instance Methods

[](attr) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 40
def [](attr)
  info[attr]
end
attach_fwlb(gl_service_code) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 106
def attach_fwlb(gl_service_code)
  call('AttachFwLb', "GlServiceCode" => gl_service_code)
end
call(api_name, params = {}) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 132
def call(api_name, params = {})
  @client.post(api_name, default_args.merge(params))
end
change_vm_type(vm_type) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 102
def change_vm_type(vm_type)
  call('ChangeVirtualMachineType', "VirtualMachineType" => vm_type)
end
contract_status(opts = {}) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 48
def contract_status(opts = {})
  @contract_status = nil if opts[:force]
  @contract_status ||= get_contract_status
  @contract_status
end
contract_status!() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 54
def contract_status!
  contract_status(:force => true)
end
default_args() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 19
def default_args
  {
    "GpServiceCode" => gp_service_code,
    "GcServiceCode" => gc_service_code
  }
end
describe_virtual_machine() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 26
def describe_virtual_machine
  call('DescribeVirtualMachine')
end
detach_fwlb(gl_service_code) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 110
def detach_fwlb(gl_service_code)
  call('DetachFwLb', "GlServiceCode" => gl_service_code)
end
get_contract_status() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 44
def get_contract_status
  call('GetContractStatus')['Status']
end
get_virtual_machine_status() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 58
def get_virtual_machine_status
  call('GetVirtualMachineStatus')['Status']
end
import_ssh_public_key(public_key) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 90
def import_ssh_public_key(public_key)
  call('ImportRootSshPublicKey', "PublicKey" => public_key)
end
info(opts = {}) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 30
def info(opts = {})
  @info = nil if opts[:force]
  @info ||= describe_virtual_machine
  @info
end
info!() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 36
def info!
  info(:force => true)
end
initialize_vm(var_device_name = nil) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 84
def initialize_vm(var_device_name = nil)
  opts = {}
  opts["VarDeviceName"] = var_device_name if var_device_name
  call('InitializeVirtualMachine', opts)
end
inspect() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 15
def inspect
  %[#<#{self.class.name} @gp_service_code="#{gp_service_code}", @gc_service_code="#{gc_service_code}">]
end
label=(label)
Alias for: set_label
reboot() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 80
def reboot
  call('RebootVirtualMachine')
end
set_label(label) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 94
def set_label(label)
  @client.post("SetLabel",
               "GpServiceCode" => gp_service_code,
               "ServiceCode" => gc_service_code,
               "Label" => label)
end
Also aliased as: label=
start() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 72
def start
  call('StartVirtualMachine')
end
status(opts = {}) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 62
def status(opts = {})
  @status = nil if opts[:force]
  @status ||= get_virtual_machine_status
  @status
end
status!() click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 68
def status!
  status(:force => true)
end
stop(force = false) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 76
def stop(force = false)
  call('StopVirtualMachine', { "Force" => force ? "Yes" : "No" })
end
wait_for_start(opts = {}, &block) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 114
def wait_for_start(opts = {}, &block)
  wait_while(proc { status! == "Starting" }, opts, &block)
end
wait_for_stop(opts = {}, &block) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 118
def wait_for_stop(opts = {}, &block)
  wait_while(proc { status! == "Stopping" }, opts, &block)
end
wait_while(checker, opts = {}, &block) click to toggle source
# File lib/iij/sakagura/gp/gc.rb, line 122
def wait_while(checker, opts = {}, &block)
  opts[:wait_sec] ||= 10
  catch(:abort) do
    while checker.call
      block.call if block
      sleep opts[:wait_sec]
    end
  end
end