summaryrefslogtreecommitdiff
path: root/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go')
-rw-r--r--vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
index 59ec7004c..6a1c41e15 100644
--- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
@@ -3,6 +3,7 @@ package hns
import (
"encoding/json"
"net"
+ "strings"
"github.com/sirupsen/logrus"
)
@@ -94,6 +95,27 @@ func GetHNSEndpointByName(endpointName string) (*HNSEndpoint, error) {
return nil, EndpointNotFoundError{EndpointName: endpointName}
}
+type endpointAttachInfo struct {
+ SharedContainers json.RawMessage `json:",omitempty"`
+}
+
+func (endpoint *HNSEndpoint) IsAttached(vID string) (bool, error) {
+ attachInfo := endpointAttachInfo{}
+ err := hnsCall("GET", "/endpoints/"+endpoint.Id, "", &attachInfo)
+
+ // Return false allows us to just return the err
+ if err != nil {
+ return false, err
+ }
+
+ if strings.Contains(strings.ToLower(string(attachInfo.SharedContainers)), strings.ToLower(vID)) {
+ return true, nil
+ }
+
+ return false, nil
+
+}
+
// Create Endpoint by sending EndpointRequest to HNS. TODO: Create a separate HNS interface to place all these methods
func (endpoint *HNSEndpoint) Create() (*HNSEndpoint, error) {
operation := "Create"