本文整理汇总了Python中atomic_reactor.inner.DockerBuildWorkflow.builder方法的典型用法代码示例。如果您正苦于以下问题:Python DockerBuildWorkflow.builder方法的具体用法?Python DockerBuildWorkflow.builder怎么用?Python DockerBuildWorkflow.builder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atomic_reactor.inner.DockerBuildWorkflow
的用法示例。
在下文中一共展示了DockerBuildWorkflow.builder方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_compress
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_compress(self, tmpdir, method, load_exported_image, extension):
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow({'provider': 'git', 'uri': 'asd'}, 'test-image')
workflow.builder = X()
exp_img = os.path.join(str(tmpdir), 'img.tar')
if load_exported_image:
tarfile.open(exp_img, mode='w').close()
workflow.exported_image_sequence.append({'path': exp_img})
runner = PostBuildPluginsRunner(
tasker,
workflow,
[{
'name': CompressPlugin.key,
'args': {
'method': method,
'load_exported_image': load_exported_image,
},
}]
)
runner.run()
compressed_img = os.path.join(
workflow.source.tmpdir,
EXPORTED_COMPRESSED_IMAGE_NAME_TEMPLATE.format(extension))
assert os.path.exists(compressed_img)
assert workflow.exported_image_sequence[-1]['path'] == compressed_img
示例2: test_distgit_fetch_artefacts_failure
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_distgit_fetch_artefacts_failure(tmpdir, docker_tasker): # noqa
command = 'fedpkg sources'
expected_command = ['fedpkg', 'sources']
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X()
workflow.source = flexmock(path=str(tmpdir))
initial_dir = os.getcwd()
assert initial_dir != str(tmpdir)
(flexmock(pre_pyrpkg_fetch_artefacts.subprocess)
.should_receive('check_call')
.with_args(expected_command)
.and_raise(RuntimeError)
.once())
runner = PreBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': DistgitFetchArtefactsPlugin.key,
'args': {'command': command}
}]
)
with pytest.raises(PluginFailedException):
runner.run()
assert os.getcwd() == initial_dir
示例3: test_assertlabels_plugin
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_assertlabels_plugin(tmpdir, df_content, req_labels, expected):
df = DockerfileParser(str(tmpdir))
df.content = df_content
tasker = DockerTasker()
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X
workflow.builder.df_path = df.dockerfile_path
workflow.builder.df_dir = str(tmpdir)
runner = PreBuildPluginsRunner(
tasker,
workflow,
[{
'name': AssertLabelsPlugin.key,
'args': {'required_labels': req_labels}
}]
)
assert AssertLabelsPlugin.key is not None
if isinstance(expected, PluginFailedException):
with pytest.raises(PluginFailedException):
runner.run()
else:
runner.run()
示例4: test_adddockerfile_todest
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_adddockerfile_todest(tmpdir, docker_tasker):
df_content = """
FROM fedora
RUN yum install -y python-django
CMD blabla"""
df = df_parser(str(tmpdir))
df.content = df_content
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X
workflow.builder.df_path = df.dockerfile_path
workflow.builder.df_dir = str(tmpdir)
runner = PreBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': AddDockerfilePlugin.key,
'args': {'nvr': 'jboss-eap-6-docker-6.4-77',
'destdir': '/usr/share/doc/'}
}]
)
runner.run()
assert AddDockerfilePlugin.key is not None
expected_output = """
FROM fedora
RUN yum install -y python-django
ADD Dockerfile-jboss-eap-6-docker-6.4-77 /usr/share/doc/Dockerfile-jboss-eap-6-docker-6.4-77
CMD blabla"""
assert df.content == expected_output
示例5: test_pull_base_image_plugin
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_pull_base_image_plugin(df_base, parent_registry, expected_w_reg, expected_wo_reg):
if MOCK:
mock_docker(remember_images=True)
tasker = DockerTasker()
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = MockBuilder()
workflow.builder.base_image = ImageName.parse(df_base)
assert not tasker.image_exists(BASE_IMAGE)
assert not tasker.image_exists(BASE_IMAGE_W_REGISTRY)
runner = PreBuildPluginsRunner(
tasker,
workflow,
[{
'name': PullBaseImagePlugin.key,
'args': {'parent_registry': parent_registry, 'parent_registry_insecure': True}
}]
)
runner.run()
assert tasker.image_exists(BASE_IMAGE) == expected_wo_reg
assert tasker.image_exists(BASE_IMAGE_W_REGISTRY) == expected_w_reg
try:
tasker.remove_image(BASE_IMAGE)
tasker.remove_image(BASE_IMAGE_W_REGISTRY)
except:
pass
示例6: test_retry_pull_base_image
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_retry_pull_base_image(exc, failures, should_succeed):
if MOCK:
mock_docker(remember_images=True)
tasker = DockerTasker()
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = MockBuilder()
workflow.builder.base_image = ImageName.parse('parent-image')
class MockResponse(object):
content = ''
expectation = flexmock(tasker).should_receive('tag_image')
for _ in range(failures):
expectation = expectation.and_raise(exc('', MockResponse()))
expectation.and_return('foo')
expectation.and_return('parent-image')
runner = PreBuildPluginsRunner(
tasker,
workflow,
[{
'name': PullBaseImagePlugin.key,
'args': {'parent_registry': 'registry.example.com',
'parent_registry_insecure': True},
}],
)
if should_succeed:
runner.run()
else:
with pytest.raises(Exception):
runner.run()
示例7: test_cp_built_image_to_nfs
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_cp_built_image_to_nfs(tmpdir, docker_tasker, dest_dir):
mountpoint = tmpdir.join("mountpoint")
def fake_check_call(cmd):
assert cmd == [
"mount",
"-t", "nfs",
"-o", "nolock",
NFS_SERVER_PATH,
mountpoint,
]
flexmock(subprocess, check_call=fake_check_call)
workflow = DockerBuildWorkflow({"provider": "git", "uri": "asd"}, "test-image")
workflow.builder = X()
workflow.exported_image_sequence.append({"path": os.path.join(str(tmpdir),
EXPORTED_SQUASHED_IMAGE_NAME)})
open(workflow.exported_image_sequence[-1].get("path"), 'a').close()
runner = PostBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': CopyBuiltImageToNFSPlugin.key,
'args': {
"nfs_server_path": NFS_SERVER_PATH,
"dest_dir": dest_dir,
"mountpoint": str(mountpoint),
}
}]
)
runner.run()
if dest_dir is None:
assert os.path.isfile(os.path.join(str(mountpoint), EXPORTED_SQUASHED_IMAGE_NAME))
else:
assert os.path.isfile(os.path.join(str(mountpoint), dest_dir, EXPORTED_SQUASHED_IMAGE_NAME))
示例8: prepare
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def prepare(self, df_path, inherited_user='', hide_files=None, parent_images=None):
if MOCK:
mock_docker()
tasker = DockerTasker()
workflow = DockerBuildWorkflow(SOURCE, "test-image")
workflow.source = MockSource(df_path)
workflow.builder = (StubInsideBuilder()
.for_workflow(workflow)
.set_df_path(df_path))
for parent in parent_images or []:
workflow.builder.set_parent_inspection_data(parent, {
INSPECT_CONFIG: {
'User': inherited_user,
},
})
if hide_files is not None:
reactor_config = ReactorConfig({
'version': 1,
'hide_files': hide_files
})
workflow.plugin_workspace[ReactorConfigPlugin.key] = {
WORKSPACE_CONF_KEY: reactor_config
}
return tasker, workflow
示例9: test_adddockerfile_nvr_from_labels
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_adddockerfile_nvr_from_labels(tmpdir, docker_tasker):
df_content = """
FROM fedora
RUN yum install -y python-django
LABEL Name="jboss-eap-6-docker" "Version"="6.4" "Release"=77
CMD blabla"""
df = df_parser(str(tmpdir))
df.content = df_content
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X
workflow.builder.df_path = df.dockerfile_path
workflow.builder.df_dir = str(tmpdir)
runner = PreBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': AddDockerfilePlugin.key
}]
)
runner.run()
assert AddDockerfilePlugin.key is not None
assert "ADD Dockerfile-jboss-eap-6-docker-6.4-77 /root/buildinfo/Dockerfile-jboss-eap-6-docker-6.4-77" in df.content
示例10: test_returndockerfile_plugin
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_returndockerfile_plugin(tmpdir):
df_content = """
FROM fedora
RUN yum install -y python-django
CMD blabla"""
df = DockerfileParser(str(tmpdir))
df.content = df_content
tasker = DockerTasker()
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X
workflow.builder.df_path = df.dockerfile_path
workflow.builder.df_dir = str(tmpdir)
runner = PreBuildPluginsRunner(
tasker,
workflow,
[{
'name': CpDockerfilePlugin.key
}]
)
runner.run()
assert CpDockerfilePlugin.key is not None
assert workflow.prebuild_results.get(CpDockerfilePlugin.key, "") == df_content
示例11: test_adddockerfile_nvr_from_labels2
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_adddockerfile_nvr_from_labels2(tmpdir, docker_tasker):
df_content = """
FROM fedora
RUN yum install -y python-django
CMD blabla"""
df = df_parser(str(tmpdir))
df.content = df_content
if MOCK:
mock_docker()
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
flexmock(workflow, base_image_inspect={INSPECT_CONFIG: {"Labels": {}}})
workflow.builder = X
workflow.builder.df_path = df.dockerfile_path
workflow.builder.df_dir = str(tmpdir)
runner = PreBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': AddLabelsPlugin.key,
'args': {'labels': {'Name': 'jboss-eap-6-docker',
'Version': '6.4',
'Release': '77'},
'auto_labels': []}
},
{
'name': AddDockerfilePlugin.key
}]
)
runner.run()
assert AddDockerfilePlugin.key is not None
assert "ADD Dockerfile-jboss-eap-6-docker-6.4-77 /root/buildinfo/Dockerfile-jboss-eap-6-docker-6.4-77" in df.content
示例12: test_distgit_fetch_artefacts_plugin
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_distgit_fetch_artefacts_plugin(tmpdir, docker_tasker): # noqa
command = 'fedpkg sources'
expected_command = ['fedpkg', 'sources']
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X()
workflow.source = flexmock(path=str(tmpdir))
initial_dir = os.getcwd()
assert initial_dir != str(tmpdir)
def assert_tmpdir(*args, **kwargs):
assert os.getcwd() == str(tmpdir)
(flexmock(pre_pyrpkg_fetch_artefacts.subprocess)
.should_receive('check_call')
.with_args(expected_command)
.replace_with(assert_tmpdir)
.once())
runner = PreBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': DistgitFetchArtefactsPlugin.key,
'args': {'command': command}
}]
)
runner.run()
assert os.getcwd() == initial_dir
示例13: test_adddockerfile_plugin
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def test_adddockerfile_plugin(tmpdir, docker_tasker):
df_content = """
FROM fedora
RUN yum install -y python-django
CMD blabla"""
df = df_parser(str(tmpdir))
df.content = df_content
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = X
workflow.builder.df_path = df.dockerfile_path
workflow.builder.df_dir = str(tmpdir)
runner = PreBuildPluginsRunner(
docker_tasker,
workflow,
[{
'name': AddDockerfilePlugin.key,
'args': {'nvr': 'rhel-server-docker-7.1-20'}
}]
)
runner.run()
assert AddDockerfilePlugin.key is not None
expected_output = """
FROM fedora
RUN yum install -y python-django
ADD Dockerfile-rhel-server-docker-7.1-20 /root/buildinfo/Dockerfile-rhel-server-docker-7.1-20
CMD blabla"""
assert df.content == expected_output
示例14: mock_workflow
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def mock_workflow(tmpdir):
workflow = DockerBuildWorkflow({"provider": "git", "uri": "asd"}, TEST_IMAGE)
workflow.source = StubSource()
builder = StubInsideBuilder().for_workflow(workflow)
builder.set_df_path(str(tmpdir))
builder.tasker = flexmock()
workflow.builder = flexmock(builder)
return workflow
示例15: workflow
# 需要导入模块: from atomic_reactor.inner import DockerBuildWorkflow [as 别名]
# 或者: from atomic_reactor.inner.DockerBuildWorkflow import builder [as 别名]
def workflow():
if MOCK:
mock_docker()
workflow = DockerBuildWorkflow(MOCK_SOURCE, 'test-image')
workflow.builder = MockInsideBuilder()
setattr(workflow.builder, 'base_image_inspect', {})
return workflow