The import of metric templates should be robust against metric templates not present in the target RHQ installation as well as against duplicit metric template definitions in the export file, both of which should be treated as validation errors. Steps to reproduce: 1) create an configuration export file 2) gunzip the file and change some metric template - introduce a typo in one of its attributes. 3) gzip the file again and import it to the RHQ server Actual results: The import silently ignores the not-matching metric templates Expected results: The import should fail with an error message.
commit d7449e1aeefbea1354204e51d142fabca29d7889 Author: Lukas Krejci <lkrejci> Date: Thu Aug 18 00:29:00 2011 +0200 BZ 731587 - added a new metric template validator that checks that the imported metric templates match records in the database and are not duplicated in the export file.
retested as follows: 1) exported a server configuration: var ex = SynchronizationManager.exportAllSubsystems(); saveBytesToFile(ex.exportFile, 'export.xml.gz'); 2) edit'ed the export.xml file as follows: i introduced a typo (per step 2 of the steps to reproduce) ... original: <entry key="RT_DATA_PURGE">2678400000</entry> with typo: <entry keyx="RT_DATA_PURGE">abc</entry> 3) imported the configuration, as follows: var definitions = SynchronizationManager.importConfigurationDefinitionOfAllSynchronizers; var data = getFileBytes('export.xml.gz'); SynchronizationManager.importAllSubsystems(data, null); 4) correctly received an exception (documented below). the exception and validation error is the correct response ... this is a negative test that had been failing silently ... now produces meaningful error message. Wrapped javax.ejb.EJBException: [Warning] org.rhq.enterprise.server.sync.ValidationException Reports of individual validators: ConsistencyValidatorFailureReport[validator='org.rhq.enterprise.server.sync.validators.SystemSettingsValidator', message='org.rhq.enterprise.server.sync.ValidationException: Failed to validate entity [SystemSettings[CAM_BASE_URL = 'http://10.0.1.189:7080/', CAM_LDAP_BIND_DN = '', CAM_DATA_PURGE_6H = '2678400000', ACTIVE_DRIFT_PLUGIN = 'drift-jpa', SERVER_VERSION = '4.1.0-SNAPSHOT', CAM_GUIDE_ENABLED = '1', EVENT_PURGE = '1209600000', CAM_HELP_USER = 'web', CAM_DATA_MAINTENANCE = '3600000', AGENT_MAX_QUIET_TIME_ALLOWED = '900000', ALERT_PURGE = '2678400000', CAM_SYSLOG_ACTIONS_ENABLED = '0', CAM_BASELINE_FREQUENCY = '259200000', CAM_LDAP_LOGIN_PROPERTY = 'cn', null = 'abc', ENABLE_AGENT_AUTO_UPDATE = 'true', CAM_LDAP_NAMING_PROVIDER_URL = 'ldap://localhost/', DRIFT_FILE_PURGE = '2678400000', DB_SCHEMA_VERSION = '2.114', CAM_LDAP_NAMING_FACTORY_INITIAL = 'com.sun.jndi.ldap.LdapCtxFactory', CAM_LDAP_BIND_PW = '', AVAILABILITY_PURGE = '31536000000', TRAIT_PURGE = '31536000000', CAM_LDAP_PROTOCOL = '', CAM_LDAP_FILTER = '', CAM_LDAP_BASE_DN = 'o=JBoss,c=US', CAM_JAAS_PROVIDER = 'JDBC', CAM_BASELINE_DATASET = '604800000', CAM_DATA_PURGE_1H = '1209600000', CAM_RT_COLLECT_IP_ADDRS = '1', CAM_HELP_PASSWORD = 'user', DATA_REINDEX_NIGHTLY = 'true', CAM_DATA_PURGE_1D = '31536000000', RESOURCE_GENERIC_PROPERTIES_UPGRADE = '0']] at org.rhq.enterprise.server.sync.SynchronizationManagerBean.validateEntities(SynchronizationManagerBean.java:334) at org.rhq.enterprise.server.sync.SynchronizationManagerBean.validateExport(SynchronizationManagerBean.java:261) at org.rhq.enterprise.server.sync.SynchronizationManagerBean.importAllSubsystems(SynchronizationManagerBean.java:161)
changing status of VERIFIED BZs for JON 2.4.2 and JON 3.0 to CLOSED/CURRENTRELEASE