edbb195c8f2373e7e981bb79b1d2883735ef6da3
[integration.git] /
1 package org.onap.pnfsimulator.netconfmonitor;
2
3 import com.tailf.jnc.JNCException;
4 import java.io.IOException;
5 import java.util.TimerTask;
6 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
7 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
8 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11
12 public class NetconfConfigurationCheckingTask extends TimerTask {
13
14     private static final Logger LOGGER = LoggerFactory.getLogger(NetconfConfigurationCheckingTask.class);
15
16     private final NetconfConfigurationReader reader;
17     private final NetconfConfigurationWriter writer;
18     private final NetconfConfigurationCache cache;
19
20     public NetconfConfigurationCheckingTask(NetconfConfigurationReader reader,
21         NetconfConfigurationWriter writer,
22         NetconfConfigurationCache cache) {
23         this.reader = reader;
24         this.writer = writer;
25         this.cache = cache;
26     }
27
28     @Override
29     public void run() {
30         try {
31             String currentConfiguration = reader.read();
32             if (!currentConfiguration.equals(cache.getConfiguration())) {
33                 LOGGER.info("Configuration has changed, new configuration:\n\n{}", currentConfiguration);
34                 writer.writeToFile(currentConfiguration);
35                 cache.update(currentConfiguration);
36             }
37         } catch (IOException | JNCException e) {
38             LOGGER.warn("Error during configuration reading: {}", e.getMessage());
39         }
40     }
41 }