opsicle 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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