Class: EY::Model::Instance

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

Instance Method Summary collapse

Instance Method Details

#deploy(app, ref, migration_command = nil, extra_configuration = nil, verbose = false) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/engineyard/model/instance.rb', line 22

def deploy(app, ref, migration_command=nil, extra_configuration=nil, verbose=false)
  successful, output = false, "Deploy initiated.\n"
  deployment = Deployment.started(environment, app, ref, migration_command)

  deploy_command = adapter(app, verbose).deploy do |args|
    args.config  = extra_configuration if extra_configuration
    args.migrate = migration_command if migration_command
    args.ref     = deployment.resolved_ref
  end

  successful = invoke(deploy_command) { |chunk| output << chunk }
rescue Interrupt
  EY.ui.info "Interrupted. Exiting..."
  output << "Interrupted.\n"
  raise
rescue StandardError => e
  EY.ui.info "Error encountered during deploy."
  output <<  "Error encountered during deploy.\n#{e.class} #{e}\n"
  raise
ensure
  if deployment
    deployment.finished(successful, output)
    EY.ui.info "#{successful ? 'Successful' : 'Failed'} deployment recorded in EY Cloud"
  end
end

#has_app_code?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/engineyard/model/instance.rb', line 63

def has_app_code?
  !["db_master", "db_slave"].include?(role.to_s)
end

#hostname_urlObject



67
68
69
# File 'lib/engineyard/model/instance.rb', line 67

def hostname_url
  "http://#{hostname}" if hostname
end

#put_up_maintenance_page(app, verbose = false) ⇒ Object



55
56
57
# File 'lib/engineyard/model/instance.rb', line 55

def put_up_maintenance_page(app, verbose=false)
  invoke adapter(app, verbose).enable_maintenance_page
end

#rollback(app, extra_configuration = nil, verbose = false) ⇒ Object



48
49
50
51
52
53
# File 'lib/engineyard/model/instance.rb', line 48

def rollback(app, extra_configuration=nil, verbose=false)
  rollback = adapter(app, verbose).rollback do |args|
    args.config = extra_configuration if extra_configuration
  end
  invoke rollback
end

#take_down_maintenance_page(app, verbose = false) ⇒ Object



59
60
61
# File 'lib/engineyard/model/instance.rb', line 59

def take_down_maintenance_page(app, verbose=false)
  invoke adapter(app, verbose).disable_maintenance_page
end