github.com/jiasir/docker@v1.3.3-0.20170609024000-252e610103e7/api/types/container/hostconfig_windows.go (about)

     1  package container
     2  
     3  import (
     4  	"strings"
     5  )
     6  
     7  // IsBridge indicates whether container uses the bridge network stack
     8  // in windows it is given the name NAT
     9  func (n NetworkMode) IsBridge() bool {
    10  	return n == "nat"
    11  }
    12  
    13  // IsHost indicates whether container uses the host network stack.
    14  // returns false as this is not supported by windows
    15  func (n NetworkMode) IsHost() bool {
    16  	return false
    17  }
    18  
    19  // IsUserDefined indicates user-created network
    20  func (n NetworkMode) IsUserDefined() bool {
    21  	return !n.IsDefault() && !n.IsNone() && !n.IsBridge() && !n.IsContainer()
    22  }
    23  
    24  // IsHyperV indicates the use of a Hyper-V partition for isolation
    25  func (i Isolation) IsHyperV() bool {
    26  	return strings.ToLower(string(i)) == "hyperv"
    27  }
    28  
    29  // IsProcess indicates the use of process isolation
    30  func (i Isolation) IsProcess() bool {
    31  	return strings.ToLower(string(i)) == "process"
    32  }
    33  
    34  // IsValid indicates if an isolation technology is valid
    35  func (i Isolation) IsValid() bool {
    36  	return i.IsDefault() || i.IsHyperV() || i.IsProcess()
    37  }
    38  
    39  // NetworkName returns the name of the network stack.
    40  func (n NetworkMode) NetworkName() string {
    41  	if n.IsDefault() {
    42  		return "default"
    43  	} else if n.IsBridge() {
    44  		return "nat"
    45  	} else if n.IsNone() {
    46  		return "none"
    47  	} else if n.IsContainer() {
    48  		return "container"
    49  	} else if n.IsUserDefined() {
    50  		return n.UserDefined()
    51  	}
    52  
    53  	return ""
    54  }