tree 2316fc16ba1ab9018431547ea55da07bb20ce0fa
parent 414969ce8342b3aadff1fae8674f507ef2bd881c
author cckellogg <cckellogg@gmail.com> 1502392380 -0700
committer GitHub <noreply@github.com> 1502392380 -0700

Add base framework for api server. (#2094)

* Add base framework for api server.

* Fix build issues.

* Remove extra newlines.

* add config files as resources into api server jar

* package heron api server into tools

* Implement submit/kill/activate/deactivate for the rest api server.

* Remove excess logging and print statements from SubmitterMain.

* Add help flag and remove println and hardcoded directory.

* Add apiserver tests for the ConfigUtils.

* Add user and verion params for submit topology.

* Add release file flag for apiserver.

The api server will read the, build version, build user
and build tag from the release file and use those values
for submitting topologies.

* Set the submit_user when submitting a topology.

* adding URL based handling in heron submit

* Fix activate/deactivate/kill api paths in cli.

* support multiple deployment modes

* Return status 200 for a successful kill topology.

* Catch exceptions as opposed to runtime exceptions in topology resources.

* Update topology actions to check for status code 200.

kill/activate/deactivate endpoints will return a
http status code of 200 when successful.

* fix printing debug information

* Add script to start the api server.

* package heron api server

* get the actual binary since heron-apiserver is a symbolic link

* Add base-template flag and method to find where the jar is installed.

* Print error message if there is a parsing exception.

* Add error message when server fails to start.

* Update bind exception message.

* Add port flag for api server.

* added the service-url parameter

* - Remove HERON_VERSION from docker files
- Add error message reporting for service mode deployment

* remove debug print out

* Fix how yaml files are written to files.

* Pass extra parameters to update and restart extra parameters
Added exception handling for requests call

* Apply submit overrides and add version endpoint.

* Add restart rest endpoint.

* append a list element instead of extending it

* Add printing of args in debug mode

* Add rest update endpoint.

* Add verbose flag to apiserver.

* Allow update to accept overrides.

* Add more scheduler implementations.

* sort the version items and print it

* Add dryrun response for submit and update endpoints.

* fix python command line errors

* Fix api server activate handler.

* fixed submission to local cluster

* fix spelling mistake of function invocation

* Remove api depenedency from apiserver build file.
