Yedidyah Bar David has uploaded a new change for review.

Change subject: packaging: setup: queryEnvKey: getHostname
......................................................................

packaging: setup: queryEnvKey: getHostname

Change-Id: I349cba8d4478cbdb008e029ba9fb379e6e0f44f2
Signed-off-by: Yedidyah Bar David <d...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/dialog.py
M packaging/setup/ovirt_engine_setup/hostname.py
2 files changed, 44 insertions(+), 39 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/42199/1

diff --git a/packaging/setup/ovirt_engine_setup/dialog.py 
b/packaging/setup/ovirt_engine_setup/dialog.py
index 2bf0382..7ce90b6f 100644
--- a/packaging/setup/ovirt_engine_setup/dialog.py
+++ b/packaging/setup/ovirt_engine_setup/dialog.py
@@ -61,6 +61,7 @@
     hidden=False,
     prompt=False,
     default=None,
+    name=None,
 ):
     """Query string and validate it.
     Params:
@@ -78,6 +79,7 @@
         If True and a test failed, ask user again. Otherwise prompt user
         to accept value anyway.
     'warn_note' -- Message displayed if warning, defaults to 'Accept?'
+    'warn_name' -- warn dialog name
     'interactive_only' -- Do not run test if env[key] is already set
     """
 
@@ -86,7 +88,11 @@
     while not valid:
         if interactive:
             value = dialog.queryString(
-                name='queryEnvKey_input:{key}'.format(key=key),
+                name=(
+                    'queryEnvKey_input:{key}'.format(key=key)
+                    if name is None
+                    else name
+                ),
                 note=note,
                 validValues=validValues,
                 caseSensitive=caseSensitive,
@@ -111,8 +117,11 @@
                         logger.warning(msg)
                         if not queryBoolean(
                             dialog=dialog,
-                            name='queryEnvKey_warnverify:{key}'.format(
-                                key=key
+                            name=(
+                                'queryEnvKey_warnverify:{key}'.format(
+                                    key=key
+                                ) if test.get('warn_name') is None
+                                else test['warn_name']
                             ),
                             note='{msg} (@VALUES@) [@DEFAULT@]: '.format(
                                 msg=test.get('warn_note', _('OK? ')),
diff --git a/packaging/setup/ovirt_engine_setup/hostname.py 
b/packaging/setup/ovirt_engine_setup/hostname.py
index 5509f3b..5bbe42a 100644
--- a/packaging/setup/ovirt_engine_setup/hostname.py
+++ b/packaging/setup/ovirt_engine_setup/hostname.py
@@ -23,6 +23,7 @@
 from otopi import base, util
 
 from ovirt_engine_setup import constants as osetupcons
+from ovirt_engine_setup import dialog
 
 
 def _(m):
@@ -310,49 +311,44 @@
             )
         ])
 
+    def test_hostname(name):
+        res = ''
+        try:
+            self._validateFQDN(name)
+            self._validateFQDNresolvability(name)
+        except RuntimeError as e:
+            res = _('Host name is not valid: {e}').format(e=e)
+            self.logger.debug('test_hostname exception', exc_info=True)
+        return res
+
     def getHostname(self, envkey, whichhost, supply_default, prompttext=None):
-        interactive = self.environment[envkey] is None
-        validFQDN = False
         if prompttext is None:
             prompttext = _(
                 'Host fully qualified DNS name of {whichhost} server'
             ).format(
                 whichhost=whichhost,
             )
-        while not validFQDN:
-            if interactive:
-                fqdn = socket.getfqdn()
-                self.environment[
-                    envkey
-                ] = self.dialog.queryString(
-                    name='OVESETUP_NETWORK_FQDN_{whichhost}'.format(
-                        whichhost=whichhost.replace(' ', '_'),
-                    ),
-                    note=_(
-                        '{prompt} [@DEFAULT@]: '
-                    ).format(
-                        prompt=prompttext,
-                    ),
-                    prompt=True,
-                    default=fqdn if supply_default else '',
-                )
-            try:
-                self._validateFQDN(
-                    self.environment[envkey]
-                )
-                self._validateFQDNresolvability(
-                    self.environment[envkey]
-                )
-                validFQDN = True
-            except RuntimeError as e:
-                self.logger.error(
-                    _('Host name is not valid: {error}').format(
-                        error=e,
-                    ),
-                )
-                self.logger.debug('exception', exc_info=True)
-                if not interactive:
-                    break
+        return queryEnvKey(
+            name='OVESETUP_NETWORK_FQDN_{whichhost}'.format(
+                whichhost=whichhost.replace(' ', '_'),
+            ),
+            dialog=self.dialog,
+            logger=self.logger,
+            env=self.environment,
+            key=envkey,
+            note=_(
+                '{prompt} [@DEFAULT@]: '
+            ).format(
+                prompt=prompttext,
+            ),
+            prompt=True,
+            default=socket.getfqdn() if supply_default else '',
+            tests=(
+                {
+                    'test': test_hostname,
+                },
+            ),
+        )
 
 
 # vim: expandtab tabstop=4 shiftwidth=4


-- 
To view, visit https://gerrit.ovirt.org/42199
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I349cba8d4478cbdb008e029ba9fb379e6e0f44f2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yedidyah Bar David <d...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to