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