protected void createComponentTest( String templateName, Map<String, MetaValue> propValues, String deploymentName, ComponentType componentType, String componentName) throws Exception { ManagementView mgtView = getManagementView(); DeploymentTemplateInfo dsInfo = mgtView.getTemplate(templateName); assertNotNull("template " + templateName + " found", dsInfo); Map<String, ManagedProperty> props = dsInfo.getProperties(); for (String propName : propValues.keySet()) { ManagedProperty prop = props.get(propName); // If the property does not exist on the template we don't set it if (prop == null) continue; log.debug("template property before: " + prop.getName() + "," + prop.getValue()); assertNotNull("property " + propName + " found in template " + templateName, prop); prop.setValue(propValues.get(propName)); log.debug("template property after: " + prop.getName() + "," + prop.getValue()); } // Assert map composite if (dsInfo.getProperties().get("config-property") != null) assertTrue( dsInfo.getProperties().get("config-property").getMetaType() instanceof MapCompositeMetaType); mgtView.applyTemplate(deploymentName, dsInfo); // reload the view activeView = null; mgtView = getManagementView(); ManagedComponent dsMC = getManagedComponent(mgtView, componentType, componentName); assertNotNull(dsMC); Set<String> mcPropNames = new HashSet<String>(dsMC.getPropertyNames()); for (String propName : propValues.keySet()) { ManagedProperty prop = dsMC.getProperty(propName); log.debug("Checking: " + propName); assertNotNull(propName, prop); Object propValue = prop.getValue(); Object expectedValue = propValues.get(propName); if (propValue instanceof MetaValue) { if (prop.getMetaType().isComposite()) { // TODO / FIXME - compare composites log.warn("Not checking composite: " + propValue); } else { // Compare the MetaValues assertEquals(prop.getName(), expectedValue, propValue); } } else if (propValue != null) { fail(prop.getName() + " is not a MetaValue: " + propValue); } mcPropNames.remove(propName); } if (!mcPropNames.isEmpty()) { log.warn(getName() + "> untested properties: " + mcPropNames); for (String propName : mcPropNames) { ManagedProperty prop = dsMC.getProperty(propName); log.info(prop); } } }
private CreateResourceReport createConfigurationBasedResource( CreateResourceReport createResourceReport) { ResourceType resourceType = createResourceReport.getResourceType(); Configuration defaultPluginConfig = getDefaultPluginConfiguration(resourceType); Configuration resourceConfig = createResourceReport.getResourceConfiguration(); String resourceName = getResourceName(defaultPluginConfig, resourceConfig); ComponentType componentType = ProfileServiceUtil.getComponentType(resourceType); ManagementView managementView = null; ; managementView = getConnection().getManagementView(); if (ProfileServiceUtil.isManagedComponent(getConnection(), resourceName, componentType)) { createResourceReport.setStatus(CreateResourceStatus.FAILURE); createResourceReport.setErrorMessage( "A " + resourceType.getName() // $NON-NLS-1$ + " named '" + resourceName + "' already exists."); //$NON-NLS-1$ //$NON-NLS-2$ return createResourceReport; } createResourceReport.setResourceName(resourceName); String resourceKey = getResourceKey(resourceType, resourceName); createResourceReport.setResourceKey(resourceKey); PropertySimple templateNameProperty = resourceConfig.getSimple(TranslatorComponent.Config.TEMPLATE_NAME); String templateName = templateNameProperty.getStringValue(); DeploymentTemplateInfo template; try { template = managementView.getTemplate(templateName); Map<String, ManagedProperty> managedProperties = template.getProperties(); ProfileServiceUtil.convertConfigurationToManagedProperties( managedProperties, resourceConfig, resourceType, null); LOG.debug( "Applying template [" + templateName //$NON-NLS-1$ + "] to create ManagedComponent of type [" + componentType //$NON-NLS-1$ + "]..."); //$NON-NLS-1$ try { managementView.applyTemplate(resourceName, template); managementView.process(); createResourceReport.setStatus(CreateResourceStatus.SUCCESS); } catch (Exception e) { LOG.error( "Unable to apply template [" + templateName //$NON-NLS-1$ + "] to create ManagedComponent of type " //$NON-NLS-1$ + componentType + ".", e); //$NON-NLS-1$ createResourceReport.setStatus(CreateResourceStatus.FAILURE); createResourceReport.setException(e); } } catch (NoSuchDeploymentException e) { LOG.error("Unable to find template [" + templateName + "].", e); // $NON-NLS-1$ //$NON-NLS-2$ createResourceReport.setStatus(CreateResourceStatus.FAILURE); createResourceReport.setException(e); } catch (Exception e) { LOG.error("Unable to process create request", e); // $NON-NLS-1$ createResourceReport.setStatus(CreateResourceStatus.FAILURE); createResourceReport.setException(e); } return createResourceReport; }