-----------------------------------------------------------
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

Reply via email to