-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
691b3e4
commit eb3b7d0
Showing
3 changed files
with
170 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
from unittest import mock | ||
|
||
from boto3 import client | ||
from moto import mock_aws | ||
|
||
from tests.providers.aws.utils import ( | ||
AWS_ACCOUNT_NUMBER, | ||
AWS_REGION_US_EAST_1, | ||
set_mocked_aws_provider, | ||
) | ||
|
||
|
||
class Test_mq_activemq_broker_active_standby_mode: | ||
@mock_aws | ||
def test_no_brokers(self): | ||
from prowler.providers.aws.services.mq.mq_service import MQ | ||
|
||
aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1]) | ||
|
||
with mock.patch( | ||
"prowler.providers.common.provider.Provider.get_global_provider", | ||
return_value=aws_provider, | ||
): | ||
with mock.patch( | ||
"prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode.mq_client", | ||
new=MQ(aws_provider), | ||
): | ||
# Test Check | ||
from prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode import ( | ||
mq_activemq_broker_active_standby_mode, | ||
) | ||
|
||
check = mq_activemq_broker_active_standby_mode() | ||
result = check.execute() | ||
|
||
assert len(result) == 0 | ||
|
||
@mock_aws | ||
def test_no_activemq_brokers(self): | ||
from prowler.providers.aws.services.mq.mq_service import MQ | ||
|
||
aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1]) | ||
|
||
with mock.patch( | ||
"prowler.providers.common.provider.Provider.get_global_provider", | ||
return_value=aws_provider, | ||
): | ||
with mock.patch( | ||
"prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode.mq_client", | ||
new=MQ(aws_provider), | ||
): | ||
# Test Check | ||
from prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode import ( | ||
mq_activemq_broker_active_standby_mode, | ||
) | ||
|
||
check = mq_activemq_broker_active_standby_mode() | ||
result = check.execute() | ||
|
||
assert len(result) == 0 | ||
|
||
@mock_aws | ||
def test_activemq_broker_active_standby_mode_enabled(self): | ||
mq_client = client("mq", region_name=AWS_REGION_US_EAST_1) | ||
broker_id = mq_client.create_broker( | ||
BrokerName="test-broker", | ||
EngineType="ACTIVEMQ", | ||
EngineVersion="5.15.0", | ||
HostInstanceType="mq.t2.micro", | ||
Users=[ | ||
{ | ||
"Username": "admin", | ||
"Password": "admin", | ||
}, | ||
], | ||
DeploymentMode="ACTIVE_STANDBY_MULTI_AZ", | ||
PubliclyAccessible=False, | ||
AutoMinorVersionUpgrade=True, | ||
)["BrokerId"] | ||
|
||
from prowler.providers.aws.services.mq.mq_service import MQ | ||
|
||
aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1]) | ||
|
||
with mock.patch( | ||
"prowler.providers.common.provider.Provider.get_global_provider", | ||
return_value=aws_provider, | ||
): | ||
with mock.patch( | ||
"prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode.mq_client", | ||
new=MQ(aws_provider), | ||
): | ||
# Test Check | ||
from prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode import ( | ||
mq_activemq_broker_active_standby_mode, | ||
) | ||
|
||
check = mq_activemq_broker_active_standby_mode() | ||
result = check.execute() | ||
|
||
assert len(result) == 1 | ||
assert result[0].status == "PASS" | ||
assert ( | ||
result[0].status_extended | ||
== f"MQ Broker {broker_id} does have active/standby deployment mode enabled." | ||
) | ||
assert result[0].resource_id == broker_id | ||
assert ( | ||
result[0].resource_arn | ||
== f"arn:{aws_provider.identity.partition}:mq:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:broker:{broker_id}" | ||
) | ||
assert result[0].region == AWS_REGION_US_EAST_1 | ||
|
||
@mock_aws | ||
def test_activemq_broker_active_standby_mode_disabled(self): | ||
mq_client = client("mq", region_name=AWS_REGION_US_EAST_1) | ||
broker_id = mq_client.create_broker( | ||
BrokerName="test-broker", | ||
EngineType="ACTIVEMQ", | ||
EngineVersion="5.15.0", | ||
HostInstanceType="mq.t2.micro", | ||
Users=[ | ||
{ | ||
"Username": "admin", | ||
"Password": "admin", | ||
}, | ||
], | ||
DeploymentMode="SINGLE_INSTANCE", | ||
PubliclyAccessible=False, | ||
AutoMinorVersionUpgrade=False, | ||
)["BrokerId"] | ||
|
||
from prowler.providers.aws.services.mq.mq_service import MQ | ||
|
||
aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1]) | ||
|
||
with mock.patch( | ||
"prowler.providers.common.provider.Provider.get_global_provider", | ||
return_value=aws_provider, | ||
): | ||
with mock.patch( | ||
"prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode.mq_client", | ||
new=MQ(aws_provider), | ||
): | ||
# Test Check | ||
from prowler.providers.aws.services.mq.mq_activemq_broker_active_standby_mode.mq_activemq_broker_active_standby_mode import ( | ||
mq_activemq_broker_active_standby_mode, | ||
) | ||
|
||
check = mq_activemq_broker_active_standby_mode() | ||
result = check.execute() | ||
|
||
assert len(result) == 1 | ||
assert result[0].status == "FAIL" | ||
assert ( | ||
result[0].status_extended | ||
== f"MQ Broker {broker_id} does not have active/standby deployment mode enabled." | ||
) | ||
assert result[0].resource_id == broker_id | ||
assert ( | ||
result[0].resource_arn | ||
== f"arn:{aws_provider.identity.partition}:mq:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:broker:{broker_id}" | ||
) | ||
assert result[0].region == AWS_REGION_US_EAST_1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters