ab6925b008042dd70c0f53aae8eb7f8dfce0d91f
[integration.git] /
1 package org.onap.pnfsimulator.netconfmonitor;
2
3 import com.tailf.jnc.JNCException;
4 import java.io.IOException;
5 import java.util.Timer;
6 import javax.annotation.PostConstruct;
7 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
8 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
9 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.stereotype.Service;
14
15 @Service
16 public class NetconfMonitorService {
17     private static final Logger LOGGER = LoggerFactory.getLogger(NetconfMonitorService.class);
18     private static final long timePeriod = 1000L;
19     private static final long startDelay = 0;
20
21     private Timer timer;
22     private NetconfConfigurationReader reader;
23     private NetconfConfigurationWriter writer;
24     private NetconfConfigurationCache cache;
25
26     @Autowired
27     public NetconfMonitorService(Timer timer,
28         NetconfConfigurationReader reader,
29         NetconfConfigurationWriter writer,
30         NetconfConfigurationCache cache) {
31         this.timer = timer;
32         this.reader = reader;
33         this.writer = writer;
34         this.cache = cache;
35     }
36
37     @PostConstruct
38     public void start() {
39         setStartConfiguration();
40         NetconfConfigurationCheckingTask task = new NetconfConfigurationCheckingTask(reader, writer, cache);
41         timer.scheduleAtFixedRate(task, startDelay, timePeriod);
42     }
43
44     private void setStartConfiguration() {
45         try {
46             String configuration = reader.read();
47             writer.writeToFile(configuration);
48             cache.update(configuration);
49         } catch (IOException | JNCException e) {
50             LOGGER.warn("Error during configuration reading: {}", e.getMessage());
51         }
52     }
53 }