On Thu, Jul 4, 2024 at 9:11 AM Yedidyah Bar David <[email protected]> wrote:

> On Wed, Jun 19, 2024 at 10:38 PM Brent S. <[email protected]> wrote:
>
>> As a quick update to this:
>>
>> # ovirt-aaa-jdbc-tool
>>
>>
>> Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips=false
>>
>>
>>
>> Jun 19, 2024 7:28:14 PM
>> org.ovirt.engine.extension.aaa.jdbc.binding.cli.Cli main
>>
>>
>> SEVERE: Unexpected Exception invoking Cli: Could not read properties
>> from: /etc/ovirt-engine/aaa/internal.properties
>>
>> Which is, of course, the same message in the log.
>>
>> This is probably expected, since *engine-setup never actually created the
>> file*:
>>
>
> Are you sure about this?
>
>
>>
>> # ls -la /etc/ovirt-engine/aaa
>> total 4
>> drwxr-xr-x.  2 root root    6 Jun 19 19:27 .
>> drwxr-xr-x. 18 root root 4096 Jun 19 19:27 ..
>> #
>>
>
> I guess you checked the above only after engine-setup failed/finished,
> right?
>
>
>>
>> And:
>>
>> 2024-06-19 19:27:10,917+0000 DEBUG
>> otopi.plugins.ovirt_engine_setup.ovirt_engine.config.aaajdbc
>> plugin.execute:923 execute-output:
>> ['/usr/share/ovirt-engine-extension-aaa-jdbc/dbscripts/schema.sh', '-s',
>> '[REDACTED_REMOTE_DB_HOST]', '-p', '5432', '-u',
>> '[REDACTED_REMOTE_DB_USER]', '-d', '[REDACTED_REMOTE_DB_NAME]', '-e',
>> 'aaa_jdbc', '-l', '/root/ovirt-engine-setup.log', '-c', 'apply'] stderr:
>>
>>
>> 2024-06-19 19:27:10,917+0000 DEBUG otopi.transaction
>> transaction._prepare:61 preparing 'File transaction for
>> '/etc/ovirt-engine/aaa/internal.properties''
>> 2024-06-19 19:27:10,917+0000 DEBUG otopi.filetransaction
>> filetransaction.prepare:184 file
>> '/etc/ovirt-engine/aaa/internal.properties' missing
>>
>
> Indeed
>
>
>> 2024-06-19 19:27:10,920+0000 DEBUG otopi.transaction
>> transaction._prepare:61 preparing 'File transaction for
>> '/etc/ovirt-engine/extensions.d/internal-authn.properties''
>> 2024-06-19 19:27:10,920+0000 DEBUG otopi.filetransaction
>> filetransaction.prepare:184 file
>> '/etc/ovirt-engine/extensions.d/internal-authn.properties' missing
>> 2024-06-19 19:27:10,921+0000 DEBUG otopi.transaction
>> transaction._prepare:61 preparing 'File transaction for
>> '/etc/ovirt-engine/extensions.d/internal-authz.properties''
>> 2024-06-19 19:27:10,921+0000 DEBUG otopi.filetransaction
>> filetransaction.prepare:184 file
>> '/etc/ovirt-engine/extensions.d/internal-authz.properties' missing
>> 2024-06-19 19:27:10,921+0000 DEBUG
>> otopi.plugins.ovirt_engine_setup.ovirt_engine.config.aaajdbc
>> plugin.executeRaw:808 execute: ('/usr/bin/ovirt-aaa-jdbc-tool',
>> (...)
>>
>> Is this because I'm using remote databases for the DWH? I was under the
>> impression this was supported, especially given that engine-setup prompts
>> for the host and it is documented.
>>
>
> I don't think that's related.
>
> If you grep ovirt-engine sources, you'll find internal.properties in:
>
> packaging/setup/ovirt_engine_setup/engine/constants.py:
>
>     AAA_JDBC_CONFIG_DB = os.path.join(
>         OVIRT_ENGINE_SYSCONFDIR,
>         'aaa',
>         'internal.properties'
>     )
>
> If you then grep for AAA_JDBC_CONFIG_DB, you see it in:
>
> packaging/setup/plugins/ovirt-engine-setup/ovirt-engine/config/aaajdbc.py:
>
>     def _setupAuth(self):
>         self.environment[otopicons.CoreEnv.MAIN_TRANSACTION].append(
>             filetransaction.FileTransaction(
>                 name=oenginecons.FileLocations.AAA_JDBC_CONFIG_DB,
> ...
>                 visibleButUnsafe=True,
>

Forgot to mention: You can check otopi sources:src/otopi/filetransaction.py
to see what this means.


> ...
>     def _setupAdminUser(self):
>         toolArgs = (
>             oenginecons.FileLocations.AAA_JDBC_TOOL,
>             '--db-config=%s' %
> oenginecons.FileLocations.AAA_JDBC_CONFIG_DB,
>         )
> ...
>     @plugin.event(
>         stage=plugin.Stages.STAGE_MISC,
>         name=AAA_JDBC_SETUP_ADMIN_USER,
>         after=(
>             oengcommcons.Stages.DB_SCHEMA,
>             oengcommcons.Stages.DB_CONNECTION_AVAILABLE,
>             oenginecons.Stages.CONFIG_EXTENSIONS_UPGRADE,
>         ),
>         before=(
>             oenginecons.Stages.CONFIG_AAA_ADMIN_USER_SETUP,
>         ),
>         condition=lambda self: self.environment[
>             oenginecons.ConfigEnv.ADMIN_USER_AUTHZ_TYPE
>         ] == self.AAA_JDBC_AUTHZ_TYPE,
>     )
>     def _misc(self):
>         # TODO: if we knew that aaa-jdbc package was upgraded by
> engine-setup
>         # TODO: we could display summary note that custom profiles have to
> be
>         # TODO: upgraded manually
>         self._setupSchema()
>         self._setupAuth()
>         self._setupAdminUser()
> ...
>
> This means that:
> At STAGE_MISC, _misc calls _setupAuth, which creates this file, and then
> it calls
> _setupAdminUser which tries to use it. Latter fails, and engine-setup
> rolls back
> the MAIN_TRANSACTION, including removing the file.
>
> I'd start debugging this issue by:
> 1. Patching _setupAuth to wait (e.g. using dialog.queryBoolean, search the
> source
> for examples) after it creates the file, so that I can investigate it
> 2. Patching _setupAdminUser to wait after it runs the tool, so that I can
> try to
> investigate the failure - e.g. run it myself under strace, if the existing
> logging
> is not enough.
>
> You can try using the otopi plugin wait_on_error for this, instead of
> patching.
>
> Good luck and best regards,
> --
> Didi
>


-- 
Didi
_______________________________________________
Users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Privacy Statement: https://www.ovirt.org/privacy-policy.html
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/[email protected]/message/RXADNULFUFJS2LXEWWQJKSYJ2OE6AZY5/

Reply via email to