import configparser import os import logging from ucloud.common.host import HostPool from ucloud.common.request import RequestPool from ucloud.common.vm import VmPool from ucloud.common.storage_handlers import (FileSystemBasedImageStorageHandler, CEPHBasedImageStorageHandler) from ucloud.common.etcd_wrapper import Etcd3Wrapper from ucloud.settings import Settings from os.path import join as join_path logger = logging.getLogger('ucloud.config') config = Settings() etcd_client = config.get_etcd_client() host_pool = HostPool(etcd_client, config['etcd']['host_prefix']) vm_pool = VmPool(etcd_client, config['etcd']['vm_prefix']) request_pool = RequestPool(etcd_client, config['etcd']['request_prefix']) running_vms = [] __storage_backend = config['storage']['storage_backend'] if __storage_backend == 'filesystem': image_storage_handler = FileSystemBasedImageStorageHandler( vm_base=config['storage']['vm_dir'], image_base=config['storage']['image_dir'] ) elif __storage_backend == 'ceph': image_storage_handler = CEPHBasedImageStorageHandler( vm_base=config['storage']['ceph_vm_pool'], image_base=config['storage']['ceph_image_pool'] ) else: raise Exception('Unknown Image Storage Handler')