Yedidyah Bar David has uploaded a new change for review.

Change subject: packaging: setup: remote server instead of remote engine
......................................................................

packaging: setup: remote server instead of remote engine

Allow using the remote_engine code for more than just the engine.

Change-Id: I18b6a9ccca1b12cb5903bff480a5f17f00dc318a
Signed-off-by: Yedidyah Bar David <[email protected]>
---
M packaging/setup/ovirt_engine_setup/constants.py
M packaging/setup/ovirt_engine_setup/remote_engine.py
A packaging/setup/ovirt_engine_setup/remote_server.py
R packaging/setup/ovirt_engine_setup/remote_server_base.py
M packaging/setup/ovirt_engine_setup/websocket_proxy/constants.py
R packaging/setup/plugins/ovirt-engine-common/base/remote_server/__init__.py
R 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_engine.py
A 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server.py
R 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_manual_files.py
R 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_root_ssh.py
10 files changed, 319 insertions(+), 207 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/02/37702/1

diff --git a/packaging/setup/ovirt_engine_setup/constants.py 
b/packaging/setup/ovirt_engine_setup/constants.py
index fe7e3c9..53e4a2f 100644
--- a/packaging/setup/ovirt_engine_setup/constants.py
+++ b/packaging/setup/ovirt_engine_setup/constants.py
@@ -256,9 +256,17 @@
     FIREWALL_MANAGER_FIREWALLD = 'firewalld'
     ISO_DOMAIN_NFS_DEFAULT_ACL_FORMAT = '{fqdn}(rw)'
 
-    REMOTE_ENGINE_SETUP_STYLE_AUTO_SSH = 'auto_ssh'
-    REMOTE_ENGINE_SETUP_STYLE_MANUAL_FILES = 'manual_files'
-    REMOTE_ENGINE_SETUP_STYLE_MANUAL_INLINE = 'manual_inline'
+    REMOTE_SERVER_SETUP_STYLE_AUTO_SSH = 'auto_ssh'
+    REMOTE_SERVER_SETUP_STYLE_MANUAL_FILES = 'manual_files'
+    REMOTE_SERVER_SETUP_STYLE_MANUAL_INLINE = 'manual_inline'
+
+    @classproperty
+    def REMOTE_ENGINE_KEYS(self):
+        return {
+            'style': ConfigEnv.REMOTE_ENGINE_SETUP_STYLE,
+            'ssh_port': ConfigEnv.REMOTE_ENGINE_HOST_SSH_PORT,
+            'root_password': ConfigEnv.REMOTE_ENGINE_HOST_ROOT_PASSWORD,
+        }
 
 
 @util.export
@@ -403,7 +411,7 @@
     FQDN_REVERSE_VALIDATION = 'OVESETUP_CONFIG/fqdnReverseValidation'
     FQDN_NON_LOOPBACK_VALIDATION = 'OVESETUP_CONFIG/fqdnNonLoopback'
 
-    REMOTE_ENGINE_SETUP_STYLES = 'OVESETUP_CONFIG/remoteEngineSetupStyles'
+    REMOTE_SERVER_SETUP_STYLES = 'OVESETUP_CONFIG/remoteEngineSetupStyles'
 
     @osetupattrs(
         answerfile=True,
@@ -418,10 +426,10 @@
         return 'OVESETUP_CONFIG/remoteEngineHostSshPort'
 
     # Optional, used if supplied
-    REMOTE_ENGINE_HOST_CLIENT_KEY = 'OVESETUP_CONFIG/remoteEngineHostClientKey'
+    REMOTE_SERVER_HOST_CLIENT_KEY = 'OVESETUP_CONFIG/remoteEngineHostClientKey'
 
     # Optional, used if supplied, currently only log if not there
-    REMOTE_ENGINE_HOST_KNOWN_HOSTS = \
+    REMOTE_SERVER_HOST_KNOWN_HOSTS = \
         'OVESETUP_CONFIG/remoteEngineHostKnownHosts'
 
     @osetupattrs(
diff --git a/packaging/setup/ovirt_engine_setup/remote_engine.py 
b/packaging/setup/ovirt_engine_setup/remote_engine.py
index 18e3f46..2522c90 100644
--- a/packaging/setup/ovirt_engine_setup/remote_engine.py
+++ b/packaging/setup/ovirt_engine_setup/remote_engine.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -38,119 +38,11 @@
 
 
 @util.export
-class RemoteEngine(base.Base):
-
-    _instance = None
-
-    def __init__(self, plugin):
-        super(RemoteEngine, self).__init__()
-        self._plugin = plugin
-        self._style = None
-        self._client = None
-
-    @property
-    def plugin(self):
-        return self._plugin
-
-    @property
-    def dialog(self):
-        return self._plugin.dialog
-
-    @property
-    def environment(self):
-        return self._plugin.environment
-
-    @property
-    def logger(self):
-        return self._plugin.logger
-
-    def style(self):
-        if self._style is None:
-            self.configure()
-        return self._style
-
-    def execute_on_engine(self, cmd, timeout=60, text=None):
-        return self._style.execute_on_engine(
-            cmd=cmd,
-            timeout=timeout,
-            text=text,
-        )
-
-    def copy_from_engine(self, file_name):
-        return self._style.copy_from_engine(
-            file_name=file_name,
-        )
-
-    def copy_to_engine(
-        self,
-        file_name,
-        content,
-        inp_env_key=None,
-    ):
-        return self._style.copy_to_engine(
-            file_name=file_name,
-            content=content,
-            inp_env_key=inp_env_key,
-        )
-
-    def cleanup(self):
-        if self._style:
-            return self._style.cleanup()
-
-    def configure(self, fqdn):
-        key = osetupcons.ConfigEnv.REMOTE_ENGINE_SETUP_STYLE
-        styles = dict(
-            (
-                str(i + 1),
-                s
-            )
-            for i, s in enumerate(
-                self.environment[
-                    osetupcons.ConfigEnv.REMOTE_ENGINE_SETUP_STYLES
-                ]
-            )
-        )
-        if self.environment[key] is None:
-            choices = sorted(styles.keys())
-            descs = ''.join(
-                '{c} - {desc}\n'.format(
-                    c=c,
-                    desc=styles[c].desc(),
-                )
-                for c in choices
-            )
-            reply = self.dialog.queryString(
-                name='REMOTE_ENGINE_SETUP_STYLE',
-                note=_(
-                    'Setup will need to do some actions on the remote engine '
-                    'server. Either automatically, using ssh as root to '
-                    'access it, or you will be prompted to manually '
-                    'perform each such action.\n'
-                    'Please choose one of the following:\n'
-                    '{descs}'
-                    '(@VALUES@) [@DEFAULT@]: '
-                ).format(
-                    descs=descs,
-                ),
-                prompt=True,
-                validValues=choices,
-                default=choices[0],
-            )
-            self.environment[key] = styles[reply].name
-        if self._style is None:
-            self._style = next(
-                s for i, s in styles.items()
-                if s.name == self.environment[key]
-            )
-            self._style.configure(fqdn=fqdn)
-
-
[email protected]
 class EnrollCert(base.Base):
 
     def __init__(
         self,
-        remote_engine,
+        remote_server,
         engine_fqdn,
         base_name,
         base_touser,
@@ -176,7 +68,7 @@
         self._remote_name = None
         self._enroll_command = None
 
-        self._remote_engine = remote_engine
+        self._remote_server = remote_server
         self._engine_fqdn = engine_fqdn
         self._base_name = base_name
         self._base_touser = base_touser
@@ -189,7 +81,7 @@
         self._key_size = key_size
         self._url = url
 
-        self._plugin = remote_engine.plugin
+        self._plugin = remote_server.plugin
 
     @property
     def plugin(self):
@@ -232,15 +124,15 @@
         goodcert = False
         while not goodcert and tries_left > 0:
             try:
-                self._remote_engine.copy_to_engine(
+                self._remote_server.copy_to_server(
                     file_name='{pkireqdir}/{remote_name}.req'.format(
                         pkireqdir=self._engine_pki_requests_dir,
                         remote_name=self._remote_name,
                     ),
                     content=self._csr,
                 )
-                self._remote_engine.execute_on_engine(cmd=self._enroll_command)
-                cert = self._remote_engine.copy_from_engine(
+                self._remote_server.execute_on_server(cmd=self._enroll_command)
+                cert = self._remote_server.copy_from_server(
                     file_name='{pkicertdir}/{remote_name}.cer'.format(
                         pkicertdir=self._engine_pki_certs_dir,
                         remote_name=self._remote_name,
@@ -392,7 +284,9 @@
                 engine_ca_cert_file=self._engine_ca_cert_file,
                 fqdn=self.environment[osetupcons.ConfigEnv.FQDN],
             )
-            self._remote_engine.configure(fqdn=self._engine_fqdn)
+            self._remote_server.configure(
+                fqdn=self._engine_fqdn,
+            )
             # TODO
             # This is ugly - we rely on having these two plugins
             # and do not support others. A good fix will:
@@ -405,13 +299,13 @@
             # manual_inline and have another function for that,
             # or perhaps make _enroll_cert_manual_files work with both.
             cert = {
-                osetupcons.Const.REMOTE_ENGINE_SETUP_STYLE_AUTO_SSH: (
+                osetupcons.Const.REMOTE_SERVER_SETUP_STYLE_AUTO_SSH: (
                     self._enroll_cert_auto_ssh
                 ),
-                osetupcons.Const.REMOTE_ENGINE_SETUP_STYLE_MANUAL_FILES: (
+                osetupcons.Const.REMOTE_SERVER_SETUP_STYLE_MANUAL_FILES: (
                     self._enroll_cert_manual_files
                 ),
-            }[self._remote_engine.style().name]()
+            }[self._remote_server.style().name()]()
         self._cert = cert
 
     def add_to_transaction(
diff --git a/packaging/setup/ovirt_engine_setup/remote_server.py 
b/packaging/setup/ovirt_engine_setup/remote_server.py
new file mode 100644
index 0000000..5c6caf0
--- /dev/null
+++ b/packaging/setup/ovirt_engine_setup/remote_server.py
@@ -0,0 +1,148 @@
+#
+# ovirt-engine-setup -- ovirt engine setup
+# Copyright (C) 2014-2015 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+import gettext
+_ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
+
+
+from otopi import util
+from otopi import base
+
+
+from ovirt_engine_setup import constants as osetupcons
+
+
[email protected]
+class RemoteServer(base.Base):
+
+    _instance = None
+
+    def __init__(self, plugin, server_tag, server_desc, keys):
+        super(RemoteServer, self).__init__()
+        self._plugin = plugin
+        self._style = None
+        self._server_tag = server_tag
+        self._server_desc = server_desc
+        self._keys = keys
+
+    @property
+    def plugin(self):
+        return self._plugin
+
+    @property
+    def dialog(self):
+        return self._plugin.dialog
+
+    @property
+    def environment(self):
+        return self._plugin.environment
+
+    @property
+    def logger(self):
+        return self._plugin.logger
+
+    def style(self):
+        if self._style is None:
+            self.configure()
+        return self._style
+
+    def execute_on_server(self, cmd, timeout=60, text=None):
+        return self._style.execute_on_server(
+            cmd=cmd,
+            timeout=timeout,
+            text=text,
+        )
+
+    def copy_from_server(self, file_name):
+        return self._style.copy_from_server(
+            file_name=file_name,
+        )
+
+    def copy_to_server(
+        self,
+        file_name,
+        content,
+        inp_env_key=None,
+    ):
+        return self._style.copy_to_server(
+            file_name=file_name,
+            content=content,
+            inp_env_key=inp_env_key,
+        )
+
+    def cleanup(self):
+        if self._style:
+            return self._style.cleanup()
+
+    def configure(self, fqdn):
+        key = self._keys['style']
+        styles = dict(
+            (
+                str(i + 1),
+                s
+            )
+            for i, s in enumerate(
+                self.environment[
+                    osetupcons.ConfigEnv.REMOTE_SERVER_SETUP_STYLES
+                ]
+            )
+        )
+        if self.environment[key] is None:
+            choices = sorted(styles.keys())
+            style_descs = ''.join(
+                '{c} - {style_desc}\n'.format(
+                    c=c,
+                    style_desc=styles[c].desc(),
+                )
+                for c in choices
+            )
+            reply = self.dialog.queryString(
+                name='REMOTE_SERVER_SETUP_STYLE_%s' % self._server_tag,
+                note=_(
+                    'Setup will need to do some actions on {server_desc} '
+                    'server. Either automatically, using ssh as root to '
+                    'access it, or you will be prompted to manually '
+                    'perform each such action.\n'
+                    'Please choose one of the following:\n'
+                    '{style_descs}'
+                    '(@VALUES@) [@DEFAULT@]: '
+                ).format(
+                    server_desc=self._server_desc,
+                    style_descs=style_descs,
+                ),
+                prompt=True,
+                validValues=choices,
+                default=choices[0],
+            )
+            self.environment[key] = styles[reply].name
+        if self._style is None:
+            self._style = next(
+                s for s in styles.values()
+                if s.name == self.environment[key]
+            )(
+                plugin=self._plugin,
+                server_tag=self._server_tag,
+                server_desc=self._server_desc,
+                keys=self._keys,
+            )
+            self._style.configure(
+                fqdn=fqdn,
+            )
+
+
+# vim: expandtab tabstop=4 shiftwidth=4
diff --git a/packaging/setup/ovirt_engine_setup/remote_engine_base.py 
b/packaging/setup/ovirt_engine_setup/remote_server_base.py
similarity index 81%
rename from packaging/setup/ovirt_engine_setup/remote_engine_base.py
rename to packaging/setup/ovirt_engine_setup/remote_server_base.py
index ca6216f..ac01423 100644
--- a/packaging/setup/ovirt_engine_setup/remote_engine_base.py
+++ b/packaging/setup/ovirt_engine_setup/remote_server_base.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -21,10 +21,10 @@
 
 
 @util.export
-class RemoteEngineBase(base.Base):
+class RemoteServerBase(base.Base):
 
     def __init__(self, plugin):
-        super(RemoteEngineBase, self).__init__()
+        super(RemoteServerBase, self).__init__()
         self._plugin = plugin
 
     @property
@@ -43,23 +43,24 @@
     def logger(self):
         return self._plugin.logger
 
-    @property
-    def name(self):
+    @staticmethod
+    def name():
         raise RuntimeError('Unset')
 
-    def desc(self):
+    @staticmethod
+    def desc():
         raise RuntimeError('Unset')
 
     def configure(self, fqdn):
         pass
 
-    def execute_on_engine(self, cmd, timeout=60):
+    def execute_on_server(self, cmd, timeout=60):
         pass
 
-    def copy_from_engine(self, file_name):
+    def copy_from_server(self, file_name):
         pass
 
-    def copy_to_engine(
+    def copy_to_server(
         self,
         file_name,
         content,
diff --git a/packaging/setup/ovirt_engine_setup/websocket_proxy/constants.py 
b/packaging/setup/ovirt_engine_setup/websocket_proxy/constants.py
index df0da98..9bb84fd 100644
--- a/packaging/setup/ovirt_engine_setup/websocket_proxy/constants.py
+++ b/packaging/setup/ovirt_engine_setup/websocket_proxy/constants.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -132,10 +132,7 @@
 
     KEY_SIZE = 'OVESETUP_CONFIG/keySize'
 
-    REMOTE_ENGINE_HOST = 'OVESETUP_CONFIG/remoteEngineHost'
-
     WSP_CERTIFICATE_CHAIN = 'OVESETUP_CONFIG/wspCertificateChain'
-    REMOTE_ENGINE_CER = 'OVESETUP_CONFIG/remoteEngineCer'
 
     PKI_WSP_CSR_FILENAME = 'OVESETUP_CONFIG/pkiWSPCSRFilename'
 
diff --git 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/__init__.py 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/__init__.py
similarity index 73%
rename from 
packaging/setup/plugins/ovirt-engine-common/base/remote_engine/__init__.py
rename to 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/__init__.py
index 0b1491e..ddc8bb8 100644
--- a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/__init__.py
+++ b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/__init__.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -23,15 +23,17 @@
 
 
 from . import remote_engine
-from . import remote_engine_manual_files
-from . import remote_engine_root_ssh
+from . import remote_server
+from . import remote_server_manual_files
+from . import remote_server_root_ssh
 
 
 @util.export
 def createPlugins(context):
     remote_engine.Plugin(context=context)
-    remote_engine_manual_files.Plugin(context=context)
-    remote_engine_root_ssh.Plugin(context=context)
+    remote_server.Plugin(context=context)
+    remote_server_manual_files.Plugin(context=context)
+    remote_server_root_ssh.Plugin(context=context)
 
 
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine.py
 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_engine.py
similarity index 81%
rename from 
packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine.py
rename to 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_engine.py
index 39b1457..4d78716 100644
--- 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine.py
+++ 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_engine.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
-from ovirt_engine_setup import remote_engine
+from ovirt_engine_setup import remote_server
 
 
 @util.export
@@ -52,14 +52,6 @@
             None
         )
         self.environment.setdefault(
-            osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_CLIENT_KEY,
-            None
-        )
-        self.environment.setdefault(
-            osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_KNOWN_HOSTS,
-            None
-        )
-        self.environment.setdefault(
             osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_ROOT_PASSWORD,
             None
         )
@@ -68,9 +60,6 @@
         ].append(
             osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_ROOT_PASSWORD
         )
-        self.environment[
-            osetupcons.ConfigEnv.REMOTE_ENGINE_SETUP_STYLES
-        ] = []
 
     @plugin.event(
         stage=plugin.Stages.STAGE_SETUP,
@@ -78,7 +67,12 @@
     def _setup(self):
         self.environment[
             osetupcons.CoreEnv.REMOTE_ENGINE
-        ] = remote_engine.RemoteEngine(plugin=self)
+        ] = remote_server.RemoteServer(
+            plugin=self,
+            server_tag='engine',
+            server_desc='the engine',
+            keys=osetupcons.Const.REMOTE_ENGINE_KEYS
+        )
 
     @plugin.event(
         stage=plugin.Stages.STAGE_CLEANUP,
diff --git 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server.py
 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server.py
new file mode 100644
index 0000000..c12ae96
--- /dev/null
+++ 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server.py
@@ -0,0 +1,55 @@
+#
+# ovirt-engine-setup -- ovirt engine setup
+# Copyright (C) 2015 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+"""Remote server plugin."""
+
+
+from otopi import constants as otopicons
+from otopi import util
+from otopi import plugin
+
+
+from ovirt_engine_setup import constants as osetupcons
+from ovirt_engine_setup import remote_server
+
+
[email protected]
+class Plugin(plugin.PluginBase):
+    """Remote server plugin."""
+
+    def __init__(self, context):
+        super(Plugin, self).__init__(context=context)
+
+    @plugin.event(
+        stage=plugin.Stages.STAGE_INIT,
+    )
+    def _init(self):
+        self.environment.setdefault(
+            osetupcons.ConfigEnv.REMOTE_SERVER_HOST_CLIENT_KEY,
+            None
+        )
+        self.environment.setdefault(
+            osetupcons.ConfigEnv.REMOTE_SERVER_HOST_KNOWN_HOSTS,
+            None
+        )
+        self.environment[
+            osetupcons.ConfigEnv.REMOTE_SERVER_SETUP_STYLES
+        ] = []
+
+
+# vim: expandtab tabstop=4 shiftwidth=4
diff --git 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine_manual_files.py
 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_manual_files.py
similarity index 73%
rename from 
packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine_manual_files.py
rename to 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_manual_files.py
index b2eddb3..f49fe08 100644
--- 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine_manual_files.py
+++ 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_manual_files.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -27,18 +27,21 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
-from ovirt_engine_setup import remote_engine_base
+from ovirt_engine_setup import remote_server_base
 
 
 @util.export
 class Plugin(plugin.PluginBase):
 
-    class _ManualFiles(remote_engine_base.RemoteEngineBase):
+    class _ManualFiles(remote_server_base.RemoteServerBase):
 
-        def __init__(self, plugin):
+        def __init__(self, plugin, keys, server_tag, server_desc):
             super(Plugin._ManualFiles, self).__init__(plugin=plugin)
             self._plugin = plugin
             self._tempfiles = []
+            self._keys = keys
+            self._server_tag = server_tag
+            self._server_desc = server_desc
 
         @property
         def plugin(self):
@@ -56,11 +59,12 @@
         def logger(self):
             return self._plugin.logger
 
-        @property
-        def name(self):
-            return osetupcons.Const.REMOTE_ENGINE_SETUP_STYLE_MANUAL_FILES
+        @staticmethod
+        def name():
+            return osetupcons.Const.REMOTE_SERVER_SETUP_STYLE_MANUAL_FILES
 
-        def desc(self):
+        @staticmethod
+        def desc():
             return _(
                 'Perform each action manually, use files to copy content '
                 'around'
@@ -69,24 +73,28 @@
         def configure(self, fqdn):
             self._fqdn = fqdn
 
-        def execute_on_engine(self, cmd, timeout=60, text=None):
+        def execute_on_server(self, cmd, timeout=60, text=None):
             self.dialog.note(
                 text=text if text else _(
-                    'Please run on the engine server:\n\n'
+                    'Please run on the server {fqdn}:\n\n'
                     '{cmd}\n\n'
                 ).format(
-                    cmd=cmd
+                    fqdn=self._fqdn,
+                    cmd=cmd,
                 )
             )
 
-        def copy_from_engine(self, file_name, dialog_name):
+        def copy_from_server(self, file_name, dialog_name):
             resfilename = self.dialog.queryString(
                 name=dialog_name,
                 note=_(
-                    'Please copy {file_name} from the engine server to some '
+                    'Please copy {file_name} from the server {fqdn} to some '
                     'file here.\n'
                     'Please input the location of the local file where you '
-                    'copied {file_name} from the engine server: '
+                    'copied {file_name} from the server: '
+                ).format(
+                    file_name=file_name,
+                    fqdn=self._fqdn,
                 ),
                 prompt=True,
             )
@@ -94,7 +102,7 @@
                 res = f.read()
             return res
 
-        def copy_to_engine(self, file_name, content, inp_env_key):
+        def copy_to_server(self, file_name, content, inp_env_key):
             fname = self.environment.get(inp_env_key)
             with (
                 open(fname, 'w') if fname
@@ -104,10 +112,11 @@
             self.dialog.note(
                 text=_(
                     'Please copy {inpfile} from here to {file_name} on the '
-                    'engine server.\n'
+                    'server {fqdn}.\n'
                 ).format(
                     inpfile=inpfile.name,
                     file_name=file_name,
+                    fqdn=self._fqdn,
                 )
             )
             self._tempfiles.append(fname)
@@ -132,11 +141,9 @@
     )
     def _setup(self):
         self.environment[
-            osetupcons.ConfigEnv.REMOTE_ENGINE_SETUP_STYLES
+            osetupcons.ConfigEnv.REMOTE_SERVER_SETUP_STYLES
         ].append(
-            self._ManualFiles(
-                plugin=self,
-            )
+            self._ManualFiles
         )
 
 
diff --git 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine_root_ssh.py
 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_root_ssh.py
similarity index 82%
rename from 
packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine_root_ssh.py
rename to 
packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_root_ssh.py
index 9a61ead..21da2ff 100644
--- 
a/packaging/setup/plugins/ovirt-engine-common/base/remote_engine/remote_engine_root_ssh.py
+++ 
b/packaging/setup/plugins/ovirt-engine-common/base/remote_server/remote_server_root_ssh.py
@@ -1,6 +1,6 @@
 #
 # ovirt-engine-setup -- ovirt engine setup
-# Copyright (C) 2014 Red Hat, Inc.
+# Copyright (C) 2014-2015 Red Hat, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -27,19 +27,22 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
-from ovirt_engine_setup import remote_engine_base
+from ovirt_engine_setup import remote_server_base
 
 
 @util.export
 class Plugin(plugin.PluginBase):
 
-    class _RootSshManager(remote_engine_base.RemoteEngineBase):
+    class _RootSshManager(remote_server_base.RemoteServerBase):
 
-        def __init__(self, plugin):
+        def __init__(self, plugin, keys, server_tag, server_desc):
             super(Plugin._RootSshManager, self).__init__(plugin=plugin)
             self._plugin = plugin
             self._client = None
             self._fqdn = None
+            self._keys = keys
+            self._server_tag = server_tag
+            self._server_desc = server_desc
 
         @property
         def plugin(self):
@@ -57,17 +60,18 @@
         def logger(self):
             return self._plugin.logger
 
-        @property
-        def name(self):
-            return osetupcons.Const.REMOTE_ENGINE_SETUP_STYLE_AUTO_SSH
+        @staticmethod
+        def name():
+            return osetupcons.Const.REMOTE_SERVER_SETUP_STYLE_AUTO_SSH
 
-        def desc(self):
-            return _('Access remote engine server using ssh as root')
+        @staticmethod
+        def desc():
+            return _('Access remote server using ssh as root')
 
         def _ssh_get_port(self):
             import paramiko
             port_valid = False
-            key = osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_SSH_PORT
+            key = self._keys['ssh_port']
             port = self.environment[key]
             interactive = False
             while not port_valid:
@@ -76,9 +80,12 @@
                         interactive = True
                         port = int(
                             self.dialog.queryString(
-                                name='SSH_ACCESS_REMOTE_ENGINE_PORT',
+                                name=(
+                                    'SSH_ACCESS_REMOTE_SERVER_PORT_%s' %
+                                    self._server_tag
+                                ),
                                 note=_(
-                                    'ssh port on remote engine server '
+                                    'ssh port on remote server '
                                     '[@DEFAULT@]: '
                                 ),
                                 prompt=True,
@@ -118,7 +125,7 @@
             connected = False
             interactive = False
             password = self.environment[
-                osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_ROOT_PASSWORD
+                self._keys['root_password']
             ]
             bad_password = False
             while not connected:
@@ -126,9 +133,12 @@
                     if password is None or bad_password:
                         interactive = True
                         password = self.dialog.queryString(
-                            name='SSH_ACCESS_REMOTE_ENGINE_PASSWORD',
+                            name=(
+                                'SSH_ACCESS_REMOTE_SERVER_PASSWORD_%s' %
+                                self._server_tag
+                            ),
                             note=_(
-                                'root password on remote engine server '
+                                'root password on remote server '
                                 '{fqdn}: '
                             ).format(
                                 fqdn=self._fqdn,
@@ -147,18 +157,16 @@
                     # the user that it's ok.
                     client.load_system_host_keys(
                         self.environment[
-                            osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_KNOWN_HOSTS
+                            osetupcons.ConfigEnv.REMOTE_SERVER_HOST_KNOWN_HOSTS
                         ]
                     )
                     client.connect(
                         hostname=self._fqdn,
-                        port=self.environment[
-                            osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_SSH_PORT
-                        ],
+                        port=self.environment[self._keys['ssh_port']],
                         username='root',
                         password=password,
                         key_filename=self.environment[
-                            osetupcons.ConfigEnv.REMOTE_ENGINE_HOST_CLIENT_KEY
+                            osetupcons.ConfigEnv.REMOTE_SERVER_HOST_CLIENT_KEY
                         ],
                     )
                     self._client = client
@@ -184,12 +192,12 @@
             self._ssh_get_port()
             self._ssh_connect()
 
-        def execute_on_engine(self, cmd, timeout=60, text=None):
+        def execute_on_server(self, cmd, timeout=60, text=None):
             # Currently do not allow writing to stdin, only "batch mode"
             # TODO consider something more complex/general, e.g. writing
             # to stdin/reading from stdout interactively
             self.logger.debug(
-                'Executing on remote engine %s: %s' %
+                'Executing on remote server %s: %s' %
                 (
                     self._fqdn,
                     cmd,
@@ -231,9 +239,9 @@
                 'rc': rc,
             }
 
-        def copy_from_engine(self, file_name):
+        def copy_from_server(self, file_name):
             self.logger.debug(
-                'Copying data from remote engine %s:%s' %
+                'Copying data from remote server %s:%s' %
                 (
                     self._fqdn,
                     file_name,
@@ -250,14 +258,14 @@
                     f.close()
             return res
 
-        def copy_to_engine(
+        def copy_to_server(
             self,
             file_name,
             content,
             inp_env_key=None
         ):
             self.logger.debug(
-                'Copying data to remote engine %s:%s' %
+                'Copying data to remote server %s:%s' %
                 (
                     self._fqdn,
                     file_name,
@@ -289,11 +297,9 @@
             osetupcons.CoreEnv.DEVELOPER_MODE
         ]:
             self.environment[
-                osetupcons.ConfigEnv.REMOTE_ENGINE_SETUP_STYLES
+                osetupcons.ConfigEnv.REMOTE_SERVER_SETUP_STYLES
             ].append(
-                self._RootSshManager(
-                    plugin=self,
-                )
+                self._RootSshManager
             )
 
 


-- 
To view, visit http://gerrit.ovirt.org/37702
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I18b6a9ccca1b12cb5903bff480a5f17f00dc318a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yedidyah Bar David <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to