class Seiso::Connector
Seiso
connector.
- Author
-
Willie Wheeler
- Copyright
-
Copyright © 2014-2015 Expedia, Inc.
- License
-
Apache 2.0
Public Class Methods
new(settings)
click to toggle source
-
settings: a hash containing the following entries:
-
host
-
port
-
use_ssl (default false)
-
ignore_cert (default false)
-
username
-
password
-
# File lib/seiso/connector.rb, line 26 def initialize(settings) host = settings['host'] port = settings['port'] use_ssl = settings['use_ssl'] || false ignore_cert = settings['ignore_cert'] || false username = settings['username'] password = settings['password'] http = create_http(host, port, use_ssl, ignore_cert) @connector_v1 = Seiso::Connector::ConnectorV1.new(http, username, password) end
Public Instance Methods
connector_v1()
click to toggle source
Tests can override this
# File lib/seiso/connector.rb, line 40 def connector_v1 @connector_v1 end
get_items(type)
click to toggle source
GET item list
# File lib/seiso/connector.rb, line 45 def get_items(type) connector_v1.do_get("/v1/#{type}") end
post_items(type, items)
click to toggle source
POST items to Seiso
# File lib/seiso/connector.rb, line 58 def post_items(type, items) if type == 'ip-address-roles' do_put_ip_address_roles items elsif type == 'node-ip-addresses' do_put_node_ip_addresses items elsif type == 'service-instance-ports' do_put_service_instance_ports items else connector_v1.do_post("/v1/#{type}?mode=batch", items) end end
put_item(type, item, key)
click to toggle source
PUT a single item to Seiso
.
-
type: Item type
-
item: Item
-
key: Item key
# File lib/seiso/connector.rb, line 74 def put_item(type, item, key) connector_v1.do_put("/v1/#{type}/#{key}", item) end
Private Instance Methods
create_http(host, port, use_ssl, ignore_cert)
click to toggle source
Create HTTP connector
# File lib/seiso/connector.rb, line 85 def create_http(host, port, use_ssl, ignore_cert) http = Net::HTTP.new(host, port) if use_ssl puts "Using SSL" http.use_ssl = true if ignore_cert puts "Ignoring SSL certificates" http.verify_mode = OpenSSL::SSL::VERIFY_NONE end end http end
do_put_ip_address_roles(roles)
click to toggle source
PUTs a list of IP address roles
-
roles: IP address roles
# File lib/seiso/connector.rb, line 100 def do_put_ip_address_roles(roles) # TODO Implement batch endpoint roles.each do |r| si_key = r['serviceInstance']['key'] name = r['name'] connector_v1.do_put("/v1/service-instances/#{si_key}/ip-address-roles/#{name}", r) end end
do_put_node_ip_addresses(nips)
click to toggle source
PUTs a list of node IP addresses
-
nips: Node IP addresses
# File lib/seiso/connector.rb, line 111 def do_put_node_ip_addresses(nips) # TODO Implement batch endpoint nips.each do |nip| node_name = nip['node']['name'] ip_address = nip['ipAddress'] connector_v1.do_put("/v1/nodes/#{node_name}/ip-addresses/#{ip_address}", nip) end end
do_put_service_instance_ports(ports)
click to toggle source
PUTs a list of service instance ports
-
ports: Service instance ports
# File lib/seiso/connector.rb, line 122 def do_put_service_instance_ports(ports) # TODO Implement batch endpoint ports.each do |p| si_key = p['serviceInstance']['key'] number = p['number'] connector_v1.do_put("/v1/service-instances/#{si_key}/ports/#{number}", p) end end