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 """ neutronclient(request).disassociate_health_monitor( kwargs['pool_id'], kwargs['monitor_id'])
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 """ neutronclient(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'], }} neutronclient(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 = neutronclient(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 = neutronclient(request).create_health_monitor(body).get( 'health_monitor') return PoolMonitor(mon)
def provider_network_range_get(request, range_id, expand_subnet=True, **params): _range = neutronclient(request).show_providernet_range( range_id, **params).get('providernet_range') return ProviderNetworkRange(_range)
def provider_network_get(request, providernet_id, expand_subnet=True, **params): providernet = neutronclient(request).show_providernet( providernet_id, **params).get('providernet') return ProviderNetwork(providernet)
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 = neutronclient(request).create_health_monitor(body).get( 'health_monitor') return PoolMonitor(mon)
def _get_target_id_by_instance(self, instance_id, request): """Returns a target ID of floating IP association. :param instance_id: ID of target VM instance :param request: The original request """ # In Neutron one port can have multiple ip addresses, so this # method picks up the first one and generate target id. ports = neutronclient(request).list_ports(device_id=instance_id).get('ports') ports_array = [Port(p) for p in ports] if not ports_array: return None return '{0}_{1}'.format(ports_array[0].id, ports_array[0].fixed_ips[0]['ip_address'])
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 = neutronclient(request).create_member(body).get('member') return Member(member)
def get_routers(self, request, **search_opts): page_size = utils.get_page_size(request) paginate = False if 'paginate' in search_opts: paginate = search_opts.pop('paginate') search_opts['limit'] = page_size + 1 if 'tenant_id' not in search_opts: search_opts['all_tenants'] = True routers_metadata = [] nova_client = novaclient(request) routers = ( neutronclient(request) .list_routers(**search_opts) .get("routers", []) ) for router in routers: search_opts = {'name': 'ak-' + router['id'], 'all_tenants': True} instances = nova_client.servers.list(True, search_opts=search_opts) instance = instances[0] if instances else None image = ( nova_client.images.get(instance.image['id']) if instance else None ) routers_metadata.append(Router( id=router['id'], name=router['name'], latest=image.id == self.image_uuid if image else '', image_name=image.name if image else '', last_fetch=datetime.utcnow(), booted=instance.created if instance else '', status=router['status'], tenant_id=router['tenant_id'], )) has_more_data = False if paginate and len(routers_metadata) > page_size: routers_metadata.pop(-1) has_more_data = True elif paginate and len(routers_metadata) == self.api_limit: has_more_data = True return routers_metadata, has_more_data
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 = neutronclient(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 = neutronclient(request).create_vip(body).get('vip') return Vip(vip)
def vip_delete(request, vip_id): neutronclient(request).delete_vip(vip_id)
def vip_get(request, vip_id): vip = neutronclient(request).show_vip(vip_id).get('vip') return Vip(vip)
def vips_get(request, **kwargs): vips = neutronclient(request).list_vips().get('vips') return [Vip(v) for v in vips]
def delete_a10_appliance(request, id): neutronclient(request).delete_a10_device_instances(id)
def member_get(request, member_id): member = neutronclient(request).show_member(member_id).get('member') return Member(member)
def pool_get(request, pool_id): pool = neutronclient(request).show_pool(pool_id).get('pool') return Pool(pool)
def pool_health_monitor_get(request, monitor_id): monitor = neutronclient(request ).show_health_monitor(monitor_id ).get('health_monitor') return PoolMonitor(monitor)
def pool_health_monitors_get(request, **kwargs): monitors = neutronclient(request ).list_health_monitors().get('health_monitors') return [PoolMonitor(m) for m in monitors]
def vip_update(request, vip_id, **kwargs): vip = neutronclient(request).update_vip(vip_id, kwargs).get('vip') return Vip(vip)
def pool_stats(request, pool_id, **kwargs): stats = neutronclient(request).retrieve_pool_stats(pool_id, **kwargs) return PoolStats(stats)
def pool_delete(request, pool): neutronclient(request).delete_pool(pool)
def pool_update(request, pool_id, **kwargs): pool = neutronclient(request).update_pool(pool_id, kwargs).get('pool') return Pool(pool)
def pool_health_monitor_update(request, monitor_id, **kwargs): monitor = neutronclient(request).update_health_monitor(monitor_id, kwargs) return PoolMonitor(monitor)
def pool_health_monitor_delete(request, mon_id): neutronclient(request).delete_health_monitor(mon_id)
def member_delete(request, mem_id): neutronclient(request).delete_member(mem_id)
def get_a10_appliance(request, id, **params): rv = neutronclient(request).show_a10_device_instance(id).get( a10_device_instance.RESOURCE) return A10Appliance(rv)
def members_get(request, **kwargs): members = neutronclient(request).list_members().get('members') return [Member(m) for m in members]
def update_a10_appliance(request, id, **kwargs): body = {a10_device_instance.RESOURCE: kwargs} rv = neutronclient(request).update_a10_device_instances(id, body=body).get( a10_device_instance.RESOURCE) return A10Appliance(rv)
def member_update(request, member_id, **kwargs): member = neutronclient(request).update_member(member_id, kwargs) return Member(member)
def pools_get(request, **kwargs): pools = neutronclient(request).list_pools().get('pools') return [Pool(p) for p in pools]
def _put(request, path, obj_id, body): return neutronclient(request).put(_mk_url(path, obj_id), body=body)
def pool_health_monitor_get(request, monitor_id): monitor = neutronclient(request).show_health_monitor(monitor_id).get( 'health_monitor') return PoolMonitor(monitor)
def pool_health_monitors_get(request, **kwargs): monitors = neutronclient(request).list_health_monitors().get( 'health_monitors') return [PoolMonitor(m) for m in monitors]
def get_a10_appliances(request, **kwargs): rv = neutronclient(request).list_a10_device_instances(**kwargs).get(a10_device_instance.RESOURCES) return map(A10Appliance, rv)
def get_a10_appliance(request, id, **params): rv = neutronclient(request).show_a10_device_instance(id).get(a10_device_instance.RESOURCE) return A10Appliance(rv)
def update_a10_appliance(request, id, **kwargs): body = {a10_device_instance.RESOURCE: kwargs} rv = neutronclient(request).update_a10_device_instances(id, body=body).get(a10_device_instance.RESOURCE) return A10Appliance(rv)
def _delete(request, path, obj_id): return neutronclient(request).delete(_mk_url(path, obj_id))