lib/shelly/app.rb in shelly-0.3.1 vs lib/shelly/app.rb in shelly-0.3.2

- old
+ new

@@ -127,16 +127,16 @@ def restore_backup(filename) shelly.restore_backup(code_name, filename) end def import_database(kind, filename, server) - ssh(:command => "import_database #{kind.downcase} #{filename}", - :server => server, :type => :db_server) + ssh_with_db_server(:command => "import_database #{kind.downcase} #{filename}", + :server => server) end def reset_database(kind) - ssh(:command => "reset_database #{kind.downcase}", :type => :db_server) + ssh_with_db_server(:command => "reset_database #{kind.downcase}") end def request_backup(kinds) Array(kinds).each do |kind| shelly.request_backup(code_name, kind) @@ -199,11 +199,11 @@ def rake(task) ssh(:command => "rake_runner \"#{task}\"") end def dbconsole - ssh(:command => "dbconsole", :type => :db_server) + ssh_with_db_server(:command => "dbconsole") end def attributes @attributes ||= shelly.app(code_name) end @@ -255,27 +255,27 @@ def console(server = nil) ssh(:server => server) end def list_files(path) - ssh(:command => "ls -l #{persistent_disk}/#{path}", :type => :server) + ssh(:command => "ls -l #{persistent_disk}/#{path}") end def upload(source) - server_connection.tap do |conn| + console_connection.tap do |conn| rsync(source, "#{conn['host']}:#{persistent_disk}", conn) end end def upload_database(source) - db_server_connection.tap do |conn| + configured_db_server_connection.tap do |conn| rsync(source, "#{conn['host']}:#{persistent_disk}", conn) end end def download(relative_source, destination) - server_connection.tap do |conn| + console_connection.tap do |conn| source = File.join("#{conn['host']}:#{persistent_disk}", relative_source) rsync(source, destination, conn) end end @@ -363,37 +363,26 @@ # Internal: Checks if specified option is present in Cloudfile def option?(option) content["servers"].any? {|_, settings| settings.has_key?(option)} end + # Returns first at least configured virtual server def console_connection(server = nil) shelly.console(code_name, server) end - # Returns first configured virtual server - def server_connection - shelly.configured_server(code_name) - end - - # Returns first configured virtual server with database - def db_server_connection(server = nil) + # Returns first at least configured virtual server if databases are configured + def configured_db_server_connection(server = nil) shelly.configured_db_server(code_name, server) end - def connection(options) - case options[:type] - when :console - console_connection(options[:server]) - when :server - server_connection - when :db_server - db_server_connection(options[:server]) - end + def ssh(options = {}) + conn = console_connection(options[:server]) + system "ssh #{ssh_options(conn)} -t #{conn['host']} #{options[:command]}" end - def ssh(options = {}) - options[:type] = :console unless options[:type] - conn = connection(options) + def ssh_with_db_server(options = {}) + conn = configured_db_server_connection(options[:server]) system "ssh #{ssh_options(conn)} -t #{conn['host']} #{options[:command]}" end def ssh_options(conn) "-o StrictHostKeyChecking=no -p #{conn['port']} -l #{conn['user']}"