You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
4.7 KiB
115 lines
4.7 KiB
# Copyright 2015 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import os
|
|
|
|
import common
|
|
from autotest_lib.client.bin import utils as common_utils
|
|
from autotest_lib.client.common_lib.global_config import global_config
|
|
|
|
|
|
# Name of the base container.
|
|
BASE = global_config.get_config_value('AUTOSERV', 'container_base_name')
|
|
|
|
# Path to folder that contains autotest code inside container.
|
|
CONTAINER_AUTOTEST_DIR = '/usr/local/autotest'
|
|
|
|
# Naming convention of the result directory in test container.
|
|
RESULT_DIR_FMT = os.path.join(CONTAINER_AUTOTEST_DIR, 'results',
|
|
'%s')
|
|
# Attributes to retrieve about containers.
|
|
ATTRIBUTES = ['name', 'state']
|
|
|
|
# url to the folder stores base container.
|
|
CONTAINER_BASE_FOLDER_URL = global_config.get_config_value('AUTOSERV',
|
|
'container_base_folder_url')
|
|
CONTAINER_BASE_URL_FMT = '%s/%%s.tar.xz' % CONTAINER_BASE_FOLDER_URL
|
|
CONTAINER_BASE_URL = CONTAINER_BASE_URL_FMT % BASE
|
|
# Default directory used to store LXC containers.
|
|
DEFAULT_CONTAINER_PATH = global_config.get_config_value('AUTOSERV',
|
|
'container_path')
|
|
# Default directory for host mounts
|
|
DEFAULT_SHARED_HOST_PATH = global_config.get_config_value(
|
|
'AUTOSERV',
|
|
'container_shared_host_path')
|
|
|
|
# The name of the linux domain socket used by the container pool. Just one
|
|
# exists, so this is just a hard-coded string.
|
|
DEFAULT_CONTAINER_POOL_SOCKET = 'container_pool_socket'
|
|
|
|
# Default size for the lxc container pool.
|
|
DEFAULT_CONTAINER_POOL_SIZE = 20
|
|
|
|
# Location of the host mount point in the container.
|
|
CONTAINER_HOST_DIR = '/host'
|
|
|
|
# Path to drone_temp folder in the container, which stores the control file for
|
|
# test job to run.
|
|
CONTROL_TEMP_PATH = os.path.join(CONTAINER_AUTOTEST_DIR, 'drone_tmp')
|
|
|
|
# Bash command to return the file count in a directory. Test the existence first
|
|
# so the command can return an error code if the directory doesn't exist.
|
|
COUNT_FILE_CMD = '[ -d %(dir)s ] && ls %(dir)s | wc -l'
|
|
|
|
# Seconds to wait for successful completion of a lxc force-destroy
|
|
LXC_SCRUB_TIMEOUT = 300
|
|
|
|
# Command line to append content to a file
|
|
APPEND_CMD_FMT = ('echo \'%(content)s\' | sudo tee --append %(file)s'
|
|
'> /dev/null')
|
|
|
|
# Flag to indicate it's running in a Moblab. Due to crbug.com/457496, lxc-ls has
|
|
# different behavior in Moblab.
|
|
IS_MOBLAB = common_utils.is_moblab()
|
|
|
|
if IS_MOBLAB:
|
|
SITE_PACKAGES_PATH = '/usr/lib64/python2.7/site-packages'
|
|
CONTAINER_SITE_PACKAGES_PATH = '/usr/local/lib/python2.7/dist-packages/'
|
|
else:
|
|
SITE_PACKAGES_PATH = os.path.join(common.autotest_dir, 'site-packages')
|
|
CONTAINER_SITE_PACKAGES_PATH = os.path.join(CONTAINER_AUTOTEST_DIR,
|
|
'site-packages')
|
|
|
|
# This is an alternate site_packages that is built to be Trusty
|
|
# compatible. crbug.com/1013241
|
|
TRUSTY_SITE_PACKAGES_PATH = '/opt/trusty_site_packages'
|
|
|
|
# TODO(dshi): If we are adding more logic in how lxc should interact with
|
|
# different systems, we should consider code refactoring to use a setting-style
|
|
# object to store following flags mapping to different systems.
|
|
SUPPORT_SNAPSHOT_CLONE = True
|
|
|
|
# Number of seconds to wait for network to be up in a container.
|
|
NETWORK_INIT_TIMEOUT = 300
|
|
# Network bring up is slower in Moblab.
|
|
NETWORK_INIT_CHECK_INTERVAL = 1 if IS_MOBLAB else 0.1
|
|
|
|
# Number of seconds to download files from devserver. We chose a timeout that
|
|
# is on the same order as the permitted CTS runtime for normal jobs (1h). In
|
|
# principle we should not retry timeouts as they indicate server/network
|
|
# overload, but we may be tempted to retry for other failures.
|
|
DEVSERVER_CALL_TIMEOUT = 3600
|
|
# Number of retries to download files from devserver. There is no point in
|
|
# having more than one retry for a file download.
|
|
DEVSERVER_CALL_RETRY = 2
|
|
# Average delay before attempting a retry to download from devserver. This
|
|
# value needs to be large enough to allow an overloaded server/network to
|
|
# calm down even in the face of retries.
|
|
DEVSERVER_CALL_DELAY = 600
|
|
|
|
# Type string for container related metadata.
|
|
CONTAINER_CREATE_METADB_TYPE = 'container_create'
|
|
CONTAINER_CREATE_RETRY_METADB_TYPE = 'container_create_retry'
|
|
CONTAINER_RUN_TEST_METADB_TYPE = 'container_run_test'
|
|
|
|
# The container's hostname MUST start with `test-` or `test_`. DHCP server in
|
|
# MobLab uses that prefix to determine the lease time. Note that `test_` is not
|
|
# a valid hostname as hostnames cannot contain underscores. Work is underway to
|
|
# migrate to `test-`. See crbug/726131.
|
|
CONTAINER_UTSNAME_FORMAT = 'test-%s'
|
|
|
|
STATS_KEY = 'chromeos/autotest/lxc'
|
|
|
|
CONTAINER_POOL_METRICS_PREFIX = 'chromeos/autotest/container_pool'
|