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 post(self, request, *args, **kwargs): try: log.info("Add Rack") data_ = request.DATA if not data_: raise exceptions.InvalidInputException() rack_dict = dict() try: rack_dict['number'] = int(data_.get('number')) except: raise exceptions.InvalidInputException("O número do Rack não foi informado.") rack_dict['name'] = data_.get('name') rack_dict['sw1_mac'] = data_.get('mac_address_sw1') rack_dict['sw2_mac'] = data_.get('mac_address_sw2') rack_dict['sw3_mac'] = data_.get('mac_address_ilo') if not data_.get('id_sw1'): rack_dict['sw1_id'] = None else: rack_dict['sw1_id'] = data_.get('id_sw1') if not data_.get('id_sw2'): rack_dict['sw2_id'] = None else: rack_dict['sw2_id'] = data_.get('id_sw2') if not data_.get('id_ilo'): rack_dict['sw3_id'] = None else: rack_dict['sw3_id'] = data_.get('id_ilo') rack = facade.save_rack(self.request.user, rack_dict) datas = dict() rack_serializer = RackSerializer(rack) datas['rack'] = rack_serializer.data return Response(datas, status=status.HTTP_201_CREATED) except (exceptions.RackNumberDuplicatedValueError, exceptions.RackNameDuplicatedError, exceptions.InvalidInputException) as exception: log.exception(exception) raise exception except Exception, exception: log.exception(exception) raise api_exceptions.NetworkAPIException()
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 post(self, request, *args, **kwargs): try: log.info("Post - Fabric") if not request.DATA.get('dcrooms'): raise exceptions.InvalidInputException() dcrooms = facade.save_dcrooms(request.DATA.get('dcrooms')) data = dict() dcroom_serializer = DCRoomSerializer(dcrooms) data['dcroom'] = dcroom_serializer.data return Response(data, status=status.HTTP_201_CREATED) except Exception, e: raise api_exceptions.NetworkAPIException(e)
def post(self, request, *args, **kwargs): try: log.info("POST Datacenter") if not request.DATA.get('dc'): raise exceptions.InvalidInputException() dc = facade.save_dc(request.DATA.get('dc')) dc_serializer = DCSerializer(dc) data = dict() data['dc'] = dc_serializer.data return Response(data, status=status.HTTP_201_CREATED) except Exception, e: raise api_exceptions.NetworkAPIException(e)
def put(self, request, *args, **kwargs): try: log.info("PUT Rack") rack_id = kwargs.get("rack_id") if kwargs.get("rack_id") else None if not request.DATA.get('rack'): raise exceptions.InvalidInputException() rack = facade.update_rack(rack_id, request.DATA.get('rack')) data = dict() rack_serializer = RackSerializer(rack) data['rack'] = rack_serializer.data return Response(data, status=status.HTTP_200_OK) except Exception, e: log.exception(e) raise api_exceptions.NetworkAPIException(e)
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 post(self, request, *args, **kwargs): try: log.info("New Rack") if not request.DATA.get('rack'): raise exceptions.InvalidInputException() rack = facade.save_rack_dc(request.DATA.get('rack')) data = dict() rack_serializer = RackSerializer(rack) data['rack'] = rack_serializer.data return Response(data, status=status.HTTP_201_CREATED) except (exceptions.RackNumberDuplicatedValueError, exceptions.RackNameDuplicatedError, exceptions.InvalidInputException) as exception: log.exception(exception) raise exception except Exception as e: log.exception(e) raise api_exceptions.NetworkAPIException(e)
def put(self, request, *args, **kwargs): try: log.info("Put - Fabric") if not request.DATA.get('fabric'): raise exceptions.InvalidInputException() #validar o json fabric_id = kwargs.get('fabric_id') fabric = request.DATA.get('fabric') if fabric.get("flag"): fabrics = facade.update_fabric_config(fabric_id, fabric) else: fabrics = facade.edit_dcrooms(fabric_id, fabric) fabric_serializer = DCRoomSerializer(fabrics) data = dict() data['fabric'] = fabric_serializer.data return Response(data, status=status.HTTP_200_OK) except Exception, e: raise api_exceptions.NetworkAPIException(e)