summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/api/handlers/compat/containers.go29
-rw-r--r--pkg/domain/infra/abi/pods.go36
2 files changed, 39 insertions, 26 deletions
diff --git a/pkg/api/handlers/compat/containers.go b/pkg/api/handlers/compat/containers.go
index b103e399d..5c76ab4f5 100644
--- a/pkg/api/handlers/compat/containers.go
+++ b/pkg/api/handlers/compat/containers.go
@@ -321,17 +321,17 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON,
stopTimeout := int(l.StopTimeout())
- ports := make(nat.PortSet)
- for p := range inspect.HostConfig.PortBindings {
- splitp := strings.SplitN(p, "/", 2)
+ exposedPorts := make(nat.PortSet)
+ for ep := range inspect.HostConfig.PortBindings {
+ splitp := strings.SplitN(ep, "/", 2)
if len(splitp) != 2 {
- return nil, errors.Errorf("PORT/PROTOCOL Format required for %q", p)
+ return nil, errors.Errorf("PORT/PROTOCOL Format required for %q", ep)
}
- port, err := nat.NewPort(splitp[1], splitp[0])
+ exposedPort, err := nat.NewPort(splitp[1], splitp[0])
if err != nil {
return nil, err
}
- ports[port] = struct{}{}
+ exposedPorts[exposedPort] = struct{}{}
}
config := container.Config{
@@ -341,7 +341,7 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON,
AttachStdin: inspect.Config.AttachStdin,
AttachStdout: inspect.Config.AttachStdout,
AttachStderr: inspect.Config.AttachStderr,
- ExposedPorts: ports,
+ ExposedPorts: exposedPorts,
Tty: inspect.Config.Tty,
OpenStdin: inspect.Config.OpenStdin,
StdinOnce: inspect.Config.StdinOnce,
@@ -371,6 +371,15 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON,
return nil, err
}
+ p, err := json.Marshal(inspect.NetworkSettings.Ports)
+ if err != nil {
+ return nil, err
+ }
+ ports := nat.PortMap{}
+ if err := json.Unmarshal(p, &ports); err != nil {
+ return nil, err
+ }
+
networkSettingsDefault := types.DefaultNetworkSettings{
EndpointID: "",
Gateway: "",
@@ -382,8 +391,12 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON,
MacAddress: l.Config().StaticMAC.String(),
}
+ networkSettingsBase := types.NetworkSettingsBase{
+ Ports: ports,
+ }
+
networkSettings := types.NetworkSettings{
- NetworkSettingsBase: types.NetworkSettingsBase{},
+ NetworkSettingsBase: networkSettingsBase,
DefaultNetworkSettings: networkSettingsDefault,
Networks: nil,
}
diff --git a/pkg/domain/infra/abi/pods.go b/pkg/domain/infra/abi/pods.go
index 4a122f54d..055a37b3e 100644
--- a/pkg/domain/infra/abi/pods.go
+++ b/pkg/domain/infra/abi/pods.go
@@ -67,14 +67,14 @@ func (ic *ContainerEngine) PodKill(ctx context.Context, namesOrIds []string, opt
for _, p := range pods {
report := entities.PodKillReport{Id: p.ID()}
conErrs, err := p.Kill(uint(sig))
- if err != nil {
+ if err != nil && errors.Cause(err) != define.ErrPodPartialFail {
report.Errs = []error{err}
reports = append(reports, &report)
continue
}
if len(conErrs) > 0 {
- for _, err := range conErrs {
- report.Errs = append(report.Errs, err)
+ for id, err := range conErrs {
+ report.Errs = append(report.Errs, errors.Wrapf(err, "error killing container %s", id))
}
reports = append(reports, &report)
continue
@@ -93,13 +93,13 @@ func (ic *ContainerEngine) PodPause(ctx context.Context, namesOrIds []string, op
for _, p := range pods {
report := entities.PodPauseReport{Id: p.ID()}
errs, err := p.Pause()
- if err != nil {
+ if err != nil && errors.Cause(err) != define.ErrPodPartialFail {
report.Errs = []error{err}
continue
}
if len(errs) > 0 {
- for _, v := range errs {
- report.Errs = append(report.Errs, v)
+ for id, v := range errs {
+ report.Errs = append(report.Errs, errors.Wrapf(v, "error pausing container %s", id))
}
reports = append(reports, &report)
continue
@@ -118,13 +118,13 @@ func (ic *ContainerEngine) PodUnpause(ctx context.Context, namesOrIds []string,
for _, p := range pods {
report := entities.PodUnpauseReport{Id: p.ID()}
errs, err := p.Unpause()
- if err != nil {
+ if err != nil && errors.Cause(err) != define.ErrPodPartialFail {
report.Errs = []error{err}
continue
}
if len(errs) > 0 {
- for _, v := range errs {
- report.Errs = append(report.Errs, v)
+ for id, v := range errs {
+ report.Errs = append(report.Errs, errors.Wrapf(v, "error unpausing container %s", id))
}
reports = append(reports, &report)
continue
@@ -143,13 +143,13 @@ func (ic *ContainerEngine) PodStop(ctx context.Context, namesOrIds []string, opt
for _, p := range pods {
report := entities.PodStopReport{Id: p.ID()}
errs, err := p.StopWithTimeout(ctx, false, options.Timeout)
- if err != nil {
+ if err != nil && errors.Cause(err) != define.ErrPodPartialFail {
report.Errs = []error{err}
continue
}
if len(errs) > 0 {
- for _, v := range errs {
- report.Errs = append(report.Errs, v)
+ for id, v := range errs {
+ report.Errs = append(report.Errs, errors.Wrapf(v, "error stopping container %s", id))
}
reports = append(reports, &report)
continue
@@ -168,14 +168,14 @@ func (ic *ContainerEngine) PodRestart(ctx context.Context, namesOrIds []string,
for _, p := range pods {
report := entities.PodRestartReport{Id: p.ID()}
errs, err := p.Restart(ctx)
- if err != nil {
+ if err != nil && errors.Cause(err) != define.ErrPodPartialFail {
report.Errs = []error{err}
reports = append(reports, &report)
continue
}
if len(errs) > 0 {
- for _, v := range errs {
- report.Errs = append(report.Errs, v)
+ for id, v := range errs {
+ report.Errs = append(report.Errs, errors.Wrapf(v, "error restarting container %s", id))
}
reports = append(reports, &report)
continue
@@ -195,14 +195,14 @@ func (ic *ContainerEngine) PodStart(ctx context.Context, namesOrIds []string, op
for _, p := range pods {
report := entities.PodStartReport{Id: p.ID()}
errs, err := p.Start(ctx)
- if err != nil {
+ if err != nil && errors.Cause(err) != define.ErrPodPartialFail {
report.Errs = []error{err}
reports = append(reports, &report)
continue
}
if len(errs) > 0 {
- for _, v := range errs {
- report.Errs = append(report.Errs, v)
+ for id, v := range errs {
+ report.Errs = append(report.Errs, errors.Wrapf(v, "error starting container %s", id))
}
reports = append(reports, &report)
continue