[#240] pool: Add SyncContainerWithNetwork
It is a helper function that uses a `Pool` to fetch network information and apply it to the container (change the container if it does not fit the network). Currently, only applies the homomorphic hashing parameter. Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
a6ecf6b881
commit
c6fee6d01a
1 changed files with 23 additions and 0 deletions
23
pool/pool.go
23
pool/pool.go
|
@ -1811,3 +1811,26 @@ func (p *Pool) Close() {
|
|||
p.cancel()
|
||||
<-p.closedCh
|
||||
}
|
||||
|
||||
// SyncContainerWithNetwork applies network configuration received via
|
||||
// the Pool to the container. Changes the container if it does not satisfy
|
||||
// network configuration.
|
||||
//
|
||||
// Pool and container MUST not be nil.
|
||||
//
|
||||
// Returns any error that does not allow reading configuration
|
||||
// from the network.
|
||||
func SyncContainerWithNetwork(ctx context.Context, cnr *container.Container, p *Pool) error {
|
||||
ni, err := p.NetworkInfo(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("network info: %w", err)
|
||||
}
|
||||
|
||||
if ni == nil {
|
||||
return errors.New("empty network info")
|
||||
}
|
||||
|
||||
container.ApplyNetworkConfig(cnr, *ni)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue