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.
58 files changed
tree: 2316fc16ba1ab9018431547ea55da07bb20ce0fa
  1. config/
  2. contrib/
  3. docker/
  4. heron/
  5. integration_test/
  6. release/
  7. scripts/
  8. third_party/
  9. tools/
  10. vagrant/
  11. website/
  12. .gitignore
  13. .gitmodules
  14. .travis.yml
  15. ADOPTERS.md
  16. bazel_configure.py
  17. LICENSE
  18. NOTICE
  19. README.md
  20. WORKSPACE
README.md

Build Status

Heron

Heron is realtime analytics platform developed by Twitter. It is the direct successor of Apache Storm, built to be backwards compatible with Storm's topology API but with a wide array of architectural improvements.

For more information:

Update

We recently merged updates to run Heron natively using Mesos in AWS, Mesos/Aurora in AWS, and locally on a laptop.

We also added beta testing for Apache YARN support using Apache REEF, in addition to the Simple Linux Utility for Resource Management (SLURM).

We are working to add support for Mesosphere DC/OS and Kubernetes. We will continue to post updates as we progress.

Documentation

The official documentation for Heron is located at heronstreaming.io. To contribute to documentation, build and run the documentation locally. More information can be found in the documentation README.