{"id":21476136,"url":"https://github.com/amirhnajafiz/cloud-provider","last_synced_at":"2025-03-17T08:16:05.559Z","repository":{"id":197205386,"uuid":"692851726","full_name":"amirhnajafiz/cloud-provider","owner":"amirhnajafiz","description":"Implementing a cloud computing provider system.","archived":false,"fork":false,"pushed_at":"2023-10-14T08:15:38.000Z","size":21,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T17:34:35.685Z","etag":null,"topics":["cloud","cloud-computing","cloud-platform","python","python3","qemu","rabbitmq"],"latest_commit_sha":null,"homepage":"","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/amirhnajafiz.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}},"created_at":"2023-09-17T19:19:16.000Z","updated_at":"2023-09-27T13:42:35.000Z","dependencies_parsed_at":"2023-10-02T00:05:31.859Z","dependency_job_id":"5acb4df3-41e4-4a19-912e-be35ad02476d","html_url":"https://github.com/amirhnajafiz/cloud-provider","commit_stats":{"total_commits":38,"total_committers":1,"mean_commits":38.0,"dds":0.0,"last_synced_commit":"4972dcf81323950fc2da933b4f26842122bce3e4"},"previous_names":["amirhnajafiz/cloud-provider"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirhnajafiz%2Fcloud-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirhnajafiz%2Fcloud-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirhnajafiz%2Fcloud-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirhnajafiz%2Fcloud-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amirhnajafiz","download_url":"https://codeload.github.com/amirhnajafiz/cloud-provider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243997126,"owners_count":20380981,"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":["cloud","cloud-computing","cloud-platform","python","python3","qemu","rabbitmq"],"created_at":"2024-11-23T10:47:23.299Z","updated_at":"2025-03-17T08:16:05.526Z","avatar_url":"https://github.com/amirhnajafiz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloud Provider\n\n![GitHub top language](https://img.shields.io/github/languages/top/amirhnajafiz/cloud-provider)\n![GitHub release (with filter)](https://img.shields.io/github/v/release/amirhnajafiz/cloud-provider)\n\nImplementing a bare metal cloud computing provider system with ```python```, ```rabbitmq```, and ```qemu```.\nMy goal is to create an on-demand computing platform like EC2 (aka Amazon Elastic Compute Cloud).\nThis provider is capable of:\n\n- Spin up ```VM```s on-demand\n- Take down ```VM```s on-demand\n- Allow to use or not use a public IP on a ```VM```\n- Be scalable in the background, i.e. possibly ```VM```s are on different servers\n\n## Schema\n\nIn the following textbox we are displaying our cloud provider schema. As the image states,\nfirst the user sends a request into rabbitMQ cluster to perform an operation. On the other side,\nthe consumer is bound to listen for user requests. After receiving each request, consumer\nchecks the input request and calls fallback functions.\n\n```\n| make publish | -\u003e | consume by consumer | -\u003e | callback function based on request |\n```\n\n## Setup\n\nCreate an ```env``` variable for your rabbitMQ address:\n\n```shell\nexport RABBIT_HOST=localhost\n```\n\nNow start the consumer by ```python consumer/main.py```. You can work with\nprovider as ```CLI``` for sending your requests.\n\n### commands\n\nIn the following list you can see ```CLI``` commands:\n\n- ```python provider/main.py start-vm --image [image name]```\n- ```python provider/main.py list-vm```\n- ```python provider/main.py stop-vm --vm-id [id returned in list-vm]```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirhnajafiz%2Fcloud-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirhnajafiz%2Fcloud-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirhnajafiz%2Fcloud-provider/lists"}