From a4dad10e3f24aa1211b0728d14776a0fbd0959c6 Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Thu, 11 Jul 2019 03:05:28 +0000 Subject: [PATCH] Add 'tty' and 'stdin' to capsule Change-Id: Idf8ac17160c90e5db869ca4af1c33c30a02d5830 --- .zuul.yaml | 2 +- zun/api/controllers/v1/capsules.py | 1 - zun/api/controllers/v1/schemas/parameter_types.py | 2 ++ zun/api/controllers/versions.py | 3 ++- zun/api/rest_api_version_history.rst | 6 ++++++ zun/common/utils.py | 2 ++ zun/container/docker/driver.py | 2 +- zun/tests/unit/api/controllers/test_root.py | 4 ++-- 8 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 06b114560..5f838f9b1 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -26,7 +26,7 @@ test-config: $TEMPEST_CONFIG: container_service: - min_microversion: 1.36 + min_microversion: 1.37 devstack_services: tempest: true devstack_plugins: diff --git a/zun/api/controllers/v1/capsules.py b/zun/api/controllers/v1/capsules.py index 5e045a0f3..8c8f61175 100644 --- a/zun/api/controllers/v1/capsules.py +++ b/zun/api/controllers/v1/capsules.py @@ -310,7 +310,6 @@ class CapsuleController(base.Controller): container_dict['image_pull_policy'] = ( container_dict.get('image_pull_policy', 'always').lower()) container_dict['status'] = consts.CREATING - container_dict['interactive'] = True container_dict['capsule_id'] = new_capsule.id container_dict['restart_policy'] = container_restart_policy if container_spec in init_containers_spec: diff --git a/zun/api/controllers/v1/schemas/parameter_types.py b/zun/api/controllers/v1/schemas/parameter_types.py index 0308cc460..2beaabfac 100644 --- a/zun/api/controllers/v1/schemas/parameter_types.py +++ b/zun/api/controllers/v1/schemas/parameter_types.py @@ -465,6 +465,8 @@ capsule_containers_list = { 'env': environment, 'workDir': workdir, 'imagePullPolicy': image_pull_policy, + 'stdin': boolean, + 'tty': boolean, }, 'additionalProperties': False, 'required': ['image'] diff --git a/zun/api/controllers/versions.py b/zun/api/controllers/versions.py index 27439818f..9646fbf56 100644 --- a/zun/api/controllers/versions.py +++ b/zun/api/controllers/versions.py @@ -69,10 +69,11 @@ REST_API_VERSION_HISTORY = """REST API Version History: * 1.34 - Add 'init_containers' to capsule * 1.35 - Support exposing container ports in capsule * 1.36 - Add 'tty' to container + * 1.37 - Add 'tty' and 'stdin' to capsule """ BASE_VER = '1.1' -CURRENT_MAX_VER = '1.36' +CURRENT_MAX_VER = '1.37' class Version(object): diff --git a/zun/api/rest_api_version_history.rst b/zun/api/rest_api_version_history.rst index 20aa28612..8f7707e53 100644 --- a/zun/api/rest_api_version_history.rst +++ b/zun/api/rest_api_version_history.rst @@ -281,3 +281,9 @@ user documentation. Add 'tty' to container. This field indicate if the container should allocate a TTY for itself. + +1.37 +---- + + Add 'tty' and 'stdin' to capsule. + Containers in capsule can specify these two fields. diff --git a/zun/common/utils.py b/zun/common/utils.py index 0cb83d2d6..db22d4964 100644 --- a/zun/common/utils.py +++ b/zun/common/utils.py @@ -98,6 +98,8 @@ VALID_CONTAINER_FILED = { 'env': 'environment', 'workDir': 'workdir', 'imagePullPolicy': 'image_pull_policy', + 'tty': 'tty', + 'stdin': 'interactive', } VALID_CAPSULE_FIELD = { diff --git a/zun/container/docker/driver.py b/zun/container/docker/driver.py index d8c03ba12..b507093f4 100644 --- a/zun/container/docker/driver.py +++ b/zun/container/docker/driver.py @@ -1250,7 +1250,7 @@ class DockerDriver(driver.ContainerDriver): 'environment': container.environment, 'working_dir': container.workdir, 'labels': container.labels, - 'tty': container.interactive, + 'tty': container.tty, 'stdin_open': container.interactive, } diff --git a/zun/tests/unit/api/controllers/test_root.py b/zun/tests/unit/api/controllers/test_root.py index 18010ca2e..205c1161f 100644 --- a/zun/tests/unit/api/controllers/test_root.py +++ b/zun/tests/unit/api/controllers/test_root.py @@ -28,7 +28,7 @@ class TestRootController(api_base.FunctionalTest): 'default_version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], - 'max_version': '1.36', + 'max_version': '1.37', 'min_version': '1.1', 'status': 'CURRENT'}, 'description': 'Zun is an OpenStack project which ' @@ -37,7 +37,7 @@ class TestRootController(api_base.FunctionalTest): 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], - 'max_version': '1.36', + 'max_version': '1.37', 'min_version': '1.1', 'status': 'CURRENT'}]}