module Kontena::Plugin::Packet::ProjectOption

Public Class Methods

included(base) click to toggle source
# File lib/kontena/plugin/packet/project_option.rb, line 4
def self.included(base)
  base.option "--project", "PROJECT_ID", "Packet project ID", environment_variable: 'PACKET_PROJECT'
  base.class_eval do
    def default_project
      require 'packet'

      client = Packet::Client.new(self.token || (self.respond_to?(:default_token) && self.default_token))

      projects = []
      spinner "Retrieving a list of available projects on Packet" do
        projects = client.list_projects
      end

      case projects.size
      when 0
        abort 'You do not have access to any projects on Packet'
      when 1
        unless Kontena.prompt.yes?("You have access to project '#{projects.first.name}'. Use?")
          abort 'Aborted'
        end
        projects.first.id
      else
        Kontena.prompt.select "Packet project:" do |menu|
          projects.each do |project|
            menu.choice project.name, project.id
          end
        end
      end
    end
  end
end

Public Instance Methods

default_project() click to toggle source
# File lib/kontena/plugin/packet/project_option.rb, line 7
def default_project
  require 'packet'

  client = Packet::Client.new(self.token || (self.respond_to?(:default_token) && self.default_token))

  projects = []
  spinner "Retrieving a list of available projects on Packet" do
    projects = client.list_projects
  end

  case projects.size
  when 0
    abort 'You do not have access to any projects on Packet'
  when 1
    unless Kontena.prompt.yes?("You have access to project '#{projects.first.name}'. Use?")
      abort 'Aborted'
    end
    projects.first.id
  else
    Kontena.prompt.select "Packet project:" do |menu|
      projects.each do |project|
        menu.choice project.name, project.id
      end
    end
  end
end