Module: Forj::Ssh
- Defined in:
- lib/ssh.rb
Overview
This module provides the behavior to create a ssh connection
Class Method Summary collapse
- .connect(name, account) ⇒ Object
- .select_forge_server(o_forge) ⇒ Object
- .ssh_connection(_account, o_cloud, _name, server) ⇒ Object
- .validate_server_name(name, box_ssh, o_forge) ⇒ Object
Class Method Details
.connect(name, account) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ssh.rb', line 32 def self.connect(name, account) o_cloud = Forj::CloudConnection.connect(account) PrcLib.state(format("Getting information about forge '%s'", name)) o_forge = o_cloud.get(:forge, name) if o_forge[:servers].count > 0 if account[:box_ssh] server = validate_server_name(name, account[:box_ssh], o_forge) return if server.nil? else server = select_forge_server(o_forge) end ssh_connection(account, o_cloud, name, server) else PrcLib.high_level_msg("No server(s) found for instance name '%s' \n", name) end end |
.select_forge_server(o_forge) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/ssh.rb', line 54 def self.select_forge_server(o_forge) # Ask the user to get server(s) to create ssh connection server_list = [] servers = [] s_default = nil o_forge[:servers].each do |server_type, server| server_list << server[:name] servers << server s_default = server[:name] if server_type == 'maestro' end say(format('Select box for ssh connection %s', ((s_default.nil?) ? '' : "Default: #{s_default}"))) value = choose do |q| q.choices(*server_list) q.default = s_default unless s_default.nil? end servers[server_list.index(value)] end |
.ssh_connection(_account, o_cloud, _name, server) ⇒ Object
76 77 78 |
# File 'lib/ssh.rb', line 76 def self.ssh_connection(_account, o_cloud, _name, server) o_cloud.create(:ssh, :server => server) end |
.validate_server_name(name, box_ssh, o_forge) ⇒ Object
80 81 82 83 84 85 86 87 88 |
# File 'lib/ssh.rb', line 80 def self.validate_server_name(name, box_ssh, o_forge) unless o_forge[:servers].key?(box_ssh) PrcLib.debug("server '%s.%s' was not found", box_ssh, name) PrcLib.high_level_msg("server '%s.%s' was not found.\n", box_ssh, name) return end o_forge[:servers][box_ssh] end |