class Xapixctl::Cli

Constants

SUPPORTED_CONTEXTS

Public Instance Methods

api_resources() click to toggle source
# File lib/xapixctl/cli.rb, line 162
def api_resources
  available_types = connection.available_resource_types.sort_by { |desc| desc['type'] }.filter { |desc| SUPPORTED_CONTEXTS.include?(desc['context']) }
  table = [['Type', 'Required Context', '']]
  table += available_types.map do |desc|
    [desc['type'], desc['context'], PhoenixClient.supported_type?(desc['type']) ? '' : '(unsupported, update CLI)']
  end
  print_table table, indent: 1
end
apply() click to toggle source
# File lib/xapixctl/cli.rb, line 90
def apply
  Util.resources_from_file(options[:file]) do |desc|
    say "applying #{desc['kind']} #{desc.dig('metadata', 'id')}"
    org_or_prj_connection.apply(desc)
  end
end
delete(resource_type = nil, resource_id = nil) click to toggle source
# File lib/xapixctl/cli.rb, line 114
def delete(resource_type = nil, resource_id = nil)
  if resource_type && resource_id
    org_or_prj_connection.delete(resource_type, resource_id)
    say "DELETED #{resource_type} #{resource_id}"
  elsif options[:file]
    Util.resources_from_file(options[:file]) do |desc|
      res_type = desc['kind']
      res_id = desc.dig('metadata', 'id')
      delete(res_type, res_id)
    end
  else
    warn "need TYPE and ID or --file option"
  end
end
export() click to toggle source
# File lib/xapixctl/cli.rb, line 63
def export
  get('Project', prj_connection.project)
  prj_connection.resource_types_for_export.each { |type| get(type) }
end
get(resource_type, resource_id = nil) click to toggle source
# File lib/xapixctl/cli.rb, line 43
def get(resource_type, resource_id = nil)
  conn = org_or_prj_connection
  resource_ids = resource_id ? [resource_id] : conn.resource_ids(resource_type)
  resource_ids.each do |res_id|
    say conn.resource(resource_type, res_id, format: options[:format].to_sym)
  end
end
logs(correlation_id) click to toggle source
# File lib/xapixctl/cli.rb, line 154
def logs(correlation_id)
  result = prj_connection.logs(correlation_id)
  say result['logs'].to_yaml
end
publish() click to toggle source
# File lib/xapixctl/cli.rb, line 137
def publish
  prj_connection.publish do |res|
    res.on_success { |result| show_deployment_status(result) }
    res.on_error { |err, result| show_deployment_status(result); exit_with_api_error(err, result) }
  end
end