Triggered by Gerrit: https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/3067 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-25T15:13:00.983Z] Timeout set to expire in 8 hr 0 min [Pipeline] { [Pipeline] node [2026-08-25T15:13:01.034Z] Running on slave-openstack-gz1_1 in /home/jenkins/workspace/pipeline-post-merge [Pipeline] { [Pipeline] stage [Pipeline] { (init) [Pipeline] cleanWs [2026-08-25T15:13:01.129Z] [WS-CLEANUP] Deleting project workspace... [2026-08-25T15:13:01.130Z] [WS-CLEANUP] Deferred wipeout is disabled by the job configuration... [2026-08-25T15:13:01.220Z] [WS-CLEANUP] done [Pipeline] checkout [2026-08-25T15:13:01.250Z] The recommended git tool is: git [2026-08-25T15:13:01.254Z] No credentials specified [2026-08-25T15:13:01.257Z] Cloning the remote Git repository [2026-08-25T15:13:01.305Z] Cloning repository https://github.com/opensdn-io/tf-jenkins.git [2026-08-25T15:13:01.305Z] > git init /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins # timeout=10 [2026-08-25T15:13:01.312Z] Fetching upstream changes from https://github.com/opensdn-io/tf-jenkins.git [2026-08-25T15:13:01.312Z] > git --version # timeout=10 [2026-08-25T15:13:01.317Z] > git --version # 'git version 2.25.1' [2026-08-25T15:13:01.317Z] > git fetch --tags --force --progress -- https://github.com/opensdn-io/tf-jenkins.git +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-08-25T15:13:03.813Z] Avoid second fetch [2026-08-25T15:13:03.818Z] Checking out Revision 9c86492d4a22712d2c3b4ab27040cd93556012b4 (refs/remotes/origin/master) [2026-08-25T15:13:03.867Z] Commit message: "Merge "install cloud-init from site mirror"" [2026-08-25T15:13:03.804Z] > git config remote.origin.url https://github.com/opensdn-io/tf-jenkins.git # timeout=10 [2026-08-25T15:13:03.807Z] > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-08-25T15:13:03.814Z] > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 [2026-08-25T15:13:03.819Z] > git config core.sparsecheckout # timeout=10 [2026-08-25T15:13:03.822Z] > git checkout -f 9c86492d4a22712d2c3b4ab27040cd93556012b4 # timeout=10 [2026-08-25T15:13:03.868Z] > 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-25T15:13:04.166Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-25T15:13:04.461Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/resolve_patchsets.py --gerrit https://gerrit.opensdn.io/ --review I53502b4ab56f856f427505576843295799aff78f --branch master --changed_files --output /home/jenkins/workspace/pipeline-post-merge/patchsets-info.json [Pipeline] archiveArtifacts [2026-08-25T15:13:04.492Z] 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-25T15:13:06.769Z] Logs URL: http://nexus.gz1.opensdn.io:8082/jenkins_logs/gerrit/67/3067/2/post-merge_949 [Pipeline] echo [2026-08-25T15:13:06.794Z] terminate_runs_by_review_number: start [Pipeline] echo [2026-08-25T15:13:10.936Z] terminate_runs_by_review_number: terminated builds = [] [Pipeline] sh [Pipeline] echo [2026-08-25T15:13:11.325Z] Pipeline to run: post-merge [Pipeline] sh [Pipeline] sh [Pipeline] archiveArtifacts [2026-08-25T15:13:11.952Z] 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-25T15:13:12.903Z] WARNING: project opensdn-io/tf-controller doesn't define pipeline post-merge [Pipeline] echo [2026-08-25T15:13:12.916Z] Streams from config: [:] [Pipeline] echo [2026-08-25T15:13:12.930Z] Jobs from config: [:] [Pipeline] echo [2026-08-25T15:13:12.942Z] Post Jobs from config: [:] [Pipeline] echo [2026-08-25T15:13:12.969Z] Notify gerrit verified=null, submit=false, msg= [2026-08-25T15:13:12.969Z] TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/949/ [Pipeline] withCredentials [2026-08-25T15:13:12.990Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-08-25T15:13:13.038Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-25T15:13:13.327Z] + /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 I53502b4ab56f856f427505576843295799aff78f --patchset 2 --branch master --message 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/949/' [2026-08-25T15:13:13.328Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I53502b4ab56f856f427505576843295799aff78f', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'attention_set': {}, 'removed_from_attention_set': {'1000001': {'account': {'_account_id': 1000001}, 'last_update': '2026-08-21 11:15:19.000000000', 'reason': 'removed on reply'}, '1000022': {'account': {'_account_id': 1000022}, 'last_update': '2026-08-25 15:12:42.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I53502b4ab56f856f427505576843295799aff78f', 'subject': 'config-api: set global_access for router_external VNs created via vnc_api', 'status': 'MERGED', 'created': '2026-08-21 10:42:26.000000000', 'updated': '2026-08-25 15:12:42.000000000', 'submitted': '2026-08-25 15:12:42.000000000', 'submitter': {'_account_id': 1000001}, 'insertions': 38, 'deletions': 1, 'total_comment_count': 0, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '3067', 'meta_rev_id': '03b6bb49b0e3dd89451568d8bd7d11e3effc78eb', '_number': 3067, 'owner': {'_account_id': 1000022}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-08-25 05:37:30.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-25 15:12:34.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': [], 'reviewers': {'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': 'f902ca313b21317b62d65fc81f1da52d11636e83', 'revisions': {'f902ca313b21317b62d65fc81f1da52d11636e83': {'kind': 'REWORK', '_number': 2, 'created': '2026-08-21 11:15:03.000000000', 'uploader': {'_account_id': 1000022}, 'ref': 'refs/changes/67/3067/2', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/67/3067/2'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/67/3067/2'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/67/3067/2'}}, 'commit': {'parents': [{'commit': 'dd7291c4391efddea58311a48ee97052f5fc4813', 'subject': 'Merge "ST: do not leak the route-target Zookeeper index on a partial write"'}], 'author': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-08-21 10:36:58.000000000', 'tz': 420}, 'committer': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-08-21 11:15:03.000000000', 'tz': 0}, 'subject': 'config-api: set global_access for router_external VNs created via vnc_api', 'message': "config-api: set global_access for router_external VNs created via vnc_api\n\npre_dbe_create() never looked at router_external when computing perms2,\nso a VN created directly through vnc_api (not the neutron plugin) with\nrouter_external=True kept global_access=0. It never entered the shared\nindex (obj_shared_table), making it invisible to non-owner tenants\ndespite router_external declaring it should be globally usable.\n\npre_dbe_update() already had the correct priority rule for this\n(is_shared > router_external > neither), just never applied at create\ntime. This mirrors that same rule into pre_dbe_create's router_external\ncase only -- it does not replicate pre_dbe_update's full\nconflict-validation logic, which exists to handle partial-update\nsemantics that create does not have.\n\nVerified the only caller that sets router_external at create time\n(neutron_plugin_db.py's _network_neutron_to_vnc) already sets the same\nperms2/is_shared values explicitly, so this change is a no-op for it and\nonly fills the gap for direct vnc_api callers.\n\nGithub issue: https://github.com/OpenSDN-io/community/issues/133\n\nChange-Id: I53502b4ab56f856f427505576843295799aff78f\nSigned-off-by: Moo_Pratin \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-25T15:13:13.328Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/949/'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo [2026-08-25T15:13:13.411Z] Notify discord for new job is started [Pipeline] echo [2026-08-25T15:13:13.461Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] echo [2026-08-25T15:13:13.492Z] Notify discord msg= [2026-08-25T15:13:13.492Z] The review was merged. [2026-08-25T15:13:13.492Z] [config-api: set global_access for router_external ](https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/3067) [Pipeline] withCredentials [2026-08-25T15:13:13.523Z] Masking supported pattern matches of $DISCORD_WEBHOOK_URL [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-08-25T15:13:13.885Z] % Total % Received % Xferd Average Speed Time Time Time Current [2026-08-25T15:13:13.885Z] Dload Upload Total Spent Left Speed [2026-08-25T15:13:13.885Z] [2026-08-25T15:13:14.446Z] 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 [2026-08-25T15:13:14.446Z] 100 184 0 0 100 184 0 844 --:--:-- --:--:-- --:--:-- 840 [2026-08-25T15:13:14.446Z] 100 184 0 0 100 184 0 319 --:--:-- --:--:-- --:--:-- 318 [Pipeline] } [Pipeline] // withCredentials [Pipeline] } [Pipeline] // stage [Pipeline] echo [2026-08-25T15:13:14.581Z] Jobs results: [:] [Pipeline] stage [Pipeline] { (gerrit vote) [Pipeline] echo [2026-08-25T15:13:14.648Z] Notify gerrit verified=null, submit=false, msg= [2026-08-25T15:13:14.648Z] TF CI Build Succeeded (post-merge) in 0h 0m 7s [2026-08-25T15:13:14.648Z] [2026-08-25T15:13:14.648Z] Succeeded checks: [Pipeline] withCredentials [2026-08-25T15:13:14.681Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-08-25T15:13:14.742Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-08-25T15:13:15.047Z] + /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 I53502b4ab56f856f427505576843295799aff78f --patchset 2 --branch master --message 'TF CI Build Succeeded (post-merge) in 0h 0m 7s [2026-08-25T15:13:15.048Z] [2026-08-25T15:13:15.048Z] Succeeded checks:' [2026-08-25T15:13:15.306Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I53502b4ab56f856f427505576843295799aff78f', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'attention_set': {}, 'removed_from_attention_set': {'1000001': {'account': {'_account_id': 1000001}, 'last_update': '2026-08-21 11:15:19.000000000', 'reason': 'removed on reply'}, '1000022': {'account': {'_account_id': 1000022}, 'last_update': '2026-08-25 15:12:42.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I53502b4ab56f856f427505576843295799aff78f', 'subject': 'config-api: set global_access for router_external VNs created via vnc_api', 'status': 'MERGED', 'created': '2026-08-21 10:42:26.000000000', 'updated': '2026-08-25 15:13:13.000000000', 'submitted': '2026-08-25 15:12:42.000000000', 'submitter': {'_account_id': 1000001}, 'insertions': 38, 'deletions': 1, 'total_comment_count': 0, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '3067', 'meta_rev_id': 'f8380c99e71a4180a7c53f2a899d8c4695c2ca55', '_number': 3067, 'owner': {'_account_id': 1000022}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-08-25 05:37:30.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-25 15:12:34.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': [], 'reviewers': {'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': 'f902ca313b21317b62d65fc81f1da52d11636e83', 'revisions': {'f902ca313b21317b62d65fc81f1da52d11636e83': {'kind': 'REWORK', '_number': 2, 'created': '2026-08-21 11:15:03.000000000', 'uploader': {'_account_id': 1000022}, 'ref': 'refs/changes/67/3067/2', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/67/3067/2'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/67/3067/2'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/67/3067/2'}}, 'commit': {'parents': [{'commit': 'dd7291c4391efddea58311a48ee97052f5fc4813', 'subject': 'Merge "ST: do not leak the route-target Zookeeper index on a partial write"'}], 'author': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-08-21 10:36:58.000000000', 'tz': 420}, 'committer': {'name': 'Moo_Pratin', 'email': 'boombe40@hotmail.com', 'date': '2026-08-21 11:15:03.000000000', 'tz': 0}, 'subject': 'config-api: set global_access for router_external VNs created via vnc_api', 'message': "config-api: set global_access for router_external VNs created via vnc_api\n\npre_dbe_create() never looked at router_external when computing perms2,\nso a VN created directly through vnc_api (not the neutron plugin) with\nrouter_external=True kept global_access=0. It never entered the shared\nindex (obj_shared_table), making it invisible to non-owner tenants\ndespite router_external declaring it should be globally usable.\n\npre_dbe_update() already had the correct priority rule for this\n(is_shared > router_external > neither), just never applied at create\ntime. This mirrors that same rule into pre_dbe_create's router_external\ncase only -- it does not replicate pre_dbe_update's full\nconflict-validation logic, which exists to handle partial-update\nsemantics that create does not have.\n\nVerified the only caller that sets router_external at create time\n(neutron_plugin_db.py's _network_neutron_to_vnc) already sets the same\nperms2/is_shared values explicitly, so this change is a no-op for it and\nonly fills the gap for direct vnc_api callers.\n\nGithub issue: https://github.com/OpenSDN-io/community/issues/133\n\nChange-Id: I53502b4ab56f856f427505576843295799aff78f\nSigned-off-by: Moo_Pratin \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-25T15:13:15.306Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Succeeded (post-merge) in 0h 0m 7s\n\nSucceeded checks:'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] sh [Pipeline] archiveArtifacts [2026-08-25T15:13:15.672Z] Archiving artifacts [Pipeline] withCredentials [2026-08-25T15:13:15.720Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-08-25T15:13:16.077Z] Warning: Permanently added 'nexus.gz1.opensdn.io,212.233.90.199' (ECDSA) to the list of known hosts. [2026-08-25T15:13:16.640Z] 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-25T15:13:17.668Z] URL of console output = https://jenkins.opensdn.io/job/pipeline-post-merge/949/consoleText [Pipeline] withCredentials [2026-08-25T15:13:17.697Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] sh