File: test_ssm_patch_baseline.py

package info (click to toggle)
python-moto 5.1.18-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 116,520 kB
  • sloc: python: 636,725; javascript: 181; makefile: 39; sh: 3
file content (99 lines) | stat: -rw-r--r-- 2,945 bytes parent folder | download | duplicates (2)
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
import boto3

from moto import mock_aws


@mock_aws
def test_create_patch_baseLine():
    ssm = boto3.client("ssm", region_name="us-east-1")

    baseline_name = "ExamplePatchBaseline"
    baseline_description = "Example patch baseline created using Boto3"

    # Define the approval rules for the patch baseline
    approval_rules = {
        "PatchRules": [
            {
                "PatchFilterGroup": {
                    "PatchFilters": [
                        {"Key": "PRODUCT", "Values": ["AmazonLinux2012.03"]},
                        {"Key": "CLASSIFICATION", "Values": ["Security"]},
                    ]
                },
                "ApproveAfterDays": 7,
                "ComplianceLevel": "CRITICAL",
            }
        ]
    }

    # Create the patch baseline
    response = ssm.create_patch_baseline(
        Name=baseline_name,
        OperatingSystem="AMAZON_LINUX",
        Description=baseline_description,
        ApprovalRules=approval_rules,
    )

    _id = response["BaselineId"]  # mw-01d6bbfdf6af2c39a

    response = ssm.describe_patch_baselines(
        Filters=[
            {
                "Key": "NAME_PREFIX",
                "Values": [
                    baseline_name,
                ],
            },
        ],
        MaxResults=50,
    )
    assert len(response["BaselineIdentities"]) == 1
    baseline = response["BaselineIdentities"][0]
    assert baseline["BaselineId"] == _id
    assert baseline["BaselineName"] == baseline_name
    assert baseline["DefaultBaseline"] is False
    assert baseline["OperatingSystem"] == "AMAZON_LINUX"
    assert baseline["BaselineDescription"] == baseline_description


@mock_aws
def test_delete_patch_baseline():
    ssm = boto3.client("ssm", region_name="us-east-1")

    baseline_name = "ExamplePatchBaseline"

    # Create the patch baseline
    response = ssm.create_patch_baseline(
        Name="ExamplePatchBaseline",
        OperatingSystem="AMAZON_LINUX",
        Description="Example patch baseline created using Boto3",
        ApprovalRules={
            "PatchRules": [
                {
                    "PatchFilterGroup": {
                        "PatchFilters": [
                            {"Key": "PRODUCT", "Values": ["AmazonLinux2012.03"]},
                            {"Key": "CLASSIFICATION", "Values": ["Security"]},
                        ]
                    },
                    "ApproveAfterDays": 7,
                    "ComplianceLevel": "CRITICAL",
                }
            ]
        },
    )

    _id = response["BaselineId"]  # pw-0a49ee14c7f305f55
    ssm.delete_patch_baseline(BaselineId=_id)
    response = ssm.describe_patch_baselines(
        Filters=[
            {
                "Key": "NAME_PREFIX",
                "Values": [
                    baseline_name,
                ],
            },
        ],
        MaxResults=50,
    )
    assert len(response["BaselineIdentities"]) == 0