def handle_delete(self, request, user, *args, **kwargs):
        """
        Handles DELETE requests to remove a relationship of OptionVip with EnvironmentVip.

        URL: optionvip/<id_option_vip>/environmentvip/<id_environment_vip>/
        """

        self.log.info("Remove a relationship of OptionVip with EnvironmentVip")

        try:

            # Commons Validations

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP, AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Valid OptionVip ID
            option_vip_id = kwargs.get('id_option_vip')
            if not is_valid_int_greater_zero_param(option_vip_id):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.', option_vip_id)
                raise InvalidValueError(None, 'id_option_vip', option_vip_id)

            # Valid EnvironmentVip ID
            environment_vip_id = kwargs.get('id_environment_vip')
            if not is_valid_int_greater_zero_param(environment_vip_id):
                self.log.error(
                    u'The id_environment_vip parameter is not a valid value: %s.', environment_vip_id)
                raise InvalidValueError(
                    None, 'id_environment_vip', environment_vip_id)

            # Business Validations

            # Existing OptionVip ID
            option_vip = OptionVip.get_by_pk(option_vip_id)

            # Existing EnvironmentVip ID
            environment_vip = EnvironmentVip.get_by_pk(environment_vip_id)

            # Business Rules

            # Find
            opt_vip_env_vip = OptionVipEnvironmentVip().get_by_option_environment(
                option_vip.id, environment_vip.id)

            # Delete
            opt_vip_env_vip.delete()

            # Return nothing
            return self.response(dumps_networkapi({}))

        except UserNotAuthorizedError:
            return self.not_authorized()
        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
    def handle_put(self, request, user, *args, **kwargs):
        """Treat requests PUT to change Option VIP.

        URL: optionvip/<id_option_vip>/
        """

        try:

            self.log.info('Change Option VIP')

            id_option_vip = kwargs.get('id_option_vip')

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP, AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Load XML data
            xml_map, attrs_map = loads(request.raw_post_data)

            # XML data format
            networkapi_map = xml_map.get('networkapi')
            if networkapi_map is None:
                return self.response_error(3, u'There is no value to the networkapi tag  of XML request.')

            optionvip_map = networkapi_map.get('option_vip')
            if optionvip_map is None:
                return self.response_error(3, u'There is no value to the option_vip tag  of XML request.')

            # Valid Option VIP ID
            if not is_valid_int_greater_zero_param(id_option_vip):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.', id_option_vip)
                raise InvalidValueError(None, 'id_option_vip', id_option_vip)

            # Find Option VIP by ID to check if it exist
            option_vip = OptionVip.get_by_pk(id_option_vip)

            with distributedlock(LOCK_OPTIONS_VIP % id_option_vip):

                # Valid Option Vip
                option_vip.valid_option_vip(optionvip_map)

                try:
                    # Update Option Vip
                    option_vip.save()
                except Exception, e:
                    self.log.error(u'Failed to update the option vip.')
                    raise OptionVipError(e, u'Failed to update the option vip')

                return self.response(dumps_networkapi({}))

        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
Beispiel #3
0
def save(request):
    """
    Save Vip Request

    :param request: Request
    :return: Data Serialized Post Save
    """

    data = request.DATA
    user = request.user

    req_vip_serializer = RequestVipSerializer(
        data=data
    )

    if not req_vip_serializer.is_valid():
        log.error(req_vip_serializer.errors)
        raise api_exceptions.ValidationException()

    obj_req_vip = req_vip_serializer.object

    # valid if pools member can linked by environment/environment vip
    # relationship rule
    server_pool_ips_can_associate_with_vip_request(obj_req_vip)

    obj_req_vip.filter_valid = True
    obj_req_vip.validado = False
    set_l7_filter_for_vip(obj_req_vip)
    obj_req_vip.set_new_variables(data)

    # obj_req_vip.trafficreturn=OptionVip.get_by_pk(int(data['trafficreturn']))
    if obj_req_vip.trafficreturn is None:
        obj_req_vip.trafficreturn = OptionVip.get_by_pk(12)

    obj_req_vip.save(user)

    if obj_req_vip.trafficreturn.nome_opcao_txt == 'DSRL3':
        dsrl3_to_vip_obj = DsrL3_to_Vip()
        dsrl3_to_vip_obj.get_dsrl3(obj_req_vip, user)

    for v_port in obj_req_vip.vip_ports_to_pools:
        v_port.requisicao_vip = obj_req_vip
        v_port.save()

    # SYNC_VIP
    syncs.old_to_new(obj_req_vip)

    return req_vip_serializer.data
    def handle_delete(self, request, user, *args, **kwargs):
        """Treat requests PUT to delete Option VIP.

        URL: optionvip/<id_option_vip>/
        """

        try:

            self.log.info('Delete Option VIP')

            id_option_vip = kwargs.get('id_option_vip')

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP,
                            AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Valid Option VIP ID
            if not is_valid_int_greater_zero_param(id_option_vip):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.',
                    id_option_vip)
                raise InvalidValueError(None, 'id_option_vip', id_option_vip)

            # Find Option VIP by ID to check if it exist
            option_vip = OptionVip.get_by_pk(id_option_vip)

            with distributedlock(LOCK_OPTIONS_VIP % id_option_vip):

                try:
                    # Delete Option Vip
                    option_vip.delete(user)
                except Exception, e:
                    self.log.error(u'Failed to delete the option vip.')
                    raise OptionVipError(e, u'Failed to delete the option vip')

                return self.response(dumps_networkapi({}))

        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
    def handle_delete(self, request, user, *args, **kwargs):
        """Treat requests PUT to delete Option VIP.

        URL: optionvip/<id_option_vip>/
        """

        try:

            self.log.info('Delete Option VIP')

            id_option_vip = kwargs.get('id_option_vip')

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP, AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Valid Option VIP ID
            if not is_valid_int_greater_zero_param(id_option_vip):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.', id_option_vip)
                raise InvalidValueError(None, 'id_option_vip', id_option_vip)

            # Find Option VIP by ID to check if it exist
            option_vip = OptionVip.get_by_pk(id_option_vip)

            with distributedlock(LOCK_OPTIONS_VIP % id_option_vip):

                try:
                    # Delete Option Vip
                    option_vip.delete(user)
                except Exception, e:
                    self.log.error(u'Failed to delete the option vip.')
                    raise OptionVipError(e, u'Failed to delete the option vip')

                return self.response(dumps_networkapi({}))

        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
    def handle_put(self, request, user, *args, **kwargs):
        """
        Handles PUT requests to create a relationship of OptionVip with EnvironmentVip.

        URL: optionvip/<id_option_vip>/environmentvip/<id_environment_vip>/
        """

        self.log.info("Create a relationship of OptionVip with EnvironmentVip")

        try:

            # Commons Validations

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP, AdminPermission.WRITE_OPERATION):
                self.log.error(u"User does not have permission to perform the operation.")
                raise UserNotAuthorizedError(None)

            # Valid OptionVip ID
            option_vip_id = kwargs.get("id_option_vip")
            if not is_valid_int_greater_zero_param(option_vip_id):
                self.log.error(u"The id_option_vip parameter is not a valid value: %s.", option_vip_id)
                raise InvalidValueError(None, "id_option_vip", option_vip_id)

            # Valid EnvironmentVip ID
            environment_vip_id = kwargs.get("id_environment_vip")
            if not is_valid_int_greater_zero_param(environment_vip_id):
                self.log.error(u"The id_environment_vip parameter is not a valid value: %s.", environment_vip_id)
                raise InvalidValueError(None, "id_environment_vip", environment_vip_id)

            # Business Validations

            # Existing OptionVip ID
            option_vip = OptionVip.get_by_pk(option_vip_id)

            # Existing EnvironmentVip ID
            environment_vip = EnvironmentVip.get_by_pk(environment_vip_id)

            with distributedlock(LOCK_ENVIRONMENT_VIP % environment_vip_id):

                # Business Rules

                # Set new values
                opt_vip_env_vip = OptionVipEnvironmentVip()
                opt_vip_env_vip.option = option_vip
                opt_vip_env_vip.environment = environment_vip

                # Existing OptionVipEnvironmentVip
                opt_vip_env_vip.validate()

                # Persist
                opt_vip_env_vip.save(user)

                # Return XML
                opt_vip_env_vip_map = dict()
                opt_vip_env_vip_map["opcoesvip_ambiente_xref"] = model_to_dict(opt_vip_env_vip, fields=["id"])

                return self.response(dumps_networkapi(opt_vip_env_vip_map))

        except UserNotAuthorizedError:
            return self.not_authorized()
        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
    def handle_put(self, request, user, *args, **kwargs):
        """Treat requests PUT to change Option VIP.

        URL: optionvip/<id_option_vip>/
        """

        try:

            self.log.info('Change Option VIP')

            id_option_vip = kwargs.get('id_option_vip')

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP,
                            AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Load XML data
            xml_map, attrs_map = loads(request.raw_post_data)

            # XML data format
            networkapi_map = xml_map.get('networkapi')
            if networkapi_map is None:
                return self.response_error(
                    3,
                    u'There is no value to the networkapi tag  of XML request.'
                )

            optionvip_map = networkapi_map.get('option_vip')
            if optionvip_map is None:
                return self.response_error(
                    3,
                    u'There is no value to the option_vip tag  of XML request.'
                )

            # Valid Option VIP ID
            if not is_valid_int_greater_zero_param(id_option_vip):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.',
                    id_option_vip)
                raise InvalidValueError(None, 'id_option_vip', id_option_vip)

            # Find Option VIP by ID to check if it exist
            option_vip = OptionVip.get_by_pk(id_option_vip)

            with distributedlock(LOCK_OPTIONS_VIP % id_option_vip):

                # Valid Option Vip
                option_vip.valid_option_vip(optionvip_map)

                try:
                    # Update Option Vip
                    option_vip.save()
                except Exception, e:
                    self.log.error(u'Failed to update the option vip.')
                    raise OptionVipError(e, u'Failed to update the option vip')

                return self.response(dumps_networkapi({}))

        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
Beispiel #8
0
    def handle_put(self, request, user, *args, **kwargs):
        """
        Handles PUT requests to create a relationship of OptionVip with EnvironmentVip.

        URL: optionvip/<id_option_vip>/environmentvip/<id_environment_vip>/
        """

        self.log.info('Create a relationship of OptionVip with EnvironmentVip')

        try:

            # Commons Validations

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP,
                            AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Valid OptionVip ID
            option_vip_id = kwargs.get('id_option_vip')
            if not is_valid_int_greater_zero_param(option_vip_id):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.',
                    option_vip_id)
                raise InvalidValueError(None, 'id_option_vip', option_vip_id)

            # Valid EnvironmentVip ID
            environment_vip_id = kwargs.get('id_environment_vip')
            if not is_valid_int_greater_zero_param(environment_vip_id):
                self.log.error(
                    u'The id_environment_vip parameter is not a valid value: %s.',
                    environment_vip_id)
                raise InvalidValueError(None, 'id_environment_vip',
                                        environment_vip_id)

            # Business Validations

            # Existing OptionVip ID
            option_vip = OptionVip.get_by_pk(option_vip_id)

            # Existing EnvironmentVip ID
            environment_vip = EnvironmentVip.get_by_pk(environment_vip_id)

            with distributedlock(LOCK_ENVIRONMENT_VIP % environment_vip_id):

                # Business Rules

                # Set new values
                opt_vip_env_vip = OptionVipEnvironmentVip()
                opt_vip_env_vip.option = option_vip
                opt_vip_env_vip.environment = environment_vip

                # Existing OptionVipEnvironmentVip
                opt_vip_env_vip.validate()

                # Persist
                opt_vip_env_vip.save()

                # Return XML
                opt_vip_env_vip_map = dict()
                opt_vip_env_vip_map['opcoesvip_ambiente_xref'] = model_to_dict(
                    opt_vip_env_vip, fields=['id'])

                return self.response(dumps_networkapi(opt_vip_env_vip_map))

        except UserNotAuthorizedError:
            return self.not_authorized()
        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
Beispiel #9
0
    def handle_delete(self, request, user, *args, **kwargs):
        """
        Handles DELETE requests to remove a relationship of OptionVip with EnvironmentVip.

        URL: optionvip/<id_option_vip>/environmentvip/<id_environment_vip>/
        """

        self.log.info('Remove a relationship of OptionVip with EnvironmentVip')

        try:

            # Commons Validations

            # User permission
            if not has_perm(user, AdminPermission.OPTION_VIP,
                            AdminPermission.WRITE_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Valid OptionVip ID
            option_vip_id = kwargs.get('id_option_vip')
            if not is_valid_int_greater_zero_param(option_vip_id):
                self.log.error(
                    u'The id_option_vip parameter is not a valid value: %s.',
                    option_vip_id)
                raise InvalidValueError(None, 'id_option_vip', option_vip_id)

            # Valid EnvironmentVip ID
            environment_vip_id = kwargs.get('id_environment_vip')
            if not is_valid_int_greater_zero_param(environment_vip_id):
                self.log.error(
                    u'The id_environment_vip parameter is not a valid value: %s.',
                    environment_vip_id)
                raise InvalidValueError(None, 'id_environment_vip',
                                        environment_vip_id)

            # Business Validations

            # Existing OptionVip ID
            option_vip = OptionVip.get_by_pk(option_vip_id)

            # Existing EnvironmentVip ID
            environment_vip = EnvironmentVip.get_by_pk(environment_vip_id)

            # Business Rules

            # Find
            opt_vip_env_vip = OptionVipEnvironmentVip(
            ).get_by_option_environment(option_vip.id, environment_vip.id)

            # Delete
            opt_vip_env_vip.delete()

            # Return nothing
            return self.response(dumps_networkapi({}))

        except UserNotAuthorizedError:
            return self.not_authorized()
        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)