Skip to content

[POSTGRESQL] az postgresql flexible-server maintenance-event list | show | apply-now | reschedule: Add commands for maintenance events#33662

Open
nasc17 wants to merge 6 commits into
Azure:devfrom
nasc17:nasc/maintanceCommandUpdates
Open

[POSTGRESQL] az postgresql flexible-server maintenance-event list | show | apply-now | reschedule: Add commands for maintenance events#33662
nasc17 wants to merge 6 commits into
Azure:devfrom
nasc17:nasc/maintanceCommandUpdates

Conversation

@nasc17

@nasc17 nasc17 commented Jun 26, 2026

Copy link
Copy Markdown
Member

Related command
az postgresql flexible-server maintenance-event list
az postgresql flexible-server maintenance-event show
az postgresql flexible-server maintenance-event apply-now
az postgresql flexible-server maintenance-event reschedule

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature


This checklist is used to make sure that common guidelines for a pull request are followed.

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 26, 2026

Copy link
Copy Markdown
🔄AzureCLI-FullTest
🔄acr
🔄latest
🔄3.12
️✔️3.14
️✔️acs
️✔️latest
️✔️3.12
️✔️3.14
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.14
️✔️ams
️✔️latest
️✔️3.12
️✔️3.14
️✔️apim
️✔️latest
️✔️3.12
️✔️3.14
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.14
️✔️appservice
️✔️latest
️✔️3.12
️✔️3.14
️✔️aro
️✔️latest
️✔️3.12
️✔️3.14
️✔️backup
️✔️latest
️✔️3.12
️✔️3.14
️✔️batch
️✔️latest
️✔️3.12
️✔️3.14
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.14
️✔️billing
️✔️latest
️✔️3.12
️✔️3.14
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.14
🔄cloud
🔄latest
🔄3.12
️✔️3.14
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.14
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.14
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.14
️✔️config
️✔️latest
️✔️3.12
️✔️3.14
️✔️configure
️✔️latest
️✔️3.12
️✔️3.14
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.14
️✔️container
️✔️latest
️✔️3.12
️✔️3.14
🔄containerapp
🔄latest
🔄3.12
️✔️3.14
️✔️core
️✔️latest
️✔️3.12
️✔️3.14
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.14
️✔️databoxedge
️✔️latest
️✔️3.12
️✔️3.14
️✔️dls
️✔️latest
️✔️3.12
️✔️3.14
️✔️dms
️✔️latest
️✔️3.12
️✔️3.14
🔄eventgrid
🔄latest
🔄3.12
️✔️3.14
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.14
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.14
🔄find
🔄latest
🔄3.12
️✔️3.14
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.14
️✔️identity
️✔️latest
️✔️3.12
️✔️3.14
️✔️iot
️✔️latest
️✔️3.12
️✔️3.14
️✔️keyvault
️✔️latest
️✔️3.12
️✔️3.14
️✔️lab
️✔️latest
️✔️3.12
️✔️3.14
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.14
️✔️maps
️✔️latest
️✔️3.12
️✔️3.14
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.14
🔄monitor
🔄latest
🔄3.12
️✔️3.14
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.14
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.14
️✔️network
️✔️latest
️✔️3.12
️✔️3.14
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.14
️✔️postgresql
️✔️latest
️✔️3.12
️✔️3.14
🔄privatedns
🔄latest
🔄3.12
️✔️3.14
🔄profile
🔄latest
🔄3.12
️✔️3.14
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.14
️✔️redis
️✔️latest
️✔️3.12
️✔️3.14
️✔️relay
️✔️latest
️✔️3.12
️✔️3.14
🔄resource
🔄latest
🔄3.12
️✔️3.14
️✔️role
️✔️latest
️✔️3.12
️✔️3.14
️✔️search
️✔️latest
️✔️3.12
️✔️3.14
️✔️security
️✔️latest
️✔️3.12
️✔️3.14
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.14
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.14
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.14
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.14
️✔️sql
️✔️latest
️✔️3.12
️✔️3.14
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.14
️✔️storage
️✔️latest
️✔️3.12
️✔️3.14
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.14
️✔️telemetry
️✔️latest
️✔️3.12
️✔️3.14
️✔️util
️✔️latest
️✔️3.12
️✔️3.14
️✔️vm
️✔️latest
️✔️3.12
️✔️3.14

@azure-client-tools-bot-prd

Copy link
Copy Markdown

Hi @nasc17,
Since the current milestone time is less than 7 days, this pr will be reviewed in the next milestone.

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 26, 2026

Copy link
Copy Markdown
❌AzureCLI-BreakingChangeTest
❌appservice
rule cmd_name rule_message suggest_message
1007 - ParaRemove appservice plan create cmd appservice plan create removed parameter enriched_errors please add back parameter enriched_errors for cmd appservice plan create
❌postgresql
rule cmd_name rule_message suggest_message
1007 - ParaRemove postgres flexible-server create cmd postgres flexible-server create removed parameter backup_federated_client_id please add back parameter backup_federated_client_id for cmd postgres flexible-server create
1007 - ParaRemove postgres flexible-server create cmd postgres flexible-server create removed parameter federated_client_id please add back parameter federated_client_id for cmd postgres flexible-server create
1007 - ParaRemove postgres flexible-server geo-restore cmd postgres flexible-server geo-restore removed parameter backup_federated_client_id please add back parameter backup_federated_client_id for cmd postgres flexible-server geo-restore
1007 - ParaRemove postgres flexible-server geo-restore cmd postgres flexible-server geo-restore removed parameter federated_client_id please add back parameter federated_client_id for cmd postgres flexible-server geo-restore
1007 - ParaRemove postgres flexible-server replica create cmd postgres flexible-server replica create removed parameter backup_federated_client_id please add back parameter backup_federated_client_id for cmd postgres flexible-server replica create
1007 - ParaRemove postgres flexible-server replica create cmd postgres flexible-server replica create removed parameter federated_client_id please add back parameter federated_client_id for cmd postgres flexible-server replica create
1007 - ParaRemove postgres flexible-server restore cmd postgres flexible-server restore removed parameter backup_federated_client_id please add back parameter backup_federated_client_id for cmd postgres flexible-server restore
1007 - ParaRemove postgres flexible-server restore cmd postgres flexible-server restore removed parameter federated_client_id please add back parameter federated_client_id for cmd postgres flexible-server restore
1007 - ParaRemove postgres flexible-server update cmd postgres flexible-server update removed parameter backup_federated_client_id please add back parameter backup_federated_client_id for cmd postgres flexible-server update
1007 - ParaRemove postgres flexible-server update cmd postgres flexible-server update removed parameter federated_client_id please add back parameter federated_client_id for cmd postgres flexible-server update
⚠️ 1011 - SubgroupAdd postgres flexible-server maintenance-event sub group postgres flexible-server maintenance-event added

Please submit your Breaking Change Pre-announcement ASAP if you haven't already. Please note:

  • Breaking changes can only be merged during the designated breaking change window
  • A pre-announcement must be released at least one month in advance

For more details on how to introduce breaking changes, refer to the documentation: azure-cli/doc/how_to_introduce_breaking_changes.md

@yonzhan

yonzhan commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

POSTGRESQL

@nasc17 nasc17 marked this pull request as ready for review June 29, 2026 18:40
Copilot AI review requested due to automatic review settings June 29, 2026 18:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new postgres flexible-server maintenance-event command group to Azure CLI’s PostgreSQL module, wiring it to the PostgreSQL Flexible Server management SDK so users can list, inspect, and act on scheduled maintenance events.

Changes:

  • Registers new CLI commands: maintenance-event list|show|reschedule|apply-now for PostgreSQL flexible servers.
  • Introduces a new command implementation module plus a client factory for maintenance_events.
  • Adds argument definitions, help text, and unit tests for the new command functions.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/azure-cli/azure/cli/command_modules/postgresql/flexible_server_commands.py Registers the new maintenance-event command group and its commands.
src/azure-cli/azure/cli/command_modules/postgresql/commands/maintenance_event_commands.py Implements the list/show/reschedule/apply-now command handlers.
src/azure-cli/azure/cli/command_modules/postgresql/_client_factory.py Adds a client factory for maintenance_events operations.
src/azure-cli/azure/cli/command_modules/postgresql/_params.py Adds CLI parameters for maintenance event ID, status filter, and reschedule start time.
src/azure-cli/azure/cli/command_modules/postgresql/_help.py Adds help entries and examples for the new maintenance-event commands.
src/azure-cli/azure/cli/command_modules/postgresql/tests/unit/test_maintenance_event_commands.py Adds unit tests for the new maintenance event command functions.
src/azure-cli/azure/cli/command_modules/postgresql/tests/unit/init.py Initializes the new unit test package directory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +101 to +113
result = flexible_server_maintenance_event_list(
self.mock_client,
self.resource_group,
self.server_name,
maintenance_status='Planned'
)

self.assertEqual(result, expected_events)
self.mock_client.list.assert_called_once_with(
resource_group_name=self.resource_group,
server_name=self.server_name,
maintenance_status='Planned'
)
Comment on lines +301 to +305
with self.command_group('postgres flexible-server maintenance-event', postgres_flexible_maintenance_events_sdk,
custom_command_type=maintenance_event_commands,
client_factory=cf_postgres_flexible_maintenance_events) as g:
g.custom_command('list', 'flexible_server_maintenance_event_list')
g.custom_command('show', 'flexible_server_maintenance_event_show')
@nehrao1

nehrao1 commented Jun 29, 2026

Copy link
Copy Markdown
Member

Note: There is no public API for maintenance event creation. Maintenance events are scheduled for servers based on backend logic that is not directly exposed. Therefore the standard E2E test pattern of creating a new server and performing reschedule/apply now commands on it will not work, because a new server may not necessarily get maintenance events scheduled. That is why for these commands we opt to test via unit tests.

Unit Test Output:

test_apply_now_maintenance_event (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_apply_now_maintenance_event)
Test applying a maintenance event immediately. ... ok
test_apply_now_maintenance_event_no_wait (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_apply_now_maintenance_event_no_wait)
Test applying a maintenance event with no_wait=True. ... ok
test_list_maintenance_events_all (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_list_maintenance_events_all)
Test listing all maintenance events. ... ok
test_list_maintenance_events_empty (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_list_maintenance_events_empty)
Test listing when no maintenance events exist. ... ok
test_list_maintenance_events_with_status_filter (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_list_maintenance_events_with_status_filter)
Test listing maintenance events with status filter. ... ok
test_list_validates_resource_group (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_list_validates_resource_group)
Test that list validates resource group. ... ok
test_reschedule_maintenance_event (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_reschedule_maintenance_event)
Test rescheduling a maintenance event. ... ok
test_reschedule_maintenance_event_no_wait (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_reschedule_maintenance_event_no_wait)
Test rescheduling a maintenance event with no_wait=True. ... ok
test_show_maintenance_event (azure.cli.command_modules.postgresql.tests.unit.test_maintenance_event_commands.MaintenanceEventCommandsTest.test_show_maintenance_event)
Test showing a specific maintenance event. ... ok


Ran 9 tests in 0.010s

OK

Comment thread linter_exclusions.yml Outdated
resource_discovery_mode:
rule_exclusions:
- option_length_too_long
postgres flexible-server maintenance-event apply-now:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These exclusions should go in src\azure-cli\azure\cli\command_modules\postgresql\linter_exclusions.yml

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also to fix: FAIL - HIGH severity: no_ids_for_list_commands
Command: postgres flexible-server maintenance-event list - List commands should not expose --ids argument

Add

postgres flexible-server maintenance-event list:
rule_exclusions:
- no_ids_for_list_commands

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@Pan-Qi

Pan-Qi commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants