----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/63573/ -----------------------------------------------------------
(Updated Nov. 9, 2017, 6:54 p.m.) Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan. Changes ------- Added hashCode() in ClusterSettingResponse.java Bugs: AMBARI-22366 https://issues.apache.org/jira/browse/AMBARI-22366 Repository: ambari Description ------- AMBARI-22366. POST, GET and UPDATE API for cluster settings. (/clusters/{clusterName}/settings). **Background:** AMBARI-22196 did the following : (1). Refactoring work of moving all cluster related configs/settings in cluster-env to "cluster-settings" files. (2). Implementing READ only API to access *cluster-settings* file *setting(s)* : *http://<host>:<port>/api/v1/cluster_settings/ * - This was done to separate cluster related configs from stack related configs. **This JIRA implements the following :** - POST, GET, UPDATE and DELETE APIs for cluster settings with endpoint : *http://<host>:<port>/api/v1/clusters/[[clusterName]]/settings*, where -- the cluster settings would be initially read from the above mentioned read-only API : *http://<host>:<port>/api/v1/cluster_settings/*. - Further, added cluster *settings* as a sub-resource of *cluster* resource. Diffs (updated) ----- ambari-server/src/main/java/org/apache/ambari/server/ClusterSettingNotFoundException.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java e5680dd ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterSettingResourceDefinition.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java 6096fa5 ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java 92f50f4 ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterSettingService.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 358b1bf ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java 370f735 ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterSettingRequest.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterSettingResponse.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java 3db55d4 ambari-server/src/main/java/org/apache/ambari/server/controller/ResourceProviderFactory.java 20f4864 ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceGroupResponse.java 147650c ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java 9050e3d ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterSettingResourceProvider.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java c219d23 ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceGroupResourceProvider.java 2e935af ambari-server/src/main/java/org/apache/ambari/server/controller/spi/Resource.java bd6d7bb ambari-server/src/main/java/org/apache/ambari/server/events/ClusterSettingEvent.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterSettingDAO.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java abbf709 ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterSettingEntity.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/resources/RootLevelSettingsManager.java 3b74e69 ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java 5ba61b7 ambari-server/src/main/java/org/apache/ambari/server/state/ClusterSetting.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/state/ClusterSettingFactory.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/state/ClusterSettingImpl.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/state/ServiceGroupImpl.java 7737c0d ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java e896d0e ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql 19e23c5 ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b1990df ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 015d6ac ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql d3c7ff6 ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 6bfe205 ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 65315ec ambari-server/src/main/resources/META-INF/persistence.xml 009ecd5 Diff: https://reviews.apache.org/r/63573/diff/4/ Changes: https://reviews.apache.org/r/63573/diff/3-4/ Testing ------- **Implemented API details:** **==================================================** **POST:** **=====** **Single Setting POST**: POST http://{{host1}}:8080/api/v1/clusters/c1/settings/ {code:title=REQUEST} [ { "ClusterSettingInfo" : { "cluster_setting_name": "security_enabled", "cluster_setting_value": "false" } } ] {code} {code:title=RESPONSE} { "resources" : [ { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/security_enabled", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 54, "cluster_setting_name" : "security_enabled", "cluster_setting_value" : "false" } } ] } {code} **Multiple Setting POST**: POST http://{{host1}}:8080/api/v1/clusters/c1/settings/ {code:title=REQUEST} [ { "ClusterSettingInfo" : { "cluster_setting_name": "smokeuser", "cluster_setting_value": "smoke_user1" } }, { "ClusterSettingInfo" : { "cluster_setting_name": "ignore_groupsusers_create", "cluster_setting_value": "false" } } ] {code} {code:title=RESPONSE} { "resources" : [ { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/smokeuser", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 55, "cluster_setting_name" : "smokeuser", "cluster_setting_value" : "smoke_user1" } }, { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/ignore_groupsusers_create", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 56, "cluster_setting_name" : "ignore_groupsusers_create", "cluster_setting_value" : "false" } } ] } {code} **==================================================** **GET** **====** **Multiple Setting GET**: GET http://{{host1}}:8080/api/v1/clusters/c1/settings/ {code:title=REQUEST} [] {code} {code:title=RESPONSE} { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/", "items" : [ { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/ignore_groupsusers_create", "ClusterSettingInfo" : { "cluster_name" : "c1", "cluster_setting_name" : "ignore_groupsusers_create" } }, { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/security_enabled", "ClusterSettingInfo" : { "cluster_name" : "c1", "cluster_setting_name" : "security_enabled" } }, { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/smokeuser", "ClusterSettingInfo" : { "cluster_name" : "c1", "cluster_setting_name" : "smokeuser" } } ] } {code} **Single Setting GET**: GET http://{{host1}}:8080/api/v1/clusters/c1/settings/smokeuser {code:title=REQUEST} [] {code} {code:title=RESPONSE} { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/smokeuser", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 55, "cluster_setting_name" : "smokeuser", "cluster_setting_value" : "smoke_user1" } } {code} **==================================================** **PUT** **====** **Single Setting PUT**: PUT http://{{host1}}:8080/api/v1/clusters/c1/settings/security_enabled {code:title=REQUEST} [ { "ClusterSettingInfo" : { "cluster_setting_value": "true" } } ] {code} {code:title=RESPONSE} { "resources" : [ { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/security_enabled/security_enabled", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 54, "cluster_setting_name" : "security_enabled", "cluster_setting_value" : "true" } } ] } {code} **Multiple Setting PUT**: PUT http://{{host1}}:8080/api/v1/clusters/c1/settings/ {code:title=REQUEST} [ { "ClusterSettingInfo" : { "cluster_setting_name" : "ignore_groupsusers_create", "cluster_setting_value": "true" } }, { "ClusterSettingInfo" : { "cluster_setting_name" : "smokeuser", "cluster_setting_value": "smoke_user2" } } ] {code} {code:title=RESPONSE} { "resources" : [ { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/smokeuser", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 55, "cluster_setting_name" : "smokeuser", "cluster_setting_value" : "smoke_user2" } }, { "href" : "http://172.22.87.100:8080/api/v1/clusters/c1/settings/ignore_groupsusers_create", "ClusterSettingInfo" : { "cluster_id" : 2, "cluster_name" : "c1", "cluster_setting_id" : 56, "cluster_setting_name" : "ignore_groupsusers_create", "cluster_setting_value" : "true" } } ] } {code} ***==================================================** **DELETE** **======** DELETE http://{{host1}}:8080/api/v1/clusters/c1/settings/security_enabled {code:title=REQUEST} [] {code} {code:title=RESPONSE} { "deleteResult" : [ { "deleted" : { "key" : "cluster_name: c1, cluster_setting_name: security_enabled" } } ] } {code} Thanks, Swapan Shridhar