{"id":20188434,"url":"https://github.com/lishisangzi/charge","last_synced_at":"2025-07-22T22:34:22.671Z","repository":{"id":143939823,"uuid":"91279236","full_name":"LiShiSangZi/charge","owner":"LiShiSangZi","description":"Billing System for OpenStack","archived":false,"fork":false,"pushed_at":"2018-03-01T02:22:41.000Z","size":209,"stargazers_count":1,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T06:54:19.488Z","etag":null,"topics":["billing","openstack"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/LiShiSangZi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2017-05-15T00:07:10.000Z","updated_at":"2019-09-05T16:27:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"4a5e254e-ab1a-4fe1-ab8d-874b2ef25ebb","html_url":"https://github.com/LiShiSangZi/charge","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/LiShiSangZi/charge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiShiSangZi%2Fcharge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiShiSangZi%2Fcharge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiShiSangZi%2Fcharge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiShiSangZi%2Fcharge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiShiSangZi","download_url":"https://codeload.github.com/LiShiSangZi/charge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiShiSangZi%2Fcharge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266586336,"owners_count":23952171,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["billing","openstack"],"created_at":"2024-11-14T03:29:03.734Z","updated_at":"2025-07-22T22:34:22.644Z","avatar_url":"https://github.com/LiShiSangZi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Charge Service for the OpenStack\n\nThis is a charge service for the OpenStack. It can do the followings:\n* Generate the order if any required resources are created and close the order when the resource is deleted.\n* Calculate the price according to the order.\n* Charge the user.\n\n# Deployment\n\nThere are 3 parts to deployment. \n1. The WSGI middleware for the OpenStack. It should be installed in every API node in the OpenStack.\n2. The charge system implementation. It can be installed everywhere. But better under a Ngix or HA Proxy.\n3. Before you start, make sure you put your configuration under folder config. The config/config.default.js is the basic configuration for the app to start. You need to put the other configurations like db/memcached in your env configuration. Please follow this step:\n  1. Name your env by the command: \n```\nexport EGG_SERVER_ENV=\"local\"\n```\n  2. Create your configuration file according to the env. Here the name should be config/config.local.js\n\n## Enviroment\n\nPlease make sure those components are installed in your enviroment. Both in API node and the server you installed the source code.\n* Node: 7.6.5 and above.\n```\ncurl --silent --location https://rpm.nodesource.com/setup_7.x | bash -\nyum install -y nodejs\n```\n\n\n## Middleware\n\nThe middleware is a python code that will capture the OpenStack API's request and response.\nTo install the middleware. Please follow the step:\n1. Copy the middleware code to your API node.\n2. Install the middleware code:\n```\npip install .\n```\n3. Configure to add the middleware in the OpenStack module:\n```\nnode script/setup.js\n```\nNote: You must use the properly user to run this command.\n\n## Run schedule by manual.\n\nThe checker is used to check the resource and generate/delete order if does not match.\nTo use it please run as follows:\n```bash\nyarn run schedule checker\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flishisangzi%2Fcharge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flishisangzi%2Fcharge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flishisangzi%2Fcharge/lists"}