Skip to content

Commit 7c845ae

Browse files
[PostgreSQL] Fix #33090: az postgres flexible-server server-logs list: Fix command crash with an AttributeError when listing log files (#33096)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent fed4be4 commit 7c845ae

3 files changed

Lines changed: 4102 additions & 243 deletions

File tree

src/azure-cli/azure/cli/command_modules/postgresql/commands/server_logs_commands.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,28 @@
1919
logger = get_logger(__name__)
2020

2121

22+
def _sanitize_log_file(log_obj):
23+
# Convert log object to dict
24+
result = log_obj.as_dict()
25+
26+
# Flatten properties from nested structure and reshape to legacy format
27+
if 'properties' in result and isinstance(result['properties'], dict):
28+
properties = result.pop('properties')
29+
# Extract type from properties and rename to typePropertiesType
30+
if 'createdTime' in properties:
31+
del properties['createdTime'] # Remove createdTime as it's not in the original SDK model
32+
if 'type' in properties:
33+
result['typePropertiesType'] = properties.pop('type')
34+
# Merge remaining properties into root level
35+
result.update(properties)
36+
37+
# Add systemData if not present (for backward compatibility)
38+
if 'systemData' not in result:
39+
result['systemData'] = None
40+
41+
return result
42+
43+
2244
def flexible_server_download_log_files(client, resource_group_name, server_name, file_name):
2345
validate_resource_group(resource_group_name)
2446

@@ -50,8 +72,7 @@ def flexible_server_list_log_files_with_filter(client, resource_group_name, serv
5072
if max_file_size is not None and f.size_in_kb > max_file_size:
5173
continue
5274

53-
del f.created_time
54-
files.append(f)
75+
files.append(_sanitize_log_file(f))
5576

5677
return files
5778

@@ -75,8 +96,7 @@ def flexible_server_log_list(client, resource_group_name, server_name, filename_
7596
if max_file_size is not None and f.size_in_kb > max_file_size:
7697
continue
7798

78-
del f.created_time
79-
files.append(f)
99+
files.append(_sanitize_log_file(f))
80100

81101
return files
82102

0 commit comments

Comments
 (0)