def QueryMySql(query): # Create object for internal database methods (mySQL) mysqlDb = MySqlTask(config.mysql_username, config.mysql_password, config.mysql_host, config.mysql_database) mysqlDb.connect() results = mysqlDb.select_query(query) mysqlDb.close() return results
else: minuteOffset = float(offset[1:]) * .6 return str(timeToConvert + timedelta(minutes=minuteOffset)) if __name__ == "__main__": logging.info("Running incremental Zendesk export...") # Create object for Zendesk queries zd = ZendeskTask(config.zenURL, config.zenAgent, config.zenPass, config.zenToken) # Create object for internal database methods (mySQL) zendeskDb = MySqlTask(config.zendeskMySql['username'], config.zendeskMySql['password'], config.zendeskMySql['host'], config.zendeskMySql['database']) zendeskDb.connect() # Grab the last time Accounts were successfully updated start_time = zendeskDb.pull_job_timestamp("INCREMENTAL_EXPORT") logging.info("INCREMENTAL_EXPORT: start_time={0}".format(start_time)) try: tickets = zd.get_tickets(start_time) except Exception, err: logging.exception(err) #print tickets dbQuery = ("INSERT INTO tickets " "VALUES (%(ticket_id)s, %(generated_timestamp)s, " "%(req_name)s, %(req_id)s, %(req_external_id)s, "
logging.warning("Retries left: {0}".format(retry)) time.sleep(2) # Sleep 2 seconds before retrying user_list = ConfigParser.ConfigParser() user_list.optionxform = str path = os.path.dirname(os.path.realpath(__file__)) user_list.read(path+"/user_list.ini") print "Users to query /usage: {0}".format(user_list.options("Users")) for username in user_list.options("Users"): api_key = user_list.get("Users", username) # Connect to the mysql database mysql.connect() # Create object for DataSift methods ds = datasift.User(username, api_key) retry = 3 while retry: try: usage = ds.get_usage('day') logging.info("Getting /usage for user: {0}".format(username)) print "Getting /usage for user: {0}".format(username) retry = 0 except Exception, err: logging.error("Encountered getting /usage for user: {0}. Error message: {1}".format(username, err)) retry -= 1 logging.warning("Retries left: {0}".format(retry))
# Pull from SFDC query = "Select Id, DataSift_UserID__c, Name FROM Account WHERE Account_Status__c = 'Customer' and DataSift_UserID__c != '' and LastModifiedDate > {0}".format(startTime) results = sfdc.sfdc_query(query) if results['count'] > 0: for account in results['results']: if account['Id'] not in sfdc_update: sfdc_update[account['Id']] = [] ids = re.findall(r'[0-9]+', account['DataSift_UserID__c']) if len(ids): for i in ids: # Query Users table mquery = "SELECT user_id, email, username FROM users WHERE user_id = '{0}'".format(i) mysqlDb.connect() r = mysqlDb.select_query(mquery) if len(r): data = { 'user_id' : r[0][0], 'email' : r[0][1], 'username' : r[0][2], 'name' : account['Name'].decode('utf-8'), 'accountid' : account['Id'] } print data insert = """ INSERT into account_link (datasift_user_id, datasift_username, datasift_email_address, accountid, accountname) VALUES ('%(user_id)s', '%(username)s', '%(email)s', '%(accountid)s', '%(name)s')