[lnie@localhost-live server]$ ./run.sh +++ dirname 0 ++ readlink -f . + '[' /home/lnie/artemis/server '!=' /home/lnie/artemis/server ']' + trap 'kill $(jobs -p)' EXIT ++ pwd + export ARTEMIS_CONFIG_DIR=/home/lnie/artemis/server/configuration + ARTEMIS_CONFIG_DIR=/home/lnie/artemis/server/configuration + '[' -f /home/lnie/artemis/server/configuration/.vault_pass ']' ++ cat /home/lnie/artemis/server/configuration/.vault_pass + export ARTEMIS_VAULT_PASSWORD=testfedora + ARTEMIS_VAULT_PASSWORD=testfedora + export 'ARTEMIS_BROKER_URL=amqp://guest:guest@127.0.0.1:5672/?heartbeat=60&blocked_connection_timeout=60' + ARTEMIS_BROKER_URL='amqp://guest:guest@127.0.0.1:5672/?heartbeat=60&blocked_connection_timeout=60' + export ARTEMIS_DB_URL=postgresql://artemis:artemis@127.0.0.1:5432/artemis + ARTEMIS_DB_URL=postgresql://artemis:artemis@127.0.0.1:5432/artemis + export ARTEMIS_CACHE_URL=redis://127.0.0.1:6379 + ARTEMIS_CACHE_URL=redis://127.0.0.1:6379 + export ARTEMIS_LOG_JSON=no + ARTEMIS_LOG_JSON=no + export ARTEMIS_LOG_DB_POOL=no + ARTEMIS_LOG_DB_POOL=no + export ARTEMIS_LOG_DB_QUERIES=no + ARTEMIS_LOG_DB_QUERIES=no + export ARTEMIS_CLOSE_AFTER_DISPATCH=yes + ARTEMIS_CLOSE_AFTER_DISPATCH=yes ++ pwd + export ARTEMIS_HOOK_ROUTE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_ROUTE.py + ARTEMIS_HOOK_ROUTE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_ROUTE.py + export ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE.py + ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE.py + export ARTEMIS_HOOK_OPENSTACK_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_OPENSTACK_ENVIRONMENT_TO_IMAGE.py + ARTEMIS_HOOK_OPENSTACK_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_OPENSTACK_ENVIRONMENT_TO_IMAGE.py + export ARTEMIS_HOOK_AWS_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_AWS_ENVIRONMENT_TO_IMAGE.py + ARTEMIS_HOOK_AWS_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_AWS_ENVIRONMENT_TO_IMAGE.py + export ARTEMIS_HOOK_AZURE_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_AZURE_ENVIRONMENT_TO_IMAGE.py + ARTEMIS_HOOK_AZURE_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_AZURE_ENVIRONMENT_TO_IMAGE.py + export ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE.py + ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE=/home/lnie/artemis/server/configuration/ARTEMIS_HOOK_BEAKER_ENVIRONMENT_TO_IMAGE.py + export ARTEMIS_AWS_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-aws.yaml + ARTEMIS_AWS_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-aws.yaml + export ARTEMIS_AZURE_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-azure.yaml + ARTEMIS_AZURE_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-azure.yaml + export ARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-beaker.yaml + ARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-beaker.yaml + export ARTEMIS_OPENSTACK_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-openstack.yaml + ARTEMIS_OPENSTACK_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH=ARTEMIS_CONFIG_DIR/artemis-image-map-openstack.yaml + ARTEMIS_WORKER_OPTIONS= + '[' '' = '' ']' + poetry run alembic upgrade head /home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version! warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported " INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. INFO [alembic.runtime.migration] Running upgrade -> 57f5d41c7200, Intial database schema import INFO [alembic.runtime.migration] Running upgrade 57f5d41c7200 -> a3c173dfd6f5, Adding guest_requests.user_data column INFO [alembic.runtime.migration] Running upgrade a3c173dfd6f5 -> 487f52cc5aef, Guest request user data shall never be NULL INFO [alembic.runtime.migration] Running upgrade 487f52cc5aef -> 2a205a7d6150, Adding pool resources metrics table INFO [alembic.runtime.migration] Running upgrade 2a205a7d6150 -> 85e51f3435b4, Adds user role and tokens INFO [alembic.runtime.migration] Running upgrade 85e51f3435b4 -> 8c470c3f4331, Upgrade size of user tokens to handle SHA256 INFO [alembic.runtime.migration] Running upgrade 8c470c3f4331 -> 48609a3f5d7a, Refactor metrics table INFO [alembic.runtime.migration] Running upgrade 48609a3f5d7a -> 1d54a4ff03e8, Adds knobs table INFO [alembic.runtime.migration] Running upgrade 1d54a4ff03e8 -> e454a81bd5a2, create post_install_script column INFO [alembic.runtime.migration] Running upgrade e454a81bd5a2 -> edbe5a51f52a, Adding metrics_failover_success table INFO [alembic.runtime.migration] Running upgrade edbe5a51f52a -> 8f7a33b3e529, Adds guest_requests.ctime INFO [alembic.runtime.migration] Running upgrade 8f7a33b3e529 -> 51c5e4b2a7ac, Adds table for "successfull provisioning" metric INFO [alembic.runtime.migration] Running upgrade 51c5e4b2a7ac -> a31dd2a66069, Adds policy rulings metrics INFO [alembic.runtime.migration] Running upgrade a31dd2a66069 -> 7adee582ada3, Adds guest_tags table INFO [alembic.runtime.migration] Running upgrade 7adee582ada3 -> c22acf6e42f9, Removes unused metrics tables INFO [alembic.runtime.migration] Running upgrade c22acf6e42f9 -> 17445bd3cd8d, Removes unused pool resource metrics tables INFO [alembic.runtime.migration] Running upgrade 17445bd3cd8d -> 4066bcbc54eb, Create index from guest events guestname INFO [alembic.runtime.migration] Running upgrade 4066bcbc54eb -> 5f50a93ea161, create console requests table INFO [alembic.runtime.migration] Running upgrade 5f50a93ea161 -> 9844f8f59644, Add guest logs INFO [alembic.runtime.migration] Running upgrade 9844f8f59644 -> 968af7e432c2, Convert pool properties to JSON INFO [alembic.runtime.migration] Running upgrade 968af7e432c2 -> a16ab7abd194, Convert guest environment column to JSON INFO [alembic.runtime.migration] Running upgrade a16ab7abd194 -> 304435134b82, Convert knob value to JSON INFO [alembic.runtime.migration] Running upgrade 304435134b82 -> 0da45d07fde0, Convert guest/snapshot state to enum INFO [alembic.runtime.migration] Running upgrade 0da45d07fde0 -> 72026ebfe96c, Add UNDEFINED state for guest logs INFO [alembic.runtime.migration] Running upgrade 72026ebfe96c -> 5529d49203b8, Convert guest event details to JSON INFO [alembic.runtime.migration] Running upgrade 5529d49203b8 -> 0404338f093a, Add skip-prepare-verify-ssh to guest request INFO [alembic.runtime.migration] Running upgrade 0404338f093a -> 97d761c531e7, Convert guest user data to JSON INFO [alembic.runtime.migration] Running upgrade 97d761c531e7 -> 28e90f8952e9, Add log_types field to guest_request INFO [alembic.runtime.migration] Running upgrade 28e90f8952e9 -> 5b43d515411a, Convert SSH keys to use encrypted columns INFO [alembic.runtime.migration] Running upgrade 5b43d515411a -> cf1a39506196, Adds guest_requests.state_mtime INFO [alembic.runtime.migration] Running upgrade cf1a39506196 -> cbb792480f16, adds-task-request-table INFO [alembic.runtime.migration] Running upgrade cbb792480f16 -> 3af7c26ec4f3, Introduce guest shelf table INFO [alembic.runtime.migration] Running upgrade 3af7c26ec4f3 -> b1dcd42e5d5c, Add user defined watchdog delays INFO [alembic.runtime.migration] Running upgrade b1dcd42e5d5c -> 237cc90c30dc, Add shelving-related guest states INFO [alembic.runtime.migration] Running upgrade 237cc90c30dc -> 65c59ae05b97, Add flag to bypass guest shelf selection INFO [alembic.runtime.migration] Running upgrade 65c59ae05b97 -> 3082955b6723, Add column storing task to be dispatched once guest is ready + poetry run artemis-db-init-content config-to-db /home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version! warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported " [20:41:21] [+] connecting to db postgresql://artemis:artemis@127.0.0.1:5432/artemis [20:41:21] [+] sqlalchemy create_engine parameters: { "application_name": null, "echo_pool": false, "max_overflow": 10, "pool_size": 20 } File "", line 1, in File "/home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/click/core.py", line 1130, in __call__ 1128 def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any: 1129 """Alias for :meth:`main`.""" --> 1130 return self.main(*args, **kwargs) .................................................. args = () kwargs = {} .................................................. File "/home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/click/core.py", line 1055, in main 987 def main( 988 self, 989 args: t.Optional[t.Sequence[str]] = None, 990 prog_name: t.Optional[str] = None, 991 complete_var: t.Optional[str] = None, 992 standalone_mode: bool = True, 993 windows_expand_args: bool = True, 994 **extra: t.Any, 995 ) -> t.Any: (...) 1049 # Process shell completion requests and exit early. 1050 self._main_shell_completion(extra, prog_name, complete_var) 1051 1052 try: 1053 try: 1054 with self.make_context(prog_name, args, **extra) as ctx: --> 1055 rv = self.invoke(ctx) 1056 if not standalone_mode: .................................................. args = ['config-to-db', ] prog_name = 'artemis-db-init-content' complete_var = None standalone_mode = True windows_expand_args = True extra = {} sys.argv = ['artemis-db-init-content', 'config-to-db', ] os.name = 'posix' self._main_shell_completion = core.py:1100> self.make_context = core. py:884> ctx = self.invoke = core.py:16 23> ctx.exit = core.py:685> sys.stderr = <_io.TextIOWrapper name='' mode='w' encoding='utf-8' > errno.EPIPE = 32 sys.stdout = <_io.TextIOWrapper name='' mode='w' encoding='utf-8' > t.cast = _ = .................................................. File "/home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/click/core.py", line 1657, in invoke 1623 def invoke(self, ctx: Context) -> t.Any: (...) 1651 cmd_name, cmd, args = self.resolve_command(ctx, args) 1652 assert cmd is not None 1653 ctx.invoked_subcommand = cmd_name 1654 super().invoke(ctx) 1655 sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) 1656 with sub_ctx: --> 1657 return _process_result(sub_ctx.command.invoke(sub_ctx)) 1658 .................................................. ctx = _process_result = ._process_result' cor e.py:1624> self._result_callback = None ctx.invoke = core.py:709> ctx.params = {} ctx.protected_args = [] self.invoke_without_command = False self.chain = False ctx.fail = core.py:673> _ = args = [] ctx.args = [] cmd_name = 'config-to-db' self.resolve_command = c ore.py:1691> ctx.invoked_subcommand = 'config-to-db' sub_ctx = cmd.make_context = core.py:884> sub_ctx.command.invoke = core.py:1 393> sub_ctx.args = [] .................................................. File "/home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/click/core.py", line 1404, in invoke 1393 def invoke(self, ctx: Context) -> t.Any: (...) 1398 message = _( 1399 "DeprecationWarning: The command {name!r} is deprecated." 1400 ).format(name=self.name) 1401 echo(style(message, fg="red"), err=True) 1402 1403 if self.callback is not None: --> 1404 return ctx.invoke(self.callback, **ctx.params) .................................................. ctx = self.deprecated = False _ = self.name = 'config-to-db' self.callback = .................................................. File "/home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/click/core.py", line 760, in invoke 709 def invoke( 710 __self, # noqa: B902 711 __callback: t.Union["Command", t.Callable[..., t.Any]], 712 *args: t.Any, 713 **kwargs: t.Any, 714 ) -> t.Any: (...) 754 ctx.params.update(kwargs) 755 else: 756 ctx = __self 757 758 with augment_usage_errors(__self): 759 with ctx: --> 760 return __callback(*args, **kwargs) .................................................. args = () kwargs = {} ctx = .................................................. File "/home/lnie/.cache/pypoetry/virtualenvs/tft-artemis--bEMb97A-py3.9/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func 25 def new_func(*args, **kwargs): # type: ignore --> 26 return f(get_current_context(), *args, **kwargs) .................................................. args = () kwargs = {} .................................................. File "/home/lnie/artemis/server/src/tft/artemis/scripts/init_db_content.py", line 329, in cmd_config_to_db 323 @click.pass_context 324 def cmd_config_to_db(ctx: Any) -> None: 325 logger = get_logger() 326 server_config = get_config() 327 db = get_db(logger) 328 --> 329 config_to_db(logger, db, server_config) .................................................. cmd_root.command = core.py:1822> click.pass_context = ctx = logger = server_config = None db = .................................................. File "/home/lnie/artemis/server/src/tft/artemis/scripts/init_db_content.py", line 91, in config_to_db 76 def config_to_db( 77 logger: gluetool.log.ContextAdapter, 78 db: DB, 79 server_config: Dict[str, Any] 80 ) -> None: (...) 85 # When adding new bits, let's use a safer approach and test before adding possibly already existing 86 # records. 87 # Adding system and pool tags. We do not want to overwrite the existing value, only add those 88 # that are missing. Artemis' default example of configuration tries to add as little as possible, 89 # which means we probably don't return any tag user might have removed. 90 --> 91 r_validation = validate_config(logger, server_config) 92 .................................................. logger = db = server_config = None gluetool.log.log_dict = logger.error = log.py:698> db.get_session = contextlib.py:261> logger.info = log.py:684> GuestTag.poolname = GuestTag.tag = GuestTag.value = GuestTag.SYSTEM_POOL_ALIAS = '__system__' server_config.get = # AttributeError server_config = None PriorityGroup.name = Pool.poolname = Pool.driver = Pool._parameters = User.username = User.admin_token = User.provisioning_token = UserRoles.USER = GuestShelf.shelfname = GuestShelf.ownername = GuestShelf.state = GuestState.READY = SSHKey.keyname = SSHKey.enabled = SSHKey.ownername = SSHKey.private = SSHKey.public = SSHKey.file = .................................................. File "/home/lnie/artemis/server/src/tft/artemis/scripts/init_db_content.py", line 48, in validate_config 18 def validate_config( 19 logger: gluetool.log.ContextAdapter, 20 server_config: Dict[str, Any] 21 ) -> Result[List[str], Failure]: (...) 42 43 validation_errors += [ 44 f'server: {error}' 45 for error in r_validation.unwrap() 46 ] 47 --> 48 for pool in server_config.get('pools', []): 49 failure_details = { .................................................. logger = server_config = None validation_errors = ["server: None is not of type 'object'", ] r_schema = Ok({'$schema': 'http://json-schema.org/draft-07/schema#', 'd escription': 'Server configuration schema', 'type': 'object' , 'definitions': {'custom_flavor': {'type': 'object', 'prope rties': {'name': {'type': 'string'}, 'base': {'type': 'strin g'}, 'disk': {'$ref': '#/definitions/patch_flavor_disks'}}, 'required': ['name', 'base'], 'additionalProperties': False} , 'patch_flavor_compatible': {'type': 'object', 'properties' : {'distro': {'type': 'array', 'items': {'type': 'string'}}} , 'required': [], 'a... r_schema.is_error = False r_schema.unwrap_error = r_validation.unwrap = server_config.get = # AttributeError server_config = None os.path.join = .................................................. AttributeError: 'NoneType' object has no attribute 'get' + echo 'failed to initialize DB content' failed to initialize DB content + exit 1 ++ jobs -p + kill kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]