epas 0.3.0 → 0.3.1

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.
data/Gemfile CHANGED
@@ -16,8 +16,10 @@ group :development do
16
16
  gem "rcov", ">= 0"
17
17
  gem "reek", "~> 1.2.8"
18
18
  gem "roodi", "~> 2.1.0"
19
+ gem "ruby-debug"
19
20
  end
20
21
 
21
22
  group :test do
22
23
  gem "mocha"
24
+ gem "ruby-debug"
23
25
  end
data/Gemfile.lock CHANGED
@@ -6,6 +6,7 @@ GEM
6
6
  http_connection
7
7
  uuidtools
8
8
  xml-simple
9
+ columnize (0.3.2)
9
10
  git (1.2.5)
10
11
  http_connection (1.4.1)
11
12
  i18n (0.6.0)
@@ -13,6 +14,7 @@ GEM
13
14
  bundler (~> 1.0)
14
15
  git (>= 1.2.5)
15
16
  rake
17
+ linecache (0.43)
16
18
  mocha (0.9.12)
17
19
  rake (0.9.2)
18
20
  rcov (0.9.9)
@@ -22,6 +24,11 @@ GEM
22
24
  sexp_processor (~> 3.0)
23
25
  roodi (2.1.0)
24
26
  ruby_parser
27
+ ruby-debug (0.10.4)
28
+ columnize (>= 0.1)
29
+ ruby-debug-base (~> 0.10.4.0)
30
+ ruby-debug-base (0.10.4)
31
+ linecache (>= 0.3)
25
32
  ruby2ruby (1.2.5)
26
33
  ruby_parser (~> 2.0)
27
34
  sexp_processor (~> 3.0)
@@ -44,3 +51,4 @@ DEPENDENCIES
44
51
  rcov
45
52
  reek (~> 1.2.8)
46
53
  roodi (~> 2.1.0)
54
+ ruby-debug
data/README.rdoc CHANGED
@@ -31,12 +31,12 @@ Example contents of "~/.awssecret":
31
31
  You can also pass another file as an argument:
32
32
 
33
33
  # Example cron job 1.
34
- * * * * * /bin/bash -l -c '/usr/local/bin/ec2-puppet-autosigner /path/to/aws_credentials'
34
+ * * * * * /bin/bash -l -c '`which ec2-puppet-autosigner` /path/to/aws_credentials'
35
35
 
36
36
  By defaults it checks all avaliable regions, but you can also pass the regions you want to check as parameters:
37
37
 
38
38
  # Example cron job 2.
39
- * * * * * /bin/bash -l -c '/usr/local/bin/ec2-puppet-autosigner /path/to/aws_credentials eu-west-1 us-east-1'
39
+ * * * * * /bin/bash -l -c '`which ec2-puppet-autosigner` /path/to/aws_credentials eu-west-1 us-east-1'
40
40
 
41
41
  == Contributing to epas
42
42
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
data/epas.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{epas}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ramon Salvad\303\263"]
12
- s.date = %q{2011-06-07}
12
+ s.date = %q{2011-06-08}
13
13
  s.default_executable = %q{ec2-puppet-autosigner}
14
14
  s.description = %q{To be run in a cron script or a daemon. Autosigns ec2 instances based on hostname and instance_id, it expects instance_id as part of the ec2 instance hostname.}
15
15
  s.email = %q{rsalvado@gnuine.com}
@@ -50,6 +50,7 @@ Gem::Specification.new do |s|
50
50
  s.add_development_dependency(%q<rcov>, [">= 0"])
51
51
  s.add_development_dependency(%q<reek>, ["~> 1.2.8"])
52
52
  s.add_development_dependency(%q<roodi>, ["~> 2.1.0"])
53
+ s.add_development_dependency(%q<ruby-debug>, [">= 0"])
53
54
  else
54
55
  s.add_dependency(%q<aws>, [">= 0"])
55
56
  s.add_dependency(%q<i18n>, [">= 0"])
@@ -59,6 +60,7 @@ Gem::Specification.new do |s|
59
60
  s.add_dependency(%q<rcov>, [">= 0"])
60
61
  s.add_dependency(%q<reek>, ["~> 1.2.8"])
61
62
  s.add_dependency(%q<roodi>, ["~> 2.1.0"])
63
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
62
64
  end
63
65
  else
64
66
  s.add_dependency(%q<aws>, [">= 0"])
@@ -69,6 +71,7 @@ Gem::Specification.new do |s|
69
71
  s.add_dependency(%q<rcov>, [">= 0"])
70
72
  s.add_dependency(%q<reek>, ["~> 1.2.8"])
71
73
  s.add_dependency(%q<roodi>, ["~> 2.1.0"])
74
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
72
75
  end
73
76
  end
74
77
 
data/lib/epas.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'syslog'
1
2
  require 'active_support/core_ext/object/blank'
2
3
  require 'active_support/core_ext/kernel/reporting'
3
4
  require 'aws'
@@ -50,10 +51,17 @@ module Epas
50
51
  end
51
52
 
52
53
  def sign_instance(hostname)
53
- `puppet cert --sign #{hostname}`
54
+ # TODO: Run with sudo if not root
55
+ result = system("puppet cert --sign #{hostname}")
56
+ if result
57
+ log "Server with hostname: #{hostname} signed succesfully."
58
+ else
59
+ log "Failed to sign server with hostname: #{hostname}"
60
+ end
54
61
  end
55
62
 
56
63
  def get_awaiting_sign_instances
64
+ # TODO: Run with sudo if not root
57
65
  `puppetca --list`.split("\n")
58
66
  end
59
67
 
@@ -74,6 +82,11 @@ module Epas
74
82
  system("which #{command} > /dev/null 2>&1")
75
83
  end
76
84
 
85
+ def log(message)
86
+ # $0 is the current script name
87
+ Syslog.open($0, Syslog::LOG_PID | Syslog::LOG_CONS) { |s| s.warning message }
88
+ end
89
+
77
90
  end
78
91
 
79
92
  end
@@ -1,6 +1,7 @@
1
1
  require 'helper'
2
2
  require 'tempfile'
3
3
  require 'aws'
4
+ require 'syslog'
4
5
 
5
6
  class TestAutoSigner < Test::Unit::TestCase
6
7
 
@@ -45,19 +46,29 @@ class TestAutoSigner < Test::Unit::TestCase
45
46
  end
46
47
 
47
48
  def test_should_sign_our_ec2_instances_certificate_requests
49
+ with_ec2_testcase
50
+ end
51
+
52
+ def test_should_log_when_signing_instances
53
+ with_ec2_testcase do
54
+ Syslog.expects(:open).twice
55
+ end
56
+ end
48
57
 
58
+ private
59
+
60
+ def with_ec2_testcase
49
61
  @instances_by_region.each do |region, instances|
50
- ::Aws::Ec2.expects(:new).with(@aws_id, @aws_key, :region => region).returns(stub(:describe_instances => instances))
62
+ Aws::Ec2.expects(:new).with(@aws_id, @aws_key, :region => region).returns(stub(:describe_instances => instances))
51
63
  end
52
64
 
53
65
  Epas::AutoSigner.any_instance.expects(:`).with('puppetca --list').returns(@awaiting_sign_instances)
54
66
 
55
- Epas::AutoSigner.any_instance.expects(:`).with("puppet cert --sign appserver.i-qwerty.example.com").once
56
- Epas::AutoSigner.any_instance.expects(:`).with("puppet cert --sign dbserver.i-uiop.com").once
57
-
67
+ Epas::AutoSigner.any_instance.expects(:system).with("puppet cert --sign appserver.i-qwerty.example.com").once
68
+ Epas::AutoSigner.any_instance.expects(:system).with("puppet cert --sign dbserver.i-uiop.com").once
69
+ yield if block_given?
58
70
  autosigner = Epas::AutoSigner.new(@credentials_file.path, @regions)
59
71
  autosigner.sign_ec2_instance_requests!
60
-
61
72
  end
62
73
 
63
74
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epas
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 1
10
+ version: 0.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Ramon Salvad\xC3\xB3"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-07 00:00:00 +02:00
18
+ date: 2011-06-08 00:00:00 +02:00
19
19
  default_executable: ec2-puppet-autosigner
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -138,6 +138,20 @@ dependencies:
138
138
  name: roodi
139
139
  version_requirements: *id008
140
140
  prerelease: false
141
+ - !ruby/object:Gem::Dependency
142
+ type: :development
143
+ requirement: &id009 !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ hash: 3
149
+ segments:
150
+ - 0
151
+ version: "0"
152
+ name: ruby-debug
153
+ version_requirements: *id009
154
+ prerelease: false
141
155
  description: To be run in a cron script or a daemon. Autosigns ec2 instances based on hostname and instance_id, it expects instance_id as part of the ec2 instance hostname.
142
156
  email: rsalvado@gnuine.com
143
157
  executables: