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
