vmfloaty 0.7.8 → 0.7.9
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.
- checksums.yaml +4 -4
- data/README.md +16 -0
- data/extras/completions/floaty.bash +30 -0
- data/lib/vmfloaty.rb +31 -5
- data/lib/vmfloaty/utils.rb +8 -0
- data/lib/vmfloaty/version.rb +2 -7
- data/spec/spec_helper.rb +6 -0
- metadata +11 -10
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 4c7884840968e8735caff3146f276a2f9075cf79
         | 
| 4 | 
            +
              data.tar.gz: 172f0dc34672fb184d62bb4dc7eb93d306e9d413
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ebfe08176a0505aa253849222afc98cf5b08361db264cee13fce6947b292434f1c466e23291fdee722b3b0cf658ac50335d61f78397190e3b489c237cab10806
         | 
| 7 | 
            +
              data.tar.gz: 0d776b18978fb5fe8a1c893e1f2c1198fd78c7190561388eb7b1be334d79923ae0a39fa498e3007e7bc3c09834c05145cac5790195fa39c6c4e19d6f719254ae
         | 
    
        data/README.md
    CHANGED
    
    | @@ -88,6 +88,22 @@ Here are the keys that vmfloaty currently supports: | |
| 88 88 | 
             
            - url
         | 
| 89 89 | 
             
              + String
         | 
| 90 90 |  | 
| 91 | 
            +
            ### Tab Completion
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            There is a basic completion script for Bash (and possibly other shells) included with the gem in the [extras/completions](https://github.com/briancain/vmfloaty/blob/master/extras/completions) folder. To activate, that file simply needs to be sourced somehow in your shell profile.
         | 
| 94 | 
            +
             | 
| 95 | 
            +
            For convenience, the path to the completion script for the currently active version of the gem can be found with the `floaty completion` subcommand. This makes it easy to add the completion script to your profile like so:
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            ```bash
         | 
| 98 | 
            +
            source $(floaty completion --shell bash)
         | 
| 99 | 
            +
            ```
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            If you are running on macOS and use Homebrew's `bash-completion` formula, you can symlink the script to `/usr/local/etc/bash_completion.d/floaty` and it will be sourced automatically:
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            ```bash
         | 
| 104 | 
            +
            ln -s $(floaty completion --shell bash) /usr/local/etc/bash_completion.d/floaty
         | 
| 105 | 
            +
            ```
         | 
| 106 | 
            +
             | 
| 91 107 | 
             
            ## vmpooler API
         | 
| 92 108 |  | 
| 93 109 | 
             
            This cli tool uses the [vmpooler API](https://github.com/puppetlabs/vmpooler/blob/master/API.md).
         | 
| @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            #!/usr/bin/env bash
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            _vmfloaty()
         | 
| 4 | 
            +
            {
         | 
| 5 | 
            +
              local cur prev subcommands template_subcommands hostname_subcommands
         | 
| 6 | 
            +
              COMPREPLY=()
         | 
| 7 | 
            +
              cur="${COMP_WORDS[COMP_CWORD]}"
         | 
| 8 | 
            +
              prev="${COMP_WORDS[COMP_CWORD-1]}"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              subcommands="delete get help list modify query revert snapshot ssh status summary token"
         | 
| 11 | 
            +
              template_subcommands="get ssh"
         | 
| 12 | 
            +
              hostname_subcommands="delete modify query revert snapshot"
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              if [[ $cur == -* ]] ; then
         | 
| 15 | 
            +
                # TODO: option completion
         | 
| 16 | 
            +
                COMPREPLY=()
         | 
| 17 | 
            +
              elif [[ $template_subcommands =~ (^| )$prev($| ) ]] ; then
         | 
| 18 | 
            +
                if [[ -z "$_vmfloaty_avail_templates" ]] ; then
         | 
| 19 | 
            +
                  _vmfloaty_avail_templates=$(floaty list 2>/dev/null)
         | 
| 20 | 
            +
                fi
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                COMPREPLY=( $(compgen -W "${_vmfloaty_avail_templates}" -- "${cur}") )
         | 
| 23 | 
            +
              elif [[ $hostname_subcommands =~ (^| )$prev($| ) ]] ; then
         | 
| 24 | 
            +
                _vmfloaty_active_hostnames=$(floaty list --active 2>/dev/null | grep '^-' | cut -d' ' -f2)
         | 
| 25 | 
            +
                COMPREPLY=( $(compgen -W "${_vmfloaty_active_hostnames}" -- "${cur}") )
         | 
| 26 | 
            +
              else
         | 
| 27 | 
            +
                COMPREPLY=( $(compgen -W "${subcommands}" -- "${cur}") )
         | 
| 28 | 
            +
              fi
         | 
| 29 | 
            +
            }
         | 
| 30 | 
            +
            complete -F _vmfloaty floaty
         | 
    
        data/lib/vmfloaty.rb
    CHANGED
    
    | @@ -16,7 +16,7 @@ class Vmfloaty | |
| 16 16 | 
             
              include Commander::Methods
         | 
| 17 17 |  | 
| 18 18 | 
             
              def run
         | 
| 19 | 
            -
                program :version,  | 
| 19 | 
            +
                program :version, Vmfloaty::VERSION
         | 
| 20 20 | 
             
                program :description, 'A CLI helper tool for Puppet Labs vmpooler to help you stay afloat'
         | 
| 21 21 |  | 
| 22 22 | 
             
                config = Conf.read_config
         | 
| @@ -75,7 +75,7 @@ class Vmfloaty | |
| 75 75 | 
             
                            STDERR.puts "You did not provide a user to authenticate to vmpooler with"
         | 
| 76 76 | 
             
                            exit 1
         | 
| 77 77 | 
             
                          end
         | 
| 78 | 
            -
                          pass = password "Enter your password please:", '*'
         | 
| 78 | 
            +
                          pass = password "Enter your vmpooler password please:", '*'
         | 
| 79 79 | 
             
                          begin
         | 
| 80 80 | 
             
                            token = Auth.get_token(verbose, url, user, pass)
         | 
| 81 81 | 
             
                          rescue TokenError => e
         | 
| @@ -479,7 +479,7 @@ class Vmfloaty | |
| 479 479 |  | 
| 480 480 | 
             
                    case action
         | 
| 481 481 | 
             
                    when "get"
         | 
| 482 | 
            -
                      pass = password "Enter your password please:", '*'
         | 
| 482 | 
            +
                      pass = password "Enter your vmpooler password please:", '*'
         | 
| 483 483 | 
             
                      begin
         | 
| 484 484 | 
             
                        token = Auth.get_token(verbose, url, user, pass)
         | 
| 485 485 | 
             
                      rescue TokenError => e
         | 
| @@ -489,7 +489,7 @@ class Vmfloaty | |
| 489 489 | 
             
                      puts token
         | 
| 490 490 | 
             
                      exit 0
         | 
| 491 491 | 
             
                    when "delete"
         | 
| 492 | 
            -
                      pass = password "Enter your password please:", '*'
         | 
| 492 | 
            +
                      pass = password "Enter your vmpooler password please:", '*'
         | 
| 493 493 | 
             
                      begin
         | 
| 494 494 | 
             
                        result = Auth.delete_token(verbose, url, user, pass, token)
         | 
| 495 495 | 
             
                      rescue TokenError => e
         | 
| @@ -545,7 +545,7 @@ class Vmfloaty | |
| 545 545 | 
             
                        STDERR.puts "You did not provide a user to authenticate to vmpooler with"
         | 
| 546 546 | 
             
                        exit 1
         | 
| 547 547 | 
             
                      end
         | 
| 548 | 
            -
                      pass = password "Enter your password please:", '*'
         | 
| 548 | 
            +
                      pass = password "Enter your vmpooler password please:", '*'
         | 
| 549 549 | 
             
                      begin
         | 
| 550 550 | 
             
                        token = Auth.get_token(verbose, url, user, pass)
         | 
| 551 551 | 
             
                      rescue TokenError => e
         | 
| @@ -562,6 +562,32 @@ class Vmfloaty | |
| 562 562 | 
             
                  end
         | 
| 563 563 | 
             
                end
         | 
| 564 564 |  | 
| 565 | 
            +
                command :completion do |c|
         | 
| 566 | 
            +
                  c.syntax = 'floaty completion [options]'
         | 
| 567 | 
            +
                  c.summary = 'Outputs path to completion script'
         | 
| 568 | 
            +
                  c.description = Utils.strip_heredoc(<<-EOF)
         | 
| 569 | 
            +
                    Outputs path to a completion script for the specified shell (or 'bash' if not specified). This makes it easy to add the completion script to your profile:
         | 
| 570 | 
            +
             | 
| 571 | 
            +
                      source $(floaty completion --shell bash)
         | 
| 572 | 
            +
             | 
| 573 | 
            +
                    This subcommand will exit non-zero with an error message if no completion script is available for the requested shell.
         | 
| 574 | 
            +
                  EOF
         | 
| 575 | 
            +
                  c.example 'Gets path to bash tab completion script', 'floaty completion --shell bash'
         | 
| 576 | 
            +
                  c.option '--shell STRING', String, 'Shell to request completion script for'
         | 
| 577 | 
            +
                  c.action do |args, options|
         | 
| 578 | 
            +
                    shell = (options.shell || 'bash').downcase.strip
         | 
| 579 | 
            +
                    completion_file = File.expand_path(File.join('..', '..', 'extras', 'completions', "floaty.#{shell}"), __FILE__)
         | 
| 580 | 
            +
             | 
| 581 | 
            +
                    if File.exist?(completion_file)
         | 
| 582 | 
            +
                      puts completion_file
         | 
| 583 | 
            +
                      exit 0
         | 
| 584 | 
            +
                    else
         | 
| 585 | 
            +
                      STDERR.puts "Could not find completion file for '#{shell}': No such file #{completion_file}"
         | 
| 586 | 
            +
                      exit 1
         | 
| 587 | 
            +
                    end
         | 
| 588 | 
            +
                  end
         | 
| 589 | 
            +
                end
         | 
| 590 | 
            +
             | 
| 565 591 | 
             
                run!
         | 
| 566 592 | 
             
              end
         | 
| 567 593 | 
             
            end
         | 
    
        data/lib/vmfloaty/utils.rb
    CHANGED
    
    | @@ -113,4 +113,12 @@ class Utils | |
| 113 113 | 
             
                puts
         | 
| 114 114 | 
             
                puts message.colorize(status['status']['ok'] ? :default : :red)
         | 
| 115 115 | 
             
              end
         | 
| 116 | 
            +
             | 
| 117 | 
            +
              # Adapted from ActiveSupport
         | 
| 118 | 
            +
              def self.strip_heredoc(str)
         | 
| 119 | 
            +
                min_indent = str.scan(/^[ \t]*(?=\S)/).min
         | 
| 120 | 
            +
                min_indent_size = min_indent.nil? ? 0 : min_indent.size
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                str.gsub(/^[ \t]{#{min_indent_size}}/, '')
         | 
| 123 | 
            +
              end
         | 
| 116 124 | 
             
            end
         | 
    
        data/lib/vmfloaty/version.rb
    CHANGED
    
    
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vmfloaty
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.7. | 
| 4 | 
            +
              version: 0.7.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Brian Cain
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-07-31 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: commander
         | 
| @@ -16,40 +16,40 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 4.3.0
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 4.3.0
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: faraday
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: 0.9.0
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 38 | 
             
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 40 | 
            +
                    version: 0.9.0
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: colorize
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: 0.8.1
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - "~>"
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: 0.8.1
         | 
| 55 55 | 
             
            description: A helper tool for vmpooler to help you stay afloat
         | 
| @@ -63,6 +63,7 @@ files: | |
| 63 63 | 
             
            - LICENSE
         | 
| 64 64 | 
             
            - README.md
         | 
| 65 65 | 
             
            - bin/floaty
         | 
| 66 | 
            +
            - extras/completions/floaty.bash
         | 
| 66 67 | 
             
            - lib/vmfloaty.rb
         | 
| 67 68 | 
             
            - lib/vmfloaty/auth.rb
         | 
| 68 69 | 
             
            - lib/vmfloaty/conf.rb
         | 
| @@ -78,7 +79,7 @@ files: | |
| 78 79 | 
             
            - spec/vmfloaty/utils_spec.rb
         | 
| 79 80 | 
             
            homepage: https://github.com/briancain/vmfloaty
         | 
| 80 81 | 
             
            licenses:
         | 
| 81 | 
            -
            - Apache
         | 
| 82 | 
            +
            - Apache-2.0
         | 
| 82 83 | 
             
            metadata: {}
         | 
| 83 84 | 
             
            post_install_message: 
         | 
| 84 85 | 
             
            rdoc_options: []
         | 
| @@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 96 97 | 
             
                  version: '0'
         | 
| 97 98 | 
             
            requirements: []
         | 
| 98 99 | 
             
            rubyforge_project: 
         | 
| 99 | 
            -
            rubygems_version: 2. | 
| 100 | 
            +
            rubygems_version: 2.6.12
         | 
| 100 101 | 
             
            signing_key: 
         | 
| 101 102 | 
             
            specification_version: 4
         | 
| 102 103 | 
             
            summary: CLI application to interface with vmpooler
         |