meow
cc0ca68498
* Fix issue that causes a new image store to be created at every start of ucloud-api. * VM Migration API call now takes hostname instead of host key. * StorageHandler Classes are introduced. They transparently handles things related to importing of image, make vm out of image, resize vm image, delete vm image etc. * Loggers added to __init__.py of every ucloud component's subpackage. * Non-Trivial Timeout Events are no longer logged. * Fix issue that prevents removal of stopped VMs (i.e VMs that are successfully migrated). * Improved unit handling added. e.g MB, Mb, mB, mb are all Mega Bytes. * VM migration is now possible on IPv6 host. * Destination VM (receiving side of migration of a vm) now correctly expects incoming data on free ephemeral port. * Traceback is no longer output to screen, instead it goes to log file. * All sanity checks are put into a single file. These checks are run by ucloud.py before running any of ucloud component.
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
from etcd3_wrapper import Etcd3Wrapper
|
|
|
|
from common.host import HostPool
|
|
from common.request import RequestPool
|
|
from common.vm import VmPool
|
|
from common.storage_handlers import FileSystemBasedImageStorageHandler, CEPHBasedImageStorageHandler
|
|
from decouple import Config, RepositoryEnv
|
|
|
|
|
|
env_vars = Config(RepositoryEnv('/etc/ucloud/ucloud.conf'))
|
|
|
|
etcd_wrapper_args = ()
|
|
etcd_wrapper_kwargs = {'host': env_vars.get('ETCD_URL')}
|
|
|
|
etcd_client = Etcd3Wrapper(*etcd_wrapper_args, **etcd_wrapper_kwargs)
|
|
|
|
host_pool = HostPool(etcd_client, env_vars.get('HOST_PREFIX'))
|
|
vm_pool = VmPool(etcd_client, env_vars.get('VM_PREFIX'))
|
|
request_pool = RequestPool(etcd_client, env_vars.get('REQUEST_PREFIX'))
|
|
|
|
running_vms = []
|
|
|
|
__storage_backend = env_vars.get("STORAGE_BACKEND")
|
|
if __storage_backend == "filesystem":
|
|
image_storage_handler = FileSystemBasedImageStorageHandler(vm_base=env_vars.get("VM_DIR"),
|
|
image_base=env_vars.get("IMAGE_DIR"))
|
|
elif __storage_backend == "ceph":
|
|
image_storage_handler = CEPHBasedImageStorageHandler(vm_base="ssd", image_base="ssd")
|
|
else:
|
|
raise Exception("Unknown Image Storage Handler")
|