Ejemplo n.º 1
0
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'])
Ejemplo n.º 2
0
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'])
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
def provider_network_get(request,
                         providernet_id,
                         expand_subnet=True,
                         **params):
    providernet = neutronclient(request).show_providernet(
        providernet_id, **params).get('providernet')
    return ProviderNetwork(providernet)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
    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'])
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
    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
Ejemplo n.º 14
0
    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
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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)
Ejemplo n.º 18
0
def vip_delete(request, vip_id):
    neutronclient(request).delete_vip(vip_id)
Ejemplo n.º 19
0
def vip_get(request, vip_id):
    vip = neutronclient(request).show_vip(vip_id).get('vip')
    return Vip(vip)
Ejemplo n.º 20
0
def vips_get(request, **kwargs):
    vips = neutronclient(request).list_vips().get('vips')
    return [Vip(v) for v in vips]
Ejemplo n.º 21
0
def delete_a10_appliance(request, id):
    neutronclient(request).delete_a10_device_instances(id)
Ejemplo n.º 22
0
def member_get(request, member_id):
    member = neutronclient(request).show_member(member_id).get('member')
    return Member(member)
Ejemplo n.º 23
0
def pool_get(request, pool_id):
    pool = neutronclient(request).show_pool(pool_id).get('pool')
    return Pool(pool)
Ejemplo n.º 24
0
def pool_health_monitor_get(request, monitor_id):
    monitor = neutronclient(request
                            ).show_health_monitor(monitor_id
                                                  ).get('health_monitor')
    return PoolMonitor(monitor)
Ejemplo n.º 25
0
def pool_health_monitors_get(request, **kwargs):
    monitors = neutronclient(request
                             ).list_health_monitors().get('health_monitors')
    return [PoolMonitor(m) for m in monitors]
Ejemplo n.º 26
0
def vip_update(request, vip_id, **kwargs):
    vip = neutronclient(request).update_vip(vip_id, kwargs).get('vip')
    return Vip(vip)
Ejemplo n.º 27
0
def pool_stats(request, pool_id, **kwargs):
    stats = neutronclient(request).retrieve_pool_stats(pool_id, **kwargs)
    return PoolStats(stats)
Ejemplo n.º 28
0
def pool_delete(request, pool):
    neutronclient(request).delete_pool(pool)
Ejemplo n.º 29
0
def pool_update(request, pool_id, **kwargs):
    pool = neutronclient(request).update_pool(pool_id, kwargs).get('pool')
    return Pool(pool)
Ejemplo n.º 30
0
def pool_get(request, pool_id):
    pool = neutronclient(request).show_pool(pool_id).get('pool')
    return Pool(pool)
Ejemplo n.º 31
0
def pool_delete(request, pool):
    neutronclient(request).delete_pool(pool)
Ejemplo n.º 32
0
def pool_health_monitor_update(request, monitor_id, **kwargs):
    monitor = neutronclient(request).update_health_monitor(monitor_id, kwargs)
    return PoolMonitor(monitor)
Ejemplo n.º 33
0
def pool_health_monitor_delete(request, mon_id):
    neutronclient(request).delete_health_monitor(mon_id)
Ejemplo n.º 34
0
def pool_health_monitor_delete(request, mon_id):
    neutronclient(request).delete_health_monitor(mon_id)
Ejemplo n.º 35
0
def member_delete(request, mem_id):
    neutronclient(request).delete_member(mem_id)
Ejemplo n.º 36
0
def vip_get(request, vip_id):
    vip = neutronclient(request).show_vip(vip_id).get('vip')
    return Vip(vip)
Ejemplo n.º 37
0
def get_a10_appliance(request, id, **params):
    rv = neutronclient(request).show_a10_device_instance(id).get(
        a10_device_instance.RESOURCE)
    return A10Appliance(rv)
Ejemplo n.º 38
0
def members_get(request, **kwargs):
    members = neutronclient(request).list_members().get('members')
    return [Member(m) for m in members]
Ejemplo n.º 39
0
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)
Ejemplo n.º 40
0
def member_get(request, member_id):
    member = neutronclient(request).show_member(member_id).get('member')
    return Member(member)
Ejemplo n.º 41
0
def vips_get(request, **kwargs):
    vips = neutronclient(request).list_vips().get('vips')
    return [Vip(v) for v in vips]
Ejemplo n.º 42
0
def member_update(request, member_id, **kwargs):
    member = neutronclient(request).update_member(member_id, kwargs)
    return Member(member)
Ejemplo n.º 43
0
def vip_update(request, vip_id, **kwargs):
    vip = neutronclient(request).update_vip(vip_id, kwargs).get('vip')
    return Vip(vip)
Ejemplo n.º 44
0
def member_delete(request, mem_id):
    neutronclient(request).delete_member(mem_id)
Ejemplo n.º 45
0
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)
Ejemplo n.º 47
0
def pool_update(request, pool_id, **kwargs):
    pool = neutronclient(request).update_pool(pool_id, kwargs).get('pool')
    return Pool(pool)
Ejemplo n.º 48
0
def pool_health_monitor_get(request, monitor_id):
    monitor = neutronclient(request).show_health_monitor(monitor_id).get(
        'health_monitor')
    return PoolMonitor(monitor)
Ejemplo n.º 49
0
def pool_stats(request, pool_id, **kwargs):
    stats = neutronclient(request).retrieve_pool_stats(pool_id, **kwargs)
    return PoolStats(stats)
Ejemplo n.º 50
0
def pools_get(request, **kwargs):
    pools = neutronclient(request).list_pools().get('pools')
    return [Pool(p) for p in pools]
Ejemplo n.º 51
0
def pool_health_monitors_get(request, **kwargs):
    monitors = neutronclient(request).list_health_monitors().get(
        'health_monitors')
    return [PoolMonitor(m) for m in monitors]
Ejemplo n.º 52
0
def get_a10_appliances(request, **kwargs):
    rv = neutronclient(request).list_a10_device_instances(**kwargs).get(a10_device_instance.RESOURCES)
    return map(A10Appliance, rv)
Ejemplo n.º 53
0
def pool_health_monitor_update(request, monitor_id, **kwargs):
    monitor = neutronclient(request).update_health_monitor(monitor_id, kwargs)
    return PoolMonitor(monitor)
Ejemplo n.º 54
0
def get_a10_appliance(request, id, **params):
    rv = neutronclient(request).show_a10_device_instance(id).get(a10_device_instance.RESOURCE)
    return A10Appliance(rv)
Ejemplo n.º 55
0
def members_get(request, **kwargs):
    members = neutronclient(request).list_members().get('members')
    return [Member(m) for m in members]
Ejemplo n.º 56
0
def delete_a10_appliance(request, id):
    neutronclient(request).delete_a10_device_instances(id)
Ejemplo n.º 57
0
def member_update(request, member_id, **kwargs):
    member = neutronclient(request).update_member(member_id, kwargs)
    return Member(member)
Ejemplo n.º 58
0
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))
Ejemplo n.º 60
0
def vip_delete(request, vip_id):
    neutronclient(request).delete_vip(vip_id)