def save_rack(rack_dict): rack = Rack() rack.nome = rack_dict.get('name') rack.numero = rack_dict.get('number') rack.mac_sw1 = rack_dict.get('sw1_mac') rack.mac_sw2 = rack_dict.get('sw2_mac') rack.mac_ilo = rack_dict.get('sw3_mac') id_sw1 = rack_dict.get('sw1_id') id_sw2 = rack_dict.get('sw2_id') id_sw3 = rack_dict.get('sw3_id') if not rack.nome: raise exceptions.InvalidInputException("O nome do Rack não foi informado.") if Rack.objects.filter(nome__iexact=rack.nome): raise exceptions.RackNameDuplicatedError() if Rack.objects.filter(numero__iexact=rack.numero): raise exceptions.RackNumberDuplicatedValueError() if not id_sw1: raise exceptions.InvalidInputException("O Leaf de id %s não existe." % id_sw1) if not id_sw2: raise exceptions.InvalidInputException("O Leaf de id %s não existe." % id_sw2) if not id_sw3: raise exceptions.InvalidInputException("O OOB de id %s não existe." % id_sw3) rack.id_sw1 = Equipamento.get_by_pk(int(id_sw1)) rack.id_sw2 = Equipamento.get_by_pk(int(id_sw2)) rack.id_ilo = Equipamento.get_by_pk(int(id_sw3)) rack.save() return rack
def update_rack(rack_id, rack): try: rack_obj = Rack() rack_obj = rack_obj.get_rack(idt=rack_id) rack_obj.nome = rack.get("name") rack_obj.numero = rack.get("number") rack_obj.mac_sw1 = rack.get("mac_sw1") rack_obj.mac_sw2 = rack.get("mac_sw2") rack_obj.mac_ilo = rack.get("mac_ilo") rack_obj.id_sw1 = Equipamento().get_by_pk(int(rack.get("id_sw1"))) rack_obj.id_sw2 = Equipamento().get_by_pk(int(rack.get("id_sw2"))) rack_obj.id_ilo = Equipamento().get_by_pk(int(rack.get("id_ilo"))) rack_obj.dcroom = DatacenterRooms().get_dcrooms(idt=rack.get('fabric_id')) if rack.get('fabric_id') \ else None rack_obj.save() return rack_obj except (exceptions.RackNumberDuplicatedValueError, exceptions.RackNameDuplicatedError, exceptions.InvalidInputException) as e: log.exception(e) raise Exception(e) except Exception, e: log.exception(e) raise Exception(e)
def save_rack(user, rack_dict): rack = Rack() rack.numero = rack_dict.get('number') rack.mac_sw1 = rack_dict.get('sw1_mac') rack.mac_sw2 = rack_dict.get('sw2_mac') rack.mac_ilo = rack_dict.get('sw3_mac') id_sw1 = rack_dict.get('sw1_id') id_sw2 = rack_dict.get('sw2_id') id_sw3 = rack_dict.get('sw3_id') if not rack_dict.get('name'): raise exceptions.InvalidInputException( "O nome do Rack não foi informado.") elif rack_dict.get('name') is not 0: rack.nome = rack_dict.get('name') try: Rack.objects.get(numero__iexact=rack.numero) raise exceptions.RackNumberDuplicatedValueError() except ObjectDoesNotExist: pass try: Rack.objects.get(nome__iexact=rack.nome) raise exceptions.RackNameDuplicatedError() except ObjectDoesNotExist: pass if id_sw1 is not None: try: rack.id_sw1 = Equipamento.get_by_pk(int(id_sw1)) except: raise exceptions.InvalidInputException( "O Leaf de id %s não existe." % id_sw1) if id_sw2 is not None: try: rack.id_sw2 = Equipamento.get_by_pk(int(id_sw2)) except: raise exceptions.InvalidInputException( "O Leaf de id %s não existe." % id_sw2) if id_sw3 is not None: try: rack.id_ilo = Equipamento.get_by_pk(int(id_sw3)) except: raise exceptions.InvalidInputException( "O OOB de id %s não existe." % id_sw3) rack.save(user) return rack
def save_rack_dc(rack_dict): rack = Rack() rack.nome = rack_dict.get('name') rack.numero = rack_dict.get('number') rack.mac_sw1 = rack_dict.get('mac_sw1') rack.mac_sw2 = rack_dict.get('mac_sw2') rack.mac_ilo = rack_dict.get('mac_ilo') rack.id_sw1 = Equipamento().get_by_pk(rack_dict.get('id_sw1')) rack.id_sw2 = Equipamento().get_by_pk(rack_dict.get('id_sw2')) rack.id_sw3 = Equipamento().get_by_pk(rack_dict.get('id_ilo')) rack.dcroom = DatacenterRooms().get_dcrooms(idt=rack_dict.get('fabric_id')) if rack_dict.get('fabric_id') else None if not rack.nome: raise exceptions.InvalidInputException("O nome do Rack não foi informado.") rack.save_rack() return rack
def save_rack_dc(rack_dict): rack = Rack() rack.nome = rack_dict.get('name') rack.numero = rack_dict.get('number') rack.mac_sw1 = rack_dict.get('mac_sw1') rack.mac_sw2 = rack_dict.get('mac_sw2') rack.mac_ilo = rack_dict.get('mac_ilo') rack.id_sw1 = Equipamento().get_by_pk(rack_dict.get('id_sw1')) rack.id_sw2 = Equipamento().get_by_pk(rack_dict.get('id_sw2')) rack.id_sw3 = Equipamento().get_by_pk(rack_dict.get('id_ilo')) rack.dcroom = DatacenterRooms().get_dcrooms( idt=rack_dict.get('fabric_id')) if rack_dict.get('fabric_id') else None if not rack.nome: raise exceptions.InvalidInputException( "O nome do Rack não foi informado.") rack.save_rack() return rack
def save_rack(rack_dict): rack = Rack() rack.nome = rack_dict.get('name') rack.numero = rack_dict.get('number') rack.mac_sw1 = rack_dict.get('sw1_mac') rack.mac_sw2 = rack_dict.get('sw2_mac') rack.mac_ilo = rack_dict.get('sw3_mac') id_sw1 = rack_dict.get('sw1_id') id_sw2 = rack_dict.get('sw2_id') id_sw3 = rack_dict.get('sw3_id') if not rack.nome: raise exceptions.InvalidInputException( "O nome do Rack não foi informado.") if Rack.objects.filter(nome__iexact=rack.nome): raise exceptions.RackNameDuplicatedError() if Rack.objects.filter(numero__iexact=rack.numero): raise exceptions.RackNumberDuplicatedValueError() if not id_sw1: raise exceptions.InvalidInputException("O Leaf de id %s não existe." % id_sw1) if not id_sw2: raise exceptions.InvalidInputException("O Leaf de id %s não existe." % id_sw2) if not id_sw3: raise exceptions.InvalidInputException("O OOB de id %s não existe." % id_sw3) rack.id_sw1 = Equipamento.get_by_pk(int(id_sw1)) rack.id_sw2 = Equipamento.get_by_pk(int(id_sw2)) rack.id_ilo = Equipamento.get_by_pk(int(id_sw3)) rack.save() return rack
def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to add Rack. URL: rack/insert/ """ try: self.log.info("Add Rack") # User permission if not has_perm(user, AdminPermission.EQUIPMENT_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') rack_map = networkapi_map.get('rack') if rack_map is None: return self.response_error(3, u'There is no value to the rack tag of XML request.') # Get XML data number = rack_map.get('number') name = rack_map.get('name') mac_address_sw1 = rack_map.get('mac_address_sw1') mac_address_sw2 = rack_map.get('mac_address_sw2') mac_address_ilo = rack_map.get('mac_address_ilo') id_sw1 = rack_map.get('id_sw1') id_sw2 = rack_map.get('id_sw2') id_ilo = rack_map.get('id_ilo') rack = Rack() # set variables rack.numero = number rack.nome = name rack.mac_sw1 = mac_address_sw1 rack.mac_sw2 = mac_address_sw2 rack.mac_ilo = mac_address_ilo if not id_sw1==None: id_sw1 = int(id_sw1) rack.id_sw1 = Equipamento(id=id_sw1) else: rack.id_sw1 = id_sw1 if not id_sw2==None: id_sw2 = int(id_sw2) rack.id_sw2 = Equipamento(id=id_sw2) else: rack.id_sw2 = id_sw2 if not id_ilo==None: id_ilo = int(id_ilo) rack.id_ilo = Equipamento(id=id_ilo) else: rack.id_ilo = id_ilo # save rack.insert_new(user) rack_map = dict() rack_map['rack'] = model_to_dict( rack, exclude=["numero", "nome","mac_sw1", "mac_sw2","mac_ilo", "id_sw1", "id_sw2", "id_ilo"]) return self.response(dumps_networkapi(rack_map)) except InvalidValueError, e: return self.response_error(369, e.param, e.value)