def test_analysis_profile_description_validation():
    """ Test to validate profile description."""
    profile = AnalysisProfile(name=fauxfactory.gen_alphanumeric(), description="",
                              profile_type=AnalysisProfile.HOST_TYPE, files=files_list)
    with pytest.raises(AssertionError):
        profile.create()

    # Should still be on the form page after create method raises exception
    view = profile.create_view(AnalysisProfileAddView)
    assert view.is_displayed
    view.flash.assert_message("Description can't be blank")
    view.cancel.click()
def test_analysis_profile_description_validation():
    """ Test to validate profile description."""
    profile = AnalysisProfile(name=fauxfactory.gen_alphanumeric(), description="",
                              profile_type=AnalysisProfile.HOST_TYPE, files=files_list)
    with pytest.raises(AssertionError):
        profile.create()

    # Should still be on the form page after create method raises exception
    view = profile.create_view(AnalysisProfileAddView)
    assert view.is_displayed
    view.flash.assert_message("Description can't be blank")
    view.cancel.click()
def ssa_analysis_profile():
    collected_files = []
    for file in ssa_expect_files:
        collected_files.append({"Name": file, "Collect Contents?": True})

    analysis_profile_name = 'ssa_analysis_{}'.format(fauxfactory.gen_alphanumeric())
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=["System"],
                                       files=collected_files)
    analysis_profile.create()
    yield analysis_profile
    analysis_profile.delete()
def test_analysis_profile_item_validation():
    """ Test to validate analysis profile items."""
    profile_name = fauxfactory.gen_alphanumeric()
    profile = AnalysisProfile(name=profile_name, description=profile_name,
                              profile_type=AnalysisProfile.HOST_TYPE)

    with pytest.raises(AssertionError):
        profile.create()

    # Should still be on the form page after create method raises exception
    view = profile.create_view(AnalysisProfileAddView)
    assert view.is_displayed
    view.flash.assert_message("At least one item must be entered to create Analysis Profile")
    view.cancel.click()
def test_analysis_profile_item_validation():
    """ Test to validate analysis profile items."""
    profile_name = fauxfactory.gen_alphanumeric()
    profile = AnalysisProfile(name=profile_name, description=profile_name,
                              profile_type=AnalysisProfile.HOST_TYPE)

    with pytest.raises(AssertionError):
        profile.create()

    # Should still be on the form page after create method raises exception
    view = profile.create_view(AnalysisProfileAddView)
    assert view.is_displayed
    view.flash.assert_message("At least one item must be entered to create Analysis Profile")
    view.cancel.click()
def ssa_analysis_profile():
    collected_files = []
    for file in ssa_expect_files:
        collected_files.append({"Name": file, "Collect Contents?": True})

    analysis_profile_name = 'default'
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=["System", "Software", "System",
                                                   "User Accounts", "VM Configuration"],
                                       files=collected_files)
    analysis_profile.create()
    yield analysis_profile
    analysis_profile.delete()
Example #7
0
def vm_profile():
    return AnalysisProfile(name=fauxfactory.gen_alphanumeric(),
                           description=fauxfactory.gen_alphanumeric(),
                           profile_type=AnalysisProfile.VM_TYPE,
                           files=files_list,
                           categories=categories_list,
                           registry=registry_list,
                           events=events_check())
def policy_profile(request, appliance, instance):
    collected_files = [
        {"Name": "/etc/redhat-access-insights/machine-id", "Collect Contents?": True},
        {"Name": ssa_expect_file, "Collect Contents?": True}
    ]

    analysis_profile_name = 'ssa_analysis_{}'.format(fauxfactory.gen_alphanumeric())
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=["System"],
                                       files=collected_files)
    if analysis_profile.exists:
        analysis_profile.delete()
    analysis_profile.create()
    request.addfinalizer(analysis_profile.delete)

    action = appliance.collections.actions.create(
        'ssa_action_{}'.format(fauxfactory.gen_alpha()),
        "Assign Profile to Analysis Task",
        dict(analysis_profile=analysis_profile_name))
    if action.exists:
        action.delete()
    request.addfinalizer(action.delete)

    policy = appliance.collections.policies.create(
        VMControlPolicy,
        'ssa_policy_{}'.format(fauxfactory.gen_alpha())
    )
    if policy.exists:
        policy.delete()
    request.addfinalizer(policy.delete)

    policy.assign_events("VM Analysis Start")
    request.addfinalizer(policy.assign_events)
    policy.assign_actions_to_event("VM Analysis Start", action)

    profile = appliance.collections.policy_profiles.create(
        'ssa_policy_profile_{}'.format(fauxfactory.gen_alpha()), policies=[policy])
    if profile.exists:
        profile.delete()
    request.addfinalizer(profile.delete)

    instance.assign_policy_profiles(profile.description)
    request.addfinalizer(lambda: instance.unassign_policy_profiles(profile.description))
Example #9
0
def analysis_profile():
    ap = AnalysisProfile(
        name="default",
        description="ap-desc",
        profile_type=AnalysisProfile.VM_TYPE,
        categories=["Services", "User Accounts", "Software", "VM Configuration", "System"]
    )
    if ap.exists:
        ap.delete()
    ap.create()
    yield ap
    ap.delete()
Example #10
0
def analysis_profile():
    ap = AnalysisProfile(name="default",
                         description="ap-desc",
                         profile_type=AnalysisProfile.VM_TYPE,
                         categories=[
                             "check_services", "check_accounts",
                             "check_software", "check_vmconfig", "check_system"
                         ])
    if ap.exists:
        ap.delete()
    ap.create()
    yield ap
    ap.delete()
Example #11
0
def analysis_profile():
    ap = AnalysisProfile(
        name="default",
        description="ap-desc",
        profile_type=AnalysisProfile.VM_TYPE,
        categories=["Services", "User Accounts", "Software", "VM Configuration", "System"]
    )
    if ap.exists:
        ap.delete()
    ap.create()
    yield ap
    ap.delete()
def test_edit_default_analysis_profile():
    """ Test to validate edit default profiles."""
    profile = AnalysisProfile(name="host sample", description='Host Sample',
                              profile_type=AnalysisProfile.HOST_TYPE)
    # Option disabled from details
    view = navigate_to(profile, 'Details')
    assert not view.toolbar.configuration.item_enabled('Edit this Analysis Profile')

    # Flash error from collection
    view = navigate_to(profile, 'All')
    row = view.entities.table.row(name=profile.name, description=profile.description)
    row[0].check()
    view.toolbar.configuration.item_select('Edit the selected Analysis Profiles')
    view.flash.assert_message('Sample Analysis Profile "{}" can not be edited'.format(profile.name))
def ssa_analysis_profile():
    collected_files = []
    for file in ssa_expect_files:
        collected_files.append({"Name": file, "Collect Contents?": True})

    analysis_profile_name = 'default'
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=["System", "Software", "Services",
                                                   "User Accounts", "VM Configuration"],
                                       files=collected_files)
    if analysis_profile.exists:
        analysis_profile.delete()
    analysis_profile.create()
    yield analysis_profile
    if analysis_profile.exists:
        analysis_profile.delete()
def test_analysis_profile_duplicate_name():
    """ Test to validate duplicate profiles name."""
    profile = AnalysisProfile(name=fauxfactory.gen_alphanumeric(),
                              description=fauxfactory.gen_alphanumeric(),
                              profile_type=AnalysisProfile.VM_TYPE,
                              categories=categories_list)
    profile.create()

    with pytest.raises(AssertionError):
        profile.create()

    # Should still be on the form page after create method raises exception
    view = profile.create_view(AnalysisProfileAddView)
    assert view.is_displayed
    view.flash.assert_message("Name has already been taken")
    view.cancel.click()
def ssa_analysis_profile():
    collected_files = []
    for file in ssa_expect_files:
        collected_files.append({"Name": file, "Collect Contents?": True})

    analysis_profile_name = 'ssa_analysis_{}'.format(fauxfactory.gen_alphanumeric())
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=["System"],
                                       files=collected_files)
    analysis_profile.create()
    yield analysis_profile
    analysis_profile.delete()
Example #16
0
def policy_profile(request, instance):
    collected_files = [{
        "Name": "/etc/redhat-access-insights/machine-id",
        "Collect Contents?": True
    }, {
        "Name": ssa_expect_file,
        "Collect Contents?": True
    }]

    analysis_profile_name = 'ssa_analysis_{}'.format(
        fauxfactory.gen_alphanumeric())
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=["System"],
                                       files=collected_files)
    if analysis_profile.exists:
        analysis_profile.delete()
    analysis_profile.create()
    request.addfinalizer(analysis_profile.delete)

    action = Action('ssa_action_{}'.format(fauxfactory.gen_alpha()),
                    "Assign Profile to Analysis Task",
                    dict(analysis_profile=analysis_profile_name))
    if action.exists:
        action.delete()
    action.create()
    request.addfinalizer(action.delete)

    policy = VMControlPolicy('ssa_policy_{}'.format(fauxfactory.gen_alpha()))
    if policy.exists:
        policy.delete()
    policy.create()
    request.addfinalizer(policy.delete)

    policy.assign_events("VM Analysis Start")
    request.addfinalizer(policy.assign_events)
    policy.assign_actions_to_event("VM Analysis Start", action)

    profile = PolicyProfile('ssa_policy_profile_{}'.format(
        fauxfactory.gen_alpha()),
                            policies=[policy])
    if profile.exists:
        profile.delete()
    profile.create()
    request.addfinalizer(profile.delete)

    instance.assign_policy_profiles(profile.description)
    request.addfinalizer(
        lambda: instance.unassign_policy_profiles(profile.description))
def test_analysis_profile_duplicate_name():
    """ Test to validate duplicate profiles name."""
    profile = AnalysisProfile(name=fauxfactory.gen_alphanumeric(),
                              description=fauxfactory.gen_alphanumeric(),
                              profile_type=AnalysisProfile.VM_TYPE,
                              categories=categories_list)
    profile.create()

    with pytest.raises(AssertionError):
        profile.create()

    # Should still be on the form page after create method raises exception
    view = profile.create_view(AnalysisProfileAddView)
    assert view.is_displayed
    view.flash.assert_message("Name has already been taken")
    view.cancel.click()
Example #18
0
def ssa_analysis_profile():
    collected_files = []
    for file in ssa_expect_files:
        collected_files.append({"Name": file, "Collect Contents?": True})

    analysis_profile_name = 'default_{}'.format(fauxfactory.gen_alpha())
    analysis_profile = AnalysisProfile(name=analysis_profile_name,
                                       description=analysis_profile_name,
                                       profile_type=AnalysisProfile.VM_TYPE,
                                       categories=[
                                           "System", "Software", "System",
                                           "User Accounts", "VM Configuration"
                                       ],
                                       files=collected_files)
    analysis_profile.create()
    yield analysis_profile
    analysis_profile.delete()
def host_profile():
    return AnalysisProfile(name=fauxfactory.gen_alphanumeric(),
                           description=fauxfactory.gen_alphanumeric(),
                           profile_type=AnalysisProfile.HOST_TYPE,
                           files=files_list, events=events_check())