puppi 0.0.1alpha → 0.0.2
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/.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