1 package org.opendaylight.mwtn.performancemanager.impl.database.types;
3 import org.opendaylight.mwtn.base.database.EsObject;
4 import org.opendaylight.mwtn.base.netconf.LinkIdentifyingObject;
5 import org.opendaylight.mwtn.base.netconf.NetconfTimeStamp;
6 import org.opendaylight.yang.gen.v1.uri.onf.coremodel.corenetworkmodule.objectclasses.rev160811.logicalterminationpoint.LpList;
7 import org.opendaylight.yang.gen.v1.uri.onf.g_874_1_model.object_classes.rev160710.OTNHistoryData;
8 import org.opendaylight.yang.gen.v1.uri.onf.g_874_1_model.type_definitions.rev160710.GranularityPeriodType;
9 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
10 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.OtnHistoryDataG;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
14 import com.fasterxml.jackson.annotation.JsonGetter;
15 import com.fasterxml.jackson.annotation.JsonIgnore;
17 public class EsHistoricalPerformanceBase extends EsObject {
19 private static final Logger LOG = LoggerFactory.getLogger(EsHistoricalPerformanceBase.class);
21 @JsonIgnore private final String nodeName;
22 @JsonIgnore private final String uuidInterface;
23 @JsonIgnore private final String layerProtocolName;
25 @JsonIgnore private String radioSignalId = null; //Meaning of connection Id
26 @JsonIgnore private String timeStamp = null;
27 @JsonIgnore private Boolean suspectIntervalFlag = null;
28 @JsonIgnore private String granularityPeriod = null; //Representation of GranularityPeriodType
29 @JsonIgnore private String scannerId = null;
30 @JsonIgnore private Object performanceData = null;
33 public EsHistoricalPerformanceBase(String nodeName, LpList actualInterface) {
34 this.nodeName = nodeName;
35 this.uuidInterface = actualInterface.getUuid().getValue();
36 this.layerProtocolName = actualInterface.getLayerProtocolName().getValue();
40 public EsHistoricalPerformanceBase(String nodeName, Lp actualInterface) {
41 this.nodeName = nodeName;
42 this.uuidInterface = actualInterface.getUuid().getValue();
43 this.layerProtocolName = actualInterface.getLayerProtocolName().getValue();
48 protected <T extends OTNHistoryData> void set(T record) {
50 LOG.warn("PM Record: null record. Can not handle");
54 if (LOG.isTraceEnabled()) {
55 LOG.trace("PM Record: class {} '{}' ", record.getClass().getSimpleName(), record);
58 timeStamp = NetconfTimeStamp.getTimeStampFromNetconf(record.getPeriodEndTime().getValue());
59 suspectIntervalFlag = record.isSuspectIntervalFlag();
60 granularityPeriod = getYangGranularityPeriodString( record.getGranularityPeriod() );
61 scannerId = record.getHistoryDataId();
63 if (record instanceof LinkIdentifyingObject) {
64 radioSignalId = ((LinkIdentifyingObject) record).getSignalId();
67 performanceData = new EsPerformanceData10( record );
68 setEsId(genSpecificEsId(record.getPeriodEndTime().getValue()));
71 protected <T extends OtnHistoryDataG> void set(T record) {
73 LOG.warn("PM Record: null record. Can not handle");
77 if (LOG.isTraceEnabled()) {
78 LOG.trace("PM Record: class {} '{}' ", record.getClass().getSimpleName(), record);
81 timeStamp = NetconfTimeStamp.getTimeStampFromNetconf(record.getPeriodEndTime().getValue());
82 suspectIntervalFlag = record.isSuspectIntervalFlag();
83 granularityPeriod = getYangGranularityPeriodString( record.getGranularityPeriod() );
84 scannerId = record.getHistoryDataId();
86 if (record instanceof LinkIdentifyingObject) {
87 radioSignalId = ((LinkIdentifyingObject) record).getSignalId();
90 performanceData = new EsPerformanceData12( record );
91 setEsId(genSpecificEsId(record.getPeriodEndTime().getValue()));
95 @JsonGetter("node-name")
96 public String getNodeName() {
100 @JsonGetter("uuid-interface")
101 public String getUuidInterface() {
102 return uuidInterface;
105 @JsonGetter("layer-protocol-name")
106 public String getLayerProtocolName() {
107 return layerProtocolName;
110 @JsonGetter("radio-signal-id")
111 public String getRadioSignalId() {
112 return radioSignalId;
115 @JsonGetter("time-stamp")
116 public String getTimeStamp() {
120 @JsonGetter("suspect-interval-flag")
121 public Boolean getSuspect() {
122 return suspectIntervalFlag;
125 @JsonGetter("granularity-period")
126 public String getGranularityPeriod() {
127 return granularityPeriod;
130 @JsonGetter("scanner-id")
131 public String getScannerId() {
135 @JsonGetter("performance-data")
136 public Object getData() {
137 return performanceData;
143 //@JsonGetter("granularityPeriod")
144 private static String getYangGranularityPeriodString(GranularityPeriodType yangGanularityPeriod) {
145 switch(yangGanularityPeriod == null ? GranularityPeriodType.UNKNOWN : yangGanularityPeriod) {
147 return "PERIOD_15MIN";
149 return "PERIOD_24HOURS";
151 return "PERIOD_UNKOWN";
155 private static String getYangGranularityPeriodString(org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType yangGanularityPeriod) {
156 switch(yangGanularityPeriod == null ? org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType.Unknown : yangGanularityPeriod) {
158 return "PERIOD_15MIN";
160 return "PERIOD_24HOURS";
162 return "PERIOD_UNKOWN";
167 * Create a specific ES id for the current log.
168 * @param time is the input.
169 * @return a string with the generated ES Id
171 protected String genSpecificEsId(String time) {
173 StringBuffer strBuf = new StringBuffer();
174 strBuf.append(nodeName);
176 strBuf.append(uuidInterface);
178 strBuf.append(time == null || time.isEmpty() ? "Empty" : time);
180 return strBuf.toString();
184 public String toString() {
185 return "EsHistoricalPerformanceBase [nodeName=" + nodeName + ", uuidInterface=" + uuidInterface
186 + ", layerProtocolName=" + layerProtocolName + ", radioSignalId=" + radioSignalId + ", timeStamp="
187 + timeStamp + ", suspectIntervalFlag=" + suspectIntervalFlag + ", granularityPeriod="
188 + granularityPeriod + ", scannerId=" + scannerId + ", performanceData=" + performanceData + "]";