예제 #1
0
def update_fabric_config(fabric_id, fabric_dict):

    log.info("Update Fabric Config")
    fabric = DatacenterRooms().get_dcrooms(idt=fabric_id)

    try:
        fabriconfig = ast.literal_eval(fabric.config)
    except:
        fabriconfig = dict()

    fabric_dict = fabric_dict.get("config")

    if fabric_dict.get("Ambiente"):
        if fabriconfig.get("Ambiente"):
            try:
                fabriconfig.get("Ambiente").append(fabric_dict.get("Ambiente"))
            except:
                fabriconfig["Ambiente"] = [fabriconfig.get("Ambiente")]
                fabriconfig.get("Ambiente").append(fabric_dict.get("Ambiente"))
        else:
            fabriconfig["Ambiente"] = [fabric_dict.get("Ambiente")]
    if fabric_dict.get("BGP"):
        fabriconfig["BGP"] = fabric_dict.get("BGP")
    if fabric_dict.get("VLT"):
        fabriconfig["VLT"] = fabric_dict.get("VLT")
    if fabric_dict.get("Gerencia"):
        fabriconfig["Gerencia"] = fabric_dict.get("Gerencia")
    if fabric_dict.get("Channel"):
        fabriconfig["Channel"] = fabric_dict.get("Channel")

    fabric.config = fabriconfig
    fabric.save_dcrooms()

    return fabric
예제 #2
0
def update_fabric_config(fabric_id, fabric_dict):

    log.info("Update Fabric Config")
    fabric = DatacenterRooms().get_dcrooms(idt=fabric_id)

    try:
        fabriconfig = ast.literal_eval(fabric.config)
    except:
        fabriconfig = dict()

    fabric_dict = fabric_dict.get("config")

    if fabric_dict.get("Ambiente"):
        if fabriconfig.get("Ambiente"):
            try:
                fabriconfig.get("Ambiente").append(fabric_dict.get("Ambiente"))
            except:
                fabriconfig["Ambiente"] = [fabriconfig.get("Ambiente")]
                fabriconfig.get("Ambiente").append(fabric_dict.get("Ambiente"))
        else:
            fabriconfig["Ambiente"] = [fabric_dict.get("Ambiente")]
    if fabric_dict.get("BGP"):
        fabriconfig["BGP"] = fabric_dict.get("BGP")
    if fabric_dict.get("VLT"):
        fabriconfig["VLT"] = fabric_dict.get("VLT")
    if fabric_dict.get("Gerencia"):
        fabriconfig["Gerencia"] = fabric_dict.get("Gerencia")
    if fabric_dict.get("Channel"):
        fabriconfig["Channel"] = fabric_dict.get("Channel")

    fabric.config = fabriconfig
    fabric.save_dcrooms()

    return fabric
예제 #3
0
def save_dcrooms(dcrooms_dict):

    dcrooms = DatacenterRooms()

    dcrooms.dc = Datacenter().get_dc(idt=dcrooms_dict.get('dc'))
    dcrooms.name = dcrooms_dict.get('name')
    dcrooms.racks = dcrooms_dict.get('racks')
    dcrooms.spines = dcrooms_dict.get('spines')
    dcrooms.leafs = dcrooms_dict.get('leafs')
    dcrooms.config = dcrooms_dict.get('config')

    dcrooms.save_dcrooms()
    return dcrooms
예제 #4
0
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)
예제 #5
0
def save_dcrooms(dcrooms_dict):

    dcrooms = DatacenterRooms()

    dcrooms.dc = Datacenter().get_dc(idt=dcrooms_dict.get('dc'))
    dcrooms.name = dcrooms_dict.get('name')
    dcrooms.racks = dcrooms_dict.get('racks')
    dcrooms.spines = dcrooms_dict.get('spines')
    dcrooms.leafs = dcrooms_dict.get('leafs')
    dcrooms.config = dcrooms_dict.get('config')

    dcrooms.save_dcrooms()
    return dcrooms
예제 #6
0
def get_fabric(idt=None, name=None, id_dc=None):

    fabric_list = list()
    fabric_obj = DatacenterRooms()

    if idt:
        fabric = [fabric_obj.get_dcrooms(idt=idt)]
    elif name:
        fabric = fabric_obj.get_dcrooms(name=name)

    elif id_dc:
        fabric = fabric_obj.get_dcrooms(id_dc=id_dc)
    else:
        fabric = fabric_obj.get_dcrooms()


    for i in fabric:
        fabric_list.append(rack_serializers.DCRoomSerializer(i).data)

    return fabric_list
예제 #7
0
def edit_dcrooms(dcroom_id, dcrooms_dict):

    dcrooms = DatacenterRooms().get_dcrooms(idt=dcroom_id)

    if dcrooms_dict.get('name'):
        dcrooms.name = dcrooms_dict.get('name')
    if dcrooms_dict.get('racks'):
        dcrooms.racks = dcrooms_dict.get('racks')
    if dcrooms_dict.get('spines'):
        dcrooms.spines = dcrooms_dict.get('spines')
    if dcrooms_dict.get('leafs'):
        dcrooms.leafs = dcrooms_dict.get('leafs')
    if dcrooms_dict.get('config'):
        dcrooms.config = dcrooms_dict.get('config')

    dcrooms.save_dcrooms()
    return dcrooms
예제 #8
0
def edit_dcrooms(dcroom_id, dcrooms_dict):

    dcrooms = DatacenterRooms().get_dcrooms(idt=dcroom_id)

    if dcrooms_dict.get('name'):
        dcrooms.name = dcrooms_dict.get('name')
    if dcrooms_dict.get('racks'):
        dcrooms.racks = dcrooms_dict.get('racks')
    if dcrooms_dict.get('spines'):
        dcrooms.spines = dcrooms_dict.get('spines')
    if dcrooms_dict.get('leafs'):
        dcrooms.leafs = dcrooms_dict.get('leafs')
    if dcrooms_dict.get('config'):
        dcrooms.config = dcrooms_dict.get('config')

    dcrooms.save_dcrooms()
    return dcrooms
예제 #9
0
def listdc():

    dc_list = list()
    for dc in Datacenter().get_dc():
        dc_list.append(rack_serializers.DCSerializer(dc).data)

    dc_sorted = sorted(dc_list, key=operator.itemgetter('dcname'))

    for dcs in dc_sorted:
        fabric = DatacenterRooms().get_dcrooms(id_dc=dcs.get("id"))
        fabric_list = list()
        for i in fabric:
            fabric_list.append(rack_serializers.DCRoomSerializer(i).data)
        dcs["fabric"] = fabric_list

    return dc_sorted
예제 #10
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
예제 #11
0
def get_fabric(idt=None, name=None, id_dc=None):

    fabric_list = list()
    fabric_obj = DatacenterRooms()

    if idt:
        fabric = [fabric_obj.get_dcrooms(idt=idt)]
    elif name:
        fabric = fabric_obj.get_dcrooms(name=name)

    elif id_dc:
        fabric = fabric_obj.get_dcrooms(id_dc=id_dc)
    else:
        fabric = fabric_obj.get_dcrooms()

    for i in fabric:
        fabric_list.append(rack_serializers.DCRoomSerializer(i).data)

    return fabric_list
예제 #12
0
def delete_dcrooms(dcrooms):

    for dcroom_id in dcrooms:
        dcroom_obj = DatacenterRooms().get_dcrooms(idt=dcroom_id)
        dcroom_obj.del_dcrooms()