{"id":41363448,"url":"https://github.com/platform9/pf9-mors","last_synced_at":"2026-01-23T08:10:19.881Z","repository":{"id":41055460,"uuid":"54509589","full_name":"platform9/pf9-mors","owner":"platform9","description":"Mors is the Roman God of death. Mors helps us implement leases.","archived":false,"fork":false,"pushed_at":"2026-01-05T12:01:57.000Z","size":147,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":35,"default_branch":"main","last_synced_at":"2026-01-06T21:41:41.322Z","etag":null,"topics":["openstack-escrow","pf9-pcd"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/platform9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/Makefile","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-03-22T21:22:08.000Z","updated_at":"2025-11-24T17:23:09.000Z","dependencies_parsed_at":"2024-04-24T08:50:58.786Z","dependency_job_id":"3d1f0c88-d529-40e5-b76a-1b75ba54ff97","html_url":"https://github.com/platform9/pf9-mors","commit_stats":null,"previous_names":[],"tags_count":259,"template":false,"template_full_name":null,"purl":"pkg:github/platform9/pf9-mors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fpf9-mors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fpf9-mors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fpf9-mors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fpf9-mors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/platform9","download_url":"https://codeload.github.com/platform9/pf9-mors/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fpf9-mors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28684014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["openstack-escrow","pf9-pcd"],"created_at":"2026-01-23T08:10:19.105Z","updated_at":"2026-01-23T08:10:19.870Z","avatar_url":"https://github.com/platform9.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mors - OpenStack Lease Manager\n\n![Mors](https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRIzc5fgaiZfJnbym_ZEx4CsZJ7qIiYjcrxth5hi80Q0IhfnxOg)\nhttps://en.wikipedia.org/wiki/Mors_(mythology) \nis a simple lease manager for OpenStack objects like Instances.\n\nMors is a useful tool for OpenStack based cloud used for dev, test or lab setups.\nTypical usage in these scenarios include automatically or manual creation of Instances for demo, test or experiments.\nIn most cases these Instances are forgotten and never deleted eating up valuable resources.\n\nMors is a simple service that helps enforce a policy per Tenant or Instance and automatically delete Instances after\na specified duration.\n\n\n## Details\n\nMors works by specification of lease policy in a hierarchical fashion, first at a Tenant level and further at\nindividual Instance level.\n\n### Tenant Lease Policy\n\nMors lease policy can be enabled or disabled at Tenant level. If Mors policy is disabled (default for each tenant)\nno lease policies apply to the instances within that tenant.\n\nAt Tenant level, policy is specified in terms of _duration_ . Once Mors policy is enabled, any Instance will be deleted\nafter `instance.created_time + tenant.lease duration = instance_expiration`\n\n#### Roles\nTenant leases can be viewed by user with 'member' role and modified by users with 'admin' role\n\n### Instance Lease Policy\n\nBy default Instance leases are governed by the policies at Instance's Tenant level. As mentioned earlier:\n `instance.created_time + tenant.lease duration = instance_expiration`\n\nA member of tenant can change the Instance expiry at any time, but it can never be later than now + tenant.lease duration\n\n `max instance lease \u003c= now + tenant.lease duration`\n \nA user can always come back at a later point of time and renew the release again.\n\n#### Roles\nInstance leases can be modified by both 'member' and 'admin' roles.\n\n## Build \u0026 Installation\nSupport subdirectory contains Makefile to build a RPM, apart from python 2.7, virtualenv it needs [fpm](https://github.com/jordansissel/fpm), _fpm_\nis a simple package build utility that can build both RPM and deb packages. RPM itself is a thin wrapper on top of the virtualenv.\n\nConfiguration files are expected to be in /etc/pf9 directory. These are usual OpenStack style config files:\n* pf9-mors.ini: configure the nova section with the user/password that can be used by mors to perform delete operations on nova instances.\n  The user needs to be an administrator.\n* pf9-mors-api-paste.ini: configure the keystone middleware with keystone auth tokens.\n\nThe packages comes with an init script that works on RHEL 7 compatible systems\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatform9%2Fpf9-mors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplatform9%2Fpf9-mors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatform9%2Fpf9-mors/lists"}