コード例 #1
0
def _clone_and_replace_action_group(source_monitor_client,
                                    target_monitor_client, cmd, alert_rule,
                                    action_group_mapping, target_resource):
    for index, action in enumerate(alert_rule.actions):
        if action.action_group_id in action_group_mapping:
            alert_rule.actions[index] = action_group_mapping[
                action.action_group_id][1]
        else:
            resource_group_name, name = _parse_id(
                action.action_group_id).values()
            action_group = source_monitor_client.action_groups.get(
                resource_group_name, name)
            name = CLONED_NAME.format(name, gen_guid())
            resource_group_name, _ = _parse_id(target_resource).values()
            new_action_group = target_monitor_client.action_groups.create_or_update(
                resource_group_name, name, action_group)
            MetricAlertAction = cmd.get_models('MetricAlertAction',
                                               operation_group='metric_alerts')
            new_action = MetricAlertAction(
                action_group_id=new_action_group.id,
                webhook_properties=action.webhook_properties)
            alert_rule.actions[index] = new_action
            action_group_mapping[action.action_group_id] = [
                new_action_group.id, new_action
            ]
    return alert_rule
コード例 #2
0
def _add_into_existing_scopes(monitor_client, alert_rule, target_resource):
    alert_rule.scopes.append(target_resource)
    resource_group_name, name = _parse_id(alert_rule.id).values()
    return monitor_client.metric_alerts.create_or_update(
        resource_group_name=resource_group_name,
        rule_name=name,
        parameters=alert_rule)
コード例 #3
0
def _clone_alert_rule(monitor_client, alert_rule, target_resource):
    alert_rule.scopes = [target_resource]
    resource_group_name, name = _parse_id(target_resource).values()
    name = CLONED_NAME.format(name, gen_guid())
    return monitor_client.metric_alerts.create_or_update(
        resource_group_name=resource_group_name,
        rule_name=name,
        parameters=alert_rule)
コード例 #4
0
def recover_log_analytics_workspace(cmd, workspace_name, resource_group_name=None, no_wait=False):
    deleted_workspaces_client = _log_analytics_client_factory(cmd.cli_ctx).deleted_workspaces
    workspace_client = _log_analytics_client_factory(cmd.cli_ctx).workspaces
    deleted_workspaces = list(list_deleted_log_analytics_workspaces(deleted_workspaces_client, resource_group_name))
    for deleted_workspace in deleted_workspaces:
        if deleted_workspace.name.lower() == workspace_name.lower():
            workspace_instance = Workspace(location=deleted_workspace.location)

            return sdk_no_wait(no_wait, workspace_client.begin_create_or_update,
                               _parse_id(deleted_workspace.id)['resource-group'],
                               workspace_name, workspace_instance)

    raise CLIError('{} is not a deleted workspace and you can only recover a deleted workspace within 14 days.'
                   .format(workspace_name))
コード例 #5
0
 def test_split_dict_id(self):
     with self.assertRaises(TypeError):
         _parse_id(TestResourceGroupTransform.DICT_ID)
コード例 #6
0
 def test_split_non_resourcegroup_id(self):
     with self.assertRaises(KeyError):
         _parse_id(TestResourceGroupTransform.NON_RG_ID)
コード例 #7
0
 def test_split_bogus_resourcegroup_id(self):
     with self.assertRaises(IndexError):
         _parse_id(TestResourceGroupTransform.BOGUS_ID)
コード例 #8
0
 def test_split_correct_id(self):
     result = _parse_id(TestResourceGroupTransform.CORRECT_ID)
     self.assertDictEqual(result, {
         'resource-group': 'REsourceGROUPname',
         'name': 'vMName'
     })
コード例 #9
0
 def test_split_dict_id(self):
     with self.assertRaises(TypeError):
         _parse_id(TestResourceGroupTransform.DICT_ID)
コード例 #10
0
 def test_split_bogus_resourcegroup_id(self):
     with self.assertRaises(IndexError):
         _parse_id(TestResourceGroupTransform.BOGUS_ID)
コード例 #11
0
 def test_split_non_resourcegroup_id(self):
     with self.assertRaises(KeyError):
         _parse_id(TestResourceGroupTransform.NON_RG_ID)
コード例 #12
0
 def test_split_correct_id(self):
     result = _parse_id(TestResourceGroupTransform.CORRECT_ID)
     self.assertDictEqual(result, {
         'resource-group': 'REsourceGROUPname',
         'name': 'vMName'
     })