Module: Nucleus::Adapters::V1::CloudFoundryV2::Vars

Included in:
Nucleus::Adapters::V1::CloudFoundryV2
Defined in:
lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb

Instance Method Summary collapse

Instance Method Details

#create_env_var(application_name_or_id, env_var) ⇒ Object



27
28
29
30
31
32
# File 'lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb', line 27

def create_env_var(application_name_or_id, env_var)
  app_guid = app_guid(application_name_or_id)
  fail Errors::SemanticAdapterRequestError,
       "Env. var key '#{env_var[:key]}' already taken" if env_var?(app_guid, env_var[:key])
  set_var(app_guid, env_var[:key].to_sym, env_var[:value])
end

#delete_env_var(application_name_or_id, env_var_key) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb', line 43

def delete_env_var(application_name_or_id, env_var_key)
  app_guid = app_guid(application_name_or_id)
  fail Errors::AdapterResourceNotFoundError,
       "Env. var key '#{env_var_key}' does not exist" unless env_var?(app_guid, env_var_key)
  request_body = get("/v2/apps/#{app_guid}/env").body[:environment_json]
  request_body.delete(env_var_key.to_sym)
  put("/v2/apps/#{app_guid}", body: { environment_json: request_body }).body[:entity][:environment_json]
end

#env_var(application_name_or_id, env_var_key) ⇒ Object

See Also:



18
19
20
21
22
23
24
# File 'lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb', line 18

def env_var(application_name_or_id, env_var_key)
  app_guid = app_guid(application_name_or_id)
  all_vars = get("/v2/apps/#{app_guid}/env").body[:environment_json]
  fail Errors::AdapterResourceNotFoundError,
       "Env. var key '#{env_var_key}' does not exist" unless env_var?(app_guid, env_var_key, all_vars)
  { id: env_var_key, key: env_var_key, value: all_vars[env_var_key.to_sym] }
end

#env_vars(application_name_or_id) ⇒ Object

See Also:



7
8
9
10
11
12
13
14
15
# File 'lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb', line 7

def env_vars(application_name_or_id)
  app_guid = app_guid(application_name_or_id)
  app_vars = get("/v2/apps/#{app_guid}/env").body[:environment_json]
  formatted_vars = []
  app_vars.each do |key, value|
    formatted_vars.push(id: key, key: key, value: value)
  end
  formatted_vars
end

#update_env_var(application_name_or_id, env_var_key, env_var) ⇒ Object



35
36
37
38
39
40
# File 'lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb', line 35

def update_env_var(application_name_or_id, env_var_key, env_var)
  app_guid = app_guid(application_name_or_id)
  fail Errors::AdapterResourceNotFoundError,
       "Env. var key '#{env_var_key}' does not exist" unless env_var?(app_guid, env_var_key)
  set_var(app_guid, env_var_key.to_sym, env_var[:value])
end