ey-core 3.6.4 → 3.6.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (542) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +23 -23
  3. data/.ruby-gemset +1 -1
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +23 -23
  6. data/CHANGELOG.md +189 -189
  7. data/Gemfile +26 -20
  8. data/Guardfile +15 -15
  9. data/LICENSE.txt +19 -19
  10. data/README.md +135 -135
  11. data/Rakefile +18 -18
  12. data/bin/ey-core +4 -4
  13. data/docs/development.md +6 -0
  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 +52 -52
  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/docker_registry_credentials.feature +21 -21
  25. data/features/environment_variables.feature +54 -54
  26. data/features/environments.feature +30 -30
  27. data/features/init.feature +6 -6
  28. data/features/login.feature +6 -6
  29. data/features/scp.feature +6 -6
  30. data/features/step_definitions/accounts_steps.rb +37 -37
  31. data/features/step_definitions/applications_steps.rb +39 -39
  32. data/features/step_definitions/current_user_steps.rb +11 -11
  33. data/features/step_definitions/deprecated_command_steps.rb +3 -3
  34. data/features/step_definitions/docker_registry_credentials_steps.rb +3 -3
  35. data/features/step_definitions/environment_variables_steps.rb +51 -51
  36. data/features/step_definitions/environments_steps.rb +52 -52
  37. data/features/step_definitions/version_steps.rb +3 -3
  38. data/features/support/account_helpers.rb +89 -89
  39. data/features/support/app_helpers.rb +19 -19
  40. data/features/support/aruba.rb +1 -1
  41. data/features/support/boilerplate.rb +1 -1
  42. data/features/support/client_helpers.rb +36 -36
  43. data/features/support/config_file_helpers.rb +42 -42
  44. data/features/support/core.rb +19 -19
  45. data/features/support/deployment_helpers.rb +19 -19
  46. data/features/support/env.rb +40 -40
  47. data/features/support/environment_helpers.rb +23 -23
  48. data/features/support/environment_variable_helpers.rb +20 -20
  49. data/features/support/fake_kernel.rb +23 -23
  50. data/features/support/io.rb +5 -5
  51. data/features/support/mock_api.rb +20 -20
  52. data/features/support/output_helpers.rb +7 -7
  53. data/features/support/resource_helpers.rb +201 -201
  54. data/features/support/server_helpers.rb +27 -27
  55. data/features/version.feature +8 -8
  56. data/features/whoami.feature +14 -14
  57. data/lib/ey-core/associations.rb +155 -155
  58. data/lib/ey-core/cli/accounts.rb +17 -17
  59. data/lib/ey-core/cli/applications.rb +36 -36
  60. data/lib/ey-core/cli/console.rb +28 -28
  61. data/lib/ey-core/cli/current_user.rb +16 -16
  62. data/lib/ey-core/cli/deploy.rb +126 -126
  63. data/lib/ey-core/cli/docker_registry_login.rb +29 -29
  64. data/lib/ey-core/cli/environment_variables.rb +71 -71
  65. data/lib/ey-core/cli/environments.rb +39 -39
  66. data/lib/ey-core/cli/errors.rb +11 -11
  67. data/lib/ey-core/cli/help.rb +30 -30
  68. data/lib/ey-core/cli/helpers/archive.rb +70 -70
  69. data/lib/ey-core/cli/helpers/chef.rb +51 -51
  70. data/lib/ey-core/cli/helpers/core.rb +225 -225
  71. data/lib/ey-core/cli/helpers/deprecated.rb +39 -39
  72. data/lib/ey-core/cli/helpers/log_streaming.rb +41 -41
  73. data/lib/ey-core/cli/helpers/server_sieve.rb +83 -83
  74. data/lib/ey-core/cli/helpers/stream_printer.rb +42 -42
  75. data/lib/ey-core/cli/init.rb +14 -14
  76. data/lib/ey-core/cli/login.rb +38 -38
  77. data/lib/ey-core/cli/logout.rb +22 -22
  78. data/lib/ey-core/cli/logs.rb +70 -70
  79. data/lib/ey-core/cli/main.rb +66 -66
  80. data/lib/ey-core/cli/recipes/apply.rb +65 -65
  81. data/lib/ey-core/cli/recipes/download.rb +52 -52
  82. data/lib/ey-core/cli/recipes/main.rb +21 -21
  83. data/lib/ey-core/cli/recipes/upload.rb +78 -78
  84. data/lib/ey-core/cli/recipes.rb +10 -10
  85. data/lib/ey-core/cli/scp.rb +14 -14
  86. data/lib/ey-core/cli/servers.rb +59 -59
  87. data/lib/ey-core/cli/ssh.rb +156 -156
  88. data/lib/ey-core/cli/status.rb +60 -60
  89. data/lib/ey-core/cli/subcommand.rb +53 -53
  90. data/lib/ey-core/cli/timeout_deploy.rb +58 -58
  91. data/lib/ey-core/cli/version.rb +16 -16
  92. data/lib/ey-core/cli/web/disable.rb +49 -49
  93. data/lib/ey-core/cli/web/enable.rb +46 -46
  94. data/lib/ey-core/cli/web/main.rb +21 -21
  95. data/lib/ey-core/cli/web/restart.rb +42 -42
  96. data/lib/ey-core/cli/web.rb +10 -10
  97. data/lib/ey-core/cli/whoami.rb +12 -12
  98. data/lib/ey-core/cli.rb +8 -8
  99. data/lib/ey-core/client/mock.rb +306 -306
  100. data/lib/ey-core/client/real.rb +93 -93
  101. data/lib/ey-core/client.rb +469 -469
  102. data/lib/ey-core/collection.rb +131 -131
  103. data/lib/ey-core/collections/account_cancellations.rb +6 -6
  104. data/lib/ey-core/collections/account_referrals.rb +10 -10
  105. data/lib/ey-core/collections/accounts.rb +8 -8
  106. data/lib/ey-core/collections/addons.rb +16 -16
  107. data/lib/ey-core/collections/addresses.rb +9 -9
  108. data/lib/ey-core/collections/alerts.rb +9 -9
  109. data/lib/ey-core/collections/application_archives.rb +9 -9
  110. data/lib/ey-core/collections/application_deployments.rb +9 -9
  111. data/lib/ey-core/collections/applications.rb +9 -9
  112. data/lib/ey-core/collections/auto_scaling_alarms.rb +8 -8
  113. data/lib/ey-core/collections/auto_scaling_groups.rb +8 -8
  114. data/lib/ey-core/collections/auto_scaling_policies.rb +33 -33
  115. data/lib/ey-core/collections/backup_files.rb +9 -9
  116. data/lib/ey-core/collections/blueprints.rb +9 -9
  117. data/lib/ey-core/collections/components.rb +9 -9
  118. data/lib/ey-core/collections/contacts.rb +9 -9
  119. data/lib/ey-core/collections/container_clusters.rb +9 -9
  120. data/lib/ey-core/collections/container_service_deployments.rb +17 -17
  121. data/lib/ey-core/collections/costs.rb +8 -8
  122. data/lib/ey-core/collections/database_plan_usages.rb +7 -7
  123. data/lib/ey-core/collections/database_server_revisions.rb +7 -7
  124. data/lib/ey-core/collections/database_server_snapshots.rb +17 -17
  125. data/lib/ey-core/collections/database_server_usages.rb +7 -7
  126. data/lib/ey-core/collections/database_servers.rb +9 -9
  127. data/lib/ey-core/collections/database_services.rb +9 -9
  128. data/lib/ey-core/collections/deployments.rb +8 -8
  129. data/lib/ey-core/collections/environment_plan_usages.rb +7 -7
  130. data/lib/ey-core/collections/environment_variables.rb +8 -8
  131. data/lib/ey-core/collections/environments.rb +15 -15
  132. data/lib/ey-core/collections/features.rb +9 -9
  133. data/lib/ey-core/collections/firewall_rules.rb +9 -9
  134. data/lib/ey-core/collections/firewalls.rb +9 -9
  135. data/lib/ey-core/collections/gems.rb +6 -6
  136. data/lib/ey-core/collections/keypair_deployments.rb +9 -9
  137. data/lib/ey-core/collections/keypairs.rb +9 -9
  138. data/lib/ey-core/collections/legacy_alerts.rb +9 -9
  139. data/lib/ey-core/collections/load_balancer_nodes.rb +9 -9
  140. data/lib/ey-core/collections/load_balancer_services.rb +9 -9
  141. data/lib/ey-core/collections/load_balancers.rb +16 -16
  142. data/lib/ey-core/collections/logical_databases.rb +16 -16
  143. data/lib/ey-core/collections/logs.rb +9 -9
  144. data/lib/ey-core/collections/memberships.rb +9 -9
  145. data/lib/ey-core/collections/messages.rb +9 -9
  146. data/lib/ey-core/collections/plan_usages.rb +7 -7
  147. data/lib/ey-core/collections/provider_locations.rb +13 -13
  148. data/lib/ey-core/collections/providers.rb +15 -15
  149. data/lib/ey-core/collections/requests.rb +10 -10
  150. data/lib/ey-core/collections/server_events.rb +9 -9
  151. data/lib/ey-core/collections/server_usages.rb +7 -7
  152. data/lib/ey-core/collections/servers.rb +13 -13
  153. data/lib/ey-core/collections/services.rb +14 -14
  154. data/lib/ey-core/collections/ssl_certificates.rb +9 -9
  155. data/lib/ey-core/collections/storage_users.rb +10 -10
  156. data/lib/ey-core/collections/storages.rb +9 -9
  157. data/lib/ey-core/collections/tasks.rb +9 -9
  158. data/lib/ey-core/collections/tokens.rb +9 -9
  159. data/lib/ey-core/collections/untracked_addresses.rb +4 -4
  160. data/lib/ey-core/collections/untracked_servers.rb +9 -9
  161. data/lib/ey-core/collections/users.rb +12 -12
  162. data/lib/ey-core/collections/volumes.rb +9 -9
  163. data/lib/ey-core/logger.rb +31 -31
  164. data/lib/ey-core/memory_cache.rb +17 -17
  165. data/lib/ey-core/mock/helper.rb +104 -104
  166. data/lib/ey-core/mock/params.rb +31 -31
  167. data/lib/ey-core/mock/resources.rb +92 -92
  168. data/lib/ey-core/mock/searching.rb +115 -115
  169. data/lib/ey-core/mock/util.rb +23 -23
  170. data/lib/ey-core/model.rb +44 -44
  171. data/lib/ey-core/models/account.rb +80 -80
  172. data/lib/ey-core/models/account_cancellation.rb +6 -6
  173. data/lib/ey-core/models/account_referral.rb +8 -8
  174. data/lib/ey-core/models/account_trial.rb +15 -15
  175. data/lib/ey-core/models/addon.rb +37 -37
  176. data/lib/ey-core/models/address.rb +59 -59
  177. data/lib/ey-core/models/alert.rb +99 -99
  178. data/lib/ey-core/models/application.rb +33 -33
  179. data/lib/ey-core/models/application_archive.rb +67 -67
  180. data/lib/ey-core/models/application_deployment.rb +18 -18
  181. data/lib/ey-core/models/auto_scaling_alarm.rb +54 -54
  182. data/lib/ey-core/models/auto_scaling_group.rb +75 -75
  183. data/lib/ey-core/models/backup_file.rb +52 -52
  184. data/lib/ey-core/models/base_auto_scaling_policy.rb +61 -61
  185. data/lib/ey-core/models/billing.rb +27 -27
  186. data/lib/ey-core/models/blueprint.rb +30 -30
  187. data/lib/ey-core/models/component.rb +11 -11
  188. data/lib/ey-core/models/contact.rb +14 -14
  189. data/lib/ey-core/models/container_service_deployment.rb +17 -17
  190. data/lib/ey-core/models/cost.rb +16 -16
  191. data/lib/ey-core/models/database_plan_usage.rb +10 -10
  192. data/lib/ey-core/models/database_server.rb +56 -56
  193. data/lib/ey-core/models/database_server_revision.rb +10 -10
  194. data/lib/ey-core/models/database_server_snapshot.rb +43 -43
  195. data/lib/ey-core/models/database_server_usage.rb +15 -15
  196. data/lib/ey-core/models/database_service.rb +52 -52
  197. data/lib/ey-core/models/deployment.rb +31 -31
  198. data/lib/ey-core/models/environment.rb +248 -248
  199. data/lib/ey-core/models/environment_plan_usage.rb +10 -10
  200. data/lib/ey-core/models/environment_variable.rb +29 -29
  201. data/lib/ey-core/models/feature.rb +33 -33
  202. data/lib/ey-core/models/firewall.rb +46 -46
  203. data/lib/ey-core/models/firewall_rule.rb +41 -41
  204. data/lib/ey-core/models/gem.rb +5 -5
  205. data/lib/ey-core/models/keypair.rb +38 -38
  206. data/lib/ey-core/models/keypair_deployment.rb +26 -26
  207. data/lib/ey-core/models/legacy_alert.rb +12 -12
  208. data/lib/ey-core/models/load_balancer.rb +43 -43
  209. data/lib/ey-core/models/load_balancer_node.rb +17 -17
  210. data/lib/ey-core/models/load_balancer_service.rb +22 -22
  211. data/lib/ey-core/models/log.rb +44 -44
  212. data/lib/ey-core/models/logical_database.rb +40 -40
  213. data/lib/ey-core/models/membership.rb +49 -49
  214. data/lib/ey-core/models/message.rb +27 -27
  215. data/lib/ey-core/models/plan_usage.rb +14 -14
  216. data/lib/ey-core/models/provider.rb +59 -59
  217. data/lib/ey-core/models/provider_location.rb +24 -24
  218. data/lib/ey-core/models/request.rb +109 -109
  219. data/lib/ey-core/models/server.rb +151 -151
  220. data/lib/ey-core/models/server_event.rb +11 -11
  221. data/lib/ey-core/models/server_usage.rb +15 -15
  222. data/lib/ey-core/models/service.rb +10 -10
  223. data/lib/ey-core/models/simple_auto_scaling_policy.rb +24 -24
  224. data/lib/ey-core/models/ssl_certificate.rb +44 -44
  225. data/lib/ey-core/models/step_auto_scaling_policy.rb +24 -24
  226. data/lib/ey-core/models/storage.rb +38 -38
  227. data/lib/ey-core/models/storage_user.rb +44 -44
  228. data/lib/ey-core/models/support_trial.rb +10 -10
  229. data/lib/ey-core/models/target_auto_scaling_policy.rb +24 -24
  230. data/lib/ey-core/models/task.rb +35 -35
  231. data/lib/ey-core/models/token.rb +24 -24
  232. data/lib/ey-core/models/untracked_address.rb +24 -24
  233. data/lib/ey-core/models/untracked_server.rb +45 -45
  234. data/lib/ey-core/models/user.rb +39 -39
  235. data/lib/ey-core/models/volume.rb +20 -20
  236. data/lib/ey-core/request.rb +21 -21
  237. data/lib/ey-core/request_failure.rb +11 -11
  238. data/lib/ey-core/requests/acknowledge_alert.rb +29 -29
  239. data/lib/ey-core/requests/apply_environment_updates.rb +54 -54
  240. data/lib/ey-core/requests/apply_server_updates.rb +52 -52
  241. data/lib/ey-core/requests/attach_address.rb +53 -53
  242. data/lib/ey-core/requests/authorized_channel.rb +22 -22
  243. data/lib/ey-core/requests/blueprint_environment.rb +72 -72
  244. data/lib/ey-core/requests/boot_environment.rb +187 -187
  245. data/lib/ey-core/requests/bootstrap_logical_database.rb +80 -80
  246. data/lib/ey-core/requests/cancel_account.rb +33 -33
  247. data/lib/ey-core/requests/change_environment_maintenance.rb +38 -38
  248. data/lib/ey-core/requests/create_account.rb +38 -38
  249. data/lib/ey-core/requests/create_addon.rb +35 -35
  250. data/lib/ey-core/requests/create_address.rb +54 -54
  251. data/lib/ey-core/requests/create_alert.rb +63 -63
  252. data/lib/ey-core/requests/create_application.rb +73 -73
  253. data/lib/ey-core/requests/create_application_archive.rb +44 -44
  254. data/lib/ey-core/requests/create_auto_scaling_alarm.rb +69 -69
  255. data/lib/ey-core/requests/create_auto_scaling_group.rb +62 -62
  256. data/lib/ey-core/requests/create_auto_scaling_policy.rb +68 -68
  257. data/lib/ey-core/requests/create_backup_file.rb +52 -52
  258. data/lib/ey-core/requests/create_database_server.rb +72 -72
  259. data/lib/ey-core/requests/create_database_service.rb +57 -57
  260. data/lib/ey-core/requests/create_database_service_snapshot.rb +69 -69
  261. data/lib/ey-core/requests/create_environment.rb +77 -77
  262. data/lib/ey-core/requests/create_environment_variable.rb +39 -39
  263. data/lib/ey-core/requests/create_firewall.rb +62 -62
  264. data/lib/ey-core/requests/create_firewall_rule.rb +60 -60
  265. data/lib/ey-core/requests/create_keypair.rb +42 -42
  266. data/lib/ey-core/requests/create_keypair_deployment.rb +36 -36
  267. data/lib/ey-core/requests/create_load_balancer.rb +62 -62
  268. data/lib/ey-core/requests/create_log.rb +53 -53
  269. data/lib/ey-core/requests/create_logical_database.rb +56 -56
  270. data/lib/ey-core/requests/create_membership.rb +47 -47
  271. data/lib/ey-core/requests/create_message.rb +35 -35
  272. data/lib/ey-core/requests/create_password_reset.rb +38 -38
  273. data/lib/ey-core/requests/create_provider.rb +90 -90
  274. data/lib/ey-core/requests/create_server.rb +121 -121
  275. data/lib/ey-core/requests/create_ssl_certificate.rb +83 -83
  276. data/lib/ey-core/requests/create_storage.rb +64 -64
  277. data/lib/ey-core/requests/create_storage_user.rb +64 -64
  278. data/lib/ey-core/requests/create_task.rb +55 -55
  279. data/lib/ey-core/requests/create_token.rb +24 -24
  280. data/lib/ey-core/requests/create_untracked_address.rb +50 -50
  281. data/lib/ey-core/requests/create_untracked_server.rb +39 -39
  282. data/lib/ey-core/requests/create_user.rb +54 -54
  283. data/lib/ey-core/requests/deploy_environment_application.rb +61 -61
  284. data/lib/ey-core/requests/deprovision_environment.rb +17 -17
  285. data/lib/ey-core/requests/destroy_addon.rb +24 -24
  286. data/lib/ey-core/requests/destroy_auto_scaling_alarm.rb +49 -49
  287. data/lib/ey-core/requests/destroy_auto_scaling_group.rb +44 -44
  288. data/lib/ey-core/requests/destroy_auto_scaling_policy.rb +49 -49
  289. data/lib/ey-core/requests/destroy_blueprint.rb +22 -22
  290. data/lib/ey-core/requests/destroy_database_server.rb +41 -41
  291. data/lib/ey-core/requests/destroy_database_server_snapshot.rb +42 -42
  292. data/lib/ey-core/requests/destroy_database_service.rb +57 -57
  293. data/lib/ey-core/requests/destroy_environment.rb +43 -43
  294. data/lib/ey-core/requests/destroy_firewall.rb +41 -41
  295. data/lib/ey-core/requests/destroy_firewall_rule.rb +41 -41
  296. data/lib/ey-core/requests/destroy_load_balancer.rb +30 -30
  297. data/lib/ey-core/requests/destroy_logical_database.rb +41 -41
  298. data/lib/ey-core/requests/destroy_provider.rb +34 -34
  299. data/lib/ey-core/requests/destroy_server.rb +48 -48
  300. data/lib/ey-core/requests/destroy_ssl_certificate.rb +28 -28
  301. data/lib/ey-core/requests/destroy_storage.rb +33 -33
  302. data/lib/ey-core/requests/destroy_storage_user.rb +38 -38
  303. data/lib/ey-core/requests/destroy_user.rb +29 -29
  304. data/lib/ey-core/requests/detach_address.rb +48 -48
  305. data/lib/ey-core/requests/disable_feature.rb +30 -30
  306. data/lib/ey-core/requests/discover_container_service_deployments.rb +71 -71
  307. data/lib/ey-core/requests/discover_database_server.rb +66 -66
  308. data/lib/ey-core/requests/discover_database_server_snapshots.rb +69 -69
  309. data/lib/ey-core/requests/discover_provider_location.rb +57 -57
  310. data/lib/ey-core/requests/discover_server.rb +60 -60
  311. data/lib/ey-core/requests/download_file.rb +25 -25
  312. data/lib/ey-core/requests/enable_feature.rb +35 -35
  313. data/lib/ey-core/requests/get_account.rb +29 -29
  314. data/lib/ey-core/requests/get_account_cancellation.rb +21 -21
  315. data/lib/ey-core/requests/get_account_referrals.rb +28 -28
  316. data/lib/ey-core/requests/get_account_trial.rb +32 -32
  317. data/lib/ey-core/requests/get_accounts.rb +42 -42
  318. data/lib/ey-core/requests/get_addon.rb +25 -25
  319. data/lib/ey-core/requests/get_addons.rb +24 -24
  320. data/lib/ey-core/requests/get_address.rb +25 -25
  321. data/lib/ey-core/requests/get_addresses.rb +27 -27
  322. data/lib/ey-core/requests/get_alert.rb +21 -21
  323. data/lib/ey-core/requests/get_alerting_environments.rb +41 -41
  324. data/lib/ey-core/requests/get_alerts.rb +44 -44
  325. data/lib/ey-core/requests/get_api_token.rb +19 -19
  326. data/lib/ey-core/requests/get_application.rb +21 -21
  327. data/lib/ey-core/requests/get_application_archive.rb +32 -32
  328. data/lib/ey-core/requests/get_application_archives.rb +29 -29
  329. data/lib/ey-core/requests/get_application_deployment.rb +21 -21
  330. data/lib/ey-core/requests/get_application_deployments.rb +28 -28
  331. data/lib/ey-core/requests/get_applications.rb +28 -28
  332. data/lib/ey-core/requests/get_auto_scaling_alarm.rb +27 -27
  333. data/lib/ey-core/requests/get_auto_scaling_alarms.rb +34 -34
  334. data/lib/ey-core/requests/get_auto_scaling_group.rb +21 -21
  335. data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -29
  336. data/lib/ey-core/requests/get_auto_scaling_policies.rb +46 -46
  337. data/lib/ey-core/requests/get_auto_scaling_policy.rb +27 -27
  338. data/lib/ey-core/requests/get_backup_file.rb +21 -21
  339. data/lib/ey-core/requests/get_backup_files.rb +28 -28
  340. data/lib/ey-core/requests/get_billing.rb +24 -24
  341. data/lib/ey-core/requests/get_blueprint.rb +21 -21
  342. data/lib/ey-core/requests/get_blueprints.rb +29 -29
  343. data/lib/ey-core/requests/get_component.rb +21 -21
  344. data/lib/ey-core/requests/get_components.rb +29 -29
  345. data/lib/ey-core/requests/get_contacts.rb +34 -34
  346. data/lib/ey-core/requests/get_costs.rb +25 -25
  347. data/lib/ey-core/requests/get_current_user.rb +19 -19
  348. data/lib/ey-core/requests/get_database_plan_usages.rb +24 -24
  349. data/lib/ey-core/requests/get_database_server.rb +21 -21
  350. data/lib/ey-core/requests/get_database_server_revisions.rb +27 -27
  351. data/lib/ey-core/requests/get_database_server_snapshot.rb +20 -20
  352. data/lib/ey-core/requests/get_database_server_snapshots.rb +39 -39
  353. data/lib/ey-core/requests/get_database_server_usages.rb +24 -24
  354. data/lib/ey-core/requests/get_database_servers.rb +30 -30
  355. data/lib/ey-core/requests/get_database_servers_firewalls.rb +30 -30
  356. data/lib/ey-core/requests/get_database_service.rb +20 -20
  357. data/lib/ey-core/requests/get_database_services.rb +55 -55
  358. data/lib/ey-core/requests/get_deployment.rb +19 -19
  359. data/lib/ey-core/requests/get_deployments.rb +29 -29
  360. data/lib/ey-core/requests/get_environment.rb +21 -21
  361. data/lib/ey-core/requests/get_environment_database_services.rb +21 -21
  362. data/lib/ey-core/requests/get_environment_logical_databases.rb +20 -20
  363. data/lib/ey-core/requests/get_environment_plan_usages.rb +24 -24
  364. data/lib/ey-core/requests/get_environment_variable.rb +19 -19
  365. data/lib/ey-core/requests/get_environment_variables.rb +29 -29
  366. data/lib/ey-core/requests/get_environments.rb +29 -29
  367. data/lib/ey-core/requests/get_feature.rb +21 -21
  368. data/lib/ey-core/requests/get_features.rb +28 -28
  369. data/lib/ey-core/requests/get_firewall.rb +21 -21
  370. data/lib/ey-core/requests/get_firewall_rule.rb +21 -21
  371. data/lib/ey-core/requests/get_firewall_rules.rb +29 -29
  372. data/lib/ey-core/requests/get_firewalls.rb +45 -45
  373. data/lib/ey-core/requests/get_gem.rb +24 -24
  374. data/lib/ey-core/requests/get_keypair.rb +21 -21
  375. data/lib/ey-core/requests/get_keypair_deployment.rb +21 -21
  376. data/lib/ey-core/requests/get_keypair_deployments.rb +29 -29
  377. data/lib/ey-core/requests/get_keypairs.rb +34 -34
  378. data/lib/ey-core/requests/get_legacy_alert.rb +21 -21
  379. data/lib/ey-core/requests/get_legacy_alerts.rb +29 -29
  380. data/lib/ey-core/requests/get_load_balancer.rb +21 -21
  381. data/lib/ey-core/requests/get_load_balancer_node.rb +21 -21
  382. data/lib/ey-core/requests/get_load_balancer_nodes.rb +30 -30
  383. data/lib/ey-core/requests/get_load_balancer_service.rb +21 -21
  384. data/lib/ey-core/requests/get_load_balancer_services.rb +30 -30
  385. data/lib/ey-core/requests/get_load_balancers.rb +29 -29
  386. data/lib/ey-core/requests/get_log.rb +21 -21
  387. data/lib/ey-core/requests/get_logical_database.rb +23 -23
  388. data/lib/ey-core/requests/get_logical_databases.rb +36 -36
  389. data/lib/ey-core/requests/get_logs.rb +37 -37
  390. data/lib/ey-core/requests/get_membership.rb +21 -21
  391. data/lib/ey-core/requests/get_memberships.rb +29 -29
  392. data/lib/ey-core/requests/get_message.rb +28 -28
  393. data/lib/ey-core/requests/get_messages.rb +27 -27
  394. data/lib/ey-core/requests/get_metadata.rb +22 -22
  395. data/lib/ey-core/requests/get_operational_contact.rb +21 -21
  396. data/lib/ey-core/requests/get_operational_contacts.rb +20 -20
  397. data/lib/ey-core/requests/get_plan_usages.rb +24 -24
  398. data/lib/ey-core/requests/get_possible_provider_locations.rb +19 -19
  399. data/lib/ey-core/requests/get_provider.rb +21 -21
  400. data/lib/ey-core/requests/get_provider_location.rb +29 -29
  401. data/lib/ey-core/requests/get_provider_locations.rb +28 -28
  402. data/lib/ey-core/requests/get_providers.rb +28 -28
  403. data/lib/ey-core/requests/get_request.rb +71 -71
  404. data/lib/ey-core/requests/get_requests.rb +29 -29
  405. data/lib/ey-core/requests/get_server.rb +34 -34
  406. data/lib/ey-core/requests/get_server_event.rb +20 -20
  407. data/lib/ey-core/requests/get_server_events.rb +28 -28
  408. data/lib/ey-core/requests/get_server_usages.rb +24 -24
  409. data/lib/ey-core/requests/get_servers.rb +25 -25
  410. data/lib/ey-core/requests/get_ssl_certificate.rb +23 -23
  411. data/lib/ey-core/requests/get_ssl_certificates.rb +28 -28
  412. data/lib/ey-core/requests/get_storage.rb +21 -21
  413. data/lib/ey-core/requests/get_storage_user.rb +21 -21
  414. data/lib/ey-core/requests/get_storage_users.rb +28 -28
  415. data/lib/ey-core/requests/get_storages.rb +28 -28
  416. data/lib/ey-core/requests/get_support_trial.rb +51 -51
  417. data/lib/ey-core/requests/get_task.rb +21 -21
  418. data/lib/ey-core/requests/get_tasks.rb +28 -28
  419. data/lib/ey-core/requests/get_token.rb +21 -21
  420. data/lib/ey-core/requests/get_token_by_login.rb +30 -30
  421. data/lib/ey-core/requests/get_tokens.rb +32 -32
  422. data/lib/ey-core/requests/get_untracked_server.rb +18 -18
  423. data/lib/ey-core/requests/get_untracked_servers.rb +24 -24
  424. data/lib/ey-core/requests/get_user.rb +21 -21
  425. data/lib/ey-core/requests/get_users.rb +42 -42
  426. data/lib/ey-core/requests/get_volume.rb +21 -21
  427. data/lib/ey-core/requests/get_volumes.rb +28 -28
  428. data/lib/ey-core/requests/reboot_server.rb +39 -39
  429. data/lib/ey-core/requests/reconcile_server.rb +39 -39
  430. data/lib/ey-core/requests/request_callback.rb +26 -26
  431. data/lib/ey-core/requests/reset_password.rb +31 -31
  432. data/lib/ey-core/requests/reset_server_state.rb +32 -32
  433. data/lib/ey-core/requests/restart_environment_app_servers.rb +38 -38
  434. data/lib/ey-core/requests/retrieve_docker_registry_credentials.rb +24 -24
  435. data/lib/ey-core/requests/run_cluster_application_action.rb +28 -28
  436. data/lib/ey-core/requests/run_environment_application_action.rb +29 -29
  437. data/lib/ey-core/requests/signup.rb +56 -56
  438. data/lib/ey-core/requests/start_server.rb +39 -39
  439. data/lib/ey-core/requests/stop_server.rb +39 -39
  440. data/lib/ey-core/requests/timeout_deployment.rb +27 -27
  441. data/lib/ey-core/requests/unassign_environment.rb +31 -31
  442. data/lib/ey-core/requests/update_addon.rb +28 -28
  443. data/lib/ey-core/requests/update_address.rb +29 -29
  444. data/lib/ey-core/requests/update_alert.rb +32 -32
  445. data/lib/ey-core/requests/update_application_archive.rb +23 -23
  446. data/lib/ey-core/requests/update_auto_scaling_alarm.rb +45 -45
  447. data/lib/ey-core/requests/update_auto_scaling_group.rb +45 -45
  448. data/lib/ey-core/requests/update_auto_scaling_policy.rb +46 -46
  449. data/lib/ey-core/requests/update_billing.rb +26 -26
  450. data/lib/ey-core/requests/update_blueprint.rb +29 -29
  451. data/lib/ey-core/requests/update_connector.rb +32 -32
  452. data/lib/ey-core/requests/update_environment.rb +17 -17
  453. data/lib/ey-core/requests/update_environment_variable.rb +25 -25
  454. data/lib/ey-core/requests/update_membership.rb +29 -29
  455. data/lib/ey-core/requests/update_provider_location.rb +29 -29
  456. data/lib/ey-core/requests/update_server.rb +29 -29
  457. data/lib/ey-core/requests/update_ssl_certificate.rb +25 -25
  458. data/lib/ey-core/requests/update_untracked_server.rb +24 -24
  459. data/lib/ey-core/requests/upload_file.rb +44 -44
  460. data/lib/ey-core/requests/upload_recipes_for_environment.rb +28 -28
  461. data/lib/ey-core/response.rb +59 -59
  462. data/lib/ey-core/response_cache.rb +29 -29
  463. data/lib/ey-core/subscribable.rb +60 -60
  464. data/lib/ey-core/test_helpers/account_helpers.rb +73 -73
  465. data/lib/ey-core/test_helpers/alert_helpers.rb +16 -16
  466. data/lib/ey-core/test_helpers/auto_scaling_helpers.rb +35 -35
  467. data/lib/ey-core/test_helpers/client_helpers.rb +40 -40
  468. data/lib/ey-core/test_helpers/cucumber.rb +3 -3
  469. data/lib/ey-core/test_helpers/resource_helpers.rb +196 -196
  470. data/lib/ey-core/test_helpers/rspec.rb +5 -5
  471. data/lib/ey-core/test_helpers.rb +17 -17
  472. data/lib/ey-core/token_authentication.rb +13 -13
  473. data/lib/ey-core/version.rb +5 -5
  474. data/lib/ey-core.rb +59 -59
  475. data/spec/account_spec.rb +65 -65
  476. data/spec/account_trial_spec.rb +17 -17
  477. data/spec/accounts_referrals_spec.rb +20 -20
  478. data/spec/accounts_spec.rb +113 -113
  479. data/spec/addons_and_vars_spec.rb +62 -62
  480. data/spec/addresses_spec.rb +57 -57
  481. data/spec/alerts_spec.rb +155 -155
  482. data/spec/application_archives_spec.rb +39 -39
  483. data/spec/applications_spec.rb +65 -65
  484. data/spec/auto_scaling_alarms_spec.rb +40 -40
  485. data/spec/auto_scaling_groups_spec.rb +28 -28
  486. data/spec/auto_scaling_policies_spec.rb +94 -94
  487. data/spec/billing_spec.rb +31 -31
  488. data/spec/blueprints_spec.rb +47 -47
  489. data/spec/client_spec.rb +16 -16
  490. data/spec/collection_spec.rb +43 -43
  491. data/spec/costs_spec.rb +22 -22
  492. data/spec/database_plan_usage_spec.rb +39 -39
  493. data/spec/database_server_snapshots_spec.rb +41 -41
  494. data/spec/database_server_usage_spec.rb +49 -49
  495. data/spec/database_servers_spec.rb +61 -61
  496. data/spec/database_services_spec.rb +76 -76
  497. data/spec/deployments_spec.rb +24 -24
  498. data/spec/docker_registry_credentials_spec.rb +16 -16
  499. data/spec/environment_plan_usage_spec.rb +38 -38
  500. data/spec/environments_spec.rb +212 -212
  501. data/spec/ey-core/cli/accounts_spec.rb +20 -20
  502. data/spec/ey-core/cli/helpers/server_sieve_spec.rb +226 -226
  503. data/spec/ey-core/cli/recipes/apply_spec.rb +34 -34
  504. data/spec/ey-core/cli/recipes/download_spec.rb +93 -93
  505. data/spec/ey-core/cli/recipes/upload_spec.rb +80 -80
  506. data/spec/features_spec.rb +79 -79
  507. data/spec/firewalls_spec.rb +84 -84
  508. data/spec/gems_spec.rb +11 -11
  509. data/spec/keypair_deployments_spec.rb +33 -33
  510. data/spec/keypairs_spec.rb +51 -51
  511. data/spec/legacy_alerts_spec.rb +44 -44
  512. data/spec/load_balancers_spec.rb +31 -31
  513. data/spec/logical_databases_spec.rb +38 -38
  514. data/spec/logs_spec.rb +44 -44
  515. data/spec/memberships_spec.rb +73 -73
  516. data/spec/messages_spec.rb +27 -27
  517. data/spec/metadata_spec.rb +11 -11
  518. data/spec/plan_usage_spec.rb +65 -65
  519. data/spec/provider_locations_spec.rb +85 -85
  520. data/spec/providers_spec.rb +105 -105
  521. data/spec/requests/upload_file_spec.rb +25 -25
  522. data/spec/requests_spec.rb +23 -23
  523. data/spec/reset_password_spec.rb +22 -22
  524. data/spec/server_events_spec.rb +31 -31
  525. data/spec/server_usage_spec.rb +70 -70
  526. data/spec/servers_spec.rb +202 -202
  527. data/spec/services_spec.rb +9 -9
  528. data/spec/signups_spec.rb +45 -45
  529. data/spec/spec_helper.rb +27 -27
  530. data/spec/ssl_certificates_spec.rb +94 -94
  531. data/spec/storages_spec.rb +57 -57
  532. data/spec/support/cli_helpers.rb +47 -47
  533. data/spec/support/core.rb +21 -21
  534. data/spec/support/coverage.rb +43 -43
  535. data/spec/support/fake_kernel.rb +21 -21
  536. data/spec/support/helpers.rb +1 -1
  537. data/spec/support/timecop.rb +8 -8
  538. data/spec/support_trial_spec.rb +33 -33
  539. data/spec/tokens_spec.rb +59 -59
  540. data/spec/untracked_servers_spec.rb +59 -59
  541. data/spec/users_spec.rb +108 -108
  542. metadata +4 -3
@@ -1,156 +1,156 @@
1
- require 'ey-core/cli/helpers/server_sieve'
2
- require 'ey-core/cli/subcommand'
3
-
4
- module Ey
5
- module Core
6
- module Cli
7
- class Ssh < Subcommand
8
- title "ssh"
9
- summary "Open an SSH session to the environment's application master"
10
-
11
- option :account,
12
- short: "c",
13
- long: "account",
14
- description: "Name or id of account",
15
- argument: "account"
16
-
17
- option :environment,
18
- short: "e",
19
- long: "environment",
20
- description: "Name or id of environment",
21
- argument: "environment"
22
-
23
- option :server,
24
- short: 's',
25
- long: "server",
26
- description: "Specific server to ssh into. Id or amazon id (i-12345)",
27
- argument: "server"
28
-
29
- option :utilities,
30
- long: "utilities",
31
- description: "Run command on the utility servers with the given names. Specify all to run the command on all utility servers.",
32
- argument: "'all,resque,redis,etc'"
33
-
34
- option :command,
35
- long: "command",
36
- description: "Command to run",
37
- argument: "'command with args'"
38
-
39
- option :shell,
40
- long: "shell",
41
- description: "Run command in a shell other than bash",
42
- argument: "shell"
43
-
44
- option :bind_address,
45
- long: "bind_address",
46
- description: "When no command is specified, pass -L to ssh",
47
- argument: "bind address"
48
-
49
- switch :all,
50
- long: "all",
51
- description: "Run command on all servers"
52
-
53
- switch :app_servers,
54
- long: "app_servers",
55
- description: "Run command on all application servers"
56
-
57
- switch :app_master,
58
- long: "app_master",
59
- description: "Run command on app master"
60
-
61
- switch :db_servers,
62
- long: "db_servers",
63
- description: "Run command on all database servers"
64
-
65
- switch :db_master,
66
- long: "db_master",
67
- description: "Run command on database master"
68
-
69
- switch :db_slaves,
70
- long: "db_slaves",
71
- description: "Run command on database slaves"
72
-
73
- switch :tty,
74
- short: 't',
75
- long: "tty",
76
- description: "Allocated a tty for the command"
77
-
78
- def handle
79
- operator, environment = core_operator_and_environment_for(options)
80
- abort "Unable to find matching environment".red unless environment
81
-
82
- cmd = option(:command)
83
- ssh_opts = []
84
- ssh_cmd = ["ssh"]
85
- exits = []
86
- user = environment.username
87
- servers = []
88
-
89
- if option(:command)
90
- if shell = option(:shell)
91
- cmd = Escape.shell_command([shell,'-lc',cmd])
92
- end
93
-
94
- if switch_active?(:tty)
95
- ssh_opts << "-t"
96
- elsif cmd.match(/sudo/)
97
- puts "sudo commands often need a tty to run correctly. Use -t option to spawn a tty.".yellow
98
- end
99
-
100
- servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
101
- environment.servers,
102
- all: switch_active?(:all),
103
- app_servers: switch_active?(:app_servers),
104
- app_master: switch_active?(:app_master),
105
- db_servers: switch_active?(:db_servers),
106
- db_master: switch_active?(:db_master),
107
- utilities: option(:utilities)
108
- )
109
- else
110
- if option(:bind_address)
111
- ssh_opts += ["-L", option(:bind_address)]
112
- end
113
-
114
- if option(:server)
115
- servers += [core_server_for(server: option(:server), operator: environment)]
116
- else
117
- servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
118
- environment.servers,
119
- all: switch_active?(:all),
120
- app_servers: switch_active?(:app_servers),
121
- app_master: switch_active?(:app_master),
122
- db_servers: switch_active?(:db_servers),
123
- db_master: switch_active?(:db_master),
124
- utilities: option(:utilities)
125
- )
126
-
127
- # Reinstate default behavior: If no command is passed and no
128
- # roles are passed, open a connection to the app master
129
- if servers.empty?
130
- servers += (environment.servers.all(role: "app_master") + environment.servers.all(role: "solo")).to_a
131
- end
132
- end
133
- end
134
-
135
- if servers.empty?
136
- abort "Unable to find any matching servers. Aborting.".red
137
- end
138
-
139
- servers.uniq!
140
-
141
- servers.each do |server|
142
- host = server.public_hostname
143
- name = server.name ? "#{server.role} (#{server.name})" : server.role
144
- puts "\nConnecting to #{name} #{host}".green
145
- sshcmd = Escape.shell_command((ssh_cmd + ["#{user}@#{host}"] + [cmd]).compact)
146
- puts "Running command: #{sshcmd}".green
147
- system sshcmd
148
- exits << $?.exitstatus
149
- end
150
-
151
- exit exits.detect {|status| status != 0 } || 0
152
- end
153
- end
154
- end
155
- end
156
- end
1
+ require 'ey-core/cli/helpers/server_sieve'
2
+ require 'ey-core/cli/subcommand'
3
+
4
+ module Ey
5
+ module Core
6
+ module Cli
7
+ class Ssh < Subcommand
8
+ title "ssh"
9
+ summary "Open an SSH session to the environment's application master"
10
+
11
+ option :account,
12
+ short: "c",
13
+ long: "account",
14
+ description: "Name or id of account",
15
+ argument: "account"
16
+
17
+ option :environment,
18
+ short: "e",
19
+ long: "environment",
20
+ description: "Name or id of environment",
21
+ argument: "environment"
22
+
23
+ option :server,
24
+ short: 's',
25
+ long: "server",
26
+ description: "Specific server to ssh into. Id or amazon id (i-12345)",
27
+ argument: "server"
28
+
29
+ option :utilities,
30
+ long: "utilities",
31
+ description: "Run command on the utility servers with the given names. Specify all to run the command on all utility servers.",
32
+ argument: "'all,resque,redis,etc'"
33
+
34
+ option :command,
35
+ long: "command",
36
+ description: "Command to run",
37
+ argument: "'command with args'"
38
+
39
+ option :shell,
40
+ long: "shell",
41
+ description: "Run command in a shell other than bash",
42
+ argument: "shell"
43
+
44
+ option :bind_address,
45
+ long: "bind_address",
46
+ description: "When no command is specified, pass -L to ssh",
47
+ argument: "bind address"
48
+
49
+ switch :all,
50
+ long: "all",
51
+ description: "Run command on all servers"
52
+
53
+ switch :app_servers,
54
+ long: "app_servers",
55
+ description: "Run command on all application servers"
56
+
57
+ switch :app_master,
58
+ long: "app_master",
59
+ description: "Run command on app master"
60
+
61
+ switch :db_servers,
62
+ long: "db_servers",
63
+ description: "Run command on all database servers"
64
+
65
+ switch :db_master,
66
+ long: "db_master",
67
+ description: "Run command on database master"
68
+
69
+ switch :db_slaves,
70
+ long: "db_slaves",
71
+ description: "Run command on database slaves"
72
+
73
+ switch :tty,
74
+ short: 't',
75
+ long: "tty",
76
+ description: "Allocated a tty for the command"
77
+
78
+ def handle
79
+ operator, environment = core_operator_and_environment_for(options)
80
+ abort "Unable to find matching environment".red unless environment
81
+
82
+ cmd = option(:command)
83
+ ssh_opts = []
84
+ ssh_cmd = ["ssh"]
85
+ exits = []
86
+ user = environment.username
87
+ servers = []
88
+
89
+ if option(:command)
90
+ if shell = option(:shell)
91
+ cmd = Escape.shell_command([shell,'-lc',cmd])
92
+ end
93
+
94
+ if switch_active?(:tty)
95
+ ssh_opts << "-t"
96
+ elsif cmd.match(/sudo/)
97
+ puts "sudo commands often need a tty to run correctly. Use -t option to spawn a tty.".yellow
98
+ end
99
+
100
+ servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
101
+ environment.servers,
102
+ all: switch_active?(:all),
103
+ app_servers: switch_active?(:app_servers),
104
+ app_master: switch_active?(:app_master),
105
+ db_servers: switch_active?(:db_servers),
106
+ db_master: switch_active?(:db_master),
107
+ utilities: option(:utilities)
108
+ )
109
+ else
110
+ if option(:bind_address)
111
+ ssh_opts += ["-L", option(:bind_address)]
112
+ end
113
+
114
+ if option(:server)
115
+ servers += [core_server_for(server: option(:server), operator: environment)]
116
+ else
117
+ servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
118
+ environment.servers,
119
+ all: switch_active?(:all),
120
+ app_servers: switch_active?(:app_servers),
121
+ app_master: switch_active?(:app_master),
122
+ db_servers: switch_active?(:db_servers),
123
+ db_master: switch_active?(:db_master),
124
+ utilities: option(:utilities)
125
+ )
126
+
127
+ # Reinstate default behavior: If no command is passed and no
128
+ # roles are passed, open a connection to the app master
129
+ if servers.empty?
130
+ servers += (environment.servers.all(role: "app_master") + environment.servers.all(role: "solo")).to_a
131
+ end
132
+ end
133
+ end
134
+
135
+ if servers.empty?
136
+ abort "Unable to find any matching servers. Aborting.".red
137
+ end
138
+
139
+ servers.uniq!
140
+
141
+ servers.each do |server|
142
+ host = server.public_hostname
143
+ name = server.name ? "#{server.role} (#{server.name})" : server.role
144
+ puts "\nConnecting to #{name} #{host}".green
145
+ sshcmd = Escape.shell_command((ssh_cmd + ["#{user}@#{host}"] + [cmd]).compact)
146
+ puts "Running command: #{sshcmd}".green
147
+ system sshcmd
148
+ exits << $?.exitstatus
149
+ end
150
+
151
+ exit exits.detect {|status| status != 0 } || 0
152
+ end
153
+ end
154
+ end
155
+ end
156
+ end
@@ -1,60 +1,60 @@
1
- require 'ey-core/cli/subcommand'
2
- require 'ey-core/cli/helpers/log_streaming'
3
-
4
- module Ey
5
- module Core
6
- module Cli
7
- class Status < Subcommand
8
- include Ey::Core::Cli::Helpers::LogStreaming
9
- title "status"
10
- summary "Show the deployment status of the app"
11
- description <<-DESC
12
- Show the current status of the most recent deployment of the specifed application and environment
13
- DESC
14
-
15
- option :environment,
16
- short: "e",
17
- long: "environment",
18
- description: "Name or id of the environment to deploy to.",
19
- argument: "Environment"
20
-
21
- option :account,
22
- short: 'c',
23
- long: 'account',
24
- description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
25
- argument: 'Account name or id'
26
-
27
- option :app,
28
- short: "a",
29
- long: "app",
30
- description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
31
- argument: "app"
32
-
33
- switch :tail,
34
- long: "tail",
35
- description: "tail in-progress deployment log"
36
-
37
- def handle
38
- operator, environment = core_operator_and_environment_for(self.options)
39
- app = core_application_for(environment, self.options)
40
- deploy = environment.latest_deploy(app)
41
-
42
- puts environment.release_label
43
- puts "#{environment.servers.size} servers"
44
- environment.servers.each do |s|
45
- puts [s.provisioned_id, s.role, s.state].join(" ")
46
- end
47
- if deploy
48
- ap deploy
49
- if switch_active?(:tail)
50
- stream_deploy_log(deploy.request)
51
- end
52
- else
53
- puts "Never Deployed"
54
- end
55
- end
56
-
57
- end
58
- end
59
- end
60
- end
1
+ require 'ey-core/cli/subcommand'
2
+ require 'ey-core/cli/helpers/log_streaming'
3
+
4
+ module Ey
5
+ module Core
6
+ module Cli
7
+ class Status < Subcommand
8
+ include Ey::Core::Cli::Helpers::LogStreaming
9
+ title "status"
10
+ summary "Show the deployment status of the app"
11
+ description <<-DESC
12
+ Show the current status of the most recent deployment of the specifed application and environment
13
+ DESC
14
+
15
+ option :environment,
16
+ short: "e",
17
+ long: "environment",
18
+ description: "Name or id of the environment to deploy to.",
19
+ argument: "Environment"
20
+
21
+ option :account,
22
+ short: 'c',
23
+ long: 'account',
24
+ description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
25
+ argument: 'Account name or id'
26
+
27
+ option :app,
28
+ short: "a",
29
+ long: "app",
30
+ description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
31
+ argument: "app"
32
+
33
+ switch :tail,
34
+ long: "tail",
35
+ description: "tail in-progress deployment log"
36
+
37
+ def handle
38
+ operator, environment = core_operator_and_environment_for(self.options)
39
+ app = core_application_for(environment, self.options)
40
+ deploy = environment.latest_deploy(app)
41
+
42
+ puts environment.release_label
43
+ puts "#{environment.servers.size} servers"
44
+ environment.servers.each do |s|
45
+ puts [s.provisioned_id, s.role, s.state].join(" ")
46
+ end
47
+ if deploy
48
+ ap deploy
49
+ if switch_active?(:tail)
50
+ stream_deploy_log(deploy.request)
51
+ end
52
+ else
53
+ puts "Never Deployed"
54
+ end
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+ end
@@ -1,53 +1,53 @@
1
- require 'belafonte'
2
- require 'colorize'
3
- require 'table_print'
4
- require 'ey-core'
5
- require 'ey-core/cli/helpers/core'
6
-
7
- module Ey
8
- module Core
9
- module Cli
10
- class Subcommand < Belafonte::App
11
- include Ey::Core::Cli::Helpers::Core
12
-
13
- def setup
14
- $stdout = stdout
15
- $stderr = stderr
16
- $stdin = stdin
17
- $kernel = kernel
18
- end
19
-
20
- def run_handle
21
- super
22
- rescue Ey::Core::Response::Error => e
23
- if ENV["DEBUG"]
24
- puts e.inspect
25
- puts e.backtrace
26
- end
27
- handle_core_error(e)
28
- rescue => e
29
- if ENV["DEBUG"]
30
- puts e.inspect
31
- puts e.backtrace
32
- end
33
- stderr.puts "Error:".red
34
- stderr.puts Wrapomatic.wrap(e.message, indents: 1)
35
- raise SystemExit.new(255)
36
- end
37
-
38
- #TODO: a lot more errors that would could handle with nice messages, eventually this should probably be it's own class
39
- def handle_core_error(e)
40
- stderr.puts "Error: #{e.error_type}".red
41
- (e.response.body["errors"] || [e.message]).each do |message|
42
- stderr.puts Wrapomatic.wrap(message, indents: 1)
43
- end
44
- if e.is_a?(Ey::Core::Response::Unauthorized)
45
- stderr.puts "Check the contents of ~/.ey-core vs https://cloud.engineyard.com/cli"
46
- end
47
- raise SystemExit.new(255)
48
- end
49
-
50
- end
51
- end
52
- end
53
- end
1
+ require 'belafonte'
2
+ require 'colorize'
3
+ require 'table_print'
4
+ require 'ey-core'
5
+ require 'ey-core/cli/helpers/core'
6
+
7
+ module Ey
8
+ module Core
9
+ module Cli
10
+ class Subcommand < Belafonte::App
11
+ include Ey::Core::Cli::Helpers::Core
12
+
13
+ def setup
14
+ $stdout = stdout
15
+ $stderr = stderr
16
+ $stdin = stdin
17
+ $kernel = kernel
18
+ end
19
+
20
+ def run_handle
21
+ super
22
+ rescue Ey::Core::Response::Error => e
23
+ if ENV["DEBUG"]
24
+ puts e.inspect
25
+ puts e.backtrace
26
+ end
27
+ handle_core_error(e)
28
+ rescue => e
29
+ if ENV["DEBUG"]
30
+ puts e.inspect
31
+ puts e.backtrace
32
+ end
33
+ stderr.puts "Error:".red
34
+ stderr.puts Wrapomatic.wrap(e.message, indents: 1)
35
+ raise SystemExit.new(255)
36
+ end
37
+
38
+ #TODO: a lot more errors that would could handle with nice messages, eventually this should probably be it's own class
39
+ def handle_core_error(e)
40
+ stderr.puts "Error: #{e.error_type}".red
41
+ (e.response.body["errors"] || [e.message]).each do |message|
42
+ stderr.puts Wrapomatic.wrap(message, indents: 1)
43
+ end
44
+ if e.is_a?(Ey::Core::Response::Unauthorized)
45
+ stderr.puts "Check the contents of ~/.ey-core vs https://cloud.engineyard.com/cli"
46
+ end
47
+ raise SystemExit.new(255)
48
+ end
49
+
50
+ end
51
+ end
52
+ end
53
+ end
@@ -1,58 +1,58 @@
1
- require 'ey-core/cli/subcommand'
2
-
3
- module Ey
4
- module Core
5
- module Cli
6
- class TimeoutDeploy < Subcommand
7
- title "timeout-deploy"
8
- summary "Fail a stuck unfinished deployment"
9
- description <<-DESC
10
- NOTICE: Timing out a deploy does not stop currently running deploy
11
- processes.
12
-
13
- The latest running deployment will be marked as failed, allowing a
14
- new deployment to be run. It is possible to mark a potentially successful
15
- deployment as failed. Only run this when a deployment is known to be
16
- wrongly unfinished/stuck and when further deployments are blocked.
17
- DESC
18
-
19
- option :environment,
20
- short: "e",
21
- long: "environment",
22
- description: "Name or id of the environment to deploy to.",
23
- argument: "Environment"
24
-
25
- option :account,
26
- short: 'c',
27
- long: 'account',
28
- description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
29
- argument: 'Account name or id'
30
-
31
- option :app,
32
- short: "a",
33
- long: "app",
34
- description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
35
- argument: "app"
36
-
37
- option :message,
38
- short: "m",
39
- long: "message",
40
- description: "Custom message for why the deploy is timed out",
41
- argument: "message"
42
-
43
- def handle
44
- operator, environment = core_operator_and_environment_for(self.options)
45
- app = core_application_for(environment, options)
46
- deployment = core_client.
47
- deployments.
48
- first(environment_id: environment.id, application_id: app.id)
49
-
50
- puts "Timing out the most recent deployment (deploy started at: #{deployment.started_at})".green
51
-
52
- deployment.timeout(option(:message))
53
- ap deployment
54
- end
55
- end
56
- end
57
- end
58
- end
1
+ require 'ey-core/cli/subcommand'
2
+
3
+ module Ey
4
+ module Core
5
+ module Cli
6
+ class TimeoutDeploy < Subcommand
7
+ title "timeout-deploy"
8
+ summary "Fail a stuck unfinished deployment"
9
+ description <<-DESC
10
+ NOTICE: Timing out a deploy does not stop currently running deploy
11
+ processes.
12
+
13
+ The latest running deployment will be marked as failed, allowing a
14
+ new deployment to be run. It is possible to mark a potentially successful
15
+ deployment as failed. Only run this when a deployment is known to be
16
+ wrongly unfinished/stuck and when further deployments are blocked.
17
+ DESC
18
+
19
+ option :environment,
20
+ short: "e",
21
+ long: "environment",
22
+ description: "Name or id of the environment to deploy to.",
23
+ argument: "Environment"
24
+
25
+ option :account,
26
+ short: 'c',
27
+ long: 'account',
28
+ description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
29
+ argument: 'Account name or id'
30
+
31
+ option :app,
32
+ short: "a",
33
+ long: "app",
34
+ description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
35
+ argument: "app"
36
+
37
+ option :message,
38
+ short: "m",
39
+ long: "message",
40
+ description: "Custom message for why the deploy is timed out",
41
+ argument: "message"
42
+
43
+ def handle
44
+ operator, environment = core_operator_and_environment_for(self.options)
45
+ app = core_application_for(environment, options)
46
+ deployment = core_client.
47
+ deployments.
48
+ first(environment_id: environment.id, application_id: app.id)
49
+
50
+ puts "Timing out the most recent deployment (deploy started at: #{deployment.started_at})".green
51
+
52
+ deployment.timeout(option(:message))
53
+ ap deployment
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end