def _deploy_primary_storage(zone): if xmlobject.has_element(zone, 'primaryStorages.nfsPrimaryStorage'): zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, \ name=zone.name_) zinv = get_first_item_from_list(zinvs, 'Zone', zone.name_, 'primary storage') for pr in xmlobject.safe_list( zone.primaryStorages.nfsPrimaryStorage): if ps_name and ps_name != pr.name_: continue action = api_actions.AddNfsPrimaryStorageAction() action.sessionUuid = session_uuid action.name = pr.name_ action.description = pr.description__ action.type = inventory.NFS_PRIMARY_STORAGE_TYPE action.url = pr.url_ action.zoneUuid = zinv.uuid if pr.uuid_: action.resourceUuid = pr.uuid_ thread = threading.Thread(target=_thread_for_action, args=(action, )) wait_for_thread_queue() thread.start() if xmlobject.has_element(zone, 'primaryStorages.simulatorPrimaryStorage'): if zone.duplication__ == None: duplication = 1 else: duplication = int(zone.duplication__) for pr in xmlobject.safe_list( zone.primaryStorages.simulatorPrimaryStorage): for zone_ref in range(duplication): for cluster in xmlobject.safe_list(zone.clusters.cluster): for pref in xmlobject.safe_list( cluster.primaryStorageRef): if pref.text_ == pr.name_: if cluster.duplication__ == None: cluster_duplication = 1 else: cluster_duplication = int( cluster.duplication__) for cluster_ref in range(cluster_duplication): action = _generate_sim_ps_action( zone, pr, zone_ref, cluster_ref) thread = threading.Thread( target=_thread_for_action, args=(action, )) wait_for_thread_queue() thread.start()
def create_nfs_primary_storage(primary_storage_option, session_uuid=None): action = api_actions.AddNfsPrimaryStorageAction() action.timeout = 30000 action.name = primary_storage_option.get_name() action.description = primary_storage_option.get_description() action.type = primary_storage_option.get_type() action.url = primary_storage_option.get_url() action.zoneUuid = primary_storage_option.get_zone_uuid() evt = account_operations.execute_action_with_session(action, session_uuid) test_util.action_logger('Create Primary Storage [uuid:] %s [name:] %s' % \ (evt.inventory.uuid, action.name)) return evt.inventory
def _deploy_primary_storage(zone): if xmlobject.has_element(zone, 'primaryStorages.IscsiFileSystemBackendPrimaryStorage'): zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, \ name=zone.name_) zinv = get_first_item_from_list(zinvs, 'Zone', zone.name_, 'primary storage') for pr in xmlobject.safe_list(zone.primaryStorages.IscsiFileSystemBackendPrimaryStorage): if ps_name and ps_name != pr.name_: continue action = api_actions.AddIscsiFileSystemBackendPrimaryStorageAction() action.sessionUuid = session_uuid action.name = pr.name_ action.description = pr.description__ action.type = inventory.ISCSI_FILE_SYSTEM_BACKEND_PRIMARY_STORAGE_TYPE action.url = pr.url_ action.zoneUuid = zinv.uuid action.chapPassword = pr.chapPassword_ action.chapUsername = pr.chapUsername_ action.sshPassword = pr.sshPassword_ action.sshUsername = pr.sshUsername_ action.hostname = pr.hostname_ action.filesystemType = pr.filesystemType_ thread = threading.Thread(target=_thread_for_action, args=(action,)) wait_for_thread_queue() thread.start() if xmlobject.has_element(zone, 'primaryStorages.localPrimaryStorage'): zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, \ name=zone.name_) zinv = get_first_item_from_list(zinvs, 'Zone', zone.name_, 'primary storage') for pr in xmlobject.safe_list(zone.primaryStorages.localPrimaryStorage): if ps_name and ps_name != pr.name_: continue action = api_actions.AddLocalPrimaryStorageAction() action.sessionUuid = session_uuid action.name = pr.name_ action.description = pr.description__ action.type = inventory.LOCAL_STORAGE_TYPE action.url = pr.url_ action.zoneUuid = zinv.uuid thread = threading.Thread(target=_thread_for_action, args=(action,)) wait_for_thread_queue() thread.start() if xmlobject.has_element(zone, 'primaryStorages.cephPrimaryStorage'): zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, \ name=zone.name_) zinv = get_first_item_from_list(zinvs, 'Zone', zone.name_, 'primary storage') for pr in xmlobject.safe_list(zone.primaryStorages.cephPrimaryStorage): if ps_name and ps_name != pr.name_: continue action = api_actions.AddCephPrimaryStorageAction() action.sessionUuid = session_uuid action.name = pr.name_ action.description = pr.description__ action.type = inventory.CEPH_PRIMARY_STORAGE_TYPE action.monUrls = pr.monUrls_.split(';') if pr.dataVolumePoolName__: action.dataVolumePoolName = pr.dataVolumePoolName__ if pr.rootVolumePoolName__: action.rootVolumePoolName = pr.rootVolumePoolName__ if pr.imageCachePoolName__: action.imageCachePoolName = pr.imageCachePoolName__ action.zoneUuid = zinv.uuid thread = threading.Thread(target=_thread_for_action, args=(action,)) wait_for_thread_queue() thread.start() if xmlobject.has_element(zone, 'primaryStorages.nfsPrimaryStorage'): zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, \ name=zone.name_) zinv = get_first_item_from_list(zinvs, 'Zone', zone.name_, 'primary storage') for pr in xmlobject.safe_list(zone.primaryStorages.nfsPrimaryStorage): if ps_name and ps_name != pr.name_: continue action = api_actions.AddNfsPrimaryStorageAction() action.sessionUuid = session_uuid action.name = pr.name_ action.description = pr.description__ action.type = inventory.NFS_PRIMARY_STORAGE_TYPE action.url = pr.url_ action.zoneUuid = zinv.uuid thread = threading.Thread(target=_thread_for_action, args=(action,)) wait_for_thread_queue() thread.start() if xmlobject.has_element(zone, 'primaryStorages.simulatorPrimaryStorage'): if zone.duplication__ == None: duplication = 1 else: duplication = int(zone.duplication__) for pr in xmlobject.safe_list(zone.primaryStorages.simulatorPrimaryStorage): for zone_ref in range(duplication): for cluster in xmlobject.safe_list(zone.clusters.cluster): for pref in xmlobject.safe_list(cluster.primaryStorageRef): if pref.text_ == pr.name_: if cluster.duplication__ == None: cluster_duplication = 1 else: cluster_duplication = int(cluster.duplication__) for cluster_ref in range(cluster_duplication): action = _generate_sim_ps_action(zone, pr, zone_ref, cluster_ref) thread = threading.Thread(target=_thread_for_action, args=(action,)) wait_for_thread_queue() thread.start() if xmlobject.has_element(zone, 'primaryStorages.sharedMountPointPrimaryStorage'): zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, \ name=zone.name_) zinv = get_first_item_from_list(zinvs, 'Zone', zone.name_, 'primary storage') for pr in xmlobject.safe_list(zone.primaryStorages.sharedMountPointPrimaryStorage): if ps_name and ps_name != pr.name_: continue action = api_actions.AddSharedMountPointPrimaryStorageAction() action.sessionUuid = session_uuid action.name = pr.name_ action.description = pr.description__ action.url = pr.url_ action.zoneUuid = zinv.uuid thread = threading.Thread(target=_thread_for_action, args=(action,)) wait_for_thread_queue() thread.start()