gpt4 book ai didi

python - ansible-container 不是 JSON 可序列化的

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:46 26 4
gpt4 key购买 nike

我们刚刚开始从 ansible-container 0.9.2 中获取“不是 JSON 序列化”的 container.yml——这是我们已经运行了几个月的版本,没有发生任何错误。知道为什么这才刚刚开始吗?

我们的堆栈跟踪是

Traceback (most recent call last):
File "/home/jenkins/workspace/tylt/ansible-container/container/cli.py", line 299, in __call__
getattr(core, u'hostcmd_{}'.format(args.subcommand))(**vars(args))
File "/home/jenkins/workspace/tylt/ansible-container/container/__init__.py", line 28, in __wrapped__
return fn(*args, **kwargs)
File "/home/jenkins/workspace/tylt/ansible-container/container/core.py", line 153, in hostcmd_build
config = get_config(base_path, vars_files=vars_files, engine_name=engine_name, project_name=project_name)
File "/home/jenkins/workspace/tylt/ansible-container/container/utils/__init__.py", line 49, in get_config
project_name=project_name, vault_files=vault_files)
File "/home/jenkins/workspace/tylt/ansible-container/container/__init__.py", line 28, in __wrapped__
return fn(*args, **kwargs)
File "/home/jenkins/workspace/tylt/ansible-container/container/config.py", line 62, in __init__
self.set_env('prod')
File "/home/jenkins/workspace/tylt/ansible-container/container/docker/config.py", line 45, in set_env
super(AnsibleContainerConfig, self).set_env(env, config=config)
File "/home/jenkins/workspace/tylt/ansible-container/container/config.py", line 146, in set_env
self._resolve_defaults(config)
File "/home/jenkins/workspace/tylt/ansible-container/container/config.py", line 194, in _resolve_defaults
logger.debug(u'Resolved template variables', template_vars=defaults)
File "/home/jenkins/.local/lib/python2.7/site-packages/structlog/stdlib.py", line 61, in debug
return self._proxy_to_logger("debug", event, *args, **kw)
File "/home/jenkins/.local/lib/python2.7/site-packages/structlog/stdlib.py", line 119, in _proxy_to_logger
**event_kw)
File "/home/jenkins/.local/lib/python2.7/site-packages/structlog/_base.py", line 176, in _proxy_to_logger
args, kw = self._process_event(method_name, event, event_kw)
File "/home/jenkins/.local/lib/python2.7/site-packages/structlog/_base.py", line 136, in _process_event
event_dict = proc(self._logger, method_name, event_dict)
File "/home/jenkins/workspace/tylt/ansible-container/container/utils/visibility.py", line 42, in unorder_dict
event_dict[key] = json.dumps(value)
File "/usr/lib/python2.7/json/__init__.py", line 244, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: ordereddict([('cron', ordereddict([('version', '3.0pl1-128ubuntu2')])), ('graphicsmagick', ordereddict([('version', '1.3.23-1build1')])), ('ruby2.4', ordereddict([('version', '2.4.4-1bbox1~xenial1')])), ('ruby2.4-dev', ordereddict([('version', '2.4.4-1bbox1~xenial1')]))]) is not JSON serializable

这是我们的 python 环境的样子:

ansible-container (0.9.2)
awscli (1.14.70)
backports.ssl-match-hostname (3.5.0.1)
botocore (1.9.23)
certifi (2018.4.16)
chardet (3.0.4)
colorama (0.3.7)
docker (3.4.1)
docker-pycreds (0.3.0)
docutils (0.14)
futures (3.2.0)
idna (2.7)
ipaddress (1.0.22)
Jinja2 (2.10)
jmespath (0.9.3)
MarkupSafe (1.0)
pip (9.0.3)
pyasn1 (0.4.2)
python-dateutil (2.6.1)
PyYAML (3.12)
requests (2.19.1)
rsa (3.4.2)
ruamel.ordereddict (0.4.13)
ruamel.yaml (0.15.52)
s3transfer (0.1.13)
selenium (3.11.0)
setuptools (39.0.1)
six (1.11.0)
structlog (18.1.0)
urllib3 (1.23)
websocket-client (0.48.0)

这是我们container.yml的例子

version: "2"
defaults:
additional_packages:
ruby2.4:
version: '2.4.4-1bbox1~xenial1'
ruby2.4-dev:
version: '2.4.4-1bbox1~xenial1'
graphicsmagick:
version: '1.3.23-1build1'
cron:
version: '3.0pl1-128ubuntu2'
services:
ruby:
from: tylt
working_dir: "/var/www"
command:
- /bin/bash
- -exc
- |
RAILS_ENV=kube bundle exec unicorn -c config/unicorn.rb -E kube &
RAILS_ENV=kube bundle exec sidekiq -C config/sidekiq.yml -c 10 -e kube &
wait %1
volumes:
- ${PWD}:/tmp
roles:
- tylt.rails
labels:
com.ansible.container.commit: "{{ git_commit }}"
com.ansible.container.pull-request: "{{ pull_request }}"
registries: {}

最佳答案

转自评论:

因此,在查找 ruamel.yaml (0.15.52) 时,您的版本似乎是今天发布的。你最近升级你的环境了吗?

关于python - ansible-container 不是 JSON 可序列化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com