opsicle 0.0.3 → 0.0.4

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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Y2VhNTY1NzFlMTEwZjllOGE1Y2JmY2JlYWM4ODIyMzFlZDA3MzBmMA==
5
+ data.tar.gz: !binary |-
6
+ YjNjZGFmZmRlZmYyYzgxMTIzYTA2OWM1NzI0YmZjY2ZlYWM4NjQ5OA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NDc0OTUxMTNlYWUzMDhiZDRlZTY3ODYzOWNiODliMmU5MGRlNjU1NGNkZDYz
10
+ MjI2Yzk3ODVjMmFjMGZiMzFlMjU2MWNkNGFhN2ZiODcxNzcyOTFmZjA2OWZi
11
+ MTA2ZmRjOWQ2ODhjYjdiYWZkNjEzY2YyMjc1OTlhMDlkZWI3MTM=
12
+ data.tar.gz: !binary |-
13
+ ZmI2ZmYxN2ViYmEyYmFjNTEwMjI1ZTEzNWUwYWZlODBhZWVmMzBmNzUzNWJm
14
+ NDYzYWU2MDg4MDAxYzBkNzNmYWQ2YTU4MjE3MjgwMTViNThhZmUyMjZjMWE4
15
+ MDE4MGEyNzdjN2NhZWQxZTZiYzNjZDkxNTQ2YzhkY2IyNThmMjY=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opsicle (0.0.3)
4
+ opsicle (0.0.4)
5
5
  aws-sdk (~> 1.30)
6
6
  commander
7
7
  terminal-table
data/bin/opsicle CHANGED
@@ -7,6 +7,8 @@ require 'opsicle'
7
7
  program :name, 'opsicle'
8
8
  program :version, Opsicle::VERSION
9
9
  program :description, 'Opsworks Command Line Utility Belt'
10
+ program :help, 'Documentation', 'For documentation and help in setting up your configuration files, '\
11
+ 'see Opsicle\'s GitHub repo: https://github.com/sportngin/opsicle'
10
12
  default_command :help
11
13
 
12
14
  command :deploy do |c|
@@ -2,6 +2,10 @@ require 'yaml'
2
2
 
3
3
  module Opsicle
4
4
  class Config
5
+ FOG_CONFIG_PATH = '~/.fog'
6
+ OPSICLE_CONFIG_PATH = './.opsicle'
7
+
8
+
5
9
  attr_reader :environment
6
10
 
7
11
  def initialize(environment)
@@ -10,12 +14,12 @@ module Opsicle
10
14
 
11
15
  def aws_config
12
16
  return @aws_config if @aws_config
13
- fog_confg = load_config(File.expand_path('~/.fog'))
17
+ fog_confg = load_config(File.expand_path(FOG_CONFIG_PATH))
14
18
  @aws_config = { access_key_id: fog_confg[:aws_access_key_id], secret_access_key: fog_confg[:aws_secret_access_key] }
15
19
  end
16
20
 
17
21
  def opsworks_config
18
- @opsworks_config ||= load_config('./.opsicle')
22
+ @opsworks_config ||= load_config(OPSICLE_CONFIG_PATH)
19
23
  end
20
24
 
21
25
  def configure_aws!
@@ -23,6 +27,7 @@ module Opsicle
23
27
  end
24
28
 
25
29
  def load_config(file)
30
+ raise MissingConfig, "Missing configuration file: #{file} Run 'opsicle help'" unless File.exist?(file)
26
31
  symbolize_keys(YAML.load_file(file))[environment] rescue {}
27
32
  end
28
33
 
@@ -42,5 +47,8 @@ module Opsicle
42
47
  result
43
48
  }
44
49
  end
50
+
51
+ MissingConfig = Class.new(StandardError)
52
+
45
53
  end
46
54
  end
@@ -1,3 +1,3 @@
1
1
  module Opsicle
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -3,35 +3,58 @@ require "opsicle/config"
3
3
  module Opsicle
4
4
  describe Config do
5
5
  subject { Config.new('derp') }
6
- before do
7
- YAML.stub(:load_file).with(File.expand_path '~/.fog').and_return({'derp' => { 'aws_access_key_id' => 'key', 'aws_secret_access_key' => 'secret'}})
8
- YAML.stub(:load_file).with('./.opsicle').and_return({'derp' => { 'app_id' => 'app', 'stack_id' => 'stack'}})
9
- end
10
-
11
- context "#aws_config" do
12
- it "should contain access_key_id" do
13
- subject.aws_config.should have_key(:access_key_id)
6
+ context "with a valid config" do
7
+ before do
8
+ File.stub(:exist?).with(File.expand_path '~/.fog').and_return(true)
9
+ File.stub(:exist?).with('./.opsicle').and_return(true)
10
+ YAML.stub(:load_file).with(File.expand_path '~/.fog').and_return({'derp' => { 'aws_access_key_id' => 'key', 'aws_secret_access_key' => 'secret'}})
11
+ YAML.stub(:load_file).with('./.opsicle').and_return({'derp' => { 'app_id' => 'app', 'stack_id' => 'stack'}})
14
12
  end
15
13
 
16
- it "should contain secret_access_key" do
17
- subject.aws_config.should have_key(:secret_access_key)
14
+ context "#aws_config" do
15
+ it "should contain access_key_id" do
16
+ subject.aws_config.should have_key(:access_key_id)
17
+ end
18
+
19
+ it "should contain secret_access_key" do
20
+ subject.aws_config.should have_key(:secret_access_key)
21
+ end
18
22
  end
19
- end
20
23
 
21
- context "#opsworks_config" do
22
- it "should contain stack_id" do
23
- subject.opsworks_config.should have_key(:stack_id)
24
+ context "#opsworks_config" do
25
+ it "should contain stack_id" do
26
+ subject.opsworks_config.should have_key(:stack_id)
27
+ end
28
+
29
+ it "should contain app_id" do
30
+ subject.opsworks_config.should have_key(:app_id)
31
+ end
24
32
  end
25
33
 
26
- it "should contain app_id" do
27
- subject.opsworks_config.should have_key(:app_id)
34
+ context "#configure_aws!" do
35
+ it "should load the config into the AWS module" do
36
+ AWS.should_receive(:config).with(hash_including(access_key_id: 'key', secret_access_key: 'secret'))
37
+ subject.configure_aws!
38
+ end
28
39
  end
29
40
  end
30
41
 
31
- context "#configure_aws!" do
32
- it "should load the config into the AWS module" do
33
- AWS.should_receive(:config).with(hash_including(access_key_id: 'key', secret_access_key: 'secret'))
34
- subject.configure_aws!
42
+ context "missing configs" do
43
+ before do
44
+ File.stub(:exist?).with(File.expand_path '~/.fog').and_return(false)
45
+ File.stub(:exist?).with('./.opsicle').and_return(false)
46
+ end
47
+
48
+ context "#aws_config" do
49
+ it "should gracefully raise an exception if no .fog file was found" do
50
+ expect {subject.aws_config}.to raise_exception(Config::MissingConfig)
51
+ end
52
+ end
53
+
54
+ context "#opsworks_config" do
55
+ it "should gracefully raise an exception if no .fog file was found" do
56
+ expect {subject.opsworks_config}.to raise_exception(Config::MissingConfig)
57
+ end
35
58
  end
36
59
  end
37
60
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opsicle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andy Fleener
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-28 00:00:00.000000000 Z
11
+ date: 2014-01-31 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: aws-sdk
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: commander
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: terminal-table
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bundler
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ! '>='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ! '>='
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ! '>='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ! '>='
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: guard
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ! '>='
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ! '>='
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: guard-rspec
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ! '>='
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ! '>='
140
123
  - !ruby/object:Gem::Version
@@ -173,33 +156,26 @@ files:
173
156
  homepage: https://github.com/sportngin/opsicle
174
157
  licenses:
175
158
  - MIT
159
+ metadata: {}
176
160
  post_install_message:
177
161
  rdoc_options: []
178
162
  require_paths:
179
163
  - lib
180
164
  required_ruby_version: !ruby/object:Gem::Requirement
181
- none: false
182
165
  requirements:
183
166
  - - ! '>='
184
167
  - !ruby/object:Gem::Version
185
168
  version: '0'
186
- segments:
187
- - 0
188
- hash: 3302047862820625
189
169
  required_rubygems_version: !ruby/object:Gem::Requirement
190
- none: false
191
170
  requirements:
192
171
  - - ! '>='
193
172
  - !ruby/object:Gem::Version
194
173
  version: '0'
195
- segments:
196
- - 0
197
- hash: 3302047862820625
198
174
  requirements: []
199
175
  rubyforge_project:
200
- rubygems_version: 1.8.25
176
+ rubygems_version: 2.2.1
201
177
  signing_key:
202
- specification_version: 3
178
+ specification_version: 4
203
179
  summary: An opsworks specific abstraction on top of the aws sdk
204
180
  test_files:
205
181
  - spec/opsicle/client_spec.rb