def __init__(self):
     self.CREDS_FILE = ''.join(
         [''.join([os.getcwd(), '/']), 'creds_file.csv'])
     self.db_user_id = config.CONF.DATABASE_CRED.db_user_id
     self.db_pwd = config.CONF.DATABASE_CRED.db_pwd
     self.db_name = config.CONF.DATABASE_CRED.db_name
     self.db_obj = DB_Connection()
     self.logfile = os.getcwd() + '/log/backup_restore_log.log'
     log_level = logging.INFO
     if config.CONF.default.debug:
         log_level = logging.DEBUG
     self.init_log(self.logfile, log_level, 'backup_restore')
     self.log = logging.getLogger('backup_restore')
     self.cer_pkey, self.cer_path, self.cer_base_path = self.fetch_cert_details(
     )
Example #2
0
 def __init__(self):
     self.db_user_id = config.CONF.DATABASE_CRED.db_user_id
     self.db_pwd = config.CONF.DATABASE_CRED.db_pwd
     self.db_name = config.CONF.DATABASE_CRED.db_name
     self.db_obj = DB_Connection()
def fetch_t1_timestamp_data():
    db_user_id = config.CONF.DATABASE_CRED.db_user_id
    db_pwd = config.CONF.DATABASE_CRED.db_pwd
    db_name = config.CONF.DATABASE_CRED.db_name
    db_obj = DB_Connection()
    client = db_obj.connect_host()

    switch_query = 'sudo mysql -e "select physical_switches.uuid , physical_switches.name from physical_switches;" -u %s -p%s %s' % (
        db_user_id, db_pwd, db_name)
    sw_port_query = 'sudo mysql -e "select physical_switches.uuid , physical_switches.name , physical_ports.uuid, physical_ports.name from physical_switches join physical_ports ON physical_switches.uuid = physical_ports.physical_switch_id;"  -u %s -p%s %s' % (
        db_user_id, db_pwd, db_name)

    sw_port_vlan_query = 'sudo mysql -e "select physical_switches.uuid , physical_switches.name , physical_ports.uuid, physical_ports.name, vlan_bindings.vlan from physical_switches join physical_ports ON physical_switches.uuid = physical_ports.physical_switch_id JOIN vlan_bindings ON physical_ports.uuid = vlan_bindings.port_uuid;" -u %s -p%s %s' % (
        db_user_id, db_pwd, db_name)

    ucast_query = 'sudo mysql -e "select ucast_macs_remotes.uuid,ucast_macs_remotes.mac,ucast_macs_remotes.logical_switch_id, ucast_macs_remotes.ip_address from ucast_macs_remotes;" -u %s -p%s %s' % (
        db_user_id, db_pwd, db_name)

    ls_key_name_dict = {}
    ls_id_dict = {}
    ls_data_query = 'sudo mysql -e "select logical_switches.key ,logical_switches.name, logical_switches.uuid from logical_switches;"  -u %s -p%s %s' % (
        db_user_id, db_pwd, db_name)
    try:
        stdin, stdout, stderr = client.exec_command(ls_data_query)
        for line in stdout:
            if 'key' in line:
                continue
            key = str(line.replace('\n', '').split('\t')[0])
            ls_key_name = str(line.split('\t')[1])
            ls_key_uuid = str(line.split('\t')[2])
            ls_key_name_dict[key] = ls_key_name
            ls_id_dict[ls_key_uuid] = ls_key_name
    except MySQLdb.Error as ex:
        print ex

    ucast_data_dict = {}
    try:
        stdin, stdout, stderr = client.exec_command(ucast_query)
        for line in stdout:
            if 'uuid' in line:
                continue
            ucast_detail_list = []
            ucast_uuid = str(line.replace('\n', '').split('\t')[0])
            mac = str(line.split('\t')[1])
            logical_switch_id = str(line.split('\t')[2])
            ip_address = str(line.split('\t')[3])
            ucast_detail_list.append(mac)
            ucast_detail_list.append(logical_switch_id)
            ucast_detail_list.append(ip_address)
            ucast_data_dict[ucast_uuid] = ucast_detail_list
        #print "ucast.....",ucast_data_dict
    except MySQLdb.Error as ex:
        print ex

    spv = {}
    prt_id_name_dict = {}
    #spv_vlan_list = []
    try:
        stdin, stdout, stderr = client.exec_command(sw_port_vlan_query)
        for line in stdout:
            if 'uuid' in line:
                continue
            vlan_id = str(line.replace('\n', '').split('\t')[4])
            sw_id = str(line.split('\t')[1])
            port_id = str(line.split('\t')[2])
            port_name = str(line.split('\t')[3])
            prt_id_name_dict[port_id] = port_name
            #   print port_name
            # import pdb; pdb.set_trace()
            if spv.setdefault(sw_id, {}).has_key(port_id):
                spv.setdefault(sw_id, {})[port_id].append(vlan_id)
            else:
                spv.setdefault(sw_id, {})[port_id] = [vlan_id]
    # print spv
    except MySQLdb.Error as ex:
        print ex

    port_list = []
    sw_port_dict = {}
    try:
        stdin, stdout, stderr = client.exec_command(sw_port_query)
        for line in stdout:
            if 'uuid' in line:
                continue
            sw_id = str(line.split('\t')[1])
            port_id = str(line.split('\t')[2])
            port_name = str(line.split('\t')[3])
            prt_id_name_dict[port_id] = port_name
            sw_port_dict.setdefault(sw_id, []).append(port_id)
#        print sw_port_dict

    except MySQLdb.Error as ex:
        print ex

    sw_list = []
    try:
        stdin, stdout, stderr = client.exec_command(switch_query)
        for line in stdout:
            uuid = str(line.split()[1])
            sw_list.append(uuid)
        sw_list.pop(0)
#	print sw_list
    except MySQLdb.Error as ex:
        print ex

    for sw in sw_list:
        if sw not in sw_port_dict.keys():
            sw_port_dict.setdefault(sw, [])


#    print sw_port_dict

    for sw in sw_port_dict.keys():
        if sw not in spv.keys():
            temp = {}
            for value in sw_port_dict[sw]:
                temp[value] = []
            spv[sw] = temp
        else:
            for value in sw_port_dict[sw]:
                port = spv[sw]
                if value not in port.keys():
                    port[value] = []

    return spv, prt_id_name_dict, ls_key_name_dict, ucast_data_dict, ls_id_dict