nginx-amplify-agent/amplify/agent/managers/system.py

36 lines
979 B
Python

# -*- coding: utf-8 -*-
from amplify.agent.common.util.system import get_root_definition
from amplify.agent.managers.abstract import ObjectManager
from amplify.agent.objects.system.object import SystemObject, ContainerSystemObject
__author__ = "Mike Belov"
__copyright__ = "Copyright (C) Nginx, Inc. All rights reserved."
__license__ = ""
__maintainer__ = "Mike Belov"
__email__ = "dedm@nginx.com"
SYSTEM_OBJECT_MAP = {
'system': SystemObject,
'container': ContainerSystemObject
}
class SystemManager(ObjectManager):
"""
Manager for system objects
Typically we have only one object since we run in a single system
"""
name = 'system_manager'
type = 'system'
types = ('system', 'container')
def _discover_objects(self):
if not self.objects.find_all(types=self.types):
data = get_root_definition()
sys_object = SYSTEM_OBJECT_MAP[data['type']](data=data)
self.objects.register(sys_object)