diff --git a/zun_ui/api/client.py b/zun_ui/api/client.py index b9536ad..a81f01d 100644 --- a/zun_ui/api/client.py +++ b/zun_ui/api/client.py @@ -43,7 +43,11 @@ def zunclient(request): def container_create(request, **kwargs): args = {} + run = False for (key, value) in kwargs.items(): + if key == "run": + run = value + continue if key in CONTAINER_CREATE_ATTRS: args[str(key)] = str(value) else: @@ -63,7 +67,12 @@ def container_create(request, **kwargs): kv = v.split("=", 1) labels[kv[0]] = kv[1] args["labels"] = labels - return zunclient(request).containers.create(**args) + response = None + if run: + response = zunclient(request).containers.run(**args) + else: + response = zunclient(request).containers.create(**args) + return response def container_delete(request, id, force=False): diff --git a/zun_ui/api/rest_api.py b/zun_ui/api/rest_api.py index bfde039..7446910 100644 --- a/zun_ui/api/rest_api.py +++ b/zun_ui/api/rest_api.py @@ -108,6 +108,7 @@ class Containers(generic.View): """Create a new Container. Returns the new Container object on success. + If 'run' attribute is set true, do 'run' instead 'create' """ new_container = client.container_create(request, **request.DATA) return rest_utils.CreatedResponse( diff --git a/zun_ui/static/dashboard/container/containers/create/container-model.js b/zun_ui/static/dashboard/container/containers/create/container-model.js index 95294a5..ff6b251 100644 --- a/zun_ui/static/dashboard/container/containers/create/container-model.js +++ b/zun_ui/static/dashboard/container/containers/create/container-model.js @@ -42,7 +42,8 @@ memory: null, environment: null, workdir: null, - labels: null + labels: null, + run: true }; } diff --git a/zun_ui/static/dashboard/container/containers/create/info/info.html b/zun_ui/static/dashboard/container/containers/create/info/info.html index c48713e..3e3dc1d 100644 --- a/zun_ui/static/dashboard/container/containers/create/info/info.html +++ b/zun_ui/static/dashboard/container/containers/create/info/info.html @@ -28,5 +28,14 @@ placeholder="{$ 'A command that will be sent to the container.'|translate $}"> +