1 package org.opendaylight.mwtn.config.impl;
3 import org.opendaylight.mwtn.base.internalTypes.Environment;
4 import org.opendaylight.mwtn.base.internalTypes.IniConfigurationFile;
5 import org.opendaylight.mwtn.base.internalTypes.IniConfigurationFile.ConfigurationException;
6 import org.opendaylight.mwtn.config.impl.HtDevicemanagerConfiguration.ISubConfigHandler;
8 public class PmConfig extends BaseSubConfig {
10 private static final String SECTION_MARKER_PM = "pm";
11 private static final String PROPERTY_KEY_ENABLED = "pmEnabled";
12 private static final String PROPERTY_KEY_CLUSTER = "pmCluster";
14 private static final boolean DEFAULT_VALUE_ENABLED = true;
15 private static final String DEFAULT_VALUE_CLUSTER = "";
16 private static PmConfig pmConfig;
18 private boolean enabled;
20 public static final String ESDATATYPENAME = "database";
22 private static final String EMPTY = "empty";
24 private String cluster;
28 public static String getESDATATYPENAME() {
29 return ESDATATYPENAME;
32 public String getCluster() {
36 public void setCluster(String cluster) {
37 this.cluster = cluster;
40 public String getHost() {
44 public void setHost(String host) {
48 public String getNode() {
52 public void setNode(String node) {
56 public boolean isPerformanceManagerEnabled() {
60 public PmConfig(IniConfigurationFile config, ISubConfigHandler configHandler) throws ConfigurationException {
61 this(config, configHandler, true);
64 public PmConfig(IniConfigurationFile config, ISubConfigHandler configHandler, boolean save)
65 throws ConfigurationException {
67 super(config, configHandler, SECTION_MARKER_PM);
68 String clustername = Environment.getVar("$HOSTNAME");
70 this.enabled = this.getBoolean(PROPERTY_KEY_ENABLED, DEFAULT_VALUE_ENABLED);
71 String c = this.getString(PROPERTY_KEY_CLUSTER, clustername);
72 if (c != null && c.startsWith("$"))
73 c = Environment.getVar(c);
75 this.node = String.format("%s%s", this.cluster, "n1");
76 this.host = "localhost";
79 config.setProperty(SECTION_MARKER_PM + "." + PROPERTY_KEY_ENABLED, this.enabled);
80 config.setProperty(SECTION_MARKER_PM + "." + PROPERTY_KEY_CLUSTER, this.cluster);
91 this.enabled = DEFAULT_VALUE_ENABLED;
95 public boolean equals(Object obj) {
96 if (obj instanceof PmConfig) {
97 PmConfig cobj = (PmConfig) obj;
98 if (!((cobj.cluster == null && this.cluster == null) || cobj.cluster.equals(this.cluster)))
100 if (!((cobj.host == null && this.host == null) || cobj.host.equals(this.host)))
102 if (!((cobj.node == null && this.node == null) || cobj.node.equals(this.node)))
106 return super.equals(obj);
109 public static PmConfig getDefaultConfiguration() {
110 PmConfig c = new PmConfig();
111 c.enabled = DEFAULT_VALUE_ENABLED;
112 c.cluster = DEFAULT_VALUE_CLUSTER;
117 public String toString() {
118 return "PmConfig [enabled=" + enabled + ", cluster=" + cluster + ", host=" + host + ", node=" + node + "]";
121 public static boolean isInstantiated() {
122 return pmConfig != null;
125 public static PmConfig getPm(IniConfigurationFile config, ISubConfigHandler configHandler) {
126 if (pmConfig == null)
128 pmConfig = new PmConfig(config, configHandler);
129 } catch (ConfigurationException e) {
130 pmConfig = PmConfig.getDefaultConfiguration();
135 public static PmConfig reload() {
136 if (pmConfig == null)
140 tmpConfig = new PmConfig(pmConfig.getConfig(), pmConfig.getConfigHandler(), false);
141 } catch (ConfigurationException e) {
142 tmpConfig = PmConfig.getDefaultConfiguration();
144 pmConfig = tmpConfig;