def __init__(self, config_type, vpool_guid, storagedriver_id): """ Initializes the class """ def make_configure(sct): """ section closure :param sct: Section to create configure function for """ return lambda **kwargs: self._add(sct, **kwargs) if config_type != 'storagedriver': raise RuntimeError('Invalid configuration type. Allowed: storagedriver') storagerouterclient.Logger.setupLogging(LogHandler.load_path('storagerouterclient')) # noinspection PyArgumentList storagerouterclient.Logger.enableLogging() self._logger = LogHandler.get('extensions', name='storagedriver') self.config_type = config_type self.configuration = {} self.path = '/ovs/vpools/{0}/hosts/{1}/config/{{0}}'.format(vpool_guid, storagedriver_id) self.remote_path = 'etcd://127.0.0.1:2379{0}'.format(self.path.format('')).strip('/') self.is_new = True self.dirty_entries = [] self.params = copy.deepcopy(StorageDriverConfiguration.parameters) # Never use parameters directly # Fix some manual "I know what I'm doing" overrides backend_connection_manager = 'backend_connection_manager' self.params[self.config_type][backend_connection_manager]['optional'].append('s3_connection_strict_consistency') # Generate configure_* methods for section in self.params[self.config_type]: setattr(self, 'configure_{0}'.format(section), make_configure(section))
from ovs.dal.lists.vdisklist import VDiskList from ovs.dal.lists.storagedriverlist import StorageDriverList from ovs.dal.lists.vpoollist import VPoolList from ovs.dal.lists.pmachinelist import PMachineList from ovs.dal.lists.mgmtcenterlist import MgmtCenterList from ovs.dal.hybrids.vpool import VPool from ovs.extensions.hypervisor.factory import Factory from ovs.extensions.storageserver.storagedriver import StorageDriverClient from ovs.log.logHandler import LogHandler from ovs.lib.mdsservice import MDSServiceController from ovs.extensions.generic.volatilemutex import VolatileMutex from volumedriver.storagerouter import storagerouterclient from volumedriver.storagerouter.storagerouterclient import MDSMetaDataBackendConfig, MDSNodeConfig logger = LogHandler.get('lib', name='vdisk') storagerouterclient.Logger.setupLogging(LogHandler.load_path('storagerouterclient')) storagerouterclient.Logger.enableLogging() class VDiskController(object): """ Contains all BLL regarding VDisks """ @staticmethod @celery.task(name='ovs.vdisk.list_volumes') def list_volumes(vpool_guid=None): """ List all known volumes on a specific vpool or on all """ if vpool_guid is not None:
from ovs.dal.lists.vpoollist import VPoolList from ovs.extensions.db.etcd.configuration import EtcdConfiguration from ovs.extensions.generic.sshclient import SSHClient from ovs.extensions.generic.sshclient import UnableToConnectException from ovs.extensions.generic.system import System from ovs.extensions.storageserver.storagedriver import MetadataServerClient from ovs.extensions.storageserver.storagedriver import StorageDriverConfiguration from ovs.lib.helpers.decorators import ensure_single from ovs.log.logHandler import LogHandler from volumedriver.storagerouter import storagerouterclient from volumedriver.storagerouter.storagerouterclient import MDSMetaDataBackendConfig from volumedriver.storagerouter.storagerouterclient import MDSNodeConfig logger = LogHandler.get('lib', name='mds') storagerouterclient.Logger.setupLogging( LogHandler.load_path('storagerouterclient')) storagerouterclient.Logger.enableLogging() class MDSServiceController(object): """ Contains all BLL related to MDSServices """ @staticmethod def prepare_mds_service(storagerouter, vpool, fresh_only, reload_config): """ Prepares an MDS service: * Creates the required configuration * Sets up the service files Assumes the StorageRouter and VPool are already configured with a StorageDriver and that all model-wise