f5-icontrol 0.2.4 → 0.2.5
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 +2 -0
- data/lib/f5/cli/application.rb +12 -2
- data/lib/f5/icontrol/version.rb +1 -1
- data/spec/cli/pool_spec.rb +50 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51e1dd154ac05834c5bf6155a48cbf9d415454c7
|
4
|
+
data.tar.gz: 3b5b67c1f8ef58a33683e0c5f3a71625d7dbb50b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '069bd45ae69fd3439eeda0d3eebebfdca592be929c2693cef9e66ab82337d3e0022446057999a4558150563df320fbf1e9d4de6d4b01a722c6083f98fd2539bd'
|
7
|
+
data.tar.gz: 04ce250260edc91e65f80a89fd39217bf4aaf7f3d0f5c0e168acf713fe73b3e3b2c877cb0805c7582564eabe0874bee5d947c93c6830dfb1b57d479e0d91a32e
|
data/CHANGELOG.md
CHANGED
data/lib/f5/cli/application.rb
CHANGED
@@ -319,8 +319,8 @@ module F5
|
|
319
319
|
end
|
320
320
|
end
|
321
321
|
|
322
|
-
desc "setratio
|
323
|
-
method_option :ratio, type: :numeric, desc: "The node's new
|
322
|
+
desc "setratio POOL MEMBERS", "Sets the ratio of the given members to RATIO"
|
323
|
+
method_option :ratio, type: :numeric, desc: "The node's new ratio", required: true
|
324
324
|
def setratio(pool, *members)
|
325
325
|
set = address_port_list_from_pool(pool, members)
|
326
326
|
response = client.LocalLB.Pool.set_member_ratio(
|
@@ -328,7 +328,17 @@ module F5
|
|
328
328
|
members: { item: [ set ] },
|
329
329
|
ratios: { item: [ set.map { options[:ratio] } ] }
|
330
330
|
)
|
331
|
+
end
|
331
332
|
|
333
|
+
desc "setconnections POOL MEMBERS", "Sets the connection limit on MEMBERS to LIMIT"
|
334
|
+
method_option :limit, type: :numeric, desc: "The node's new connection limit", required: true
|
335
|
+
def setconnections(pool, *members)
|
336
|
+
set = address_port_list_from_pool(pool, members)
|
337
|
+
response = client.LocalLB.Pool.set_member_connection_limit(
|
338
|
+
pool_names: { item: [ pool ] },
|
339
|
+
members: { item: [ set ] },
|
340
|
+
limits: { item: [ set.map { options[:limit] } ] }
|
341
|
+
)
|
332
342
|
end
|
333
343
|
|
334
344
|
private
|
data/lib/f5/icontrol/version.rb
CHANGED
data/spec/cli/pool_spec.rb
CHANGED
@@ -8,6 +8,56 @@ describe F5::Cli::Pool do
|
|
8
8
|
|
9
9
|
let(:client) { double }
|
10
10
|
|
11
|
+
context "setconnections" do
|
12
|
+
let(:pool) { double("Pool") }
|
13
|
+
let(:out) { 'yup' }
|
14
|
+
|
15
|
+
before do
|
16
|
+
allow(pool).to receive(:get_member_v2).and_return(members)
|
17
|
+
allow(client).to receive_message_chain("LocalLB", "Pool") { pool }
|
18
|
+
subject.options = { limit: 42 }
|
19
|
+
end
|
20
|
+
|
21
|
+
context "one member" do
|
22
|
+
let(:expected) {
|
23
|
+
{
|
24
|
+
pool_names: { item: [ 'mypool' ] },
|
25
|
+
members: { item: [ [ { address: '/Common/node1', port: '80' } ] ] },
|
26
|
+
limits: { item: [ [ 42 ] ] }
|
27
|
+
}
|
28
|
+
}
|
29
|
+
let(:members) {
|
30
|
+
{:item=>{:item=>{:address=>"/Common/node1", :port=>"80"}, :"@a:array_type"=>"iControl:Common.AddressPort[1]"}, :"@s:type"=>"A:Array", :"@a:array_type"=>"iControl:Common.AddressPort[][1]"}
|
31
|
+
}
|
32
|
+
|
33
|
+
it "calls the API to set the member" do
|
34
|
+
expect(pool).to receive(:set_member_connection_limit).with(expected).and_return(out)
|
35
|
+
|
36
|
+
subject.setconnections('mypool', 'node1')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "two members" do
|
41
|
+
let(:expected) {
|
42
|
+
{
|
43
|
+
pool_names: { item: [ 'mypool' ] },
|
44
|
+
members: { item: [ [ { address: '/Common/node1', port: '80' }, { address: '/Common/node2', port: '80' } ] ] },
|
45
|
+
limits: { item: [[ 42, 42 ]] }
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
let(:members) {
|
50
|
+
{:item=>{:item=>[{:address=>"/Common/node1", :port=>"80"}, {:address=>"/Common/node2", :port=>"80"}], :"@a:array_type"=>"iControl:Common.AddressPort[2]"}, :"@s:type"=>"A:Array", :"@a:array_type"=>"iControl:Common.AddressPort[][1]"}
|
51
|
+
}
|
52
|
+
|
53
|
+
it "calls the API to set the members" do
|
54
|
+
expect(pool).to receive(:set_member_connection_limit).with(expected).and_return(out)
|
55
|
+
|
56
|
+
subject.setconnections('mypool', 'node1', 'node2')
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
11
61
|
context "setratio" do
|
12
62
|
let(:pool) { double("Pool") }
|
13
63
|
let(:out) { 'yup' }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: f5-icontrol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Walberg
|
@@ -461,7 +461,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
461
461
|
version: '0'
|
462
462
|
requirements: []
|
463
463
|
rubyforge_project:
|
464
|
-
rubygems_version: 2.
|
464
|
+
rubygems_version: 2.6.11
|
465
465
|
signing_key:
|
466
466
|
specification_version: 4
|
467
467
|
summary: A gem to manage F5 BigIP devices using the iControl API
|