From 5d4859fd479220fa18d17b2f6e7fb5d401771f33 Mon Sep 17 00:00:00 2001 From: eramkve Date: Wed, 28 Mar 2018 12:55:30 +0100 Subject: Remove checkstyle warnings in policy/engine Remove checkstyle warnings in policy/engine LogParser Change-Id: Ia6ecc3ecbac51755262e5825a3f5ce8d89b79e4b Issue-ID: POLICY-710 Signed-off-by: eramkve --- .../org/onap/xacml/parser/CleanUpSystemLogDb.java | 99 ++++++++++++++++++++++ 1 file changed, 99 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..21ff8bf36 --- /dev/null +++ b/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDb.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * LogParser + * ================================================================================ + * Copyright (C) 2017-2018 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.sql.Connection; +import java.sql.SQLException; +import java.text.Format; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimerTask; + +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 + + /** + * Set time frame for database cleanup. + * + * @param dbConnect the database connection object + * @param argTimeFrame the time frame + */ + public CleanUpSystemLogDb(final Connection dbConnect, final int argTimeFrame) { + localConnect = dbConnect; + if (argTimeFrame > 0) { + timeFrame = argTimeFrame; + } + } + + String className = this.getClass().getSimpleName(); + + @Override + public void run() { + + final Date date = new Date(); + final 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 (final SQLException e) { + logger.error(e); + } + + logger.debug(className + " Cleanup systemlogdb done"); + } + + /** + * Clean system log database table entries based on input time frame. + * + * @param dbConnect the database connection object + * @param timeFrame the time frame + * @throws SQLException if an error occurs + */ + public static void cleanLogDbTableEntries(final Connection dbConnect, final 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); + + final int records = statement.executeUpdate(); + + logger.debug("cleanLogDBTableEntries:deleting Log files ended with " + records + " deleted."); + statement.close(); + + } catch (final Exception e) { + logger.error("Failed to create SQLContainer for System Log Database", e); + } finally { + connect.close(); + } + } +} -- cgit 1.2.3-korg