Eric Yang created YARN-7217:
-------------------------------

             Summary: PUT method for update service for Service API doesn't 
function correctly
                 Key: YARN-7217
                 URL: https://issues.apache.org/jira/browse/YARN-7217
             Project: Hadoop YARN
          Issue Type: Task
          Components: api, applications
            Reporter: Eric Yang


The PUT method for updateService API provides multiple functions:

# Stopping a service.
# Start a service.
# Increase or decrease number of containers.

The overloading is buggy depending on how the configuration should be applied.

Scenario 1
A user retrieves Service object from getService call, and the Service object 
contains state: STARTED.  The user would like to increase number of containers 
for the deployed service.  The JSON has been updated to increase container 
count.  The PUT method does not actually increase container count.

Scenario 2
A user retrieves Service object from getService call, and the Service object 
contains state: STOPPED.  The user would like to make a environment 
configuration change.  The configuration does not get updated after PUT method.

This is possible to address by rearranging the logic of START/STOP after 
configuration update.  However, there are other potential combinations that can 
break PUT method.  For example, user like to make configuration changes, but 
not yet restart the service until a later time.

The alternative is to separate the PUT method into PUT method for configuration 
vs status.  This increase the number of action that can be performed.  New API 
could look like:

{code}
@PUT
/ws/v1/services/[service_name]/config

Request Data:
{
  "name":"[service_name]",
  "number_of_containers": 5
}
{code}

{code}
@PUT
/ws/v1/services/[service_name]/state

Request data:
{
  "name": "[service_name]",
  "state": "STOPPED|STARTED"
}
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-dev-h...@hadoop.apache.org

Reply via email to