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