Oct-03-2018, 09:07 AM
i'm a littel stuck here, i get the mentionded error but i can not see why.
code:
File "./reg2inv.py", line 44
for idx,row in enumerate(csv_data, start=1):
^
SyntaxError: invalid syntax
any ideas?
code:
#!/usr/bin/env python
'''
populates ansible inventory db from
aix registry db
'''
# -*- coding: utf-8 -*-
import os
import sys
import csv
import pymysql as db
try:
import json
from json import JSONDecodeError
except ImportError:
import simplejson as json
from simplejson import JSONDecodeError
import logging
logging.basicConfig(filename='/tmp/reg2inv.log',level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logger = logging.getLogger(__name__)
conn = db.connect(host='localhost', user='ansible', passwd='ansible', db='ansible_inv', charset='utf8')
c2 = conn.cursor()
try:
csv_data = csv.reader(file('ansible_load_file.txt'))
sql = """SELECT DISTINCT NODE FROM ansible_hosts_view;"""
c2.execute(sql)
csv_hosts = []
for row in csv_data:
csv_hosts.append(row[0])
diff_to_del = (list(set(c2.fetchall()).difference(csv_hosts)))
idx = 0
for idx,row in enumerate(diff_to_del, start=1):
logger.debug(diff_to_del)
host = row
sql = """DELETE FROM host WHERE host='%s';""".format(host)
c2.execute(sql % (host))
logger.debug("delete:affected rows = {}".format(idx)
for idx,row in enumerate(csv_data, start=1):
host = row[0]
hostname = row[3]
var_data = {'inventory_lparname': host}
var_json = json.dumps(var_data)
ena = "1"
sql = """INSERT INTO host(host, hostname, variables, enabled) VALUES ('%s', '%s', '%s', '%s') ON DUPLICATE KEY UPDATE
host='{}', hostname='{}',variables='{}',enabled='{}';""".format(host, hostname, var_json, ena)
c2.execute(sql % (host, hostname, var_json, ena))
logger.debug("insert:affected rows = {}".format(idx))
except db.Error,e:
print e[0], e[1]
c2.rollback()
c2.close()
conn.commit()
conn.close()error:File "./reg2inv.py", line 44
for idx,row in enumerate(csv_data, start=1):
^
SyntaxError: invalid syntax
any ideas?
