From a6ecf6b88110f10cf246f10e60365ebb9d077fd1 Mon Sep 17 00:00:00 2001 From: Pavel Karpy Date: Tue, 26 Apr 2022 18:03:14 +0300 Subject: [PATCH] [#240] client: Add `SyncContainerWithNetwork` func It requests network configuration and syncs it (changes if required) with passed container. Signed-off-by: Pavel Karpy --- client/container.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/client/container.go b/client/container.go index d8d5cdb..82e7c31 100644 --- a/client/container.go +++ b/client/container.go @@ -816,3 +816,23 @@ func (c *Client) ContainerAnnounceUsedSpace(ctx context.Context, prm PrmAnnounce return &res, nil } + +// SyncContainerWithNetwork requests network configuration using passed client +// and applies it to the container. Container MUST not be nil. +// +// Note: if container does not match network configuration, SyncContainerWithNetwork +// changes it. +// +// Returns any network/parsing config errors. +// +// See also NetworkInfo, container.ApplyNetworkConfig. +func SyncContainerWithNetwork(ctx context.Context, cnr *container.Container, c *Client) error { + res, err := c.NetworkInfo(ctx, PrmNetworkInfo{}) + if err != nil { + return fmt.Errorf("network info call: %w", err) + } + + container.ApplyNetworkConfig(cnr, *res.Info()) + + return nil +}