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,196 +1,196 @@
1
- require 'colorize'
2
- require 'ey-core/cli/errors'
3
-
4
- module Ey
5
- module Core
6
- module Cli
7
- module Helpers
8
- module Core
9
- module ClassMethods
10
- def core_file
11
- @core_file ||= File.expand_path("~/.ey-core")
12
- end
13
-
14
- def eyrc
15
- @eyrc ||= File.expand_path("~/.eyrc")
16
- end
17
- end
18
-
19
- def core_url
20
- env_url = ENV["CORE_URL"] || ENV["CLOUD_URL"]
21
- (env_url && File.join(env_url, '/')) || "https://api.engineyard.com/"
22
- end
23
-
24
- def longest_length_by_name(collection)
25
- collection.map(&:name).group_by(&:size).max.last.length
26
- end
27
-
28
- def core_yaml
29
- @core_yaml ||= YAML.load_file(self.class.core_file) || {}
30
- rescue Errno::ENOENT => e
31
- puts "Creating #{self.class.core_file}".yellow
32
- FileUtils.touch(self.class.core_file)
33
- retry
34
- end
35
-
36
- def operator(options)
37
- if options[:account]
38
- core_account
39
- elsif ENV["STAFF"]
40
- core_client
41
- else
42
- core_client.users.current
43
- end
44
- end
45
-
46
- def core_operator_and_environment_for(options={})
47
- unless options[:environment]
48
- raise "--environment is required (for a list of environments, try `ey environments`)"
49
- end
50
- operator = operator(options)
51
- environment = nil
52
- if options[:environment].to_i.to_s == options[:environment]
53
- environment = operator.environments.get(options[:environment])
54
- end
55
- unless environment
56
- candidate_envs = operator.environments.all(name: options[:environment])
57
- if candidate_envs.size > 1
58
- raise "Multiple matching environments found named '#{options[:environment]}', please specify --account"
59
- else
60
- environment = candidate_envs.first
61
- end
62
- end
63
- unless environment
64
- raise "environment '#{options[:environment]}' not found (for a list of environments, try `ey environments`)"
65
- end
66
- [operator, environment]
67
- end
68
-
69
- def core_environment_for(options={})
70
- core_client.environments.get(options[:environment]) || core_client.environments.first(name: options[:environment])
71
- end
72
-
73
- def core_server_for(options={})
74
- operator = options.fetch(:operator, core_client)
75
- operator.servers.get(options[:server]) || operator.servers.first(provisioned_id: options[:server])
76
- end
77
-
78
- def core_application_for(environment, options={})
79
- candidate_apps = nil
80
- unless options[:app]
81
- candidate_apps = environment.applications.map(&:name)
82
- if candidate_apps.size == 1
83
- options[:app] = candidate_apps.first
84
- else
85
- raise "--app is required (Candidate apps on environment #{environment.name}: #{candidate_apps.join(', ')})"
86
- end
87
- end
88
-
89
- app = begin
90
- Integer(options[:app])
91
- rescue
92
- options[:app]
93
- end
94
-
95
- if app.is_a?(Integer)
96
- environment.applications.get(app)
97
- else
98
- applications = environment.applications.all(name: app)
99
- if applications.count == 1
100
- applications.first
101
- else
102
- error_msg = [
103
- "Found multiple applications that matched that search.",
104
- "Please be more specific by specifying the account, environment, and application name.",
105
- "Matching applications: #{applications.map(&:name)}.",
106
- ]
107
- if candidate_apps
108
- error_msg << "applications on this environment: #{candidate_apps}"
109
- end
110
- raise Ey::Core::Cli::AmbiguousSearch.new(error_msg.join(" "))
111
- end
112
- end
113
- end
114
-
115
- def unauthenticated_core_client
116
- @unauthenticated_core_client ||= Ey::Core::Client.new(token: nil, url: core_url)
117
- end
118
-
119
- def core_client
120
- @core_client ||= begin
121
- opts = {url: core_url, config_file: self.class.core_file}
122
- opts.merge!(token: ENV["CORE_TOKEN"]) if ENV["CORE_TOKEN"]
123
- if ENV["DEBUG"]
124
- opts[:logger] = ::Logger.new(STDOUT)
125
- end
126
- Ey::Core::Client.new(opts)
127
- end
128
- rescue RuntimeError => e
129
- if legacy_token = e.message.match(/missing token/i) && eyrc_yaml["api_token"]
130
- puts "Found legacy .eyrc token. Migrating to core file".green
131
- write_core_yaml(legacy_token)
132
- retry
133
- elsif e.message.match(/missing token/i)
134
- abort "Missing credentials: Run 'ey login' to retrieve your Engine Yard Cloud API token.".yellow
135
- else
136
- raise e
137
- end
138
- end
139
-
140
- def core_account
141
- @_core_account ||= begin
142
- if options[:account]
143
- found = core_client.accounts.get(options[:account]) ||
144
- core_client.users.current.accounts.first(name: options[:account])
145
- if ENV["STAFF"]
146
- found ||= core_client.accounts.first(name: options[:account])
147
- end
148
- unless found
149
- account_not_found_error_message = "Couldn't find account '#{options[:account]}'"
150
- if core_client.users.current.staff && !ENV["STAFF"]
151
- account_not_found_error_message += " (set environment variable STAFF=1 to search all accounts)"
152
- end
153
- raise account_not_found_error_message
154
- end
155
- found
156
- else
157
- if core_accounts.size == 1
158
- core_accounts.first
159
- else
160
- raise "Please specify --account (options: #{core_accounts.map(&:name).join(', ')})"
161
- end
162
- end
163
- end
164
- end
165
-
166
- def core_accounts
167
- @_core_accounts ||= begin
168
- if ENV["STAFF"]
169
- core_client.accounts
170
- else
171
- core_client.users.current.accounts
172
- end
173
- end
174
- end
175
-
176
- def write_core_yaml(token=nil)
177
- core_yaml[core_url] = token if token
178
- File.open(self.class.core_file, "w") {|file|
179
- file.puts core_yaml.to_yaml
180
- }
181
- end
182
-
183
- def eyrc_yaml
184
- @eyrc_yaml ||= YAML.load_file(self.class.eyrc) || {}
185
- rescue Errno::ENOENT # we don't really care if this doesn't exist
186
- {}
187
- end
188
-
189
- def self.included(base)
190
- base.extend(ClassMethods)
191
- end
192
- end
193
- end
194
- end
195
- end
196
- end
1
+ require 'colorize'
2
+ require 'ey-core/cli/errors'
3
+
4
+ module Ey
5
+ module Core
6
+ module Cli
7
+ module Helpers
8
+ module Core
9
+ module ClassMethods
10
+ def core_file
11
+ @core_file ||= File.expand_path("~/.ey-core")
12
+ end
13
+
14
+ def eyrc
15
+ @eyrc ||= File.expand_path("~/.eyrc")
16
+ end
17
+ end
18
+
19
+ def core_url
20
+ env_url = ENV["CORE_URL"] || ENV["CLOUD_URL"]
21
+ (env_url && File.join(env_url, '/')) || "https://api.engineyard.com/"
22
+ end
23
+
24
+ def longest_length_by_name(collection)
25
+ collection.map(&:name).group_by(&:size).max.last.length
26
+ end
27
+
28
+ def core_yaml
29
+ @core_yaml ||= YAML.load_file(self.class.core_file) || {}
30
+ rescue Errno::ENOENT => e
31
+ puts "Creating #{self.class.core_file}".yellow
32
+ FileUtils.touch(self.class.core_file)
33
+ retry
34
+ end
35
+
36
+ def operator(options)
37
+ if options[:account]
38
+ core_account
39
+ elsif ENV["STAFF"]
40
+ core_client
41
+ else
42
+ core_client.users.current
43
+ end
44
+ end
45
+
46
+ def core_operator_and_environment_for(options={})
47
+ unless options[:environment]
48
+ raise "--environment is required (for a list of environments, try `ey environments`)"
49
+ end
50
+ operator = operator(options)
51
+ environment = nil
52
+ if options[:environment].to_i.to_s == options[:environment]
53
+ environment = operator.environments.get(options[:environment])
54
+ end
55
+ unless environment
56
+ candidate_envs = operator.environments.all(name: options[:environment])
57
+ if candidate_envs.size > 1
58
+ raise "Multiple matching environments found named '#{options[:environment]}', please specify --account"
59
+ else
60
+ environment = candidate_envs.first
61
+ end
62
+ end
63
+ unless environment
64
+ raise "environment '#{options[:environment]}' not found (for a list of environments, try `ey environments`)"
65
+ end
66
+ [operator, environment]
67
+ end
68
+
69
+ def core_environment_for(options={})
70
+ core_client.environments.get(options[:environment]) || core_client.environments.first(name: options[:environment])
71
+ end
72
+
73
+ def core_server_for(options={})
74
+ operator = options.fetch(:operator, core_client)
75
+ operator.servers.get(options[:server]) || operator.servers.first(provisioned_id: options[:server])
76
+ end
77
+
78
+ def core_application_for(environment, options={})
79
+ candidate_apps = nil
80
+ unless options[:app]
81
+ candidate_apps = environment.applications.map(&:name)
82
+ if candidate_apps.size == 1
83
+ options[:app] = candidate_apps.first
84
+ else
85
+ raise "--app is required (Candidate apps on environment #{environment.name}: #{candidate_apps.join(', ')})"
86
+ end
87
+ end
88
+
89
+ app = begin
90
+ Integer(options[:app])
91
+ rescue
92
+ options[:app]
93
+ end
94
+
95
+ if app.is_a?(Integer)
96
+ environment.applications.get(app)
97
+ else
98
+ applications = environment.applications.all(name: app)
99
+ if applications.count == 1
100
+ applications.first
101
+ else
102
+ error_msg = [
103
+ "Found multiple applications that matched that search.",
104
+ "Please be more specific by specifying the account, environment, and application name.",
105
+ "Matching applications: #{applications.map(&:name)}.",
106
+ ]
107
+ if candidate_apps
108
+ error_msg << "applications on this environment: #{candidate_apps}"
109
+ end
110
+ raise Ey::Core::Cli::AmbiguousSearch.new(error_msg.join(" "))
111
+ end
112
+ end
113
+ end
114
+
115
+ def unauthenticated_core_client
116
+ @unauthenticated_core_client ||= Ey::Core::Client.new(token: nil, url: core_url)
117
+ end
118
+
119
+ def core_client
120
+ @core_client ||= begin
121
+ opts = {url: core_url, config_file: self.class.core_file}
122
+ opts.merge!(token: ENV["CORE_TOKEN"]) if ENV["CORE_TOKEN"]
123
+ if ENV["DEBUG"]
124
+ opts[:logger] = ::Logger.new(STDOUT)
125
+ end
126
+ Ey::Core::Client.new(opts)
127
+ end
128
+ rescue RuntimeError => e
129
+ if legacy_token = e.message.match(/missing token/i) && eyrc_yaml["api_token"]
130
+ puts "Found legacy .eyrc token. Migrating to core file".green
131
+ write_core_yaml(legacy_token)
132
+ retry
133
+ elsif e.message.match(/missing token/i)
134
+ abort "Missing credentials: Run 'ey login' to retrieve your Engine Yard Cloud API token.".yellow
135
+ else
136
+ raise e
137
+ end
138
+ end
139
+
140
+ def core_account
141
+ @_core_account ||= begin
142
+ if options[:account]
143
+ found = core_client.accounts.get(options[:account]) ||
144
+ core_client.users.current.accounts.first(name: options[:account])
145
+ if ENV["STAFF"]
146
+ found ||= core_client.accounts.first(name: options[:account])
147
+ end
148
+ unless found
149
+ account_not_found_error_message = "Couldn't find account '#{options[:account]}'"
150
+ if core_client.users.current.staff && !ENV["STAFF"]
151
+ account_not_found_error_message += " (set environment variable STAFF=1 to search all accounts)"
152
+ end
153
+ raise account_not_found_error_message
154
+ end
155
+ found
156
+ else
157
+ if core_accounts.size == 1
158
+ core_accounts.first
159
+ else
160
+ raise "Please specify --account (options: #{core_accounts.map(&:name).join(', ')})"
161
+ end
162
+ end
163
+ end
164
+ end
165
+
166
+ def core_accounts
167
+ @_core_accounts ||= begin
168
+ if ENV["STAFF"]
169
+ core_client.accounts
170
+ else
171
+ core_client.users.current.accounts
172
+ end
173
+ end
174
+ end
175
+
176
+ def write_core_yaml(token=nil)
177
+ core_yaml[core_url] = token if token
178
+ File.open(self.class.core_file, "w") {|file|
179
+ file.puts core_yaml.to_yaml
180
+ }
181
+ end
182
+
183
+ def eyrc_yaml
184
+ @eyrc_yaml ||= YAML.load_file(self.class.eyrc) || {}
185
+ rescue Errno::ENOENT # we don't really care if this doesn't exist
186
+ {}
187
+ end
188
+
189
+ def self.included(base)
190
+ base.extend(ClassMethods)
191
+ end
192
+ end
193
+ end
194
+ end
195
+ end
196
+ end
@@ -1,39 +1,39 @@
1
- require 'colorize'
2
-
3
- module Ey
4
- module Core
5
- module Cli
6
- module Helpers
7
- module Deprecated
8
- # Class-level helpers pulled into an including class
9
- module ClassMethods
10
-
11
- # A helper for deprecating a Belafonte-based command
12
- #
13
- # @param deprecated_title [String] the title of the command
14
- #
15
- # @return [NilClass] this method is not expected to return a value
16
- def deprecate(deprecated_title)
17
- title deprecated_title
18
- summary 'This command has been deprecated'
19
- description <<-DESCRIPTION
20
- The #{meta[:title]} command has been deprecated. We apologize for any inconvenience.
21
- DESCRIPTION
22
- end
23
- end
24
-
25
- # Module magic
26
- # @api private
27
- def self.included(base)
28
- base.extend(ClassMethods)
29
- end
30
-
31
- # Terminate the deprecated command with a message
32
- def handle
33
- abort "This command is deprecated".red
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
1
+ require 'colorize'
2
+
3
+ module Ey
4
+ module Core
5
+ module Cli
6
+ module Helpers
7
+ module Deprecated
8
+ # Class-level helpers pulled into an including class
9
+ module ClassMethods
10
+
11
+ # A helper for deprecating a Belafonte-based command
12
+ #
13
+ # @param deprecated_title [String] the title of the command
14
+ #
15
+ # @return [NilClass] this method is not expected to return a value
16
+ def deprecate(deprecated_title)
17
+ title deprecated_title
18
+ summary 'This command has been deprecated'
19
+ description <<-DESCRIPTION
20
+ The #{meta[:title]} command has been deprecated. We apologize for any inconvenience.
21
+ DESCRIPTION
22
+ end
23
+ end
24
+
25
+ # Module magic
26
+ # @api private
27
+ def self.included(base)
28
+ base.extend(ClassMethods)
29
+ end
30
+
31
+ # Terminate the deprecated command with a message
32
+ def handle
33
+ abort "This command is deprecated".red
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,41 +1,41 @@
1
- module Ey
2
- module Core
3
- module Cli
4
- module Helpers
5
- module LogStreaming
6
-
7
- def stream_deploy_log(request)
8
- if request.finished_at
9
- return finished_request(request)
10
- end
11
- unless request.read_channel
12
- puts "Unable to stream log (streaming not enabled for this deploy)".yellow
13
- return
14
- end
15
- request.subscribe { |m| print m["message"] if m.is_a?(Hash) }
16
- puts "" # fix console output from stream
17
- finished_request(request)
18
- end
19
-
20
- def finished_request(request)
21
- if request.successful
22
- if request.resource.successful
23
- puts "Deploy successful!".green
24
- else
25
- puts "Deploy failed!".red
26
- end
27
- else
28
- abort <<-EOF
29
- Deploy failed!
30
- Request output:
31
- #{request.message}
32
- EOF
33
- .red
34
- end
35
- end
36
-
37
- end
38
- end
39
- end
40
- end
41
- end
1
+ module Ey
2
+ module Core
3
+ module Cli
4
+ module Helpers
5
+ module LogStreaming
6
+
7
+ def stream_deploy_log(request)
8
+ if request.finished_at
9
+ return finished_request(request)
10
+ end
11
+ unless request.read_channel
12
+ puts "Unable to stream log (streaming not enabled for this deploy)".yellow
13
+ return
14
+ end
15
+ request.subscribe { |m| print m["message"] if m.is_a?(Hash) }
16
+ puts "" # fix console output from stream
17
+ finished_request(request)
18
+ end
19
+
20
+ def finished_request(request)
21
+ if request.successful
22
+ if request.resource.successful
23
+ puts "Deploy successful!".green
24
+ else
25
+ puts "Deploy failed!".red
26
+ end
27
+ else
28
+ abort <<-EOF
29
+ Deploy failed!
30
+ Request output:
31
+ #{request.message}
32
+ EOF
33
+ .red
34
+ end
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end