module Morpheus::Cli::RemoteHelper
Mixin for Morpheus::Cli
command classes Provides common methods for working with remotes
Public Class Methods
included(klass)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 7 def self.included(klass) klass.send :include, Morpheus::Cli::PrintHelper end
Public Instance Methods
format_appliance_name(appliance)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 11 def format_appliance_name(appliance) app_name = appliance[:name] if app_name == 'remote-url' "(remote-url)" else app_name end end
format_appliance_secure(app_map, return_color=cyan)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 59 def format_appliance_secure(app_map, return_color=cyan) return "" if !app_map out = "" app_url = (app_map[:url] || app_map[:host]).to_s is_ssl = app_url =~ /^https/ if !is_ssl # out << "No (no SSL)" out << "No" else if app_map[:insecure] # out << "No (Ignore SSL Errors)" out << "No" else # should have a flag that gets set when everything actually looks good.. out << "Yes" end end out end
format_appliance_slug(appliance)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 20 def format_appliance_slug(appliance) "[#{format_appliance_name(appliance)}] #{appliance[:url]}" end
format_appliance_status(appliance, return_color=cyan, show_current=false)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 24 def format_appliance_status(appliance, return_color=cyan, show_current=false) return "" if !appliance status_str = appliance[:status] || appliance['status'] || "unknown" # get_object_value(appliance, :status) status_str = status_str.to_s # Symbols getting in here? status_str = status_str.empty? ? "unknown" : status_str.to_s.downcase status_str = status_str.gsub("-", " ") # change "http-error" to "http error" out = "" status_color = format_appliance_status_color(appliance) out << "#{status_color}#{status_str.upcase}#{return_color}" # meh, probably keep this separate if show_current && appliance[:active] out << " " + format_is_current() + return_color end out end
format_appliance_status_color(appliance)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 40 def format_appliance_status_color(appliance) status = appliance[:status].to_s.downcase if status == 'ready' green elsif status == 'fresh' magenta elsif status == 'new' cyan elsif ['error', 'http-error', 'net-error', 'ssl-error', 'http-timeout', 'unreachable', 'unrecognized'].include?(status) red else yellow end end
format_is_current(return_color=cyan)
click to toggle source
# File lib/morpheus/cli/mixins/remote_helper.rb, line 55 def format_is_current(return_color=cyan) "#{cyan}#{bold}(current)#{reset}#{return_color}" end
get_appliance_session_blurbs(app_map)
click to toggle source
get display info about the current and past sessions
# File lib/morpheus/cli/mixins/remote_helper.rb, line 81 def get_appliance_session_blurbs(app_map) # app_map = OStruct.new(app_map) blurbs = [] # Current User # username = app_map[:username] # if app_map[:active] # blurbs << "(current)" # end if app_map[:status] == 'ready' if app_map[:authenticated] #blurbs << app_map[:username] ? "Authenticated as #{app_map[:username]}" : "Authenticated" # blurbs << "Authenticated." if app_map[:last_login_at] blurbs << "Logged in #{format_duration_ago(app_map[:last_login_at])}" end else if app_map[:last_logout_at] blurbs << "Logged out #{format_duration_ago(app_map[:last_logout_at])}" else #blurbs << "Logged out" end if app_map[:last_login_at] blurbs << "Last login #{format_duration_ago(app_map[:last_login_at])}" end end if app_map[:last_success_at] blurbs << "Last success #{format_duration_ago(app_map[:last_success_at])}" end else if app_map[:last_check] if app_map[:last_check][:timestamp] blurbs << "Last checked #{format_duration_ago(app_map[:last_check][:timestamp])}" end if app_map[:last_check][:error] last_error_msg = truncate_string(app_map[:last_check][:error], 250) blurbs << "Error: #{last_error_msg}" end if app_map[:last_check][:http_status] blurbs << "HTTP #{app_map[:last_check][:http_status]}" end end if app_map[:last_success_at] blurbs << "Last Success: #{format_duration_ago(app_map[:last_success_at])}" end end return blurbs end