oVirt/ovirt-engine

Setting UserSessionTimeOutInterval Fails - oVirt Node 4.5.4

IOMadness opened this issue · 4 comments

Affected version
oVirt Node 4.5.4

IMPORTANT!: oVirt prior to 4.5 reached end of life.
If you have an issue on an older version please
upgrade to latest stable release before opening an issue.

  • oVirt Engine: ovirt-engine-4.5.4-1.el8.src.rpm
  • Host OS Variant: oVirt Node 4.5.4
  • VDSM version: vdsm-4.50.3.4-1.el9.src.rpm
  • Additional relevant package versions: n/a

Describe the bug

When attempting to set the UserSessionTimeOutInterval on the hosted engine, it returns an error message and does not update the setting:
[root@server ~]# engine-config -s UserSessionTimeOutInterval=120
Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips=false
Cannot set value 120 to key UserSessionTimeOutInterval.

To reproduce

  1. SSH into the hosted engine as root
  2. Run the following (value to option is arbitrary that i've found): engine-config -s UserSessionTimeOutInterval=120
  3. Error is returned and setting is not updated

Expected behavior

I would expect to run the above command and have the UserSessionTimeOutInterval updated accordingly.

Screenshots

n/a

Additional context

n/a

From what i checked it seems that for some reason negative value -1 is causing this issue

 public void safeSetValue(String value) throws InvalidParameterException, Exception {
        ValidationResult validationResult = valueHelper.validate(this, value);
        if (!validationResult.isOk()) {
            StringBuilder invalidParamMsg = new StringBuilder();
            invalidParamMsg.append("Cannot set value ")
            .append(value)
            .append(" to key ")
            .append(keyName)
            .append(". ")
            .append(StringUtils.isNotEmpty(validationResult.getDetails()) ? validationResult.getDetails() : "");
            throw new InvalidParameterException(invalidParamMsg.toString());
        }
        this.value = valueHelper.setValue(value);
    }

If I edit the properties file bellow and remove -1 value

vim /etc/ovirt-engine/engine-config/engine-config.properties

UserSessionTimeOutInterval.type=Integer
UserSessionTimeOutInterval.validValues=1..100000

And then try to set value

engine-config --set UserSessionTimeOutInterval=180

Then it works

engine-config --set UserSessionTimeOutInterval=180
Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips=false

I've tested this and it appears to have done the trick! Thank you and I appreciate it!

@IOMadness please just note that UserSessionTimeOutInterval=-1 indicates that user sessions for both Admin and VM portals never expire, so by removing it as a valid value, you'll lose that option.

@sgratch Thanks, we can work with that limitation for the time being. It looks like someone has actually corrected this issue in one of the nightly builds (https://lists.ovirt.org/archives/list/users@ovirt.org/thread/OPH7BHGBGWMECQKRXY6GW3YGZR73JK2D/), however, from a production point of view, we'd rather not have to rely on the nightly builds in order to get around this issue.

Hopefully someday another major version update will be released...