Module: Nucleus::Adapters::V1::OpenshiftV2::Application

Included in:
Nucleus::Adapters::V1::OpenshiftV2
Defined in:
lib/nucleus/adapters/v1/openshift_v2/application.rb

Instance Method Summary collapse

Instance Method Details

#application(application_id) ⇒ Object

See Also:



12
13
14
# File 'lib/nucleus/adapters/v1/openshift_v2/application.rb', line 12

def application(application_id)
  to_nucleus_app(get("/application/#{app_id_by_name(application_id)}").body[:data])
end

#applicationsObject

See Also:



7
8
9
# File 'lib/nucleus/adapters/v1/openshift_v2/application.rb', line 7

def applications
  get('/applications').body[:data].collect { |application| to_nucleus_app(application) }
end

#create_application(application_entity) ⇒ Object

Creates the Openshift application and enables scaling by default.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/nucleus/adapters/v1/openshift_v2/application.rb', line 18

def create_application(application_entity)
  # handle runtimes / cartridges
  fail_with(:only_one_runtime) if application_entity[:runtimes].length > 1
  fail_with(:must_have_runtime) if application_entity[:runtimes].length == 0
  application_entity[:cartridge] = cartridge(application_entity.delete(:runtimes)[0])

  # updates the application with a valid region identity
  retrieve_region(application_entity) if application_entity.key?(:region)

  # enable application scaling by default
  application_entity[:scale] = true unless application_entity.key?(:scale)
  created_application = post("/domains/#{app_domain}/applications", body: application_entity).body
  # now make sure we keep at least 2 deployments, allows proper identification of application state
  updated_application = put("/application/#{created_application[:data][:id]}",
                            body: { keep_deployments: 2, auto_deploy: false }).body
  to_nucleus_app(updated_application[:data])
end

#delete_application(application_id) ⇒ Object



37
38
39
# File 'lib/nucleus/adapters/v1/openshift_v2/application.rb', line 37

def delete_application(application_id)
  delete("/applications/#{app_id_by_name(application_id)}")
end