ey-core 3.4.5 → 3.6.0.autoscaling1

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