示例#1
0
def undeploy(self, pool_id, user_id):

    msg = {
        'object_type': 'pool',
        'action': 'undeploy',
        'object_id': pool_id
    }
    self.update_state(
        state='PROGRESS',
        meta=msg
    )

    pool_obj = facade.get_pool_by_id(pool_id)
    pool_serializer = serializers.PoolV3Serializer(pool_obj)
    locks_list = create_lock([pool_id], LOCK_POOL)

    user = Usuario.objects.get(id=user_id)

    try:
        facade_pool_deploy.delete_real_pool([pool_serializer.data], user)

    except Exception, exception:
        msg['message'] = 'Pool {} was not undeployed.'.format(pool_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
示例#2
0
def undeploy(self, vip_id, user_id):

    msg = {
        'object_type': 'vip-request',
        'action': 'redeploy',
        'object_id': vip_id
    }
    self.update_state(
        state='PROGRESS',
        meta=msg
    )

    vip_obj = facade.get_vip_request_by_id(vip_id)
    vip_serializer = VipRequestV3Serializer(
        vip_obj, include=('ports__identifier',))
    locks_list = create_lock([vip_id], LOCK_VIP)

    user = Usuario.objects.get(id=user_id)

    try:
        facade.delete_real_vip_request([vip_serializer.data], user)

    except Exception, exception:
        msg['message'] = 'Vip Request {} was not undeployed.'.format(vip_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
示例#3
0
def redeploy(self, pool_dict, user_id):

    pool_id = pool_dict.get('id')
    msg = {
        'object_type': 'pool',
        'action': 'redeploy',
        'object_id': pool_id
    }
    self.update_state(
        state='PROGRESS',
        meta=msg
    )

    pool_obj = facade.get_pool_by_id(pool_id)
    locks_list = create_lock([pool_id], LOCK_POOL)

    user = Usuario.objects.get(id=user_id)

    try:
        facade_pool_deploy.update_real_pool([pool_dict], user)

    except Exception, exception:
        msg['message'] = 'Pool {} was not redeployed.'.format(pool_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
示例#4
0
def redeploy(self, vip_dict, user_id):

    vip_id = vip_dict.get('id')
    msg = {
        'object_type': 'vip-request',
        'action': 'redeploy',
        'object_id': vip_id
    }
    self.update_state(
        state='PROGRESS',
        meta=msg
    )

    locks_list = create_lock([vip_id], LOCK_VIP)

    user = Usuario.objects.get(id=user_id)

    try:
        vip_obj = facade.get_vip_request_by_id(vip_id)
        facade.update_real_vip_request([vip_dict], user)

    except Exception, exception:
        msg['message'] = 'Vip Request {} was not redeployed.'.format(vip_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
示例#5
0
def delete_vlan(vlan):
    """Delete vlans by ids."""

    locks_list = create_lock([vlan], LOCK_VLAN)
    try:
        vlan_obj = get_vlan_by_id(vlan)
        vlan_obj.delete_v3()
    except ObjectDoesNotExistException, e:
        raise ObjectDoesNotExistException(str(e))
示例#6
0
def delete_equipment(equipments):
    """Delete equipment by ids"""

    locks_list = create_lock(equipments, LOCK_EQUIPMENT)

    try:
        for equipment in equipments:
            equipment_obj = get_equipment_by_id(equipment)
            equipment_obj.delete_v4()
    except ObjectDoesNotExistException, e:
        raise ObjectDoesNotExistException(e.detail)
示例#7
0
def delete_equipment(equipments):
    """Delete equipment by ids"""

    locks_list = create_lock(equipments, LOCK_EQUIPMENT)

    try:
        for equipment in equipments:
            equipment_obj = get_equipment_by_id(equipment)
            equipment_obj.delete_v3()
    except ObjectDoesNotExistException, e:
        raise ObjectDoesNotExistException(e.detail)
示例#8
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes list of vlans
        """

        obj_ids = kwargs['obj_ids'].split(';')
        locks_list = create_lock(obj_ids, LOCK_VLAN)
        try:
            facade.delete_vlan(obj_ids)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#9
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes list of equipments
        """

        obj_ids = kwargs['obj_id'].split(';')
        locks_list = create_lock(obj_ids, LOCK_EQUIPMENT)
        try:
            facade.delete_equipment(obj_ids)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#10
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes list of vip request
        """

        vip_request_ids = kwargs['vip_request_ids'].split(';')
        locks_list = create_lock(vip_request_ids, LOCK_VIP)
        keepip = request.GET.get('keepip') or '0'
        try:
            facade.delete_vip_request(vip_request_ids, keepip)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#11
0
def update_equipment(equipments, user):
    """Update equipment."""

    locks_list = create_lock(equipments, LOCK_EQUIPMENT)
    response = list()

    try:
        for equipment in equipments:
            equipment_obj = get_equipment_by_id(equipment.get('id'))
            equipment_obj.update_v3(equipment)
            response.append({'id': equipment_obj.id})
    except ObjectDoesNotExistException, e:
        raise ObjectDoesNotExistException(e.detail)
示例#12
0
    def delete(self, request, *args, **kwargs):
        """Deletes list of interfaces."""

        obj_ids = kwargs.get('obj_ids').split(';')
        locks_list = create_lock(obj_ids, LOCK_INTERFACE)

        for obj in obj_ids:
            try:
                facade.delete_interface(obj)
            finally:
                destroy_lock(locks_list)

        return Response({}, status=status.HTTP_200_OK)
示例#13
0
def update_equipment(equipments, user):
    """Update equipment."""

    locks_list = create_lock(equipments, LOCK_EQUIPMENT)
    response = list()

    try:
        for equipment in equipments:
            equipment_obj = get_equipment_by_id(equipment.get('id'))
            equipment_obj.update_v4(equipment)
            response.append({'id': equipment_obj.id})
    except ObjectDoesNotExistException, e:
        raise ObjectDoesNotExistException(e.detail)
def delete_equipment(equipments, force=None, user=None):
    """Delete equipment by ids"""

    locks_list = create_lock(equipments, LOCK_EQUIPMENT)

    try:
        for equipment in equipments:
            equipment_obj = get_equipment_by_id(equipment)
            if force is not None:
                equipment_obj.delete_equipment_relationship(user)
            equipment_obj.delete_v3()
    except ObjectDoesNotExistException, e:
        raise ObjectDoesNotExistException(e.detail)
示例#15
0
    def delete(self, request, *args, **kwargs):
        """Deletes list of interfaces."""

        obj_ids = kwargs.get('obj_ids').split(';')
        locks_list = create_lock(obj_ids, LOCK_INTERFACE)

        for obj in obj_ids:
            try:
                facade.delete_interface(obj)
            finally:
                destroy_lock(locks_list)

        return Response({}, status=status.HTTP_200_OK)
示例#16
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes list of vip request
        """

        vip_request_ids = kwargs['obj_ids'].split(';')
        locks_list = create_lock(vip_request_ids, LOCK_VIP)
        keepip = request.GET.get('keepip', '0')
        try:
            facade.delete_vip_request(
                vip_request_ids, keepip)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#17
0
    def patch(self, request, *args, **kwargs):
        """
        Updates list of vip request in equipments

        """
        vips = request.DATA
        json_validate(SPECS.get('vip_request_patch')).validate(vips)
        locks_list = create_lock(vips.get('vips'), LOCK_VIP)
        try:
            response = facade.patch_real_vip_request(
                vips['vips'], request.user)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#18
0
    def delete(self, request, *args, **kwargs):
        """Remove link between interfaces."""

        interface_a = kwargs.get('interface_a')
        interface_b = kwargs.get('interface_b')

        locks_list = create_lock([interface_a], LOCK_INTERFACE)

        try:
            facade.remove_link([interface_a, interface_b])
        finally:
            destroy_lock(locks_list)

        return Response({}, status=status.HTTP_200_OK)
示例#19
0
    def delete(self, request, *args, **kwargs):
        """Remove link between interfaces."""

        interface_a = kwargs.get('interface_a')
        interface_b = kwargs.get('interface_b')

        locks_list = create_lock([interface_a], LOCK_INTERFACE)

        try:
            facade.remove_link([interface_a, interface_b])
        finally:
            destroy_lock(locks_list)

        return Response({}, status=status.HTTP_200_OK)
示例#20
0
    def get(self, request, *args, **kwargs):
        """
        Returns a list of pools with updated states of members
        """

        pool_ids = kwargs.get('obj_ids').split(';')
        checkstatus = request.GET.get('checkstatus') or '0'

        response = dict()

        server_pools = models_vips.ServerPool.objects.filter(
            id__in=pool_ids)

        if checkstatus == '1':

            serializer_server_pool = serializers.PoolV3Serializer(
                server_pools,
                many=True
            )

            try:

                locks_list = create_lock(
                    serializer_server_pool.data, LOCK_POOL)

                mbr_state = facade_pool_deploy.get_poolmember_state(
                    serializer_server_pool.data)

                for server_pool in server_pools:

                    if mbr_state.get(server_pool.id):
                        query_pools = models_vips.ServerPoolMember.objects.filter(
                            server_pool=server_pool)

                        for pm in query_pools:

                            member_checked_status = mbr_state[
                                server_pool.id][pm.id]
                            pm.member_status = member_checked_status
                            pm.last_status_update = datetime.now()
                            pm.save(request.user)

                # get pools updated
                server_pools = models_vips.ServerPool.objects.filter(
                    id__in=pool_ids)
            except Exception, exception:
                log.error(exception)
                raise rest_exceptions.NetworkAPIException(exception)
            finally:
示例#21
0
    def put(self, request, *args, **kwargs):
        """
        Updates pools by list in equipments
        """

        server_pools = request.DATA
        json_validate(SPECS.get('pool_put')).validate(server_pools)
        verify_ports(server_pools)
        locks_list = create_lock(server_pools.get('server_pools'), LOCK_POOL)
        try:
            response = facade_pool_deploy.update_real_pool(
                server_pools.get('server_pools'), request.user)
        except Exception, exception:
            log.error(exception)
            raise rest_exceptions.NetworkAPIException(exception)
示例#22
0
    def put(self, request, *args, **kwargs):
        """
        Updates pools by list in equipments
        """

        server_pools = request.DATA
        json_validate(SPECS.get('pool_put')).validate(server_pools)
        verify_ports(server_pools)
        locks_list = create_lock(server_pools.get('server_pools'), LOCK_POOL)
        try:
            response = facade_pool_deploy.update_real_pool(
                server_pools, request.user)
        except Exception, exception:
            log.error(exception)
            raise rest_exceptions.NetworkAPIException(exception)
示例#23
0
    def post(self, request, *args, **kwargs):
        """
        Creates pools by list in equipments
        """

        pool_ids = kwargs['pool_ids'].split(';')
        pools = facade.get_pool_by_ids(pool_ids)
        pool_serializer = serializers.PoolV3Serializer(pools, many=True)
        locks_list = create_lock(pool_serializer.data, LOCK_POOL)
        try:
            response = facade_pool_deploy.create_real_pool(
                pool_serializer.data, request.user)
        except Exception, exception:
            log.error(exception)
            raise rest_exceptions.NetworkAPIException(exception)
示例#24
0
    def post(self, request, *args, **kwargs):
        """
        Creates pools by list in equipments
        """

        pool_ids = kwargs['obj_ids'].split(';')
        pools = facade.get_pool_by_ids(pool_ids)
        pool_serializer = serializers.PoolV3Serializer(pools, many=True)
        locks_list = create_lock(pool_serializer.data, LOCK_POOL)
        try:
            response = facade_pool_deploy.create_real_pool(
                pool_serializer.data, request.user)
        except Exception, exception:
            log.error(exception)
            raise rest_exceptions.NetworkAPIException(exception)
示例#25
0
    def get(self, request, *args, **kwargs):
        """
        Returns a list of pools with updated states of members
        """

        pool_ids = kwargs.get('obj_ids').split(';')
        checkstatus = request.GET.get('checkstatus') or '0'

        response = dict()

        server_pools = models_vips.ServerPool.objects.filter(
            id__in=pool_ids)

        if checkstatus == '1':

            serializer_server_pool = serializers.PoolV3Serializer(
                server_pools,
                many=True
            )

            try:

                locks_list = create_lock(serializer_server_pool.data, LOCK_POOL)

                mbr_state = facade_pool_deploy.get_poolmember_state(
                    serializer_server_pool.data)

                for server_pool in server_pools:

                    if mbr_state.get(server_pool.id):
                        query_pools = models_vips.ServerPoolMember.objects.filter(
                            server_pool=server_pool)

                        for pm in query_pools:

                            member_checked_status = mbr_state[
                                server_pool.id][pm.id]
                            pm.member_status = member_checked_status
                            pm.last_status_update = datetime.now()
                            pm.save(request.user)

                # get pools updated
                server_pools = models_vips.ServerPool.objects.filter(
                    id__in=pool_ids)
            except Exception, exception:
                log.error(exception)
                raise rest_exceptions.NetworkAPIException(exception)
            finally:
示例#26
0
    def put(self, request, *args, **kwargs):
        """
        Updates list of vip request
        """
        data = request.DATA

        json_validate(SPECS.get('vip_request_put')).validate(data)

        locks_list = create_lock(data['vips'], LOCK_VIP)
        try:
            verify_ports_vip(data)
            for vip in data['vips']:
                facade.update_vip_request(vip, request.user)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#27
0
    def put(self, request, *args, **kwargs):
        """Updates list of interfaces."""

        response = list()
        data = request.DATA

        json_validate(SPECS.get('interface_put')).validate(data)
        locks_list = create_lock(data['interfaces'], LOCK_INTERFACE)

        for interface in data['interfaces']:
            try:
                interface = facade.update_interface(interface)
                response.append({'id': interface.id})
            finally:
                destroy_lock(locks_list)

        return Response(response, status=status.HTTP_200_OK)
示例#28
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes pools by list in equipments
        :url /api/v3/pool/deploy/<pool_ids>/
        :param pool_ids=<pool_ids>
        """

        pool_ids = kwargs['obj_ids'].split(';')
        pools = facade.get_pool_by_ids(pool_ids)
        pool_serializer = serializers.PoolV3Serializer(pools, many=True)
        locks_list = create_lock(pool_serializer.data, LOCK_POOL)
        try:
            response = facade_pool_deploy.delete_real_pool(
                pool_serializer.data, request.user)
        except Exception, exception:
            log.error(exception)
            raise rest_exceptions.NetworkAPIException(exception)
示例#29
0
    def put(self, request, *args, **kwargs):
        """Updates list of interfaces."""

        response = list()
        data = request.DATA

        json_validate(SPECS.get('interface_put')).validate(data)
        locks_list = create_lock(data['interfaces'], LOCK_INTERFACE)

        for interface in data['interfaces']:
            try:
                interface = facade.update_interface(interface)
                response.append({'id': interface.id})
            finally:
                destroy_lock(locks_list)

        return Response(response, status=status.HTTP_200_OK)
示例#30
0
    def put(self, request, *args, **kwargs):
        """
        Updates list of equipments
        """
        data = request.DATA

        json_validate(SPECS.get('equipment_put')).validate(data)

        locks_list = create_lock(data['equipments'], LOCK_EQUIPMENT)
        try:
            response = list()
            for equipment in data['equipments']:
                eqpt = facade.update_equipment(equipment, request.user)
                response.append({'id': eqpt.id})
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#31
0
    def put(self, request, *args, **kwargs):
        """
        Updates list of vlans
        """
        data = request.DATA

        json_validate(SPECS.get('vlan_put')).validate(data)

        locks_list = create_lock(data['vlans'], LOCK_VLAN)

        response = list()
        try:
            for vlan in data['vlans']:
                vl = facade.update_vlan(vlan, request.user)
                response.append({'id': vl.id})
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#32
0
    def delete(self, request, *args, **kwargs):
        """
        Remove the relationship between an interface and environments.

        :param kwargs: obj_ids
        :return: 200 OK
        """

        obj_ids = kwargs.get('obj_ids').split(';')
        locks_list = create_lock(obj_ids, LOCK_INTERFACE)

        for obj in obj_ids:
            try:
                facade.delete_interface_environments(obj)
            finally:
                destroy_lock(locks_list)

        return Response({}, status=status.HTTP_200_OK)
示例#33
0
    def delete(self, request, *args, **kwargs):
        """
        Remove the relationship between an interface and environments.

        :param kwargs: obj_ids
        :return: 200 OK
        """

        obj_ids = kwargs.get('obj_ids').split(';')
        locks_list = create_lock(obj_ids, LOCK_INTERFACE)

        for obj in obj_ids:
            try:
                facade.delete_interface_environments(obj)
            finally:
                destroy_lock(locks_list)

        return Response({}, status=status.HTTP_200_OK)
示例#34
0
    def post(self, request, *args, **kwargs):
        """
        Creates list of vip request in equipments
        :url /api/v3/vip-request/deploy/<vip_request_ids>/
        :param vip_request_ids=<vip_request_ids>
        """

        vip_request_ids = kwargs['obj_ids'].split(';')
        vips = facade.get_vip_request_by_ids(vip_request_ids)
        vip_serializer = VipRequestV3Serializer(
            vips, many=True, include=('ports__identifier',))

        locks_list = create_lock(vip_serializer.data, LOCK_VIP)
        try:
            response = facade.create_real_vip_request(
                vip_serializer.data, request.user)
        except Exception, exception:
            log.error(exception)
            raise api_exceptions.NetworkAPIException(exception)
示例#35
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes pools by list in equipments
        :url /api/v3/pool/deploy/<pool_ids>/
        :param pool_ids=<pool_ids>
        """

        pool_ids = kwargs['obj_ids'].split(';')
        cleanup = request.GET.get('cleanup') or '0'

        pools = facade.get_pool_by_ids(pool_ids)
        pool_serializer = serializers.PoolV3Serializer(pools, many=True)
        locks_list = create_lock(pool_serializer.data, LOCK_POOL)
        try:
            response = facade_pool_deploy.delete_real_pool(
                pool_serializer.data, request.user, cleanup)
        except Exception, exception:
            log.error(exception)
            raise rest_exceptions.NetworkAPIException(exception)
def redeploy(self, pool_dict, user_id):

    pool_id = pool_dict.get('id')
    msg = {'object_type': 'pool', 'action': 'redeploy', 'object_id': pool_id}
    self.update_state(state='PROGRESS', meta=msg)

    pool_obj = facade.get_pool_by_id(pool_id)
    locks_list = create_lock([pool_id], LOCK_POOL)

    user = Usuario.objects.get(id=user_id)

    try:
        facade_pool_deploy.update_real_pool([pool_dict], user)

    except Exception, exception:
        msg['message'] = 'Pool {} was not redeployed.'.format(pool_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
def undeploy(self, pool_id, user_id):

    msg = {'object_type': 'pool', 'action': 'undeploy', 'object_id': pool_id}
    self.update_state(state='PROGRESS', meta=msg)

    pool_obj = facade.get_pool_by_id(pool_id)
    pool_serializer = serializers.PoolV3Serializer(pool_obj)
    locks_list = create_lock([pool_id], LOCK_POOL)

    user = Usuario.objects.get(id=user_id)

    try:
        facade_pool_deploy.delete_real_pool([pool_serializer.data], user)

    except Exception, exception:
        msg['message'] = 'Pool {} was not undeployed.'.format(pool_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
示例#38
0
    def delete(self, request, *args, **kwargs):
        """
        Deletes list of neighbor in equipments
        :url /api/v4/neighbor/deploy/<neighbor_ids>/
        :param neighbor_ids=<neighbor_ids>
        """

        neighbor_ids = kwargs['obj_ids'].split(';')
        neighbors = facade.get_neighbor_by_ids(neighbor_ids)
        neighbor_serializer = serializers.NeighborV4Serializer(neighbors,
                                                               many=True)

        locks_list = create_lock(neighbor_serializer.data, LOCK_NEIGHBOR)
        try:
            response = facade.undeploy_neighbors(neighbor_serializer.data)
        except NeighborNotCreated as e:
            raise ValidationAPIException(str(e))
        except Exception, exception:
            log.error(exception)
            raise NetworkAPIException(exception)
示例#39
0
def redeploy(self, vip_dict, user_id):

    vip_id = vip_dict.get('id')
    msg = {
        'object_type': 'vip-request',
        'action': 'redeploy',
        'object_id': vip_id
    }
    self.update_state(state='PROGRESS', meta=msg)

    locks_list = create_lock([vip_id], LOCK_VIP)

    user = Usuario.objects.get(id=user_id)

    try:
        vip_obj = facade.get_vip_request_by_id(vip_id)
        facade.update_real_vip_request([vip_dict], user)

    except Exception, exception:
        msg['message'] = 'Vip Request {} was not redeployed.'.format(vip_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)
示例#40
0
def undeploy(self, vip_id, user_id):

    msg = {
        'object_type': 'vip-request',
        'action': 'redeploy',
        'object_id': vip_id
    }
    self.update_state(state='PROGRESS', meta=msg)

    vip_obj = facade.get_vip_request_by_id(vip_id)
    vip_serializer = VipRequestV3Serializer(vip_obj,
                                            include=('ports__identifier', ))
    locks_list = create_lock([vip_id], LOCK_VIP)

    user = Usuario.objects.get(id=user_id)

    try:
        facade.delete_real_vip_request([vip_serializer.data], user)

    except Exception, exception:
        msg['message'] = 'Vip Request {} was not undeployed.'.format(vip_obj)
        msg['reason'] = str(exception)

        raise Exception(msg)