use of org.opennms.upgrade.api.OnmsUpgradeException in project opennms by OpenNMS.
the class ServiceConfig1701MigratorOffline method preExecute.
/* (non-Javadoc)
* @see org.opennms.upgrade.api.OnmsUpgrade#preExecute()
*/
@Override
public void preExecute() throws OnmsUpgradeException {
try {
log("Backing up %s\n", configFile);
zipFile(configFile);
} catch (Exception e) {
throw new OnmsUpgradeException("Can't backup service-configurations.xml because " + e.getMessage());
}
}
use of org.opennms.upgrade.api.OnmsUpgradeException in project opennms by OpenNMS.
the class ServiceConfigMigratorOffline method execute.
/* (non-Javadoc)
* @see org.opennms.upgrade.api.OnmsUpgrade#execute()
*/
@Override
public void execute() throws OnmsUpgradeException {
if (skipMe)
return;
try {
ServiceConfiguration currentCfg = JaxbUtils.unmarshal(ServiceConfiguration.class, configFile);
int index = 0;
for (Service baseSvc : baseConfig.getServices()) {
Service localSvc = getService(currentCfg, baseSvc.getName());
if (localSvc == null) {
if (baseSvc.isEnabled()) {
log("Adding new service %s\n", baseSvc.getName());
} else {
log("Marking service %s as disabled\n", baseSvc.getName());
}
currentCfg.getServices().add(index, baseSvc);
continue;
}
if (!baseSvc.isEnabled()) {
log("Disabling service %s because it is not on the default list of enabled services\n", localSvc.getName());
localSvc.setEnabled(false);
}
if (localSvc.getClassName().equals("org.opennms.netmgt.poller.jmx.RemotePollerBackEnd")) {
log("Fixing the class path for RemotePollerBackEnd.\n");
localSvc.setClassName("org.opennms.netmgt.poller.remote.jmx.RemotePollerBackEnd");
}
if (localSvc.getName().equals("OpenNMS:Name=Linkd")) {
log("Disabling Linkd (to promote EnhancedLinkd)\n");
localSvc.setEnabled(false);
}
Attribute a = getLoggingPrefix(localSvc);
if (a != null) {
String prefix = a.getValue().getContent().toLowerCase();
// If the logging prefix isn't already lower case...
if (!a.getValue().getContent().equals(prefix)) {
// then set it to the lower case value
log("Fixing logging prefix for service %s\n", localSvc.getName());
a.getValue().setContent(prefix);
}
}
index++;
}
StringWriter sw = new StringWriter();
sw.write("<?xml version=\"1.0\"?>\n");
sw.write("<!-- NOTE!!!!!!!!!!!!!!!!!!!\n");
sw.write("The order in which these services are specified is important - for example, Eventd\n");
sw.write("will need to come up last so that none of the event topic subcribers loose any event.\n");
sw.write("\nWhen splitting services to run on mutiple VMs, the order of the services should be\n");
sw.write("maintained\n");
sw.write("-->\n");
JaxbUtils.marshal(currentCfg, sw);
FileWriter fw = new FileWriter(configFile);
fw.write(sw.toString());
fw.close();
} catch (Exception e) {
throw new OnmsUpgradeException("Can't fix services configuration because " + e.getMessage(), e);
}
}
use of org.opennms.upgrade.api.OnmsUpgradeException in project opennms by OpenNMS.
the class ServiceConfigMigratorOffline method preExecute.
/* (non-Javadoc)
* @see org.opennms.upgrade.api.OnmsUpgrade#preExecute()
*/
@Override
public void preExecute() throws OnmsUpgradeException {
if (isInstalledVersionGreaterOrEqual(14, 0, 0)) {
log("This upgrade procedure should only run against systems older than 14.0.0; the current version is " + getOpennmsVersion() + "\n");
skipMe = true;
return;
}
try {
log("Backing up %s\n", configFile);
zipFile(configFile);
} catch (Exception e) {
throw new OnmsUpgradeException("Can't backup service-configurations.xml because " + e.getMessage());
}
}
use of org.opennms.upgrade.api.OnmsUpgradeException in project opennms by OpenNMS.
the class KscReportsMigrator method execute.
/* (non-Javadoc)
* @see org.opennms.upgrade.api.OnmsUpgrade#execute()
*/
@Override
public void execute() throws OnmsUpgradeException {
log("Fixing KSC Reports.\n");
boolean changed = false;
List<SnmpInterface> interfacesToMerge = getInterfacesToMerge();
for (Integer reportId : KSC_PerformanceReportFactory.getInstance().getReportList().keySet()) {
Report report = KSC_PerformanceReportFactory.getInstance().getReportByIndex(reportId);
log(" Checking report %s\n", report.getTitle());
for (Graph graph : report.getGraphs()) {
for (SnmpInterface intf : interfacesToMerge) {
final String resourceId = graph.getResourceId().orElse(null);
if (intf.shouldUpdate(resourceId)) {
changed = true;
log(" replacing resource ID %s with %s for %s\n", graph.getResourceId(), intf.getNewResourceId(), graph.getTitle());
graph.setResourceId(intf.getNewResourceId().toString());
}
}
}
}
if (changed) {
log("Updating the KSC reports configuration file.\n");
try {
KSC_PerformanceReportFactory.getInstance().saveCurrent();
} catch (Exception e) {
log("Warning: can't save KSC Reports because %s\n", e.getMessage());
}
if (isOpennmsRunning()) {
log("In case the OpenNMS WebUI can't see the changes, go to Reports -> KSC Performance, Nodes, Domains and click on 'Request a Reload of KSC Reports Configuration'\n");
}
} else {
log("No incomplete interface names detected.\n");
}
}
use of org.opennms.upgrade.api.OnmsUpgradeException in project opennms by OpenNMS.
the class DataCollectionConfigMigrator17Offline method updateDataCollectionConfig.
/**
* Update data collection configuration.
*
* @param snmpCollection the SNMP collection
* @param dataCollectionGroup the data collection group
* @throws OnmsUpgradeException the OpenNMS upgrade exception
*/
private void updateDataCollectionConfig(String snmpCollection, String dataCollectionGroup) throws OnmsUpgradeException {
DatacollectionConfig config = JaxbUtils.unmarshal(DatacollectionConfig.class, sourceFile);
if (config != null) {
log("Adding datacollection-group %s to snmp-collection %s", dataCollectionGroup, snmpCollection);
IncludeCollection ic = new IncludeCollection();
ic.setDataCollectionGroup(dataCollectionGroup);
config.getSnmpCollections().stream().filter(s -> s.getName().equals(snmpCollection)).findFirst().get().addIncludeCollection(ic);
try {
JaxbUtils.marshal(config, new FileWriter(sourceFile));
} catch (IOException e) {
throw new OnmsUpgradeException("Can't update " + sourceFile, e);
}
}
}
Aggregations