class Singularity::Deployer
Public Class Methods
new(uri, file, release)
click to toggle source
# File lib/singularity.rb, line 16 def initialize(uri, file, release) @uri = uri @file = file @release = release @config = ERB.new(open(file).read) @r = Request.new @r.release = @release @data = JSON.parse(@config.result(@r.get_binding)) print @data['id'] end
Public Instance Methods
deploy()
click to toggle source
# File lib/singularity.rb, line 37 def deploy begin if is_paused() puts " PAUSED, SKIPPING".yellow return else # create or update the request resp = RestClient.post "#{@uri}/api/requests", @data.to_json, :content_type => :json end # deploy the request @data['requestId'] = @data['id'] @data['id'] = "#{@release}.#{Time.now.to_i}" deploy = { 'deploy' => @data, 'user' => `whoami`.chomp, 'unpauseOnSuccessfulDeploy' => false } resp = RestClient.post "#{@uri}/api/deploys", deploy.to_json, :content_type => :json puts " DEPLOYED".green rescue Exception => e puts " #{e.response}".red end end
is_paused()
click to toggle source
# File lib/singularity.rb, line 27 def is_paused begin resp = RestClient.get "#{@uri}/api/requests/request/#{@data['id']}" JSON.parse(resp)['state'] == 'PAUSED' rescue print " CREATING...".blue false end end