class QingyunApiDemo

Public Class Methods

VERSION() click to toggle source
# File qingyun-api-demo.rb, line 4
def self.VERSION
  '0.0.1'
end
new(access_key, secret_key, zone_id) click to toggle source
# File qingyun-api-demo.rb, line 7
def initialize(access_key, secret_key, zone_id)
  Larrow::Qingcloud.establish_connection access_key, secret_key, zone_id
  @connection = Larrow::Qingcloud.connection
end

Public Instance Methods

ass_ip(instance_id, ip) click to toggle source

associate ip to instance

# File qingyun-api-demo.rb, line 34
def ass_ip(instance_id, ip)
  @connection.get 'AssociateEip', {
    eip: ip,
    instance: instance_id,
    zone: 'sh1a'
  }
end
c_instance(param) click to toggle source

create instance

# File qingyun-api-demo.rb, line 18
def c_instance(param)
  @connection.get('RunInstances', param)['instances']
end
c_ip(param) click to toggle source

create public ip

# File qingyun-api-demo.rb, line 23
def c_ip(param)
  @connection.get('AllocateEips', param)['eips']
end
des_instance(instance_id) click to toggle source

destroy intance

# File qingyun-api-demo.rb, line 59
def des_instance(instance_id)
  @connection.get 'TerminateInstances', {
    'instances.1': instance_id,
    zone: 'sh1a',
  }
end
desc_instance(instance_id) click to toggle source

describe instance

# File qingyun-api-demo.rb, line 13
def desc_instance(instance_id)
  @connection.get('DescribeInstances', {'instances.1': instance_id})['instance_set']
end
desc_ip(id) click to toggle source
# File qingyun-api-demo.rb, line 27
def desc_ip(id)
  @connection.get('DescribeEips', {
      'eips.1': id
  })['eip_set']
end
dis_ass_ip(ip) click to toggle source

disassociate ip

# File qingyun-api-demo.rb, line 43
def dis_ass_ip(ip)
  @connection.get 'DissociateEips', {
    'eips.1': ip,
    zone: 'sh1a',
  }
end
release_ip(ip) click to toggle source

release ip

# File qingyun-api-demo.rb, line 51
def release_ip(ip)
  @connection.get 'ReleaseEips', {
    'eips.1': ip,
    zone: 'sh1a',
  }
end
shut_instance(instance_id) click to toggle source

shutdown

# File qingyun-api-demo.rb, line 67
def shut_instance(instance_id)
  @connection.get 'StopInstances', {
    'instances.1': instance_id,
    force: 0,
    zone: 'sh1a',
}
end
wait_instance_for_status(id, status, time_span=1) click to toggle source
# File qingyun-api-demo.rb, line 82
def wait_instance_for_status(id, status, time_span=1)
  while status != desc_instance(id)[0]['status']
    p "waiting instance for #{status}. current status: #{desc_instance(id)[0]['status']}"
    sleep time_span
  end
end
wait_ip_for_status(id, status, time_span=1) click to toggle source
# File qingyun-api-demo.rb, line 75
def wait_ip_for_status(id, status, time_span=1)
  while status != desc_ip(id)[0]['status']
    p "waiting IP for #{status}. current status: #{desc_ip(id)[0]['status']}"
    sleep time_span
  end
end