Branch
What branch is this work being done in TBD
Introduction
Purpose
This describes a new feature that takes care of automated VM_Instance expiration handling which has JIRA ID CLOUDSTACK-9984
Feature Specifications
We need an option to dismantle instances used by accounts or users that are no longer working for the department and thus got orphaned objects which only root-admins can delete. Without this feature resources are wasted and customers might be charged for unused machines.
- give instances an expiration date on creation (calculated by the lifespan global setting)
- list all open items or unresolved issues the developer is unable to decide about without further discussion
- quality risks (test guidelines)
- functional
- non functional: performance, scalability, stability, overload scenarios, etc
- corner cases and boundary conditions
- negative usage scenarios
- specify supportability characteristics:
- what new logging (or at least the important one) is introduced
- how to debug and troubleshoot
- what are the audit events
- list JMX interfaces
- graceful failure and recovery scenarios
- possible fallback or work around route if feature does not work as expected, if those workarounds do exist ofcourse.
- if feature depends other run-time environment related requirements, provide sanity check list for support people to run
Architecture and Design description
- configuration characteristics (new global settings):
- expiration.manager.enabled
- expiration.manager.lifeSpan
- expiration.manager.NotificationInterval
- expiration.manager.NotificationFrequency
- expiration.manager.GracePeriod
- expiration.manager.mail template?
- expiration.manager.interval
- expiration.manager.starttime
- schema characteristics (user_vm):
- expires (DateTime)
- notification_count (int)