Triggered by Gerrit: https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/3009 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-17T16:01:35.213Z] Timeout set to expire in 8 hr 0 min [Pipeline] { [Pipeline] node [2026-08-17T16:01:35.258Z] Running on slave-openstack-gz1_1 in /home/jenkins/workspace/pipeline-post-merge [Pipeline] { [Pipeline] stage [Pipeline] { (init) [Pipeline] cleanWs [2026-08-17T16:01:35.340Z] [WS-CLEANUP] Deleting project workspace... [2026-08-17T16:01:35.340Z] [WS-CLEANUP] Deferred wipeout is disabled by the job configuration... [2026-08-17T16:01:35.432Z] [WS-CLEANUP] done [Pipeline] checkout [2026-08-17T16:01:35.472Z] The recommended git tool is: git [2026-08-17T16:01:35.475Z] No credentials specified [2026-08-17T16:01:35.477Z] Cloning the remote Git repository [2026-08-17T16:01:35.480Z] Cloning repository https://github.com/opensdn-io/tf-jenkins.git [2026-08-17T16:01:35.480Z] > git init /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins # timeout=10 [2026-08-17T16:01:35.487Z] Fetching upstream changes from https://github.com/opensdn-io/tf-jenkins.git [2026-08-17T16:01:35.487Z] > git --version # timeout=10 [2026-08-17T16:01:35.491Z] > git --version # 'git version 2.25.1' [2026-08-17T16:01:35.491Z] > git fetch --tags --force --progress -- https://github.com/opensdn-io/tf-jenkins.git +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-08-17T16:01:37.059Z] Avoid second fetch [2026-08-17T16:01:37.065Z] Checking out Revision 9c86492d4a22712d2c3b4ab27040cd93556012b4 (refs/remotes/origin/master) [2026-08-17T16:01:37.116Z] Commit message: "Merge "install cloud-init from site mirror"" [2026-08-17T16:01:37.050Z] > git config remote.origin.url https://github.com/opensdn-io/tf-jenkins.git # timeout=10 [2026-08-17T16:01:37.053Z] > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-08-17T16:01:37.061Z] > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 [2026-08-17T16:01:37.067Z] > git config core.sparsecheckout # timeout=10 [2026-08-17T16:01:37.071Z] > git checkout -f 9c86492d4a22712d2c3b4ab27040cd93556012b4 # timeout=10 [2026-08-17T16:01:37.118Z] > 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-17T16:01:37.462Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-17T16:01:37.758Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/resolve_patchsets.py --gerrit https://gerrit.opensdn.io/ --review I5ce62bf699ed5a645a55140c20062c3728f38741 --branch master --changed_files --output /home/jenkins/workspace/pipeline-post-merge/patchsets-info.json [Pipeline] archiveArtifacts [2026-08-17T16:01:37.800Z] 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-17T16:01:39.636Z] Logs URL: http://nexus.gz1.opensdn.io:8082/jenkins_logs/gerrit/09/3009/3/post-merge_942 [Pipeline] echo [2026-08-17T16:01:39.662Z] terminate_runs_by_review_number: start [Pipeline] echo [2026-08-17T16:01:42.148Z] terminate_runs_by_review_number: terminated builds = [] [Pipeline] sh [Pipeline] echo [2026-08-17T16:01:42.471Z] Pipeline to run: post-merge [Pipeline] sh [Pipeline] sh [Pipeline] archiveArtifacts [2026-08-17T16:01:43.097Z] 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-17T16:01:44.108Z] WARNING: project opensdn-io/tf-controller doesn't define pipeline post-merge [Pipeline] echo [2026-08-17T16:01:44.123Z] Streams from config: [:] [Pipeline] echo [2026-08-17T16:01:44.138Z] Jobs from config: [:] [Pipeline] echo [2026-08-17T16:01:44.155Z] Post Jobs from config: [:] [Pipeline] echo [2026-08-17T16:01:44.185Z] Notify gerrit verified=null, submit=false, msg= [2026-08-17T16:01:44.185Z] TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/942/ [Pipeline] withCredentials [2026-08-17T16:01:44.211Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-08-17T16:01:44.349Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-17T16:01:44.634Z] + /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 I5ce62bf699ed5a645a55140c20062c3728f38741 --patchset 3 --branch master --message 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/942/' [2026-08-17T16:01:44.634Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I5ce62bf699ed5a645a55140c20062c3728f38741', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'attention_set': {}, 'removed_from_attention_set': {'1000003': {'account': {'_account_id': 1000003}, 'last_update': '2026-08-17 10:28:49.000000000', 'reason': ' replied on the change', 'reason_account': {'_account_id': 1000003}}, '1000001': {'account': {'_account_id': 1000001}, 'last_update': '2026-08-17 07:26:20.000000000', 'reason': 'removed on reply'}, '1000022': {'account': {'_account_id': 1000022}, 'last_update': '2026-08-17 16:01:17.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I5ce62bf699ed5a645a55140c20062c3728f38741', 'subject': 'Octavia load balancer: give VIP floating IPs a working datapath', 'status': 'MERGED', 'created': '2026-07-10 17:53:26.000000000', 'updated': '2026-08-17 16:01:17.000000000', 'submitted': '2026-08-17 16:01:17.000000000', 'submitter': {'_account_id': 1000001}, 'insertions': 1371, 'deletions': 13, 'total_comment_count': 6, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '3009', 'meta_rev_id': 'ebae82304176c8a4db167fa08b4d710bfefc603c', '_number': 3009, 'owner': {'_account_id': 1000022}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-08-17 10:28:49.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-17 16:01:05.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': 1000012}], 'reviewers': {'CC': [{'_account_id': 1000012}], 'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': '528ec87bc37ede1fabecf7ac0590d87488a9b6d4', 'revisions': {'528ec87bc37ede1fabecf7ac0590d87488a9b6d4': {'kind': 'NO_CODE_CHANGE', '_number': 3, 'created': '2026-08-17 07:26:02.000000000', 'uploader': {'_account_id': 1000022}, 'ref': 'refs/changes/09/3009/3', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/09/3009/3'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/09/3009/3'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/09/3009/3'}}, 'commit': {'parents': [{'commit': 'd0821a530939acc57c8e9ff48f2c5cae733f3bc5', 'subject': 'Merge "VxLAN bug: VRF NH flapping during a VM live migration"'}], 'author': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-07-10 17:36:49.000000000', 'tz': 420}, 'committer': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-08-17 07:26:02.000000000', 'tz': 0}, 'subject': 'Octavia load balancer: give VIP floating IPs a working datapath', 'message': 'Octavia load balancer: give VIP floating IPs a working datapath\n\nA Neutron floating IP associated to an Octavia (amphora) VIP has no\ndatapath: it attaches to the Octavia VIP placeholder port, which does no\nforwarding, instead of the amphora VRRP ports that carry the VIP via an\nactive-standby allowed-address-pair.\n\nThe fix has two halves and needs no schema, binding, or vRouter change.\n\nvnc_openstack (Neutron plugin):\n - On associate to an Octavia VIP port, keep the VIP-port reference and\n additionally wire the live amphora VRRP legs (resolved by\n AAP == VIP, filtered to legs backed by a live VM), pin fixed_ip to\n the VIP, and stamp two durable annotations (the VIP port id and the\n VIP address). Those annotations survive the failover cascade-strip\n and are what the reconciler rebuilds from.\n - The read view projects the VIP port as port_id (never an amphora\n leg), so Octavia, Terraform and the cloud provider see the port they\n attached to; vanilla non-Octavia floating IPs run the original path\n unchanged.\n - A user "floating ip unset" clears the markers and frees the FIP,\n while the identical-looking cascade-strip (an internal port delete,\n which arrives with no request context) keeps them for recovery.\n - additional_vips / dual-stack VIP ports are disambiguated by the\n stamped VIP address; an ambiguous request (several IPv4 VIPs, no\n fixed_ip) is refused rather than guessed.\n - An optional [NEUTRON] octavia_project_id restricts amphora legs to\n the Octavia service project, so a tenant cannot alias the VIP with\n an allowed-address-pair and hijack the floating IP. It is off by\n default and logs a warning once when left unset.\n\nsvc-monitor (failover reconciler):\n - On an amphora failover Octavia deletes the old amphora and its VMIs;\n ref-integrity then strips the whole floating IP. A reconciler keyed\n off the durable annotations rebuilds the references onto the live\n amphora and restores fixed_ip. It runs from config-change event\n hooks (deferred a few seconds to avoid racing Octavia\'s own port\n deletes, and coalesced per FIP) with the periodic audit as a\n backstop for missed or reordered events.\n - Liveness is confirmed by a fresh read, ownership honours the same\n project filter, and when the VIP port is confirmed gone (the LB was\n deleted) the reconciler clears the now-orphaned markers.\n\nGitHub issue: https://github.com/OpenSDN-io/community/issues/107\n\nChange-Id: I5ce62bf699ed5a645a55140c20062c3728f38741\nSigned-off-by: Moo_Pratin \n'}, 'description': 'Edit commit message'}}, '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-17T16:01:44.634Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/942/'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo [2026-08-17T16:01:44.716Z] Notify discord for new job is started [Pipeline] echo [2026-08-17T16:01:44.756Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] echo [2026-08-17T16:01:44.783Z] Notify discord msg= [2026-08-17T16:01:44.783Z] The review was merged. [2026-08-17T16:01:44.783Z] [Octavia load balancer: give VIP floating IPs a wor](https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/3009) [Pipeline] withCredentials [2026-08-17T16:01:44.809Z] Masking supported pattern matches of $DISCORD_WEBHOOK_URL [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-08-17T16:01:45.174Z] % Total % Received % Xferd Average Speed Time Time Time Current [2026-08-17T16:01:45.174Z] Dload Upload Total Spent Left Speed [2026-08-17T16:01:45.430Z] [2026-08-17T16:01:45.430Z] 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 [2026-08-17T16:01:45.430Z] 100 184 0 0 100 184 0 452 --:--:-- --:--:-- --:--:-- 452 [Pipeline] } [Pipeline] // withCredentials [Pipeline] } [Pipeline] // stage [Pipeline] echo [2026-08-17T16:01:45.557Z] Jobs results: [:] [Pipeline] stage [Pipeline] { (gerrit vote) [Pipeline] echo [2026-08-17T16:01:45.614Z] Notify gerrit verified=null, submit=false, msg= [2026-08-17T16:01:45.614Z] TF CI Build Succeeded (post-merge) in 0h 0m 6s [2026-08-17T16:01:45.614Z] [2026-08-17T16:01:45.614Z] Succeeded checks: [Pipeline] withCredentials [2026-08-17T16:01:45.639Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-08-17T16:01:45.754Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-17T16:01:46.087Z] + /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 I5ce62bf699ed5a645a55140c20062c3728f38741 --patchset 3 --branch master --message 'TF CI Build Succeeded (post-merge) in 0h 0m 6s [2026-08-17T16:01:46.087Z] [2026-08-17T16:01:46.087Z] Succeeded checks:' [2026-08-17T16:01:46.088Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I5ce62bf699ed5a645a55140c20062c3728f38741', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'attention_set': {}, 'removed_from_attention_set': {'1000003': {'account': {'_account_id': 1000003}, 'last_update': '2026-08-17 10:28:49.000000000', 'reason': ' replied on the change', 'reason_account': {'_account_id': 1000003}}, '1000001': {'account': {'_account_id': 1000001}, 'last_update': '2026-08-17 07:26:20.000000000', 'reason': 'removed on reply'}, '1000022': {'account': {'_account_id': 1000022}, 'last_update': '2026-08-17 16:01:17.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I5ce62bf699ed5a645a55140c20062c3728f38741', 'subject': 'Octavia load balancer: give VIP floating IPs a working datapath', 'status': 'MERGED', 'created': '2026-07-10 17:53:26.000000000', 'updated': '2026-08-17 16:01:44.000000000', 'submitted': '2026-08-17 16:01:17.000000000', 'submitter': {'_account_id': 1000001}, 'insertions': 1371, 'deletions': 13, 'total_comment_count': 6, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '3009', 'meta_rev_id': '425e78bab43a35e3716ffcab52b128f5c355c007', '_number': 3009, 'owner': {'_account_id': 1000022}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-08-17 10:28:49.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-17 16:01:05.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': 1000012}], 'reviewers': {'CC': [{'_account_id': 1000012}], 'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': '528ec87bc37ede1fabecf7ac0590d87488a9b6d4', 'revisions': {'528ec87bc37ede1fabecf7ac0590d87488a9b6d4': {'kind': 'NO_CODE_CHANGE', '_number': 3, 'created': '2026-08-17 07:26:02.000000000', 'uploader': {'_account_id': 1000022}, 'ref': 'refs/changes/09/3009/3', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/09/3009/3'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/09/3009/3'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/09/3009/3'}}, 'commit': {'parents': [{'commit': 'd0821a530939acc57c8e9ff48f2c5cae733f3bc5', 'subject': 'Merge "VxLAN bug: VRF NH flapping during a VM live migration"'}], 'author': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-07-10 17:36:49.000000000', 'tz': 420}, 'committer': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-08-17 07:26:02.000000000', 'tz': 0}, 'subject': 'Octavia load balancer: give VIP floating IPs a working datapath', 'message': 'Octavia load balancer: give VIP floating IPs a working datapath\n\nA Neutron floating IP associated to an Octavia (amphora) VIP has no\ndatapath: it attaches to the Octavia VIP placeholder port, which does no\nforwarding, instead of the amphora VRRP ports that carry the VIP via an\nactive-standby allowed-address-pair.\n\nThe fix has two halves and needs no schema, binding, or vRouter change.\n\nvnc_openstack (Neutron plugin):\n - On associate to an Octavia VIP port, keep the VIP-port reference and\n additionally wire the live amphora VRRP legs (resolved by\n AAP == VIP, filtered to legs backed by a live VM), pin fixed_ip to\n the VIP, and stamp two durable annotations (the VIP port id and the\n VIP address). Those annotations survive the failover cascade-strip\n and are what the reconciler rebuilds from.\n - The read view projects the VIP port as port_id (never an amphora\n leg), so Octavia, Terraform and the cloud provider see the port they\n attached to; vanilla non-Octavia floating IPs run the original path\n unchanged.\n - A user "floating ip unset" clears the markers and frees the FIP,\n while the identical-looking cascade-strip (an internal port delete,\n which arrives with no request context) keeps them for recovery.\n - additional_vips / dual-stack VIP ports are disambiguated by the\n stamped VIP address; an ambiguous request (several IPv4 VIPs, no\n fixed_ip) is refused rather than guessed.\n - An optional [NEUTRON] octavia_project_id restricts amphora legs to\n the Octavia service project, so a tenant cannot alias the VIP with\n an allowed-address-pair and hijack the floating IP. It is off by\n default and logs a warning once when left unset.\n\nsvc-monitor (failover reconciler):\n - On an amphora failover Octavia deletes the old amphora and its VMIs;\n ref-integrity then strips the whole floating IP. A reconciler keyed\n off the durable annotations rebuilds the references onto the live\n amphora and restores fixed_ip. It runs from config-change event\n hooks (deferred a few seconds to avoid racing Octavia\'s own port\n deletes, and coalesced per FIP) with the periodic audit as a\n backstop for missed or reordered events.\n - Liveness is confirmed by a fresh read, ownership honours the same\n project filter, and when the VIP port is confirmed gone (the LB was\n deleted) the reconciler clears the now-orphaned markers.\n\nGitHub issue: https://github.com/OpenSDN-io/community/issues/107\n\nChange-Id: I5ce62bf699ed5a645a55140c20062c3728f38741\nSigned-off-by: Moo_Pratin \n'}, 'description': 'Edit commit message'}}, '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-17T16:01:46.088Z] 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-17T16:01:46.479Z] Archiving artifacts [Pipeline] withCredentials [2026-08-17T16:01:46.593Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-08-17T16:01:47.228Z] Warning: Permanently added 'nexus.gz1.opensdn.io,212.233.90.199' (ECDSA) to the list of known hosts. [2026-08-17T16:01:47.791Z] 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-17T16:01:48.468Z] URL of console output = https://jenkins.opensdn.io/job/pipeline-post-merge/942/consoleText [Pipeline] withCredentials [2026-08-17T16:01:48.499Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] sh