module Morpheus::Cli::DeploymentsHelper

Mixin for Morpheus::Cli command classes Provides common methods for infrastructure management

Public Class Methods

included(klass) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 6
def self.included(klass)
  klass.send :include, Morpheus::Cli::PrintHelper
end

Public Instance Methods

deployment_list_key() click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 21
def deployment_list_key
  'deployments'
end
deployment_object_key() click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 17
def deployment_object_key
  'deployment'
end
deployment_version_list_key() click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 92
def deployment_version_list_key
  # 'deploymentVersions'
  'versions'
end
deployment_version_object_key() click to toggle source

Deployment Versions

# File lib/morpheus/cli/mixins/deployments_helper.rb, line 87
def deployment_version_object_key
  # 'deploymentVersion'
  'version'
end
deployments_interface() click to toggle source

Deployments

# File lib/morpheus/cli/mixins/deployments_helper.rb, line 12
def deployments_interface
  raise "#{self.class} has not defined @deployments_interface" if @deployments_interface.nil?
  @deployments_interface
end
find_deployment_by_id(id) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 33
def find_deployment_by_id(id)
  begin
    json_response = deployments_interface.get(id.to_i)
    return json_response[deployment_object_key]
  rescue RestClient::Exception => e
    if e.response && e.response.code == 404
      print_red_alert "Deployment not found by id '#{id}'"
    else
      raise e
    end
  end
end
find_deployment_by_name(name) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 46
def find_deployment_by_name(name)
  json_response = deployments_interface.list({name: name.to_s})
  deployments = json_response[deployment_list_key]
  if deployments.empty?
    print_red_alert "Deployment not found by name '#{name}'"
    return nil
  elsif deployments.size > 1
    print_red_alert "#{deployments.size} deployments found by name '#{name}'"
    print_error "\n"
    puts_error as_pretty_table(deployments, [:id, :name], {color:red})
    print_red_alert "Try using ID instead"
    print_error reset,"\n"
    return nil
  else
    return deployments[0]
  end
end
find_deployment_by_name_or_id(val) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 25
def find_deployment_by_name_or_id(val)
  if val.to_s =~ /\A\d{1,}\Z/
    return find_deployment_by_id(val)
  else
    return find_deployment_by_name(val)
  end
end
find_deployment_type_by_name(val) click to toggle source

unused?

# File lib/morpheus/cli/mixins/deployments_helper.rb, line 68
def find_deployment_type_by_name(val)
  raise "find_deployment_type_by_name passed a bad name: #{val.inspect}" if val.to_s == ''
  results = @deployments_interface.deployment_types(val)
  result = nil
  if !results['deploymentTypes'].nil? && !results['deploymentTypes'].empty?
    result = results['deploymentTypes'][0]
  elsif val.to_i.to_s == val
    results = @deployments_interface.deployment_types(val.to_i)
    result = results['deploymentType']
  end
  if result.nil?
    print_red_alert "Deployment Type not found by '#{val}'"
    return nil
  end
  return result
end
find_deployment_version_by_id(deployment_id, id) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 105
def find_deployment_version_by_id(deployment_id, id)
  begin
    json_response = deployments_interface.get_version(deployment_id, id.to_i)
    return json_response[deployment_version_object_key]
  rescue RestClient::Exception => e
    if e.response && e.response.code == 404
      print_red_alert "Deployment version not found by id '#{id}'"
    else
      raise e
    end
  end
end
find_deployment_version_by_name(deployment_id, name) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 118
def find_deployment_version_by_name(deployment_id, name)
  json_response = deployments_interface.list_versions(deployment_id, {userVersion: name.to_s})
  deployment_versions = json_response[deployment_version_list_key]
  if deployment_versions.empty?
    print_red_alert "Deployment version not found by version '#{name}'"
    return nil
  elsif deployment_versions.size > 1
    print_red_alert "#{deployment_versions.size} deployment versions found by version '#{name}'"
    print_error "\n"
    puts_error as_pretty_table(deployment_versions, {"ID" => 'id', "VERSION" => 'userVersion'}, {color:red})
    print_red_alert "Try using ID instead"
    print_error reset,"\n"
    return nil
  else
    return deployment_versions[0]
  end
end
find_deployment_version_by_name_or_id(deployment_id, val) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 97
def find_deployment_version_by_name_or_id(deployment_id, val)
  if val.to_s =~ /\A\d{1,}\Z/
    return find_deployment_version_by_id(deployment_id, val)
  else
    return find_deployment_version_by_name(deployment_id, val)
  end
end
format_app_deploy_status(status, return_color=cyan) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 144
def format_app_deploy_status(status, return_color=cyan)
  out = ""
  s = status.to_s.downcase
  if s == 'deployed' || s == 'committed'
    out << "#{green}#{s.upcase}#{return_color}"
  elsif s == 'open' || s == 'archived'
    out << "#{cyan}#{s.upcase}#{return_color}"
  elsif s == 'failed'
    out << "#{red}#{s.upcase}#{return_color}"
  else
    out << "#{yellow}#{s.upcase}#{return_color}"
  end
  out
end
format_deploy_type(val) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 159
def format_deploy_type(val)
  return val
end
format_deployment_version_number(deployment_version) click to toggle source
# File lib/morpheus/cli/mixins/deployments_helper.rb, line 136
def format_deployment_version_number(deployment_version)
  if deployment_version
    deployment_version['userVersion'] || deployment_version['version'] || ''
  else
    ''
  end
end