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)
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)
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)
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)
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)
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)
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)
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)
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)