ebfly 0.1.6 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95f5123c5d5dd18e78ce2e4a7490b02510d3dc1d
4
- data.tar.gz: 27eca498f882ddd798e63555360ad61e605c355a
3
+ metadata.gz: 308c5befeb7c40b19422b594d57c44282fb076ac
4
+ data.tar.gz: 8cb39140cfe9cc2a1cb79e3db6066a680ebddada
5
5
  SHA512:
6
- metadata.gz: 0e78c2311139f6618a064de01343452a246e64535fcb66d8c465c5b890886486a95e7e29b2dfea93e7e32c9880faf8e7ff5383b6db3f50a2313848519f4008d2
7
- data.tar.gz: ca87ff19b92097c854826e558ffbc281079e55ffde40ac932e28a3a2c73964ed1d564a0ede2090aa47e978ee54f3d2624fe2b2e313ff9303b9251f121e9511fb
6
+ metadata.gz: 771818d3a267d3647d27a3b245a20834ef2f0c30324de85e180e5ad10e0f38e5f865f08c795c75c05ded0c156a6e5976ec44ff3941cc5c298340d7198872eff6
7
+ data.tar.gz: 4c98806678210cd3a3b922356bec0218ee49f578279d883592a066ef991bea3998cb23028853fc115ef90e78f01d479602304ddd61ae1526280ddf7aea49b935
data/docs/config.md CHANGED
@@ -6,6 +6,7 @@ config vars means `aws:elasticbeanstalk:application:environment` namespace value
6
6
  ## Subcommands
7
7
 
8
8
  - [add](#add)
9
+ - [copy](#copy)
9
10
  - [rm](#rm)
10
11
  - [show](#show)
11
12
 
@@ -40,6 +41,32 @@ ebfly config add -a app -e env -c RACK_ENV=production
40
41
  ebfly config add -a app -e env -c ENV1=val1 ENV2=val2
41
42
  ```
42
43
 
44
+ <a name="copy"></a>
45
+ ### copy
46
+
47
+ Copy all config vars to the specified environment from another environment.
48
+ If destination environment has same name config vars, it is orverwritten.
49
+
50
+ ```
51
+ ebfly config copy -a [app] -e [env] -s [source-env]
52
+ ```
53
+
54
+ #### Options
55
+
56
+ | Name | Description | Required |
57
+ | ---- | ------------------------------------------------------------------------------------------ | -------- |
58
+ | -a | The name of the application to copy config vars. | Yes |
59
+ | -e | The name of the destination environment to copy config vars. | Yes |
60
+ | -s | The name of the source environment config vars. | Yes |
61
+
62
+ #### Examples
63
+
64
+ - Copy config from `source-env` to `dest-env`.
65
+
66
+ ```
67
+ ebfly config copy -a app -e dest-env -s source-env
68
+ ```
69
+
43
70
  <a name="rm"></a>
44
71
  ### rm
45
72
 
data/docs/env.md CHANGED
@@ -53,17 +53,17 @@ ebfly env create envname -a app -s python27 -t worker -o -o sqsd-MimeType="text/
53
53
  | docker0.9 (deprecated) | 64bit Amazon Linux 2014.03 v1.0.5 running Docker 0.9.0 |
54
54
  | docker09 (deprecated) | 64bit Amazon Linux 2014.03 v1.0.5 running Docker 0.9.0 |
55
55
  | docker10 (deprecated) | 64bit Amazon Linux 2014.03 v1.0.9 running Docker 1.0.0 |
56
- | docker13 | 64bit Amazon Linux 2014.09 v1.0.11 running Docker 1.3.3 |
57
- | nodejs | 64bit Amazon Linux 2014.09 v1.0.9 running Node.js |
58
- | php54 | 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.4 |
59
- | php55 | 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5 |
60
- | python26 | 64bit Amazon Linux 2014.09 v1.0.9 running Python |
61
- | python27 | 64bit Amazon Linux 2014.09 v1.0.9 running Python 2.7 |
62
- | ruby19 | 64bit Amazon Linux 2014.09 v1.0.9 running Ruby 1.9.3 |
63
- | ruby20 | 64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.0 (Passenger Standalone) |
64
- | ruby20-puma | 64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.0 (Puma) |
65
- | ruby21 | 64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.1 (Passenger Standalone) |
66
- | ruby21-puma | 64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.1 (Puma) |
56
+ | docker13 | 64bit Amazon Linux 2014.09 v1.2.0 running Docker 1.3.3 |
57
+ | nodejs | 64bit Amazon Linux 2014.09 v1.2.0 running Node.js |
58
+ | php54 | 64bit Amazon Linux 2014.09 v1.2.0 running PHP 5.4 |
59
+ | php55 | 64bit Amazon Linux 2014.09 v1.2.0 running PHP 5.5 |
60
+ | python26 | 64bit Amazon Linux 2014.09 v1.2.0 running Python |
61
+ | python27 | 64bit Amazon Linux 2014.09 v1.2.0 running Python 2.7 |
62
+ | ruby19 | 64bit Amazon Linux 2014.09 v1.2.0 running Ruby 1.9.3 |
63
+ | ruby20 | 64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.0 (Passenger Standalone) |
64
+ | ruby20-puma | 64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.0 (Puma) |
65
+ | ruby21 | 64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.1 (Passenger Standalone) |
66
+ | ruby21-puma | 64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.1 (Puma) |
67
67
 
68
68
  You can specify full defined name, see in http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html
69
69
 
@@ -9,14 +9,8 @@ module Ebfly
9
9
  app = options[:a]
10
10
  env = options[:e]
11
11
 
12
- opts = {
13
- application_name: app,
14
- environment_name: env_name(app, env)
15
- }
16
-
17
- ret = run { eb.describe_configuration_settings(opts) }
18
- debug(ret)
19
- show_env_conf(app, env, ret)
12
+ configs = get_env_conf(app, env)
13
+ show_env_conf(app, env, configs)
20
14
  end
21
15
 
22
16
  desc "add", "Add config vars to the specified environment"
@@ -37,14 +31,38 @@ module Ebfly
37
31
  debug(ret)
38
32
  end
39
33
 
34
+ desc "copy", "Copy all config vars to the specified environment from another environment"
35
+ option :a, :required => true, :banner => "<app>", :desc => "Application name"
36
+ option :e, :required => true, :banner => "<dest-env>", :desc => "Destination environment name"
37
+ option :s, :required => true, :banner => "<src-env>", :desc => "Source environment name"
38
+ def copy
39
+ app = options[:a]
40
+ env = options[:e]
41
+ src = options[:s]
42
+
43
+ puts ""
44
+ puts "=== Before ==="
45
+ config_vars = get_env_conf(app, env)
46
+ show_env_conf(app, env, config_vars)
47
+
48
+ src_config_vars = get_env_conf(app, src)
49
+ add_environment_config(app, env, src_config_vars)
50
+
51
+ puts ""
52
+ puts "=== After ==="
53
+ config_vars = get_env_conf(app, env)
54
+ show_env_conf(app, env, config_vars)
55
+ end
56
+
40
57
  private
41
58
 
42
- def add_environment_config(app, env, configs)
59
+ def add_environment_config(app, env, config_vars)
60
+ puts ""
43
61
  puts "Add config vars: #{env_name(app, env)}"
44
62
 
45
63
  settings = []
46
- configs.each do |config|
47
- k, v = config.split("=")
64
+ config_vars.each do |config_var|
65
+ k, v = config_var.split("=")
48
66
  next if v.nil?
49
67
  conf = {
50
68
  namespace: "aws:elasticbeanstalk:application:environment",
@@ -62,6 +80,7 @@ module Ebfly
62
80
  end
63
81
 
64
82
  def remove_environment_config(app, env, keys)
83
+ puts ""
65
84
  puts "Remove config vars: #{env_name(app, env)}"
66
85
 
67
86
  settings = []
@@ -80,12 +99,17 @@ module Ebfly
80
99
  run { eb.update_environment(opts) }
81
100
  end
82
101
 
83
- def show_env_conf(app, env, res)
84
- config_vars = []
102
+ def get_env_conf(app, env)
103
+ opts = {
104
+ application_name: app,
105
+ environment_name: env_name(app, env)
106
+ }
85
107
 
86
- puts ""
87
- puts "=== #{env_name(app, env)} Config Vars ==="
88
- settings = res[:configuration_settings]
108
+ ret = run { eb.describe_configuration_settings(opts) }
109
+ debug(ret)
110
+
111
+ config_vars = []
112
+ settings = ret[:configuration_settings]
89
113
  settings.each do |setting|
90
114
  opts = setting[:option_settings]
91
115
  opts.each do |opt|
@@ -94,7 +118,13 @@ module Ebfly
94
118
  end
95
119
  end
96
120
 
97
- config_vars.sort.each do |config_var|
121
+ config_vars.sort!
122
+ end
123
+
124
+ def show_env_conf(app, env, config_vars)
125
+ puts ""
126
+ puts "=== #{env_name(app, env)} Config Vars ==="
127
+ config_vars.each do |config_var|
98
128
  puts config_var
99
129
  end
100
130
  end
data/lib/ebfly/ebfly.rb CHANGED
@@ -6,20 +6,20 @@ require "open3"
6
6
  module Ebfly
7
7
  module Command
8
8
  PREDEFINED_SOLUTION_STACKS = {
9
- "php54" => "64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.4",
10
- "php55" => "64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5",
11
- "nodejs" => "64bit Amazon Linux 2014.09 v1.0.9 running Node.js",
12
- "python26" => "64bit Amazon Linux 2014.09 v1.0.9 running Python",
13
- "python27" => "64bit Amazon Linux 2014.09 v1.0.9 running Python 2.7",
14
- "ruby19" => "64bit Amazon Linux 2014.09 v1.0.9 running Ruby 1.9.3",
15
- "ruby20" => "64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.0 (Passenger Standalone)",
16
- "ruby20-puma" => "64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.0 (Puma)",
17
- "ruby21" => "64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.1 (Passenger Standalone)",
18
- "ruby21-puma" => "64bit Amazon Linux 2014.09 v1.0.9 running Ruby 2.1 (Puma)",
19
- "docker0.9" => "64bit Amazon Linux 2014.03 v1.0.5 running Docker 0.9.0",
20
- "docker09" => "64bit Amazon Linux 2014.03 v1.0.5 running Docker 0.9.0",
21
- "docker10" => "64bit Amazon Linux 2014.03 v1.0.9 running Docker 1.0.0",
22
- "docker13" => "64bit Amazon Linux 2014.09 v1.0.11 running Docker 1.3.3",
9
+ "docker0.9" => "64bit Amazon Linux 2014.03 v1.0.5 running Docker 0.9.0",
10
+ "docker09" => "64bit Amazon Linux 2014.03 v1.0.5 running Docker 0.9.0",
11
+ "docker10" => "64bit Amazon Linux 2014.03 v1.0.9 running Docker 1.0.0",
12
+ "docker13" => "64bit Amazon Linux 2014.09 v1.2.0 running Docker 1.3.3",
13
+ "nodejs" => "64bit Amazon Linux 2014.09 v1.2.0 running Node.js",
14
+ "php54" => "64bit Amazon Linux 2014.09 v1.2.0 running PHP 5.4",
15
+ "php55" => "64bit Amazon Linux 2014.09 v1.2.0 running PHP 5.5",
16
+ "python26" => "64bit Amazon Linux 2014.09 v1.2.0 running Python",
17
+ "python27" => "64bit Amazon Linux 2014.09 v1.2.0 running Python 2.7",
18
+ "ruby19" => "64bit Amazon Linux 2014.09 v1.2.0 running Ruby 1.9.3",
19
+ "ruby20" => "64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.0 (Passenger Standalone)",
20
+ "ruby20-puma" => "64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.0 (Puma)",
21
+ "ruby21" => "64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.1 (Passenger Standalone)",
22
+ "ruby21-puma" => "64bit Amazon Linux 2014.09 v1.2.0 running Ruby 2.1 (Puma)",
23
23
  }
24
24
 
25
25
  SUPPORTED_SOLUTION_STACKS = ['Docker', 'Node.js', 'PHP', 'Python', 'Ruby']
data/lib/ebfly/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ebfly
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
data/test/open_all.sh ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+
3
+ for ss in docker09 docker10 docker13 nodejs php54 php55 python26 python27 ruby19 ruby20 ruby20-puma ruby21 ruby21-puma
4
+ do
5
+ echo "Open $ss"
6
+ bundle exec ./bin/ebfly env open $ss -a ebfly-test
7
+ done
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebfly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuyuki Honda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-12 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-v1
@@ -66,6 +66,7 @@ files:
66
66
  - lib/ebfly/version.rb
67
67
  - test/create_all.sh
68
68
  - test/delete_all.sh
69
+ - test/open_all.sh
69
70
  homepage: https://github.com/hakobera/ebfly
70
71
  licenses:
71
72
  - Apache License, Version 2.0
@@ -93,3 +94,4 @@ summary: Simple command line interface for AWS ElasticBeanstalk
93
94
  test_files:
94
95
  - test/create_all.sh
95
96
  - test/delete_all.sh
97
+ - test/open_all.sh