Example #1
0
    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)