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(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 edit Rack. URL: rack/edit/ """ try: self.log.info("Edit 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 id_rack = rack_map.get('id_rack') 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') racks = Rack() with distributedlock(LOCK_RACK % id_rack): racks.__dict__.update(id=id_rack, nome=name, numero=number, mac_sw1=mac_address_sw1, mac_sw2=mac_address_sw2, mac_ilo=mac_address_ilo) if not id_sw1==None: id_sw1 = int(id_sw1) racks.id_sw1 = Equipamento.get_by_pk(id_sw1) if not id_sw2==None: id_sw2 = int(id_sw2) racks.id_sw2 = Equipamento.get_by_pk(id_sw2) if not id_ilo==None: id_ilo = int(id_ilo) racks.id_ilo = Equipamento.get_by_pk(id_ilo) # save racks.save() rack_map = dict() rack_map['rack'] = model_to_dict(racks) return self.response(dumps_networkapi(rack_map)) except InvalidValueError, e: return self.response_error(369, e.param, e.value)
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)
def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to edit Rack. URL: rack/edit/ """ try: self.log.info("Edit 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 id_rack = rack_map.get('id_rack') 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') racks = Rack() with distributedlock(LOCK_RACK % id_rack): racks.__dict__.update(id=id_rack, nome=name, numero=number, mac_sw1=mac_address_sw1, mac_sw2=mac_address_sw2, mac_ilo=mac_address_ilo) if not id_sw1 == None: id_sw1 = int(id_sw1) racks.id_sw1 = Equipamento.get_by_pk(id_sw1) if not id_sw2 == None: id_sw2 = int(id_sw2) racks.id_sw2 = Equipamento.get_by_pk(id_sw2) if not id_ilo == None: id_ilo = int(id_ilo) racks.id_ilo = Equipamento.get_by_pk(id_ilo) # save racks.save() rack_map = dict() rack_map['rack'] = model_to_dict(racks) return self.response(dumps_networkapi(rack_map)) except InvalidValueError, e: return self.response_error(369, e.param, e.value)