def handle_put(self, request, user, *args, **kwargs): """Trata uma requisição PUT para alterar tipos de rede. URL: /tiporede/<id_tipo_rede>/ """ # Obtém dados do request e verifica acesso try: # Verificar a permissão if not has_perm(user, AdminPermission.NETWORK_TYPE_MANAGEMENT, AdminPermission.WRITE_OPERATION): return self.not_authorized() # Obtém argumentos passados na URL id_tipo_rede = kwargs.get('id_tipo_rede') if id_tipo_rede is None: return self.response_error(256) # Obtém dados do XML xml_map, attrs_map = loads(request.raw_post_data) # Obtém o mapa correspondente ao root node do mapa do XML # (networkapi) networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'Não existe valor para a tag networkapi do XML de requisição.' ) # Verifica a existência do node "tipo_rede" tipo_rede_map = networkapi_map.get('tipo_rede') if tipo_rede_map is None: return self.response_error( 3, u'Não existe valor para a tag tipo_rede do XML de requisição.' ) # Verifica a existência do valor "fqdn" nome = tipo_rede_map.get('nome') if nome is None: return self.response_error(176) # Altera o tipo de redeconforme dados recebidos no XML TipoRede.update(user, id_tipo_rede, tipo_rede=nome) # Retorna response vazio em caso de sucesso return self.response(dumps_networkapi({})) except XMLError, x: self.log.error(u'Erro ao ler o XML da requisição.') return self.response_error(3, x)
def handle_put(self, request, user, *args, **kwargs): """Trata uma requisição PUT para alterar tipos de rede. URL: /tiporede/<id_tipo_rede>/ """ # Obtém dados do request e verifica acesso try: # Verificar a permissão if not has_perm(user, AdminPermission.NETWORK_TYPE_MANAGEMENT, AdminPermission.WRITE_OPERATION): return self.not_authorized() # Obtém argumentos passados na URL id_tipo_rede = kwargs.get('id_tipo_rede') if id_tipo_rede is None: return self.response_error(256) # Obtém dados do XML xml_map, attrs_map = loads(request.raw_post_data) # Obtém o mapa correspondente ao root node do mapa do XML # (networkapi) networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'Não existe valor para a tag networkapi do XML de requisição.') # Verifica a existência do node "tipo_rede" tipo_rede_map = networkapi_map.get('tipo_rede') if tipo_rede_map is None: return self.response_error(3, u'Não existe valor para a tag tipo_rede do XML de requisição.') # Verifica a existência do valor "fqdn" nome = tipo_rede_map.get('nome') if nome is None: return self.response_error(176) # Altera o tipo de redeconforme dados recebidos no XML TipoRede.update(user, id_tipo_rede, tipo_rede=nome ) # Retorna response vazio em caso de sucesso return self.response(dumps_networkapi({})) except XMLError, x: self.log.error(u'Erro ao ler o XML da requisição.') return self.response_error(3, x)