lib/rmd/deploy_service.rb in rmdd-0.1.3 vs lib/rmd/deploy_service.rb in rmdd-0.1.4
- old
+ new
@@ -1,28 +1,53 @@
module Rmd
NAME = 'autoclient/ringmd'
+ TYPE = ['access', 'error', 'realtime', 'web']
class ServerNotFound < StandardError; end
class DeployService
def self.deploy(server)
validate(server)
- system_cmd("curl -s #{url(server)}/deploy/#{token(server)}")
+ command = "curl -s #{url(server)}/deploy/#{token(server)}"
+ system_cmd(command)
end
def self.restart(server)
validate(server)
command = %{echo "cd #{NAME} && sh deploy.sh" | ssh #{master(server)} -p 2200}
system_cmd(command)
end
+ def self.logs(server)
+ validate(server)
+ command = %{echo "cd #{NAME} && DOCKER_HOST=:2375 docker-compose logs" | ssh #{master(server)} -p 2200}
+ system_cmd(command)
+ end
+
+ def self.logs(server, type)
+ validate(server)
+ validate_type(type)
+ command = %{echo "tailf nginx/log/#{type}" | ssh #{nginx(server)}}
+ system_cmd(command)
+ end
+
+ def self.console(server)
+ validate(server)
+ command = %{echo "cd #{NAME} && DOCKER_HOST=:2375 docker exec -it ringmd_new_web_1 rails c" | ssh #{master(server)} -p 2200}
+ system_cmd(command)
+ end
+
private
def self.validate(server)
fail(ServerNotFound, 'Server not found in the creds file') unless exists?(server)
end
+ def self.validate_type(type)
+ fail(TypeNotFound, "Type is not in #{TYPE}") unless TYPE.include?(type)
+ end
+
def self.exists?(server)
Server.all.include?(server)
end
def self.url(server)
@@ -33,9 +58,13 @@
Server.get(server).token
end
def self.master(server)
Server.get(server).master
+ end
+
+ def self.nginx(server)
+ Server.get(server).nginx
end
def self.system_cmd(cmd)
$stdout.puts(cmd)
system(cmd)