@@ -60,35 +60,38 @@ func (s *Server) createContainer(ctx context.Context, rw http.ResponseWriter, re
6060func (s * Server ) getContainer (ctx context.Context , rw http.ResponseWriter , req * http.Request ) error {
6161 name := mux .Vars (req )["name" ]
6262
63- meta , err := s .ContainerMgr .Get (ctx , name )
63+ c , err := s .ContainerMgr .Get (ctx , name )
6464 if err != nil {
6565 return err
6666 }
6767
68- container := types.ContainerJSON {
69- ID : meta .ID ,
70- Name : meta .Name ,
71- Image : meta .Config .Image ,
72- Created : meta .Created ,
73- State : meta .State ,
74- Config : meta .Config ,
75- HostConfig : meta .HostConfig ,
76- Snapshotter : meta .Snapshotter ,
77- GraphDriver : & types.GraphDriverData {
78- Name : meta .Snapshotter .Name ,
79- Data : meta .Snapshotter .Data ,
80- },
68+ var netSettings * types.NetworkSettings
69+ if c .NetworkSettings != nil {
70+ netSettings = & types.NetworkSettings {
71+ Networks : c .NetworkSettings .Networks ,
72+ }
8173 }
8274
83- if meta .NetworkSettings != nil {
84- container .NetworkSettings = & types.NetworkSettings {
85- Networks : meta .NetworkSettings .Networks ,
86- }
75+ mounts := []types.MountPoint {}
76+ for _ , mp := range c .Mounts {
77+ mounts = append (mounts , * mp )
8778 }
8879
89- container .Mounts = []types.MountPoint {}
90- for _ , mp := range meta .Mounts {
91- container .Mounts = append (container .Mounts , * mp )
80+ container := types.ContainerJSON {
81+ ID : c .ID ,
82+ Name : c .Name ,
83+ Image : c .Config .Image ,
84+ Created : c .Created ,
85+ State : c .State ,
86+ Config : c .Config ,
87+ HostConfig : c .HostConfig ,
88+ Snapshotter : c .Snapshotter ,
89+ GraphDriver : & types.GraphDriverData {
90+ Name : c .Snapshotter .Name ,
91+ Data : c .Snapshotter .Data ,
92+ },
93+ Mounts : mounts ,
94+ NetworkSettings : netSettings ,
9295 }
9396
9497 return EncodeResponse (rw , http .StatusOK , container )
@@ -99,44 +102,46 @@ func (s *Server) getContainers(ctx context.Context, rw http.ResponseWriter, req
99102 All : httputils .BoolValue (req , "all" ),
100103 }
101104
102- metas , err := s .ContainerMgr .List (ctx , func (meta * mgr.ContainerMeta ) bool {
105+ cons , err := s .ContainerMgr .List (ctx , func (c * mgr.Container ) bool {
103106 return true
104107 }, option )
105108 if err != nil {
106109 return err
107110 }
108111
109- containerList := make ([]types.Container , 0 , len (metas ))
112+ containerList := make ([]types.Container , 0 , len (cons ))
110113
111- for _ , m := range metas {
112- status , err := m .FormatStatus ()
114+ for _ , c := range cons {
115+ status , err := c .FormatStatus ()
113116 if err != nil {
114117 return err
115118 }
116119
117- t , err := time .Parse (utils .TimeLayout , m .Created )
120+ t , err := time .Parse (utils .TimeLayout , c .Created )
118121 if err != nil {
119122 return err
120123 }
121124
122- container := types.Container {
123- ID : m .ID ,
124- Names : []string {m .Name },
125- Image : m .Config .Image ,
126- Command : strings .Join (m .Config .Cmd , " " ),
127- Status : status ,
128- Created : t .UnixNano (),
129- Labels : m .Config .Labels ,
130- HostConfig : m .HostConfig ,
125+ var netSettings * types.ContainerNetworkSettings
126+ if c .NetworkSettings != nil {
127+ netSettings = & types.ContainerNetworkSettings {
128+ Networks : c .NetworkSettings .Networks ,
129+ }
131130 }
132131
133- if m .NetworkSettings != nil {
134- container .NetworkSettings = & types.ContainerNetworkSettings {
135- Networks : m .NetworkSettings .Networks ,
136- }
132+ singleCon := types.Container {
133+ ID : c .ID ,
134+ Names : []string {c .Name },
135+ Image : c .Config .Image ,
136+ Command : strings .Join (c .Config .Cmd , " " ),
137+ Status : status ,
138+ Created : t .UnixNano (),
139+ Labels : c .Config .Labels ,
140+ HostConfig : c .HostConfig ,
141+ NetworkSettings : netSettings ,
137142 }
138143
139- containerList = append (containerList , container )
144+ containerList = append (containerList , singleCon )
140145 }
141146 return EncodeResponse (rw , http .StatusOK , containerList )
142147}
0 commit comments