b4eda0a79c662433c0eaede0d31430fc6c00c8aa
[integration.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.onap.integration
4  * ================================================================================
5  * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.pnfsimulator.netconfmonitor;
22
23 import com.tailf.jnc.JNCException;
24 import org.apache.logging.log4j.LogManager;
25 import org.apache.logging.log4j.Logger;
26 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
27 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
28 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
29
30 import java.io.IOException;
31 import java.util.TimerTask;
32
33 public class NetconfConfigurationCheckingTask extends TimerTask {
34     private static final Logger LOGGER = LogManager.getLogger(NetconfConfigurationCheckingTask.class);
35
36     private final NetconfConfigurationReader reader;
37     private final NetconfConfigurationWriter writer;
38     private final NetconfConfigurationCache cache;
39
40     public NetconfConfigurationCheckingTask(NetconfConfigurationReader reader,
41         NetconfConfigurationWriter writer,
42         NetconfConfigurationCache cache) {
43         this.reader = reader;
44         this.writer = writer;
45         this.cache = cache;
46     }
47
48     @Override
49     public void run() {
50         String currentConfiguration = "";
51         try {
52             currentConfiguration = reader.read();
53         } catch (IOException|JNCException e) {
54             LOGGER.info("Error during configuration reading: {}", e.getMessage());
55         }
56         if (!currentConfiguration.equals(cache.getConfiguration())) {
57             LOGGER.info("Configuration has changed, new configuration:\n\n{}", currentConfiguration);
58             writer.writeToFile(currentConfiguration);
59             cache.update(currentConfiguration);
60         }
61     }
62 }