almost there
Get works
curl -u admin:admin -H "X-Requested-By: ambari" -i -X GET "
http://ambari:8080/api/v1/clusters/HADOOP_LAB/components?ServiceComponentInfo/categry.in(MASTER,SLAVE)&host_components/HostRoles/host_name=host1&host_components/HostRoles/state=INSTALLED
"


On Thu, Apr 9, 2015 at 7:56 AM Krzysztof Adamski <[email protected]>
wrote:

> That's it. A clever solution indeed.
>
> How about starting the services then? How to quickly exclude client
> components?
>  "message" : "java.lang.IllegalArgumentException: Invalid desired state
> for a client component"
>
> There is a filter like this
> ServiceComponentInfo/category.in(SLAVE,MASTER)
>
>
> On Thu, Apr 9, 2015 at 7:41 AM Sumit Mohanty <[email protected]>
> wrote:
>
>>  You can try something like this ....
>>
>>
>>  curl -u admin:admin -H "X-Requested-By: ambari" -i -X PUT -d
>> '{"RequestInfo":{"context":"Stop All Host Components"},"Body":{"
>> HostRoles":{"state":"INSTALLED"}}}' "http://u1201.ambari.apache.
>> org:8080/api/v1/clusters/c1/host_components?HostRoles/
>> host_name=u1201.ambari.apache.org&HostRoles/state=STARTED"
>>
>>
>>  Predicates such as "HostRoles/host_name=u1201.ambari.apache.org&
>> HostRoles/state=STARTED​" will help narrow down the choices.
>>
>>
>>  ------------------------------
>> *From:* Krzysztof Adamski <[email protected]>
>> *Sent:* Wednesday, April 08, 2015 10:11 PM
>> *To:* [email protected]
>>
>> *Subject:* Re: Start/stop all services programmatically
>>  Hi Yusaku,
>>
>>  Many thanks for pointing me to the dependancies file. It would help a
>> lot.
>>
>>  The problem with the *stop all* command you sent is that this for all
>> services within the cluster and I want to do this explicitly on a host
>> basis to perform a rolling OS patching.
>> Another issue is that specifying *state:INSTALL *would result in
>> installing client components on the hosts where I do not want to have them
>> e.g. data nodes.
>> Unless I did something wrong.
>>
>>  Regards,
>> Krzysztof
>>
>>
>> On Thu, Apr 9, 2015 at 2:34 AM Yusaku Sako <[email protected]>
>> wrote:
>>
>>>  Sorry, forgot to answer your second question regarding dependencies.
>>> Such dependencies are specified in a file called role_command_order.json
>>> as part of the stack defintion.
>>>
>>>  https://github.com/apache/ambari/blob/trunk/ambari-server/
>>> src/main/resources/stacks/HDP/2.0.6/role_command_order.json
>>>
>>>  If you try to start/stop all services in bulk, the command order rules
>>> will be followed automatically by the server.
>>>
>>>  Yusaku
>>>
>>>   From: Yusaku Sako <[email protected]>
>>> Reply-To: "[email protected]" <[email protected]>
>>> Date: Wednesday, April 8, 2015 5:27 PM
>>> To: "[email protected]" <[email protected]>
>>> Subject: Re: Start/stop all services programmatically
>>>
>>>   Hi Krzysztof,
>>>
>>>  You can do everything that the UI does with the API.
>>> The best way to learn what API calls the UI is making is to use the
>>> browser's developer tool and watch the network traffic.
>>>
>>>  Stop all services:
>>> curl -i -uadmin:admin -H "X-Requested-By: ambari" -X PUT -d '
>>> {"RequestInfo":{"context":"Stop all services","operation_level":{"
>>> level":"CLUSTER","cluster_name":"ing_hdp"}},"Body":{"Service
>>> Info":{"state":"INSTALLED"}}}
>>> ' http://ambari:8080/api/v1/clusters/ing_hdp/services
>>>
>>>  Start all services:
>>> curl -i -uadmin:admin -H "X-Requested-By: ambari" -X PUT -d '
>>> {"RequestInfo":{"context":"Start all services","operation_level":{"
>>> level":"CLUSTER","cluster_name":"ing_hdp"}},"Body":{"Service
>>> Info":{"state":"STARTED"}}}
>>> ' http://ambari:8080/api/v1/clusters/ing_hdp/services
>>>
>>>  I hope this helps.
>>> Yusaku
>>>
>>>   From: Krzysztof Adamski <[email protected]>
>>> Reply-To: "[email protected]" <[email protected]>
>>> Date: Tuesday, April 7, 2015 12:15 AM
>>> To: "[email protected]" <[email protected]>
>>> Subject: Start/stop all services programmatically
>>>
>>>     Hello,
>>>
>>>  I am busy implementing a manual job to stop all hosts services via
>>> script before rebooting the OS. The examples I found in wiki are per
>>> service or component.
>>>
>>>  1. Is there any way to invoke the stop/start for all hosts components
>>> just like from a web interface?
>>> 2. How ambari determines the proper order for the services to start/stop
>>> e.g. first stop hiveserver before stopping mysql etc.
>>>
>>>  curl -s --user admin:admin -H "X-Requested-By: ambari" -X GET "
>>> http://ambari:8080/api/v1/clusters/ing_hdp/components/?Serv
>>> iceComponentInfo/category.in(SLAVE,MASTER)&host_components/H
>>> ostRoles/host_name=host1&fields=host_components/HostRoles/co
>>> mponent_name,host_components/HostRoles/state" | jq -r
>>> '[[.items[].host_components[].HostRoles.component_name]]|tostring' |
>>> sed -r 's/[\["]//g' | sed -r 's/[]]//g'
>>>
>>>   function stop(){
>>>
>>> curl -u admin:admin -i -H 'X-Requested-By: ambari' -X PUT -d
>>> '{"RequestInfo": {"context" :"Stop ‘"$1"’ via REST"}, "Body": {"HostRoles":
>>> {"state": "INSTALLED"}}}' http://ambari:8080/api/v1/clus
>>> ters/ing_hdp/hosts/host1/host_components/$1
>>>
>>> }
>>>
>>> Thanks for any guide.
>>>
>>

Reply via email to