#!/usr/bin/python

import json
import mysql.connector
import re

data = {
	"sid": "aebd815782e305b2bea00e6801b61e6e",
	"request": "preprocessing.test",
	"data": {
		"value": "",
		"value_type": 0,
		"history": {
			"value": "0",
			"timestamp": "now-1m"
		},
		"steps": []
	}
}

def save_preproc(key, steps):
	data["data"]["steps"] = steps
	
	m = re.search("trap\[([0-9]+)\]", key)
	filename = "trap" + m.group(1) + ".json"
	
	print("exporting data to %s ..." % filename);

	f = open(filename, "w")
	f.write(json.dumps(data, indent=4))
	f.close()
	

try:
	db = mysql.connector.connect(
		host="localhost",
		user="zb",
		passwd="<password>",
		database="zb5011"
	)
	cursor = db.cursor()
	cursor.execute("select i.key_,ip.type,ip.params,ip.error_handler,ip.error_handler_params"
			" from items i, item_preproc ip"
			" where i.itemid=ip.itemid"
				" and i.key_ like 'trap%'"
			" order by i.key_,ip.step")
		
	steps = []
	key = ""
	rows = cursor.fetchall()
	for row in rows:
		if row[0].decode() != key:
			if key != "":
				save_preproc(key, steps)
			key = row[0].decode()
			steps = []
			
		steps.append({"type":row[1],
				"params":row[2].decode(), 
				"error_handler":row[3],
				"error_handler_params":row[4].decode()}
				)
	
	save_preproc(key, steps)
	
except mysql.connector.Error as err:
	print err
else:
	db.close()