From 7b6b9f44ff4f7cf758ec25482e6cba83a818ce75 Mon Sep 17 00:00:00 2001 From: Thomas Segismont Date: Mon, 12 May 2014 16:54:27 +0200 Subject: [PATCH] Bug 1073991 - Create Child resource with User Type for postgres server doesn't work correct Resource name is a mandatory property of the Create Resource Report --- .../postgres/PostgresServerComponent.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresServerComponent.java b/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresServerComponent.java index 30c907b2fae..7554ddeed54 100644 --- a/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresServerComponent.java +++ b/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresServerComponent.java @@ -21,6 +21,8 @@ import static org.rhq.core.domain.measurement.AvailabilityType.DOWN; import static org.rhq.core.domain.measurement.AvailabilityType.UP; +import static org.rhq.core.domain.resource.CreateResourceStatus.FAILURE; +import static org.rhq.core.domain.resource.CreateResourceStatus.SUCCESS; import java.beans.BeanInfo; import java.beans.Introspector; @@ -53,7 +55,6 @@ import org.rhq.core.domain.measurement.MeasurementDataTrait; import org.rhq.core.domain.measurement.MeasurementReport; import org.rhq.core.domain.measurement.MeasurementScheduleRequest; -import org.rhq.core.domain.resource.CreateResourceStatus; import org.rhq.core.pluginapi.configuration.ConfigurationFacet; import org.rhq.core.pluginapi.configuration.ConfigurationUpdateReport; import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet; @@ -454,7 +455,12 @@ public OperationResult invokeOperation(String name, Configuration parameters) th public CreateResourceReport createResource(CreateResourceReport report) { Configuration userConfig = report.getResourceConfiguration(); - String user = userConfig.getSimpleValue("user", null); + + String user = userConfig.getSimpleValue("user"); + if (user == null || user.trim().isEmpty()) { + report.setStatus(FAILURE); + report.setErrorMessage("User name is missing"); + } Connection jdbcConnection = null; Statement statement = null; @@ -465,9 +471,18 @@ public CreateResourceReport createResource(CreateResourceReport report) { // NOTE: Postgres doesn't seem to indicate the expect count of 1 row updated but this work // Postgres returns 0 for DDL that does not return rows statement.executeUpdate(sql); + + String resourceName = report.getUserSpecifiedResourceName(); + if (resourceName == null || resourceName.trim().isEmpty()) { + resourceName = user; + } + + report.setStatus(SUCCESS); + report.setResourceName(resourceName); report.setResourceKey(user); - report.setStatus(CreateResourceStatus.SUCCESS); + } catch (SQLException e) { + report.setStatus(FAILURE); report.setException(e); } finally { DatabasePluginUtil.safeClose(jdbcConnection, statement);