def manage_path(conn, path): """ If path is not managed, try to create a storage pool to probe the path """ vol, pool, path_is_pool = check_if_path_managed(conn, path) if vol or pool or not _can_auto_manage(path): return vol, pool, path_is_pool dirname = os.path.dirname(path) poolname = StoragePool.find_free_name( conn, os.path.basename(dirname) or "pool") logging.debug("Attempting to build pool=%s target=%s", poolname, dirname) poolxml = StoragePool(conn) poolxml.name = poolxml.find_free_name( conn, os.path.basename(dirname) or "dirpool") poolxml.type = poolxml.TYPE_DIR poolxml.target_path = dirname pool = poolxml.install(build=False, create=True, autostart=True) conn.clear_cache(pools=True) vol = None for checkvol in pool.listVolumes(): if checkvol == os.path.basename(path): vol = pool.storageVolLookupByName(checkvol) break return vol, pool, False
def createPool(conn, ptype, poolname=None, fmt=None, target_path=None, source_path=None, source_name=None, iqn=None): if poolname is None: poolname = StoragePool.find_free_name(conn, "%s-pool" % ptype) pool_inst = StoragePool(conn) pool_inst.name = poolname pool_inst.type = ptype if pool_inst.supports_property("hosts"): hostobj = pool_inst.hosts.add_new() hostobj.name = "some.random.hostname" if pool_inst.supports_property("source_path"): pool_inst.source_path = source_path or "/some/source/path" if pool_inst.supports_property("target_path"): pool_inst.target_path = target_path or "/some/target/path" if fmt and pool_inst.supports_property("format"): pool_inst.format = fmt if source_name and pool_inst.supports_property("source_name"): pool_inst.source_name = source_name if iqn and pool_inst.supports_property("iqn"): pool_inst.iqn = iqn pool_inst.validate() return poolCompare(pool_inst)
def createPool(conn, ptype, poolname=None, fmt=None, target_path=None, source_path=None, source_name=None, iqn=None): if poolname is None: poolname = StoragePool.find_free_name(conn, "%s-pool" % ptype) pool_inst = StoragePool(conn) pool_inst.name = poolname pool_inst.type = ptype if pool_inst.supports_hosts(): hostobj = pool_inst.hosts.add_new() hostobj.name = "some.random.hostname" if pool_inst.supports_source_path(): pool_inst.source_path = source_path or "/some/source/path" if pool_inst.supports_target_path(): pool_inst.target_path = (target_path or pool_inst.default_target_path()) if fmt and pool_inst.supports_format(): pool_inst.format = fmt if pool_inst.supports_source_name(): pool_inst.source_name = (source_name or pool_inst.default_source_name()) if iqn and pool_inst.supports_iqn(): pool_inst.iqn = iqn return poolCompare(pool_inst)
def createPool(conn, ptype, poolname=None, fmt=None, target_path=None, source_path=None, source_name=None, iqn=None): if poolname is None: poolname = StoragePool.find_free_name(conn, "%s-pool" % ptype) pool_inst = StoragePool(conn) pool_inst.name = poolname pool_inst.type = ptype if pool_inst.supports_property("hosts"): hostobj = pool_inst.hosts.add_new() hostobj.name = "some.random.hostname" if pool_inst.supports_property("source_path"): pool_inst.source_path = source_path or "/some/source/path" if pool_inst.supports_property("target_path"): pool_inst.target_path = target_path or "/some/target/path" if fmt and pool_inst.supports_property("format"): pool_inst.format = fmt if source_name and pool_inst.supports_property("source_name"): pool_inst.source_name = source_name if iqn and pool_inst.supports_property("iqn"): pool_inst.iqn = iqn return poolCompare(pool_inst)
def createPool(conn, ptype, poolname=None, fmt=None, target_path=None, source_path=None, source_name=None, uuid=None, iqn=None): if poolname is None: poolname = StoragePool.find_free_name(conn, "%s-pool" % ptype) if uuid is None: uuid = generate_uuid_from_string(poolname) pool_inst = StoragePool(conn) pool_inst.name = poolname pool_inst.type = ptype pool_inst.uuid = uuid if pool_inst.supports_property("hosts"): pool_inst.add_host("some.random.hostname") if pool_inst.supports_property("source_path"): pool_inst.source_path = source_path or "/some/source/path" if pool_inst.supports_property("target_path"): pool_inst.target_path = target_path or "/some/target/path" if fmt and pool_inst.supports_property("format"): pool_inst.format = fmt if source_name and pool_inst.supports_property("source_name"): pool_inst.source_name = source_name if iqn and pool_inst.supports_property("iqn"): pool_inst.iqn = iqn pool_inst.validate() return poolCompare(pool_inst)
def _reset_state(self): defaultname = StoragePool.find_free_name(self.conn.get_backend(), "pool") self.widget("pool-name").set_text(defaultname) self.widget("pool-name").grab_focus() self.widget("pool-target-path").get_child().set_text("") self.widget("pool-source-path").get_child().set_text("") self.widget("pool-hostname").set_text("") self.widget("pool-iqn-chk").set_active(False) self.widget("pool-iqn-chk").toggled() self.widget("pool-iqn").set_text("") self.widget("pool-format").set_active(0) self.widget("pool-build").set_sensitive(True) self.widget("pool-build").set_active(False) uiutil.set_list_selection(self.widget("pool-type"), 0) self._show_options_by_pool()
def testMisc(self): # Misc coverage testing vol = StorageVolume(self.conn) self.assertTrue(vol.is_size_conflict()[0] is False) fullconn = utils.URIs.open_testdriver_cached() glusterpool = fullconn.storagePoolLookupByName("gluster-pool") diskpool = fullconn.storagePoolLookupByName("disk-pool") glustervol = StorageVolume(fullconn) glustervol.pool = glusterpool self.assertTrue(glustervol.supports_format() is True) diskvol = StorageVolume(fullconn) diskvol.pool = diskpool self.assertTrue(diskvol.supports_format() is False) glusterpool.destroy() StoragePool.ensure_pool_is_running(glusterpool) # Check pool collision detection self.assertEqual(StoragePool.find_free_name(fullconn, "gluster-pool"), "gluster-pool-1")
def testMisc(): conn = utils.URIs.open_testdefault_cached() # Misc coverage testing vol = StorageVolume(conn) assert vol.is_size_conflict()[0] is False fullconn = utils.URIs.open_testdriver_cached() glusterpool = fullconn.storagePoolLookupByName("gluster-pool") diskpool = fullconn.storagePoolLookupByName("disk-pool") glustervol = StorageVolume(fullconn) glustervol.pool = glusterpool assert glustervol.supports_format() is False diskvol = StorageVolume(fullconn) diskvol.pool = diskpool assert diskvol.supports_format() is False glusterpool.destroy() StoragePool.ensure_pool_is_running(glusterpool) # Check pool collision detection name = StoragePool.find_free_name(fullconn, "gluster-pool") assert name == "gluster-pool-1"