[ https://issues.apache.org/jira/browse/AMBARI-18011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ajit Kumar updated AMBARI-18011: -------------------------------- Description: This api takes in query and instead of failing fast on the first error, puts the best effort to delete all requested hosts. Response should be json object which has deleted keys and keys which failed to delete with exception. Sample API calls: Delete all host components on a set of hosts: {code} Request: curl -i -uadmin:admin -H 'X-Requested-By: ambari' -X DELETE http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/host_components -d '{"RequestInfo":{"query":"HostRoles/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)"}}' Response { "deleteResult" : [ { "deleted" : { "key" : "c6401.ambari.apache.org/HIVE_METASTORE" } }, { "deleted" : { "key" : "c6402.ambari.apache.org/MYSQL_SERVER" } }, { "error" : { "key" : "c6402.ambari.apache.org/RESOURCEMANAGER", "code" : 500, "message" : "org.apache.ambari.server.AmbariException: Host Component cannot be removed, clusterName=c1, serviceName=YARN, componentName=RESOURCEMANAGER, hostname=c6402.ambari.apache.org, request={ clusterName=c1, serviceName=YARN, componentName=RESOURCEMANAGER, hostname=c6402.ambari.apache.org, desiredState=null, state=null, desiredStackId=null, staleConfig=null, adminState=null}" } } ] } {code} Delete selected host components on a set of host {code} Request: curl -i -uadmin:admin -H 'X-Requested-By: ambari' -X DELETE http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/host_components -d '{"RequestInfo":{"query":"HostRoles/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)&HostRoles/component_name.in(NODEMANAGER)"}}' Response: { "deleteResult" : [ { "deleted" : { "key" : "c6401.ambari.apache.org/NODEMANAGER" } }, { "error" : { "key" : "c6402.ambari.apache.org/NODEMANAGER", "code" : 500, "message" : "org.apache.ambari.server.AmbariException: Host Component cannot be removed, clusterName=c1, serviceName=YARN, componentName=NODEMANAGER, hostname=c6402.ambari.apache.org, request={ clusterName=c1, serviceName=YARN, componentName=NODEMANAGER, hostname=c6402.ambari.apache.org, desiredState=null, state=null, desiredStackId=null, staleConfig=null, adminState=null}" } } ] } {code} was: This api takes in query and instead of failing fast on the first error, puts the best effort to delete all requested hosts. Response should be json object which has deleted keys and keys which failed to delete with exception. Sample API calls: Delete all host components on a set of hosts: {code} delete http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/host_components -d '{"RequestInfo":{"query":"HostRoles/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)"}}' { "deleteResult" : [ { "deleted" : { "key" : "c6402.ambari.apache.org/HIVE_METASTORE" } }, { "deleted" : { "key" : "c6402.ambari.apache.org/MYSQL_SERVER" } }, { "error" : { "key" : "c6402.ambari.apache.org/RESOURCEMANAGER", "code" : 500, "message" : "org.apache.ambari.server.AmbariException: Host Component cannot be removed, clusterName=c1, serviceName=YARN, componentName=RESOURCEMANAGER, hostname=c6402.ambari.apache.org, request={ clusterName=c1, serviceName=YARN, componentName=RESOURCEMANAGER, hostname=c6402.ambari.apache.org, desiredState=null, state=null, desiredStackId=null, staleConfig=null, adminState=null}" } } ] } {code} Delete selected host components on a set of host {code} delete http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/host_components -d '{"RequestInfo":{"query":"HostRoles/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)&HostRoles/component_name.in(NODEMANAGER)"}}' { "deleteResult" : [ { "deleted" : { "key" : "c6401.ambari.apache.org/NODEMANAGER" } }, { "error" : { "key" : "c6402.ambari.apache.org/NODEMANAGER", "code" : 500, "message" : "org.apache.ambari.server.AmbariException: Host Component cannot be removed, clusterName=c1, serviceName=YARN, componentName=NODEMANAGER, hostname=c6402.ambari.apache.org, request={ clusterName=c1, serviceName=YARN, componentName=NODEMANAGER, hostname=c6402.ambari.apache.org, desiredState=null, state=null, desiredStackId=null, staleConfig=null, adminState=null}" } } ] } {code} > Add api for bulk delete host component > -------------------------------------- > > Key: AMBARI-18011 > URL: https://issues.apache.org/jira/browse/AMBARI-18011 > Project: Ambari > Issue Type: Task > Components: ambari-server > Affects Versions: 2.5.0 > Reporter: Ajit Kumar > Assignee: Ajit Kumar > Fix For: 2.5.0 > > Attachments: rb50450.patch > > > This api takes in query and instead of failing fast on the first error, puts > the best effort to delete all requested hosts. Response should be json object > which has deleted keys and keys which failed to delete with exception. > Sample API calls: > Delete all host components on a set of hosts: > {code} > Request: > curl -i -uadmin:admin -H 'X-Requested-By: ambari' -X DELETE > http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/host_components -d > '{"RequestInfo":{"query":"HostRoles/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)"}}' > Response > { > "deleteResult" : [ > { > "deleted" : { > "key" : "c6401.ambari.apache.org/HIVE_METASTORE" > } > }, > { > "deleted" : { > "key" : "c6402.ambari.apache.org/MYSQL_SERVER" > } > }, > { > "error" : { > "key" : "c6402.ambari.apache.org/RESOURCEMANAGER", > "code" : 500, > "message" : "org.apache.ambari.server.AmbariException: Host Component > cannot be removed, clusterName=c1, serviceName=YARN, > componentName=RESOURCEMANAGER, hostname=c6402.ambari.apache.org, request={ > clusterName=c1, serviceName=YARN, componentName=RESOURCEMANAGER, > hostname=c6402.ambari.apache.org, desiredState=null, state=null, > desiredStackId=null, staleConfig=null, adminState=null}" > } > } > ] > } > {code} > Delete selected host components on a set of host > {code} > Request: > curl -i -uadmin:admin -H 'X-Requested-By: ambari' -X DELETE > http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/host_components -d > '{"RequestInfo":{"query":"HostRoles/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)&HostRoles/component_name.in(NODEMANAGER)"}}' > Response: > { > "deleteResult" : [ > { > "deleted" : { > "key" : "c6401.ambari.apache.org/NODEMANAGER" > } > }, > { > "error" : { > "key" : "c6402.ambari.apache.org/NODEMANAGER", > "code" : 500, > "message" : "org.apache.ambari.server.AmbariException: Host Component > cannot be removed, clusterName=c1, serviceName=YARN, > componentName=NODEMANAGER, hostname=c6402.ambari.apache.org, request={ > clusterName=c1, serviceName=YARN, componentName=NODEMANAGER, > hostname=c6402.ambari.apache.org, desiredState=null, state=null, > desiredStackId=null, staleConfig=null, adminState=null}" > } > } > ] > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)