|
@@ -30,6 +30,7 @@ type HNSEndpoint struct {
|
|
EnableLowMetric bool `json:",omitempty"`
|
|
EnableLowMetric bool `json:",omitempty"`
|
|
Namespace *Namespace `json:",omitempty"`
|
|
Namespace *Namespace `json:",omitempty"`
|
|
EncapOverhead uint16 `json:",omitempty"`
|
|
EncapOverhead uint16 `json:",omitempty"`
|
|
|
|
+ SharedContainers []string `json:",omitempty"`
|
|
}
|
|
}
|
|
|
|
|
|
//SystemType represents the type of the system on which actions are done
|
|
//SystemType represents the type of the system on which actions are done
|
|
@@ -57,6 +58,18 @@ type EndpointResquestResponse struct {
|
|
Error string
|
|
Error string
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// EndpointStats is the object that has stats for a given endpoint
|
|
|
|
+type EndpointStats struct {
|
|
|
|
+ BytesReceived uint64 `json:"BytesReceived"`
|
|
|
|
+ BytesSent uint64 `json:"BytesSent"`
|
|
|
|
+ DroppedPacketsIncoming uint64 `json:"DroppedPacketsIncoming"`
|
|
|
|
+ DroppedPacketsOutgoing uint64 `json:"DroppedPacketsOutgoing"`
|
|
|
|
+ EndpointID string `json:"EndpointId"`
|
|
|
|
+ InstanceID string `json:"InstanceId"`
|
|
|
|
+ PacketsReceived uint64 `json:"PacketsReceived"`
|
|
|
|
+ PacketsSent uint64 `json:"PacketsSent"`
|
|
|
|
+}
|
|
|
|
+
|
|
// HNSEndpointRequest makes a HNS call to modify/query a network endpoint
|
|
// HNSEndpointRequest makes a HNS call to modify/query a network endpoint
|
|
func HNSEndpointRequest(method, path, request string) (*HNSEndpoint, error) {
|
|
func HNSEndpointRequest(method, path, request string) (*HNSEndpoint, error) {
|
|
endpoint := &HNSEndpoint{}
|
|
endpoint := &HNSEndpoint{}
|
|
@@ -79,11 +92,27 @@ func HNSListEndpointRequest() ([]HNSEndpoint, error) {
|
|
return endpoint, nil
|
|
return endpoint, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// hnsEndpointStatsRequest makes a HNS call to query the stats for a given endpoint ID
|
|
|
|
+func hnsEndpointStatsRequest(id string) (*EndpointStats, error) {
|
|
|
|
+ var stats EndpointStats
|
|
|
|
+ err := hnsCall("GET", "/endpointstats/"+id, "", &stats)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return &stats, nil
|
|
|
|
+}
|
|
|
|
+
|
|
// GetHNSEndpointByID get the Endpoint by ID
|
|
// GetHNSEndpointByID get the Endpoint by ID
|
|
func GetHNSEndpointByID(endpointID string) (*HNSEndpoint, error) {
|
|
func GetHNSEndpointByID(endpointID string) (*HNSEndpoint, error) {
|
|
return HNSEndpointRequest("GET", endpointID, "")
|
|
return HNSEndpointRequest("GET", endpointID, "")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// GetHNSEndpointStats get the stats for a n Endpoint by ID
|
|
|
|
+func GetHNSEndpointStats(endpointID string) (*EndpointStats, error) {
|
|
|
|
+ return hnsEndpointStatsRequest(endpointID)
|
|
|
|
+}
|
|
|
|
+
|
|
// GetHNSEndpointByName gets the endpoint filtered by Name
|
|
// GetHNSEndpointByName gets the endpoint filtered by Name
|
|
func GetHNSEndpointByName(endpointName string) (*HNSEndpoint, error) {
|
|
func GetHNSEndpointByName(endpointName string) (*HNSEndpoint, error) {
|
|
hnsResponse, err := HNSListEndpointRequest()
|
|
hnsResponse, err := HNSListEndpointRequest()
|