def pool_health_monitor_create(request, **kwargs): """Create a health monitor and associate with pool :param request: request context :param type: type of monitor :param delay: delay of monitor :param timeout: timeout of monitor :param max_retries: max retries [1..10] :param http_method: http method :param url_path: url path :param expected_codes: http return code :param admin_state_up: admin state """ monitor_type = kwargs["type"].upper() body = { "health_monitor": { "type": monitor_type, "delay": kwargs["delay"], "timeout": kwargs["timeout"], "max_retries": kwargs["max_retries"], "admin_state_up": kwargs["admin_state_up"], } } if monitor_type in ["HTTP", "HTTPS"]: body["health_monitor"]["http_method"] = kwargs["http_method"] body["health_monitor"]["url_path"] = kwargs["url_path"] body["health_monitor"]["expected_codes"] = kwargs["expected_codes"] mon = quantumclient(request).create_health_monitor(body).get("health_monitor") body = {"health_monitor": {"id": mon["id"]}} quantumclient(request).associate_health_monitor(kwargs["pool_id"], body) return PoolMonitor(mon)
def pool_health_monitor_create(request, **kwargs): """Create a health monitor and associate with pool :param request: request context :param type: type of monitor :param delay: delay of monitor :param timeout: timeout of monitor :param max_retries: max retries [1..10] :param http_method: http method :param url_path: url path :param expected_codes: http return code :param admin_state_up: admin state """ body = {'health_monitor': {'type': kwargs['type'], 'delay': kwargs['delay'], 'timeout': kwargs['timeout'], 'max_retries': kwargs['max_retries'], 'http_method': kwargs['http_method'], 'url_path': kwargs['url_path'], 'expected_codes': kwargs['expected_codes'], 'admin_state_up': kwargs['admin_state_up'] }} mon = quantumclient(request).create_health_monitor(body).get( 'health_monitor') body = {'health_monitor': {'id': mon['id']}} quantumclient(request).associate_health_monitor( kwargs['pool_id'], body) return PoolMonitor(mon)
def pool_monitor_association_delete(request, **kwargs): """Disassociate a health monitor from pool :param request: request context :param monitor_id: id of monitor :param pool_id: id of pool """ quantumclient(request).disassociate_health_monitor( kwargs['pool_id'], kwargs['monitor_id'])
def pool_monitor_association_create(request, **kwargs): """Associate a health monitor with pool :param request: request context :param monitor_id: id of monitor :param pool_id: id of pool """ body = {'health_monitor': {'id': kwargs['monitor_id'], }} quantumclient(request).associate_health_monitor( kwargs['pool_id'], body)
def vip_create(request, **kwargs): """Create a vip for a specified pool. :param request: request context :param address: virtual IP address :param name: name for vip :param description: description for vip :param subnet_id: subnet_id for subnet of vip :param protocol_port: transport layer port number for vip :returns: Vip object """ body = { "vip": { "address": kwargs["address"], "name": kwargs["name"], "description": kwargs["description"], "subnet_id": kwargs["subnet_id"], "protocol_port": kwargs["protocol_port"], "protocol": kwargs["protocol"], "pool_id": kwargs["pool_id"], "session_persistence": kwargs["session_persistence"], "connection_limit": kwargs["connection_limit"], "admin_state_up": kwargs["admin_state_up"], } } vip = quantumclient(request).create_vip(body).get("vip") return Vip(vip)
def vip_create(request, **kwargs): """Create a vip for a specified pool. :param request: request context :param address: virtual IP address :param name: name for vip :param description: description for vip :param subnet_id: subnet_id for subnet of vip :param protocol_port: transport layer port number for vip :returns: Vip object """ body = { 'vip': { 'address': kwargs['address'], 'name': kwargs['name'], 'description': kwargs['description'], 'subnet_id': kwargs['subnet_id'], 'protocol_port': kwargs['protocol_port'], 'protocol': kwargs['protocol'], 'pool_id': kwargs['pool_id'], 'session_persistence': kwargs['session_persistence'], 'connection_limit': kwargs['connection_limit'], 'admin_state_up': kwargs['admin_state_up'] } } vip = quantumclient(request).create_vip(body).get('vip') return Vip(vip)
def pool_health_monitor_create(request, **kwargs): """Create a health monitor :param request: request context :param type: type of monitor :param delay: delay of monitor :param timeout: timeout of monitor :param max_retries: max retries [1..10] :param http_method: http method :param url_path: url path :param expected_codes: http return code :param admin_state_up: admin state """ monitor_type = kwargs['type'].upper() body = {'health_monitor': {'type': monitor_type, 'delay': kwargs['delay'], 'timeout': kwargs['timeout'], 'max_retries': kwargs['max_retries'], 'admin_state_up': kwargs['admin_state_up'] }} if monitor_type in ['HTTP', 'HTTPS']: body['health_monitor']['http_method'] = kwargs['http_method'] body['health_monitor']['url_path'] = kwargs['url_path'] body['health_monitor']['expected_codes'] = kwargs['expected_codes'] mon = quantumclient(request).create_health_monitor(body).get( 'health_monitor') return PoolMonitor(mon)
def get_publicips_data(self): data = [] c = quantum.quantumclient(self.request) for router in c.list_routers(tenant_id=self.request.user.tenant_id).values()[0]: for port in router.get("ports", []): if port.get("device_owner") != "network:router_gateway": continue ips = [i["ip_address"] for i in port.get("fixed_ips", [])] data.append(PublicIP(None, router.get("name"), ", ".join(ips))) return data
def get_publicips_data(self): data = [] c = quantum.quantumclient(self.request) for router in c.list_routers( tenant_id=self.request.user.tenant_id).values()[0]: for port in router.get('ports', []): if port.get('device_owner') != 'network:router_gateway': continue ips = [i['ip_address'] for i in port.get('fixed_ips', [])] data.append(PublicIP(None, router.get('name'), ', '.join(ips))) return data
def member_create(request, **kwargs): """Create a load balance member :param request: request context :param pool_id: pool_id of pool for member :param address: IP address :param protocol_port: transport layer port number :param weight: weight for member :param admin_state_up: admin_state """ body = {'member': {'pool_id': kwargs['pool_id'], 'address': kwargs['address'], 'protocol_port': kwargs['protocol_port'], 'weight': kwargs['weight'], 'admin_state_up': kwargs['admin_state_up'] }} member = quantumclient(request).create_member(body).get('member') return Member(member)
def pool_create(request, **kwargs): """Create a pool for specified protocol :param request: request context :param name: name for pool :param description: description for pool :param subnet_id: subnet_id for subnet of pool :param protocol: load balanced protocol :param lb_method: load balancer method :param admin_state_up: admin state (default on) """ body = {'pool': {'name': kwargs['name'], 'description': kwargs['description'], 'subnet_id': kwargs['subnet_id'], 'protocol': kwargs['protocol'], 'lb_method': kwargs['lb_method'], 'admin_state_up': kwargs['admin_state_up'] }} pool = quantumclient(request).create_pool(body).get('pool') return Pool(pool)
def member_create(request, **kwargs): """Create a load balance member :param request: request context :param pool_id: pool_id of pool for member :param address: IP address :param protocol_port: transport layer port number :param weight: weight for member :param admin_state_up: admin_state """ body = { "member": { "pool_id": kwargs["pool_id"], "address": kwargs["address"], "protocol_port": kwargs["protocol_port"], "weight": kwargs["weight"], "admin_state_up": kwargs["admin_state_up"], } } member = quantumclient(request).create_member(body).get("member") return Member(member)
def pool_create(request, **kwargs): """Create a pool for specified protocol :param request: request context :param name: name for pool :param description: description for pool :param subnet_id: subnet_id for subnet of pool :param protocol: load balanced protocol :param lb_method: load balancer method :param admin_state_up: admin state (default on) """ body = { "pool": { "name": kwargs["name"], "description": kwargs["description"], "subnet_id": kwargs["subnet_id"], "protocol": kwargs["protocol"], "lb_method": kwargs["lb_method"], "admin_state_up": kwargs["admin_state_up"], } } pool = quantumclient(request).create_pool(body).get("pool") return Pool(pool)
def vip_create(request, **kwargs): """Create a vip for a specified pool. :param request: request context :param address: virtual IP address :param name: name for vip :param description: description for vip :param subnet_id: subnet_id for subnet of vip :param protocol_port: transport layer port number for vip :returns: Vip object """ body = {'vip': {'address': kwargs['address'], 'name': kwargs['name'], 'description': kwargs['description'], 'subnet_id': kwargs['subnet_id'], 'protocol_port': kwargs['protocol_port'], 'protocol': kwargs['protocol'], 'pool_id': kwargs['pool_id'], 'session_persistence': kwargs['session_persistence'], 'connection_limit': kwargs['connection_limit'], 'admin_state_up': kwargs['admin_state_up'] }} vip = quantumclient(request).create_vip(body).get('vip') return Vip(vip)
def pool_stats(request, pool_id, **kwargs): stats = quantumclient(request).retrieve_pool_stats(pool_id, **kwargs) return PoolStats(stats)
def _get(request, path, obj_id): return quantumclient(request).get(_mk_url(path, obj_id))
def pool_update(request, pool_id, **kwargs): pool = quantumclient(request).update_pool(pool_id, kwargs).get('pool') return Pool(pool)
def pool_delete(request, pool): quantumclient(request).delete_pool(pool)
def members_get(request, **kwargs): members = quantumclient(request).list_members().get('members') return [Member(m) for m in members]
def _put(request, path, obj_id, body): return quantumclient(request).put(_mk_url(path, obj_id), body=body)
def vip_delete(request, vip_id): quantumclient(request).delete_vip(vip_id)
def pool_health_monitor_delete(request, mon_id): quantumclient(request).delete_health_monitor(mon_id)
def vip_get(request, vip_id): vip = quantumclient(request).show_vip(vip_id).get('vip') return Vip(vip)
def vip_update(request, vip_id, **kwargs): vip = quantumclient(request).update_vip(vip_id, kwargs).get('vip') return Vip(vip)
def member_update(request, member_id, **kwargs): member = quantumclient(request).update_member(member_id, kwargs) return Member(member)
def _delete(request, path, obj_id): return quantumclient(request).delete(_mk_url(path, obj_id))
def pool_health_monitors_get(request, **kwargs): monitors = quantumclient(request ).list_health_monitors().get('health_monitors') return [PoolMonitor(m) for m in monitors]
def _create(request, path, body): return quantumclient(request).post(_mk_url(path), body=body)
def pool_health_monitor_get(request, monitor_id): monitor = quantumclient(request ).show_health_monitor(monitor_id ).get('health_monitor') return PoolMonitor(monitor)
def pools_get(request, **kwargs): pools = quantumclient(request).list_pools().get('pools') return [Pool(p) for p in pools]
def _list(request, path): return quantumclient(request).get(_mk_url(path))
def pool_get(request, pool_id): pool = quantumclient(request).show_pool(pool_id).get('pool') return Pool(pool)
def member_get(request, member_id): member = quantumclient(request).show_member(member_id).get('member') return Member(member)
def member_delete(request, mem_id): quantumclient(request).delete_member(mem_id)
def vips_get(request, **kwargs): vips = quantumclient(request).list_vips().get('vips') return [Vip(v) for v in vips]