nucleus 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +9 -0
  4. data/README.md +43 -72
  5. data/lib/nucleus/adapter_resolver.rb +3 -3
  6. data/lib/nucleus/adapters/base_adapter.rb +109 -109
  7. data/lib/nucleus/adapters/v1/cloud_foundry_v2/application.rb +111 -111
  8. data/lib/nucleus/adapters/v1/cloud_foundry_v2/cloud_foundry_v2.rb +141 -141
  9. data/lib/nucleus/adapters/v1/cloud_foundry_v2/data.rb +97 -97
  10. data/lib/nucleus/adapters/v1/cloud_foundry_v2/domains.rb +5 -5
  11. data/lib/nucleus/adapters/v1/cloud_foundry_v2/lifecycle.rb +41 -41
  12. data/lib/nucleus/adapters/v1/cloud_foundry_v2/logs.rb +6 -6
  13. data/lib/nucleus/adapters/v1/cloud_foundry_v2/regions.rb +33 -33
  14. data/lib/nucleus/adapters/v1/cloud_foundry_v2/services.rb +6 -6
  15. data/lib/nucleus/adapters/v1/cloud_foundry_v2/vars.rb +80 -80
  16. data/lib/nucleus/adapters/v1/heroku/app_states.rb +57 -57
  17. data/lib/nucleus/adapters/v1/heroku/data.rb +78 -78
  18. data/lib/nucleus/adapters/v1/heroku/heroku.rb +146 -146
  19. data/lib/nucleus/adapters/v1/heroku/lifecycle.rb +51 -51
  20. data/lib/nucleus/adapters/v1/heroku/logs.rb +2 -2
  21. data/lib/nucleus/adapters/v1/heroku/regions.rb +42 -42
  22. data/lib/nucleus/adapters/v1/heroku/services.rb +168 -168
  23. data/lib/nucleus/adapters/v1/heroku/vars.rb +65 -65
  24. data/lib/nucleus/adapters/v1/openshift_v2/app_states.rb +68 -68
  25. data/lib/nucleus/adapters/v1/openshift_v2/application.rb +1 -1
  26. data/lib/nucleus/adapters/v1/openshift_v2/data.rb +96 -96
  27. data/lib/nucleus/adapters/v1/openshift_v2/lifecycle.rb +60 -60
  28. data/lib/nucleus/adapters/v1/openshift_v2/logs.rb +106 -106
  29. data/lib/nucleus/adapters/v1/openshift_v2/openshift_v2.rb +125 -125
  30. data/lib/nucleus/adapters/v1/openshift_v2/regions.rb +58 -58
  31. data/lib/nucleus/adapters/v1/openshift_v2/services.rb +173 -173
  32. data/lib/nucleus/adapters/v1/openshift_v2/vars.rb +49 -49
  33. data/lib/nucleus/adapters/v1/stub_adapter.rb +464 -464
  34. data/lib/nucleus/core/adapter_extensions/auth/auth_client.rb +44 -44
  35. data/lib/nucleus/core/adapter_extensions/auth/expiring_token_auth_client.rb +53 -53
  36. data/lib/nucleus/core/adapter_extensions/auth/http_basic_auth_client.rb +3 -3
  37. data/lib/nucleus/core/adapter_extensions/auth/o_auth2_auth_client.rb +95 -95
  38. data/lib/nucleus/core/adapter_extensions/auth/token_auth_client.rb +36 -36
  39. data/lib/nucleus/core/adapter_extensions/http_client.rb +5 -5
  40. data/lib/nucleus/core/common/files/archive_extractor.rb +1 -1
  41. data/lib/nucleus/core/common/files/archiver.rb +2 -2
  42. data/lib/nucleus/core/file_handling/file_manager.rb +64 -64
  43. data/lib/nucleus/core/file_handling/git_deployer.rb +133 -133
  44. data/lib/nucleus/core/import/adapter_configuration.rb +53 -53
  45. data/lib/nucleus/scripts/initialize_config_defaults.rb +26 -26
  46. data/lib/nucleus/version.rb +1 -1
  47. data/nucleus.gemspec +2 -2
  48. data/spec/integration/api/auth_spec.rb +3 -3
  49. data/spec/spec_helper.rb +98 -98
  50. data/spec/test_suites.rake +1 -1
  51. data/spec/unit/adapters/git_deployer_spec.rb +262 -262
  52. data/spec/unit/common/helpers/auth_helper_spec.rb +1 -1
  53. data/tasks/evaluation.rake +1 -1
  54. data/wiki/adapter_tests.md +0 -7
  55. data/wiki/implement_new_adapter.md +1 -1
  56. metadata +4 -20
  57. data/config/adapters/cloud_control.yml +0 -32
  58. data/lib/nucleus/adapters/v1/cloud_control/application.rb +0 -108
  59. data/lib/nucleus/adapters/v1/cloud_control/authentication.rb +0 -27
  60. data/lib/nucleus/adapters/v1/cloud_control/buildpacks.rb +0 -23
  61. data/lib/nucleus/adapters/v1/cloud_control/cloud_control.rb +0 -153
  62. data/lib/nucleus/adapters/v1/cloud_control/data.rb +0 -76
  63. data/lib/nucleus/adapters/v1/cloud_control/domains.rb +0 -68
  64. data/lib/nucleus/adapters/v1/cloud_control/lifecycle.rb +0 -27
  65. data/lib/nucleus/adapters/v1/cloud_control/log_poller.rb +0 -71
  66. data/lib/nucleus/adapters/v1/cloud_control/logs.rb +0 -103
  67. data/lib/nucleus/adapters/v1/cloud_control/regions.rb +0 -32
  68. data/lib/nucleus/adapters/v1/cloud_control/scaling.rb +0 -17
  69. data/lib/nucleus/adapters/v1/cloud_control/semantic_errors.rb +0 -31
  70. data/lib/nucleus/adapters/v1/cloud_control/services.rb +0 -162
  71. data/lib/nucleus/adapters/v1/cloud_control/token.rb +0 -17
  72. data/lib/nucleus/adapters/v1/cloud_control/vars.rb +0 -88
@@ -1,17 +0,0 @@
1
- module Nucleus
2
- module Adapters
3
- module V1
4
- class CloudControl < Stub
5
- # cloud control specific token, which requires a specific +cc_auth_token+ value in the +Authorization+ header.
6
- class Token < Nucleus::Adapters::ExpiringTokenAuthClient
7
- # @see Nucleus::Adapters::ExpiringTokenAuthClient#auth_header
8
- def auth_header
9
- # call super for error checks, but ignore returned header
10
- super
11
- { 'Authorization' => "cc_auth_token=\"#{api_token}\"" }
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,88 +0,0 @@
1
- module Nucleus
2
- module Adapters
3
- module V1
4
- class CloudControl < Stub
5
- # cloud control, CRUD operations for the application's environment variable object,
6
- # which is referred to as +config addon+ on the platform.
7
- module Vars
8
- # @see Stub#env_vars
9
- def env_vars(application_id)
10
- cc_vars = cc_vars(application_id)
11
- cc_vars.collect do |key, value|
12
- { id: key, key: key, value: value }
13
- end
14
- end
15
-
16
- # @see Stub#env_var
17
- def env_var(application_id, env_var_key)
18
- cc_vars = cc_vars(application_id)
19
- fail Errors::AdapterResourceNotFoundError,
20
- "Env. var key '#{env_var_key}' does not exist" unless env_var?(application_id, env_var_key, cc_vars)
21
- { id: env_var_key, key: env_var_key, value: cc_vars[env_var_key.to_sym] }
22
- end
23
-
24
- # @see Stub#create_env_var
25
- def create_env_var(application_id, env_var)
26
- cc_vars = cc_vars(application_id)
27
- fail Errors::SemanticAdapterRequestError,
28
- "Env. var key '#{env_var[:key]}' already taken" if env_var?(application_id, env_var[:key], cc_vars)
29
- set_var(application_id, env_var[:key], env_var[:value])
30
- end
31
-
32
- # @see Stub#update_env_var
33
- def update_env_var(application_id, env_var_key, env_var)
34
- cc_vars = cc_vars(application_id)
35
- fail Errors::AdapterResourceNotFoundError,
36
- "Env. var key '#{env_var_key}' does not exist" unless env_var?(application_id, env_var_key, cc_vars)
37
- set_var(application_id, env_var_key, env_var[:value])
38
- end
39
-
40
- # @see Stub#delete_env_var
41
- def delete_env_var(application_id, env_var_key)
42
- cc_vars = cc_vars(application_id)
43
- fail Errors::AdapterResourceNotFoundError,
44
- "Env. var key '#{env_var_key}' does not exist" unless env_var?(application_id, env_var_key, cc_vars)
45
- set_var(application_id, env_var_key, nil)
46
- end
47
-
48
- private
49
-
50
- def cc_vars(application_id)
51
- cc_vars_response = get("app/#{application_id}/deployment/#{NUCLEUS_DEPLOYMENT}/addon/config.free")
52
- cc_vars_response.body[:settings][:CONFIG_VARS]
53
- end
54
-
55
- # Set the variable value (create or update)
56
- # @param [String] application_id id of the cloud control application
57
- # @param [Symbol] key variable key name
58
- # @param [String, Integer, Float, Double] value value to apply to the variable
59
- # @return [Hash] Nucleus representation of the modified variable
60
- def set_var(application_id, key, value)
61
- settings = if value.nil?
62
- # delete the var, set to 'null'
63
- "{\"#{key}\":null}"
64
- else
65
- "{\"#{key}\":\"#{value}\"}"
66
- end
67
- response = put("/app/#{application_id}/deployment/#{NUCLEUS_DEPLOYMENT}/addon/config.free",
68
- body: { addon: 'config.free',
69
- settings: settings,
70
- force: true })
71
- all_vars = response.body[:settings][:CONFIG_VARS]
72
- { id: key, key: key, value: all_vars[key.to_sym] }
73
- end
74
-
75
- # Checks if a variable with the env_var_key already exists.
76
- # @param [String] application_id id of the cloud control application
77
- # @param [Symbol] env_var_key key name that shall be checked for existence
78
- # @param [Hash] all_vars collection of currently existing variables for the application
79
- # @return [Boolean] true if there is a variable with the env_var_key, otherwise false
80
- def env_var?(application_id, env_var_key, all_vars = nil)
81
- all_vars = cc_vars(application_id) if all_vars.nil?
82
- all_vars.key? env_var_key.to_sym
83
- end
84
- end
85
- end
86
- end
87
- end
88
- end