ey-core 3.4.5 → 3.5.0

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