class Qtc::Cli::Mdb::Instances

Public Instance Methods

create(name, options) click to toggle source
# File lib/qtc/cli/mdb/instances.rb, line 41
def create(name, options)
  sizes = {'256m' => 1, '512m' => 2, '768m' => 3, '1024m' => 4}
  size = sizes[options.size.to_s.to_sym] || 1
  data = {
      name: name,
      serviceProviderId: 'mdb',
      config: {
          runtimeSize: size,
          serviceImage: "qtcs/#{options.type}"
      }
  }
  response = platform_client.post("/accounts/#{current_cloud_id}/instances", data)
  puts response['id']
end
list() click to toggle source
# File lib/qtc/cli/mdb/instances.rb, line 8
def list
  instances = platform_client(current_cloud_token).get("/accounts/#{current_cloud_id}/instances", {provider: 'mdb'})
  template = "%-20.20s %-30.30s %-20.20s"
  puts template % ["ID", "NAME", "TAGS"]
  instances['results'].each do |instance|
    puts template % [instance['id'], instance['name'], instance['tags'].join(',')]
  end
end
logs(options) click to toggle source
# File lib/qtc/cli/mdb/instances.rb, line 56
def logs(options)
  raise ArgumentError.new('--id is required') if options.id.nil?

  self.datacenter_id = self.resolve_datacenter_id(options.id)
  offset = options.offset || 0
  limit = options.limit || 100
  stream = options.stream || nil

  instance_id = options.id
  instance_data = instance_info(instance_id)
  if instance_data
    result = client.get("/services/#{instance_id}/logs", {offset: offset, limit: limit},  {'Authorization' => "Bearer #{current_cloud_token}"})
    result['results'].each do |r|
      line = ''
      line << "[#{r['time']}] " if options.timestamp == true
      line << r['log']
      puts line
    end
  end
end
show(options) click to toggle source
# File lib/qtc/cli/mdb/instances.rb, line 17
def show(options)
  raise ArgumentError.new('--id is required') if options.id.nil?

  self.datacenter_id = self.resolve_datacenter_id(options.id)
  instance_id = options.id
  instance_data = instance_info(instance_id)
  if instance_data
    result = client.get("/services/#{instance_id}", nil,  {'Authorization' => "Bearer #{current_cloud_token}"})
    puts "Id: #{result['id']}"
    puts "Name: #{result['name']}"
    puts "Type: #{result['image']['name']}"
    puts "Size: #{result['size'].to_i * 256}MB"
    puts "State: #{result['state']}"
    puts "Ip address: #{result['ip_address']}"
    puts "Port: #{result['port']}"
    if result['username']
      puts "Username: #{result['username']}"
    end
    if result['password']
      puts "Password: #{result['password']}"
    end
  end
end
start(options) click to toggle source
# File lib/qtc/cli/mdb/instances.rb, line 84
def start(options)
  raise ArgumentError.new('--id is required') if options.id.nil?
  self.datacenter_id = self.resolve_datacenter_id(options.id)

  client.post("/services/#{options.id}/start", {}, {},  {'Authorization' => "Bearer #{current_cloud_token}"})
end
stop(options) click to toggle source
# File lib/qtc/cli/mdb/instances.rb, line 77
def stop(options)
  raise ArgumentError.new('--id is required') if options.id.nil?
  self.datacenter_id = self.resolve_datacenter_id(options.id)

  client.post("/services/#{options.id}/stop", {}, {},  {'Authorization' => "Bearer #{current_cloud_token}"})
end