def search_interface_by_name_and_equipment(self, equipment_id, interface_name, is_new): """Obtém a interface do equipamento e retorna todas as interfaces ligadas no front e no back. """ interface = Interface.get_by_interface_equipment(interface_name, equipment_id) interfaces = interface.search_front_back_interfaces() map_list = [] for interface in interfaces: if is_new: map_list.append(self.get_new_interface_map(interface)) else: map_list.append(self.get_interface_map(interface)) if is_new: return self.response(dumps_networkapi({"interfaces": map_list})) else: return self.response(dumps_networkapi({"interface": map_list}))
def search_interface_by_name_and_equipment(self, equipment_id, interface_name, is_new): '''Obtém a interface do equipamento e retorna todas as interfaces ligadas no front e no back. ''' interface = Interface.get_by_interface_equipment( interface_name, equipment_id) interfaces = interface.search_front_back_interfaces() map_list = [] for interface in interfaces: if is_new: map_list.append(self.get_new_interface_map(interface)) else: map_list.append(self.get_interface_map(interface)) if is_new: return self.response(dumps_networkapi({'interfaces': map_list})) else: return self.response(dumps_networkapi({'interface': map_list}))
def add_remove_check_list_vlan_trunk(self, user, networkapi_map, vlan_id, operation): equipment_map = networkapi_map.get('equipamento') if equipment_map is None: return self.response_error(105) try: name = equipment_map.get('nome') if name is None or name == '': self.log.error(u'Parameter nome is invalid. Value: %s.', name) raise InvalidValueError(None, 'nome', name) interface_name = equipment_map.get('nome_interface') if interface_name is None or interface_name == '': self.log.error( u'Parameter nome_interface is invalid. Value: %s.', interface_name) raise InvalidValueError(None, 'nome_interface', interface_name) if operation != 'list': vlan = Vlan().get_by_pk(vlan_id) # Check existence equipment = Equipamento().get_by_name(name) equip_permission = AdminPermission.EQUIP_UPDATE_CONFIG_OPERATION admin_permission = AdminPermission.WRITE_OPERATION if operation in ['check', 'list']: equip_permission = AdminPermission.EQUIP_READ_OPERATION admin_permission = AdminPermission.READ_OPERATION if not has_perm(user, AdminPermission.VLAN_ALTER_SCRIPT, admin_permission, None, equipment.id, equip_permission): return self.not_authorized() interface = Interface.get_by_interface_equipment( interface_name, equipment.id) if interface.ligacao_front is None: return self.response_error(139) protected = None if operation not in ['check', 'list']: protected = 0 try: switch_interface = interface.get_switch_interface_from_host_interface( protected) except InterfaceNotFoundError: return self.response_error(144) if not has_perm(user, AdminPermission.VLAN_ALTER_SCRIPT, admin_permission, None, switch_interface.equipamento_id, equip_permission): return self.not_authorized() # configurador -T snmp_vlans_trunk -i <nomequip> -A “'int=<interface> add=<numvlan>'” # configurador -T snmp_vlans_trunk -i <nomequip> -A “'int=<interface> del=<numvlan>'” # configurador -T snmp_vlans_trunk -i <nomequip> -A “'int=<interface> check=<numvlan>'" # configurador -T snmp_vlans_trunk -i <nomequip> -A # “'int=<interface> list'" command = 'configurador -T snmp_vlans_trunk -i %s -A "\'int=%s %s' % (switch_interface.equipamento.nome, switch_interface.interface, operation) if operation != 'list': command = command + '=%d' % vlan.num_vlan command = command + '\'"' code, stdout, stderr = exec_script(command) if code == 0: map = dict() success_map = dict() success_map['codigo'] = '%04d' % code success_map['descricao'] = {'stdout': stdout, 'stderr': stderr} map['sucesso'] = success_map return self.response(dumps_networkapi(map)) else: return self.response_error(2, stdout + stderr) except EquipamentoNotFoundError: return self.response_error(117, name) except InvalidValueError, e: return self.response_error(269, e.param, e.value)