Beispiel #1
0
    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()
Beispiel #2
0
    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)
Beispiel #3
0
    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)