977b5ef7ce
This adds entrypoint option to container which overwrites the default ENTRYPOINT of the docker image. Change-Id: Id80bb287d452aa74df458394ea2774af1eaf6726 Implements: blueprint support-entrypoint-option
597 lines
22 KiB
Python
597 lines
22 KiB
Python
# 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.
|
|
"""Zun test utilities."""
|
|
|
|
from oslo_config import cfg
|
|
|
|
from zun.common import consts
|
|
from zun.common import name_generator
|
|
from zun.db import api as db_api
|
|
from zun.objects.container import Cpuset
|
|
|
|
CONF = cfg.CONF
|
|
|
|
|
|
def get_cpuset_obj():
|
|
return Cpuset._from_dict({'cpuset_cpus': set([0, 1]),
|
|
'cpuset_mems': set([0])})
|
|
|
|
|
|
def get_cpuset_dict():
|
|
return {'cpuset_cpus': set([0, 1]), 'cpuset_mems': set([0])}
|
|
|
|
|
|
def get_test_container(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'uuid': kwargs.get('uuid', 'ea8e2a25-2901-438d-8157-de7ffd68d051'),
|
|
'container_id': kwargs.get('container_id', 'ddcb39a3fcec'),
|
|
'name': kwargs.get('name', 'container1'),
|
|
'project_id': kwargs.get('project_id', 'fake_project'),
|
|
'user_id': kwargs.get('user_id', 'fake_user'),
|
|
'image': kwargs.get('image', 'ubuntu'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'command': kwargs.get('command', ['fake_command']),
|
|
'status': kwargs.get('status', 'Running'),
|
|
'status_reason': kwargs.get('status_reason', 'Created Successfully'),
|
|
'task_state': kwargs.get('task_state', None),
|
|
'environment': kwargs.get('environment', {'key1': 'val1',
|
|
'key2': 'val2'}),
|
|
'cpu': kwargs.get('cpu', 1.0),
|
|
'memory': kwargs.get('memory', '512'),
|
|
'workdir': kwargs.get('workdir', '/home/ubuntu'),
|
|
'ports': kwargs.get('ports', [80, 443]),
|
|
'hostname': kwargs.get('hostname', 'testhost'),
|
|
'labels': kwargs.get('labels', {'key1': 'val1', 'key2': 'val2'}),
|
|
'addresses': kwargs.get('addresses', {
|
|
kwargs.get('network', 'private'): [
|
|
{
|
|
'subnet_id': 'f89ae741-999e-4873-b38c-779e3deb8458',
|
|
'version': 4,
|
|
'preserve_on_delete': False,
|
|
'addr': '172.24.4.4',
|
|
'port': kwargs.get('port',
|
|
'22626847-f511-42ee-ab06-8a9764ad2680')
|
|
},
|
|
{
|
|
'subnet_id': '3e4e9708-d83b-46fb-8591-8143bd66206e',
|
|
'version': 6,
|
|
'preserve_on_delete': False,
|
|
'addr': '2001:db8::5',
|
|
'port': kwargs.get('port',
|
|
'22626847-f511-42ee-ab06-8a9764ad2680')
|
|
}
|
|
],
|
|
}),
|
|
'image_pull_policy': kwargs.get('image_pull_policy', 'always'),
|
|
'host': kwargs.get('host', 'localhost'),
|
|
'restart_policy': kwargs.get('restart_policy',
|
|
{'Name': 'no', 'MaximumRetryCount': '0'}),
|
|
'status_detail': kwargs.get('status_detail', 'up from 5 hours'),
|
|
'interactive': kwargs.get('interactive', True),
|
|
'tty': kwargs.get('tty', True),
|
|
'image_driver': kwargs.get('image_driver', 'glance'),
|
|
'websocket_url': 'ws://127.0.0.1:6784/4c03164962fa/attach/'
|
|
'ws?logs=0&stream=1&stdin=1&stdout=1&stderr=1',
|
|
'websocket_token': '7878038e-957c-4d52-ae19-1e9561784e7b',
|
|
'security_groups': kwargs.get('security_groups', ['default']),
|
|
'auto_remove': kwargs.get('auto_remove', False),
|
|
'runtime': kwargs.get('runtime', 'runc'),
|
|
'disk': kwargs.get('disk', 20),
|
|
'auto_heal': kwargs.get('auto_heal', False),
|
|
'started_at': kwargs.get('started_at'),
|
|
'privileged': kwargs.get('privileged', False),
|
|
'healthcheck': kwargs.get('healthcheck',
|
|
{"retries": "2", "timeout": 3,
|
|
"test": "stat /etc/passwd || exit 1",
|
|
"interval": 3}),
|
|
'exposed_ports': kwargs.get('exposed_ports', {"80/tcp": {}}),
|
|
'cpu_policy': kwargs.get('cpu_policy', None),
|
|
'cpuset': kwargs.get('cpuset', None),
|
|
'registry_id': kwargs.get('registry_id', None),
|
|
'container_type': kwargs.get('container_type', consts.TYPE_CONTAINER),
|
|
'capsule_id': kwargs.get('capsule_id', 33),
|
|
'annotations': kwargs.get('annotations', '{"key": "val"}'),
|
|
'cni_metadata': kwargs.get('cni_metadata', '{"key": "val"}'),
|
|
'entrypoint': kwargs.get('entrypoint', 'fake_entrypoint'),
|
|
}
|
|
|
|
|
|
def _get_dbapi():
|
|
dbapi = db_api._get_dbdriver_instance()
|
|
return dbapi
|
|
|
|
|
|
def create_test_container(**kwargs):
|
|
"""Create test container entry in DB and return Container DB object.
|
|
|
|
Function to be used to create test Container objects in the database.
|
|
:param kwargs: kwargs with overriding values for container's attributes.
|
|
:returns: Test Container DB object.
|
|
"""
|
|
container = get_test_container(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del container['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_container(kwargs['context'], container)
|
|
|
|
|
|
def get_test_volume_mapping(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 38),
|
|
'uuid': kwargs.get('uuid', 'bea6293e-7714-4cd2-abc5-d479a498cee3'),
|
|
'project_id': kwargs.get('project_id', 'fake_project'),
|
|
'user_id': kwargs.get('user_id', 'fake_user'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'container_path': kwargs.get('container_path', 'fake_path'),
|
|
'container_uuid': kwargs.get('container_uuid',
|
|
'1aca1705-20f3-4506-8bc3-59685d86a357'),
|
|
'volume_id': kwargs.get('volume_id', 39),
|
|
}
|
|
|
|
|
|
def create_test_volume_mapping(**kwargs):
|
|
volume_mapping = get_test_volume_mapping(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del volume_mapping['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_volume_mapping(kwargs['context'], volume_mapping)
|
|
|
|
|
|
def get_test_volume(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 39),
|
|
'uuid': kwargs.get('uuid', 'c0aae414-4462-45ae-9848-1312983d1f7a'),
|
|
'project_id': kwargs.get('project_id', 'fake_project'),
|
|
'user_id': kwargs.get('user_id', 'fake_user'),
|
|
'cinder_volume_id': kwargs.get('cinder_volume_id',
|
|
'342a140e-efca-4140-9d2a-64221f688fa2'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'volume_provider': kwargs.get('volume_provider', 'fake_provider'),
|
|
'connection_info': kwargs.get('connection_info', 'fake_info'),
|
|
'auto_remove': kwargs.get('auto_remove', False),
|
|
'host': kwargs.get('host', 'fake_host'),
|
|
'contents': kwargs.get('contents', 'fake-contents'),
|
|
}
|
|
|
|
|
|
def create_test_volume(**kwargs):
|
|
volume = get_test_volume(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del volume['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_volume(kwargs['context'], volume)
|
|
|
|
|
|
def get_test_image(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'uuid': kwargs.get('uuid', 'ea8e2a25-2901-438d-8157-de7ffd68d051'),
|
|
'repo': kwargs.get('repo', 'image1'),
|
|
'tag': kwargs.get('tag', 'latest'),
|
|
'image_id': kwargs.get('image_id', 'sha256:c54a2cc56cbb2f0400'),
|
|
'size': kwargs.get('size', '1848'),
|
|
'project_id': kwargs.get('project_id', 'fake_project'),
|
|
'user_id': kwargs.get('user_id', 'fake_user'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'host': kwargs.get('host', 'host1'),
|
|
}
|
|
|
|
|
|
def create_test_image(**kwargs):
|
|
"""Create test image entry in DB and return Image DB object.
|
|
|
|
Function to be used to create test Image objects in the database.
|
|
:param kwargs: kwargs with overriding values for image's attributes.
|
|
:returns: Test Image DB object.
|
|
"""
|
|
image = get_test_image(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del image['id']
|
|
if 'repo' not in kwargs:
|
|
image['repo'] = _generate_repo_for_image()
|
|
dbapi = _get_dbapi()
|
|
return dbapi.pull_image(kwargs['context'], image)
|
|
|
|
|
|
def _generate_repo_for_image():
|
|
"""Generate a random name like: zeta-22-image."""
|
|
name_gen = name_generator.NameGenerator()
|
|
name = name_gen.generate()
|
|
return name + '-image'
|
|
|
|
|
|
def get_test_zun_service(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 23),
|
|
'uuid': kwargs.get('uuid', '2e8e2a25-2901-438d-8157-de7ffd68d066'),
|
|
'host': kwargs.get('host', 'fakehost'),
|
|
'binary': kwargs.get('binary', 'fake-bin'),
|
|
'disabled': kwargs.get('disabled', False),
|
|
'disabled_reason': kwargs.get('disabled_reason', 'fake-reason'),
|
|
'last_seen_up': kwargs.get('last_seen_up'),
|
|
'forced_down': kwargs.get('forced_down', False),
|
|
'report_count': kwargs.get('report_count', 13),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'availability_zone': kwargs.get('availability_zone', 'fake-zone'),
|
|
}
|
|
|
|
|
|
def create_test_zun_service(**kwargs):
|
|
zun_service = get_test_zun_service(**kwargs)
|
|
# Let DB generate ID if it isn't specifiled explicitly
|
|
if 'id' not in kwargs:
|
|
del zun_service['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_zun_service(zun_service)
|
|
|
|
|
|
def get_test_resource_provider(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'uuid': kwargs.get('uuid', 'e166bf0e-66db-409d-aa4d-3af94efd8bcf'),
|
|
'name': kwargs.get('name', 'provider1'),
|
|
'root_provider': kwargs.get('root_provider',
|
|
'd3d4c98a-8c95-4d3c-8605-ea38ea036556'),
|
|
'parent_provider': kwargs.get('parent_provider',
|
|
'2c4de408-6c4f-4257-8274-f2d2192fe871'),
|
|
'can_host': kwargs.get('can_host', 0),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
}
|
|
|
|
|
|
def create_test_resource_provider(**kwargs):
|
|
provider = get_test_resource_provider(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del provider['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_resource_provider(kwargs['context'], provider)
|
|
|
|
|
|
def get_test_resource_class(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'uuid': kwargs.get('uuid', '1136bf0e-66db-409d-aa4d-3af94eed8bcc'),
|
|
'name': kwargs.get('name', 'VCPU'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
}
|
|
|
|
|
|
def create_test_resource_class(**kwargs):
|
|
resource = get_test_resource_class(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del resource['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_resource_class(kwargs['context'], resource)
|
|
|
|
|
|
def get_test_inventory(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'resource_provider_id': kwargs.get('resource_provider_id', 1),
|
|
'resource_class_id': kwargs.get('resource_class_id', 2),
|
|
'total': kwargs.get('total', 4),
|
|
'reserved': kwargs.get('reserved', 1),
|
|
'min_unit': kwargs.get('min_unit', 0),
|
|
'max_unit': kwargs.get('max_unit', 4),
|
|
'step_size': kwargs.get('step_size', 1),
|
|
'allocation_ratio': kwargs.get('allocation_ratio', 1.0),
|
|
'is_nested': kwargs.get('is_nested', True),
|
|
'blob': kwargs.get('blob', [1, 2, 5]),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
}
|
|
|
|
|
|
def create_test_inventory(**kwargs):
|
|
inventory = get_test_inventory(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del inventory['id']
|
|
provider_id = inventory.pop('resource_provider_id')
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_inventory(kwargs['context'], provider_id, inventory)
|
|
|
|
|
|
def get_test_allocation(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'resource_provider_id': kwargs.get('resource_provider_id', 1),
|
|
'resource_class_id': kwargs.get('resource_class_id', 2),
|
|
'consumer_id': kwargs.get('consumer_id',
|
|
'cb775e13-72e2-4bfa-9646-020725e1325e'),
|
|
'used': kwargs.get('used', 1),
|
|
'is_nested': kwargs.get('is_nested', 0),
|
|
'blob': kwargs.get('blob', [1, 2, 5]),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
}
|
|
|
|
|
|
def create_test_allocation(**kwargs):
|
|
allocation = get_test_allocation(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del allocation['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_allocation(kwargs['context'], allocation)
|
|
|
|
|
|
def get_test_numa_topology(**kwargs):
|
|
return {
|
|
"nodes": [
|
|
{
|
|
"id": 0,
|
|
"cpuset": [1, 2],
|
|
"pinned_cpus": [],
|
|
"mem_total": 65536,
|
|
"mem_available": 32768
|
|
},
|
|
{
|
|
"id": 1,
|
|
"cpuset": [3, 4],
|
|
"pinned_cpus": [3, 4],
|
|
"mem_total": 65536,
|
|
"mem_available": 32768
|
|
}
|
|
]
|
|
}
|
|
|
|
|
|
def get_test_compute_node(**kwargs):
|
|
return {
|
|
'uuid': kwargs.get('uuid', '24a5b17a-f2eb-4556-89db-5f4169d13982'),
|
|
'rp_uuid': kwargs.get('rp_uuid',
|
|
'24a5b17a-f2eb-4556-89db-5f4169d13982'),
|
|
'hostname': kwargs.get('hostname', 'localhost'),
|
|
'numa_topology': kwargs.get('numa_topology', get_test_numa_topology()),
|
|
'mem_total': kwargs.get('mem_total', 1024),
|
|
'mem_free': kwargs.get('mem_free', 512),
|
|
'mem_available': kwargs.get('mem_available', 512),
|
|
'mem_used': kwargs.get('mem_used', 512),
|
|
'total_containers': kwargs.get('total_containers', 10),
|
|
'running_containers': kwargs.get('running_containers', 8),
|
|
'paused_containers': kwargs.get('paused_containers', 0),
|
|
'stopped_containers': kwargs.get('stopped_containers', 2),
|
|
'cpus': kwargs.get('cpus', 48),
|
|
'cpu_used': kwargs.get('cpu_used', 6.5),
|
|
'architecture': kwargs.get('architecture', 'x86_64'),
|
|
'os_type': kwargs.get('os_type', 'linux'),
|
|
'os': kwargs.get('os', 'Centos'),
|
|
'kernel_version': kwargs.get('kernel_version',
|
|
'3.10.0-123.el7.x86_64'),
|
|
'labels': kwargs.get('labels', {"dev.type": "product"}),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'disk_total': kwargs.get('disk_total', 80),
|
|
'disk_used': kwargs.get('disk_used', 20),
|
|
'disk_quota_supported': kwargs.get('disk_quota_supported', False),
|
|
'runtimes': kwargs.get('runtimes', ['runc']),
|
|
'enable_cpu_pinning': kwargs.get('enable_cpu_pinning', False),
|
|
}
|
|
|
|
|
|
def create_test_compute_node(**kwargs):
|
|
compute_host = get_test_compute_node(**kwargs)
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_compute_node(kwargs['context'], compute_host)
|
|
|
|
|
|
class FakeObject(object):
|
|
def __getitem__(self, key):
|
|
return getattr(self, key)
|
|
|
|
|
|
def get_test_action_value(**kwargs):
|
|
action_values = {
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'id': kwargs.get('id', 123),
|
|
'action': kwargs.get('action', 'fake-action'),
|
|
'container_uuid': kwargs.get('container_uuid',
|
|
'ea8e2a25-2901-438d-8157-de7ffd68d051'),
|
|
'request_id': kwargs.get('request_id', 'fake-request'),
|
|
'user_id': kwargs.get('user_id', 'fake-user'),
|
|
'project_id': kwargs.get('project_id', 'fake-project'),
|
|
'start_time': kwargs.get('start_time'),
|
|
'finish_time': kwargs.get('finish_time'),
|
|
'message': kwargs.get('message', 'fake-message'),
|
|
}
|
|
|
|
return action_values
|
|
|
|
|
|
def get_test_action(**kwargs):
|
|
|
|
action_values = get_test_action_value(**kwargs)
|
|
fake_action = FakeObject()
|
|
for k, v in action_values.items():
|
|
setattr(fake_action, k, v)
|
|
return fake_action
|
|
|
|
|
|
def get_test_action_event_value(**kwargs):
|
|
|
|
event_values = {
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'id': kwargs.get('id', 123),
|
|
'event': kwargs.get('event', 'fake-event'),
|
|
'action_id': kwargs.get('action_id', 123),
|
|
'start_time': kwargs.get('start_time'),
|
|
'finish_time': kwargs.get('finish_time'),
|
|
'result': kwargs.get('result', 'Error'),
|
|
'traceback': kwargs.get('traceback', 'fake-tb'),
|
|
}
|
|
|
|
return event_values
|
|
|
|
|
|
def get_test_action_event(**kwargs):
|
|
|
|
event_values = get_test_action_event_value(**kwargs)
|
|
fake_event = FakeObject()
|
|
for k, v in event_values.items():
|
|
setattr(fake_event, k, v)
|
|
return fake_event
|
|
|
|
|
|
def create_test_quota(**kwargs):
|
|
context = kwargs.get('context')
|
|
project_id = kwargs.get('project_id', 'fake_project_id')
|
|
resource = kwargs.get('resource', 'containers')
|
|
limit = kwargs.get('limit', 100)
|
|
dbapi = _get_dbapi()
|
|
return dbapi.quota_create(context, project_id, resource, limit)
|
|
|
|
|
|
def create_test_quota_class(**kwargs):
|
|
context = kwargs.get('context')
|
|
class_name = kwargs.get('class_name', 'default')
|
|
resource = kwargs.get('resource', 'containers')
|
|
limit = kwargs.get('limit', 100)
|
|
dbapi = _get_dbapi()
|
|
return dbapi.quota_class_create(context, class_name, resource, limit)
|
|
|
|
|
|
def get_test_quota_value(**kwargs):
|
|
quota_values = {
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'id': kwargs.get('id', 123),
|
|
'project_id': kwargs.get('project_id', 'fake_project_id'),
|
|
'resource': kwargs.get('resource', 'container'),
|
|
'hard_limit': kwargs.get('hard_limit', 20),
|
|
'uuid': kwargs.get('uuid', 'z2b96c5f-242a-41a0-a736-b6e1fada071b'),
|
|
}
|
|
|
|
return quota_values
|
|
|
|
|
|
def get_test_quota(**kwargs):
|
|
quota_values = get_test_quota_value(**kwargs)
|
|
fake_quota = FakeObject()
|
|
for k, v in quota_values.items():
|
|
setattr(fake_quota, k, v)
|
|
|
|
return fake_quota
|
|
|
|
|
|
def get_test_quota_class_value(**kwargs):
|
|
quota_values = {
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'id': kwargs.get('id', 123),
|
|
'class_name': kwargs.get('class_name', 'fake_class_name'),
|
|
'resource': kwargs.get('resource', 'container'),
|
|
'hard_limit': kwargs.get('hard_limit', 20),
|
|
'uuid': kwargs.get('uuid', 'z2b96c5b-242a-41a0-a736-b6e1fada071b'),
|
|
}
|
|
|
|
return quota_values
|
|
|
|
|
|
def get_test_quota_class(**kwargs):
|
|
quota_class_values = get_test_quota_class_value(**kwargs)
|
|
fake_quota_class = FakeObject()
|
|
for k, v in quota_class_values.items():
|
|
setattr(fake_quota_class, k, v)
|
|
|
|
return fake_quota_class
|
|
|
|
|
|
def get_test_network(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'name': kwargs.get('name', 'fake_name'),
|
|
'uuid': kwargs.get('uuid', 'z2b96c5b-242a-41a0-a736-b6e1fada071b'),
|
|
'network_id': kwargs.get('network_id', '0eeftestnetwork'),
|
|
'project_id': kwargs.get('project_id', 'fake_project'),
|
|
'user_id': kwargs.get('user_id', 'fake_user'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'neutron_net_id': kwargs.get('neutron_net_id', 'bar'),
|
|
}
|
|
|
|
|
|
def get_test_exec_instance(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 43),
|
|
'container_id': kwargs.get('container_id', 42),
|
|
'exec_id': kwargs.get('exec_id', 'fake-exec-id'),
|
|
'token': kwargs.get('token', 'fake-exec-token'),
|
|
'url': kwargs.get('url', 'fake-url'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
}
|
|
|
|
|
|
def create_test_exec_instance(**kwargs):
|
|
"""Create test exec instance entry in DB and return ExecInstance DB object.
|
|
|
|
Function to be used to create test ExecInstance objects in the database.
|
|
:param kwargs: kwargs with overriding values for default attributes.
|
|
:returns: Test ExecInstance DB object.
|
|
"""
|
|
exec_inst = get_test_exec_instance(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del exec_inst['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_exec_instance(kwargs['context'], exec_inst)
|
|
|
|
|
|
def create_test_network(**kwargs):
|
|
network = get_test_network(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del network['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_network(kwargs['context'], network)
|
|
|
|
|
|
def get_test_registry(**kwargs):
|
|
return {
|
|
'id': kwargs.get('id', 42),
|
|
'name': kwargs.get('name', 'fake_name'),
|
|
'uuid': kwargs.get('uuid', '0b5cdde8-237a-4917-9556-003e5c588c4f'),
|
|
'project_id': kwargs.get('project_id', 'fake_project'),
|
|
'user_id': kwargs.get('user_id', 'fake_user'),
|
|
'created_at': kwargs.get('created_at'),
|
|
'updated_at': kwargs.get('updated_at'),
|
|
'domain': kwargs.get('domain', 'test.io'),
|
|
'username': kwargs.get('username', 'fake_username'),
|
|
'password': kwargs.get('password', 'fake_password'),
|
|
}
|
|
|
|
|
|
def create_test_registry(**kwargs):
|
|
registry = get_test_registry(**kwargs)
|
|
# Let DB generate ID if it isn't specified explicitly
|
|
if 'id' not in kwargs:
|
|
del registry['id']
|
|
dbapi = _get_dbapi()
|
|
return dbapi.create_registry(kwargs['context'], registry)
|