simple_lb 0.0.7 → 0.0.8

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/simple_lb.rb +50 -41
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b8f191062f29a321e15c15aaa73a6f703ad6953
4
- data.tar.gz: 966bbbb5db2c616744e6c453f2813f8737858e7f
3
+ metadata.gz: c2e80f6ac1aed262ee892a0aa9586b73b7b83834
4
+ data.tar.gz: 580865efca073b58f00848fad7b902ecfdb97d86
5
5
  SHA512:
6
- metadata.gz: 24857751d831aa06ab1db95a5a8fc11890003c747495ecec90eaa949e38fd70abd485e96f1d55a37aa8df4db231dc99ef8d8f66cc1ee5d1a90a6ce8c82d16f9e
7
- data.tar.gz: 74965b083856f47ec412604d5e5a2342ec599dcbe6c1b256a40df5f6da271514a2b816e1d1de958577692ab1c40df4b20e642c6cfd1ef17a7686162d9e4e188f
6
+ metadata.gz: 5b971085e27dcd564c4430242daad1b290c820e0b269f8ee6db429744da49e4b6453a5a766100f7d6aaf3ba8b21cd0b8f6439ef7ada9963d4993d9ca183bac3d
7
+ data.tar.gz: 733aae3a416b3817d321c6d0954d154b44c73a921c4fbaf7046d0dee26a9b5ebf0ff761115e7430fc1da3ce0d6d50436c60922acaff68869efe1d6f462d94573
data/lib/simple_lb.rb CHANGED
@@ -1,60 +1,69 @@
1
+ require 'savon'
1
2
  #
2
3
  class VirtualServer
3
- require 'savon'
4
+ def usage
5
+ puts 'Usage:'
6
+ puts 'simple_lb <vs_server_name> <vs_ipaddress> <member1_ip> <member2_ip>'
7
+ puts 'Example:'
8
+ puts 'simple_lb my_vserver 192.168.10.100 192.168.10.102 192.168.10.103'
9
+ exit
10
+ end
4
11
 
5
12
  def initialize(args)
6
- @@vs_attrs = args.to_a
7
- if @@vs_attrs.blank?
8
- puts 'Usage:'
9
- puts 'simple_lb <vs_server_name> <vs_ipaddress> <member1_ip> <member2_ip>'
10
- puts 'Example:'
11
- puts 'simple_lb my_vserver 192.168.10.100 192.168.10.102 192.168.10.103'
12
- exit
13
+ config_path = File.expand_path '~/.bigip.yml'
14
+ create_config(config_path) unless File.exist?(config_path)
15
+ if args.blank?
16
+ usage
17
+ else
18
+ @vs_attrs = args.to_a
13
19
  end
14
- $vs_name = @@vs_attrs.shift
15
- $vs_address = @@vs_attrs.shift
16
- $pool_member1 = @@vs_attrs.shift
17
- VirtualServer.create_config
18
- VirtualServer.create_soap_connection('Pool')
19
- VirtualServer.create_soap_connection('VirtualServer')
20
+ load_config(config_path)
21
+ vs_name = @vs_attrs.shift
22
+ vs_address = @vs_attrs.shift
23
+ pool_member1 = @vs_attrs.shift
24
+ create_soap_connection('Pool', vs_name, vs_address, pool_member1, @vs_attrs)
25
+ create_soap_connection('VirtualServer', vs_name, vs_address, pool_member1, @vs_attrs)
20
26
  end
21
27
 
22
- def self.create_config
23
- path = File.expand_path '~/.bigip.yml'
24
- config = YAML.load(File.read(path)) rescue nil
25
- unless config
26
- config = {
27
- ipaddress: '172.16.222.120',
28
- user: 'admin',
29
- password: 'admin'
30
- }
31
- File.open(path, 'w') { |f| YAML.dump(config, f) }
32
- abort "Created config file #{path} update with your bigip info"
33
- end
28
+ def load_config(config_path)
29
+ config = YAML.load_file(config_path)
34
30
  @ipaddress = config[:ipaddress]
35
31
  @user = config[:user]
36
32
  @password = config[:password]
37
33
  end
38
34
 
39
- def self.create_soap_connection(locallb_prop)
35
+ def create_config(config_path)
36
+ config = {
37
+ ipaddress: '172.16.222.120',
38
+ user: 'admin',
39
+ password: 'admin'
40
+ }
41
+ File.open(config_path, 'w') do |f|
42
+ YAML.dump(config, f)
43
+ end
44
+ puts "Created config file #{config_path} update with your bigip info"
45
+ exit
46
+ end
47
+
48
+ def create_soap_connection(locallb_prop, vs_name, vs_address, pool_member1, vs_attrs)
40
49
  @soap =
41
- Savon.client do |s|
42
- s.wsdl "https://#{@ipaddress}/iControl/iControlPortal.cgi?WSDL=LocalLB.#{locallb_prop}"
43
- s.basic_auth [@user, @password]
44
- s.ssl_verify_mode :none
45
- s.endpoint "https://#{@ipaddress}/iControl/iControlPortal.cgi"
46
- s.namespace "urn:iControl:LocalLB/#{locallb_prop}"
47
- s.convert_request_keys_to :none
48
- end
50
+ Savon.client do |s|
51
+ s.wsdl "https://#{@ipaddress}/iControl/iControlPortal.cgi?WSDL=LocalLB.#{locallb_prop}"
52
+ s.basic_auth [@user, @password]
53
+ s.ssl_verify_mode :none
54
+ s.endpoint "https://#{@ipaddress}/iControl/iControlPortal.cgi"
55
+ s.namespace "urn:iControl:LocalLB/#{locallb_prop}"
56
+ s.convert_request_keys_to :none
57
+ end
49
58
  case locallb_prop
50
59
  when 'VirtualServer'
51
- create_virtual_server(@soap, $vs_name, $vs_address)
60
+ create_virtual_server(@soap, vs_name, vs_address)
52
61
  when 'Pool'
53
- create_pool(@soap, $vs_name, $pool_member1)
62
+ create_pool(@soap, vs_name, pool_member1, vs_attrs)
54
63
  end
55
64
  end
56
65
 
57
- def self.create_pool(soap, pool_name, pool_member)
66
+ def create_pool(soap, pool_name, pool_member, vs_attrs)
58
67
  r =
59
68
  soap.call :create do |pool|
60
69
  pool.message 'pool_names' => { item: ["#{pool_name}"] },
@@ -63,8 +72,8 @@ class VirtualServer
63
72
  { item:
64
73
  [address: pool_member, port: '80'] } }
65
74
  end
66
- unless @@vs_attrs.blank?
67
- @@vs_attrs.each do |member|
75
+ unless vs_attrs.blank?
76
+ vs_attrs.each do |member|
68
77
  soap.call :add_member do |pool|
69
78
  pool.message 'pool_names' => { item: ["#{pool_name}"] },
70
79
  'members' => { item:
@@ -76,7 +85,7 @@ class VirtualServer
76
85
  end
77
86
  end
78
87
 
79
- def self.create_virtual_server(soap, vs_name, vs_address)
88
+ def create_virtual_server(soap, vs_name, vs_address)
80
89
  vsdefinitions = [
81
90
  name: vs_name,
82
91
  address: vs_address,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_lb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Swat