def setup_for_alerts(request, alerts, event=None, vm_name=None, provider=None): """This function takes alerts and sets up CFME for testing it. If event and further args are not specified, it won't create the actions and policy profiles. Args: request: py.test funcarg request alerts: Alert objects event: Event to hook on (VM Power On, ...) vm_name: VM name to use for policy filtering provider: funcarg provider """ alert_profile = explorer.VMInstanceAlertProfile( "Alert profile for {}".format(vm_name), alerts) alert_profile.create() request.addfinalizer(alert_profile.delete) alert_profile.assign_to("The Enterprise") if event is not None: action = explorer.Action("Evaluate Alerts for {}".format(vm_name), "Evaluate Alerts", alerts) action.create() request.addfinalizer(action.delete) policy = explorer.VMControlPolicy( "Evaluate Alerts policy for {}".format(vm_name), scope="fill_field(VM and Instance : Name, INCLUDES, {})".format( vm_name)) policy.create() request.addfinalizer(policy.delete) policy_profile = explorer.PolicyProfile( "Policy profile for {}".format(vm_name), [policy]) policy_profile.create() request.addfinalizer(policy_profile.delete) policy.assign_actions_to_event(event, [action]) provider.assign_policy_profiles(policy_profile.description) request.addfinalizer(lambda: provider.unassign_policy_profiles( policy_profile.description))
def setup_for_alerts(request, alerts, event, vm_name, provider): """This function takes alerts and sets up CFME for testing it Args: request: py.test funcarg request alerts: Alert objects event: Event to hook on (VM Power On, ...) vm_name: VM name to use for policy filtering provider: funcarg provider_data """ setup_provider(provider.key) alert_profile = explorer.VMInstanceAlertProfile( "Alert profile for %s" % vm_name, alerts) alert_profile.create() request.addfinalizer(alert_profile.delete) alert_profile.assign_to("The Enterprise") action = explorer.Action("Evaluate Alerts for %s" % vm_name, "Evaluate Alerts", alerts) action.create() request.addfinalizer(action.delete) policy = explorer.VMControlPolicy( "Evaluate Alerts policy for %s" % vm_name, scope="fill_field(VM and Instance : Name, INCLUDES, %s)" % vm_name) policy.create() request.addfinalizer(policy.delete) policy_profile = explorer.PolicyProfile("Policy profile for %s" % vm_name, [policy]) policy_profile.create() request.addfinalizer(policy_profile.delete) policy.assign_actions_to_event(event, [action]) prov = Provider(provider.data["name"]) prov.assign_policy_profiles(policy_profile.description)