{"id":21452905,"url":"https://github.com/erj826/weaas","last_synced_at":"2026-07-07T06:31:38.383Z","repository":{"id":67054657,"uuid":"139145445","full_name":"erj826/WEaaS","owner":"erj826","description":"Watch Endpoints as a Service","archived":false,"fork":false,"pushed_at":"2018-11-16T19:25:44.000Z","size":436,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T12:32:30.407Z","etag":null,"topics":["hat","kuryr","on","openshift","openstack","red","redhat"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erj826.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-29T12:14:13.000Z","updated_at":"2018-11-16T19:25:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"866ac673-a7c0-4aa2-a03c-2ad2a786d52e","html_url":"https://github.com/erj826/WEaaS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erj826%2FWEaaS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erj826%2FWEaaS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erj826%2FWEaaS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erj826%2FWEaaS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erj826","download_url":"https://codeload.github.com/erj826/WEaaS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243965354,"owners_count":20375912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hat","kuryr","on","openshift","openstack","red","redhat"],"created_at":"2024-11-23T04:32:58.143Z","updated_at":"2025-10-25T15:45:29.685Z","avatar_url":"https://github.com/erj826.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WEaaS \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003cimg src=\"https://u.imageresize.org/v2/44defaa8-3bc5-475f-b210-9239ae35b4fc.png\" width=\"150\" /\u003e\n\nWatch Endpoints as a Service project for Red Hat. WEaaS is for use with Kuryr and OpenStack.\n\nWEaaS (a.k.a stop polling all the things) is offered as a more efficient alternative to monitor endpoints by tapping directly into Neutron's messaging queue. Currently, the Kuryr Controller polls the Neutron using the OpenStack API to watch for networking events. \nBy communicating directly with RabbitMQ, OpenStack's messaging service, WEaaS is able to return endpoint information faster than polling.\n\nIntended client: Kuryr Controller\n\n## Supported Endpoints\n* Neutron:\n  * port\n\nMore info [here](https://docs.openstack.org/python-openstackclient/pike/cli/command-objects/port.html).\n\n* LBaaS v2:\n  * loadbalancer\n  * listener\n  * pool\n  * member\n\nMore info [here](https://docs.openstack.org/mitaka/networking-guide/config-lbaas.html).\n\n\n## Usage\n\n### Setting up Authentication:\n[Request a token using the Keystone api.](https://docs.openstack.org/keystone/pike/api_curl_examples.html)\n\n### Admin: \n#### To start up the gunicorn app server, run:\n`gunicorn -b 127.0.0.1:5000 --threads 8 watchEndpoints:app`\n\nMore info on gunicorn args [here](http://docs.gunicorn.org/en/stable/settings.html).\n\n### Client:\nUSing the API with Keystone authentication (for example):\n\n`curl http://127.0.0.1:5000/$some_endpoint -H \"X-Auth-Token: $A_VALID_TOKEN\"`\n\n_Notes:_\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; _Client connections and server may be terminated by a keyboard interrupt_\n\n***\n\n## WEaaS Developer Guide\n\n### Project Architecture:\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/erj826/WEaaS/blob/master/resources/WEaaSArchitecture.png\" width=\"650\"/\u003e\u003c/p\u003e\n\n***\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferj826%2Fweaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferj826%2Fweaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferj826%2Fweaas/lists"}