ey-core 3.4.2 → 3.4.5

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 (503) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +26 -23
  3. data/.ruby-gemset +1 -1
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +23 -22
  6. data/CHANGELOG.md +166 -166
  7. data/Gemfile +21 -21
  8. data/Guardfile +15 -15
  9. data/LICENSE.txt +19 -19
  10. data/README.md +78 -78
  11. data/Rakefile +18 -18
  12. data/bin/console +4 -0
  13. data/bin/ey-core +4 -4
  14. data/examples/add_instance.rb +74 -74
  15. data/examples/boot_env.rb +60 -60
  16. data/examples/console/README.md +14 -14
  17. data/examples/console/address.md +51 -51
  18. data/examples/stop_env.rb +51 -51
  19. data/examples/terminate_instance.rb +62 -62
  20. data/ey-core.gemspec +51 -51
  21. data/features/accounts.feature +13 -13
  22. data/features/applications.feature +29 -29
  23. data/features/current_user.feature +14 -14
  24. data/features/environments.feature +30 -30
  25. data/features/init.feature +6 -6
  26. data/features/login.feature +6 -6
  27. data/features/scp.feature +6 -6
  28. data/features/step_definitions/accounts_steps.rb +23 -23
  29. data/features/step_definitions/applications_steps.rb +46 -46
  30. data/features/step_definitions/current_user_steps.rb +11 -11
  31. data/features/step_definitions/deprecated_command_steps.rb +3 -3
  32. data/features/step_definitions/environments_steps.rb +37 -37
  33. data/features/step_definitions/version_steps.rb +3 -3
  34. data/features/support/account_helpers.rb +89 -89
  35. data/features/support/app_helpers.rb +19 -19
  36. data/features/support/aruba.rb +1 -1
  37. data/features/support/boilerplate.rb +1 -1
  38. data/features/support/client_helpers.rb +36 -36
  39. data/features/support/config_file_helpers.rb +42 -42
  40. data/features/support/core.rb +19 -19
  41. data/features/support/deployment_helpers.rb +19 -19
  42. data/features/support/env.rb +40 -40
  43. data/features/support/environment_helpers.rb +23 -23
  44. data/features/support/fake_kernel.rb +23 -23
  45. data/features/support/io.rb +5 -5
  46. data/features/support/mock_api.rb +21 -21
  47. data/features/support/output_helpers.rb +7 -7
  48. data/features/support/resource_helpers.rb +189 -189
  49. data/features/support/server_helpers.rb +27 -27
  50. data/features/version.feature +8 -8
  51. data/features/whoami.feature +14 -14
  52. data/lib/ey-core/associations.rb +155 -155
  53. data/lib/ey-core/cli/accounts.rb +17 -17
  54. data/lib/ey-core/cli/applications.rb +36 -36
  55. data/lib/ey-core/cli/console.rb +28 -28
  56. data/lib/ey-core/cli/current_user.rb +16 -16
  57. data/lib/ey-core/cli/deploy.rb +123 -123
  58. data/lib/ey-core/cli/environments.rb +39 -39
  59. data/lib/ey-core/cli/errors.rb +11 -11
  60. data/lib/ey-core/cli/help.rb +30 -30
  61. data/lib/ey-core/cli/helpers/archive.rb +70 -70
  62. data/lib/ey-core/cli/helpers/chef.rb +51 -51
  63. data/lib/ey-core/cli/helpers/core.rb +196 -196
  64. data/lib/ey-core/cli/helpers/deprecated.rb +39 -39
  65. data/lib/ey-core/cli/helpers/log_streaming.rb +41 -41
  66. data/lib/ey-core/cli/helpers/server_sieve.rb +76 -76
  67. data/lib/ey-core/cli/helpers/stream_printer.rb +42 -42
  68. data/lib/ey-core/cli/init.rb +14 -14
  69. data/lib/ey-core/cli/login.rb +38 -38
  70. data/lib/ey-core/cli/logout.rb +22 -22
  71. data/lib/ey-core/cli/logs.rb +70 -70
  72. data/lib/ey-core/cli/main.rb +65 -65
  73. data/lib/ey-core/cli/recipes/apply.rb +65 -65
  74. data/lib/ey-core/cli/recipes/download.rb +52 -52
  75. data/lib/ey-core/cli/recipes/main.rb +21 -21
  76. data/lib/ey-core/cli/recipes/upload.rb +78 -78
  77. data/lib/ey-core/cli/recipes.rb +10 -10
  78. data/lib/ey-core/cli/scp.rb +14 -14
  79. data/lib/ey-core/cli/servers.rb +41 -41
  80. data/lib/ey-core/cli/ssh.rb +150 -150
  81. data/lib/ey-core/cli/status.rb +60 -60
  82. data/lib/ey-core/cli/subcommand.rb +53 -53
  83. data/lib/ey-core/cli/timeout_deploy.rb +58 -58
  84. data/lib/ey-core/cli/version.rb +16 -16
  85. data/lib/ey-core/cli/web/disable.rb +49 -49
  86. data/lib/ey-core/cli/web/enable.rb +46 -46
  87. data/lib/ey-core/cli/web/main.rb +21 -21
  88. data/lib/ey-core/cli/web/restart.rb +42 -42
  89. data/lib/ey-core/cli/web.rb +10 -10
  90. data/lib/ey-core/cli/whoami.rb +12 -12
  91. data/lib/ey-core/cli.rb +8 -8
  92. data/lib/ey-core/client/mock.rb +302 -301
  93. data/lib/ey-core/client/real.rb +93 -93
  94. data/lib/ey-core/client.rb +442 -434
  95. data/lib/ey-core/collection.rb +131 -131
  96. data/lib/ey-core/collections/account_cancellations.rb +6 -6
  97. data/lib/ey-core/collections/account_referrals.rb +10 -10
  98. data/lib/ey-core/collections/accounts.rb +8 -8
  99. data/lib/ey-core/collections/addons.rb +16 -16
  100. data/lib/ey-core/collections/addresses.rb +9 -9
  101. data/lib/ey-core/collections/alerts.rb +9 -9
  102. data/lib/ey-core/collections/application_archives.rb +9 -9
  103. data/lib/ey-core/collections/application_deployments.rb +9 -9
  104. data/lib/ey-core/collections/applications.rb +9 -9
  105. data/lib/ey-core/collections/auto_scaling_groups.rb +8 -0
  106. data/lib/ey-core/collections/backup_files.rb +9 -9
  107. data/lib/ey-core/collections/blueprints.rb +9 -9
  108. data/lib/ey-core/collections/components.rb +9 -9
  109. data/lib/ey-core/collections/contacts.rb +9 -9
  110. data/lib/ey-core/collections/costs.rb +8 -8
  111. data/lib/ey-core/collections/database_plan_usages.rb +7 -7
  112. data/lib/ey-core/collections/database_server_revisions.rb +7 -7
  113. data/lib/ey-core/collections/database_server_snapshots.rb +17 -17
  114. data/lib/ey-core/collections/database_server_usages.rb +7 -7
  115. data/lib/ey-core/collections/database_servers.rb +9 -9
  116. data/lib/ey-core/collections/database_services.rb +9 -9
  117. data/lib/ey-core/collections/deployments.rb +8 -8
  118. data/lib/ey-core/collections/environment_plan_usages.rb +7 -7
  119. data/lib/ey-core/collections/environments.rb +15 -15
  120. data/lib/ey-core/collections/features.rb +9 -9
  121. data/lib/ey-core/collections/firewall_rules.rb +9 -9
  122. data/lib/ey-core/collections/firewalls.rb +9 -9
  123. data/lib/ey-core/collections/gems.rb +6 -6
  124. data/lib/ey-core/collections/keypair_deployments.rb +9 -9
  125. data/lib/ey-core/collections/keypairs.rb +9 -9
  126. data/lib/ey-core/collections/legacy_alerts.rb +9 -9
  127. data/lib/ey-core/collections/load_balancer_nodes.rb +9 -9
  128. data/lib/ey-core/collections/load_balancer_services.rb +9 -9
  129. data/lib/ey-core/collections/load_balancers.rb +16 -16
  130. data/lib/ey-core/collections/logical_databases.rb +16 -16
  131. data/lib/ey-core/collections/logs.rb +9 -9
  132. data/lib/ey-core/collections/memberships.rb +9 -9
  133. data/lib/ey-core/collections/messages.rb +9 -9
  134. data/lib/ey-core/collections/plan_usages.rb +7 -7
  135. data/lib/ey-core/collections/provider_locations.rb +13 -13
  136. data/lib/ey-core/collections/providers.rb +15 -15
  137. data/lib/ey-core/collections/requests.rb +10 -10
  138. data/lib/ey-core/collections/server_events.rb +9 -9
  139. data/lib/ey-core/collections/server_usages.rb +7 -7
  140. data/lib/ey-core/collections/servers.rb +13 -9
  141. data/lib/ey-core/collections/services.rb +14 -14
  142. data/lib/ey-core/collections/ssl_certificates.rb +9 -9
  143. data/lib/ey-core/collections/storage_users.rb +10 -10
  144. data/lib/ey-core/collections/storages.rb +9 -9
  145. data/lib/ey-core/collections/tasks.rb +9 -9
  146. data/lib/ey-core/collections/tokens.rb +9 -9
  147. data/lib/ey-core/collections/untracked_addresses.rb +4 -4
  148. data/lib/ey-core/collections/untracked_servers.rb +9 -9
  149. data/lib/ey-core/collections/users.rb +12 -12
  150. data/lib/ey-core/collections/volumes.rb +9 -9
  151. data/lib/ey-core/logger.rb +31 -31
  152. data/lib/ey-core/memory_cache.rb +17 -17
  153. data/lib/ey-core/mock/helper.rb +104 -104
  154. data/lib/ey-core/mock/params.rb +31 -31
  155. data/lib/ey-core/mock/resources.rb +92 -92
  156. data/lib/ey-core/mock/searching.rb +115 -115
  157. data/lib/ey-core/mock/util.rb +23 -23
  158. data/lib/ey-core/model.rb +44 -44
  159. data/lib/ey-core/models/account.rb +70 -70
  160. data/lib/ey-core/models/account_cancellation.rb +6 -6
  161. data/lib/ey-core/models/account_referral.rb +8 -8
  162. data/lib/ey-core/models/account_trial.rb +15 -15
  163. data/lib/ey-core/models/addon.rb +37 -37
  164. data/lib/ey-core/models/address.rb +57 -57
  165. data/lib/ey-core/models/alert.rb +100 -99
  166. data/lib/ey-core/models/application.rb +32 -32
  167. data/lib/ey-core/models/application_archive.rb +67 -67
  168. data/lib/ey-core/models/application_deployment.rb +18 -18
  169. data/lib/ey-core/models/auto_scaling_group.rb +49 -0
  170. data/lib/ey-core/models/backup_file.rb +52 -52
  171. data/lib/ey-core/models/billing.rb +27 -27
  172. data/lib/ey-core/models/blueprint.rb +30 -30
  173. data/lib/ey-core/models/component.rb +11 -11
  174. data/lib/ey-core/models/contact.rb +14 -14
  175. data/lib/ey-core/models/cost.rb +16 -16
  176. data/lib/ey-core/models/database_plan_usage.rb +10 -10
  177. data/lib/ey-core/models/database_server.rb +56 -56
  178. data/lib/ey-core/models/database_server_revision.rb +10 -10
  179. data/lib/ey-core/models/database_server_snapshot.rb +43 -43
  180. data/lib/ey-core/models/database_server_usage.rb +15 -15
  181. data/lib/ey-core/models/database_service.rb +52 -52
  182. data/lib/ey-core/models/deployment.rb +30 -30
  183. data/lib/ey-core/models/environment.rb +242 -236
  184. data/lib/ey-core/models/environment_plan_usage.rb +10 -10
  185. data/lib/ey-core/models/feature.rb +33 -33
  186. data/lib/ey-core/models/firewall.rb +46 -46
  187. data/lib/ey-core/models/firewall_rule.rb +41 -41
  188. data/lib/ey-core/models/gem.rb +5 -5
  189. data/lib/ey-core/models/keypair.rb +38 -38
  190. data/lib/ey-core/models/keypair_deployment.rb +26 -26
  191. data/lib/ey-core/models/legacy_alert.rb +12 -12
  192. data/lib/ey-core/models/load_balancer.rb +43 -43
  193. data/lib/ey-core/models/load_balancer_node.rb +17 -17
  194. data/lib/ey-core/models/load_balancer_service.rb +22 -22
  195. data/lib/ey-core/models/log.rb +44 -44
  196. data/lib/ey-core/models/logical_database.rb +40 -40
  197. data/lib/ey-core/models/membership.rb +49 -49
  198. data/lib/ey-core/models/message.rb +27 -27
  199. data/lib/ey-core/models/plan_usage.rb +14 -14
  200. data/lib/ey-core/models/provider.rb +59 -59
  201. data/lib/ey-core/models/provider_location.rb +24 -24
  202. data/lib/ey-core/models/request.rb +105 -103
  203. data/lib/ey-core/models/server.rb +151 -149
  204. data/lib/ey-core/models/server_event.rb +11 -11
  205. data/lib/ey-core/models/server_usage.rb +15 -15
  206. data/lib/ey-core/models/service.rb +10 -10
  207. data/lib/ey-core/models/ssl_certificate.rb +44 -44
  208. data/lib/ey-core/models/storage.rb +38 -38
  209. data/lib/ey-core/models/storage_user.rb +44 -44
  210. data/lib/ey-core/models/support_trial.rb +10 -10
  211. data/lib/ey-core/models/task.rb +35 -35
  212. data/lib/ey-core/models/token.rb +24 -24
  213. data/lib/ey-core/models/untracked_address.rb +24 -24
  214. data/lib/ey-core/models/untracked_server.rb +45 -45
  215. data/lib/ey-core/models/user.rb +39 -39
  216. data/lib/ey-core/models/volume.rb +20 -20
  217. data/lib/ey-core/request.rb +21 -21
  218. data/lib/ey-core/request_failure.rb +11 -11
  219. data/lib/ey-core/requests/acknowledge_alert.rb +29 -29
  220. data/lib/ey-core/requests/apply_environment_updates.rb +54 -54
  221. data/lib/ey-core/requests/apply_server_updates.rb +52 -52
  222. data/lib/ey-core/requests/attach_address.rb +53 -53
  223. data/lib/ey-core/requests/authorized_channel.rb +22 -22
  224. data/lib/ey-core/requests/blueprint_environment.rb +72 -72
  225. data/lib/ey-core/requests/boot_environment.rb +187 -187
  226. data/lib/ey-core/requests/bootstrap_logical_database.rb +80 -80
  227. data/lib/ey-core/requests/cancel_account.rb +33 -33
  228. data/lib/ey-core/requests/change_environment_maintenance.rb +38 -38
  229. data/lib/ey-core/requests/create_account.rb +33 -33
  230. data/lib/ey-core/requests/create_addon.rb +35 -35
  231. data/lib/ey-core/requests/create_address.rb +53 -53
  232. data/lib/ey-core/requests/create_alert.rb +63 -63
  233. data/lib/ey-core/requests/create_application.rb +72 -72
  234. data/lib/ey-core/requests/create_application_archive.rb +44 -44
  235. data/lib/ey-core/requests/create_auto_scaling_group.rb +62 -0
  236. data/lib/ey-core/requests/create_backup_file.rb +52 -52
  237. data/lib/ey-core/requests/create_database_server.rb +72 -72
  238. data/lib/ey-core/requests/create_database_service.rb +57 -57
  239. data/lib/ey-core/requests/create_database_service_snapshot.rb +69 -69
  240. data/lib/ey-core/requests/create_environment.rb +76 -75
  241. data/lib/ey-core/requests/create_firewall.rb +62 -62
  242. data/lib/ey-core/requests/create_firewall_rule.rb +60 -60
  243. data/lib/ey-core/requests/create_keypair.rb +42 -42
  244. data/lib/ey-core/requests/create_keypair_deployment.rb +36 -36
  245. data/lib/ey-core/requests/create_load_balancer.rb +62 -62
  246. data/lib/ey-core/requests/create_log.rb +53 -53
  247. data/lib/ey-core/requests/create_logical_database.rb +56 -56
  248. data/lib/ey-core/requests/create_membership.rb +47 -47
  249. data/lib/ey-core/requests/create_message.rb +35 -35
  250. data/lib/ey-core/requests/create_password_reset.rb +38 -38
  251. data/lib/ey-core/requests/create_provider.rb +90 -90
  252. data/lib/ey-core/requests/create_server.rb +121 -121
  253. data/lib/ey-core/requests/create_ssl_certificate.rb +83 -83
  254. data/lib/ey-core/requests/create_storage.rb +64 -64
  255. data/lib/ey-core/requests/create_storage_user.rb +64 -64
  256. data/lib/ey-core/requests/create_task.rb +55 -55
  257. data/lib/ey-core/requests/create_token.rb +24 -24
  258. data/lib/ey-core/requests/create_untracked_address.rb +50 -50
  259. data/lib/ey-core/requests/create_untracked_server.rb +39 -39
  260. data/lib/ey-core/requests/create_user.rb +52 -52
  261. data/lib/ey-core/requests/deploy_environment_application.rb +60 -60
  262. data/lib/ey-core/requests/deprovision_environment.rb +17 -17
  263. data/lib/ey-core/requests/destroy_addon.rb +24 -24
  264. data/lib/ey-core/requests/destroy_auto_scaling_group.rb +44 -0
  265. data/lib/ey-core/requests/destroy_blueprint.rb +22 -22
  266. data/lib/ey-core/requests/destroy_database_server.rb +41 -41
  267. data/lib/ey-core/requests/destroy_database_server_snapshot.rb +42 -42
  268. data/lib/ey-core/requests/destroy_database_service.rb +57 -57
  269. data/lib/ey-core/requests/destroy_environment.rb +43 -43
  270. data/lib/ey-core/requests/destroy_firewall.rb +41 -41
  271. data/lib/ey-core/requests/destroy_firewall_rule.rb +41 -41
  272. data/lib/ey-core/requests/destroy_load_balancer.rb +30 -30
  273. data/lib/ey-core/requests/destroy_logical_database.rb +41 -41
  274. data/lib/ey-core/requests/destroy_provider.rb +34 -34
  275. data/lib/ey-core/requests/destroy_server.rb +48 -48
  276. data/lib/ey-core/requests/destroy_ssl_certificate.rb +28 -28
  277. data/lib/ey-core/requests/destroy_storage.rb +33 -33
  278. data/lib/ey-core/requests/destroy_storage_user.rb +38 -38
  279. data/lib/ey-core/requests/destroy_user.rb +29 -29
  280. data/lib/ey-core/requests/detach_address.rb +48 -48
  281. data/lib/ey-core/requests/disable_feature.rb +30 -30
  282. data/lib/ey-core/requests/discover_database_server.rb +66 -66
  283. data/lib/ey-core/requests/discover_database_server_snapshots.rb +69 -69
  284. data/lib/ey-core/requests/discover_provider_location.rb +57 -57
  285. data/lib/ey-core/requests/discover_server.rb +60 -0
  286. data/lib/ey-core/requests/download_file.rb +25 -25
  287. data/lib/ey-core/requests/enable_feature.rb +35 -35
  288. data/lib/ey-core/requests/get_account.rb +29 -29
  289. data/lib/ey-core/requests/get_account_cancellation.rb +21 -21
  290. data/lib/ey-core/requests/get_account_referrals.rb +28 -28
  291. data/lib/ey-core/requests/get_account_trial.rb +32 -32
  292. data/lib/ey-core/requests/get_accounts.rb +42 -42
  293. data/lib/ey-core/requests/get_addon.rb +25 -25
  294. data/lib/ey-core/requests/get_addons.rb +24 -24
  295. data/lib/ey-core/requests/get_address.rb +25 -25
  296. data/lib/ey-core/requests/get_addresses.rb +27 -27
  297. data/lib/ey-core/requests/get_alert.rb +21 -21
  298. data/lib/ey-core/requests/get_alerting_environments.rb +41 -41
  299. data/lib/ey-core/requests/get_alerts.rb +44 -44
  300. data/lib/ey-core/requests/get_api_token.rb +19 -19
  301. data/lib/ey-core/requests/get_application.rb +21 -21
  302. data/lib/ey-core/requests/get_application_archive.rb +32 -32
  303. data/lib/ey-core/requests/get_application_archives.rb +29 -29
  304. data/lib/ey-core/requests/get_application_deployment.rb +21 -21
  305. data/lib/ey-core/requests/get_application_deployments.rb +28 -28
  306. data/lib/ey-core/requests/get_applications.rb +28 -28
  307. data/lib/ey-core/requests/get_auto_scaling_group.rb +21 -0
  308. data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -0
  309. data/lib/ey-core/requests/get_backup_file.rb +21 -21
  310. data/lib/ey-core/requests/get_backup_files.rb +28 -28
  311. data/lib/ey-core/requests/get_billing.rb +24 -24
  312. data/lib/ey-core/requests/get_blueprint.rb +21 -21
  313. data/lib/ey-core/requests/get_blueprints.rb +29 -29
  314. data/lib/ey-core/requests/get_component.rb +21 -21
  315. data/lib/ey-core/requests/get_components.rb +29 -29
  316. data/lib/ey-core/requests/get_contacts.rb +34 -34
  317. data/lib/ey-core/requests/get_costs.rb +25 -25
  318. data/lib/ey-core/requests/get_current_user.rb +19 -19
  319. data/lib/ey-core/requests/get_database_plan_usages.rb +24 -24
  320. data/lib/ey-core/requests/get_database_server.rb +21 -21
  321. data/lib/ey-core/requests/get_database_server_revisions.rb +27 -27
  322. data/lib/ey-core/requests/get_database_server_snapshot.rb +20 -20
  323. data/lib/ey-core/requests/get_database_server_snapshots.rb +39 -39
  324. data/lib/ey-core/requests/get_database_server_usages.rb +24 -24
  325. data/lib/ey-core/requests/get_database_servers.rb +30 -30
  326. data/lib/ey-core/requests/get_database_servers_firewalls.rb +30 -30
  327. data/lib/ey-core/requests/get_database_service.rb +20 -20
  328. data/lib/ey-core/requests/get_database_services.rb +55 -55
  329. data/lib/ey-core/requests/get_deployment.rb +19 -19
  330. data/lib/ey-core/requests/get_deployments.rb +29 -29
  331. data/lib/ey-core/requests/get_environment.rb +21 -21
  332. data/lib/ey-core/requests/get_environment_database_services.rb +21 -21
  333. data/lib/ey-core/requests/get_environment_logical_databases.rb +20 -20
  334. data/lib/ey-core/requests/get_environment_plan_usages.rb +24 -24
  335. data/lib/ey-core/requests/get_environments.rb +29 -29
  336. data/lib/ey-core/requests/get_feature.rb +21 -21
  337. data/lib/ey-core/requests/get_features.rb +28 -28
  338. data/lib/ey-core/requests/get_firewall.rb +21 -21
  339. data/lib/ey-core/requests/get_firewall_rule.rb +21 -21
  340. data/lib/ey-core/requests/get_firewall_rules.rb +29 -29
  341. data/lib/ey-core/requests/get_firewalls.rb +45 -45
  342. data/lib/ey-core/requests/get_gem.rb +24 -24
  343. data/lib/ey-core/requests/get_keypair.rb +21 -21
  344. data/lib/ey-core/requests/get_keypair_deployment.rb +21 -21
  345. data/lib/ey-core/requests/get_keypair_deployments.rb +29 -29
  346. data/lib/ey-core/requests/get_keypairs.rb +34 -34
  347. data/lib/ey-core/requests/get_legacy_alert.rb +21 -21
  348. data/lib/ey-core/requests/get_legacy_alerts.rb +29 -29
  349. data/lib/ey-core/requests/get_load_balancer.rb +21 -21
  350. data/lib/ey-core/requests/get_load_balancer_node.rb +21 -21
  351. data/lib/ey-core/requests/get_load_balancer_nodes.rb +30 -30
  352. data/lib/ey-core/requests/get_load_balancer_service.rb +21 -21
  353. data/lib/ey-core/requests/get_load_balancer_services.rb +30 -30
  354. data/lib/ey-core/requests/get_load_balancers.rb +29 -29
  355. data/lib/ey-core/requests/get_log.rb +21 -21
  356. data/lib/ey-core/requests/get_logical_database.rb +23 -23
  357. data/lib/ey-core/requests/get_logical_databases.rb +36 -36
  358. data/lib/ey-core/requests/get_logs.rb +37 -37
  359. data/lib/ey-core/requests/get_membership.rb +21 -21
  360. data/lib/ey-core/requests/get_memberships.rb +29 -29
  361. data/lib/ey-core/requests/get_message.rb +28 -28
  362. data/lib/ey-core/requests/get_messages.rb +27 -27
  363. data/lib/ey-core/requests/get_metadata.rb +22 -22
  364. data/lib/ey-core/requests/get_operational_contact.rb +21 -21
  365. data/lib/ey-core/requests/get_operational_contacts.rb +20 -20
  366. data/lib/ey-core/requests/get_plan_usages.rb +24 -24
  367. data/lib/ey-core/requests/get_possible_provider_locations.rb +19 -19
  368. data/lib/ey-core/requests/get_provider.rb +21 -21
  369. data/lib/ey-core/requests/get_provider_location.rb +29 -29
  370. data/lib/ey-core/requests/get_provider_locations.rb +28 -28
  371. data/lib/ey-core/requests/get_providers.rb +28 -28
  372. data/lib/ey-core/requests/get_request.rb +71 -71
  373. data/lib/ey-core/requests/get_requests.rb +29 -29
  374. data/lib/ey-core/requests/get_server.rb +34 -34
  375. data/lib/ey-core/requests/get_server_event.rb +20 -20
  376. data/lib/ey-core/requests/get_server_events.rb +28 -28
  377. data/lib/ey-core/requests/get_server_usages.rb +24 -24
  378. data/lib/ey-core/requests/get_servers.rb +25 -25
  379. data/lib/ey-core/requests/get_ssl_certificate.rb +23 -23
  380. data/lib/ey-core/requests/get_ssl_certificates.rb +28 -28
  381. data/lib/ey-core/requests/get_storage.rb +21 -21
  382. data/lib/ey-core/requests/get_storage_user.rb +21 -21
  383. data/lib/ey-core/requests/get_storage_users.rb +28 -28
  384. data/lib/ey-core/requests/get_storages.rb +28 -28
  385. data/lib/ey-core/requests/get_support_trial.rb +51 -51
  386. data/lib/ey-core/requests/get_task.rb +21 -21
  387. data/lib/ey-core/requests/get_tasks.rb +28 -28
  388. data/lib/ey-core/requests/get_token.rb +21 -21
  389. data/lib/ey-core/requests/get_token_by_login.rb +30 -30
  390. data/lib/ey-core/requests/get_tokens.rb +32 -32
  391. data/lib/ey-core/requests/get_untracked_server.rb +18 -18
  392. data/lib/ey-core/requests/get_untracked_servers.rb +24 -24
  393. data/lib/ey-core/requests/get_user.rb +21 -21
  394. data/lib/ey-core/requests/get_users.rb +42 -42
  395. data/lib/ey-core/requests/get_volume.rb +21 -21
  396. data/lib/ey-core/requests/get_volumes.rb +28 -28
  397. data/lib/ey-core/requests/reboot_server.rb +39 -39
  398. data/lib/ey-core/requests/reconcile_server.rb +39 -39
  399. data/lib/ey-core/requests/request_callback.rb +26 -26
  400. data/lib/ey-core/requests/reset_password.rb +31 -31
  401. data/lib/ey-core/requests/reset_server_state.rb +32 -32
  402. data/lib/ey-core/requests/restart_environment_app_servers.rb +38 -38
  403. data/lib/ey-core/requests/run_cluster_application_action.rb +28 -28
  404. data/lib/ey-core/requests/run_environment_application_action.rb +29 -29
  405. data/lib/ey-core/requests/signup.rb +56 -56
  406. data/lib/ey-core/requests/start_server.rb +39 -39
  407. data/lib/ey-core/requests/stop_server.rb +39 -39
  408. data/lib/ey-core/requests/timeout_deployment.rb +27 -27
  409. data/lib/ey-core/requests/unassign_environment.rb +31 -31
  410. data/lib/ey-core/requests/update_addon.rb +28 -28
  411. data/lib/ey-core/requests/update_address.rb +29 -29
  412. data/lib/ey-core/requests/update_alert.rb +32 -32
  413. data/lib/ey-core/requests/update_application_archive.rb +23 -23
  414. data/lib/ey-core/requests/update_auto_scaling_group.rb +45 -0
  415. data/lib/ey-core/requests/update_billing.rb +26 -26
  416. data/lib/ey-core/requests/update_blueprint.rb +29 -29
  417. data/lib/ey-core/requests/update_connector.rb +32 -32
  418. data/lib/ey-core/requests/update_environment.rb +17 -17
  419. data/lib/ey-core/requests/update_membership.rb +29 -29
  420. data/lib/ey-core/requests/update_provider_location.rb +29 -29
  421. data/lib/ey-core/requests/update_server.rb +29 -29
  422. data/lib/ey-core/requests/update_ssl_certificate.rb +25 -25
  423. data/lib/ey-core/requests/update_untracked_server.rb +24 -24
  424. data/lib/ey-core/requests/upload_file.rb +44 -44
  425. data/lib/ey-core/requests/upload_recipes_for_environment.rb +28 -28
  426. data/lib/ey-core/response.rb +59 -59
  427. data/lib/ey-core/response_cache.rb +29 -29
  428. data/lib/ey-core/subscribable.rb +60 -60
  429. data/lib/ey-core/test_helpers/account_helpers.rb +73 -73
  430. data/lib/ey-core/test_helpers/alert_helpers.rb +16 -16
  431. data/lib/ey-core/test_helpers/client_helpers.rb +40 -40
  432. data/lib/ey-core/test_helpers/cucumber.rb +3 -3
  433. data/lib/ey-core/test_helpers/resource_helpers.rb +196 -196
  434. data/lib/ey-core/test_helpers/rspec.rb +5 -5
  435. data/lib/ey-core/test_helpers.rb +15 -15
  436. data/lib/ey-core/token_authentication.rb +13 -13
  437. data/lib/ey-core/version.rb +5 -5
  438. data/lib/ey-core.rb +59 -59
  439. data/spec/account_spec.rb +65 -65
  440. data/spec/account_trial_spec.rb +17 -17
  441. data/spec/accounts_referrals_spec.rb +20 -20
  442. data/spec/accounts_spec.rb +113 -113
  443. data/spec/addons_and_vars_spec.rb +62 -62
  444. data/spec/addresses_spec.rb +56 -56
  445. data/spec/alerts_spec.rb +155 -155
  446. data/spec/application_archives_spec.rb +39 -39
  447. data/spec/applications_spec.rb +65 -65
  448. data/spec/auto_scaling_groups_spec.rb +28 -0
  449. data/spec/billing_spec.rb +31 -31
  450. data/spec/blueprints_spec.rb +47 -47
  451. data/spec/client_spec.rb +16 -16
  452. data/spec/collection_spec.rb +43 -43
  453. data/spec/costs_spec.rb +22 -22
  454. data/spec/database_plan_usage_spec.rb +39 -39
  455. data/spec/database_server_snapshots_spec.rb +41 -41
  456. data/spec/database_server_usage_spec.rb +49 -49
  457. data/spec/database_servers_spec.rb +61 -61
  458. data/spec/database_services_spec.rb +76 -76
  459. data/spec/deployments_spec.rb +24 -24
  460. data/spec/environment_plan_usage_spec.rb +38 -38
  461. data/spec/environments_spec.rb +212 -194
  462. data/spec/ey-core/cli/accounts_spec.rb +20 -20
  463. data/spec/ey-core/cli/helpers/server_sieve_spec.rb +226 -226
  464. data/spec/ey-core/cli/recipes/apply_spec.rb +34 -34
  465. data/spec/ey-core/cli/recipes/download_spec.rb +93 -93
  466. data/spec/ey-core/cli/recipes/upload_spec.rb +80 -80
  467. data/spec/features_spec.rb +79 -79
  468. data/spec/firewalls_spec.rb +84 -84
  469. data/spec/gems_spec.rb +11 -11
  470. data/spec/keypair_deployments_spec.rb +33 -33
  471. data/spec/keypairs_spec.rb +51 -51
  472. data/spec/legacy_alerts_spec.rb +44 -44
  473. data/spec/load_balancers_spec.rb +31 -31
  474. data/spec/logical_databases_spec.rb +38 -38
  475. data/spec/logs_spec.rb +44 -44
  476. data/spec/memberships_spec.rb +73 -73
  477. data/spec/messages_spec.rb +27 -27
  478. data/spec/metadata_spec.rb +11 -11
  479. data/spec/plan_usage_spec.rb +65 -65
  480. data/spec/provider_locations_spec.rb +85 -85
  481. data/spec/providers_spec.rb +105 -105
  482. data/spec/requests/upload_file_spec.rb +25 -25
  483. data/spec/requests_spec.rb +23 -23
  484. data/spec/reset_password_spec.rb +22 -22
  485. data/spec/server_events_spec.rb +31 -31
  486. data/spec/server_usage_spec.rb +70 -70
  487. data/spec/servers_spec.rb +202 -194
  488. data/spec/services_spec.rb +9 -9
  489. data/spec/signups_spec.rb +45 -45
  490. data/spec/spec_helper.rb +20 -20
  491. data/spec/ssl_certificates_spec.rb +94 -94
  492. data/spec/storages_spec.rb +57 -57
  493. data/spec/support/cli_helpers.rb +47 -47
  494. data/spec/support/core.rb +23 -23
  495. data/spec/support/coverage.rb +43 -43
  496. data/spec/support/fake_kernel.rb +21 -21
  497. data/spec/support/helpers.rb +1 -1
  498. data/spec/support/timecop.rb +8 -8
  499. data/spec/support_trial_spec.rb +33 -33
  500. data/spec/tokens_spec.rb +59 -59
  501. data/spec/untracked_servers_spec.rb +59 -59
  502. data/spec/users_spec.rb +108 -108
  503. metadata +16 -5
@@ -1,434 +1,442 @@
1
- class Ey::Core::Client < Cistern::Service
2
- NotPermitted = Class.new(StandardError)
3
-
4
- collection_path "ey-core/collections"
5
- model_path "ey-core/models"
6
- request_path "ey-core/requests"
7
-
8
- collection :account_cancellations
9
- collection :account_referrals
10
- collection :accounts
11
- collection :addons
12
- collection :addresses
13
- collection :alerts
14
- collection :application_archives
15
- collection :application_deployments
16
- collection :applications
17
- collection :backup_files
18
- collection :blueprints
19
- collection :components
20
- collection :contacts
21
- collection :costs
22
- collection :database_plan_usages
23
- collection :database_server_revisions
24
- collection :database_server_snapshots
25
- collection :database_server_usages
26
- collection :database_servers
27
- collection :database_services
28
- collection :deployments
29
- collection :environment_plan_usages
30
- collection :environments
31
- collection :features
32
- collection :firewall_rules
33
- collection :firewalls
34
- collection :gems
35
- collection :keypair_deployments
36
- collection :keypairs
37
- collection :legacy_alerts
38
- collection :load_balancer_nodes
39
- collection :load_balancer_services
40
- collection :load_balancers
41
- collection :logical_databases
42
- collection :logs
43
- collection :memberships
44
- collection :messages
45
- collection :plan_usages
46
- collection :provider_locations
47
- collection :providers
48
- collection :requests
49
- collection :server_events
50
- collection :server_usages
51
- collection :servers
52
- collection :services
53
- collection :ssl_certificates
54
- collection :storage_users
55
- collection :storages
56
- collection :tasks
57
- collection :tokens
58
- collection :untracked_addresses
59
- collection :untracked_servers
60
- collection :users
61
- collection :volumes
62
-
63
- model :account
64
- model :account_cancellation
65
- model :account_referral
66
- model :account_trial
67
- model :addon
68
- model :address
69
- model :alert
70
- model :application
71
- model :application_archive
72
- model :application_deployment
73
- model :backup_file
74
- model :billing
75
- model :blueprint
76
- model :component
77
- model :contact
78
- model :cost
79
- model :database_plan_usage
80
- model :database_server
81
- model :database_server_revision
82
- model :database_server_snapshot
83
- model :database_server_usage
84
- model :database_service
85
- model :deployment
86
- model :environment
87
- model :environment_plan_usage
88
- model :feature
89
- model :firewall
90
- model :firewall_rule
91
- model :gem
92
- model :keypair
93
- model :keypair_deployment
94
- model :legacy_alert
95
- model :load_balancer
96
- model :load_balancer_node
97
- model :load_balancer_service
98
- model :log
99
- model :logical_database
100
- model :membership
101
- model :message
102
- model :plan_usage
103
- model :provider
104
- model :provider_location
105
- model :request
106
- model :server
107
- model :server_event
108
- model :server_usage
109
- model :service
110
- model :ssl_certificate
111
- model :storage
112
- model :storage_user
113
- model :support_trial
114
- model :task
115
- model :token
116
- model :untracked_address
117
- model :untracked_server
118
- model :user
119
- model :volume
120
-
121
- request :acknowledge_alert
122
- request :apply_environment_updates
123
- request :apply_server_updates
124
- request :attach_address
125
- request :authorized_channel
126
- request :blueprint_environment
127
- request :boot_environment
128
- request :bootstrap_logical_database
129
- request :cancel_account
130
- request :change_environment_maintenance
131
- request :create_account
132
- request :create_addon
133
- request :create_address
134
- request :create_alert
135
- request :create_application
136
- request :create_application_archive
137
- request :create_backup_file
138
- request :create_database_server
139
- request :create_database_service
140
- request :create_database_service_snapshot
141
- request :create_environment
142
- request :create_firewall
143
- request :create_firewall_rule
144
- request :create_keypair
145
- request :create_keypair_deployment
146
- request :create_load_balancer
147
- request :create_log
148
- request :create_logical_database
149
- request :create_membership
150
- request :create_message
151
- request :create_password_reset
152
- request :create_provider
153
- request :create_server
154
- request :create_ssl_certificate
155
- request :create_storage
156
- request :create_storage_user
157
- request :create_task
158
- request :create_token
159
- request :create_untracked_address
160
- request :create_untracked_server
161
- request :create_user
162
- request :deploy_environment_application
163
- request :deprovision_environment
164
- request :destroy_addon
165
- request :destroy_blueprint
166
- request :destroy_database_server
167
- request :destroy_database_server_snapshot
168
- request :destroy_database_service
169
- request :destroy_environment
170
- request :destroy_firewall
171
- request :destroy_firewall_rule
172
- request :destroy_load_balancer
173
- request :destroy_logical_database
174
- request :destroy_provider
175
- request :destroy_server
176
- request :destroy_ssl_certificate
177
- request :destroy_storage
178
- request :destroy_storage_user
179
- request :destroy_user
180
- request :detach_address
181
- request :disable_feature
182
- request :discover_database_server
183
- request :discover_database_server_snapshots
184
- request :discover_provider_location
185
- request :download_file
186
- request :enable_feature
187
- request :get_account
188
- request :get_account_cancellation
189
- request :get_account_referrals
190
- request :get_account_trial
191
- request :get_accounts
192
- request :get_addon
193
- request :get_addons
194
- request :get_address
195
- request :get_addresses
196
- request :get_alert
197
- request :get_alerting_environments
198
- request :get_alerts
199
- request :get_api_token
200
- request :get_application
201
- request :get_application_archive
202
- request :get_application_archives
203
- request :get_application_deployment
204
- request :get_application_deployments
205
- request :get_applications
206
- request :get_backup_file
207
- request :get_backup_files
208
- request :get_billing
209
- request :get_blueprint
210
- request :get_blueprints
211
- request :get_component
212
- request :get_components
213
- request :get_contacts
214
- request :get_costs
215
- request :get_current_user
216
- request :get_database_plan_usages
217
- request :get_database_server
218
- request :get_database_server_revisions
219
- request :get_database_server_snapshot
220
- request :get_database_server_snapshots
221
- request :get_database_server_usages
222
- request :get_database_servers
223
- request :get_database_servers_firewalls
224
- request :get_database_service
225
- request :get_database_services
226
- request :get_deployment
227
- request :get_deployments
228
- request :get_environment
229
- request :get_environment_database_services
230
- request :get_environment_logical_databases
231
- request :get_environment_plan_usages
232
- request :get_environments
233
- request :get_feature
234
- request :get_features
235
- request :get_firewall
236
- request :get_firewall_rule
237
- request :get_firewall_rules
238
- request :get_firewalls
239
- request :get_gem
240
- request :get_keypair
241
- request :get_keypair_deployment
242
- request :get_keypair_deployments
243
- request :get_keypairs
244
- request :get_legacy_alert
245
- request :get_legacy_alerts
246
- request :get_load_balancer
247
- request :get_load_balancer_node
248
- request :get_load_balancer_nodes
249
- request :get_load_balancer_service
250
- request :get_load_balancer_services
251
- request :get_load_balancers
252
- request :get_log
253
- request :get_logical_database
254
- request :get_logical_databases
255
- request :get_logs
256
- request :get_membership
257
- request :get_memberships
258
- request :get_message
259
- request :get_messages
260
- request :get_metadata
261
- request :get_plan_usages
262
- request :get_possible_provider_locations
263
- request :get_provider
264
- request :get_provider_location
265
- request :get_provider_locations
266
- request :get_providers
267
- request :get_request
268
- request :get_requests
269
- request :get_server
270
- request :get_server_event
271
- request :get_server_events
272
- request :get_server_usages
273
- request :get_servers
274
- request :get_ssl_certificate
275
- request :get_ssl_certificates
276
- request :get_storage
277
- request :get_storage_user
278
- request :get_storage_users
279
- request :get_storages
280
- request :get_support_trial
281
- request :get_task
282
- request :get_tasks
283
- request :get_token
284
- request :get_token_by_login
285
- request :get_tokens
286
- request :get_untracked_server
287
- request :get_untracked_servers
288
- request :get_user
289
- request :get_users
290
- request :get_volumes
291
- request :reboot_server
292
- request :reconcile_server
293
- request :request_callback
294
- request :reset_password
295
- request :reset_server_state
296
- request :restart_environment_app_servers
297
- request :run_cluster_application_action
298
- request :run_environment_application_action
299
- request :signup
300
- request :start_server
301
- request :stop_server
302
- request :timeout_deployment
303
- request :unassign_environment
304
- request :update_addon
305
- request :update_address
306
- request :update_alert
307
- request :update_application_archive
308
- request :update_billing
309
- request :update_blueprint
310
- request :update_environment
311
- request :update_membership
312
- request :update_provider_location
313
- request :update_server
314
- request :update_ssl_certificate
315
- request :update_untracked_server
316
- request :upload_file
317
- request :upload_recipes_for_environment
318
-
319
- recognizes :token, :url, :logger, :adapter, :builder, :connection_options, :auth_id, :auth_key, :cache, :config_file
320
-
321
- module Shared
322
- attr_reader :authentication, :url, :cache
323
-
324
- def setup(options)
325
- token_dotfile = begin
326
- if options[:config_file]
327
- YAML.load_file(options[:config_file]) || {} # if the file is empty, yaml returns false
328
- else
329
- YAML.load_file(File.expand_path("~/.ey-core"))
330
- end
331
- rescue Errno::ENOENT
332
- {}
333
- end
334
-
335
- resolved_url = options[:url] || ENV["CORE_URL"] || "https://api.engineyard.com/"
336
- @url = File.join(resolved_url, "/") # trailing slash # consistency # hash tag you're welcome
337
- @cache = if options[:cache] == true
338
- Ey::Core::MemoryCache
339
- else options[:cache]
340
- end
341
-
342
- @authentication = nil
343
- @token = if ENV["CORE_TOKEN"]
344
- ENV["CORE_TOKEN"]
345
- elsif options.has_key?(:token) && options[:token].nil?
346
- @authentication = :none
347
- else
348
- options[:token] || token_dotfile[@url] || token_dotfile[@url.gsub(/\/$/, "")] # matching with or without trailing slash
349
- end
350
-
351
- # For HMAC
352
- @auth_id = options[:auth_id]
353
- @auth_key = options[:auth_key]
354
-
355
- unless @authentication == :none
356
- if !@auth_id && !@auth_key && !@token
357
- raise "Missing token. Use Ey::Core::Client.new(token: mytoken) or add \"'#{@url}': mytoken\" to your ~/.ey-core file (see: https://cloud.engineyard.com/cli)" unless @token
358
- elsif options[:token] || (@token && !@auth_id) # token was explicitly provided
359
- @authentication = :token
360
- else
361
- @authentication = :hmac
362
- @token = nil
363
- end
364
- end
365
-
366
- @logger = options[:logger] || Logger.new(nil)
367
- end
368
-
369
- # strong parameter emulation
370
- def require_parameters(_params, *_requirements)
371
- params = Cistern::Hash.stringify_keys(_params)
372
- requirements = _requirements.map(&:to_s)
373
-
374
- requirements.each do |requirement|
375
- unless !params[requirement].nil?
376
- if self.class == Ey::Core::Client::Real
377
- raise ArgumentError, "param is missing or the value is empty: #{requirement}"
378
- else
379
- response(
380
- :status => 400,
381
- :body => "param is missing or the value is empty: #{requirement}")
382
- end
383
- end
384
- end
385
- values = params.values_at(*requirements)
386
- values.size == 1 ? values.first : values
387
- end
388
-
389
- def require_arguments(_params, *_requirements)
390
- params = Cistern::Hash.stringify_keys(_params)
391
- requirements = _requirements.map(&:to_s)
392
-
393
- values = requirements.map do |requirement|
394
- if params[requirement].nil?
395
- raise ArgumentError, "argument is missing or the value is empty: #{requirement}"
396
- end
397
- params[requirement]
398
- end
399
- [params, *values]
400
- end
401
-
402
- def require_argument(_params, *_requirements)
403
- params = Cistern::Hash.stringify_keys(_params)
404
- requirements = _requirements.map(&:to_s)
405
-
406
- values = params.values_at(*requirements)
407
- values.all?(&:nil?) && raise(ArgumentError.new("argument is missing or the value is empty: #{requirement}"))
408
- values.size == 1 ? values.first : values
409
- end
410
-
411
- def require_argument!(_params, *_requirements)
412
- params = Cistern::Hash.stringify_keys(_params)
413
- requirements = _requirements.map(&:to_s)
414
-
415
- values = params.values_at(*requirements)
416
- values.all?(&:nil?) && raise(ArgumentError.new("argument is missing or the value is empty: #{requirement}"))
417
- requirements.each { |r| params.delete(r) }
418
- values.size == 1 ? values.first : values
419
- end
420
-
421
- def url_for(*args)
422
- File.join(@url.to_s, *args.map(&:to_s))
423
- end
424
-
425
- # @deprecated will be removed in 3.x
426
- # @see {#services}
427
- def metadata
428
- services.get("core")
429
- end
430
- end
431
- end # Ey::Core::Client
432
-
433
- require 'ey-core/client/real'
434
- require 'ey-core/client/mock'
1
+ class Ey::Core::Client < Cistern::Service
2
+ NotPermitted = Class.new(StandardError)
3
+
4
+ collection_path "ey-core/collections"
5
+ model_path "ey-core/models"
6
+ request_path "ey-core/requests"
7
+
8
+ collection :account_cancellations
9
+ collection :account_referrals
10
+ collection :accounts
11
+ collection :addons
12
+ collection :addresses
13
+ collection :alerts
14
+ collection :application_archives
15
+ collection :application_deployments
16
+ collection :applications
17
+ collection :auto_scaling_groups
18
+ collection :backup_files
19
+ collection :blueprints
20
+ collection :components
21
+ collection :contacts
22
+ collection :costs
23
+ collection :database_plan_usages
24
+ collection :database_server_revisions
25
+ collection :database_server_snapshots
26
+ collection :database_server_usages
27
+ collection :database_servers
28
+ collection :database_services
29
+ collection :deployments
30
+ collection :environment_plan_usages
31
+ collection :environments
32
+ collection :features
33
+ collection :firewall_rules
34
+ collection :firewalls
35
+ collection :gems
36
+ collection :keypair_deployments
37
+ collection :keypairs
38
+ collection :legacy_alerts
39
+ collection :load_balancer_nodes
40
+ collection :load_balancer_services
41
+ collection :load_balancers
42
+ collection :logical_databases
43
+ collection :logs
44
+ collection :memberships
45
+ collection :messages
46
+ collection :plan_usages
47
+ collection :provider_locations
48
+ collection :providers
49
+ collection :requests
50
+ collection :server_events
51
+ collection :server_usages
52
+ collection :servers
53
+ collection :services
54
+ collection :ssl_certificates
55
+ collection :storage_users
56
+ collection :storages
57
+ collection :tasks
58
+ collection :tokens
59
+ collection :untracked_addresses
60
+ collection :untracked_servers
61
+ collection :users
62
+ collection :volumes
63
+
64
+ model :account
65
+ model :account_cancellation
66
+ model :account_referral
67
+ model :account_trial
68
+ model :addon
69
+ model :address
70
+ model :alert
71
+ model :application
72
+ model :application_archive
73
+ model :application_deployment
74
+ model :auto_scaling_group
75
+ model :backup_file
76
+ model :billing
77
+ model :blueprint
78
+ model :component
79
+ model :contact
80
+ model :cost
81
+ model :database_plan_usage
82
+ model :database_server
83
+ model :database_server_revision
84
+ model :database_server_snapshot
85
+ model :database_server_usage
86
+ model :database_service
87
+ model :deployment
88
+ model :environment
89
+ model :environment_plan_usage
90
+ model :feature
91
+ model :firewall
92
+ model :firewall_rule
93
+ model :gem
94
+ model :keypair
95
+ model :keypair_deployment
96
+ model :legacy_alert
97
+ model :load_balancer
98
+ model :load_balancer_node
99
+ model :load_balancer_service
100
+ model :log
101
+ model :logical_database
102
+ model :membership
103
+ model :message
104
+ model :plan_usage
105
+ model :provider
106
+ model :provider_location
107
+ model :request
108
+ model :server
109
+ model :server_event
110
+ model :server_usage
111
+ model :service
112
+ model :ssl_certificate
113
+ model :storage
114
+ model :storage_user
115
+ model :support_trial
116
+ model :task
117
+ model :token
118
+ model :untracked_address
119
+ model :untracked_server
120
+ model :user
121
+ model :volume
122
+
123
+ request :acknowledge_alert
124
+ request :apply_environment_updates
125
+ request :apply_server_updates
126
+ request :attach_address
127
+ request :authorized_channel
128
+ request :blueprint_environment
129
+ request :boot_environment
130
+ request :bootstrap_logical_database
131
+ request :cancel_account
132
+ request :change_environment_maintenance
133
+ request :create_account
134
+ request :create_addon
135
+ request :create_address
136
+ request :create_alert
137
+ request :create_application
138
+ request :create_application_archive
139
+ request :create_auto_scaling_group
140
+ request :create_backup_file
141
+ request :create_database_server
142
+ request :create_database_service
143
+ request :create_database_service_snapshot
144
+ request :create_environment
145
+ request :create_firewall
146
+ request :create_firewall_rule
147
+ request :create_keypair
148
+ request :create_keypair_deployment
149
+ request :create_load_balancer
150
+ request :create_log
151
+ request :create_logical_database
152
+ request :create_membership
153
+ request :create_message
154
+ request :create_password_reset
155
+ request :create_provider
156
+ request :create_server
157
+ request :create_ssl_certificate
158
+ request :create_storage
159
+ request :create_storage_user
160
+ request :create_task
161
+ request :create_token
162
+ request :create_untracked_address
163
+ request :create_untracked_server
164
+ request :create_user
165
+ request :deploy_environment_application
166
+ request :deprovision_environment
167
+ request :destroy_addon
168
+ request :destroy_auto_scaling_group
169
+ request :destroy_blueprint
170
+ request :destroy_database_server
171
+ request :destroy_database_server_snapshot
172
+ request :destroy_database_service
173
+ request :destroy_environment
174
+ request :destroy_firewall
175
+ request :destroy_firewall_rule
176
+ request :destroy_load_balancer
177
+ request :destroy_logical_database
178
+ request :destroy_provider
179
+ request :destroy_server
180
+ request :destroy_ssl_certificate
181
+ request :destroy_storage
182
+ request :destroy_storage_user
183
+ request :destroy_user
184
+ request :detach_address
185
+ request :disable_feature
186
+ request :discover_database_server
187
+ request :discover_database_server_snapshots
188
+ request :discover_provider_location
189
+ request :discover_server
190
+ request :download_file
191
+ request :enable_feature
192
+ request :get_account
193
+ request :get_account_cancellation
194
+ request :get_account_referrals
195
+ request :get_account_trial
196
+ request :get_accounts
197
+ request :get_addon
198
+ request :get_addons
199
+ request :get_address
200
+ request :get_addresses
201
+ request :get_alert
202
+ request :get_alerting_environments
203
+ request :get_alerts
204
+ request :get_api_token
205
+ request :get_application
206
+ request :get_application_archive
207
+ request :get_application_archives
208
+ request :get_application_deployment
209
+ request :get_application_deployments
210
+ request :get_applications
211
+ request :get_auto_scaling_group
212
+ request :get_auto_scaling_groups
213
+ request :get_backup_file
214
+ request :get_backup_files
215
+ request :get_billing
216
+ request :get_blueprint
217
+ request :get_blueprints
218
+ request :get_component
219
+ request :get_components
220
+ request :get_contacts
221
+ request :get_costs
222
+ request :get_current_user
223
+ request :get_database_plan_usages
224
+ request :get_database_server
225
+ request :get_database_server_revisions
226
+ request :get_database_server_snapshot
227
+ request :get_database_server_snapshots
228
+ request :get_database_server_usages
229
+ request :get_database_servers
230
+ request :get_database_servers_firewalls
231
+ request :get_database_service
232
+ request :get_database_services
233
+ request :get_deployment
234
+ request :get_deployments
235
+ request :get_environment
236
+ request :get_environment_database_services
237
+ request :get_environment_logical_databases
238
+ request :get_environment_plan_usages
239
+ request :get_environments
240
+ request :get_feature
241
+ request :get_features
242
+ request :get_firewall
243
+ request :get_firewall_rule
244
+ request :get_firewall_rules
245
+ request :get_firewalls
246
+ request :get_gem
247
+ request :get_keypair
248
+ request :get_keypair_deployment
249
+ request :get_keypair_deployments
250
+ request :get_keypairs
251
+ request :get_legacy_alert
252
+ request :get_legacy_alerts
253
+ request :get_load_balancer
254
+ request :get_load_balancer_node
255
+ request :get_load_balancer_nodes
256
+ request :get_load_balancer_service
257
+ request :get_load_balancer_services
258
+ request :get_load_balancers
259
+ request :get_log
260
+ request :get_logical_database
261
+ request :get_logical_databases
262
+ request :get_logs
263
+ request :get_membership
264
+ request :get_memberships
265
+ request :get_message
266
+ request :get_messages
267
+ request :get_metadata
268
+ request :get_plan_usages
269
+ request :get_possible_provider_locations
270
+ request :get_provider
271
+ request :get_provider_location
272
+ request :get_provider_locations
273
+ request :get_providers
274
+ request :get_request
275
+ request :get_requests
276
+ request :get_server
277
+ request :get_server_event
278
+ request :get_server_events
279
+ request :get_server_usages
280
+ request :get_servers
281
+ request :get_ssl_certificate
282
+ request :get_ssl_certificates
283
+ request :get_storage
284
+ request :get_storage_user
285
+ request :get_storage_users
286
+ request :get_storages
287
+ request :get_support_trial
288
+ request :get_task
289
+ request :get_tasks
290
+ request :get_token
291
+ request :get_token_by_login
292
+ request :get_tokens
293
+ request :get_untracked_server
294
+ request :get_untracked_servers
295
+ request :get_user
296
+ request :get_users
297
+ request :get_volumes
298
+ request :reboot_server
299
+ request :reconcile_server
300
+ request :request_callback
301
+ request :reset_password
302
+ request :reset_server_state
303
+ request :restart_environment_app_servers
304
+ request :run_cluster_application_action
305
+ request :run_environment_application_action
306
+ request :signup
307
+ request :start_server
308
+ request :stop_server
309
+ request :timeout_deployment
310
+ request :unassign_environment
311
+ request :update_addon
312
+ request :update_address
313
+ request :update_alert
314
+ request :update_application_archive
315
+ request :update_auto_scaling_group
316
+ request :update_billing
317
+ request :update_blueprint
318
+ request :update_environment
319
+ request :update_membership
320
+ request :update_provider_location
321
+ request :update_server
322
+ request :update_ssl_certificate
323
+ request :update_untracked_server
324
+ request :upload_file
325
+ request :upload_recipes_for_environment
326
+
327
+ recognizes :token, :url, :logger, :adapter, :builder, :connection_options, :auth_id, :auth_key, :cache, :config_file
328
+
329
+ module Shared
330
+ attr_reader :authentication, :url, :cache
331
+
332
+ def setup(options)
333
+ token_dotfile = begin
334
+ if options[:config_file]
335
+ YAML.load_file(options[:config_file]) || {} # if the file is empty, yaml returns false
336
+ else
337
+ YAML.load_file(File.expand_path("~/.ey-core"))
338
+ end
339
+ rescue Errno::ENOENT
340
+ {}
341
+ end
342
+
343
+ resolved_url = options[:url] || ENV["CORE_URL"] || "https://api.engineyard.com/"
344
+ @url = File.join(resolved_url, "/") # trailing slash # consistency # hash tag you're welcome
345
+ @cache = if options[:cache] == true
346
+ Ey::Core::MemoryCache
347
+ else options[:cache]
348
+ end
349
+
350
+ @authentication = nil
351
+ @token = if ENV["CORE_TOKEN"]
352
+ ENV["CORE_TOKEN"]
353
+ elsif options.has_key?(:token) && options[:token].nil?
354
+ @authentication = :none
355
+ else
356
+ options[:token] || token_dotfile[@url] || token_dotfile[@url.gsub(/\/$/, "")] # matching with or without trailing slash
357
+ end
358
+
359
+ # For HMAC
360
+ @auth_id = options[:auth_id]
361
+ @auth_key = options[:auth_key]
362
+
363
+ unless @authentication == :none
364
+ if !@auth_id && !@auth_key && !@token
365
+ raise "Missing token. Use Ey::Core::Client.new(token: mytoken) or add \"'#{@url}': mytoken\" to your ~/.ey-core file (see: https://cloud.engineyard.com/cli)" unless @token
366
+ elsif options[:token] || (@token && !@auth_id) # token was explicitly provided
367
+ @authentication = :token
368
+ else
369
+ @authentication = :hmac
370
+ @token = nil
371
+ end
372
+ end
373
+
374
+ @logger = options[:logger] || Logger.new(nil)
375
+ end
376
+
377
+ # strong parameter emulation
378
+ def require_parameters(_params, *_requirements)
379
+ params = Cistern::Hash.stringify_keys(_params)
380
+ requirements = _requirements.map(&:to_s)
381
+
382
+ requirements.each do |requirement|
383
+ unless !params[requirement].nil?
384
+ if self.class == Ey::Core::Client::Real
385
+ raise ArgumentError, "param is missing or the value is empty: #{requirement}"
386
+ else
387
+ response(
388
+ :status => 400,
389
+ :body => "param is missing or the value is empty: #{requirement}")
390
+ end
391
+ end
392
+ end
393
+ values = params.values_at(*requirements)
394
+ values.size == 1 ? values.first : values
395
+ end
396
+
397
+ def require_arguments(_params, *_requirements)
398
+ params = Cistern::Hash.stringify_keys(_params)
399
+ requirements = _requirements.map(&:to_s)
400
+
401
+ values = requirements.map do |requirement|
402
+ if params[requirement].nil?
403
+ raise ArgumentError, "argument is missing or the value is empty: #{requirement}"
404
+ end
405
+ params[requirement]
406
+ end
407
+ [params, *values]
408
+ end
409
+
410
+ def require_argument(_params, *_requirements)
411
+ params = Cistern::Hash.stringify_keys(_params)
412
+ requirements = _requirements.map(&:to_s)
413
+
414
+ values = params.values_at(*requirements)
415
+ values.all?(&:nil?) && raise(ArgumentError.new("argument is missing or the value is empty: #{requirement}"))
416
+ values.size == 1 ? values.first : values
417
+ end
418
+
419
+ def require_argument!(_params, *_requirements)
420
+ params = Cistern::Hash.stringify_keys(_params)
421
+ requirements = _requirements.map(&:to_s)
422
+
423
+ values = params.values_at(*requirements)
424
+ values.all?(&:nil?) && raise(ArgumentError.new("argument is missing or the value is empty: #{requirement}"))
425
+ requirements.each { |r| params.delete(r) }
426
+ values.size == 1 ? values.first : values
427
+ end
428
+
429
+ def url_for(*args)
430
+ File.join(@url.to_s, *args.map(&:to_s))
431
+ end
432
+
433
+ # @deprecated will be removed in 3.x
434
+ # @see {#services}
435
+ def metadata
436
+ services.get("core")
437
+ end
438
+ end
439
+ end # Ey::Core::Client
440
+
441
+ require 'ey-core/client/real'
442
+ require 'ey-core/client/mock'