From b5c606476cd4768d98ac616e97c4af992920312c Mon Sep 17 00:00:00 2001 From: cookiewang Date: Wed, 30 Aug 2017 09:43:50 -0500 Subject: Add a new cleanup process Created a new cleanup process to delete all the old data from SystemLogDB table Issue-ID:POLICY-193 Change-Id: Id17539e68ac70be20857b071ffb3700a85bcb817 Signed-off-by: cookiewang --- .../org/onap/xacml/parser/CleanUpSystemLogDB.java | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java (limited to 'LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java') diff --git a/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java b/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java new file mode 100644 index 000000000..9d3189ca3 --- /dev/null +++ b/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START======================================================= + * LogParser + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + + +package org.onap.xacml.parser; + +import java.text.Format; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimerTask; +import java.sql.Connection; +import java.sql.SQLException; + + +import org.onap.policy.common.logging.flexlogger.FlexLogger; + +public class CleanUpSystemLogDB extends TimerTask{ + + private static org.onap.policy.common.logging.flexlogger.Logger logger = FlexLogger.getLogger(CleanUpSystemLogDB.class.getName()); + Connection localConnect = null; + int timeFrame = 5; //default + public CleanUpSystemLogDB(Connection dbConnect, int argTimeFrame) { + localConnect = dbConnect; + if(argTimeFrame > 0){ + timeFrame = argTimeFrame; + } + } + String className = this.getClass().getSimpleName(); + + @Override + public void run() { + + Date date = new Date(); + Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + logger.debug("cleanLogDBTableEntries:Cleanup systemlogdb starts on date:" + formatter.format(date)); + try { + cleanLogDBTableEntries(localConnect, timeFrame); + } catch (SQLException e) { + logger.error(e); + } + + logger.debug(className + " Cleanup systemlogdb done"); + } + + public static void cleanLogDBTableEntries(Connection dbConnect, int timeFrame) throws SQLException { + + Connection connect = dbConnect; + if(dbConnect == null || dbConnect.isClosed()) { + connect = ParseLog.getDbConnection(); + } + try ( + java.sql.PreparedStatement statement = connect + .prepareStatement("DELETE FROM SYSTEMLOGDB WHERE date < DATE_SUB(CURDATE(), INTERVAL ? DAY)"); + ){ + + statement.setInt(1, timeFrame); + + int records = statement.executeUpdate(); + + logger.debug("cleanLogDBTableEntries:deleting Log files ended with " + records + " deleted."); + statement.close(); + + } catch (Exception e) { + logger.error("Failed to create SQLContainer for System Log Database", e); + } finally{ + connect.close(); + } + } +} -- cgit 1.2.3-korg