[PATCHv3 0/3] Add out of box ISO storage pool

From: Royce Lv <lvroyce@linux.vnet.ibm.com> v2>v3, Update documents. v1>v2, As libvirt has dynamic permission configuration, we do not need watch the iso added to storage pool any more, we just need to make sure storage pool can be accessed and libvirt will change its own/grp to the right one. so after found this feature, notification is deleted and create iso pool is retained. Royce Lv (3): Dedicated ISO pool: create an out of box ISO pool Store qemu user name in class attribute Add doc and test case for dedicate iso pool docs/README.md | 5 +++++ src/kimchi/kvmusertests.py | 23 +++++++++++++---------- src/kimchi/model/model.py | 26 +++++++++++++++----------- tests/test_model.py | 3 +++ ui/pages/help/en_US/storage.dita | 3 ++- ui/pages/help/en_US/templates.dita | 3 ++- ui/pages/help/pt_BR/storage.dita | 3 ++- ui/pages/help/pt_BR/templates.dita | 3 ++- ui/pages/help/zh_CN/storage.dita | 3 ++- ui/pages/help/zh_CN/templates.dita | 3 ++- 10 files changed, 48 insertions(+), 27 deletions(-) -- 1.8.3.2

From: Royce Lv <lvroyce@linux.vnet.ibm.com> An out of box ISO pool is created to make sure user will find a well known place to put his ISO. Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- src/kimchi/model/model.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/kimchi/model/model.py b/src/kimchi/model/model.py index a766ca5..3c6dc8c 100644 --- a/src/kimchi/model/model.py +++ b/src/kimchi/model/model.py @@ -24,6 +24,8 @@ import sys import cherrypy import libvirt +import lxml.etree as ET +from lxml.builder import E from kimchi.basemodel import BaseModel from kimchi.model.libvirtconnection import LibvirtConnection @@ -31,6 +33,10 @@ from kimchi.objectstore import ObjectStore from kimchi.utils import import_module, listPathModules +DEFAULT_POOLS = {'default': {'path': '/var/lib/libvirt/images'}, + 'ISO': {'path': '/var/lib/libvirt/isos'}} + + class Model(BaseModel): def __init__(self, libvirt_uri='qemu:///system', objstore_loc=None): self.objstore = ObjectStore(objstore_loc) @@ -38,7 +44,8 @@ class Model(BaseModel): kargs = {'objstore': self.objstore, 'conn': self.conn} if 'qemu:///' in libvirt_uri: - self._default_pool_check() + for pool_name, pool_arg in DEFAULT_POOLS.iteritems(): + self._default_pool_check(pool_name, pool_arg) this = os.path.basename(__file__) this_mod = os.path.splitext(this)[0] @@ -57,21 +64,18 @@ class Model(BaseModel): return super(Model, self).__init__(models) - def _default_pool_check(self): + def _default_pool_check(self, pool_name, pool_arg): conn = self.conn.get() - xml = """ - <pool type='dir'> - <name>default</name> - <target> - <path>/var/lib/libvirt/images</path> - </target> - </pool> - """ + pool = E.pool(E.name(pool_name), type='dir') + pool.append(E.target(E.path(pool_arg['path']))) + xml = ET.tostring(pool) try: - pool = conn.storagePoolLookupByName("default") + pool = conn.storagePoolLookupByName(pool_name) except libvirt.libvirtError: try: pool = conn.storagePoolDefineXML(xml, 0) + # Add build step to make sure target directory created + pool.build(libvirt.VIR_STORAGE_POOL_BUILD_NEW) pool.setAutostart(1) except libvirt.libvirtError, e: cherrypy.log.error("Fatal: Cannot create default pool because " -- 1.8.3.2

On 06/16/2014 05:29 AM, lvroyce@linux.vnet.ibm.com wrote:
From: Royce Lv <lvroyce@linux.vnet.ibm.com>
An out of box ISO pool is created to make sure user will find a well known place to put his ISO.
Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- src/kimchi/model/model.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/kimchi/model/model.py b/src/kimchi/model/model.py index a766ca5..3c6dc8c 100644 --- a/src/kimchi/model/model.py +++ b/src/kimchi/model/model.py @@ -24,6 +24,8 @@ import sys
import cherrypy import libvirt +import lxml.etree as ET +from lxml.builder import E
from kimchi.basemodel import BaseModel from kimchi.model.libvirtconnection import LibvirtConnection @@ -31,6 +33,10 @@ from kimchi.objectstore import ObjectStore from kimchi.utils import import_module, listPathModules
+DEFAULT_POOLS = {'default': {'path': '/var/lib/libvirt/images'}, + 'ISO': {'path': '/var/lib/libvirt/isos'}}
/var/lib/kimchi would be better as kimchi will create it
+ + class Model(BaseModel): def __init__(self, libvirt_uri='qemu:///system', objstore_loc=None): self.objstore = ObjectStore(objstore_loc) @@ -38,7 +44,8 @@ class Model(BaseModel): kargs = {'objstore': self.objstore, 'conn': self.conn}
if 'qemu:///' in libvirt_uri: - self._default_pool_check() + for pool_name, pool_arg in DEFAULT_POOLS.iteritems(): + self._default_pool_check(pool_name, pool_arg)
this = os.path.basename(__file__) this_mod = os.path.splitext(this)[0] @@ -57,21 +64,18 @@ class Model(BaseModel):
return super(Model, self).__init__(models)
- def _default_pool_check(self): + def _default_pool_check(self, pool_name, pool_arg): conn = self.conn.get() - xml = """ - <pool type='dir'> - <name>default</name> - <target> - <path>/var/lib/libvirt/images</path> - </target> - </pool> - """ + pool = E.pool(E.name(pool_name), type='dir') + pool.append(E.target(E.path(pool_arg['path']))) + xml = ET.tostring(pool) try: - pool = conn.storagePoolLookupByName("default") + pool = conn.storagePoolLookupByName(pool_name) except libvirt.libvirtError: try: pool = conn.storagePoolDefineXML(xml, 0) + # Add build step to make sure target directory created + pool.build(libvirt.VIR_STORAGE_POOL_BUILD_NEW) pool.setAutostart(1) except libvirt.libvirtError, e: cherrypy.log.error("Fatal: Cannot create default pool because "

From: Royce Lv <lvroyce@linux.vnet.ibm.com> To prevent qemu user be probed multiple times, store it in class attribute so that next time we don't need to create vm. Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- src/kimchi/kvmusertests.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/kimchi/kvmusertests.py b/src/kimchi/kvmusertests.py index 4884ccf..1757725 100644 --- a/src/kimchi/kvmusertests.py +++ b/src/kimchi/kvmusertests.py @@ -37,14 +37,17 @@ class UserTests(object): <boot dev='hd'/> </os> </domain>""" + user = None - def __init__(self): - self.vm_uuid = uuid.uuid1() - self.vm_name = "kimchi_test_%s" % self.vm_uuid + @classmethod + def probe_user(cls): + if cls.user: + return cls.user - def probe_user(self): - xml = self.SIMPLE_VM_XML % (self.vm_name, self.vm_uuid) - user = None + vm_uuid = uuid.uuid1() + vm_name = "kimchi_test_%s" % vm_uuid + + xml = cls.SIMPLE_VM_XML % (vm_name, vm_uuid) with RollbackContext() as rollback: conn = libvirt.open('qemu:///system') rollback.prependDefer(conn.close) @@ -52,7 +55,7 @@ class UserTests(object): rollback.prependDefer(dom.undefine) dom.create() rollback.prependDefer(dom.destroy) - with open('/var/run/libvirt/qemu/%s.pid' % self.vm_name) as f: + with open('/var/run/libvirt/qemu/%s.pid' % vm_name) as f: pidStr = f.read() p = psutil.Process(int(pidStr)) @@ -60,11 +63,11 @@ class UserTests(object): # in psutil 2.0 and above versions, username will be a method, # not a string if callable(p.username): - user = p.username() + cls.user = p.username() else: - user = p.username + cls.user = p.username - return user + return cls.user if __name__ == '__main__': -- 1.8.3.2

From: Royce Lv <lvroyce@linux.vnet.ibm.com> Add doc for user to upload the iso to a dedicate pool, add testcase to validate correctness. Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- docs/README.md | 5 +++++ tests/test_model.py | 3 +++ ui/pages/help/en_US/storage.dita | 3 ++- ui/pages/help/en_US/templates.dita | 3 ++- ui/pages/help/pt_BR/storage.dita | 3 ++- ui/pages/help/pt_BR/templates.dita | 3 ++- ui/pages/help/zh_CN/storage.dita | 3 ++- ui/pages/help/zh_CN/templates.dita | 3 ++- 8 files changed, 20 insertions(+), 6 deletions(-) diff --git a/docs/README.md b/docs/README.md index c658637..2591f7c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -143,6 +143,11 @@ The template screen looks like: From this view, you can change the parameters of a template or create a new template using the "+" button in the upper right corner. +To create a template, you need an ISO on your host or using remote one. +If you are willing to use your own ISO, +please copy it to out of box storage pool (default path is: +/var/lib/libvirt/isos). + Known Issues ------------ diff --git a/tests/test_model.py b/tests/test_model.py index 142e4fc..ea38f59 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -416,6 +416,9 @@ class ModelTests(unittest.TestCase): self.assertIn('default', pools) poolinfo = inst.storagepool_lookup('default') self.assertEquals('active', poolinfo['state']) + self.assertIn('ISO', pools) + poolinfo = inst.storagepool_lookup('ISO') + self.assertEquals('active', poolinfo['state']) self.assertEquals((num - 1), len(pools)) @unittest.skipUnless(utils.running_as_root(), 'Must be run as root') diff --git a/ui/pages/help/en_US/storage.dita b/ui/pages/help/en_US/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/en_US/storage.dita +++ b/ui/pages/help/en_US/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/en_US/templates.dita b/ui/pages/help/en_US/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/en_US/templates.dita +++ b/ui/pages/help/en_US/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> diff --git a/ui/pages/help/pt_BR/storage.dita b/ui/pages/help/pt_BR/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/pt_BR/storage.dita +++ b/ui/pages/help/pt_BR/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/pt_BR/templates.dita b/ui/pages/help/pt_BR/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/pt_BR/templates.dita +++ b/ui/pages/help/pt_BR/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> diff --git a/ui/pages/help/zh_CN/storage.dita b/ui/pages/help/zh_CN/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/zh_CN/storage.dita +++ b/ui/pages/help/zh_CN/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/zh_CN/templates.dita b/ui/pages/help/zh_CN/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/zh_CN/templates.dita +++ b/ui/pages/help/zh_CN/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> -- 1.8.3.2

On 06/16/2014 05:29 AM, lvroyce@linux.vnet.ibm.com wrote:
From: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add doc for user to upload the iso to a dedicate pool, add testcase to validate correctness.
Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- docs/README.md | 5 +++++ tests/test_model.py | 3 +++ ui/pages/help/en_US/storage.dita | 3 ++- ui/pages/help/en_US/templates.dita | 3 ++- ui/pages/help/pt_BR/storage.dita | 3 ++- ui/pages/help/pt_BR/templates.dita | 3 ++- ui/pages/help/zh_CN/storage.dita | 3 ++- ui/pages/help/zh_CN/templates.dita | 3 ++- 8 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/docs/README.md b/docs/README.md index c658637..2591f7c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -143,6 +143,11 @@ The template screen looks like: From this view, you can change the parameters of a template or create a new template using the "+" button in the upper right corner.
+To create a template, you need an ISO on your host or using remote one. +If you are willing to use your own ISO, +please copy it to out of box storage pool (default path is: +/var/lib/libvirt/isos). + Known Issues ------------
diff --git a/tests/test_model.py b/tests/test_model.py index 142e4fc..ea38f59 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -416,6 +416,9 @@ class ModelTests(unittest.TestCase): self.assertIn('default', pools) poolinfo = inst.storagepool_lookup('default') self.assertEquals('active', poolinfo['state']) + self.assertIn('ISO', pools) + poolinfo = inst.storagepool_lookup('ISO') + self.assertEquals('active', poolinfo['state']) self.assertEquals((num - 1), len(pools))
@unittest.skipUnless(utils.running_as_root(), 'Must be run as root') diff --git a/ui/pages/help/en_US/storage.dita b/ui/pages/help/en_US/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/en_US/storage.dita +++ b/ui/pages/help/en_US/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc>
As 'scp' is command, I'd suggest to don't use it on help pages. We can replace it to "add"
<csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/en_US/templates.dita b/ui/pages/help/en_US/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/en_US/templates.dita +++ b/ui/pages/help/en_US/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> diff --git a/ui/pages/help/pt_BR/storage.dita b/ui/pages/help/pt_BR/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/pt_BR/storage.dita +++ b/ui/pages/help/pt_BR/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/pt_BR/templates.dita b/ui/pages/help/pt_BR/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/pt_BR/templates.dita +++ b/ui/pages/help/pt_BR/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> diff --git a/ui/pages/help/zh_CN/storage.dita b/ui/pages/help/zh_CN/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/zh_CN/storage.dita +++ b/ui/pages/help/zh_CN/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/zh_CN/templates.dita b/ui/pages/help/zh_CN/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/zh_CN/templates.dita +++ b/ui/pages/help/zh_CN/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry>

On 06/17/2014 05:02 PM, Aline Manera wrote:
On 06/16/2014 05:29 AM, lvroyce@linux.vnet.ibm.com wrote:
From: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add doc for user to upload the iso to a dedicate pool, add testcase to validate correctness.
Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- docs/README.md | 5 +++++ tests/test_model.py | 3 +++ ui/pages/help/en_US/storage.dita | 3 ++- ui/pages/help/en_US/templates.dita | 3 ++- ui/pages/help/pt_BR/storage.dita | 3 ++- ui/pages/help/pt_BR/templates.dita | 3 ++- ui/pages/help/zh_CN/storage.dita | 3 ++- ui/pages/help/zh_CN/templates.dita | 3 ++- 8 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/docs/README.md b/docs/README.md index c658637..2591f7c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -143,6 +143,11 @@ The template screen looks like: From this view, you can change the parameters of a template or create a new template using the "+" button in the upper right corner.
+To create a template, you need an ISO on your host or using remote one. +If you are willing to use your own ISO, +please copy it to out of box storage pool (default path is: +/var/lib/libvirt/isos). + Known Issues ------------
diff --git a/tests/test_model.py b/tests/test_model.py index 142e4fc..ea38f59 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -416,6 +416,9 @@ class ModelTests(unittest.TestCase): self.assertIn('default', pools) poolinfo = inst.storagepool_lookup('default') self.assertEquals('active', poolinfo['state']) + self.assertIn('ISO', pools) + poolinfo = inst.storagepool_lookup('ISO') + self.assertEquals('active', poolinfo['state']) self.assertEquals((num - 1), len(pools))
@unittest.skipUnless(utils.running_as_root(), 'Must be run as root') diff --git a/ui/pages/help/en_US/storage.dita b/ui/pages/help/en_US/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/en_US/storage.dita +++ b/ui/pages/help/en_US/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc>
As 'scp' is command, I'd suggest to don't use it on help pages. We can replace it to "add"
I will do that before applying
<csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/en_US/templates.dita b/ui/pages/help/en_US/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/en_US/templates.dita +++ b/ui/pages/help/en_US/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> diff --git a/ui/pages/help/pt_BR/storage.dita b/ui/pages/help/pt_BR/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/pt_BR/storage.dita +++ b/ui/pages/help/pt_BR/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/pt_BR/templates.dita b/ui/pages/help/pt_BR/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/pt_BR/templates.dita +++ b/ui/pages/help/pt_BR/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry> diff --git a/ui/pages/help/zh_CN/storage.dita b/ui/pages/help/zh_CN/storage.dita index 12ce15c..7ab74a9 100644 --- a/ui/pages/help/zh_CN/storage.dita +++ b/ui/pages/help/zh_CN/storage.dita @@ -10,7 +10,8 @@ https://w3.opensource.ibm.com/projects/dita-cshelp/--> <cshelp id="kimhstor" xml:lang="en-us"> <title>Storage</title> <shortdesc>The <wintitle>Storage</wintitle> page lists the available -storage pools, including the default storage pool.</shortdesc> +storage pools, including the out of box 'default' and 'ISO' storage pool. +If you want to use your own ISO, please scp it to 'ISO' storage pool path.</shortdesc> <csbody> <p>For each storage pool, the following information is displayed:<dl> <dlentry> diff --git a/ui/pages/help/zh_CN/templates.dita b/ui/pages/help/zh_CN/templates.dita index aee0726..f5f5a43 100644 --- a/ui/pages/help/zh_CN/templates.dita +++ b/ui/pages/help/zh_CN/templates.dita @@ -74,7 +74,8 @@ you edit a field, click <uicontrol>Save</uicontrol>. </p> </cshelp> <cshelp id="kimhaddtempl"> <title>Add template</title> -<shortdesc>Add a template from source media.</shortdesc> +<shortdesc>Add a template from source media. +You can scp your own ISO image to 'ISO' storage pool for following discovery.</shortdesc> <csbody> <p>Select the location of the source media from the following options:<dl> <dlentry>
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
participants (2)
-
Aline Manera
-
lvroyce@linux.vnet.ibm.com