/* (non-Javadoc) * @see org.opennms.features.pluginmgr.PluginManager#getSystemId(java.lang.String) */ @Override public synchronized String getSystemId(String karafInstance) { if (karafInstance == null) throw new RuntimeException("karafInstance cannot be null"); if (!pluginModelJaxb.getKarafDataMap().containsKey(karafInstance)) { return null; } KarafEntryJaxb karafEntry = pluginModelJaxb.getKarafDataMap().get(karafInstance); if (karafEntry == null) return null; return karafEntry.getSystemId(); }
/* (non-Javadoc) * @see org.opennms.features.pluginmgr.PluginManager#getInstalledLicenceList(java.lang.String) */ @Override public synchronized void updateInstalledLicenceList( LicenceList licenceList, String karafInstance) { if (karafInstance == null) throw new RuntimeException("karafInstance cannot be null"); if (licenceList == null) throw new RuntimeException("licenceList cannot be null"); SortedMap<String, KarafManifestEntryJaxb> karafInstances = getKarafInstances(); if (!karafInstances.containsKey(karafInstance)) throw new RuntimeException("system does not know karafInstance=" + karafInstance); if (!pluginModelJaxb.getKarafDataMap().containsKey(karafInstance)) { throw new RuntimeException("no karaf entry entry exists for Karaf Instance=" + karafInstance); } KarafEntryJaxb karafEntry = pluginModelJaxb.getKarafDataMap().get(karafInstance); karafEntry.getInstalledLicenceList().getLicenceList().clear(); karafEntry.getInstalledLicenceList().getLicenceList().addAll(licenceList.getLicenceList()); persist(); }
@Override public synchronized void deleteKarafInstance(String karafInstance) { if (karafInstance == null || "".equals(karafInstance)) throw new RuntimeException("karafInstance cannot be null or empty"); if ("localhost".equals(karafInstance)) throw new RuntimeException("cannot delete localhost karaf instance from plugin manager"); pluginModelJaxb.getKarafManifestEntryMap().remove(karafInstance); pluginModelJaxb.getKarafDataMap().remove(karafInstance); persist(); }
/* (non-Javadoc) * @see org.opennms.features.pluginmgr.PluginManager#refreshKarafEntry(java.lang.String) */ @Override public synchronized KarafEntryJaxb refreshKarafEntry(String karafInstance) { if (karafInstance == null) throw new RuntimeException("karafInstance cannot be null"); SortedMap<String, KarafManifestEntryJaxb> karafInstances = getKarafInstances(); if (!karafInstances.containsKey(karafInstance)) throw new RuntimeException("system does not know karafInstance=" + karafInstance); KarafManifestEntryJaxb karafManifest = karafInstances.get(karafInstance); String karafInstanceUrl = karafManifest.getKarafInstanceUrl(); // only update remote if accessible // else just return current value if (karafManifest.getRemoteIsAccessible() == null || !karafManifest.getRemoteIsAccessible()) { if (!pluginModelJaxb.getKarafDataMap().containsKey(karafInstance)) { // if there is no entry, create an empty one KarafEntryJaxb karafEntryJaxb = new KarafEntryJaxb(); pluginModelJaxb.getKarafDataMap().put(karafInstance, karafEntryJaxb); } return pluginModelJaxb.getKarafDataMap().get(karafInstance); } else { KarafEntryJaxb karafEntryJaxb = new KarafEntryJaxb(); try { // getting karaf installed licences and system id LicenceManagerClientRestJerseyImpl licenceManagerClient = new LicenceManagerClientRestJerseyImpl(); licenceManagerClient.setBaseUrl(karafInstanceUrl); licenceManagerClient.setUserName(karafManifest.getKarafInstanceUserName()); licenceManagerClient.setPassword(karafManifest.getKarafInstancePassword()); licenceManagerClient.setBasePath(LICENCE_MGR_BASE_PATH); LicenceList installedLicenceList; try { installedLicenceList = licenceManagerClient.getLicenceMap(); karafEntryJaxb.setInstalledLicenceList(installedLicenceList); String systemId = licenceManagerClient.getSystemId(); karafEntryJaxb.setSystemId(systemId); // if the remote has a system id and manifest does not, set manifest to remote value if (karafManifest.getManifestSystemId() == null) karafManifest.setManifestSystemId(systemId); } catch (Exception e) { throw new RuntimeException( "problem refreshing installed licences for " + "karafInstance=" + karafInstance + " karafInstanceUrl=" + karafInstanceUrl + ": ", e); } // getting installed plugins ProductRegisterClientRestJerseyImpl productRegisterClient = new ProductRegisterClientRestJerseyImpl(); productRegisterClient.setBaseUrl(karafInstanceUrl); productRegisterClient.setUserName(karafManifest.getKarafInstanceUserName()); productRegisterClient.setPassword(karafManifest.getKarafInstancePassword()); // getting karaf installed plugins productRegisterClient.setBasePath(PRODUCT_REG_BASE_PATH); ProductSpecList installedPlugins; try { installedPlugins = productRegisterClient.getList(); List<LicenceEntry> licenceList = karafEntryJaxb.getInstalledLicenceList().getLicenceList(); // tests if plugins need a licence and if the licence is authenticated for (ProductMetadata installedPlugin : installedPlugins.getProductSpecList()) { if (installedPlugin.getLicenceKeyRequired() != null && installedPlugin.getLicenceKeyRequired() == true) { // if plugin needs a licence then check if licence is already verified // ignores exception if no licence is installed Boolean licenceKeyAuthenticated = false; for (LicenceEntry licenceEntry : licenceList) { if (licenceEntry.getProductId().equals(installedPlugin.getProductId())) { // only check where licence is installed // note will throw exception if licence is not installed when checked licenceKeyAuthenticated = licenceManagerClient.isAuthenticated(installedPlugin.getProductId()); } } installedPlugin.setLicenceKeyAuthenticated(licenceKeyAuthenticated); } } karafEntryJaxb.setInstalledPlugins(installedPlugins); } catch (Exception e) { throw new RuntimeException( "problem refreshing installed plugins for " + "karafInstance=" + karafInstance + " karafInstanceUrl=" + karafInstanceUrl + ": ", e); } karafEntryJaxb.setKarafInstanceLastUpdated(new Date()); pluginModelJaxb.getKarafDataMap().put(karafInstance, karafEntryJaxb); persist(); } catch (Exception e) { throw new RuntimeException( "problem updating data from karaf Instance '" + karafInstance + "'", e); } return karafEntryJaxb; } }