stack-kicker 0.0.15 → 0.0.16
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/README.md +5 -0
- data/bin/stack-kicker +5 -1
- data/lib/stack-kicker/version.rb +1 -1
- data/lib/stack.rb +10 -4
- metadata +2 -2
    
        data/README.md
    CHANGED
    
    | @@ -241,6 +241,11 @@ In addition to the the ruby dependencies which gem will install for you, access | |
| 241 241 | 
             
            5. Support for AWS EC2 (from aws-kicker)
         | 
| 242 242 | 
             
            5. Support for DNS Updates on instance creation (from aws-kicker)
         | 
| 243 243 |  | 
| 244 | 
            +
            ## Releasing
         | 
| 245 | 
            +
             | 
| 246 | 
            +
            1. gem bump
         | 
| 247 | 
            +
            2. gem release
         | 
| 248 | 
            +
             | 
| 244 249 | 
             
            ## Contributing
         | 
| 245 250 |  | 
| 246 251 | 
             
            1. Fork it
         | 
    
        data/bin/stack-kicker
    CHANGED
    
    | @@ -28,7 +28,7 @@ class App | |
| 28 28 | 
             
              include Methadone::CLILogging
         | 
| 29 29 |  | 
| 30 30 | 
             
              main do |task|
         | 
| 31 | 
            -
                debug { "#{options}" }
         | 
| 31 | 
            +
                debug { "options = #{options}" }
         | 
| 32 32 | 
             
                # pass the logger.level into the Stack module
         | 
| 33 33 | 
             
                Stack.log_level(logger.level)
         | 
| 34 34 |  | 
| @@ -36,6 +36,9 @@ class App | |
| 36 36 | 
             
                  config = Stack.select_stack(options[:stackfile], options['stack'])
         | 
| 37 37 | 
             
                end
         | 
| 38 38 |  | 
| 39 | 
            +
                # pass some command line options into the config
         | 
| 40 | 
            +
                config['skip-secgroup-sync-deletes'] = options['skip-secgroup-sync-deletes'].nil? ? false : true
         | 
| 41 | 
            +
             | 
| 39 42 | 
             
                case task
         | 
| 40 43 | 
             
                when 'validate'
         | 
| 41 44 | 
             
                  Stack.validate(config)
         | 
| @@ -74,6 +77,7 @@ class App | |
| 74 77 | 
             
              on("--stackfile Stackfile", "Specify an alternative Stackfile")
         | 
| 75 78 | 
             
              on("--stack mystack", "Specify the stack in Stackfile that you want to work with")
         | 
| 76 79 | 
             
              on("--ssh-user USER", "User to be used for SSH access")
         | 
| 80 | 
            +
              on("--skip-secgroup-sync-deletes", "Skip deletes during secgroup-sync, handy for running multiple stacks in the one account with overlapping group names")
         | 
| 77 81 |  | 
| 78 82 | 
             
              arg :task, "task to be performed validate|configure-knife|show-stacks|show-stack|show-running|build|replace|delete|secgroup-sync|ssh"
         | 
| 79 83 | 
             
              version Stack::Kicker::VERSION
         | 
    
        data/lib/stack-kicker/version.rb
    CHANGED
    
    
    
        data/lib/stack.rb
    CHANGED
    
    | @@ -201,7 +201,7 @@ module Stack | |
| 201 201 | 
             
                    Logger.warn "#{config[:key_pair]} isn't available, uploading the key"
         | 
| 202 202 |  | 
| 203 203 | 
             
                    # upload the key
         | 
| 204 | 
            -
                    key =  os.create_keypair({:name=> config[:key_pair], :public_key=> File.read(config[:key_public])})
         | 
| 204 | 
            +
                    key =  os.create_keypair({:name=> config[:key_pair], :public_key=> File.read(File.expand_path(config[:key_public]))})
         | 
| 205 205 | 
             
                    Logger.warn "#{config[:key_pair]} fingerprint=#{key[:fingerprint]}"
         | 
| 206 206 | 
             
                  else
         | 
| 207 207 | 
             
                    Logger.info "#{config[:key_pair]} fingerprint=#{keypairs[config[:key_pair].to_sym][:fingerprint]}"
         | 
| @@ -215,7 +215,7 @@ module Stack | |
| 215 215 | 
             
                  sg_names = security_groups.map { |secgroup, secgroup_details| secgroup_details[:name] }
         | 
| 216 216 |  | 
| 217 217 | 
             
                  config[:roles].each do |role, role_details|
         | 
| 218 | 
            -
                    #  | 
| 218 | 
            +
                    # does the secgroup exist?
         | 
| 219 219 | 
             
                    if sg_names.include?(role_details[:security_group])
         | 
| 220 220 | 
             
                      Logger.info "security group #{role_details[:security_group]} exists in #{az}"
         | 
| 221 221 | 
             
                    else
         | 
| @@ -575,6 +575,8 @@ cookbook_path [ '<%=config[:stackhome]%>/cookbooks' ] | |
| 575 575 | 
             
              end
         | 
| 576 576 |  | 
| 577 577 | 
             
              def Stack.delete_all(config)
         | 
| 578 | 
            +
                # check that we have OS_* vars loaded etc
         | 
| 579 | 
            +
                Stack.syntax_check(config)
         | 
| 578 580 | 
             
                # this also populates out unspecified defaults, like az
         | 
| 579 581 | 
             
                Stack.populate_config(config)
         | 
| 580 582 |  | 
| @@ -648,12 +650,16 @@ cookbook_path [ '<%=config[:stackhome]%>/cookbooks' ] | |
| 648 650 | 
             
                sg_json.write(secgroup_ips.to_json)
         | 
| 649 651 | 
             
                sg_json.close
         | 
| 650 652 |  | 
| 651 | 
            -
                 | 
| 653 | 
            +
                # should we skip deletes
         | 
| 654 | 
            +
                skip_deletes = config['skip-secgroup-sync-deletes'] ? "--skip-deletes" : ""
         | 
| 655 | 
            +
             | 
| 656 | 
            +
                secgroups_json_abs = Stack.find_file(config, "secgroups.json")
         | 
| 657 | 
            +
                if File.exists?(secgroups_json_abs)
         | 
| 652 658 | 
             
                  Logger.info "Found secgroups.json, syncing secgroups across AZ"
         | 
| 653 659 | 
             
                  # run the secgroup-sync tool, across each AZ/REGION
         | 
| 654 660 | 
             
                  config[:azs].each do |az|
         | 
| 655 661 | 
             
                    Logger.info "Syncing security groups in #{az}"
         | 
| 656 | 
            -
                    system("stackhelper --os-region-name #{az} secgroup-sync --secgroup-json  | 
| 662 | 
            +
                    system("stackhelper --os-region-name #{az} secgroup-sync #{skip_deletes} --secgroup-json #{secgroups_json_abs} --additional-group-json #{sg_json.path}")
         | 
| 657 663 | 
             
                  end
         | 
| 658 664 | 
             
                else
         | 
| 659 665 | 
             
                  Logger.info "No secgroups.json found, skipping secgroup sync"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: stack-kicker
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.16
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013-05- | 
| 12 | 
            +
            date: 2013-05-24 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rdoc
         |