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)
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_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)
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)
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)