{"id":20038569,"url":"https://github.com/yahoo/httpmi","last_synced_at":"2025-05-05T06:32:19.873Z","repository":{"id":66000701,"uuid":"148215646","full_name":"yahoo/httpmi","owner":"yahoo","description":"An HTTP proxy for IPMI commands.","archived":false,"fork":false,"pushed_at":"2023-04-21T14:29:21.000Z","size":27,"stargazers_count":17,"open_issues_count":0,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-08T18:51:41.425Z","etag":null,"topics":[],"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/yahoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"Code-of-Conduct.md","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-09-10T20:34:01.000Z","updated_at":"2023-04-21T14:29:25.000Z","dependencies_parsed_at":"2023-06-06T10:00:08.031Z","dependency_job_id":null,"html_url":"https://github.com/yahoo/httpmi","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/yahoo%2Fhttpmi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoo%2Fhttpmi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoo%2Fhttpmi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoo%2Fhttpmi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yahoo","download_url":"https://codeload.github.com/yahoo/httpmi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252451846,"owners_count":21749999,"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":"2024-11-13T10:30:03.164Z","updated_at":"2025-05-05T06:32:19.861Z","avatar_url":"https://github.com/yahoo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# httpmi\n\u003e An HTTP proxy for IPMI commands.\n\n[![Build Status](https://travis-ci.org/yahoo/httpmi.svg?branch=master)](https://travis-ci.org/yahoo/httpmi)\n\nIPMI is an unencrypted protocol that works over UDP. httpmi provides an\nHTTP proxy to arbitrary IPMI hosts, as securing HTTP is well-understood. This\nprovides infrastructure operators the ability to perform IPMI control between\nlocations more securely.\n\n## Table of Contents\n\n- [Background](#background)\n- [Install](#install)\n- [Usage](#usage)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Background\n\nOath runs a number of edge sites which we wish to control from a central\nlocation.  Instead of keeping credentials in the edge site and controlling\nservers from there, we use httpmi to proxy credentials and commands into the\nsite.\n\n## Install\n\nInstall httpmi via pip. As it isn't currently on PyPI, just clone the\nrepository and run `pip install .` from the root.\n\nWe recommend running the app with uWSGI, which looks something like::\n\n    $ uwsgi --http 127.0.0.1:5000 --wsgi httpmi.api --callable app --master\n\nFor whatever reason, this doesn't currently work from inside the repository,\nso `cd` somewhere else first.\n\n## Usage\n\nEvery API call uses form data for command parameters and credentials. Every\nAPI call must pass the BMC IP address and credentials in the keys\n`bmc`, `user`, and `password`. Some API calls have additional parameters.\n\n* `GET /power` - returns the current power state of the machine. No additional\n  parameters required. Example response:\n\n      {\"state\": \"on\"}\n\n  Response value may be \"on\" or \"off\".\n\n* `POST /power` - set the power state for the machine. Returns immediately with\n  the pending power state of the machine if it is changing, or the current\n  state if the machine is already in the requested state. Takes one parameter,\n  \"state\", which may be \"on\" or \"off\". Example response:\n\n      {\"state\": \"on\"}\n\n  Response value may be \"on\" or \"off\".\n\nSome examples in curl::\n\n    $ curl -X POST \\\n           --form user=admin --form password=password \\\n           --form bmc=10.88.209.247 --form port=6230\n           --form state=off \\\n           http://localhost:5000/power\n\n    {\"state\":\"off\"}\n\n    $ curl -X GET \\\n           --form user=admin --form password=password \\\n           --form bmc=10.88.209.247 --form port=6230 \\\n           http://localhost:5000/power\n\n    {\"state\":\"off\"}\n\n    $ curl -X POST \\\n           --form user=admin --form password=password \\\n           --form bmc=10.88.209.247 --form port=6230 \\\n           --form device=hd \\\n           http://localhost:5000/boot-device\n\n    {\"device\":\"hd\"}\n\n    $ curl -X GET \\\n           --form user=admin --form password=password \\\n           --form bmc=10.88.209.247 --form port=6230 \\\n           http://localhost:5000/boot-device\n\n    {\"device\":\"hd\"}\n\n## Contribute\n\nPlease refer to [the contributing.md file](Contributing.md) for information\nabout how to get involved. We welcome issues, questions, and pull requests.\nPull Requests are welcome.\n\n## License\n\nThis project is licensed under the terms of the Apache 2.0 open source license.\nPlease refer to [LICENSE](LICENSE) for the full terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyahoo%2Fhttpmi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyahoo%2Fhttpmi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyahoo%2Fhttpmi/lists"}