Merge lp://staging/~sinzui/juju-ci-tools/azure-arm-ha into lp://staging/juju-ci-tools

Proposed by Curtis Hovey
Status: Merged
Merged at revision: 1482
Proposed branch: lp://staging/~sinzui/juju-ci-tools/azure-arm-ha
Merge into: lp://staging/juju-ci-tools
Diff against target: 289 lines (+130/-23)
5 files modified
assess_recovery.py (+6/-2)
deploy_stack.py (+2/-2)
substrate.py (+38/-7)
tests/test_assess_recovery.py (+27/-4)
tests/test_substrate.py (+57/-8)
To merge this branch: bzr merge lp://staging/~sinzui/juju-ci-tools/azure-arm-ha
Reviewer Review Type Date Requested Status
Aaron Bentley (community) Approve
Review via email: mp+296484@code.staging.launchpad.net

Description of the change

Assess HA recovery on azure-arm.

This branch adds support for testing HA recovery using the Azure RM API. A new
AzureARMAccount class is added to substrate.py.

assess_recovery.py calls convert_to_azure_ids() to convert the juju instance-ids to actual
azure vm ids. This is intrusive, but must happen in assess_recovery because no Account in
Substrate uses client. I have tested HA on 2.x and 1.x quite a bit. I added a timeout to
wait_for_state_server_to_shutdown to make our testing of azure 1.x more reliable. Azure is
slower and the 30 seconds we allotted was not enough 50% of the time.

I removed the special rule to create a lxd account. There is nothing special about it, the
default rule creates it. AzureARMAccount is tiny. I had planned to replace the old AzureAccount
because we can list and delete SMS-based services as if they were resource groups. We cannot
delete an individual VM though :(. The new azure lib has legacy support for SMS and I didn't
need to change the old class to use it.

This branch is save to merge, but the functional-ha-recovery-azure job cannot be enabled until
it is moved to a new server. the new azure library does not support legacy storage, and
we need that installed on master to publish streams.

To post a comment you must log in.
Revision history for this message
Aaron Bentley (abentley) wrote :

This looks good.

One small thing: In the test data, I try to avoid reusing variable names as their value, e.g. {'subscription-id': 'subscription-id'}, to avoid the class of problem where value was supposed to be used, but the name was used instead. I'll do {'subscription-id': 'subscription-id1'} instead.

review: Approve
1461. By Curtis Hovey

Merged trunk.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches