vitrage/vitrage_tempest_tests/tests/common/vitrage_utils.py
Ifat Afek 4576523641 Support per-version template loading + change execute_mistral structure
This change contains refactoring of the template validation and loading,
in order to allow different validators and loaders for execute_mistral
action in versions 1 and 2.

* template_versions.py contains all supported versions, including their
  validators and loaders (and in the future - functions like get_attr())
* template_version_factory.py allows getting the right template version
  instance
* validators and loaders are retrieved only from the template-version
  instance, and are no longer created directly
* All content validators and loaders were moved under v1 and v2 packages

In addition, the structure of execute_mistral has changed, so now all
the input parameters of the workflow must reside under an 'input' section.

Change-Id: I8eebc79b0885eab9c013fafdc17ae8378c7bcedf
2018-01-01 09:59:07 +00:00

50 lines
1.7 KiB
Python

# Copyright 2017 - Nokia
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from datetime import datetime
from vitrage.datasources import NOVA_HOST_DATASOURCE
from vitrage.datasources import NOVA_INSTANCE_DATASOURCE
from vitrage_tempest_tests.tests.common import general_utils as g_utils
from vitrage_tempest_tests.tests.common.tempest_clients import TempestClients
DOWN = 'down'
UP = 'up'
def generate_fake_host_alarm(hostname, event_type, enabled=True):
details = {
'hostname': hostname,
'source': 'fake_tempest_monitor',
'cause': 'another alarm',
'severity': 'critical',
'status': DOWN if enabled else UP,
'monitor_id': 'fake tempest monitor id',
'monitor_event_id': '111',
}
event_time = datetime.now()
event_time_iso = event_time.isoformat()
TempestClients.vitrage().event.post(event_time_iso, event_type, details)
def get_first_host(**kwargs):
hosts = TempestClients.vitrage().resource.list(
NOVA_HOST_DATASOURCE, all_tenants=True)
return g_utils.first_match(hosts, **kwargs)
def get_first_instance(**kwargs):
instances = TempestClients.vitrage().resource.list(
NOVA_INSTANCE_DATASOURCE, all_tenants=True)
return g_utils.first_match(instances, **kwargs)