def handle_post(self, request, user, *args, **kwargs): """Trata as requisições de POST para criar tipos de rede. URL: /tiporede/ """ # 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 os dados do xml do request 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) # Cria acesso ao equipamento conforme dados recebidos no XML tipo_rede = TipoRede(tipo_rede=nome) tipo_rede.create(user) # Monta dict para response networkapi_map = dict() tipo_rede_map = dict() tipo_rede_map['id'] = tipo_rede.id networkapi_map['tipo_rede'] = tipo_rede_map return self.response(dumps_networkapi(networkapi_map)) except TipoRedeNameDuplicatedError: return self.response_error(253, nome) except XMLError, x: self.log.error(u'Erro ao ler o XML da requisição.') return self.response_error(3, x)
def handle_post(self, request, user, *args, **kwargs): """Trata as requisições de POST para criar tipos de rede. URL: /tiporede/ """ # 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 os dados do xml do request 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) # Cria acesso ao equipamento conforme dados recebidos no XML tipo_rede = TipoRede(tipo_rede=nome) tipo_rede.create(user) # Monta dict para response networkapi_map = dict() tipo_rede_map = dict() tipo_rede_map['id'] = tipo_rede.id networkapi_map['tipo_rede'] = tipo_rede_map return self.response(dumps_networkapi(networkapi_map)) except TipoRedeNameDuplicatedError: return self.response_error(253, nome) except XMLError, x: self.log.error(u'Erro ao ler o XML da requisição.') return self.response_error(3, x)