You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2014/11/14 16:29:54 UTC
ambari git commit: AMBARI-8330 - API: null value in request results
in null string value on resource (tbeerbower)
Repository: ambari
Updated Branches:
refs/heads/trunk feab062b8 -> 99a24d8c3
AMBARI-8330 - API: null value in request results in null string value on resource (tbeerbower)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/99a24d8c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/99a24d8c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/99a24d8c
Branch: refs/heads/trunk
Commit: 99a24d8c32ad0cc2b8df650b536f1a153c7b97fc
Parents: feab062
Author: tbeerbower <tb...@hortonworks.com>
Authored: Fri Nov 14 10:29:26 2014 -0500
Committer: tbeerbower <tb...@hortonworks.com>
Committed: Fri Nov 14 10:29:39 2014 -0500
----------------------------------------------------------------------
.../services/parsers/JsonRequestBodyParser.java | 8 ++--
.../server/upgrade/UpgradeCatalog200.java | 4 ++
.../main/resources/Ambari-DDL-MySQL-CREATE.sql | 4 +-
.../main/resources/Ambari-DDL-Oracle-CREATE.sql | 4 +-
.../resources/Ambari-DDL-Postgres-CREATE.sql | 4 +-
.../Ambari-DDL-Postgres-EMBEDDED-CREATE.sql | 4 +-
.../parsers/JsonRequestBodyParserTest.java | 4 +-
.../server/upgrade/UpgradeCatalog200Test.java | 45 ++++++++++++++++++++
8 files changed, 64 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/main/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParser.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParser.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParser.java
index bbe7647..5e6df6b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParser.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParser.java
@@ -150,16 +150,18 @@ public class JsonRequestBodyParser implements RequestBodyParser {
}
} else {
// field
+ String value = child.isNull() ? null : child.asText();
+
if (path.equals(REQUEST_INFO_PATH)) {
requestInfoProps.put(PropertyHelper.getPropertyId(null, name),
- child.asText());
+ value);
} else if (path.startsWith(REQUEST_INFO_PATH)) {
requestInfoProps.put(PropertyHelper.getPropertyId(
path.substring(REQUEST_INFO_PATH.length() + SLASH.length()), name),
- child.asText());
+ value);
} else {
propertySet.getProperties().put(PropertyHelper.getPropertyId(
- path.equals(BODY_TITLE) ? "" : path, name), child.asText());
+ path.equals(BODY_TITLE) ? "" : path, name), value);
}
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java
index 8250e83..45e7813 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java
@@ -90,6 +90,10 @@ public class UpgradeCatalog200 extends AbstractUpgradeCatalog {
dbAccessor.addColumn(ALERT_TABLE_DEFINITION, new DBColumnInfo(
"ignore_host", Short.class, 1, 0, false));
+ // Alter column : make viewinstanceproperty.value & viewinstancedata.value nullable
+ dbAccessor.alterColumn("viewinstanceproperty", new DBColumnInfo("value", String.class, 2000, null, true));
+ dbAccessor.alterColumn("viewinstancedata", new DBColumnInfo("value", String.class, 2000, null, true));
+
ddlUpdateRepositoryVersion();
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
index ca86e20..b2d9221 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
@@ -417,7 +417,7 @@ CREATE TABLE viewinstancedata (
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
user_name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(VIEW_INSTANCE_ID, NAME, USER_NAME));
CREATE TABLE viewinstance (
@@ -437,7 +437,7 @@ CREATE TABLE viewinstanceproperty (
view_name VARCHAR(255) NOT NULL,
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_name, view_instance_name, name));
CREATE TABLE viewparameter (
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
index 0c99cd2..50f02b8 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
@@ -408,7 +408,7 @@ CREATE TABLE viewinstancedata (
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
user_name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_instance_id, name, user_name));
CREATE TABLE viewinstance (
@@ -428,7 +428,7 @@ CREATE TABLE viewinstanceproperty (
view_name VARCHAR(255) NOT NULL,
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_name, view_instance_name, name));
CREATE TABLE viewparameter (
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
index 4c5b89d..d865161 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
@@ -408,7 +408,7 @@ CREATE TABLE viewinstancedata (
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
user_name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_instance_id, name, user_name));
CREATE TABLE viewinstance (
@@ -428,7 +428,7 @@ CREATE TABLE viewinstanceproperty (
view_name VARCHAR(255) NOT NULL,
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_name, view_instance_name, name));
CREATE TABLE viewparameter (
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
index 7aa7cab..2e110ce 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
@@ -464,7 +464,7 @@ CREATE TABLE ambari.viewinstancedata (
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
user_name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_instance_id, name, user_name));
CREATE TABLE ambari.viewinstance (
@@ -484,7 +484,7 @@ CREATE TABLE ambari.viewinstanceproperty (
view_name VARCHAR(255) NOT NULL,
view_instance_name VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
- value VARCHAR(2000) NOT NULL,
+ value VARCHAR(2000),
PRIMARY KEY(view_name, view_instance_name, name));
CREATE TABLE ambari.viewparameter (
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/test/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParserTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParserTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParserTest.java
index 1c28452..8b78524 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParserTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/parsers/JsonRequestBodyParserTest.java
@@ -62,7 +62,7 @@ public class JsonRequestBodyParserTest {
"{" +
"\"Clusters\" : {\n" +
" \"cluster_name\" : \"unitTestCluster3\"," +
- " \"Category\" : { \"property2\" : \"prop2Value\"}" +
+ " \"Category\" : { \"property2\" : null}" +
"} } ]";
String arrayJson2 = "{" +
@@ -243,7 +243,7 @@ public class JsonRequestBodyParserTest {
Map<String, String> mapCluster3 = new HashMap<String, String>();
mapCluster3.put(PropertyHelper.getPropertyId("Clusters", "cluster_name"), "unitTestCluster3");
- mapCluster3.put(PropertyHelper.getPropertyId("Clusters/Category", "property2"), "prop2Value");
+ mapCluster3.put(PropertyHelper.getPropertyId("Clusters/Category", "property2"), null);
for (NamedPropertySet propertySet : setProps) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/99a24d8c/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java
index f9f2708..6a5bab7 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java
@@ -18,10 +18,13 @@
package org.apache.ambari.server.upgrade;
+import java.sql.SQLException;
import java.util.List;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertNull;
+import static junit.framework.Assert.assertTrue;
import static org.easymock.EasyMock.capture;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.createStrictMock;
@@ -89,6 +92,8 @@ public class UpgradeCatalog200Test {
Capture<DBAccessor.DBColumnInfo> hostComponentStateColumnCapture = new Capture<DBAccessor.DBColumnInfo>();
Capture<List<DBAccessor.DBColumnInfo>> clusterVersionCapture = new Capture<List<DBAccessor.DBColumnInfo>>();
Capture<List<DBAccessor.DBColumnInfo>> hostVersionCapture = new Capture<List<DBAccessor.DBColumnInfo>>();
+ Capture<DBAccessor.DBColumnInfo> valueColumnCapture = new Capture<DBAccessor.DBColumnInfo>();
+ Capture<DBAccessor.DBColumnInfo> dataValueColumnCapture = new Capture<DBAccessor.DBColumnInfo>();
// Alert Definition
dbAccessor.addColumn(eq("alert_definition"),
@@ -106,6 +111,9 @@ public class UpgradeCatalog200Test {
dbAccessor.createTable(eq("host_version"),
capture(hostVersionCapture), eq("id"));
+ setViewInstancePropertyExpectations(dbAccessor, valueColumnCapture);
+ setViewInstanceDataExpectations(dbAccessor, dataValueColumnCapture);
+
replay(dbAccessor, configuration, resultSet);
AbstractUpgradeCatalog upgradeCatalog = getUpgradeCatalog(dbAccessor);
@@ -131,6 +139,9 @@ public class UpgradeCatalog200Test {
// Verify capture group sizes
assertEquals(8, clusterVersionCapture.getValue().size());
assertEquals(5, hostVersionCapture.getValue().size());
+
+ assertViewInstancePropertyColumns(valueColumnCapture);
+ assertViewInstanceDataColumns(dataValueColumnCapture);
}
@Test
@@ -181,4 +192,38 @@ public class UpgradeCatalog200Test {
Assert.assertEquals("2.0.0", upgradeCatalog.getTargetVersion());
}
+
+ private void setViewInstancePropertyExpectations(DBAccessor dbAccessor,
+ Capture<DBAccessor.DBColumnInfo> valueColumnCapture)
+ throws SQLException {
+
+ dbAccessor.alterColumn(eq("viewinstanceproperty"), capture(valueColumnCapture));
+ }
+
+ private void setViewInstanceDataExpectations(DBAccessor dbAccessor,
+ Capture<DBAccessor.DBColumnInfo> dataValueColumnCapture)
+ throws SQLException {
+
+ dbAccessor.alterColumn(eq("viewinstancedata"), capture(dataValueColumnCapture));
+ }
+
+ private void assertViewInstancePropertyColumns(
+ Capture<DBAccessor.DBColumnInfo> valueColumnCapture) {
+ DBAccessor.DBColumnInfo column = valueColumnCapture.getValue();
+ assertEquals("value", column.getName());
+ assertEquals(2000, (int) column.getLength());
+ assertEquals(String.class, column.getType());
+ assertNull(column.getDefaultValue());
+ assertTrue(column.isNullable());
+ }
+
+ private void assertViewInstanceDataColumns(
+ Capture<DBAccessor.DBColumnInfo> dataValueColumnCapture) {
+ DBAccessor.DBColumnInfo column = dataValueColumnCapture.getValue();
+ assertEquals("value", column.getName());
+ assertEquals(2000, (int) column.getLength());
+ assertEquals(String.class, column.getType());
+ assertNull(column.getDefaultValue());
+ assertTrue(column.isNullable());
+ }
}