f5-icontrol 0.1.2 → 0.1.3
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/CHANGELOG.md +1 -0
 - data/lib/f5/cli/application.rb +17 -2
 - data/lib/f5/icontrol/version.rb +1 -1
 - data/spec/cli/pool_spec.rb +35 -0
 - data/spec/spec_helper.rb +23 -0
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6fec57b1d21f739421ddfaea3bca33a34c026b6d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c1507eeddf2f4501d6454e20bba4b12a03e50d0f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 53ac4f57f25b527a170b38fb931da8dd80cb32454d6b506cd4d2353c4c80498c0772c13b50da206d486319c89c498310411ea6205a2c443b031f64446e995768
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a9df0bcde1ea51fe3e0727d277466ef71a509be0eadf5335f61aebd0608843a568b526fc1ccfb94456b0f46c723893359f3ce24d85ac1c65f304b1d0ed23d033
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/lib/f5/cli/application.rb
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'thor'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'awesome_print'
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            module F5
         
     | 
| 
       4 
5 
     | 
    
         
             
              module Cli
         
     | 
| 
         @@ -40,10 +41,24 @@ module F5 
     | 
|
| 
       40 
41 
     | 
    
         
             
                    statuses = response[:item][:item]
         
     | 
| 
       41 
42 
     | 
    
         
             
                    statuses = [ statuses ] if statuses.is_a? Hash
         
     | 
| 
       42 
43 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                     
     | 
| 
      
 44 
     | 
    
         
            +
                    response = client.LocalLB.Pool.get_all_member_statistics(
         
     | 
| 
      
 45 
     | 
    
         
            +
                      pool_names: { item: [ pool ] }
         
     | 
| 
      
 46 
     | 
    
         
            +
                    )
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                    stats = response[:item][:statistics][:item]
         
     | 
| 
      
 49 
     | 
    
         
            +
                    stats = [ stats ] if stats.is_a? Hash
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                    connections = stats.map do |host|
         
     | 
| 
      
 52 
     | 
    
         
            +
                      stats = host[:statistics][:item]
         
     | 
| 
      
 53 
     | 
    
         
            +
                      c = stats.find { |stat| stat[:type] == "STATISTIC_SERVER_SIDE_CURRENT_CONNECTIONS" }
         
     | 
| 
      
 54 
     | 
    
         
            +
                      c[:value][:high].to_i * (2<<32) + c[:value][:low].to_i
         
     | 
| 
      
 55 
     | 
    
         
            +
                    end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                    puts "%20s %25s %25s %25s" % ["Address", "Availability", "Enabled", "Current Connections"]
         
     | 
| 
       44 
58 
     | 
    
         
             
                    statuses.each_with_index do |s, idx|
         
     | 
| 
       45 
     | 
    
         
            -
                      puts "%20s %25s %25s" % [ members[idx][:address], s[:availability_status].split(/_/).last, s[:enabled_status].split(/_/).last ]
         
     | 
| 
      
 59 
     | 
    
         
            +
                      puts "%20s %25s %25s %25s" % [ members[idx][:address], s[:availability_status].split(/_/).last, s[:enabled_status].split(/_/).last, connections[idx]]
         
     | 
| 
       46 
60 
     | 
    
         
             
                    end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       47 
62 
     | 
    
         
             
                  end
         
     | 
| 
       48 
63 
     | 
    
         | 
| 
       49 
64 
     | 
    
         
             
                  desc "enable POOL MEMBERS", "Enables the given members"
         
     | 
    
        data/lib/f5/icontrol/version.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,35 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'f5/cli/application'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe F5::Cli::Pool do
         
     | 
| 
      
 5 
     | 
    
         
            +
              before do
         
     | 
| 
      
 6 
     | 
    
         
            +
                allow(subject).to receive(:client).and_return(client)
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              let(:client) { double }
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              context "list" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                let(:output) { capture(:stdout) { subject.list } }
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                context "no pools" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  it "indicates there are no pools" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    allow(client).to receive_message_chain("LocalLB", "Pool", "get_list") { { item: nil } }
         
     | 
| 
      
 17 
     | 
    
         
            +
                    expect(output).to include("No pools found")
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                context "one pool" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  it "lists the pools" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                    allow(client).to receive_message_chain("LocalLB", "Pool", "get_list") { { item: "/Common/foobar" } }
         
     | 
| 
      
 24 
     | 
    
         
            +
                    expect(output).to eq("/Common/foobar\n")
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                context "two pools" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  it "lists the pools" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                    allow(client).to receive_message_chain("LocalLB", "Pool", "get_list") { { item: [ "/Common/one", "/Common/two" ] } }
         
     | 
| 
      
 31 
     | 
    
         
            +
                    expect(output).to eq("/Common/one\n/Common/two\n")
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -2,6 +2,29 @@ require 'f5/icontrol' 
     | 
|
| 
       2 
2 
     | 
    
         
             
            require 'vcr'
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            RSpec.configure do |c|
         
     | 
| 
      
 5 
     | 
    
         
            +
              # https://github.com/docwhat/homedir/blob/homedir3/spec/spec_helper.rb
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Captures the output for analysis later
         
     | 
| 
      
 7 
     | 
    
         
            +
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              # @example Capture `$stderr`
         
     | 
| 
      
 9 
     | 
    
         
            +
              #
         
     | 
| 
      
 10 
     | 
    
         
            +
              #     output = capture(:stderr) { $stderr.puts "this is captured" }
         
     | 
| 
      
 11 
     | 
    
         
            +
              #
         
     | 
| 
      
 12 
     | 
    
         
            +
              # @param [Symbol] stream `:stdout` or `:stderr`
         
     | 
| 
      
 13 
     | 
    
         
            +
              # @yield The block to capture stdout/stderr for.
         
     | 
| 
      
 14 
     | 
    
         
            +
              # @return [String] The contents of $stdout or $stderr
         
     | 
| 
      
 15 
     | 
    
         
            +
              def capture(stream)
         
     | 
| 
      
 16 
     | 
    
         
            +
                begin
         
     | 
| 
      
 17 
     | 
    
         
            +
                  stream = stream.to_s
         
     | 
| 
      
 18 
     | 
    
         
            +
                  eval "$#{stream} = StringIO.new"
         
     | 
| 
      
 19 
     | 
    
         
            +
                  yield
         
     | 
| 
      
 20 
     | 
    
         
            +
                  result = eval("$#{stream}").string
         
     | 
| 
      
 21 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 22 
     | 
    
         
            +
                  eval("$#{stream} = #{stream.upcase}")
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                result
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
              
         
     | 
| 
       5 
28 
     | 
    
         
             
            end
         
     | 
| 
       6 
29 
     | 
    
         | 
| 
       7 
30 
     | 
    
         
             
            VCR.configure do |c|
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: f5-icontrol
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sean Walberg
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-12-12 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: savon
         
     | 
| 
         @@ -376,6 +376,7 @@ files: 
     | 
|
| 
       376 
376 
     | 
    
         
             
            - spec/cassettes/F5_Icontrol_System_SystemInfo/retrieves_something_with_a_complex_return_type_and_input.yml
         
     | 
| 
       377 
377 
     | 
    
         
             
            - spec/cassettes/F5_Icontrol_System_SystemInfo/retrieves_the_uptime.yml
         
     | 
| 
       378 
378 
     | 
    
         
             
            - spec/cassettes/F5_Icontrol_System_SystemInfo/retrieves_the_version.yml
         
     | 
| 
      
 379 
     | 
    
         
            +
            - spec/cli/pool_spec.rb
         
     | 
| 
       379 
380 
     | 
    
         
             
            - spec/models/api_spec.rb
         
     | 
| 
       380 
381 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       381 
382 
     | 
    
         
             
            homepage: https://github.com/swalberg/f5-icontrol
         
     | 
| 
         @@ -407,5 +408,6 @@ test_files: 
     | 
|
| 
       407 
408 
     | 
    
         
             
            - spec/cassettes/F5_Icontrol_System_SystemInfo/retrieves_something_with_a_complex_return_type_and_input.yml
         
     | 
| 
       408 
409 
     | 
    
         
             
            - spec/cassettes/F5_Icontrol_System_SystemInfo/retrieves_the_uptime.yml
         
     | 
| 
       409 
410 
     | 
    
         
             
            - spec/cassettes/F5_Icontrol_System_SystemInfo/retrieves_the_version.yml
         
     | 
| 
      
 411 
     | 
    
         
            +
            - spec/cli/pool_spec.rb
         
     | 
| 
       410 
412 
     | 
    
         
             
            - spec/models/api_spec.rb
         
     | 
| 
       411 
413 
     | 
    
         
             
            - spec/spec_helper.rb
         
     |