示例#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'])
示例#2
0
文件: lbaas.py 项目: nxFelis/horizon
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'])
示例#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)
示例#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)
示例#5
0
文件: lbaas.py 项目: nxFelis/horizon
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)
示例#6
0
文件: lbaas.py 项目: nxFelis/horizon
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)
示例#7
0
文件: neutron.py 项目: starlingx/gui
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)
示例#8
0
文件: neutron.py 项目: starlingx/gui
def provider_network_get(request,
                         providernet_id,
                         expand_subnet=True,
                         **params):
    providernet = neutronclient(request).show_providernet(
        providernet_id, **params).get('providernet')
    return ProviderNetwork(providernet)
示例#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)
示例#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'])
示例#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)
示例#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)
示例#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
示例#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
示例#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)
示例#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)
示例#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)
示例#18
0
文件: lbaas.py 项目: nxFelis/horizon
def vip_delete(request, vip_id):
    neutronclient(request).delete_vip(vip_id)
示例#19
0
文件: lbaas.py 项目: nxFelis/horizon
def vip_get(request, vip_id):
    vip = neutronclient(request).show_vip(vip_id).get('vip')
    return Vip(vip)
示例#20
0
def vips_get(request, **kwargs):
    vips = neutronclient(request).list_vips().get('vips')
    return [Vip(v) for v in vips]
示例#21
0
def delete_a10_appliance(request, id):
    neutronclient(request).delete_a10_device_instances(id)
示例#22
0
文件: lbaas.py 项目: nxFelis/horizon
def member_get(request, member_id):
    member = neutronclient(request).show_member(member_id).get('member')
    return Member(member)
示例#23
0
def pool_get(request, pool_id):
    pool = neutronclient(request).show_pool(pool_id).get('pool')
    return Pool(pool)
示例#24
0
def pool_health_monitor_get(request, monitor_id):
    monitor = neutronclient(request
                            ).show_health_monitor(monitor_id
                                                  ).get('health_monitor')
    return PoolMonitor(monitor)
示例#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]
示例#26
0
def vip_update(request, vip_id, **kwargs):
    vip = neutronclient(request).update_vip(vip_id, kwargs).get('vip')
    return Vip(vip)
示例#27
0
def pool_stats(request, pool_id, **kwargs):
    stats = neutronclient(request).retrieve_pool_stats(pool_id, **kwargs)
    return PoolStats(stats)
示例#28
0
def pool_delete(request, pool):
    neutronclient(request).delete_pool(pool)
示例#29
0
def pool_update(request, pool_id, **kwargs):
    pool = neutronclient(request).update_pool(pool_id, kwargs).get('pool')
    return Pool(pool)
示例#30
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_get(request, pool_id):
    pool = neutronclient(request).show_pool(pool_id).get('pool')
    return Pool(pool)
示例#31
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_delete(request, pool):
    neutronclient(request).delete_pool(pool)
示例#32
0
def pool_health_monitor_update(request, monitor_id, **kwargs):
    monitor = neutronclient(request).update_health_monitor(monitor_id, kwargs)
    return PoolMonitor(monitor)
示例#33
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_health_monitor_delete(request, mon_id):
    neutronclient(request).delete_health_monitor(mon_id)
示例#34
0
def pool_health_monitor_delete(request, mon_id):
    neutronclient(request).delete_health_monitor(mon_id)
示例#35
0
文件: lbaas.py 项目: nxFelis/horizon
def member_delete(request, mem_id):
    neutronclient(request).delete_member(mem_id)
示例#36
0
def vip_get(request, vip_id):
    vip = neutronclient(request).show_vip(vip_id).get('vip')
    return Vip(vip)
示例#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)
示例#38
0
def members_get(request, **kwargs):
    members = neutronclient(request).list_members().get('members')
    return [Member(m) for m in members]
示例#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)
示例#40
0
def member_get(request, member_id):
    member = neutronclient(request).show_member(member_id).get('member')
    return Member(member)
示例#41
0
文件: lbaas.py 项目: nxFelis/horizon
def vips_get(request, **kwargs):
    vips = neutronclient(request).list_vips().get('vips')
    return [Vip(v) for v in vips]
示例#42
0
def member_update(request, member_id, **kwargs):
    member = neutronclient(request).update_member(member_id, kwargs)
    return Member(member)
示例#43
0
文件: lbaas.py 项目: nxFelis/horizon
def vip_update(request, vip_id, **kwargs):
    vip = neutronclient(request).update_vip(vip_id, kwargs).get('vip')
    return Vip(vip)
示例#44
0
def member_delete(request, mem_id):
    neutronclient(request).delete_member(mem_id)
示例#45
0
文件: lbaas.py 项目: nxFelis/horizon
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)
示例#47
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_update(request, pool_id, **kwargs):
    pool = neutronclient(request).update_pool(pool_id, kwargs).get('pool')
    return Pool(pool)
示例#48
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_health_monitor_get(request, monitor_id):
    monitor = neutronclient(request).show_health_monitor(monitor_id).get(
        'health_monitor')
    return PoolMonitor(monitor)
示例#49
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_stats(request, pool_id, **kwargs):
    stats = neutronclient(request).retrieve_pool_stats(pool_id, **kwargs)
    return PoolStats(stats)
示例#50
0
def pools_get(request, **kwargs):
    pools = neutronclient(request).list_pools().get('pools')
    return [Pool(p) for p in pools]
示例#51
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_health_monitors_get(request, **kwargs):
    monitors = neutronclient(request).list_health_monitors().get(
        'health_monitors')
    return [PoolMonitor(m) for m in monitors]
示例#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)
示例#53
0
文件: lbaas.py 项目: nxFelis/horizon
def pool_health_monitor_update(request, monitor_id, **kwargs):
    monitor = neutronclient(request).update_health_monitor(monitor_id, kwargs)
    return PoolMonitor(monitor)
示例#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)
示例#55
0
文件: lbaas.py 项目: nxFelis/horizon
def members_get(request, **kwargs):
    members = neutronclient(request).list_members().get('members')
    return [Member(m) for m in members]
示例#56
0
def delete_a10_appliance(request, id):
    neutronclient(request).delete_a10_device_instances(id)
示例#57
0
文件: lbaas.py 项目: nxFelis/horizon
def member_update(request, member_id, **kwargs):
    member = neutronclient(request).update_member(member_id, kwargs)
    return Member(member)
示例#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))
示例#60
0
def vip_delete(request, vip_id):
    neutronclient(request).delete_vip(vip_id)