Exemplo n.º 1
0
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
Exemplo n.º 2
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()
Exemplo n.º 3
0
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
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
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)
Exemplo n.º 7
0
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
Exemplo n.º 8
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)
Exemplo n.º 9
0
    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)