class Egon::Undercloud::Installer
Attributes
started[R]
started?[R]
Public Class Methods
new(connection=nil)
click to toggle source
installs locally if ssh connection is not provided
# File lib/egon/undercloud/installer.rb, line 13 def initialize(connection=nil) @connection = connection @completed = false @started = false @failure = false end
Public Instance Methods
check_ports(stringio=nil)
click to toggle source
# File lib/egon/undercloud/installer.rb, line 55 def check_ports(stringio=nil) # closed ports 5385, 36357 address = File.foreach('/home/stack/undercloud.conf') .grep(/^local_ip/).first .match(/(?:[0-9]{1,3}\.){3}[0-9]{1,3}/).to_s ports = [8774, 9292, 8777, 9696, 8004, 5000, 8585, 15672] ports.each do |p| if !@connection.nil? # remote check if !@connection.remote_port_open?(p, stringio) set_failure(true) end else # local check set_failure(true) unless !port_open?(address, p, stringio) end end end
completed?()
click to toggle source
# File lib/egon/undercloud/installer.rb, line 20 def completed? @completed end
failure?()
click to toggle source
# File lib/egon/undercloud/installer.rb, line 28 def failure? @failure end
install(commands, stringio=nil)
click to toggle source
# File lib/egon/undercloud/installer.rb, line 36 def install(commands, stringio=nil) @started = true @completed = false if !@connection.nil? # remote install @connection.on_complete(lambda { set_completed(true) }) @connection.on_failure(lambda { set_failure(true) }) Thread.new { @connection.execute(commands, stringio) } else # local install set_failure(true) unless system(commands) set_completed(true) end end
set_completed(bool)
click to toggle source
# File lib/egon/undercloud/installer.rb, line 24 def set_completed(bool) @completed = bool end
set_failure(bool)
click to toggle source
# File lib/egon/undercloud/installer.rb, line 32 def set_failure(bool) @failure = bool end