Sha256: 48d1b6e053bf81b78116e286da48827ef0fd56f458ee33d0485a75f81d73abb3

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

module Docli
  class Get < SubcommandBase
    desc 'droplets', 'List droplets'
    method_option :tag_name, aliases: '-t', desc: 'filter by tag name', type: :string
    def droplets(droplet_id = nil)
      ## Sometime user confuse with `docli get droplet` and `docli get droplets`
      ## This enabled: docli get droplets DROPLET_ID
      ## IMPROVEMENT: Consider to enable or disable this feature
      return invoke :droplet if droplet_id
      ##
      puts "`get droplets` called with options: #{options}" if Docli.debug?
      droplet_objects = Docli.client.droplets.all(options.symbolize_keys)
      tp(
        droplet_objects.map do |drlet|
          {
            id: drlet.id,
            name: drlet.name,
            ipv4: drlet.networks.v4.find { |v| v.type == 'public' }.ip_address,
            region: drlet.region.slug,
            size: drlet.size_slug,
            status: Docli::Utils.colorize(drlet.status)
          }
        end
      )
    end

    desc 'droplet', 'Show a droplet by id'
    def droplet(droplet_id)
      puts "`get droplet` called with params: #{droplet_id}, options: #{options}" if Docli.debug?
      drlet = Docli.client.droplets.find(id: droplet_id)
      puts "Droplet ID: #{drlet.id}"
      {
        name: drlet.name,
        ipv4: drlet.networks.v4.find { |v| v.type == 'public' }.ip_address,
        region: "#{drlet.region.name} (#{drlet.region.slug})",
        size: drlet.size_slug,
        status: drlet.status
      }.each do |k,v|
        puts "\t#{k}: #{v}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
docli-0.0.2.pre.alpha.pre.12 lib/docli/get.rb