def test_group_deployment_crossrg(self, resource_group, resource_group_cross): curr_dir = os.path.dirname(os.path.realpath(__file__)) template_file = os.path.join(curr_dir, 'crossrg_deploy.json').replace('\\', '\\\\') deployment_name = self.create_random_name('azure-cli-crossrgdeployment', 40) storage_account_1 = create_random_name(prefix='crossrg') storage_account_2 = create_random_name(prefix='crossrg') self.cmd( 'group deployment validate -g {} --template-file {} --parameters CrossRg={} StorageAccountName1={} StorageAccountName2={}'.format( resource_group, template_file, resource_group_cross, storage_account_1, storage_account_2), checks=[ JCheck('properties.provisioningState', 'Succeeded') ]) self.cmd('group deployment create -g {} -n {} --template-file {} --parameters CrossRg={}'.format( resource_group, deployment_name, template_file, resource_group_cross), checks=[ JCheck('properties.provisioningState', 'Succeeded'), JCheck('resourceGroup', resource_group), ]) self.cmd('group deployment list -g {}'.format(resource_group), checks=[ JCheck('[0].name', deployment_name), JCheck('[0].resourceGroup', resource_group) ]) self.cmd('group deployment show -g {} -n {}'.format(resource_group, deployment_name), checks=[ JCheck('name', deployment_name), JCheck('resourceGroup', resource_group) ]) self.cmd('group deployment operation list -g {} -n {}'.format(resource_group, deployment_name), checks=[ JCheck('length([])', 3), JCheck('[0].resourceGroup', resource_group) ])
def test_group_deployment_crossrg(self, resource_group, resource_group_cross): curr_dir = os.path.dirname(os.path.realpath(__file__)) self.kwargs.update({ 'rg1': resource_group, 'rg2': resource_group_cross, 'tf': os.path.join(curr_dir, 'crossrg_deploy.json').replace('\\', '\\\\'), 'dn': self.create_random_name('azure-cli-crossrgdeployment', 40), 'sa1': create_random_name(prefix='crossrg'), 'sa2': create_random_name(prefix='crossrg') }) self.cmd('group deployment validate -g {rg1} --template-file "{tf}" --parameters CrossRg={rg2} StorageAccountName1={sa1} StorageAccountName2={sa2}', checks=[ self.check('properties.provisioningState', 'Succeeded') ]) self.cmd('group deployment create -g {rg1} -n {dn} --template-file "{tf}" --parameters CrossRg={rg2}', checks=[ self.check('properties.provisioningState', 'Succeeded'), self.check('resourceGroup', '{rg1}'), ]) self.cmd('group deployment list -g {rg1}', checks=[ self.check('[0].name', '{dn}'), self.check('[0].resourceGroup', '{rg1}') ]) self.cmd('group deployment show -g {rg1} -n {dn}', checks=[ self.check('name', '{dn}'), self.check('resourceGroup', '{rg1}') ]) self.cmd('group deployment operation list -g {rg1} -n {dn}', checks=[ self.check('length([])', 3), self.check('[0].resourceGroup', '{rg1}') ])
def test_group_deployment_crossrg(self, resource_group, resource_group_cross): curr_dir = os.path.dirname(os.path.realpath(__file__)) template_file = os.path.join(curr_dir, 'crossrg_deploy.json').replace('\\', '\\\\') deployment_name = self.create_random_name('azure-cli-crossrgdeployment', 40) storage_account_1 = create_random_name(prefix='crossrg') storage_account_2 = create_random_name(prefix='crossrg') self.cmd('group deployment validate -g {} --template-file {} --parameters CrossRg={} StorageAccountName1={} StorageAccountName2={}'.format( resource_group, template_file, resource_group_cross, storage_account_1, storage_account_2), checks=[ JCheck('properties.provisioningState', 'Succeeded') ]) self.cmd('group deployment create -g {} -n {} --template-file {} --parameters CrossRg={}'.format( resource_group, deployment_name, template_file, resource_group_cross), checks=[ JCheck('properties.provisioningState', 'Succeeded'), JCheck('resourceGroup', resource_group), ]) self.cmd('group deployment list -g {}'.format(resource_group), checks=[ JCheck('[0].name', deployment_name), JCheck('[0].resourceGroup', resource_group) ]) self.cmd('group deployment show -g {} -n {}'.format(resource_group, deployment_name), checks=[ JCheck('name', deployment_name), JCheck('resourceGroup', resource_group) ]) self.cmd('group deployment operation list -g {} -n {}'.format(resource_group, deployment_name), checks=[ JCheck('length([])', 3), JCheck('[0].resourceGroup', resource_group) ])
def setUp(self): self.test_individual_detection = yaml.safe_load( Path(TEST_INDIVIDUAL_DETECTION_FILE).read_text() ) self.test_folder_detections = [ yaml.safe_load(file.read_text()) for file in Path(TEST_VALID_DETECTIONS_FOLDER).glob("**/*.yaml") ] self.resource_provider = DEFAULT_RESOURCE_PROVIDER if self.in_recording: self.resource_group_name = create_random_name(TEST_RESOURCE_GROUP_PREFIX) self.workspace_name = create_random_name() self.cmd( CREATE_RESOURCE_GROUP_TEMPLATE.format( TEST_LOCATION, self.resource_group_name ) ) self.cmd( CREATE_WORKSPACE_TEMPLATE.format( self.resource_group_name, str(TEST_WORKSPACE_TEMPLATE), self.workspace_name, ) ) else: self.resource_group_name = RECORDED_RESOURCE_GROUP self.workspace_name = RECORDED_WORKSPACE_NAME super(ScenarioTest, self).setUp()
def test_group_deployment_crossrg(self, resource_group, resource_group_cross): curr_dir = os.path.dirname(os.path.realpath(__file__)) self.kwargs.update({ 'rg1': resource_group, 'rg2': resource_group_cross, 'tf': os.path.join(curr_dir, 'crossrg_deploy.json').replace('\\', '\\\\'), 'dn': self.create_random_name('azure-cli-crossrgdeployment', 40), 'sa1': create_random_name(prefix='crossrg'), 'sa2': create_random_name(prefix='crossrg') }) self.cmd('group deployment validate -g {rg1} --template-file "{tf}" --parameters CrossRg={rg2} StorageAccountName1={sa1} StorageAccountName2={sa2}', checks=[ self.check('properties.provisioningState', 'Succeeded') ]) self.cmd('group deployment create -g {rg1} -n {dn} --template-file "{tf}" --parameters CrossRg={rg2}', checks=[ self.check('properties.provisioningState', 'Succeeded'), self.check('resourceGroup', '{rg1}'), ]) self.cmd('group deployment list -g {rg1}', checks=[ self.check('[0].name', '{dn}'), self.check('[0].resourceGroup', '{rg1}') ]) self.cmd('group deployment show -g {rg1} -n {dn}', checks=[ self.check('name', '{dn}'), self.check('resourceGroup', '{rg1}') ]) self.cmd('group deployment operation list -g {rg1} -n {dn}', checks=[ self.check('length([])', 3), self.check('[0].resourceGroup', '{rg1}') ])
def test_sentinel_detection_generate(self): detection_name = create_random_name() with tempfile.TemporaryDirectory() as generated_detections_folder: self.cmd( GENERATE_CMD_TEMPLATE.format(detection_name, generated_detections_folder)) detection_file = (Path(generated_detections_folder) / detection_name / (detection_name + '.yaml')) detection_documentation = (Path(generated_detections_folder) / detection_name / (detection_name + '.md')) generated_detection = yaml.safe_load(detection_file.read_text()) self.assertEquals(generated_detection[DISPLAY_NAME_KEY], detection_name) self.assertTrue(detection_documentation.exists())