Beispiel #1
0
    def buscar_trafficreturn_opcvip(self, id_ambiente_vip):
        """Search nome_opcao_txt of Option VIP when tipo_opcao = 'Persistencia' ​​by environmentvip_id

        :return: Dictionary with the following structure:

        ::

            {‘persistencia_opt’: ‘persistencia_opt’: <'nome_opcao_txt'>}

        :raise InvalidParameterError: Environment VIP identifier is null and invalid.
        :raise EnvironmentVipNotFoundError: Environment VIP not registered.
        :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if not is_valid_int_param(id_ambiente_vip):
            raise InvalidParameterError(
                'The identifier of environment-vip is invalid or was not informed.'
            )

        url = 'environment-vip/get/trafficreturn/' + str(id_ambiente_vip) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def alterar(self, id_egrupo, nome):
        """Altera os dados de um grupo de equipamento a partir do seu identificador.

        :param id_egrupo: Identificador do grupo de equipamento.
        :param nome: Nome do grupo de equipamento.

        :return: None

        :raise InvalidParameterError: O identificador e/ou o nome do grupo são nulos ou inválidos.
        :raise GrupoEquipamentoNaoExisteError: Grupo de equipamento não cadastrado.
        :raise NomeGrupoEquipamentoDuplicadoError: Nome do grupo de equipamento duplicado.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao ler o XML de requisição ou gerar o XML de resposta.
        """
        if not is_valid_int_param(id_egrupo):
            raise InvalidParameterError(
                u'O identificador do grupo de equipamento é inválido ou não foi informado.')

        url = 'egrupo/' + str(id_egrupo) + '/'

        egrupo_map = dict()
        egrupo_map['nome'] = nome

        code, xml = self.submit({'grupo': egrupo_map}, 'PUT', url)

        return self.response(code, xml)
    def criar(self, id_vlan):
        """Create a VLAN with script 'navlan'.

        :param id_vlan: VLAN identifier.

        :return: Following dictionary:

        ::

          {‘sucesso’: {‘codigo’: < codigo >,
          ‘descricao’: {'stdout':< stdout >, 'stderr':< stderr >}}}

        :raise VlanNaoExisteError: VLAN does not exist.
        :raise EquipamentoNaoExisteError: Equipment in list does not exist.
        :raise VlanError: VLAN is active.
        :raise InvalidParameterError: VLAN identifier is none or invalid.
        :raise InvalidParameterError: Equipment list is none or empty.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        :raise ScriptError: Failed to run the script.
        """

        if not is_valid_int_param(id_vlan):
            raise InvalidParameterError(
                u'Vlan id is invalid or was not informed.')

        url = 'vlan/' + str(id_vlan) + '/criar/'

        code, xml = self.submit({'vlan': None}, 'PUT', url)

        return self.response(code, xml)
Beispiel #4
0
    def listar_por_equipamento(self, id_equipamento):
        """List all interfaces of an equipment.

        :param id_equipamento: Equipment identifier.

        :return: Dictionary with the following:

        ::

            {'interface':
            [{'protegida': < protegida >,
            'nome': < nome >,
            'id_ligacao_front': < id_ligacao_front >,
            'id_equipamento': < id_equipamento >,
            'id': < id >,
            'descricao': < descricao >,
            'id_ligacao_back': < id_ligacao_back >}, ... other interfaces ...]}

        :raise InvalidParameterError: Equipment identifier is invalid or none.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """
        if not is_valid_int_param(id_equipamento):
            raise InvalidParameterError(
                u'Equipment id is invalid or was not informed.')

        url = 'interface/equipamento/' + str(id_equipamento) + '/'

        code, map = self.submit(None, 'GET', url)

        key = 'interface'
        return get_list_map(self.response(code, map, [key]), key)
    def listar_por_marca(self, id_brand):
        """List all Model by Brand.

        :param id_brand: Identifier of the Brand. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {‘model’: [{‘id’: < id >,
            ‘nome’: < nome >,
            ‘id_marca’: < id_marca >}, ... too Model ...]}

        :raise InvalidParameterError: The identifier of Brand is null and invalid.
        :raise MarcaNaoExisteError: Brand not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response
        """

        if not is_valid_int_param(id_brand):
            raise InvalidParameterError(
                u'The identifier of Brand is invalid or was not informed.')

        url = 'model/brand/' + str(id_brand) + '/'

        code, map = self.submit(None, 'GET', url)

        key = 'model'
        return get_list_map(self.response(code, map, [key]), key)
    def listar_por_grupo_usuario(self, id_grupo_usuario):
        """Lista todos os direitos de um grupo de usuário em grupos de equipamento.

        :param id_grupo_usuario: Identificador do grupo de usuário para filtrar a pesquisa.

        :return: Dicionário com a seguinte estrutura:

        ::

            {'direito_grupo_equipamento':
            [{'id_grupo_equipamento': < id_grupo_equipamento >,
            'exclusao': < exclusao >,
            'alterar_config': < alterar_config >,
            'nome_grupo_equipamento': < nome_grupo_equipamento >,
            'id_grupo_usuario': < id_grupo_usuario >,
            'escrita': < escrita >,
            'nome_grupo_usuario': < nome_grupo_usuario >,
            'id': < id >,
            'leitura': < leitura >}, … demais direitos …]}

        :raise InvalidParameterError: O identificador do grupo de usuário é nulo ou inválido.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """
        if not is_valid_int_param(id_grupo_usuario):
            raise InvalidParameterError(
                'O identificador do grupo de usuário é inválido ou não foi informado.'
            )

        url = 'direitosgrupoequipamento/ugrupo/' + str(id_grupo_usuario) + '/'

        code, map = self.submit(None, 'GET', url)

        key = 'direito_grupo_equipamento'
        return get_list_map(self.response(code, map, [key]), key)
Beispiel #7
0
    def listar_por_tipo(self, id_script_type):
        """List all Script by Script Type.

        :param id_script_type: Identifier of the Script Type. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {‘script’: [{‘id’: < id >,
            ‘tipo_roteiro': < id_tipo_roteiro >,
            ‘nome': < nome >,
            ‘descricao’: < descricao >}, ...more Script...]}

        :raise InvalidParameterError: The identifier of Script Type is null and invalid.
        :raise TipoRoteiroNaoExisteError: Script Type not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """
        if not is_valid_int_param(id_script_type):
            raise InvalidParameterError(
                u'The identifier of Script Type is invalid or was not informed.')

        url = 'script/scripttype/' + str(id_script_type) + '/'

        code, map = self.submit(None, 'GET', url)

        key = 'script'
        return get_list_map(self.response(code, map, [key]), key)
    def listar_por_nome(self, nome):
        """Obtém um equipamento a partir do seu nome.

        :param nome: Nome do equipamento.

        :return: Dicionário com a seguinte estrutura:

        ::

            {'equipamento': {'id': < id_equipamento >,
            'nome': < nome_equipamento >,
            'id_tipo_equipamento': < id_tipo_equipamento >,
            'nome_tipo_equipamento': < nome_tipo_equipamento >,
            'id_modelo': < id_modelo >,
            'nome_modelo': < nome_modelo >,
            'id_marca': < id_marca >,
            'nome_marca': < nome_marca >}}

        :raise EquipamentoNaoExisteError: Equipamento com o
            nome informado não cadastrado.
        :raise InvalidParameterError: O nome do equipamento é nulo ou vazio.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """

        if nome == '' or nome is None:
            raise InvalidParameterError(
                u'O nome do equipamento não foi informado.')

        url = 'equipamento/nome/' + urllib.quote(nome) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
Beispiel #9
0
    def get_by_id(self, id_user):
        """Get user by the identifier and their user groups.
        is_more -If  more than 3 of groups of users or no, to control expansion Screen.

        :return: Dictionary with the following structure:

        ::

            {'usuario': [{'nome': < nome >,
            'id': < id >,
            'pwd': < pwd >,
            'user': < user >,
            'ativo': < ativo >,
            'email': < email >,
            'grupos': [nome_grupo, ...more user groups...],
            'user_ldap': < user_ldap >}}


        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """
        if not is_valid_int_param(id_user):
            raise InvalidParameterError(
                u'The identifier of User is invalid or was not informed.')

        url = 'user/get/' + str(id_user) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def get_ipv4(self, id_ip):
        """Get IPv4 by id.

        :param id_ip: ID of IPv4.

        :return: Dictionary with the following structure:

        ::

            {'ip': {'id': < id >,
            'networkipv4': < networkipv4 >,
            'oct4': < oct4 >,
            'oct3': < oct3 >,
            'oct2': < oct2 >,
            'oct1': < oct1 >,
            'descricao': < descricao >,
            'equipamentos': [ { all name of equipments related } ] , }}

        :raise IpNaoExisteError: IP is not registered.
        :raise InvalidParameterError: IP identifier is null or invalid.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if not is_valid_int_param(id_ip):
            raise InvalidParameterError(
                u'The IPv4 identifier is invalid or was not informed.')

        url = 'ip/get-ipv4/' + str(id_ip) + '/'

        code, xml = self.submit(None, 'GET', url)

        key = 'ipv4'
        return get_list_map(self.response(code, xml, ["equipamentos"]), key)
    def find_ip4_by_network(self, id_network):
        """List IPv4 from network.

        :param id_network: Networkv ipv4 identifier. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {'ip': {'id': < id >,
            'id_vlan': < id_vlan >,
            'oct4': < oct4 >,
            'oct3': < oct3 >,
            'oct2': < oct2 >,
            'oct1': < oct1 >,
            'descricao': < descricao >
            'equipamento': [ { all name equipamentos related } ], }}

        :raise IpNaoExisteError: Network does not have any ips.
        :raise InvalidParameterError: Network identifier is none or invalid.
        :raise DataBaseError: Networkapi failed to access the database.
        """

        if not is_valid_int_param(id_network):
            raise InvalidParameterError(
                u'Network identifier is invalid or was not informed.')

        url = 'ip/id_network_ipv4/' + str(id_network) + "/"

        code, xml = self.submit(None, 'GET', url)

        key = "ips"
        return get_list_map(self.response(code, xml, [key]), key)
    def get_available_ip6(self, id_network6):
        """
        Get a available IP in Network ipv6

        :param id_network6: Network ipv6 identifier. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {'ip6': {'ip6': < available_ip6 >}}

        :raise IpNotAvailableError: Network dont have available IP.
        :raise NetworkIPv4NotFoundError: Network was not found.
        :raise UserNotAuthorizedError: User dont have permission to get a available IP.
        :raise InvalidParameterError: Network ipv6 identifier is none or invalid.
        :raise XMLError: Networkapi failed to generate the XML response.
        :raise DataBaseError: Networkapi failed to access the database.

        """

        if not is_valid_int_param(id_network6):
            raise InvalidParameterError(
                u'Network ipv6 identifier is invalid or was not informed.')

        url = 'ip/availableip6/' + str(id_network6) + "/"

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def get_ip_by_equip_and_vip(self, equip_name, id_evip):
        """
        Get a available IP in the Equipment related Environment VIP

        :param equip_name: Equipment Name.
        :param id_evip: Vip environment identifier. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            { 'ipv4': [ {'id': < id >, 'ip': < ip >, 'network': { 'id': < id >, 'network': < network >, 'mask': < mask >, }} ... ],
            'ipv6': [ {'id': < id >, 'ip': < ip >, 'network': { 'id': < id >, 'network': < network >, 'mask': < mask >, }} ... ] }

        :raise InvalidParameterError: Vip environment identifier or equipment name is none or invalid.
        :raise EquipamentoNotFoundError: Equipment not registered.
        :raise EnvironmentVipNotFoundError: Vip environment not registered.
        :raise UserNotAuthorizedError: User dont have permission to perform operation.
        :raise XMLError: Networkapi failed to generate the XML response.
        :raise DataBaseError: Networkapi failed to access the database.
        """

        if not is_valid_int_param(id_evip):
            raise InvalidParameterError(
                u'Vip environment is invalid or was not informed.')

        ip_map = dict()
        ip_map['equip_name'] = equip_name
        ip_map['id_evip'] = id_evip

        url = "ip/getbyequipandevip/"

        code, xml = self.submit({'ip_map': ip_map}, 'POST', url)

        return self.response(code, xml)
Beispiel #14
0
    def alter(self, id_option_vip, tipo_opcao, nome_opcao_txt):
        """Change Option VIP from by the identifier.

        :param id_option_vip: Identifier of the Option VIP. Integer value and greater than zero.
        :param tipo_opcao: Type. String with a maximum of 50 characters and respect [a-zA-Z\_-]
        :param nome_opcao_txt: Name Option. String with a maximum of 50 characters and respect [a-zA-Z\_-]

        :return: None

        :raise InvalidParameterError: Option VIP identifier is null and invalid.
        :raise InvalidParameterError: The value of tipo_opcao or nome_opcao_txt is invalid.
        :raise OptionVipNotFoundError: Option VIP not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if not is_valid_int_param(id_option_vip):
            raise InvalidParameterError(
                'The identifier of Option VIP is invalid or was not informed.')

        optionvip_map = dict()
        optionvip_map['tipo_opcao'] = tipo_opcao
        optionvip_map['nome_opcao_txt'] = nome_opcao_txt

        url = 'optionvip/' + str(id_option_vip) + '/'

        code, xml = self.submit({'option_vip': optionvip_map}, 'PUT', url)

        return self.response(code, xml)
    def buscar_por_id(self, id_direito):
        """Obtém os direitos de um grupo de usuário e um grupo de equipamento.

        :param id_direito: Identificador do direito grupo equipamento.

        :return: Dicionário com a seguinte estrutura:

        ::

            {'direito_grupo_equipamento':
            {'id_grupo_equipamento': < id_grupo_equipamento >,
            'exclusao': < exclusao >,
            'alterar_config': < alterar_config >,
            'nome_grupo_equipamento': < nome_grupo_equipamento >,
            'id_grupo_usuario': < id_grupo_usuario >,
            'escrita': < escrita >,
            'nome_grupo_usuario': < nome_grupo_usuario >,
            'id': < id >,
            'leitura': < leitura >}}

        :raise InvalidParameterError: O identificador do direito grupo equipamento é nulo ou inválido.
        :raise DireitoGrupoEquipamentoNaoExisteError: Direito Grupo Equipamento não cadastrado.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """
        if not is_valid_int_param(id_direito):
            raise InvalidParameterError(
                'O identificador do direito grupo equipamento é inválido ou não foi informado.'
            )

        url = 'direitosgrupoequipamento/' + str(id_direito) + '/'

        code, map = self.submit(None, 'GET', url)

        return self.response(code, map)
Beispiel #16
0
    def list_by_group_out(self, id_ugroup):
        """Search Users out group by Group User by identifier.

        :param id_ugroup: Identifier of the Group User. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {'users': [{'nome': < nome >, 'grupos': < grupos_id >,
            'email': < email >, 'pwd': < pwd >,
            'user': < user >, 'ativo': < ativo >,
            'id': < id >}, ... ] }

        :raise InvalidParameterError: Group User is null and invalid.
        :raise UGrupoNotFoundError: Group User not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if id_ugroup is None:
            raise InvalidParameterError(
                u'The identifier of Group User is invalid or was not informed.'
            )

        url = 'user/out/group/' + str(id_ugroup) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def alterar(self, id_direito, leitura, escrita, alterar_config, exclusao):
        """Altera os direitos de um grupo de usuário em um grupo de equipamento a partir do seu identificador.

        :param id_direito: Identificador do direito grupo equipamento.
        :param leitura: Indicação de permissão de leitura ('0' ou '1').
        :param escrita: Indicação de permissão de escrita ('0' ou '1').
        :param alterar_config: Indicação de permissão de alterar_config ('0' ou '1').
        :param exclusao: Indicação de permissão de exclusão ('0' ou '1').

        :return: None

        :raise InvalidParameterError: Pelo menos um dos parâmetros é nulo ou inválido.
        :raise ValorIndicacaoDireitoInvalidoError: Valor de leitura, escrita, alterar_config e/ou exclusão inválido.
        :raise DireitoGrupoEquipamentoNaoExisteError: Direito Grupo Equipamento não cadastrado.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao ler o XML de requisição ou gerar o XML de resposta.
        """
        if not is_valid_int_param(id_direito):
            raise InvalidParameterError(
                'O identificador do direito grupo equipamento é inválido ou não foi informado.'
            )

        url = 'direitosgrupoequipamento/' + str(id_direito) + '/'

        direito_map = dict()
        direito_map['leitura'] = leitura
        direito_map['escrita'] = escrita
        direito_map['alterar_config'] = alterar_config
        direito_map['exclusao'] = exclusao

        code, xml = self.submit({'direito_grupo_equipamento': direito_map},
                                'PUT', url)

        return self.response(code, xml)
    def listar_por_id(self, id):
        """Obtém um equipamento a partir do seu identificador.

        :param id: ID do equipamento.

        :return: Dicionário com a seguinte estrutura:

        ::

            {'equipamento': {'id': < id_equipamento >,
            'nome': < nome_equipamento >,
            'id_tipo_equipamento': < id_tipo_equipamento >,
            'nome_tipo_equipamento': < nome_tipo_equipamento >,
            'id_modelo': < id_modelo >,
            'nome_modelo': < nome_modelo >,
            'id_marca': < id_marca >,
            'nome_marca': < nome_marca >}}

        :raise EquipamentoNaoExisteError: Equipamento com o
            id informado não cadastrado.
        :raise InvalidParameterError: O nome do equipamento é nulo ou vazio.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """

        if id is None:
            raise InvalidParameterError(
                'O id do equipamento não foi informado.')

        url = 'equipamento/id/' + urllib.parse.quote(id) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def alterar(self, id_brand, name):
        """Change Brand from by the identifier.

        :param id_brand: Identifier of the Brand. Integer value and greater than zero.
        :param name: Brand name. String with a minimum 3 and maximum of 100 characters

        :return: None

        :raise InvalidParameterError: The identifier of Brand or name is null and invalid.
        :raise NomeMarcaDuplicadoError: There is already a registered Brand with the value of name.
        :raise MarcaNaoExisteError: Brand not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if not is_valid_int_param(id_brand):
            raise InvalidParameterError(
                u'The identifier of Brand is invalid or was not informed.')

        url = 'brand/' + str(id_brand) + '/'

        brand_map = dict()
        brand_map['name'] = name

        code, xml = self.submit({'brand': brand_map}, 'PUT', url)

        return self.response(code, xml)
    def remover(self, id_equipamento):
        """Remove um equipamento a partir do seu identificador.

        Além de remover o equipamento, a API também remove:

            - O relacionamento do equipamento com os tipos de acessos.
            - O relacionamento do equipamento com os roteiros.
            - O relacionamento do equipamento com os IPs.
            - As interfaces do equipamento.
            - O relacionamento do equipamento com os ambientes.
            - O relacionamento do equipamento com os grupos.

        :param id_equipamento: Identificador do equipamento.

        :return: None

        :raise EquipamentoNaoExisteError: Equipamento não cadastrado.
        :raise InvalidParameterError: O identificador do equipamento é nulo ou inválido.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """
        if not is_valid_int_param(id_equipamento):
            raise InvalidParameterError(
                'O identificador do equipamento é inválido ou não foi informado.'
            )

        url = 'equipamento/' + str(id_equipamento) + '/'

        code, map = self.submit(None, 'DELETE', url)

        return self.response(code, map)
Beispiel #21
0
    def listar_por_equipamento(self, id_equipment):
        """List all Script related Equipment.

        :param id_equipment: Identifier of the Equipment. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {script': [{‘id’: < id >,
            ‘nome’: < nome >,
            ‘descricao’: < descricao >,
            ‘id_tipo_roteiro’: < id_tipo_roteiro >,
            ‘nome_tipo_roteiro’: < nome_tipo_roteiro >,
            ‘descricao_tipo_roteiro’: < descricao_tipo_roteiro >}, ...more Script...]}

        :raise InvalidParameterError: The identifier of Equipment is null and invalid.
        :raise EquipamentoNaoExisteError: Equipment not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """
        if not is_valid_int_param(id_equipment):
            raise InvalidParameterError(
                u'The identifier of Equipment is invalid or was not informed.')

        url = 'script/equipment/' + str(id_equipment) + '/'

        code, map = self.submit(None, 'GET', url)

        key = 'script'
        return get_list_map(self.response(code, map, [key]), key)
    def get_ips_by_equipment_and_environment(self, equip_nome, id_ambiente):
        """Search Group Equipment from by the identifier.

        :param id_egroup: Identifier of the Group Equipment. Integer value and greater than zero.

        :return: Dictionary with the following structure:

        ::

            {'equipaments':
            [{'nome': < name_equipament >, 'grupos': < id_group >,
            'mark': {'id': < id_mark >, 'nome': < name_mark >},'modelo': < id_model >,
            'tipo_equipamento': < id_type >,
            'model': {'nome': , 'id': < id_model >, 'marca': < id_mark >},
            'type': {id': < id_type >, 'tipo_equipamento': < name_type >},
            'id': < id_equipment >}, ... ]}

        :raise InvalidParameterError: Group Equipment is null and invalid.
        :raise GrupoEquipamentoNaoExisteError: Group Equipment not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if id_ambiente is None:
            raise InvalidParameterError(
                'The environment id is invalid or was not informed.')

        url = 'equipment/getipsbyambiente/' + str(equip_nome) + '/' + str(
            id_ambiente)

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def alterar(self, id_model, id_brand, name):
        """Change Model from by the identifier.

        :param id_model: Identifier of the Model. Integer value and greater than zero.
        :param id_brand: Identifier of the Brand. Integer value and greater than zero.
        :param name: Model name. String with a minimum 3 and maximum of 100 characters

        :return: None

        :raise InvalidParameterError: The identifier of Model, Brand or name is null and invalid.
        :raise MarcaNaoExisteError: Brand not registered.
        :raise ModeloEquipamentoNaoExisteError: Model not registered.
        :raise NomeMarcaModeloDuplicadoError: There is already a registered Model with the value of name and brand.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response
        """

        if not is_valid_int_param(id_model):
            raise InvalidParameterError(
                u'The identifier of Model is invalid or was not informed.')

        model_map = dict()
        model_map['name'] = name
        model_map['id_brand'] = id_brand

        url = 'model/' + str(id_model) + '/'

        code, xml = self.submit({'model': model_map}, 'PUT', url)

        return self.response(code, xml)
    def buscar_healthcheck_por_id(self, id_healthcheck):
        """Get HealthCheck by id.

        :param id_healthcheck: HealthCheck ID.

        :return: Following dictionary:

        ::

            {'healthcheck_expect': {'match_list': < match_list >,
             'expect_string': < expect_string >,
             'id': < id >,
             'ambiente': < ambiente >}}

        :raise HealthCheckNaoExisteError:  HealthCheck not registered.
        :raise InvalidParameterError: HealthCheck identifier is null and invalid.
        :raise DataBaseError: Can't connect to networkapi database.
        :raise XMLError: Failed to generate the XML response.
        """
        if not is_valid_int_param(id_healthcheck):
            raise InvalidParameterError(
                u'O identificador do healthcheck é inválido ou não foi informado.'
            )

        url = 'healthcheckexpect/get/' + str(id_healthcheck) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
Beispiel #25
0
    def alterar(self, id_script_type, type, description):
        """Change Script Type from by the identifier.

        :param id_script_type: Identifier of the Script Type. Integer value and greater than zero.
        :param type: Script Type type. String with a minimum 3 and maximum of 40 characters
        :param description: Script Type description. String with a minimum 3 and maximum of 100 characters

        :return: None

        :raise InvalidParameterError: The identifier of Script Type, type or description is null and invalid.
        :raise TipoRoteiroNaoExisteError: Script Type not registered.
        :raise NomeTipoRoteiroDuplicadoError: Type script already registered with informed.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """
        if not is_valid_int_param(id_script_type):
            raise InvalidParameterError(
                'The identifier of Script Type is invalid or was not informed.'
            )

        script_type_map = dict()
        script_type_map['type'] = type
        script_type_map['description'] = description

        url = 'scripttype/' + str(id_script_type) + '/'

        code, xml = self.submit({'script_type': script_type_map}, 'PUT', url)

        return self.response(code, xml)
    def listar_por_equip(self, equip_id):
        """Lista todos os ambientes por equipamento especifico.

        :return: Dicionário com a seguinte estrutura:

        ::

            {'ambiente': {'id': < id_ambiente >,
            'link': < link >,
            'id_divisao': < id_divisao >,
            'nome_divisao': < nome_divisao >,
            'id_ambiente_logico': < id_ambiente_logico >,
            'nome_ambiente_logico': < nome_ambiente_logico >,
            'id_grupo_l3': < id_grupo_l3 >,
            'nome_grupo_l3': < nome_grupo_l3 >,
            'id_filter': < id_filter >,
            'filter_name': < filter_name >,
            'ambiente_rede': < ambiente_rede >}}

        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """

        if equip_id is None:
            raise InvalidParameterError(
                u'O id do equipamento não foi informado.')

        url = 'ambiente/equip/' + str(equip_id) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def search(self, id_egroup):
        """Search Group Equipament from by the identifier.

        :param id_egroup: Identifier of the Group Equipament. Integer value and greater than zero.

        :return: Following dictionary:

        ::

            {‘group_equipament’:  {‘id’: < id_egrupo >,
            ‘nome’: < nome >} }

        :raise InvalidParameterError: Group Equipament identifier is null and invalid.
        :raise GrupoEquipamentoNaoExisteError: Group Equipament not registered.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if not is_valid_int_param(id_egroup):
            raise InvalidParameterError(
                u'The identifier of Group Equipament is invalid or was not informed.')

        url = 'egroup/' + str(id_egroup) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)
    def listar_healthcheck_expect(self, id_ambiente):
        """Lista os healthcheck_expect´s de um ambiente.

        :param id_ambiente: Identificador do ambiente.

        :return: Dicionário com a seguinte estrutura:

        ::

            {'healthcheck_expect': [{'id': < id_healthcheck_expect >,
             'expect_string': < expect_string >,
             'match_list': < match_list >,
             'id_ambiente': < id_ambiente >},
             ... demais healthcheck_expects ...]}

        :raise InvalidParameterError: O identificador do ambiente é nulo ou inválido.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """

        if not is_valid_int_param(id_ambiente):
            raise InvalidParameterError(
                u'O identificador do ambiente é inválido ou não foi informado.'
            )

        url = 'healthcheckexpect/ambiente/' + str(id_ambiente) + '/'

        code, xml = self.submit(None, 'GET', url)

        key = 'healthcheck_expect'
        return get_list_map(self.response(code, xml, [key]), key)
    def remove(self, id_vlan):
        """Remove a VLAN by your primary key.
        Execute script to remove VLAN

        :param id_vlan: ID for VLAN.

        :return: Following dictionary:

        ::

          {‘sucesso’: {‘codigo’: < codigo >,
          ‘descricao’: {'stdout':< stdout >, 'stderr':< stderr >}}}

        :raise InvalidParameterError: Identifier of the VLAN is invalid.
        :raise VlanNaoExisteError: VLAN not found.
        :raise DataBaseError: Networkapi failed to access the database.
        :raise XMLError: Networkapi failed to generate the XML response.
        """

        if not is_valid_int_param(id_vlan):
            raise InvalidParameterError(
                u'Parameter id_vlan is invalid. Value: ' + id_vlan)

        url = 'vlan/' + str(id_vlan) + '/remove/'

        code, xml = self.submit(None, 'DELETE', url)

        return self.response(code, xml)
Beispiel #30
0
    def buscar_grupo_cache_opcvip(self, id_ambiente_vip):
        """Search nome_opcao_txt of Option VIP when tipo_opcao = 'Grupo de Caches' ​​by environmentvip_id


        :return: Dictionary with the following structure:

        ::

            {‘grupocache_opt’: ‘grupocache_opt’: <'nome_opcao_txt'>}

        :raise EnvironmentVipNotFoundError: Ambiente VIP não encontrado
        :raise OptionVipError: Falha na requisição.
        :raise EnvironmentVipError: Falha na requisição.
        :raise InvalidParameterError: O identificador da requisição de VIP é inválido ou nulo.
        :raise ScriptError: Falha ao executar o script.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise XMLError: Falha na networkapi ao gerar o XML de resposta.
        """

        if not is_valid_int_param(id_ambiente_vip):
            raise InvalidParameterError(
                'The identifier of environment-vip is invalid or was not informed.'
            )

        url = 'environment-vip/get/grupo-cache/' + str(id_ambiente_vip) + '/'

        code, xml = self.submit(None, 'GET', url)

        return self.response(code, xml)