ey-core 3.4.4 → 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 -23
  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 -302
  93. data/lib/ey-core/client/real.rb +93 -93
  94. data/lib/ey-core/client.rb +442 -442
  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 -8
  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 -13
  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 -49
  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 -242
  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 -105
  203. data/lib/ey-core/models/server.rb +151 -151
  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 -62
  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 -76
  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 -44
  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 -60
  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 -21
  308. data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -29
  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 -45
  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 -28
  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 -212
  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 -202
  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 +6 -5
@@ -1,442 +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 :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'
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'