create_column(table_name, build_num_label)

        cursor.execute(insert_into_report % (table_name,siteName,domainName,table_name,siteName,domainName))
        db_connection.commit()

        print_progress("%s table: %s build update" % (table_name,build_num_label))
        cursor.execute(update_report_sql % (table_name,build_num_label,build_num_label,siteName,domainName))
        db_connection.commit()

    except mdb.Error, e:
        print "\nError %d: %s" % (e.args[0], e.args[1])

# Main
try:
    launched=False
    quit_if_launched('reports.index')
    launched=True
    print "Start time: %s" % timestamp()
    
    # MySQL connection
    if debug:
        db_connection = mdb.connect('127.0.0.1', 'root', 'root', 'amazon');
    else:    
        db_connection = mdb.connect('did-db2.cx50jcbnfwsq.us-east-1.rds.amazonaws.com', 'did_db2_master', 'D75QHSq4iz2WTuF', 'did_db2');

    query_result=None
    if prepare_report_tables() is True:
        cursor = db_connection.cursor()
        cursor.execute(select_join_tracking_number % 90)
        print "Result Select has finished"
        query_result = cursor.fetchall() 
        elif 'configuration' in key.name:
            insert_lines = parse_configurations_csv(read_key(key))
            db_cursor.executemany(insert_configurations, insert_lines)
        elif 'resources' in key.name:
            insert_lines = parse_resources_csv(read_key(key))
            db_cursor.executemany(insert_resources, insert_lines)
        db_connection.commit()
        # remove CSV from pending
        if not debug:
            pending_bucket.delete_key(key)
    print "\nTotal: %d" % keys_count

# main():
try:
    launched=False
    launched=quit_if_launched('csv_to_db.index')
    launched=True
    
    # MySQL connection
    if debug: db_connection = mdb.connect('127.0.0.1', 'root', 'root', 'amazon');
    else: db_connection = mdb.connect('did-db2.cx50jcbnfwsq.us-east-1.rds.amazonaws.com', 'did_db2_master', 'D75QHSq4iz2WTuF', 'did_db2');

    # process data
    read_bucket()
    
    cursor = db_connection.cursor()
    cursor.execute(select_site_detailes)
    fetch = None #cursor.fetchall()
    if fetch:
        for record in fetch:
            insert_site_detailes(record[0], record[1], record[2], record[3], record[4], record[5], record[6], record[7])
            return sys.argv[2]
    return '.'

src_dir=get_src_directory()
index=''
if src_dir == '.':
    index = 'grab_default.index'
else:
    file_name=src_dir.replace('/', '___', 10)
    index = file_name+'.index' 

# now, connect and use paramiko Transport to negotiate SSH2 across the connection
t=None
try:
    print index
    quit_if_launched(index)
    t = paramiko.Transport((hostname, port))
    t.connect(username=username, password=password, hostkey=hostkey)
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.chdir(src_dir)
    print "Current directory: %s" % sftp.getcwd()
    grab_zips(sftp)

except Exception, e:
    print '*** Caught exception: %s: %s' % (e.__class__, e)
    traceback.print_exc()
    try:
        t.close()
    except:
        pass
    sys.exit(1)
'''
select_site_detailes='''
SELECT siteName,domainName,installationId,startTime,desktopBuild,userId,userFirstName,userLastName FROM sessions 
JOIN (configurations, resources) 
ON (sessions.trackingNumber=configurations.trackingNumber AND sessions.trackingNumber=resources.trackingNumber);
'''

def insert_site_detailes(site,domain,installationId,startTime,desktopBuild,userId,userFirstName,userLastName):
    params=(site,domain,installationId,startTime,desktopBuild,userId,userFirstName,userLastName,timestamp(),installationId,desktopBuild,userId)
    db_connection.cursor().execute(insert_site_detail_if_not_exists % params)
    db_connection.commit()

# main():
try:
    launched=False
    launched=quit_if_launched('create_sites.index')
    launched=True

    print "Start time: %s" % timestamp()
    
    # MySQL connection
    if debug: db_connection = mdb.connect('127.0.0.1', 'root', 'root', 'amazon');
    else: db_connection = mdb.connect('did-db2.cx50jcbnfwsq.us-east-1.rds.amazonaws.com', 'did_db2_master', 'D75QHSq4iz2WTuF', 'did_db2');

    cursor = db_connection.cursor()
    cursor.execute(select_site_detailes)
    fetch = cursor.fetchall()
    if fetch:
        cursor.execute(create_site_table)
        for record in fetch:
            insert_site_detailes(record[0], record[1], record[2], record[3], record[4], record[5], record[6], record[7])