puppi 0.0.1alpha → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +0 -2
- data/Gemfile +4 -0
- data/lib/puppi.rb +7 -0
- data/lib/puppi/action.rb +10 -5
- data/lib/puppi/generate_sample_data.rb +2 -1
- data/lib/puppi/notification.rb +5 -2
- data/lib/puppi/notifications/mail.rb +1 -1
- data/lib/puppi/notifications/stdout.rb +1 -1
- data/lib/puppi/version.rb +1 -1
- data/puppi.gemspec +5 -0
- data/spec/puppi/action_spec.rb +7 -7
- data/spec/puppi/generate_sample_data_spec.rb +2 -1
- data/spec/puppi/loader_spec.rb +1 -1
- metadata +112 -32
- data/etc/data/standard_openssh.yaml +0 -59
- data/etc/helpers/standard.yaml +0 -13
- data/etc/t.rb +0 -9
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/lib/puppi.rb
CHANGED
@@ -11,11 +11,14 @@ module Puppi
|
|
11
11
|
require 'puppi/notifications/stdout'
|
12
12
|
require 'puppi/version'
|
13
13
|
require 'yaml'
|
14
|
+
require 'pry'
|
14
15
|
|
15
16
|
if ENV["RUN_ENV"] == "TEST"
|
16
17
|
@@puppidir = File.dirname(File.dirname(__FILE__))+"/tmp/config"
|
18
|
+
@@stdout_print = false
|
17
19
|
else
|
18
20
|
@@puppidir = "/etc/puppi"
|
21
|
+
@@stdout_print = true
|
19
22
|
end
|
20
23
|
|
21
24
|
class << self
|
@@ -23,6 +26,10 @@ module Puppi
|
|
23
26
|
@@puppidir
|
24
27
|
end
|
25
28
|
|
29
|
+
def stdout_print
|
30
|
+
@@stdout_print
|
31
|
+
end
|
32
|
+
|
26
33
|
def initial_checks
|
27
34
|
directories = %w[ data helpers notifications ]
|
28
35
|
directories.each do |directory|
|
data/lib/puppi/action.rb
CHANGED
@@ -35,16 +35,21 @@ module Puppi
|
|
35
35
|
private
|
36
36
|
def run_command command, module_helper
|
37
37
|
@running_command = prepare_command command.command
|
38
|
-
output = IO.popen(@running_command
|
38
|
+
output = IO.popen(@running_command) unless @running_command.nil?
|
39
39
|
output.nil? ? nil : output.read
|
40
40
|
end
|
41
41
|
|
42
42
|
def prepare_command command
|
43
43
|
begin
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
@loaded_datafile.variables.each do |index, value|
|
45
|
+
command.gsub!("%{"+index.to_s+"}", value.to_s)
|
46
|
+
end
|
47
|
+
raise StandardError unless command.match(/%\{[a-z]*\}/).nil?
|
48
|
+
command
|
49
|
+
rescue
|
50
|
+
puts "Malformed Datafile"
|
51
|
+
exit 1
|
52
|
+
end
|
48
53
|
end
|
49
54
|
end
|
50
55
|
end
|
data/lib/puppi/notification.rb
CHANGED
@@ -33,8 +33,11 @@ module Puppi
|
|
33
33
|
|
34
34
|
private
|
35
35
|
def valid_method? (method)
|
36
|
-
@valid_methods =
|
37
|
-
|
36
|
+
@valid_methods = Array.new
|
37
|
+
Puppi::Notifications.constants.each do |valid_method|
|
38
|
+
@valid_methods << valid_method.to_s
|
39
|
+
end
|
40
|
+
@valid_methods.include? method.capitalize
|
38
41
|
end
|
39
42
|
end
|
40
43
|
end
|
data/lib/puppi/version.rb
CHANGED
data/puppi.gemspec
CHANGED
@@ -27,4 +27,9 @@ EOF
|
|
27
27
|
# specify any dependencies here; for example:
|
28
28
|
# s.add_development_dependency "rspec"
|
29
29
|
# s.add_runtime_dependency "rest-client"
|
30
|
+
s.add_development_dependency "autotest"
|
31
|
+
s.add_development_dependency "rspec"
|
32
|
+
s.add_development_dependency "fakefs"
|
33
|
+
s.add_development_dependency "simplecov"
|
34
|
+
s.add_runtime_dependency "mail"
|
30
35
|
end
|
data/spec/puppi/action_spec.rb
CHANGED
@@ -44,13 +44,13 @@ describe "Puppi::Action" do
|
|
44
44
|
output.should include("+ openssh +\n")
|
45
45
|
end
|
46
46
|
|
47
|
+
subject { Puppi::Action.new({:action => 'check', :puppi_module => nil}).output }
|
47
48
|
it "should return all command output when running check command" do
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
output.should include("| 1.0 |\n")
|
49
|
+
should be_an(Array)
|
50
|
+
should have(4).items
|
51
|
+
should include("| hostname |\n")
|
52
|
+
should include("| 0.1 |\n")
|
53
|
+
should include("| openssh |\n")
|
54
|
+
should include("| 1.0 |\n")
|
55
55
|
end
|
56
56
|
end
|
@@ -37,7 +37,8 @@ version: 1.0'
|
|
37
37
|
it "should the standard datafile for hostname module" do
|
38
38
|
standard_helper = File.open(Puppi::puppidir+'/data/standard_hostname.yml', 'rb') { |file| file.read }
|
39
39
|
standard_helper.should eql '---
|
40
|
-
name: hostname
|
40
|
+
name: hostname
|
41
|
+
version: 0.1'
|
41
42
|
end
|
42
43
|
|
43
44
|
it "should generate the standard notification to user1@mail.com for mail method" do
|
data/spec/puppi/loader_spec.rb
CHANGED
@@ -48,7 +48,7 @@ describe "Puppi::Loader" do
|
|
48
48
|
it "should load all hostname standard data file" do
|
49
49
|
@p = @loader.load_datafile('standard_hostname')
|
50
50
|
@p.should be_a(Puppi::Files::Datafile)
|
51
|
-
@p.variables.should have(
|
51
|
+
@p.variables.should have(2).items
|
52
52
|
end
|
53
53
|
|
54
54
|
it "should raise an exception for a invalid data file" do
|
metadata
CHANGED
@@ -1,28 +1,105 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppi
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Celso Fernandes
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
|
18
|
+
date: 2012-08-19 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 3
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
prerelease: false
|
31
|
+
type: :development
|
32
|
+
name: autotest
|
33
|
+
requirement: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
hash: 3
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
prerelease: false
|
45
|
+
type: :development
|
46
|
+
name: rspec
|
47
|
+
requirement: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
hash: 3
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
version: "0"
|
58
|
+
prerelease: false
|
59
|
+
type: :development
|
60
|
+
name: fakefs
|
61
|
+
requirement: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
hash: 3
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
version: "0"
|
72
|
+
prerelease: false
|
73
|
+
type: :development
|
74
|
+
name: simplecov
|
75
|
+
requirement: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 3
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
prerelease: false
|
87
|
+
type: :runtime
|
88
|
+
name: mail
|
89
|
+
requirement: *id005
|
90
|
+
description: "Puppi is a Puppet module that lets sysadmins standardize, manage and automate the deployment of web applications \n\
|
91
|
+
and provides quick and standard commands to obtain informations about the system and what\xE2\x80\x99s is going on it.\n\n\
|
92
|
+
Its structure provides FULL flexibility on the actions required for virtually any kind of application deployment \n\
|
93
|
+
and information gathering.\n"
|
94
|
+
email:
|
20
95
|
- fernandes@zertico.com
|
21
|
-
executables:
|
96
|
+
executables:
|
22
97
|
- puppi
|
23
98
|
extensions: []
|
99
|
+
|
24
100
|
extra_rdoc_files: []
|
25
|
-
|
101
|
+
|
102
|
+
files:
|
26
103
|
- .autotest
|
27
104
|
- .gitignore
|
28
105
|
- .rvmrc
|
@@ -32,9 +109,6 @@ files:
|
|
32
109
|
- Rakefile
|
33
110
|
- autotest/discover.rb
|
34
111
|
- bin/puppi
|
35
|
-
- etc/data/standard_openssh.yaml
|
36
|
-
- etc/helpers/standard.yaml
|
37
|
-
- etc/t.rb
|
38
112
|
- lib/puppi.rb
|
39
113
|
- lib/puppi/action.rb
|
40
114
|
- lib/puppi/files/datafile.rb
|
@@ -61,32 +135,38 @@ files:
|
|
61
135
|
- spec/support/publicize_methods.rb
|
62
136
|
homepage: http://fernandes.github.com/puppi
|
63
137
|
licenses: []
|
138
|
+
|
64
139
|
post_install_message:
|
65
140
|
rdoc_options: []
|
66
|
-
|
141
|
+
|
142
|
+
require_paths:
|
67
143
|
- lib
|
68
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
145
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 3
|
150
|
+
segments:
|
75
151
|
- 0
|
76
|
-
|
77
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
version: "0"
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
154
|
none: false
|
79
|
-
requirements:
|
80
|
-
- -
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
hash: 3
|
159
|
+
segments:
|
160
|
+
- 0
|
161
|
+
version: "0"
|
83
162
|
requirements: []
|
163
|
+
|
84
164
|
rubyforge_project: puppi
|
85
165
|
rubygems_version: 1.8.24
|
86
166
|
signing_key:
|
87
167
|
specification_version: 3
|
88
168
|
summary: Puppet module to manage applications deployments and servers local management
|
89
|
-
test_files:
|
169
|
+
test_files:
|
90
170
|
- spec/core/rake_task.rb
|
91
171
|
- spec/puppi/action_spec.rb
|
92
172
|
- spec/puppi/files/datafile_spec.rb
|
@@ -1,59 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: openssh
|
3
|
-
config_file_mode: "0644"
|
4
|
-
puppi_helper: standard
|
5
|
-
monitor_tool: puppi nagios munin
|
6
|
-
manage_file: present
|
7
|
-
manage_monitor: true
|
8
|
-
source_dir_purge: false
|
9
|
-
bool_debug: false
|
10
|
-
title: openssh
|
11
|
-
data_dir: /etc/ssh
|
12
|
-
config_file_init: /etc/sysconfig/sshd
|
13
|
-
firewall: false
|
14
|
-
source_dir: ""
|
15
|
-
caller_module_name: openssh
|
16
|
-
port: "22"
|
17
|
-
log_file: /var/log/messages
|
18
|
-
service: sshd
|
19
|
-
firewall_tool: ""
|
20
|
-
bool_firewall: false
|
21
|
-
protocol: tcp
|
22
|
-
config_file_owner: root
|
23
|
-
process: sshd
|
24
|
-
puppi: "true"
|
25
|
-
monitor_target: 0.0.0.0
|
26
|
-
manage_file_replace: true
|
27
|
-
config_file_group: root
|
28
|
-
process_user: root
|
29
|
-
firewall_src: 0.0.0.0/0
|
30
|
-
bool_absent: false
|
31
|
-
manage_package: present
|
32
|
-
service_status: true
|
33
|
-
package: openssh-server
|
34
|
-
monitor: "yes"
|
35
|
-
disableboot: false
|
36
|
-
template: ""
|
37
|
-
manage_service_ensure: running
|
38
|
-
manage_firewall: true
|
39
|
-
config_file: /etc/ssh/sshd_config
|
40
|
-
config_dir: /etc/ssh
|
41
|
-
bool_disableboot: false
|
42
|
-
bool_monitor: true
|
43
|
-
bool_audit_only: false
|
44
|
-
module_name: openssh
|
45
|
-
process_args: ""
|
46
|
-
debug: "no"
|
47
|
-
disable: false
|
48
|
-
bool_disable: false
|
49
|
-
bool_puppi: true
|
50
|
-
log_dir: /var/log
|
51
|
-
pid_file: /var/run/sshd.pid
|
52
|
-
audit_only: false
|
53
|
-
absent: false
|
54
|
-
source: ""
|
55
|
-
my_class: ""
|
56
|
-
manage_service_enable: true
|
57
|
-
firewall_dst: 10.42.20.10
|
58
|
-
options: ""
|
59
|
-
bool_source_dir_purge: false
|
data/etc/helpers/standard.yaml
DELETED