本文整理汇总了Python中atomic_reactor.inner.DockerBuildWorkflow.build_result方法的典型用法代码示例。如果您正苦于以下问题:Python DockerBuildWorkflow.build_result方法的具体用法?Python DockerBuildWorkflow.build_result怎么用?Python DockerBuildWorkflow.build_result使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atomic_reactor.inner.DockerBuildWorkflow
的用法示例。
在下文中一共展示了DockerBuildWorkflow.build_result方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: mock_environment
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import build_result [as 别名]
def mock_environment(tmpdir, session=None, build_process_failed=False,
koji_build_id=None, use_import=False):
if session is None:
session = MockedClientSession('')
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow(SOURCE, 'test-image')
setattr(workflow, 'builder', X())
setattr(workflow.builder, 'image_id', '123456imageid')
setattr(workflow.builder, 'base_image', ImageName(repo='Fedora', tag='22'))
setattr(workflow.builder, 'source', X())
setattr(workflow.builder.source, 'dockerfile_path', None)
setattr(workflow.builder.source, 'path', None)
flexmock(koji, ClientSession=lambda hub, opts: session)
if build_process_failed:
workflow.build_result = BuildResult(fail_reason="not built")
else:
workflow.build_result = BuildResult(image_id="id1234")
if koji_build_id:
if use_import:
workflow.exit_results[KojiImportPlugin.key] = koji_build_id
else:
workflow.exit_results[KojiPromotePlugin.key] = koji_build_id
(flexmock(time)
.should_receive('sleep')
.and_return(None))
return tasker, workflow
示例2: mock_environment
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import build_result [as 别名]
def mock_environment(tmpdir, primary_images=None,
annotations={}):
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow(SOURCE, "test-image")
base_image_id = '123456parent-id'
setattr(workflow, '_base_image_inspect', {'Id': base_image_id})
setattr(workflow, 'builder', X())
setattr(workflow.builder, 'image_id', '123456imageid')
setattr(workflow.builder, 'base_image', ImageName(repo='Fedora', tag='22'))
setattr(workflow.builder, 'source', X())
setattr(workflow.builder, 'built_image_info', {'ParentId': base_image_id})
setattr(workflow.builder.source, 'dockerfile_path', None)
setattr(workflow.builder.source, 'path', None)
setattr(workflow, 'tag_conf', TagConf())
if primary_images:
for image in primary_images:
if '-' in ImageName.parse(image).tag:
workflow.tag_conf.add_primary_image(image)
workflow.tag_conf.add_unique_image(primary_images[0])
workflow.build_result = BuildResult(image_id='123456', annotations=annotations)
return tasker, workflow
示例3: test_get_primary_images
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import build_result [as 别名]
def test_get_primary_images(tag_conf, tag_annotation, expected):
template_image = ImageName.parse('registry.example.com/fedora')
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
for tag in tag_conf:
image_name = ImageName.parse(str(template_image))
image_name.tag = tag
workflow.tag_conf.add_primary_image(str(image_name))
annotations = {}
for tag in tag_annotation:
annotations.setdefault('repositories', {}).setdefault('primary', [])
image_name = ImageName.parse(str(template_image))
image_name.tag = tag
annotations['repositories']['primary'].append(str(image_name))
build_result = BuildResult(annotations=annotations, image_id='foo')
workflow.build_result = build_result
actual = get_primary_images(workflow)
assert len(actual) == len(expected)
for index, primary_image in enumerate(actual):
assert primary_image.registry == template_image.registry
assert primary_image.namespace == template_image.namespace
assert primary_image.repo == template_image.repo
assert primary_image.tag == expected[index]
示例4: prepare
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import build_result [as 别名]
def prepare(success=True, v1_image_ids={}):
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow(SOURCE, "test-image")
setattr(workflow, 'builder', X())
setattr(workflow.builder, 'source', X())
setattr(workflow.builder.source, 'dockerfile_path', None)
setattr(workflow.builder.source, 'path', None)
setattr(workflow, 'tag_conf', X())
setattr(workflow.tag_conf, 'images', [ImageName(repo="image-name1"),
ImageName(repo="image-name1",
tag="2"),
ImageName(namespace="namespace",
repo="image-name2"),
ImageName(repo="image-name3",
tag="asd")])
# Mock dockpulp and docker
dockpulp.Pulp = flexmock(dockpulp.Pulp)
dockpulp.Pulp.registry = 'registry.example.com'
(flexmock(dockpulp.imgutils).should_receive('check_repo')
.and_return(0))
(flexmock(dockpulp.Pulp)
.should_receive('set_certs')
.with_args(object, object))
(flexmock(dockpulp.Pulp)
.should_receive('getRepos')
.with_args(list, fields=list)
.and_return([
{"id": "redhat-image-name1"},
{"id": "redhat-namespace-image-name2"}
]))
(flexmock(dockpulp.Pulp)
.should_receive('createRepo'))
(flexmock(dockpulp.Pulp)
.should_receive('copy')
.with_args(unicode, unicode))
(flexmock(dockpulp.Pulp)
.should_receive('updateRepo')
.with_args(unicode, dict))
(flexmock(dockpulp.Pulp)
.should_receive('')
.with_args(object, object)
.and_return([1, 2, 3]))
annotations = {
'worker-builds': {
'x86_64': {
'build': {
'build-name': 'build-1-x64_64',
},
'metadata_fragment': 'configmap/build-1-x86_64-md',
'metadata_fragment_key': 'metadata.json',
},
'ppc64le': {
'build': {
'build-name': 'build-1-ppc64le',
},
'metadata_fragment': 'configmap/build-1-ppc64le-md',
'metadata_fragment_key': 'metadata.json',
}
}
}
if success:
workflow.build_result = BuildResult(image_id='12345')
else:
workflow.build_result = BuildResult(fail_reason="not built", annotations=annotations)
build_info = {}
build_info['x86_64'] = BuildInfo()
build_info['ppc64le'] = BuildInfo()
for platform, v1_image_id in v1_image_ids.items():
build_info[platform] = BuildInfo(v1_image_id)
workflow.plugin_workspace = {
OrchestrateBuildPlugin.key: {
WORKSPACE_KEY_BUILD_INFO: build_info
}
}
mock_docker()
return tasker, workflow
示例5: mock_environment
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import build_result [as 别名]
def mock_environment(tmpdir, session=None, name=None,
component=None, version=None, release=None,
source=None, build_process_failed=False,
docker_registry=True, pulp_registries=0,
blocksize=None, task_states=None,
additional_tags=None, has_config=None,
prefer_schema1_digest=True):
if session is None:
session = MockedClientSession('', task_states=None)
if source is None:
source = GitSource('git', 'git://hostname/path')
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow(SOURCE, "test-image")
base_image_id = '123456parent-id'
setattr(workflow, '_base_image_inspect', {'Id': base_image_id})
setattr(workflow, 'builder', X())
setattr(workflow.builder, 'image_id', '123456imageid')
setattr(workflow.builder, 'base_image', ImageName(repo='Fedora', tag='22'))
setattr(workflow.builder, 'source', X())
setattr(workflow.builder, 'built_image_info', {'ParentId': base_image_id})
setattr(workflow.builder.source, 'dockerfile_path', None)
setattr(workflow.builder.source, 'path', None)
setattr(workflow, 'tag_conf', TagConf())
with open(os.path.join(str(tmpdir), 'Dockerfile'), 'wt') as df:
df.write('FROM base\n'
'LABEL BZComponent={component} com.redhat.component={component}\n'
'LABEL Version={version} version={version}\n'
'LABEL Release={release} release={release}\n'
.format(component=component, version=version, release=release))
setattr(workflow.builder, 'df_path', df.name)
if name and version:
workflow.tag_conf.add_unique_image('user/test-image:{v}-timestamp'
.format(v=version))
if name and version and release:
workflow.tag_conf.add_primary_images(["{0}:{1}-{2}".format(name,
version,
release),
"{0}:{1}".format(name, version),
"{0}:latest".format(name)])
if additional_tags:
workflow.tag_conf.add_primary_images(["{0}:{1}".format(name, tag)
for tag in additional_tags])
flexmock(subprocess, Popen=fake_Popen)
flexmock(koji, ClientSession=lambda hub, opts: session)
flexmock(GitSource)
setattr(workflow, 'source', source)
setattr(workflow.source, 'lg', X())
setattr(workflow.source.lg, 'commit_id', '123456')
setattr(workflow, 'push_conf', PushConf())
if docker_registry:
docker_reg = workflow.push_conf.add_docker_registry('docker.example.com')
for image in workflow.tag_conf.images:
tag = image.to_str(registry=False)
if pulp_registries and prefer_schema1_digest:
docker_reg.digests[tag] = ManifestDigest(v1=fake_digest(image),
v2='sha256:not-used')
else:
docker_reg.digests[tag] = ManifestDigest(v1='sha256:not-used',
v2=fake_digest(image))
if has_config:
docker_reg.config = {
'config': {'architecture': LOCAL_ARCH},
'container_config': {}
}
for pulp_registry in range(pulp_registries):
workflow.push_conf.add_pulp_registry('env', 'pulp.example.com')
with open(os.path.join(str(tmpdir), 'image.tar.xz'), 'wt') as fp:
fp.write('x' * 2**12)
setattr(workflow, 'exported_image_sequence', [{'path': fp.name,
'type': IMAGE_TYPE_DOCKER_ARCHIVE}])
if build_process_failed:
workflow.build_result = BuildResult(logs=["docker build log - \u2018 \u2017 \u2019 \n'"],
fail_reason="not built")
else:
workflow.build_result = BuildResult(logs=["docker build log - \u2018 \u2017 \u2019 \n'"],
image_id="id1234")
workflow.prebuild_plugins_conf = {}
workflow.image_components = parse_rpm_output([
"name1;1.0;1;" + LOCAL_ARCH + ";0;2000;" + FAKE_SIGMD5.decode() + ";23000;"
"RSA/SHA256, Tue 30 Aug 2016 00:00:00, Key ID 01234567890abc;(none)",
"name2;2.0;1;" + LOCAL_ARCH + ";0;3000;" + FAKE_SIGMD5.decode() + ";24000"
"RSA/SHA256, Tue 30 Aug 2016 00:00:00, Key ID 01234567890abd;(none)",
])
return tasker, workflow
示例6: prepare
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import build_result [as 别名]
def prepare(v1_image_ids={}):
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow(SOURCE, "test-image")
setattr(workflow, 'builder', X())
setattr(workflow.builder, 'source', X())
setattr(workflow.builder.source, 'dockerfile_path', None)
setattr(workflow.builder.source, 'path', None)
setattr(workflow, 'tag_conf', X())
setattr(workflow.tag_conf, 'images', [ImageName(repo="image-name1")])
# Mock dockpulp and docker
dockpulp.Pulp = flexmock(dockpulp.Pulp)
dockpulp.Pulp.registry = 'registry.example.com'
(flexmock(dockpulp.imgutils).should_receive('get_metadata')
.with_args(object)
.and_return([{'id': 'foo'}]))
(flexmock(dockpulp.imgutils).should_receive('get_manifest')
.with_args(object)
.and_return([{'id': 'foo'}]))
(flexmock(dockpulp.imgutils).should_receive('get_versions')
.with_args(object)
.and_return({'id': '1.6.0'}))
(flexmock(dockpulp.imgutils).should_receive('check_repo')
.and_return(0))
(flexmock(dockpulp.Pulp)
.should_receive('set_certs')
.with_args(object, object))
(flexmock(dockpulp.Pulp)
.should_receive('getRepos')
.with_args(list, fields=list)
.and_return([
{"id": "redhat-image-name1"},
{"id": "redhat-prefix-image-name2"}
]))
(flexmock(dockpulp.Pulp)
.should_receive('createRepo'))
(flexmock(dockpulp.Pulp)
.should_receive('upload')
.with_args(unicode)).at_most().once()
(flexmock(dockpulp.Pulp)
.should_receive('copy')
.with_args(unicode, unicode))
(flexmock(dockpulp.Pulp)
.should_receive('updateRepo')
.with_args('redhat-image-name1', {'tag': 'latest:ppc64le_v1_image_id'}))
(flexmock(dockpulp.Pulp)
.should_receive('crane')
.with_args(list, wait=True)
.and_return([2, 3, 4]))
(flexmock(dockpulp.Pulp)
.should_receive('')
.with_args(object, object)
.and_return([1, 2, 3]))
(flexmock(dockpulp.Pulp)
.should_receive('watch_tasks')
.with_args(list))
annotations = {
'worker-builds': {
'x86_64': {
'build': {
'build-name': 'build-1-x64_64',
},
'metadata_fragment': 'configmap/build-1-x86_64-md',
'metadata_fragment_key': 'metadata.json',
},
'ppc64le': {
'build': {
'build-name': 'build-1-ppc64le',
},
'metadata_fragment': 'configmap/build-1-ppc64le-md',
'metadata_fragment_key': 'metadata.json',
}
}
}
workflow.build_result = BuildResult(logs=["docker build log - \u2018 \u2017 \u2019 \n'"],
image_id="id1234", annotations=annotations)
build_info = {}
build_info['x86_64'] = BuildInfo()
build_info['ppc64le'] = BuildInfo()
for platform, v1_image_id in v1_image_ids.items():
build_info[platform] = BuildInfo(v1_image_id)
workflow.plugin_workspace = {
OrchestrateBuildPlugin.key: {
WORKSPACE_KEY_BUILD_INFO: build_info
}
}
mock_docker()
return tasker, workflow