File: disable_test_cli_mgmt_servicebus_namespace.py

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (554 lines) | stat: -rw-r--r-- 27,134 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
# coding: utf-8

# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------

# Current Operation Coverage:
#   Operations: 1/1
#   MigrationConfigs: 6/6
#   Namespaces: 17/17
#   EventHubs: 1/1
#   Regions: 1/1
#   PremiumMessagingRegions: 1/1
#   DisasterRecoveryConfigs: 10/10

import time
import unittest

import azure.mgmt.servicebus
from azure.core.exceptions import HttpResponseError
from devtools_testutils import (
    AzureMgmtRecordedTestCase,
    RandomNameResourceGroupPreparer,
    ResourceGroupPreparer,
    recorded_by_proxy,
)

AZURE_LOCATION = "eastus"


class TestMgmtServiceBus(AzureMgmtRecordedTestCase):

    def setup_method(self, method):
        self.mgmt_client = self.create_mgmt_client(azure.mgmt.servicebus.ServiceBusManagementClient)
        self.mgmt_client2017 = self.create_mgmt_client(
            azure.mgmt.servicebus.ServiceBusManagementClient, api_version="2017-04-01"
        )

        # # No testcases to test
        # if self.is_live:
        #     from azure.mgmt.network import NetworkManagementClient
        #     self.network_client = self.create_mgmt_client(
        #         NetworkManagementClient
        #     )

    def create_virtual_network(self, group_name, location, network_name, subnet_name):

        azure_operation_poller = self.network_client.virtual_networks.begin_create_or_update(
            group_name,
            network_name,
            {"location": location, "address_space": {"address_prefixes": ["10.0.0.0/16"]}},
        )
        result_create = azure_operation_poller.result()

        async_subnet_creation = self.network_client.subnets.begin_create_or_update(
            group_name, network_name, subnet_name, {"address_prefix": "10.0.0.0/24"}
        )
        subnet_info = async_subnet_creation.result()

        return subnet_info

    @unittest.skip("hard to test")
    @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
    @recorded_by_proxy
    def test_namespace(self, resource_group):

        SUBSCRIPTION_ID = self.settings.SUBSCRIPTION_ID
        RESOURCE_GROUP = resource_group.name
        NAMESPACE_NAME = "myNamespacexxyyzzxyx"
        AUTHORIZATION_RULE_NAME = "myAuthorizationRule"
        VIRTUAL_NETWORK_NAME = "myVirtualNetwork"
        SUBNET_NAME = "mySubnet"
        SKU = "Premium"

        if self.is_live:
            self.create_virtual_network(RESOURCE_GROUP, AZURE_LOCATION, VIRTUAL_NETWORK_NAME, SUBNET_NAME)

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceCreate[put]
        # --------------------------------------------------------------------------
        BODY = {
            "sku": {"name": "Premium", "tier": "Premium"},
            "location": AZURE_LOCATION,
            "tags": {"tag1": "value1", "tag2": "value2"},
        }
        result = self.mgmt_client.namespaces.begin_create_or_update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )
        namespace = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceAuthorizationRuleCreate[put]
        # --------------------------------------------------------------------------
        BODY = {"rights": ["Listen", "Send"]}
        result = self.mgmt_client.namespaces.create_or_update_authorization_rule(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
            parameters=BODY,
        )

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceNetworkRuleSetCreate[put]
        # --------------------------------------------------------------------------
        BODY = {
            "default_action": "Deny",
            "virtual_network_rules": [
                {
                    "subnet": {
                        "id": "/subscriptions/"
                        + SUBSCRIPTION_ID
                        + "/resourceGroups/"
                        + RESOURCE_GROUP
                        + "/providers/Microsoft.Network/virtualNetworks/"
                        + VIRTUAL_NETWORK_NAME
                        + "/subnets/"
                        + SUBNET_NAME
                    },
                    "ignore_missing_vnet_service_endpoint": True,
                }
            ],
            "ip_rules": [
                {"ip_mask": "1.1.1.1", "action": "Allow"},
                {"ip_mask": "1.1.1.2", "action": "Allow"},
                {"ip_mask": "1.1.1.3", "action": "Allow"},
                {"ip_mask": "1.1.1.4", "action": "Allow"},
                {"ip_mask": "1.1.1.5", "action": "Allow"},
            ],
        }
        result = self.mgmt_client.namespaces.create_or_update_network_rule_set(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )

        # --------------------------------------------------------------------------
        # /Namespaces/get/NameSpaceAuthorizationRuleGet[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.get_authorization_rule(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
        )

        # --------------------------------------------------------------------------
        # /Namespaces/get/NameSpaceNetworkRuleSetGet[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.get_network_rule_set(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )

        # --------------------------------------------------------------------------
        # /Namespaces/get/NameSpaceAuthorizationRuleListAll[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.list_authorization_rules(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )

        # --------------------------------------------------------------------------
        # /Namespaces/get/NameSpaceGet[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.get(resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME)

        # --------------------------------------------------------------------------
        # /Namespaces/get/NameSpaceListByResourceGroup[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.list_by_resource_group(resource_group_name=RESOURCE_GROUP)

        # --------------------------------------------------------------------------
        # /Namespaces/get/NameSpaceList[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.list()

        # --------------------------------------------------------------------------
        # /Operations/get/OperationsList[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.operations.list()

        # --------------------------------------------------------------------------
        # /PremiumMessagingRegions/get/PremiumMessagingRegionsList[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.premium_messaging_regions.list()

        # --------------------------------------------------------------------------
        # /Regions/get/RegionsListBySku[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.regions.list_by_sku(sku=SKU)

        # --------------------------------------------------------------------------
        # /EventHubs/get/RulesCreateOrUpdate[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.event_hubs.list_by_namespace(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )

        # --------------------------------------------------------------------------
        # /Namespaces/post/NameSpaceAuthorizationRuleRegenerateKey[post]
        # --------------------------------------------------------------------------
        BODY = {"key_type": "PrimaryKey"}
        result = self.mgmt_client.namespaces.regenerate_keys(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
            parameters=BODY,
        )

        # --------------------------------------------------------------------------
        # /Namespaces/post/NameSpaceAuthorizationRuleListKey[post]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.list_keys(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
        )

        # --------------------------------------------------------------------------
        # /Namespaces/post/NameSpaceUpdate[post]
        # --------------------------------------------------------------------------
        BODY = {"target_namespace_type": "EventHub"}
        # result = self.mgmt_client.namespaces.migrate(resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY)

        # --------------------------------------------------------------------------
        # /Namespaces/patch/NameSpaceUpdate[patch]
        # --------------------------------------------------------------------------
        BODY = {"location": AZURE_LOCATION, "tags": {"tag3": "value3", "tag4": "value4"}}
        result = self.mgmt_client.namespaces.update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )

        # --------------------------------------------------------------------------
        # /Namespaces/post/NameSpaceCheckNameAvailability[post]
        # --------------------------------------------------------------------------
        BODY = {"name": "sdk-Namespace-2924"}
        result = self.mgmt_client.namespaces.check_name_availability(parameters=BODY)

        # --------------------------------------------------------------------------
        # /Namespaces/delete/NameSpaceAuthorizationRuleDelete[delete]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.delete_authorization_rule(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
        )

        # --------------------------------------------------------------------------
        # /Namespaces/delete/NameSpaceDelete[delete]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.begin_delete(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )
        try:
            result = result.result()
        except HttpResponseError as e:
            if not str(e).startswith("(ResourceNotFound)"):
                raise e

    @unittest.skip("hard to test")
    @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
    @recorded_by_proxy
    def test_migration_configs(self, resource_group):

        RESOURCE_GROUP = resource_group.name
        NAMESPACE_NAME = "myNamespacexxyyzzxyyma"
        NAMESPACE_NAME_PRIMARY = "myNamespacexxyyzzykksecondm"
        AUTHORIZATION_RULE_NAME = "myAuthorizationRule"
        CONFIG_NAME = "$default"
        POST_MIGRATION_NAME = "postmigrationxxxky"

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceCreate[put] Standard
        # --------------------------------------------------------------------------
        BODY = {
            "sku": {"name": "Standard", "tier": "Standard"},
            "location": AZURE_LOCATION,
            "tags": {"tag1": "value1", "tag2": "value2"},
        }
        result = self.mgmt_client.namespaces.begin_create_or_update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )
        namespace = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceCreate[put] Primary
        # --------------------------------------------------------------------------
        BODY = {
            "sku": {"name": "Premium", "tier": "Premium"},
            "location": "westus",
            "tags": {"tag1": "value1", "tag2": "value2"},
        }
        result = self.mgmt_client.namespaces.begin_create_or_update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME_PRIMARY, parameters=BODY
        )
        second_namespace = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceAuthorizationRuleCreate[put]
        # --------------------------------------------------------------------------
        BODY = {"rights": ["Listen", "Send"]}
        result = self.mgmt_client.namespaces.create_or_update_authorization_rule(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
            parameters=BODY,
        )

        # --------------------------------------------------------------------------
        # /MigrationConfigs/put/MigrationConfigurationsStartMigration[put]
        # --------------------------------------------------------------------------
        BODY = {"target_namespace": second_namespace.id, "post_migration_name": POST_MIGRATION_NAME}
        result = self.mgmt_client.migration_configs.begin_create_and_start_migration(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, config_name=CONFIG_NAME, parameters=BODY
        )
        result = result.result()

        # --------------------------------------------------------------------------
        # /MigrationConfigs/get/MigrationConfigurationsList[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.migration_configs.list(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )

        # --------------------------------------------------------------------------
        # /Namespaces/post/NameSpaceUpdate[post]
        # --------------------------------------------------------------------------
        BODY = {"target_namespace_type": "EventHub"}
        result = self.mgmt_client.namespaces.migrate(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )

        # --------------------------------------------------------------------------
        # /MigrationConfigs/post/MigrationConfigurationsRevert[post]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.migration_configs.revert(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, config_name=CONFIG_NAME
        )

        # --------------------------------------------------------------------------
        # /MigrationConfigs/post/MigrationConfigurationsCompleteMigration[post]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.migration_configs.complete_migration(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, config_name=CONFIG_NAME
        )

        # --------------------------------------------------------------------------
        # /MigrationConfigs/get/MigrationConfigurationsGet[get]
        # --------------------------------------------------------------------------
        migration = self.mgmt_client.migration_configs.get(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, config_name=CONFIG_NAME
        )
        if self.is_live:
            count = 0
            while migration.provisioning_state != "Succeeded":
                time.sleep(30)
                migration = self.mgmt_client.migration_configs.get(
                    resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, config_name=CONFIG_NAME
                )
                count += 1
                if count > 10:
                    break

        # --------------------------------------------------------------------------
        # /MigrationConfigs/delete/MigrationConfigurationsDelete[delete]
        # --------------------------------------------------------------------------
        try:
            result = self.mgmt_client.migration_configs.delete(
                resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, config_name=CONFIG_NAME
            )
        except HttpResponseError as e:
            if not str(e).startswith("(NotFound)"):
                raise e

        # --------------------------------------------------------------------------
        # /Namespaces/delete/NameSpaceDelete[delete]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.begin_delete(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )
        result = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/delete/NameSpaceDelete[delete] Primary
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.begin_delete(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME_PRIMARY
        )
        try:
            result = result.result()
        except HttpResponseError as e:
            if not str(e).startswith("(ResourceNotFound)"):
                raise e

    @unittest.skip("unsupport.")
    @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
    @recorded_by_proxy
    def test_disaster_recovery_configs(self, resource_group):

        RESOURCE_GROUP = resource_group.name
        NAMESPACE_NAME = "myNamespacexxyyzzxyyab"
        NAMESPACE_NAME_PRIMARY = "myNamespacexxyyzzzyasecond"
        AUTHORIZATION_RULE_NAME = "myAuthorizationRule"
        ALIAS = "mydisasterrecovercf"

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceCreate[put]
        # --------------------------------------------------------------------------
        BODY = {
            "sku": {"name": "Premium", "tier": "Premium"},
            "location": AZURE_LOCATION,
            "tags": {"tag1": "value1", "tag2": "value2"},
        }
        result = self.mgmt_client.namespaces.begin_create_or_update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )
        namespace = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceCreate[put] Primary
        # --------------------------------------------------------------------------
        BODY = {
            "sku": {"name": "Premium", "tier": "Premium"},
            "location": "westus",
            "tags": {"tag1": "value1", "tag2": "value2"},
        }
        result = self.mgmt_client.namespaces.begin_create_or_update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME_PRIMARY, parameters=BODY
        )
        second_namespace = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/put/NameSpaceAuthorizationRuleCreate[put]
        # --------------------------------------------------------------------------
        BODY = {"rights": ["Listen", "Send"]}
        result = self.mgmt_client.namespaces.create_or_update_authorization_rule(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
            parameters=BODY,
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/post/AliasNameAvailability[post]
        # --------------------------------------------------------------------------
        BODY = {"name": "sdk-DisasterRecovery-9474"}
        result = self.mgmt_client2017.disaster_recovery_configs.check_name_availability(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, parameters=BODY
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/put/SBAliasCreate[put]
        # --------------------------------------------------------------------------
        BODY = {
            "partner_namespace": second_namespace.id,
        }
        result = self.mgmt_client2017.disaster_recovery_configs.create_or_update(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, alias=ALIAS, parameters=BODY
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/get/SBAliasGet[get]
        # --------------------------------------------------------------------------
        dr_config = self.mgmt_client2017.disaster_recovery_configs.get(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, alias=ALIAS
        )
        if self.is_live:
            count = 0
            while dr_config.provisioning_state != "Succeeded":
                time.sleep(30)
                dr_config = self.mgmt_client2017.disaster_recovery_configs.get(
                    resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, alias=ALIAS
                )
                count += 1
                if count > 10:
                    break

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/get/DisasterRecoveryConfigsAuthorizationRuleGet[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client2017.disaster_recovery_configs.get_authorization_rule(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            alias=ALIAS,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/get/NameSpaceAuthorizationRuleListAll[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client2017.disaster_recovery_configs.list_authorization_rules(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, alias=ALIAS
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/get/SBAliasList[get]
        # --------------------------------------------------------------------------
        result = self.mgmt_client2017.disaster_recovery_configs.list(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/post/DisasterRecoveryConfigsAuthorizationRuleListKey[post]
        # --------------------------------------------------------------------------
        result = self.mgmt_client2017.disaster_recovery_configs.list_keys(
            resource_group_name=RESOURCE_GROUP,
            namespace_name=NAMESPACE_NAME,
            alias=ALIAS,
            authorization_rule_name=AUTHORIZATION_RULE_NAME,
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/post/SBEHAliasBreakPairing[post]
        # --------------------------------------------------------------------------
        result = self.mgmt_client2017.disaster_recovery_configs.break_pairing(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, alias=ALIAS
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/post/SBAliasFailOver[post]
        # --------------------------------------------------------------------------
        result = self.mgmt_client2017.disaster_recovery_configs.fail_over(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME_PRIMARY, alias=ALIAS
        )

        # --------------------------------------------------------------------------
        # /DisasterRecoveryConfigs/delete/SBAliasDelete[delete]
        # --------------------------------------------------------------------------
        count = 0
        while count < 10:
            try:
                result = self.mgmt_client2017.disaster_recovery_configs.delete(
                    resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME, alias=ALIAS
                )
            except HttpResponseError as e:
                time.sleep(30)
                count += 1

        # --------------------------------------------------------------------------
        # /Namespaces/delete/NameSpaceDelete[delete]
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.begin_delete(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME
        )
        result = result.result()

        # --------------------------------------------------------------------------
        # /Namespaces/delete/NameSpaceDelete[delete] Primary
        # --------------------------------------------------------------------------
        result = self.mgmt_client.namespaces.begin_delete(
            resource_group_name=RESOURCE_GROUP, namespace_name=NAMESPACE_NAME_PRIMARY
        )
        try:
            result = result.result()
        except HttpResponseError as e:
            if not str(e).startswith("(ResourceNotFound)"):
                raise e