Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Latest

## 2026.1.22.0

- fix: base/dsc.py - add missing parameters for Docker DSC config (#468)

## 2026.1.19.0

- fix: base/remote_syslog/forwarder.py - bugfix for v11.0.2
Expand Down
20 changes: 19 additions & 1 deletion ibmsecurity/isam/base/dsc.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ def get(isamAppliance, check_mode=False, force=False):

def set(isamAppliance, service_port=443, replication_port=444, worker_threads=64, max_session_lifetime=3600,
max_session_list=None,
client_grace=600, servers=[], check_mode=False, force=False):
client_grace=600, servers=[],
connection_idle_timeout=None,
trace_level=None,
ssl_ciphers=None,
check_mode=False, force=False):
"""
Update the current distributed session cache policy
"""
Expand All @@ -34,6 +38,12 @@ def set(isamAppliance, service_port=443, replication_port=444, worker_threads=64
"servers": servers
}

# connection_idle_timeout
if connection_idle_timeout is not None:
dsc_json["connection_idle_timeout"] = connection_idle_timeout
# trace_level
if trace_level is not None:
dsc_json["trace_level"] = trace_level
# max_session_list
if max_session_list is not None:
if ibmsecurity.utilities.tools.version_compare(isamAppliance.facts['version'], "11.0.2.0") < 0:
Expand All @@ -42,6 +52,14 @@ def set(isamAppliance, service_port=443, replication_port=444, worker_threads=64
else:
# The default limit for a session query is 1024
dsc_json["max_session_list"] = max_session_list
# ssl_ciphers
if ssl_ciphers is not None:
if ibmsecurity.utilities.tools.version_compare(isamAppliance.facts['version'], "11.0.2.0") < 0:
warnings.append(
f"Appliance at version: {isamAppliance.facts['version']}, ssl_ciphers: {ssl_ciphers} is not supported. Needs 11.0.2.0 or higher. Ignoring ssl_ciphers for this call.")
else:
# Comma separated list
dsc_json["ssl_ciphers"] = ssl_ciphers

obj = _check(isamAppliance, dsc_json)
if force or not obj['value']:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "ibmsecurity"
version = "2026.1.19.0"
version = "2026.1.22.0"
authors = [
{ name="IBM", email="secorch@wwpdl.vnet.ibm.com" },
]
Expand Down
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
packages=find_packages(exclude=["test.*","test"]),
# Date of release used for version - please be sure to use YYYY.MM.DD.seq#, MM and DD should be two digits e.g. 2017.02.05.0
# seq# will be zero unless there are multiple release on a given day - then increment by one for additional release for that date
version="2026.1.19.0",
version="2026.1.22.0",
description="Idempotent functions for IBM Verify Appliance REST APIs",
author="IBM",
author_email="secorch@wwpdl.vnet.ibm.com",
Expand All @@ -18,6 +18,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Development Status :: 5 - Production/Stable",
Expand Down
56 changes: 56 additions & 0 deletions test/test_0_docker_7_dsc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import logging

import ibmsecurity.isam.base.dsc
import ibmsecurity.isam.appliance

import pytest


def getTestData():
testdata = [
{
"worker_threads": 64,
"max_session_lifetime": 3600,
"client_grace": 600,
"connection_idle_timeout": 10,
"service_port": 443,
"replication_port": 444,
"servers": [
{
"ip": "10.0.0.1",
"service_port": 6443,
"replication_port": 6444
},
{
"ip": "10.0.0.1",
"service_port": 7443,
"replication_port": 7444
},
]
}
]
return testdata


@pytest.mark.parametrize("items", getTestData())
def test_set_dsc_configuration(iviaServer, caplog, items) -> None:
"""Set admin ssh keys"""
caplog.set_level(logging.DEBUG)
# items is a key-value pair
logging.log(logging.INFO, items)
arg = {}
for k, v in items.items():
#if k == 'name':
# name = v
# continue
#if k == 'key':
# key = v
# continue
arg[k] = v

returnValue = ibmsecurity.isam.base.dsc.set(iviaServer, **arg)

logging.log(logging.INFO, returnValue)

if returnValue is not None:
assert not returnValue.failed()