Class: CivoCLI::LoadBalancer
- Inherits:
-
Thor
- Object
- Thor
- CivoCLI::LoadBalancer
- Defined in:
- lib/loadbalancer.rb
Instance Method Summary collapse
- #create(*args) ⇒ Object
- #list ⇒ Object
- #remove(id) ⇒ Object
- #update(id, hostname = nil, protocol = nil, tls_certificate = nil, tls_key = nil, port = nil, max_request_size = nil, policy = nil, health_check_path = nil, fail_timeout = nil, max_conns = nil, ignore_invalid_backend_tls = nil, backend = nil) ⇒ Object
Instance Method Details
#create(*args) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/loadbalancer.rb', line 44 def create(*args) CivoCLI::Config.set_api_auth backends = {} [:backend].each do | key, value | backends[key] = value end backendarray = [] backendarray << backends loadbalancer = Civo::LoadBalancer.create(hostname: [:hostname] ||= nil, protocol: [:protocol], tls_certificate: [:tls_certificate], tls_key: [:tls_key], port: [:port], max_request_size: [:max_request_size], policy: [:policy], health_check_path: [:health_check_path], fail_timeout: [:fail_timeout], max_conns: [:max_conns], ignore_invalid_backend_tls: [:ignore_invalid_backend_tls], backends: backendarray) puts "Created a new Load Balancer with hostname #{loadbalancer.hostname.colorize(:green)}" rescue Flexirest::HTTPException => e puts e.result.reason.colorize(:red) exit 1 end |
#list ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/loadbalancer.rb', line 4 def list CivoCLI::Config.set_api_auth rows = [] Civo::LoadBalancer.all.items.each do |loadbalancer| rows << [loadbalancer.id, loadbalancer.hostname, loadbalancer.protocol, loadbalancer.port, loadbalancer.tls_certificate, loadbalancer.tls_key, loadbalancer.policy, loadbalancer.health_check_path, loadbalancer.fail_timeout, loadbalancer.max_conns, loadbalancer.ignore_invalid_backend_tls, loadbalancer.backends.items.map(&:instance_id).join(", ")] end puts Terminal::Table.new headings: ['ID', 'Hostname', 'Protocol', 'Port', "TLS\nCert", 'TLS key', 'Policy', "Health Check\nPath", "Fail\nTimeout", "Max.\nConnections", "Ignore Invalid\nBackend TLS?", 'Backends'], rows: rows end |
#remove(id) ⇒ Object
131 132 133 134 135 136 137 138 139 |
# File 'lib/loadbalancer.rb', line 131 def remove(id) CivoCLI::Config.set_api_auth loadbalancer = Civo::LoadBalancer.all.items.detect {|key| key.id == id} Civo::LoadBalancer.remove(id: id) puts "Removed the load balancer #{loadbalancer.hostname.colorize(:green)} with ID #{loadbalancer.id.colorize(:green)}" rescue Flexirest::HTTPException => e puts e.result.reason.colorize(:red) exit 1 end |
#update(id, hostname = nil, protocol = nil, tls_certificate = nil, tls_key = nil, port = nil, max_request_size = nil, policy = nil, health_check_path = nil, fail_timeout = nil, max_conns = nil, ignore_invalid_backend_tls = nil, backend = nil) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/loadbalancer.rb', line 101 def update(id, hostname = nil, protocol = nil, tls_certificate = nil, tls_key = nil, port = nil, max_request_size = nil, policy = nil, health_check_path = nil, fail_timeout = nil, max_conns = nil, ignore_invalid_backend_tls = nil, backend = nil) CivoCLI::Config.set_api_auth loadbalancer = Civo::LoadBalancer.all.items.detect {|key| key.id == id} if [:backend] backends = {} [:backend].each do | key, value | backends[key] = value end backendarray = [] backendarray << backends end Civo::LoadBalancer.update(id: loadbalancer.id, hostname: [:hostname] || loadbalancer.hostname, protocol: [:protocol] || loadbalancer.protocol, tls_certificate: [:tls_certificate] || loadbalancer.tls_certificate, tls_key: [:tls_key] || loadbalancer.tls_key, port: [:port] || loadbalancer.port, max_request_size: [:max_request_size] || loadbalancer.max_request_size, policy: [:policy] || loadbalancer.policy, health_check_path: [:health_check_path] || loadbalancer.health_check_path, fail_timeout: [:fail_timeout] || loadbalancer.fail_timeout, max_conns: [:max_conns] || loadbalancer.max_conns, ignore_invalid_backend_tls: [:ignore_invalid_backend_tls] || loadbalancer.ignore_invalid_backend_tls, backends: backendarray || loadbalancer.backends ) puts "Updated Load Balancer #{loadbalancer.hostname.colorize(:green)}" end |