Module: Brightbox

Extended by:
GLI::App
Includes:
Logging
Defined in:
lib/brightbox_cli.rb,
lib/brightbox-cli/api.rb,
lib/brightbox-cli/token.rb,
lib/brightbox-cli/types.rb,
lib/brightbox-cli/users.rb,
lib/brightbox-cli/zones.rb,
lib/brightbox-cli/config.rb,
lib/brightbox-cli/images.rb,
lib/brightbox-cli/tables.rb,
lib/brightbox-cli/volume.rb,
lib/brightbox/cli/config.rb,
lib/brightbox-cli/logging.rb,
lib/brightbox-cli/servers.rb,
lib/brightbox-cli/version.rb,
lib/brightbox-cli/accounts.rb,
lib/brightbox-cli/cloud_ips.rb,
lib/brightbox-cli/config_map.rb,
lib/brightbox-cli/config/cache.rb,
lib/brightbox-cli/config/dirty.rb,
lib/brightbox-cli/error_parser.rb,
lib/brightbox-cli/collaboration.rb,
lib/brightbox-cli/config/to_fog.rb,
lib/brightbox-cli/database_type.rb,
lib/brightbox-cli/firewall_rule.rb,
lib/brightbox-cli/server_groups.rb,
lib/brightbox-cli/commands/login.rb,
lib/brightbox-cli/commands/token.rb,
lib/brightbox-cli/commands/types.rb,
lib/brightbox-cli/commands/zones.rb,
lib/brightbox-cli/config/clients.rb,
lib/brightbox-cli/firewall_rules.rb,
lib/brightbox-cli/load_balancers.rb,
lib/brightbox-cli/config/accounts.rb,
lib/brightbox-cli/config/sections.rb,
lib/brightbox-cli/database_server.rb,
lib/brightbox-cli/detailed_server.rb,
lib/brightbox-cli/firewall_policy.rb,
lib/brightbox-cli/gli_global_hooks.rb,
lib/brightbox-cli/commands/lbs/list.rb,
lib/brightbox-cli/commands/lbs/show.rb,
lib/brightbox-cli/config/api_client.rb,
lib/brightbox-cli/database_snapshot.rb,
lib/brightbox-cli/commands/sql/types.rb,
lib/brightbox-cli/connection_manager.rb,
lib/brightbox-cli/user_collaboration.rb,
lib/brightbox-cli/commands/configmaps.rb,
lib/brightbox-cli/commands/lbs/create.rb,
lib/brightbox-cli/commands/lbs/update.rb,
lib/brightbox-cli/commands/users/list.rb,
lib/brightbox-cli/commands/users/show.rb,
lib/brightbox-cli/commands/groups/list.rb,
lib/brightbox-cli/commands/groups/show.rb,
lib/brightbox-cli/commands/images/list.rb,
lib/brightbox-cli/commands/images/show.rb,
lib/brightbox-cli/commands/lbs/destroy.rb,
lib/brightbox-cli/commands/lbs/locking.rb,
lib/brightbox-cli/legacy/args_adjuster.rb,
lib/brightbox-cli/collaborating_account.rb,
lib/brightbox-cli/commands/cloudips/map.rb,
lib/brightbox-cli/commands/servers/list.rb,
lib/brightbox-cli/commands/servers/show.rb,
lib/brightbox-cli/commands/servers/stop.rb,
lib/brightbox-cli/commands/users/update.rb,
lib/brightbox-cli/commands/volumes/copy.rb,
lib/brightbox-cli/commands/volumes/list.rb,
lib/brightbox-cli/commands/volumes/show.rb,
lib/brightbox-cli/detailed_server_group.rb,
lib/brightbox-cli/commands/accounts/list.rb,
lib/brightbox-cli/commands/accounts/show.rb,
lib/brightbox-cli/commands/cloudips/list.rb,
lib/brightbox-cli/commands/cloudips/show.rb,
lib/brightbox-cli/commands/groups/create.rb,
lib/brightbox-cli/commands/groups/update.rb,
lib/brightbox-cli/commands/images/update.rb,
lib/brightbox-cli/commands/lbs/add_nodes.rb,
lib/brightbox-cli/commands/servers/reset.rb,
lib/brightbox-cli/commands/servers/start.rb,
lib/brightbox-cli/config/password_helper.rb,
lib/brightbox-cli/config/two_factor_auth.rb,
lib/brightbox-cli/commands/cloudips/unmap.rb,
lib/brightbox-cli/commands/collaborations.rb,
lib/brightbox-cli/commands/groups/destroy.rb,
lib/brightbox-cli/commands/images/destroy.rb,
lib/brightbox-cli/commands/images/locking.rb,
lib/brightbox-cli/commands/servers/create.rb,
lib/brightbox-cli/commands/servers/reboot.rb,
lib/brightbox-cli/commands/servers/update.rb,
lib/brightbox-cli/commands/volumes/attach.rb,
lib/brightbox-cli/commands/volumes/create.rb,
lib/brightbox-cli/commands/volumes/detach.rb,
lib/brightbox-cli/commands/volumes/resize.rb,
lib/brightbox-cli/commands/volumes/update.rb,
lib/brightbox-cli/config/user_application.rb,
lib/brightbox-cli/commands/accounts/remove.rb,
lib/brightbox-cli/commands/cloudips/create.rb,
lib/brightbox-cli/commands/cloudips/update.rb,
lib/brightbox-cli/commands/config/user_add.rb,
lib/brightbox-cli/commands/images/register.rb,
lib/brightbox-cli/commands/servers/destroy.rb,
lib/brightbox-cli/commands/servers/locking.rb,
lib/brightbox-cli/commands/volumes/destroy.rb,
lib/brightbox-cli/commands/volumes/locking.rb,
lib/brightbox-cli/config/two_factor_helper.rb,
lib/brightbox-cli/commands/accounts/default.rb,
lib/brightbox-cli/commands/cloudips/destroy.rb,
lib/brightbox-cli/commands/lbs/remove_nodes.rb,
lib/brightbox-cli/commands/servers/shutdown.rb,
lib/brightbox-cli/commands/servers/snapshot.rb,
lib/brightbox-cli/commands/config/client_add.rb,
lib/brightbox-cli/commands/groups/add_server.rb,
lib/brightbox-cli/commands/config/client_list.rb,
lib/brightbox-cli/commands/sql/instances_list.rb,
lib/brightbox-cli/commands/sql/instances_show.rb,
lib/brightbox-cli/commands/sql/snapshots_list.rb,
lib/brightbox-cli/commands/sql/snapshots_show.rb,
lib/brightbox-cli/commands/firewall/rules_list.rb,
lib/brightbox-cli/commands/firewall/rules_show.rb,
lib/brightbox-cli/commands/groups/move_servers.rb,
lib/brightbox-cli/commands/sql/instances_reset.rb,
lib/brightbox-cli/commands/user_collaborations.rb,
lib/brightbox-cli/config/authentication_tokens.rb,
lib/brightbox-cli/commands/config/client_remove.rb,
lib/brightbox-cli/commands/sql/instances_create.rb,
lib/brightbox-cli/commands/sql/instances_resize.rb,
lib/brightbox-cli/commands/sql/instances_update.rb,
lib/brightbox-cli/commands/sql/snapshots_update.rb,
lib/brightbox-cli/commands/config/client_default.rb,
lib/brightbox-cli/commands/firewall/rules_create.rb,
lib/brightbox-cli/commands/firewall/rules_update.rb,
lib/brightbox-cli/commands/groups/remove_servers.rb,
lib/brightbox-cli/commands/sql/instances_destroy.rb,
lib/brightbox-cli/commands/sql/instances_locking.rb,
lib/brightbox-cli/commands/sql/snapshots_destroy.rb,
lib/brightbox-cli/commands/sql/snapshots_locking.rb,
lib/brightbox-cli/config/gpg_encrypted_passwords.rb,
lib/brightbox-cli/commands/accounts/accept_invite.rb,
lib/brightbox-cli/commands/firewall/policies_list.rb,
lib/brightbox-cli/commands/firewall/policies_show.rb,
lib/brightbox-cli/commands/firewall/rules_destroy.rb,
lib/brightbox-cli/commands/sql/instances_snapshot.rb,
lib/brightbox-cli/commands/firewall/policies_apply.rb,
lib/brightbox-cli/config/section_name_deduplicator.rb,
lib/brightbox-cli/commands/firewall/policies_create.rb,
lib/brightbox-cli/commands/firewall/policies_remove.rb,
lib/brightbox-cli/commands/firewall/policies_update.rb,
lib/brightbox-cli/commands/servers/activate_console.rb,
lib/brightbox-cli/commands/firewall/policies_destroy.rb,
lib/brightbox-cli/commands/sql/instances_reset_password.rb

Defined Under Namespace

Modules: CLI, Config, Legacy, Logging Classes: Account, AmbiguousClientError, Api, BBConfig, BBConfigError, CloudIP, CollaboratingAccount, Collaboration, ConfigMap, ConnectionManager, DatabaseServer, DatabaseSnapshot, DatabaseType, DetailedServer, DetailedServerGroup, ErrorParser, FirewallPolicy, FirewallRule, FirewallRules, Image, LoadBalancer, NoSelectedClientError, Server, ServerGroup, ShowTable, SimpleTable, Token, Type, User, UserCollaboration, Volume, Zone

Constant Summary collapse

DEFAULT_API_ENDPOINT =
ENV.fetch("BRIGHTBOX_API_URL", "https://api.gb1.brightbox.com")
EMBEDDED_APP_ID =
"app-12345".freeze
EMBEDDED_APP_SECRET =
"mocbuipbiaa6k6c".freeze
IDENTIFIER_SIZE =

The length of the identifier string.

9
NO_CLIENT_MESSAGE =
"You must specify client to use with --client or set default client".freeze
AMBIGUOUS_CLIENT_ERROR =
"You must specify a default client using brightbox config client_default".freeze
VERSION =
"5.1.0".freeze

Class Method Summary collapse

Methods included from Logging

included

Class Method Details

.configObject



12
13
14
# File 'lib/brightbox/cli/config.rb', line 12

def self.config
  CLI::Config.instance.config
end

.config=(replacement) ⇒ Object



16
17
18
# File 'lib/brightbox/cli/config.rb', line 16

def self.config=(replacement)
  CLI::Config.instance.config = replacement
end

.parse_configmap_data_options(options) ⇒ Object



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/brightbox-cli/commands/configmaps.rb', line 158

def parse_configmap_data_options(options)
  if options[:data] && options[:"data-file"]
    raise I18n.t("configmaps.options.multiple_data")
  end

  map_data = options[:data]
  data_filename = options[:"data-file"]

  if data_filename
    file_handler = lambda do |file|
      map_data = file.read
    end

    if data_filename == "-"
      file_handler[$stdin]
    else
      File.open(data_filename, "r", &file_handler)
    end

    raise map_data.inspect if map_data.nil? || map_data == ""
  end

  map_data
end

.render_table(rows, options = {}) ⇒ Object

Print nice ascii tables (or tab separated lists, depending on mode) Has lots of magic.



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/brightbox-cli/tables.rb', line 72

def render_table(rows, options = {})
  options = { :description => false }.merge options
  # Figure out the fields from the :model option
  if options[:model] && options[:fields].nil?
    options[:fields] = options[:model].default_field_order
  end
  # Figure out the fields from the first row
  if options[:fields].nil? && rows.first.class.respond_to?(:default_field_order)
    options[:fields] = rows.first.class.default_field_order
  end
  # Call to_row on all the rows
  rows = rows.map do |row|
    row.respond_to?(:to_row) ? row.to_row : row
  end
  # Call render_cell on all the cells
  rows.each do |row|
    # FIXME: default Api subclasses do not respond to #keys so specialising
    #   #to_row is required to not break the following
    row.each_key do |k|
      row[k] = row[k].render_cell if row[k].respond_to? :render_cell
    end
  end
  if options[:s]
    # Simple output
    rows.each do |row|
      if options[:vertical]
        data options[:fields].map { |k| [k, row[k]].join("\t") }.join("\n")
      else
        data options[:fields].map { |k| row[k].is_a?(Array) ? row[k].join(",") : row[k] }.join("\t")
      end
    end
  elsif options[:vertical]
    # "graphical" table
    data ShowTable.render(rows, options)
  else
    data SimpleTable.render(rows, options)
  end
end