def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to add Group l3. URL: groupl3/ """ try: self.log.info('Add Group l3') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, 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.') group_l3_map = networkapi_map.get('group_l3') if group_l3_map is None: return self.response_error(3, u'There is no value to the group_l3 tag of XML request.') # Get XML data name = group_l3_map.get('name') try: GrupoL3.get_by_name(name) raise GrupoL3NameDuplicatedError( None, u'Já existe um grupo l3 com o valor name %s.' % name) except GroupL3NotFoundError: pass l3_group = GrupoL3() # set variables l3_group.nome = name try: # save Group l3 l3_group.save() except Exception, e: self.log.error(u'Failed to save the Group l3.') raise AmbienteError(e, u'Failed to save the Group l3.') l3_group_map = dict() l3_group_map['group_l3'] = model_to_dict( l3_group, exclude=['nome']) return self.response(dumps_networkapi(l3_group_map))
def handle_put(self, request, user, *args, **kwargs): """Treat requests PUT to edit Group l3. URL: groupl3/<id_groupl3>/ """ try: self.log.info('Edit Group l3') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_groupl3 = kwargs.get('id_groupl3') # 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.') group_l3_map = networkapi_map.get('group_l3') if group_l3_map is None: return self.response_error(3, u'There is no value to the group_l3 tag of XML request.') # Get XML data name = group_l3_map.get('name') # Valid ID Group L3 if not is_valid_int_greater_zero_param(id_groupl3): self.log.error( u'The id_groupl3 parameter is not a valid value: %s.', id_groupl3) raise InvalidValueError(None, 'id_groupl3', id_groupl3) # Valid name if not is_valid_string_minsize(name, 2) or not is_valid_string_maxsize(name, 80): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) # Find GroupL3 by ID to check if it exist groupl3 = GrupoL3.get_by_pk(id_groupl3) with distributedlock(LOCK_GROUP_L3 % id_groupl3): try: if groupl3.nome.lower() != name.lower(): GrupoL3.get_by_name(name) raise GrupoL3NameDuplicatedError( None, u'Já existe um grupo l3 com o valor name %s.' % name) except GroupL3NotFoundError: pass # set variables groupl3.nome = name try: # update Group l3 groupl3.save() except Exception, e: self.log.error(u'Failed to update the Group l3.') raise AmbienteError(e, u'Failed to update the Group l3.') 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): """Treat requests PUT to edit Group l3. URL: groupl3/<id_groupl3>/ """ try: self.log.info('Edit Group l3') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_groupl3 = kwargs.get('id_groupl3') # 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.' ) group_l3_map = networkapi_map.get('group_l3') if group_l3_map is None: return self.response_error( 3, u'There is no value to the group_l3 tag of XML request.') # Get XML data name = group_l3_map.get('name') # Valid ID Group L3 if not is_valid_int_greater_zero_param(id_groupl3): self.log.error( u'The id_groupl3 parameter is not a valid value: %s.', id_groupl3) raise InvalidValueError(None, 'id_groupl3', id_groupl3) # Valid name if not is_valid_string_minsize( name, 2) or not is_valid_string_maxsize(name, 80): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) # Find GroupL3 by ID to check if it exist groupl3 = GrupoL3.get_by_pk(id_groupl3) with distributedlock(LOCK_GROUP_L3 % id_groupl3): try: if groupl3.nome.lower() != name.lower(): GrupoL3.get_by_name(name) raise GrupoL3NameDuplicatedError( None, u'Já existe um grupo l3 com o valor name %s.' % name) except GroupL3NotFoundError: pass # set variables groupl3.nome = name try: # update Group l3 groupl3.save() except Exception, e: self.log.error(u'Failed to update the Group l3.') raise AmbienteError(e, u'Failed to update the Group l3.') return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)