diff --git a/edexOsgi/build.edex/esb/conf/logback.xml b/edexOsgi/build.edex/esb/conf/logback.xml
index 83c645bcba..c6a84cb00d 100644
--- a/edexOsgi/build.edex/esb/conf/logback.xml
+++ b/edexOsgi/build.edex/esb/conf/logback.xml
@@ -22,6 +22,30 @@
+
+
+
+
+ ${edex.home}/logs/edex-${edex.run.mode}-activeTableChange-%d{yyyyMMdd}.log
+ 30
+
+
+
+ %-5p %d [%t] %c{0}: %m%n
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscDataRec.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscDataRec.py
index 46bc01e306..2aa1a7c784 100644
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscDataRec.py
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscDataRec.py
@@ -196,7 +196,7 @@ def execIscDataRec(MSGID,SUBJECT,FILES):
elif SUBJECT == 'GET_ACTIVE_TABLE':
IrtServer.getVTECActiveTable(dataFile, None)
elif SUBJECT == 'GET_ACTIVE_TABLE2':
- IrtServer.getVTECActiveTable(dateFile, xmlFileBuf)
+ IrtServer.getVTECActiveTable(dataFile, xmlFileBuf)
elif SUBJECT in ['ISCGRIDS', 'ISCGRIDS2']:
args = {"siteID": siteConfig.GFESUITE_SITEID,
"userID": 'SITE',
diff --git a/edexOsgi/com.raytheon.uf.edex.activetable/src/com/raytheon/uf/edex/activetable/ActiveTable.java b/edexOsgi/com.raytheon.uf.edex.activetable/src/com/raytheon/uf/edex/activetable/ActiveTable.java
index c28127efde..81ef7ad6f3 100644
--- a/edexOsgi/com.raytheon.uf.edex.activetable/src/com/raytheon/uf/edex/activetable/ActiveTable.java
+++ b/edexOsgi/com.raytheon.uf.edex.activetable/src/com/raytheon/uf/edex/activetable/ActiveTable.java
@@ -100,6 +100,7 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery;
* Pass issuance site id to getActiveTable()
* in updateActiveTable() so records will
* be updated correctly.
+ * Mar 04, 2015 4129 randerso Pass active table change logger to ingestAt and/or MergeVTEC
*
*
*
@@ -300,7 +301,8 @@ public class ActiveTable {
.getHandler("ActiveTable");
ITimer timer = TimeUtil.getTimer();
timer.start();
- List activeTable = getActiveTable(issueSiteId, mode);
+ List activeTable = getActiveTable(issueSiteId,
+ mode);
timer.stop();
perfStat.logDuration("getActiveTable", timer.getElapsedTime());
@@ -589,6 +591,7 @@ public class ActiveTable {
args.put("newRecords", newRecords);
args.put("drt", timeOffset);
args.put("makeBackups", makeBackup);
+ args.put("atChangeLog", changeLog);
if (runIngestAT) {
args.put("xmlIncoming", xmlSource);
}
diff --git a/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/MergeVTEC.py b/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/MergeVTEC.py
index 4e2025cbf6..4637aa661f 100644
--- a/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/MergeVTEC.py
+++ b/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/MergeVTEC.py
@@ -35,8 +35,10 @@
# 01/24/14 #2504 randerso change to use iscUtil.getLogger for consistency
# 03/25/14 #2884 randerso Added xxxid to VTECChange
# 05/15/14 #3157 dgilling Support multiple TPC and SPC sites.
+# 03/04/2015 #4129 randerso Log the active table changes at info level
+# in the active table change log
#
-
+##
import copy
import cPickle
@@ -64,7 +66,7 @@ from com.raytheon.uf.common.activetable import VTECPartners as JavaVTECPartners
class MergeVTEC(VTECTableUtil.VTECTableUtil):
def __init__(self, activeTable, activeTableMode, newRecords, offsetSecs=0.0,
- makeBackups=True, logger=None):
+ makeBackups=True, logger=None, atChangeLog=None):
# activeTable - current activeTable records
# activeTableMode - which table is being modified--OPERATIONAL or PRACTICE
# newRecords - records to merge in to activeTable
@@ -125,7 +127,7 @@ class MergeVTEC(VTECTableUtil.VTECTableUtil):
self._log.info("Other Table squeezed size: %d", len(otherTable))
#merge the tables
- updatedTable, toDelete, changes = self._mergeTable(activeTable, otherTable)
+ updatedTable, toDelete, changes = self._mergeTable(activeTable, otherTable, atChangeLog)
self._log.info("Updated Active Table size: %d", len(updatedTable))
updatedTable, tossRecordsMerged = vts.squeeze(updatedTable)
self._log.info("Updated Active Table squeeze size: %d",
@@ -161,7 +163,7 @@ class MergeVTEC(VTECTableUtil.VTECTableUtil):
# merges the active and other table together and returns the merged
# table along with the list of changes that occurred.
- def _mergeTable(self, activeTable, otherTable):
+ def _mergeTable(self, activeTable, otherTable, atChangeLog):
changes = []
purges = []
compare = ['id', 'phen', 'sig', 'officeid', 'etn', 'pil']
@@ -342,30 +344,31 @@ class MergeVTEC(VTECTableUtil.VTECTableUtil):
changes.append(chgRec)
# log the changes
- if len(missingEntriesAct):
- self._log.debug("Active Missing entries added: %s",
- self.printActiveTable(missingEntriesAct, 1))
- if len(newReplaceEntriesAct):
- self._log.debug("Active Replacement entries (new): %s",
- self.printActiveTable(newReplaceEntriesAct, 1))
- if len(oldReplaceEntriesAct):
- self._log.debug("Active Entries Replaced (old): %s",
- self.printActiveTable(oldReplaceEntriesAct, 1))
- if len(missingEntriesPast):
- self._log.debug("Past Missing entries added %s",
- self.printActiveTable(missingEntriesPast, 1))
- if len(newReplaceEntriesPast):
- self._log.debug("Past Replacement entries (new): %s",
- self.printActiveTable(newReplaceEntriesPast, 1))
- if len(oldReplaceEntriesPast):
- self._log.debug("Past Entries Replaced (old): %s",
- self.printActiveTable(oldReplaceEntriesPast, 1))
- if len(ignoredNewReplaceAct):
- self._log.debug("Ignored Different Year Issuance (new): %s",
- self.printActiveTable(ignoredNewReplaceAct, 1))
- self._log.debug("Ignored Different Year Issuance (old): %s",
- self.printActiveTable(ignoredOldReplaceAct, 1))
- self._log.debug("Table Changes: %s", changes)
+ if atChangeLog is not None:
+ if len(missingEntriesAct):
+ atChangeLog.info("Active Missing entries added: " +
+ self.printActiveTable(missingEntriesAct, 1))
+ if len(newReplaceEntriesAct):
+ atChangeLog.info("Active Replacement entries (new): " +
+ self.printActiveTable(newReplaceEntriesAct, 1))
+ if len(oldReplaceEntriesAct):
+ atChangeLog.info("Active Entries Replaced (old): " +
+ self.printActiveTable(oldReplaceEntriesAct, 1))
+ if len(missingEntriesPast):
+ atChangeLog.info("Past Missing entries added " +
+ self.printActiveTable(missingEntriesPast, 1))
+ if len(newReplaceEntriesPast):
+ atChangeLog.info("Past Replacement entries (new): " +
+ self.printActiveTable(newReplaceEntriesPast, 1))
+ if len(oldReplaceEntriesPast):
+ atChangeLog.info("Past Entries Replaced (old): " +
+ self.printActiveTable(oldReplaceEntriesPast, 1))
+ if len(ignoredNewReplaceAct):
+ atChangeLog.info("Ignored Different Year Issuance (new): " +
+ self.printActiveTable(ignoredNewReplaceAct, 1))
+ atChangeLog.info("Ignored Different Year Issuance (old): " +
+ self.printActiveTable(ignoredOldReplaceAct, 1))
+ atChangeLog.info("Table Changes: " + str(changes))
purges.extend(oldReplaceEntriesAct)
purges.extend(oldReplaceEntriesPast)
@@ -411,7 +414,7 @@ class MergeVTEC(VTECTableUtil.VTECTableUtil):
return iscUtil.getLogger("MergeVTEC", logLevel=logging.INFO)
def merge(activeTable, activeTableMode, newRecords, drt=0.0, makeBackups=True,
- logger=None):
+ logger=None, atChangeLog=None):
pyActive = []
for i in range(activeTable.size()):
pyActive.append(ActiveTableRecord.ActiveTableRecord(activeTable.get(i)))
@@ -420,7 +423,7 @@ def merge(activeTable, activeTableMode, newRecords, drt=0.0, makeBackups=True,
for i in range(newRecords.size()):
pyNew.append(ActiveTableRecord.ActiveTableRecord(newRecords.get(i)))
- decoder = MergeVTEC(pyActive, activeTableMode, pyNew, drt, makeBackups, logger)
+ decoder = MergeVTEC(pyActive, activeTableMode, pyNew, drt, makeBackups, logger, atChangeLog)
mergeResults = decoder.getMergeResults()
decoder = None
diff --git a/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/ingestAT.py b/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/ingestAT.py
index 2fdfe2db5e..0407ce42ef 100644
--- a/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/ingestAT.py
+++ b/edexOsgi/com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/ingestAT.py
@@ -28,7 +28,9 @@
# ------------ ---------- ----------- --------------------------
# 02/13/13 1447 dgilling Initial Creation.
# 01/24/14 2504 randerso change to use iscUtil.getLogger for consistency
+# 03/04/2015 4129 randerso Pass active table change logger through to MergeVtec.merge
#
+##
import os
@@ -48,7 +50,7 @@ def init_logging():
logger = iscUtil.getLogger("ingestAT", logLevel=logging.INFO)
-def execute_ingest_at(incomingRecords, activeTable, atName, ztime, makeBackups, xmlIncoming):
+def execute_ingest_at(incomingRecords, activeTable, atName, ztime, makeBackups, xmlIncoming, atChangeLog):
# log the source of this data
if xmlIncoming is not None:
irt = IrtAccess.IrtAccess("")
@@ -63,20 +65,20 @@ def execute_ingest_at(incomingRecords, activeTable, atName, ztime, makeBackups,
results = None
try:
results = MergeVTEC.merge(activeTable, atName, incomingRecords, ztime, makeBackups,
- logger)
+ logger, atChangeLog)
except:
logger.exception("MergeVTEC fail:")
return results
def runFromJava(activeTable, activeTableMode, newRecords, drt, makeBackups,
- xmlIncoming):
+ xmlIncoming, atChangeLog=None):
init_logging()
logger.info('************* ingestAT ************************')
startT = time.time()
results = execute_ingest_at(newRecords, activeTable, activeTableMode, drt,
- makeBackups, xmlIncoming)
+ makeBackups, xmlIncoming, atChangeLog=atChangeLog)
#--------------------------------------------------------------------
# Finish