You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Guangya Liu (JIRA)" <ji...@apache.org> on 2016/10/10 05:06:20 UTC

[jira] [Commented] (MESOS-5967) Add support for 'docker image inspect' in our docker abstraction

    [ https://issues.apache.org/jira/browse/MESOS-5967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15561293#comment-15561293 ] 

Guangya Liu commented on MESOS-5967:
------------------------------------

There are two solutions for this:

Solution 1): Added a new function named as {{inspectImage}} and renamed the current function {{inspect}} to {{inspectContainer}}. The only issue is that it does not match the docker API match as the docker API is using {{inspect}} for both container and image.

Solution 2): Use template to handle this:

{code}
template <typename T>
process::Future<T> inspect(
      const std::string& containerName,
      const Option<Duration>& retryInterval = None()) const;
{code}

Please note that I was not using {{virtual}} above as {{template}} do not support {{virtual}}, so here I need to remove {{virtual}}.

Then I can define `Container` and `Image` inspect as following: 

{code}
template<>
 Future<Docker::Container> Docker::inspect(
     const string& containerName,
     const Option<Duration>& retryInterval) const
{
...
}

template<>
 Future<Docker::Image> Docker::inspect(
     const string& imageName,
     const Option<Duration>& retryInterval) const
{
...
}
{code}

For the caller part, container will be:

{code}
docker->inspect<Docker::Container>(...);
{code}

and image will be:

{code}
docker->inspect<Docker::Image>(...);
{code}

I think solution 1) is more simple, as solution 2) need remove {{virutal}} for {{inspect}}, though it has no impact but  this will make the code not consistent, [~bmahler] [~klueska] any comments? Thanks.

> Add support for 'docker image inspect' in our docker abstraction
> ----------------------------------------------------------------
>
>                 Key: MESOS-5967
>                 URL: https://issues.apache.org/jira/browse/MESOS-5967
>             Project: Mesos
>          Issue Type: Improvement
>            Reporter: Kevin Klues
>            Assignee: Guangya Liu
>              Labels: gpu
>             Fix For: 1.1.0
>
>
> Docker's command line tool for {{docker inspect}} can take either a {{container}}, an {{image}}, or a {{task}} as its argument, and return a JSON array containing low-level information about that container, image or task. 
> However, the current {{docker inspect}} support in our docker abstraction only supports inspecting containers (not images or tasks).  We should expand this to (at least) support images.
> In particular, this additional functionality is motivated by the upcoming GPU support, which needs to inspect the labels in a docker image to decide if it should inject the required Nvidia volumes into a container.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)