Class: EY::Model::Deployment

Inherits:
Object
  • Object
show all
Defined in:
lib/engineyard/model/deployment.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.api_root(app_id, environment_id) ⇒ Object



6
7
8
# File 'lib/engineyard/model/deployment.rb', line 6

def self.api_root(app_id, environment_id)
  "/apps/#{app_id}/environments/#{environment_id}/deployments"
end

.get(app, environment, id, api) ⇒ Object



14
15
16
17
# File 'lib/engineyard/model/deployment.rb', line 14

def self.get(app, environment, id, api)
  response = api.request(api_root(app.id, environment.id) + "/#{id}", :method => :get)
  load_from_response app, environment, response
end

.last(app, environment, api) ⇒ Object



10
11
12
# File 'lib/engineyard/model/deployment.rb', line 10

def self.last(app, environment, api)
  get(app, environment, 'last', api)
end

.load_from_response(app, environment, response) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/engineyard/model/deployment.rb', line 19

def self.load_from_response(app, environment, response)
  dep = new
  dep.app = app
  dep.environment = environment
  dep.update_with_response(response)
  dep
end

.started(environment, app, ref, migrate_command) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/engineyard/model/deployment.rb', line 27

def self.started(environment, app, ref, migrate_command)
  deployment = from_hash({
    :app             => app,
    :environment     => environment,
    :migrate_command => migrate_command,
    :ref             => ref,
  })
  deployment.start
  deployment
end

Instance Method Details

#finished(successful, output) ⇒ Object



53
54
55
56
57
# File 'lib/engineyard/model/deployment.rb', line 53

def finished(successful, output)
  self.successful = successful
  self.output = output
  put_to_api({:successful => successful, :output => output})
end

#migrateObject



38
39
40
# File 'lib/engineyard/model/deployment.rb', line 38

def migrate
  !!migrate_command
end

#startObject



44
45
46
47
48
49
50
51
# File 'lib/engineyard/model/deployment.rb', line 44

def start
  post_to_api({
    :migrate         => migrate,
    :migrate_command => migrate_command,
    :output          => output,
    :ref             => ref,
  })
end

#update_with_response(response) ⇒ Object



59
60
61
62
63
# File 'lib/engineyard/model/deployment.rb', line 59

def update_with_response(response)
  response['deployment'].each do |key,val|
    send("#{key}=", val) if respond_to?("#{key}=")
  end
end