Yaniv Dary has uploaded a new change for review.

Change subject: packaging: setup: config engine to access reports
......................................................................

packaging: setup: config engine to access reports

Instead of updating vdc_options as was done before, write a conf file on
the engine side that will let the engine access reports.

Moved writing reports.conf to jasper deploy.

Requires http://gerrit.ovirt.org/33023 .

Bug-Url: https://bugzilla.redhat.com/1144079
Change-Id: I4b7ea55fc0c8204a88edf39c055c2bb2d53d6dde
Signed-off-by: Yedidyah Bar David <[email protected]>
(cherry picked from commit cc9b3e85982b903a8636a10e8f676c4d391cf855)
---
M packaging/setup/ovirt_engine_setup/reports/constants.py
M 
packaging/setup/plugins/ovirt-engine-common/ovirt-engine-reports/db/connection.py
M 
packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/config/engine.py
M 
packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/db/connection.py
M 
packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/jasper/deploy.py
5 files changed, 69 insertions(+), 208 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-reports refs/changes/38/33238/1

diff --git a/packaging/setup/ovirt_engine_setup/reports/constants.py 
b/packaging/setup/ovirt_engine_setup/reports/constants.py
index e113838..2c7969a 100644
--- a/packaging/setup/ovirt_engine_setup/reports/constants.py
+++ b/packaging/setup/ovirt_engine_setup/reports/constants.py
@@ -105,34 +105,6 @@
             'database': DWHDefaults.DEFAULT_DB_DATABASE,
         }
 
-    @classproperty
-    def ENGINE_DB_ENV_KEYS(self):
-        return {
-            'host': EngineDBEnv.HOST,
-            'port': EngineDBEnv.PORT,
-            'secured': EngineDBEnv.SECURED,
-            'hostValidation': EngineDBEnv.SECURED_HOST_VALIDATION,
-            'user': EngineDBEnv.USER,
-            'password': EngineDBEnv.PASSWORD,
-            'database': EngineDBEnv.DATABASE,
-            'connection': EngineDBEnv.CONNECTION,
-            'pgpassfile': EngineDBEnv.PGPASS_FILE,
-            'newDatabase': EngineDBEnv.NEW_DATABASE,
-        }
-
-    @classproperty
-    def DEFAULT_ENGINE_DB_ENV_KEYS(self):
-        return {
-            'host': EngineDefaults.DEFAULT_DB_HOST,
-            'port': EngineDefaults.DEFAULT_DB_PORT,
-            'secured': EngineDefaults.DEFAULT_DB_SECURED,
-            'hostValidation':
-            EngineDefaults.DEFAULT_DB_SECURED_HOST_VALIDATION,
-            'user': EngineDefaults.DEFAULT_DB_USER,
-            'password': EngineDefaults.DEFAULT_DB_PASSWORD,
-            'database': EngineDefaults.DEFAULT_DB_DATABASE,
-        }
-
 
 @util.export
 @util.codegen
@@ -161,18 +133,6 @@
     DEFAULT_DB_PORT = 5432
     DEFAULT_DB_DATABASE = 'ovirt_engine_history'
     DEFAULT_DB_USER = 'ovirt_engine_history'
-    DEFAULT_DB_PASSWORD = ''
-    DEFAULT_DB_SECURED = False
-    DEFAULT_DB_SECURED_HOST_VALIDATION = False
-
-
[email protected]
[email protected]
-class EngineDefaults(object):
-    DEFAULT_DB_HOST = ''
-    DEFAULT_DB_PORT = 5432
-    DEFAULT_DB_DATABASE = 'engine'
-    DEFAULT_DB_USER = 'engine'
     DEFAULT_DB_PASSWORD = ''
     DEFAULT_DB_SECURED = False
     DEFAULT_DB_SECURED_HOST_VALIDATION = False
@@ -616,72 +576,6 @@
 @util.export
 @util.codegen
 @osetupattrsclass
-class EngineDBEnv(object):
-    """Sync with ovirt-engine"""
-
-    @osetupattrs(
-        answerfile=True,
-        summary=True,
-        description=_('Engine database host'),
-    )
-    def HOST(self):
-        return 'OVESETUP_DB/host'
-
-    @osetupattrs(
-        answerfile=True,
-        summary=True,
-        description=_('Engine database port'),
-    )
-    def PORT(self):
-        return 'OVESETUP_DB/port'
-
-    @osetupattrs(
-        answerfile=True,
-        summary=True,
-        description=_('Engine database secured connection'),
-    )
-    def SECURED(self):
-        return 'OVESETUP_DB/secured'
-
-    @osetupattrs(
-        answerfile=True,
-        summary=True,
-        description=_('Engine database host name validation'),
-    )
-    def SECURED_HOST_VALIDATION(self):
-        return 'OVESETUP_DB/securedHostValidation'
-
-    @osetupattrs(
-        answerfile=True,
-        summary=True,
-        description=_('Engine database name'),
-    )
-    def DATABASE(self):
-        return 'OVESETUP_DB/database'
-
-    @osetupattrs(
-        answerfile=True,
-        summary=True,
-        description=_('Engine database user name'),
-    )
-    def USER(self):
-        return 'OVESETUP_DB/user'
-
-    @osetupattrs(
-        answerfile=True,
-    )
-    def PASSWORD(self):
-        return 'OVESETUP_DB/password'
-
-    CONNECTION = 'OVESETUP_DB/connection'
-    STATEMENT = 'OVESETUP_DB/statement'
-    PGPASS_FILE = 'OVESETUP_DB/pgPassFile'
-    NEW_DATABASE = 'OVESETUP_DB/newDatabase'
-
-
[email protected]
[email protected]
-@osetupattrsclass
 class EngineCoreEnv(object):
     """Sync with ovirt-engine"""
 
@@ -690,6 +584,22 @@
 
 @util.export
 @util.codegen
+class EngineFileLocations(object):
+    """Sync with ovirt-engine"""
+
+    OVIRT_ENGINE_SERVICE_CONFIGD = os.path.join(
+        FileLocations.SYSCONFDIR,
+        'ovirt-engine',
+        'engine.conf.d'
+    )
+    OVIRT_ENGINE_SERVICE_CONFIG_REPORTS = os.path.join(
+        OVIRT_ENGINE_SERVICE_CONFIGD,
+        '10-setup-reports-access.conf'
+    )
+
+
[email protected]
[email protected]
 @osetupattrsclass
 class EngineConfigEnv(object):
     """Sync with ovirt-engine"""
diff --git 
a/packaging/setup/plugins/ovirt-engine-common/ovirt-engine-reports/db/connection.py
 
b/packaging/setup/plugins/ovirt-engine-common/ovirt-engine-reports/db/connection.py
index d9e74fe..01130bc 100644
--- 
a/packaging/setup/plugins/ovirt-engine-common/ovirt-engine-reports/db/connection.py
+++ 
b/packaging/setup/plugins/ovirt-engine-common/ovirt-engine-reports/db/connection.py
@@ -57,11 +57,6 @@
         ].append(
             oreportscons.DWHDBEnv.PASSWORD
         )
-        self.environment[
-            otopicons.CoreEnv.LOG_FILTER_KEYS
-        ].append(
-            oreportscons.EngineDBEnv.PASSWORD
-        )
 
     @plugin.event(
         stage=plugin.Stages.STAGE_INIT,
@@ -99,39 +94,6 @@
         self.environment[oreportscons.DBEnv.CONNECTION] = None
         self.environment[oreportscons.DBEnv.STATEMENT] = None
         self.environment[oreportscons.DBEnv.NEW_DATABASE] = True
-
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.HOST,
-            None
-        )
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.PORT,
-            None
-        )
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.SECURED,
-            None
-        )
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.SECURED_HOST_VALIDATION,
-            None
-        )
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.USER,
-            None
-        )
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.PASSWORD,
-            None
-        )
-        self.environment.setdefault(
-            oreportscons.EngineDBEnv.DATABASE,
-            None
-        )
-
-        self.environment[oreportscons.EngineDBEnv.CONNECTION] = None
-        self.environment[oreportscons.EngineDBEnv.STATEMENT] = None
-        self.environment[oreportscons.EngineDBEnv.NEW_DATABASE] = True
 
         self.environment.setdefault(
             oreportscons.DWHDBEnv.HOST,
diff --git 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/config/engine.py
 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/config/engine.py
index 148cd89..203b613 100644
--- 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/config/engine.py
+++ 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/config/engine.py
@@ -28,7 +28,7 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
-from ovirt_engine_setup.engine_common import database
+from ovirt_engine_setup import remote_engine
 from ovirt_engine_setup.reports import constants as oreportscons
 from ovirt_engine_setup.engine_common \
     import constants as oengcommcons
@@ -41,65 +41,54 @@
         super(Plugin, self).__init__(context=context)
 
     @plugin.event(
-        stage=plugin.Stages.STAGE_MISC,
+        stage=plugin.Stages.STAGE_CUSTOMIZATION,
         condition=lambda self: self.environment[oreportscons.CoreEnv.ENABLE],
         after=(
-            oengcommcons.Stages.DB_CONNECTION_AVAILABLE,
-            oreportscons.Stages.JASPER_NAME_SET,
+            oreportscons.Stages.CORE_ENABLE,
+            oreportscons.Stages.ENGINE_CORE_ENABLE,
         ),
     )
-    def misc(self):
-        uninstall_files = []
-        self.environment[
-            osetupcons.CoreEnv.REGISTER_UNINSTALL_GROUPS
-        ].addFiles(
-            group='ovirt_reports_files',
-            fileList=uninstall_files,
+    def _customization(self):
+        reports_conf_content = (
+            'ENGINE_REPORTS_BASE_URL='
+                'https://{fqdn}/ovirt-engine-reports\n'
+            'ENGINE_REPORTS_DASHBOARD_URL='
+                '${{ENGINE_REPORTS_BASE_URL}}'
+                '/flow.html?_flowId=viewReportFlow\n'
+            'ENGINE_REPORTS_PROXY_URL='
+                '${{ENGINE_REPORTS_BASE_URL}}/ovirt/reports-interface\n'
+            'ENGINE_REPORTS_VERIFY_HOST=true\n'
+            'ENGINE_REPORTS_VERIFY_CHAIN=true\n'
+            'ENGINE_REPORTS_READ_TIMEOUT=\n'
+        ).format(
+            fqdn=self.environment[osetupcons.ConfigEnv.FQDN],
         )
-        with open(
-            oreportscons.FileLocations.OVIRT_ENGINE_REPORTS_UI,
-            "r",
-        ) as content:
+
+        if self.environment[oreportscons.EngineCoreEnv.ENABLE]:
             self.environment[otopicons.CoreEnv.MAIN_TRANSACTION].append(
                 filetransaction.FileTransaction(
-                    name=os.path.join(
-                        (
-                            oreportscons.FileLocations.
-                            OVIRT_ENGINE_REPORTS_JASPER_WAR
-                        ),
-                        'reports.xml',
-                    ),
-                    content=content.read(),
-                    modifiedList=uninstall_files,
+                    name=oreportscons.EngineFileLocations.
+                        OVIRT_ENGINE_SERVICE_CONFIG_REPORTS,
+                    content=reports_conf_content,
+                    modifiedList=self.environment[
+                        otopicons.CoreEnv.MODIFIED_FILES
+                    ],
                 )
             )
-
-        statement = database.Statement(
-            dbenvkeys=oreportscons.Const.ENGINE_DB_ENV_KEYS,
-            environment=self.environment,
-        )
-
-        statement.execute(
-            statement="""
-                update vdc_options
-                set
-                    option_value=%(value)s
-                where
-                    option_name=%(name)s and
-                    version=%(version)s
-            """,
-            args=dict(
-                name='RedirectServletReportsPage',
-                value='https://{fqdn}:{port}/ovirt-engine-reports'.format(
-                    fqdn=self.environment[osetupcons.ConfigEnv.FQDN],
-                    port=self.environment[
-                        oreportscons.ConfigEnv.PUBLIC_HTTPS_PORT
-                    ],
-                ),
-                version='general',
-            ),
-            ownConnection=True,
-        )
+        else:
+            self._remote_engine = self.environment[
+                osetupcons.CoreEnv.REMOTE_ENGINE
+            ]
+            self._remote_engine.configure(
+                fqdn=self.environment[
+                    oreportscons.EngineConfigEnv.ENGINE_FQDN
+                ],
+            )
+            self._remote_engine.copy_to_engine(
+                file_name=oreportscons.EngineFileLocations.
+                    OVIRT_ENGINE_SERVICE_CONFIG_REPORTS,
+                content=reports_conf_content,
+            )
 
     @plugin.event(
         stage=plugin.Stages.STAGE_CLOSEUP,
@@ -120,9 +109,11 @@
         ),
     )
     def _closeup(self):
-        self.dialog.note(
+        self._remote_engine.execute_on_engine(
+            cmd='service ovirt-engine restart',
+            timeout=120,
             text=_(
-                'To update the Reports link on the main web interface page, '
+                'To update the connections to Reports on the engine, '
                 'please restart the engine service, '
                 'by running the following command on the engine host:\n'
                 '# service ovirt-engine restart'
diff --git 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/db/connection.py
 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/db/connection.py
index 3182029..becb2ed 100644
--- 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/db/connection.py
+++ 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/db/connection.py
@@ -111,17 +111,7 @@
             oengcommcons.Stages.DB_OWNERS_CONNECTIONS_CUSTOMIZED,
         ),
     )
-    def _engine_and_dwh_customization(self):
-        database.OvirtUtils(
-            plugin=self,
-            dbenvkeys=oreportscons.Const.ENGINE_DB_ENV_KEYS,
-        ).getCredentials(
-            name='Engine',
-            queryprefix='OVESETUP_ENGINE_DB_',
-            defaultdbenvkeys=oreportscons.Const.DEFAULT_ENGINE_DB_ENV_KEYS,
-            show_create_msg=False,
-        )
-
+    def _dwh_customization(self):
         database.OvirtUtils(
             plugin=self,
             dbenvkeys=oreportscons.Const.DWH_DB_ENV_KEYS,
diff --git 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/jasper/deploy.py
 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/jasper/deploy.py
index 9853039..91871f5 100644
--- 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/jasper/deploy.py
+++ 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-reports/jasper/deploy.py
@@ -712,6 +712,14 @@
         ):
             os.unlink(f)
 
+        shutil.copyfile(
+            oreportscons.FileLocations.OVIRT_ENGINE_REPORTS_UI,
+            os.path.join(
+                oreportscons.FileLocations.OVIRT_ENGINE_REPORTS_JASPER_WAR,
+                'reports.xml',
+            )
+        )
+
     @plugin.event(
         stage=plugin.Stages.STAGE_MISC,
         name=oreportscons.Stages.JASPER_DEPLOY_IMPORT,


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

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

Reply via email to