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
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
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)
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
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
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
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 delete_dcrooms(dcrooms): for dcroom_id in dcrooms: dcroom_obj = DatacenterRooms().get_dcrooms(idt=dcroom_id) dcroom_obj.del_dcrooms()