module Nucleus::Adapters::V1::OpenshiftV2::Lifecycle
Public Instance Methods
restart(application_id)
click to toggle source
@see Stub#restart
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 24 def restart(application_id) id = app_id_by_name(application_id) validate_start_requirements(id, 'restart') to_nucleus_app(send_event(id, 'restart')) end
start(application_id)
click to toggle source
@see Stub#start
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 7 def start(application_id) # if app is only deployed, we must first restore the latest deployment id = app_id_by_name(application_id) validate_start_requirements(id, 'start') to_nucleus_app(send_event(id, 'start')) end
stop(application_id)
click to toggle source
@see Stub#stop
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 15 def stop(application_id) id = app_id_by_name(application_id) unless deployed?(id) raise Errors::SemanticAdapterRequestError, 'Application must be deployed before it can be stopped' end to_nucleus_app(send_event(id, 'stop')) end
Private Instance Methods
activate(application_id, deployment_id)
click to toggle source
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 53 def activate(application_id, deployment_id) send_event(application_id, 'activate', deployment_id: deployment_id) end
deployed?(application_id)
click to toggle source
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 41 def deployed?(application_id) app = get("/application/#{app_id_by_name(application_id)}").body[:data] application_state(app) != Enums::ApplicationStates::CREATED end
send_event(application_id, event, options = {})
click to toggle source
Send the event and trigger an action. @return [Hash] Openshift application data
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 48 def send_event(application_id, event, options = {}) options[:event] = event post("/application/#{app_id_by_name(application_id)}/events", body: options).body[:data] end
validate_start_requirements(id, action)
click to toggle source
# File lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb, line 32 def validate_start_requirements(id, action) state = application_state(get("/application/#{id}").body[:data]) if state == Enums::ApplicationStates::DEPLOYED activate(id, latest_deployment(id)[:id]) elsif state == Enums::ApplicationStates::CREATED raise Errors::SemanticAdapterRequestError, "Application must be deployed before it can be #{action}ed" end end