in resources/repositories/cluster-mgmt.git/scripts/modify_control_plane_version.py [0:0]
def parse_console_versions(values_file, codebase_versions, cp_values_file):
filtered_list = []
unique_data = []
with open(values_file, 'r') as file:
try:
data = yaml.safe_load(file)
console_versions = data.get('consoleVersions')
versions_list = [d['registryVersion'] for d in console_versions]
sorted_versions = sorted(versions_list,
key=lambda x: tuple(map(int, x.split('.'))), reverse=True)[:versions_to_keep]
filtered_list = [d for d in console_versions if d['registryVersion'] in sorted_versions]
if codebase_versions:
versions_by_codebases = ([d for d in console_versions if d['registryVersion'] in codebase_versions])
filtered_list = filtered_list + versions_by_codebases
for d in filtered_list:
if d not in unique_data:
unique_data.append(d)
max_version = max(d['registryVersion'] for d in unique_data)
for d in unique_data:
if d['registryVersion'] == max_version:
d['latest'] = True
data['consoleVersions'] = unique_data
except yaml.YAMLError as e:
print(f"Error loading YAML file: {e}")
return None
with open(cp_values_file, 'r') as file:
cp_values_data = yaml.safe_load(file)
cp_values_data.update(data)
with open(cp_values_file, 'w', encoding='utf8') as file:
yaml.dump(cp_values_data, file, default_flow_style=False, allow_unicode=True)