Triggered by Gerrit: https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/3037 Obtained pipelines/main.groovy from git https://github.com/opensdn-io/tf-jenkins.git [Pipeline] Start of Pipeline [Pipeline] timestamps [Pipeline] { [Pipeline] timeout [2026-08-14T11:58:26.148Z] Timeout set to expire in 8 hr 0 min [Pipeline] { [Pipeline] node [2026-08-14T11:58:26.187Z] Running on slave-openstack-gz1_1 in /home/jenkins/workspace/pipeline-post-merge [Pipeline] { [Pipeline] stage [Pipeline] { (init) [Pipeline] cleanWs [2026-08-14T11:58:26.259Z] [WS-CLEANUP] Deleting project workspace... [2026-08-14T11:58:26.259Z] [WS-CLEANUP] Deferred wipeout is disabled by the job configuration... [2026-08-14T11:58:26.347Z] [WS-CLEANUP] done [Pipeline] checkout [2026-08-14T11:58:26.371Z] The recommended git tool is: git [2026-08-14T11:58:26.375Z] No credentials specified [2026-08-14T11:58:26.377Z] Cloning the remote Git repository [2026-08-14T11:58:26.380Z] Cloning repository https://github.com/opensdn-io/tf-jenkins.git [2026-08-14T11:58:26.380Z] > git init /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins # timeout=10 [2026-08-14T11:58:26.384Z] Fetching upstream changes from https://github.com/opensdn-io/tf-jenkins.git [2026-08-14T11:58:26.384Z] > git --version # timeout=10 [2026-08-14T11:58:26.386Z] > git --version # 'git version 2.25.1' [2026-08-14T11:58:26.386Z] > git fetch --tags --force --progress -- https://github.com/opensdn-io/tf-jenkins.git +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-08-14T11:58:27.963Z] Avoid second fetch [2026-08-14T11:58:27.967Z] Checking out Revision 9c86492d4a22712d2c3b4ab27040cd93556012b4 (refs/remotes/origin/master) [2026-08-14T11:58:28.012Z] Commit message: "Merge "install cloud-init from site mirror"" [2026-08-14T11:58:27.955Z] > git config remote.origin.url https://github.com/opensdn-io/tf-jenkins.git # timeout=10 [2026-08-14T11:58:27.958Z] > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-08-14T11:58:27.964Z] > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 [2026-08-14T11:58:27.968Z] > git config core.sparsecheckout # timeout=10 [2026-08-14T11:58:27.970Z] > git checkout -f 9c86492d4a22712d2c3b4ab27040cd93556012b4 # timeout=10 [2026-08-14T11:58:28.013Z] > git rev-list --no-walk 9c86492d4a22712d2c3b4ab27040cd93556012b4 # timeout=10 [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/gerrit.groovy) [Pipeline] } [Pipeline] // load [Pipeline] echo [2026-08-14T11:58:28.416Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-14T11:58:28.715Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/resolve_patchsets.py --gerrit https://gerrit.opensdn.io/ --review I3039c31159379ac7e65b9b487f8d159b3a617eb9 --branch master --changed_files --output /home/jenkins/workspace/pipeline-post-merge/patchsets-info.json [Pipeline] archiveArtifacts [2026-08-14T11:58:29.009Z] Archiving artifacts [Pipeline] sh [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/gerrit.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/constants.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/config.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/jobs.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/gate.groovy) [Pipeline] } [Pipeline] // load [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Pre-build) [Pipeline] echo [2026-08-14T11:58:30.253Z] Logs URL: http://nexus.gz1.opensdn.io:8082/jenkins_logs/gerrit/37/3037/1/post-merge_939 [Pipeline] echo [2026-08-14T11:58:30.276Z] terminate_runs_by_review_number: start [Pipeline] echo [2026-08-14T11:58:32.795Z] terminate_runs_by_review_number: terminated builds = [] [Pipeline] sh [Pipeline] echo [2026-08-14T11:58:33.212Z] Pipeline to run: post-merge [Pipeline] sh [Pipeline] sh [Pipeline] archiveArtifacts [2026-08-14T11:58:33.896Z] Archiving artifacts [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] echo [2026-08-14T11:58:34.646Z] WARNING: project opensdn-io/tf-controller doesn't define pipeline post-merge [Pipeline] echo [2026-08-14T11:58:34.660Z] Streams from config: [:] [Pipeline] echo [2026-08-14T11:58:34.675Z] Jobs from config: [:] [Pipeline] echo [2026-08-14T11:58:34.689Z] Post Jobs from config: [:] [Pipeline] echo [2026-08-14T11:58:34.714Z] Notify gerrit verified=null, submit=false, msg= [2026-08-14T11:58:34.715Z] TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/939/ [Pipeline] withCredentials [2026-08-14T11:58:34.735Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-08-14T11:58:34.783Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-14T11:58:35.069Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/notify.py --gerrit https://gerrit.opensdn.io/ --user tf-gerrit --password **** --review I3039c31159379ac7e65b9b487f8d159b3a617eb9 --patchset 1 --branch master --message 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/939/' [2026-08-14T11:58:35.070Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I3039c31159379ac7e65b9b487f8d159b3a617eb9', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'topic': 'db-manage-repair', 'attention_set': {}, 'removed_from_attention_set': {'1000021': {'account': {'_account_id': 1000021}, 'last_update': '2026-08-14 11:58:08.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I3039c31159379ac7e65b9b487f8d159b3a617eb9', 'subject': 'db_manage: clean_stale_fq_names removes nothing', 'status': 'MERGED', 'created': '2026-08-06 08:14:33.000000000', 'updated': '2026-08-14 11:58:08.000000000', 'submitted': '2026-08-14 11:58:08.000000000', 'submitter': {'_account_id': 1000001}, 'insertions': 27, 'deletions': 1, 'total_comment_count': 4, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '3037-db-manage-repair', 'meta_rev_id': '205c65d9b3a430255870d7c8df5e00798560f081', '_number': 3037, 'owner': {'_account_id': 1000021}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-08-14 05:48:37.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000003}, {'value': 0, '_account_id': 1000001}], 'values': {'-2': 'This shall not be submitted', '-1': 'I would prefer this is not submitted as is', ' 0': 'No score', '+1': 'Looks good to me, but someone else must approve', '+2': 'Looks good to me, approved'}, 'description': '', 'default_value': 0}, 'Verified': {'all': [{'value': 0, '_account_id': 1000003}, {'value': 2, 'date': '2026-08-14 11:57:56.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000001}], 'values': {'-2': 'Fails', '-1': 'Fails', ' 0': 'No score', '+1': 'Verified', '+2': 'Gating'}, 'description': '', 'default_value': 0}}, 'permitted_labels': {'Code-Review': [' 0', '+1', '+2'], 'Verified': ['+2']}, 'removable_labels': {}, 'removable_reviewers': [{'_account_id': 1000002}], 'reviewers': {'CC': [{'_account_id': 1000002}], 'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': 'b81cb0789484cd10cc0e4050cbb25e2fd8517de0', 'revisions': {'b81cb0789484cd10cc0e4050cbb25e2fd8517de0': {'kind': 'REWORK', '_number': 1, 'created': '2026-08-06 08:14:33.000000000', 'uploader': {'_account_id': 1000021}, 'ref': 'refs/changes/37/3037/1', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/37/3037/1'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/37/3037/1'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/37/3037/1'}}, 'commit': {'parents': [{'commit': '9112407ed0a26aaec3ee49b7513d267bf7e93597', 'subject': 'Switching to oneTBB: old includes removal'}], 'author': {'name': 'Charnsilp Chinprasert(Nipa)', 'email': 'justice.form@gmail.com', 'date': '2026-08-06 08:11:33.000000000', 'tz': 420}, 'committer': {'name': 'Charnsilp Chinprasert(Nipa)', 'email': 'justice.form@gmail.com', 'date': '2026-08-06 08:11:33.000000000', 'tz': 420}, 'subject': 'db_manage: clean_stale_fq_names removes nothing', 'message': 'db_manage: clean_stale_fq_names removes nothing\n\nclean_stale_fq_names() removes nothing. It runs to completion, reports\nsuccess, and every stale entry is still there afterwards.\n\nIt takes the type names it needs from the wrong column family:\n\n iterator = self._cassandra_driver.get_range(\n "obj_uuid_table", column_count=1)\n for obj_type, _ in iterator:\n for fq_name_str_uuid, _ in self._cassandra_driver.xget(\n \'obj_fq_name_table\', obj_type):\n\nobj_fq_name_table is keyed by object type - virtual_network,\nsecurity_group and so on. obj_uuid_table is keyed by object uuid. So\nobj_type here holds a uuid, the xget looks for a partition of\nobj_fq_name_table under that uuid, no such partition exists, the inner\nloop never runs, and stale_cols stays empty for every one of the tens\nof thousands of uuids it walks.\n\nThe two checkers that pair with this cleaner get it right -\ncheck_fq_name_uuid_match and check_duplicate_fq_name both iterate\nget_range(\'obj_fq_name_table\', column_count=1). The debug line\nimmediately above the broken call also says "Reading all objects from\nobj_fq_name_table" while the code reads obj_uuid_table.\n\nres_type does not rescue it. main() dispatches cleaners with\ngetattr(db_cleaner, verb)() and no argument, and no command-line option\nfeeds res_type, so from the CLI it is always None and the broken branch\nis the only one that ever runs.\n\nThe effect is that a checker can report stale fq_name index entries -\nan operator sees a real number - and the cleaner offered to fix them\nsilently does nothing. On the cluster this was found on that is 546\nentries, 301 virtual-network and 245 security-group names reserved with\nno object behind them, so those names cannot be reused.\n\nPoint the iterator at obj_fq_name_table, matching the checkers, the\ndocstring and the debug line.\n\nThe test asserts the entry is gone rather than that the command exited\ncleanly, because exiting cleanly is exactly what it did while doing\nnothing. Verified to fail without the fix:\n\n MismatchError: OrderedDict([...]) matches Contains(\n \'default-domain:default-project:...-vn-0:95a6fe94-...\'):\n stale fq_name index entry was not removed\n\nTested: tox -e pep8 passes; tox -e py39 -- test_db_audit gives 41 passed,\n1 skipped, 0 failed, against a baseline of 40 passed and 1 skipped - the\none extra is this test.\n\nChange-Id: I3039c31159379ac7e65b9b487f8d159b3a617eb9\nSigned-off-by: Charnsilp Chinprasert(Nipa) \n'}}}, 'requirements': [], 'submit_records': [{'rule_name': 'gerrit~DefaultSubmitRule', 'status': 'CLOSED', 'labels': [{'label': 'Code-Review', 'status': 'OK', 'applied_by': {'_account_id': 1000003}}, {'label': 'Verified', 'status': 'OK', 'applied_by': {'_account_id': 1000001}}]}]} [2026-08-14T11:58:35.070Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/939/'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo [2026-08-14T11:58:35.382Z] Notify discord for new job is started [Pipeline] echo [2026-08-14T11:58:35.485Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] echo [2026-08-14T11:58:35.509Z] Notify discord msg= [2026-08-14T11:58:35.509Z] The review was merged. [2026-08-14T11:58:35.509Z] [db_manage: clean_stale_fq_names removes nothing](https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/3037) [Pipeline] withCredentials [2026-08-14T11:58:35.532Z] Masking supported pattern matches of $DISCORD_WEBHOOK_URL [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-08-14T11:58:35.871Z] % Total % Received % Xferd Average Speed Time Time Time Current [2026-08-14T11:58:35.871Z] Dload Upload Total Spent Left Speed [2026-08-14T11:58:35.871Z] [2026-08-14T11:58:36.127Z] 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 [2026-08-14T11:58:36.127Z] 100 181 0 0 100 181 0 866 --:--:-- --:--:-- --:--:-- 861 [2026-08-14T11:58:36.127Z] 100 181 0 0 100 181 0 410 --:--:-- --:--:-- --:--:-- 409 [Pipeline] } [Pipeline] // withCredentials [Pipeline] } [Pipeline] // stage [Pipeline] echo [2026-08-14T11:58:36.264Z] Jobs results: [:] [Pipeline] stage [Pipeline] { (gerrit vote) [Pipeline] echo [2026-08-14T11:58:36.315Z] Notify gerrit verified=null, submit=false, msg= [2026-08-14T11:58:36.315Z] TF CI Build Succeeded (post-merge) in 0h 0m 6s [2026-08-14T11:58:36.315Z] [2026-08-14T11:58:36.315Z] Succeeded checks: [Pipeline] withCredentials [2026-08-14T11:58:36.335Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-08-14T11:58:36.382Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-14T11:58:36.667Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/notify.py --gerrit https://gerrit.opensdn.io/ --user tf-gerrit --password **** --review I3039c31159379ac7e65b9b487f8d159b3a617eb9 --patchset 1 --branch master --message 'TF CI Build Succeeded (post-merge) in 0h 0m 6s [2026-08-14T11:58:36.667Z] [2026-08-14T11:58:36.667Z] Succeeded checks:' [2026-08-14T11:58:36.668Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I3039c31159379ac7e65b9b487f8d159b3a617eb9', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'topic': 'db-manage-repair', 'attention_set': {}, 'removed_from_attention_set': {'1000021': {'account': {'_account_id': 1000021}, 'last_update': '2026-08-14 11:58:08.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I3039c31159379ac7e65b9b487f8d159b3a617eb9', 'subject': 'db_manage: clean_stale_fq_names removes nothing', 'status': 'MERGED', 'created': '2026-08-06 08:14:33.000000000', 'updated': '2026-08-14 11:58:35.000000000', 'submitted': '2026-08-14 11:58:08.000000000', 'submitter': {'_account_id': 1000001}, 'insertions': 27, 'deletions': 1, 'total_comment_count': 4, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '3037-db-manage-repair', 'meta_rev_id': 'bc0391f8edf107fcc42103fa32c0fff9c66d78a2', '_number': 3037, 'owner': {'_account_id': 1000021}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-08-14 05:48:37.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000003}, {'value': 0, '_account_id': 1000001}], 'values': {'-2': 'This shall not be submitted', '-1': 'I would prefer this is not submitted as is', ' 0': 'No score', '+1': 'Looks good to me, but someone else must approve', '+2': 'Looks good to me, approved'}, 'description': '', 'default_value': 0}, 'Verified': {'all': [{'value': 0, '_account_id': 1000003}, {'value': 2, 'date': '2026-08-14 11:57:56.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000001}], 'values': {'-2': 'Fails', '-1': 'Fails', ' 0': 'No score', '+1': 'Verified', '+2': 'Gating'}, 'description': '', 'default_value': 0}}, 'permitted_labels': {'Code-Review': [' 0', '+1', '+2'], 'Verified': ['+2']}, 'removable_labels': {}, 'removable_reviewers': [{'_account_id': 1000002}], 'reviewers': {'CC': [{'_account_id': 1000002}], 'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': 'b81cb0789484cd10cc0e4050cbb25e2fd8517de0', 'revisions': {'b81cb0789484cd10cc0e4050cbb25e2fd8517de0': {'kind': 'REWORK', '_number': 1, 'created': '2026-08-06 08:14:33.000000000', 'uploader': {'_account_id': 1000021}, 'ref': 'refs/changes/37/3037/1', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/37/3037/1'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/37/3037/1'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/37/3037/1'}}, 'commit': {'parents': [{'commit': '9112407ed0a26aaec3ee49b7513d267bf7e93597', 'subject': 'Switching to oneTBB: old includes removal'}], 'author': {'name': 'Charnsilp Chinprasert(Nipa)', 'email': 'justice.form@gmail.com', 'date': '2026-08-06 08:11:33.000000000', 'tz': 420}, 'committer': {'name': 'Charnsilp Chinprasert(Nipa)', 'email': 'justice.form@gmail.com', 'date': '2026-08-06 08:11:33.000000000', 'tz': 420}, 'subject': 'db_manage: clean_stale_fq_names removes nothing', 'message': 'db_manage: clean_stale_fq_names removes nothing\n\nclean_stale_fq_names() removes nothing. It runs to completion, reports\nsuccess, and every stale entry is still there afterwards.\n\nIt takes the type names it needs from the wrong column family:\n\n iterator = self._cassandra_driver.get_range(\n "obj_uuid_table", column_count=1)\n for obj_type, _ in iterator:\n for fq_name_str_uuid, _ in self._cassandra_driver.xget(\n \'obj_fq_name_table\', obj_type):\n\nobj_fq_name_table is keyed by object type - virtual_network,\nsecurity_group and so on. obj_uuid_table is keyed by object uuid. So\nobj_type here holds a uuid, the xget looks for a partition of\nobj_fq_name_table under that uuid, no such partition exists, the inner\nloop never runs, and stale_cols stays empty for every one of the tens\nof thousands of uuids it walks.\n\nThe two checkers that pair with this cleaner get it right -\ncheck_fq_name_uuid_match and check_duplicate_fq_name both iterate\nget_range(\'obj_fq_name_table\', column_count=1). The debug line\nimmediately above the broken call also says "Reading all objects from\nobj_fq_name_table" while the code reads obj_uuid_table.\n\nres_type does not rescue it. main() dispatches cleaners with\ngetattr(db_cleaner, verb)() and no argument, and no command-line option\nfeeds res_type, so from the CLI it is always None and the broken branch\nis the only one that ever runs.\n\nThe effect is that a checker can report stale fq_name index entries -\nan operator sees a real number - and the cleaner offered to fix them\nsilently does nothing. On the cluster this was found on that is 546\nentries, 301 virtual-network and 245 security-group names reserved with\nno object behind them, so those names cannot be reused.\n\nPoint the iterator at obj_fq_name_table, matching the checkers, the\ndocstring and the debug line.\n\nThe test asserts the entry is gone rather than that the command exited\ncleanly, because exiting cleanly is exactly what it did while doing\nnothing. Verified to fail without the fix:\n\n MismatchError: OrderedDict([...]) matches Contains(\n \'default-domain:default-project:...-vn-0:95a6fe94-...\'):\n stale fq_name index entry was not removed\n\nTested: tox -e pep8 passes; tox -e py39 -- test_db_audit gives 41 passed,\n1 skipped, 0 failed, against a baseline of 40 passed and 1 skipped - the\none extra is this test.\n\nChange-Id: I3039c31159379ac7e65b9b487f8d159b3a617eb9\nSigned-off-by: Charnsilp Chinprasert(Nipa) \n'}}}, 'requirements': [], 'submit_records': [{'rule_name': 'gerrit~DefaultSubmitRule', 'status': 'CLOSED', 'labels': [{'label': 'Code-Review', 'status': 'OK', 'applied_by': {'_account_id': 1000003}}, {'label': 'Verified', 'status': 'OK', 'applied_by': {'_account_id': 1000001}}]}]} [2026-08-14T11:58:36.668Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Succeeded (post-merge) in 0h 0m 6s\n\nSucceeded checks:'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] sh [Pipeline] archiveArtifacts [2026-08-14T11:58:37.029Z] Archiving artifacts [Pipeline] withCredentials [2026-08-14T11:58:37.069Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-08-14T11:58:37.400Z] Warning: Permanently added 'nexus.gz1.opensdn.io,212.233.90.199' (ECDSA) to the list of known hosts. [2026-08-14T11:58:37.963Z] Warning: Permanently added 'nexus.gz1.opensdn.io,212.233.90.199' (ECDSA) to the list of known hosts. [Pipeline] } [Pipeline] // withCredentials [Pipeline] } [Pipeline] // stage [Pipeline] echo [2026-08-14T11:58:38.637Z] URL of console output = https://jenkins.opensdn.io/job/pipeline-post-merge/939/consoleText [Pipeline] withCredentials [2026-08-14T11:58:38.666Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] sh