diff --git a/Dockerfile b/Dockerfile
index 2d090ce2f..e361c0ac4 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -62,11 +62,12 @@ sudo unzip terraform-provider-null_${TF_NULL_PROVIDER}_linux_amd64.zip -d /cd3us
sudo cp -r /cd3user/.terraform.d/plugins/registry.terraform.io /cd3user/.terraform.d/plugins/registry.opentofu.org && \
sudo chown -R cd3user:cd3user /cd3user/ && \
sudo rm -rf terraform-provider-null_${TF_NULL_PROVIDER}_linux_amd64.zip terraform-provider-oci_${TF_OCI_PROVIDER}_linux_amd64.zip ;\
+
fi
##################################### START INSTALLING JENKINS ###################################
-ARG JENKINS_VERSION=2.444
-ARG JENKINS_SHA=ab093a455fc35951c9b46361002e17cc3ed7c59b0943bbee3a57a363f3370d2e
+ARG JENKINS_VERSION=2.504.1
+ARG JENKINS_SHA=81026db18b0c4aad6b62cf408e4c42e5797661b41c517b37df606238e89b9df1
ARG JENKINS_PLUGIN_MANAGER_VERSION=2.12.13
ARG PLUGIN_CLI_URL=https://github.com/jenkinsci/plugin-installation-manager-tool/releases/download/${JENKINS_PLUGIN_MANAGER_VERSION}/jenkins-plugin-manager-${JENKINS_PLUGIN_MANAGER_VERSION}.jar
diff --git a/README.md b/README.md
index 108639a37..62cedce22 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
- [What's New](https://github.com/oracle-devrel/cd3-automation-toolkit/releases/tag/v2024.4.3) • [Excel Templates](https://oracle-devrel.github.io/cd3-automation-toolkit/latest/excel-templates/) • [CD3 Docs](https://oracle-devrel.github.io/cd3-automation-toolkit/) • [Watch & Learn](https://www.youtube.com/playlist?list=PLPIzp-E1msrbJ3WawXVhzimQnLw5iafcp) • [Blogs & Tutorials](https://oracle-devrel.github.io/cd3-automation-toolkit/latest/tutorials/) • [Livelabs](https://apexapps.oracle.com/pls/apex/f?p=133:180:112501098061930::::wid:3724) • [Slack Channel](https://oracle-devrel.github.io/cd3-automation-toolkit/latest/queries)
+ [What's New](https://github.com/oracle-devrel/cd3-automation-toolkit/releases/tag/v2025.1.2) • [Excel Templates](https://oracle-devrel.github.io/cd3-automation-toolkit/latest/excel-templates/) • [CD3 Docs](https://oracle-devrel.github.io/cd3-automation-toolkit/) • [Watch & Learn](https://www.youtube.com/playlist?list=PLPIzp-E1msrbJ3WawXVhzimQnLw5iafcp) • [Blogs & Tutorials](https://oracle-devrel.github.io/cd3-automation-toolkit/latest/tutorials/) • [Livelabs](https://apexapps.oracle.com/pls/apex/f?p=133:180:112501098061930::::wid:3724) • [Slack Channel](https://oracle-devrel.github.io/cd3-automation-toolkit/latest/queries)
diff --git a/cd3_automation_toolkit/Compute/export_dedicatedvmhosts_nonGreenField.py b/cd3_automation_toolkit/Compute/export_dedicatedvmhosts_nonGreenField.py
index aa930d506..b21412fb5 100644
--- a/cd3_automation_toolkit/Compute/export_dedicatedvmhosts_nonGreenField.py
+++ b/cd3_automation_toolkit/Compute/export_dedicatedvmhosts_nonGreenField.py
@@ -24,10 +24,11 @@ def print_dedicatedvmhosts(region, dedicatedvmhost, values_for_column, ntk_compa
# Tags filter
defined_tags = dedicatedvmhost.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Compute/export_instances_nonGreenField.py b/cd3_automation_toolkit/Compute/export_instances_nonGreenField.py
index 321545184..f04f23403 100644
--- a/cd3_automation_toolkit/Compute/export_instances_nonGreenField.py
+++ b/cd3_automation_toolkit/Compute/export_instances_nonGreenField.py
@@ -115,10 +115,11 @@ def __get_instances_info(compartment_name, compartment_id, reg_name, display_nam
# Tags filter
ins_defined_tags = ins.defined_tags
tags_list=[]
- for tkey,tval in ins_defined_tags.items():
- for kk,vv in tval.items():
- tag = tkey+"."+kk+"="+vv
- tags_list.append(tag)
+ if ins_defined_tags:
+ for tkey,tval in ins_defined_tags.items():
+ for kk,vv in tval.items():
+ tag = tkey+"."+kk+"="+vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/CostManagement/Budget/export_budgets_nonGreenField.py b/cd3_automation_toolkit/CostManagement/Budget/export_budgets_nonGreenField.py
index 028c7163e..44c0faac3 100644
--- a/cd3_automation_toolkit/CostManagement/Budget/export_budgets_nonGreenField.py
+++ b/cd3_automation_toolkit/CostManagement/Budget/export_budgets_nonGreenField.py
@@ -159,10 +159,11 @@ def export_budgets_nongreenfield(inputfile, outdir, service_dir, config, signer,
# Tags filter
defined_tags = budget.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Database/export_adb_nonGreenField.py b/cd3_automation_toolkit/Database/export_adb_nonGreenField.py
index 66cda2e6c..5691602fa 100644
--- a/cd3_automation_toolkit/Database/export_adb_nonGreenField.py
+++ b/cd3_automation_toolkit/Database/export_adb_nonGreenField.py
@@ -180,10 +180,11 @@ def export_adbs(inputfile, outdir, service_dir, config, signer, ct, export_compa
# Tags filter
defined_tags = adb.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags==[]:
check=True
diff --git a/cd3_automation_toolkit/Database/export_dbsystems_vm_bm_nonGreenField.py b/cd3_automation_toolkit/Database/export_dbsystems_vm_bm_nonGreenField.py
index ca6162578..d29b33caa 100644
--- a/cd3_automation_toolkit/Database/export_dbsystems_vm_bm_nonGreenField.py
+++ b/cd3_automation_toolkit/Database/export_dbsystems_vm_bm_nonGreenField.py
@@ -176,10 +176,11 @@ def export_dbsystems_vm_bm(inputfile, outdir, service_dir, config, signer, ct, e
# Tags filter
defined_tags = db_system.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Database/export_exa_infra_nonGreenField.py b/cd3_automation_toolkit/Database/export_exa_infra_nonGreenField.py
index e0d1a48f2..20656d825 100644
--- a/cd3_automation_toolkit/Database/export_exa_infra_nonGreenField.py
+++ b/cd3_automation_toolkit/Database/export_exa_infra_nonGreenField.py
@@ -108,10 +108,11 @@ def export_exa_infra(inputfile, outdir, service_dir, config, signer, ct, export_
# Tags filter
defined_tags = exa_infra.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Database/export_exa_vmclusters_nonGreenField.py b/cd3_automation_toolkit/Database/export_exa_vmclusters_nonGreenField.py
index cdbace15c..ca260a2fd 100644
--- a/cd3_automation_toolkit/Database/export_exa_vmclusters_nonGreenField.py
+++ b/cd3_automation_toolkit/Database/export_exa_vmclusters_nonGreenField.py
@@ -169,10 +169,11 @@ def export_exa_vmclusters(inputfile, outdir, service_dir, config, signer, ct, ex
# Tags filter
defined_tags = exa_infra.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Database/export_mysql_configuration_nonGreenField.py b/cd3_automation_toolkit/Database/export_mysql_configuration_nonGreenField.py
index a332b664e..f2de93436 100644
--- a/cd3_automation_toolkit/Database/export_mysql_configuration_nonGreenField.py
+++ b/cd3_automation_toolkit/Database/export_mysql_configuration_nonGreenField.py
@@ -123,10 +123,11 @@ def export_mysql_configuration(inputfile, outdir, service_dir, config, signer, c
# Tags filter
defined_tags = config_obj.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Database/export_mysql_db_nonGreenField.py b/cd3_automation_toolkit/Database/export_mysql_db_nonGreenField.py
index ad96ffb28..3abec6b91 100644
--- a/cd3_automation_toolkit/Database/export_mysql_db_nonGreenField.py
+++ b/cd3_automation_toolkit/Database/export_mysql_db_nonGreenField.py
@@ -236,10 +236,11 @@ def export_mysql_db(inputfile, outdir, service_dir, config, signer, ct, export_c
# Tags filter
defined_tags = mysql_db.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/DeveloperServices/OKE/export_oke_nonGreenField.py b/cd3_automation_toolkit/DeveloperServices/OKE/export_oke_nonGreenField.py
index 77430e50e..2988e240b 100644
--- a/cd3_automation_toolkit/DeveloperServices/OKE/export_oke_nonGreenField.py
+++ b/cd3_automation_toolkit/DeveloperServices/OKE/export_oke_nonGreenField.py
@@ -546,10 +546,11 @@ def export_oke(inputfile, outdir,service_dir, config, signer, ct, export_compart
# Tags filter
defined_tags = nodepool_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/DeveloperServices/ResourceManager/create_resource_manager_stack.py b/cd3_automation_toolkit/DeveloperServices/ResourceManager/create_resource_manager_stack.py
index 3de257380..ee4397138 100644
--- a/cd3_automation_toolkit/DeveloperServices/ResourceManager/create_resource_manager_stack.py
+++ b/cd3_automation_toolkit/DeveloperServices/ResourceManager/create_resource_manager_stack.py
@@ -346,7 +346,14 @@ def create_resource_manager(outdir,var_file, outdir_struct,prefix,auth_mechanism
create_job_details.operation = "IMPORT_TF_STATE"
create_job_details.stack_id = stack_ocid
print("Uploading Terraform State file to Resource Manager for stack " + rm_name + "..............")
- ocs_stack.create_job(create_job_details)
+ try:
+ ocs_stack.create_job(create_job_details)
+ except Exception as e:
+ print("\n")
+ print(str(e))
+ if ('Request Entity Too Large' in str(e)):
+ print("\nError!!! Skipping state import for Resource Manager stack "+rm_name)
+ pass
rm_dir_zip = region_dir + '/' + prefix + '-' + region +'.zip'
# Take a backup of zip file if it exists
@@ -458,7 +465,14 @@ def create_resource_manager(outdir,var_file, outdir_struct,prefix,auth_mechanism
create_job_details.operation = "IMPORT_TF_STATE"
create_job_details.stack_id = stack_ocid
print("Uploading Terraform State file to Resource Manager for stack "+service_rm_name+"..............")
- ocs_stack.create_job(create_job_details)
+ try:
+ ocs_stack.create_job(create_job_details)
+ except Exception as e:
+ print("\n")
+ print(str(e))
+ if ('Request Entity Too Large' in str(e)):
+ print("\nError!!! Skipping state import for Resource Manager stack " + service_rm_name)
+ pass
shutil.rmtree(rm_dir + "/" + service_dir)
diff --git a/cd3_automation_toolkit/Governance/Quota/export_quotas_nonGreenField.py b/cd3_automation_toolkit/Governance/Quota/export_quotas_nonGreenField.py
index cf5c83d67..3c8b14ab1 100644
--- a/cd3_automation_toolkit/Governance/Quota/export_quotas_nonGreenField.py
+++ b/cd3_automation_toolkit/Governance/Quota/export_quotas_nonGreenField.py
@@ -85,10 +85,11 @@ def export_quotas_nongreenfield(inputfile, outdir, service_dir, config, signer,
# Tags filter
defined_tags = quota.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/ManagementServices/EventsAndNotifications/export_events_notifications_nonGreenField.py b/cd3_automation_toolkit/ManagementServices/EventsAndNotifications/export_events_notifications_nonGreenField.py
index 5e6cf2933..34131f2f3 100644
--- a/cd3_automation_toolkit/ManagementServices/EventsAndNotifications/export_events_notifications_nonGreenField.py
+++ b/cd3_automation_toolkit/ManagementServices/EventsAndNotifications/export_events_notifications_nonGreenField.py
@@ -234,10 +234,11 @@ def export_events(inputfile, outdir, service_dir, config, signer, ct,export_comp
# Tags filter
defined_tags = event_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/ManagementServices/Monitoring/export_alarms_nonGreenField.py b/cd3_automation_toolkit/ManagementServices/Monitoring/export_alarms_nonGreenField.py
index 924225b69..d470d0033 100644
--- a/cd3_automation_toolkit/ManagementServices/Monitoring/export_alarms_nonGreenField.py
+++ b/cd3_automation_toolkit/ManagementServices/Monitoring/export_alarms_nonGreenField.py
@@ -134,10 +134,11 @@ def export_alarms(inputfile, outdir, service_dir, config, signer, ct, export_com
# Tags filter
defined_tags = alarm.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/ManagementServices/ServiceConnectorHub/export_sch_nonGreenField.py b/cd3_automation_toolkit/ManagementServices/ServiceConnectorHub/export_sch_nonGreenField.py
index f15287d3d..e93e3b67f 100755
--- a/cd3_automation_toolkit/ManagementServices/ServiceConnectorHub/export_sch_nonGreenField.py
+++ b/cd3_automation_toolkit/ManagementServices/ServiceConnectorHub/export_sch_nonGreenField.py
@@ -43,10 +43,11 @@ def get_comp_details(comp_data):
# Tags filter
defined_tags = sch_details.data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/BaseNetwork/exportNSG.py b/cd3_automation_toolkit/Network/BaseNetwork/exportNSG.py
index bec066766..950941c2a 100644
--- a/cd3_automation_toolkit/Network/BaseNetwork/exportNSG.py
+++ b/cd3_automation_toolkit/Network/BaseNetwork/exportNSG.py
@@ -218,10 +218,11 @@ def export_nsg(inputfile, outdir, service_dir,config,signer, ct, export_compartm
# Tags filter
defined_tags = vcn.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -242,10 +243,11 @@ def export_nsg(inputfile, outdir, service_dir,config,signer, ct, export_compartm
# Tags filter
defined_tags = nsg.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/BaseNetwork/exportRoutetable.py b/cd3_automation_toolkit/Network/BaseNetwork/exportRoutetable.py
index 24940c820..72f3900b5 100644
--- a/cd3_automation_toolkit/Network/BaseNetwork/exportRoutetable.py
+++ b/cd3_automation_toolkit/Network/BaseNetwork/exportRoutetable.py
@@ -17,10 +17,11 @@ def get_network_entity_name(config,signer,network_identity_id,export_tags):
# Tags filter for DRG attachment
defined_tags = igw.data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -48,10 +49,11 @@ def get_network_entity_name(config,signer,network_identity_id,export_tags):
# Tags filter for DRG attachment
defined_tags = sgw.data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -80,10 +82,11 @@ def get_network_entity_name(config,signer,network_identity_id,export_tags):
# Tags filter for DRG attachment
defined_tags = ngw.data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -111,10 +114,11 @@ def get_network_entity_name(config,signer,network_identity_id,export_tags):
# Tags filter for DRG attachment
defined_tags = lpg.data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -158,10 +162,11 @@ def get_network_entity_name(config,signer,network_identity_id,export_tags):
# Tags filter for DRG attachment
defined_tags = drg.data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -268,10 +273,11 @@ def print_routetables(routetables,region,vcn_name,comp_name,export_tags,gw_route
# Tags filter
defined_tags = routetable.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -380,10 +386,11 @@ def export_drg_routetable(inputfile, outdir, service_dir,config1,signer1, ct, ex
# Tags filter
defined_tags = drg.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -412,10 +419,11 @@ def export_drg_routetable(inputfile, outdir, service_dir,config1,signer1, ct, ex
# Tags filter
defined_tags = drg_route_table_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -437,8 +445,8 @@ def export_drg_routetable(inputfile, outdir, service_dir,config1,signer1, ct, ex
# Tags filter
defined_tags = import_drg_route_distribution_info.defined_tags
+ tags_list = []
if defined_tags != {}:
- tags_list = []
for tkey, tval in defined_tags.items():
for kk, vv in tval.items():
tag = tkey + "." + kk + "=" + vv
diff --git a/cd3_automation_toolkit/Network/BaseNetwork/exportSeclist.py b/cd3_automation_toolkit/Network/BaseNetwork/exportSeclist.py
index 44ff4f3df..a53685440 100644
--- a/cd3_automation_toolkit/Network/BaseNetwork/exportSeclist.py
+++ b/cd3_automation_toolkit/Network/BaseNetwork/exportSeclist.py
@@ -50,10 +50,11 @@ def print_secrules(seclists,region,vcn_name,comp_name,export_tags,state):
# Tags filter
defined_tags = seclist.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -283,10 +284,11 @@ def export_seclist(inputfile, outdir, service_dir,config,signer, ct, export_comp
# Tags filter
defined_tags = v.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/BaseNetwork/export_network_nonGreenField.py b/cd3_automation_toolkit/Network/BaseNetwork/export_network_nonGreenField.py
index a39642f0e..ae7a17311 100644
--- a/cd3_automation_toolkit/Network/BaseNetwork/export_network_nonGreenField.py
+++ b/cd3_automation_toolkit/Network/BaseNetwork/export_network_nonGreenField.py
@@ -687,10 +687,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter for DRG attachment
defined_tags = drg_attachment_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -708,10 +709,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter for DRG
defined_tags = drg_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -952,10 +954,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vcn_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -982,10 +985,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = drg_attachment_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1006,10 +1010,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = drg_info.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1031,10 +1036,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = igw.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1062,10 +1068,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = ngw.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1093,10 +1100,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = sgw.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1126,10 +1134,11 @@ def export_major_objects(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = lpg.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1226,10 +1235,11 @@ def export_dhcp(inputfile, outdir, service_dir, config, signer, ct, export_compa
# Tags filter
defined_tags = vcn.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1250,10 +1260,11 @@ def export_dhcp(inputfile, outdir, service_dir, config, signer, ct, export_compa
# Tags filter
defined_tags = dhcp.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1353,10 +1364,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vcn.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1381,10 +1393,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = subnet.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1400,10 +1413,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vnc.get_dhcp_options(dhcp_id).data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1423,10 +1437,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vnc.get_route_table(rt_id).data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1448,10 +1463,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vnc.get_security_list(sl_id).data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1498,10 +1514,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vlan.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1518,10 +1535,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vnc.get_route_table(rt_id).data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1543,10 +1561,11 @@ def export_subnets_vlans(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = vnc.get_network_security_group(nsg_id).data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/DNS/export_dns_resolvers.py b/cd3_automation_toolkit/Network/DNS/export_dns_resolvers.py
index cc1661657..da22d814d 100644
--- a/cd3_automation_toolkit/Network/DNS/export_dns_resolvers.py
+++ b/cd3_automation_toolkit/Network/DNS/export_dns_resolvers.py
@@ -203,10 +203,11 @@ def export_dns_resolvers(inputfile, outdir, service_dir, config, signer, ct, exp
# Tags filter
defined_tags = resolver.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/DNS/export_dns_views_zones_records.py b/cd3_automation_toolkit/Network/DNS/export_dns_views_zones_records.py
index 6926bfb93..f5a0a0f32 100644
--- a/cd3_automation_toolkit/Network/DNS/export_dns_views_zones_records.py
+++ b/cd3_automation_toolkit/Network/DNS/export_dns_views_zones_records.py
@@ -164,10 +164,11 @@ def export_dns_views_zones_rrsets(inputfile, outdir, service_dir, config, signer
# Tags filter
defined_tags = view_data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -193,10 +194,11 @@ def export_dns_views_zones_rrsets(inputfile, outdir, service_dir, config, signer
# Tags filter
defined_tags = zone_data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/LoadBalancers/export_lbr_nonGreenField.py b/cd3_automation_toolkit/Network/LoadBalancers/export_lbr_nonGreenField.py
index c4a5b246e..c31fc16b0 100644
--- a/cd3_automation_toolkit/Network/LoadBalancers/export_lbr_nonGreenField.py
+++ b/cd3_automation_toolkit/Network/LoadBalancers/export_lbr_nonGreenField.py
@@ -151,10 +151,11 @@ def print_lbr_hostname_certs(region, ct, outdir, values_for_column_lhc, lbr, LBR
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -435,10 +436,11 @@ def print_backendset_backendserver(region, ct, values_for_column_bss, lbr, LBRs,
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -613,10 +615,11 @@ def print_listener(region, ct, values_for_column_lis, LBRs, lbr_compartment_name
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -746,10 +749,11 @@ def print_rule(region, ct, values_for_column_rule, LBRs, lbr_compartment_name,ex
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -878,10 +882,11 @@ def print_prs(region, ct, values_for_column_prs, LBRs, lbr_compartment_name,expo
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -940,10 +945,11 @@ def print_routing_policies(region, ct, values_for_column_rp, LBRs, lbr_compartme
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -1117,10 +1123,11 @@ def export_lbr(inputfile, outdir, service_dir, config1, signer1, ct, export_comp
# Tags filter
defined_tags = eachlbr.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Network/LoadBalancers/export_nlb_nonGreenField.py b/cd3_automation_toolkit/Network/LoadBalancers/export_nlb_nonGreenField.py
index 9ec4f4718..df038c384 100644
--- a/cd3_automation_toolkit/Network/LoadBalancers/export_nlb_nonGreenField.py
+++ b/cd3_automation_toolkit/Network/LoadBalancers/export_nlb_nonGreenField.py
@@ -31,10 +31,11 @@ def print_nlb_backendset_backendserver(region, values_for_column_bss,NLBs, nlb_c
# Tags filter
defined_tags = eachnlb.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -167,10 +168,11 @@ def print_nlb_listener(region, outdir, values_for_column_lis, NLBs, nlb_compartm
# Tags filter
defined_tags = eachnlb.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -389,10 +391,11 @@ def export_nlb(inputfile, outdir, service_dir, config,signer, ct, export_compart
# Tags filter
defined_tags = eachnlb.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Release-Notes b/cd3_automation_toolkit/Release-Notes
index 77730e449..19cdd4e54 100644
--- a/cd3_automation_toolkit/Release-Notes
+++ b/cd3_automation_toolkit/Release-Notes
@@ -1,3 +1,12 @@
+-------------------------------------
+CD3 Automation Toolkit Tag v2025.1.2
+May 14th, 2025
+-------------------------------------
+1. Jenkins version upgrade to 2.504.1
+2. Ability to process DRCC regions.
+3. Ability to process regions where there are two data centers like Singapore.
+4. Minor Bug fixes for defined tags filter, cd3Validator, RM stack upload.
+
-------------------------------------
CD3 Automation Toolkit Tag v2025.1.1
Apr 26th, 2025
diff --git a/cd3_automation_toolkit/SDDC/export_sddc_nonGreenField.py b/cd3_automation_toolkit/SDDC/export_sddc_nonGreenField.py
index f117c7712..034a9d9ff 100644
--- a/cd3_automation_toolkit/SDDC/export_sddc_nonGreenField.py
+++ b/cd3_automation_toolkit/SDDC/export_sddc_nonGreenField.py
@@ -100,10 +100,11 @@ def export_sddc(inputfile, outdir, service_dir,config,signer, ct, export_compart
# Tags filter
defined_tags = sddc_cluster.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Security/Firewall/export_firewallpolicy_nonGreenField.py b/cd3_automation_toolkit/Security/Firewall/export_firewallpolicy_nonGreenField.py
index 91de3645f..8d0c226b5 100644
--- a/cd3_automation_toolkit/Security/Firewall/export_firewallpolicy_nonGreenField.py
+++ b/cd3_automation_toolkit/Security/Firewall/export_firewallpolicy_nonGreenField.py
@@ -33,10 +33,11 @@ def print_firewall_policy(region, ct, values_for_column_fwpolicy, fwpolicies, fw
# Tags filter
defined_tags = eachfwpolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -76,10 +77,11 @@ def print_firewall_address(region, ct, values_for_column_fwaddress, fwpolicies,
# Tags filter
defined_tags = policy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -136,10 +138,11 @@ def print_firewall_urllist(region, ct, values_for_column_fwurllist, fwpolicies,
# Tags filter
defined_tags = urlpolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -192,10 +195,11 @@ def print_firewall_servicelist(region, ct, values_for_column_fwservicelist, fwpo
# Tags filter
defined_tags = servicelistpolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -308,10 +312,11 @@ def print_firewall_applist(region, ct, values_for_column_fwapplist, fwpolicies,
# Tags filter
defined_tags = applistpolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -419,10 +424,11 @@ def print_firewall_secrules(region, ct, values_for_column_fwsecrules, fwpolicies
# Tags filter
defined_tags = secrulespolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -527,10 +533,11 @@ def print_firewall_secret(region, ct, values_for_column_fwsecret, fwpolicies, fw
# Tags filter
defined_tags = secretpolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -589,10 +596,11 @@ def print_firewall_decryptprofile(region, ct, values_for_column_fwdecryptprofile
# Tags filter
defined_tags = decryptionprofile.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -671,10 +679,11 @@ def print_firewall_decryptrule(region, ct, values_for_column_fwdecryptrule, fwpo
# Tags filter
defined_tags = decryptrulepolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -752,10 +761,11 @@ def print_firewall_tunnelinspect(region, ct, values_for_column_fwtunnelinspect,
# Tags filter
defined_tags = tunnelinspectrulepolicy.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -930,10 +940,11 @@ def export_firewallpolicy(inputfile, _outdir, service_dir, config, signer, ct, e
# Tags filter
defined_tags = eachfwpolicy1.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Security/KeyVault/export_keyvaults_nonGreenField.py b/cd3_automation_toolkit/Security/KeyVault/export_keyvaults_nonGreenField.py
index 9519b0daf..a42bc2031 100644
--- a/cd3_automation_toolkit/Security/KeyVault/export_keyvaults_nonGreenField.py
+++ b/cd3_automation_toolkit/Security/KeyVault/export_keyvaults_nonGreenField.py
@@ -78,10 +78,11 @@ def export_keyvaults(inputfile, outdir, service_dir, config, signer, ct, export_
# Tags filter
defined_tags = get_vault_data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -117,10 +118,11 @@ def export_keyvaults(inputfile, outdir, service_dir, config, signer, ct, export_
# Tags filter
defined_tags = key.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Storage/BlockVolume/export_blockvolumes_nonGreenField.py b/cd3_automation_toolkit/Storage/BlockVolume/export_blockvolumes_nonGreenField.py
index e23924995..c6291fd02 100644
--- a/cd3_automation_toolkit/Storage/BlockVolume/export_blockvolumes_nonGreenField.py
+++ b/cd3_automation_toolkit/Storage/BlockVolume/export_blockvolumes_nonGreenField.py
@@ -68,10 +68,11 @@ def print_blockvolumes(region, BVOLS, bvol, compute, ct, values_for_column, ntk_
# Tags filter
defined_tags = blockvols.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
diff --git a/cd3_automation_toolkit/Storage/ObjectStorage/export_terraform_oss.py b/cd3_automation_toolkit/Storage/ObjectStorage/export_terraform_oss.py
index 0018fa6c6..02aa205f9 100644
--- a/cd3_automation_toolkit/Storage/ObjectStorage/export_terraform_oss.py
+++ b/cd3_automation_toolkit/Storage/ObjectStorage/export_terraform_oss.py
@@ -222,10 +222,11 @@ def export_buckets(inputfile, outdir, service_dir, config, signer, ct, export_co
# Tags filter
defined_tags = bucket_data.defined_tags
tags_list = []
- for tkey, tval in defined_tags.items():
- for kk, vv in tval.items():
- tag = tkey + "." + kk + "=" + vv
- tags_list.append(tag)
+ if defined_tags:
+ for tkey, tval in defined_tags.items():
+ for kk, vv in tval.items():
+ tag = tkey + "." + kk + "=" + vv
+ tags_list.append(tag)
if export_tags == []:
check = True
@@ -275,9 +276,10 @@ def export_buckets(inputfile, outdir, service_dir, config, signer, ct, export_co
rp_name = str(item.name)
rp_id = str(item.id)
rp_destination_bucket_name = str(item.destination_bucket_name)
- rp_destination_region_name = str(item.destination_region_name)
- region_parts = rp_destination_region_name.split("-")
- rp_destination_region_name = region_parts[-2]
+ rp_destination_region_namee = str(item.destination_region_name)
+ #region_parts = rp_destination_region_name.split("-")
+ #rp_destination_region_name = region_parts[-2]
+ rp_destination_region_name = [k for k, v in ct.region_dict.items() if v == rp_destination_region_namee][0]
rp_data = rp_name + "::" + rp_destination_region_name + "::" + rp_destination_bucket_name
else:
rp_data = None
diff --git a/cd3_automation_toolkit/cd3Validator.py b/cd3_automation_toolkit/cd3Validator.py
index 9b4a8eedf..7c75a6b0c 100644
--- a/cd3_automation_toolkit/cd3Validator.py
+++ b/cd3_automation_toolkit/cd3Validator.py
@@ -912,6 +912,7 @@ def validate_instances(filename,comp_ids,subnetobj,vcn_subnet_list,vcn_nsg_list)
# Cross check the VCN names in Instances and VCNs sheet
#vcn_subnet_check = compare_values(vcn_subnet_list.tolist(), columnvalue,[i, 'Subnet Name', 'SubnetsVLANs'])
if ("::" not in columnvalue):
+ log(f'ROW {i + 3} : Invalid syntax at column "Network Details"')
vcn_subnet_check = True
diff --git a/cd3_automation_toolkit/commonTools.py b/cd3_automation_toolkit/commonTools.py
index 6b9fb0329..60bc09bdf 100644
--- a/cd3_automation_toolkit/commonTools.py
+++ b/cd3_automation_toolkit/commonTools.py
@@ -7,6 +7,7 @@
import pathlib
import urllib.request
import oci
+from copy import deepcopy
from oci.identity import IdentityClient
from oci.config import DEFAULT_LOCATION
from openpyxl import load_workbook
@@ -66,7 +67,8 @@ def __init__(self):
self.domain_filter = None
self.identity_domain_enabled = False
self.reg_filter = None
- self.comp_filter = None
+ #Should be None but changed to "null" to do a quick fix for ct.get_compartment_map
+ self.comp_filter = "null"
self.tag_filter = None
self.vizoci_comp_filter = None
self.default_dns = None
@@ -291,7 +293,17 @@ def get_subscribedregions(self, config,signer):
idc = IdentityClient(config=config, retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY,signer=signer)
regionsubscriptions = idc.list_region_subscriptions(tenancy_id=config['tenancy'])
homeregion=""
+ new_config = deepcopy(config)
for rs in regionsubscriptions.data:
+ try:
+
+ new_config.__setitem__("region", rs.region_name)
+ idc = IdentityClient(config=new_config, retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY, signer=signer)
+ ADs_data = idc.list_availability_domains(compartment_id=config['tenancy'])
+ except Exception as e:
+ print("Skipping subscribed region "+rs.region_name+" . Check if domain is replicated for this region")
+ continue
+
if (rs.is_home_region == True):
homeregion = rs.region_name
for k, v in self.region_dict.items():
@@ -303,11 +315,12 @@ def get_subscribedregions(self, config,signer):
# return subs region list to caller
subs_region_list = []
- for reg in regionsubscriptions.data:
- status = getattr(reg, 'status')
+ for rs in regionsubscriptions.data:
+ status = getattr(rs, 'status')
if status == "READY":
- region_name = getattr(reg, 'region_name')
- subs_region_list.append(region_name.split("-")[1])
+ for k, v in self.region_dict.items():
+ if (rs.region_name == v):
+ subs_region_list.append(k)
return subs_region_list
#Get Compartment OCIDs
@@ -378,6 +391,8 @@ def get_compartment_map(self, var_file, resource_name):
else:
pass
else:
+
+ #Code needs to change as we are not passing individual resource name now. But "OCI Resources" as export filter for compartments.
print("\n")
if resource_name in ["Compartments","IAM Policies","IAM Groups","IAM Users","Network Sources","Tagging Objects"]:
input_compartment_names = None
@@ -1298,9 +1313,37 @@ def fetch_regions(self,config,signer):
os.chdir("../")
tempStr = '#Region:Region_Key\n'
+ reg_dict = {}
+
for reg in regions_list:
- cd3key = str(reg.name.split('-')[1]).lower()
+ cd3key = str(reg.name.split('-',1)[1]).lower()
+
+ if 'dcc' in cd3key:
+ cd3key = str(cd3key.split('-',1)[1]).lower()
+
name = str(reg.name).lower()
+ reg_dict[cd3key] = name
+
+ keys = []
+ new_reg_dict={}
+ for key,val in reg_dict.items():
+ keyy = key.split("-")[0]
+ if keyy not in keys:
+ keys.append(keyy)
+ new_reg_dict[keyy]=val
+ else:
+ new_reg_dict[key] = val
+
+ #replace prev
+ old_val = new_reg_dict[keyy]
+ old_val_key = str(old_val.split('-', 1)[1]).lower()
+ if 'dcc' in old_val_key:
+ old_val_key = str(old_val_key.split('-', 1)[1]).lower()
+
+ new_reg_dict[old_val_key] = old_val
+ new_reg_dict.pop(keyy)
+
+ for cd3key,name in new_reg_dict.items():
line = cd3key + ":" + name
tempStr = tempStr + line + '\n'
diff --git a/cd3_automation_toolkit/example/CD3-Blank-template.xlsx b/cd3_automation_toolkit/example/CD3-Blank-template.xlsx
index 58c01293e..bd05b65fe 100644
Binary files a/cd3_automation_toolkit/example/CD3-Blank-template.xlsx and b/cd3_automation_toolkit/example/CD3-Blank-template.xlsx differ
diff --git a/cd3_automation_toolkit/example/CD3-CIS-ManagementServices-template.xlsx b/cd3_automation_toolkit/example/CD3-CIS-ManagementServices-template.xlsx
index c8770310a..9b19a4d69 100644
Binary files a/cd3_automation_toolkit/example/CD3-CIS-ManagementServices-template.xlsx and b/cd3_automation_toolkit/example/CD3-CIS-ManagementServices-template.xlsx differ
diff --git a/cd3_automation_toolkit/example/CD3-CIS-template.xlsx b/cd3_automation_toolkit/example/CD3-CIS-template.xlsx
index dba983996..478d13cc1 100644
Binary files a/cd3_automation_toolkit/example/CD3-CIS-template.xlsx and b/cd3_automation_toolkit/example/CD3-CIS-template.xlsx differ
diff --git a/cd3_automation_toolkit/example/CD3-Firewall-template.xlsx b/cd3_automation_toolkit/example/CD3-Firewall-template.xlsx
index 7ae69ab13..af7a8c15d 100644
Binary files a/cd3_automation_toolkit/example/CD3-Firewall-template.xlsx and b/cd3_automation_toolkit/example/CD3-Firewall-template.xlsx differ
diff --git a/cd3_automation_toolkit/example/CD3-HubSpoke-template.xlsx b/cd3_automation_toolkit/example/CD3-HubSpoke-template.xlsx
index e393d6840..7a1471de2 100644
Binary files a/cd3_automation_toolkit/example/CD3-HubSpoke-template.xlsx and b/cd3_automation_toolkit/example/CD3-HubSpoke-template.xlsx differ
diff --git a/cd3_automation_toolkit/example/CD3-SingleVCN-template.xlsx b/cd3_automation_toolkit/example/CD3-SingleVCN-template.xlsx
index 72668ad47..bf9dcdbf2 100644
Binary files a/cd3_automation_toolkit/example/CD3-SingleVCN-template.xlsx and b/cd3_automation_toolkit/example/CD3-SingleVCN-template.xlsx differ
diff --git a/cd3_automation_toolkit/user-scripts/createTenancyConfig.py b/cd3_automation_toolkit/user-scripts/createTenancyConfig.py
index 4bb465b84..1c55600fa 100644
--- a/cd3_automation_toolkit/user-scripts/createTenancyConfig.py
+++ b/cd3_automation_toolkit/user-scripts/createTenancyConfig.py
@@ -473,14 +473,12 @@ def create_bucket(config, signer):
devops_user_key = config.get('Default', 'oci_devops_git_key').strip()
# Check if Jenkins was installed during image build
-
if environ.get('USE_DEVOPS') is None:
use_devops_docker = "yes"
else:
use_devops_docker = os.environ['USE_DEVOPS']
use_devops_docker=use_devops_docker.lower()
-
if use_devops_docker != use_devops:
use_devops = "no"
diff --git a/jenkins_install/plugins.txt b/jenkins_install/plugins.txt
index f25a4d0d4..174d70f5a 100644
--- a/jenkins_install/plugins.txt
+++ b/jenkins_install/plugins.txt
@@ -19,7 +19,7 @@ uno-choice:latest
file-parameters:latest
scriptler:latest
ansicolor:latest
-pipeline-graph-view:243.vc9e11fec486a_
+pipeline-graph-view:latest
javax-mail-api:latest
jdk-tool:latest
trilead-api:latest