{"id":26483516,"url":"https://github.com/faucetsdn/faucetagent","last_synced_at":"2025-03-20T04:55:47.865Z","repository":{"id":34570060,"uuid":"180229477","full_name":"faucetsdn/faucetagent","owner":"faucetsdn","description":"gNMI agent for faucet configuration","archived":false,"fork":false,"pushed_at":"2025-03-17T13:06:12.000Z","size":97,"stargazers_count":6,"open_issues_count":13,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-17T14:25:39.540Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faucetsdn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-04-08T20:41:10.000Z","updated_at":"2025-01-04T20:45:16.000Z","dependencies_parsed_at":"2023-10-22T17:28:26.363Z","dependency_job_id":"6a56a994-60d6-4060-8598-bb498721f886","html_url":"https://github.com/faucetsdn/faucetagent","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/faucetsdn%2Ffaucetagent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faucetsdn%2Ffaucetagent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faucetsdn%2Ffaucetagent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faucetsdn%2Ffaucetagent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faucetsdn","download_url":"https://codeload.github.com/faucetsdn/faucetagent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244554064,"owners_count":20471173,"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":[],"created_at":"2025-03-20T04:55:47.345Z","updated_at":"2025-03-20T04:55:47.859Z","avatar_url":"https://github.com/faucetsdn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### FAUCET gNMI Configuration Agent\n\n[![Build/Test Status][1]][2]\n\nThis agent exposes a simple gNMI service to configure [FAUCET][3].\nRequires FAUCET version 1.9.3 or later.\n\nFor now, it simply allows you to get or replace the entire\nFAUCET configuration file (e.g. `faucet.yaml`) via gNMI path `/`.\n\n### Starting up the agent\n\n    ./faucetagent.py --cert agent.crt --key agent.key \\\n       --configfile /etc/faucet.yaml  \u003e\u0026 faucetagent.log \u0026\n\n### Talking to the agent using [gnxi][4]\n\n    # TLS authentication (client auth is ignored by agent atm)\n    AUTH=\"-ca ca.crt -cert client.crt -key client.key -target_name localhost\"\n\n    # Extract string_val from gnmi_get output\n    string_val() { grep string_val: | awk -F 'string_val: \"' '{printf $2;}'  |\n                   sed -e 's/\"$//' | xargs -0 printf; }\n\n    # Fetch information about configuration schema\n    gnmi_capabilities $AUTH\n\n    # Fetch current configuration\n    gnmi_get $AUTH -xpath=/ | string_val\n\n    # Send a configuration file to FAUCET\n    gnmi_set $AUTH -replace=/:\"$(\u003cfaucet.yaml)\"\n\n### Simple end-to-end test using [mininet][5]\n\n    ./dependencies.sh\n    ./test-dependencies.sh\n    make\n    sudo make test\n\n[1]: https://github.com/faucetsdn/faucetagent/workflows/faucetagent%20tests/badge.svg\n[2]: https://github.com/faucetsdn/faucetagent/actions\n[3]: https://github.com/faucetsdn/faucet\n[4]: https://github.com/google/gnxi\n[5]: https://github.com/mininet/mininet\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaucetsdn%2Ffaucetagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaucetsdn%2Ffaucetagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaucetsdn%2Ffaucetagent/lists"}