vendor update
This commit is contained in:
298
vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint_test.go
generated
vendored
298
vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint_test.go
generated
vendored
@ -1,298 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCreateDeleteEndpoint(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
jsonString, err := json.Marshal(Endpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Printf("Endpoint JSON:\n%s \n", jsonString)
|
||||
|
||||
err = Endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEndpointById(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoint, err := GetEndpointByID(Endpoint.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundEndpoint == nil {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
|
||||
err = foundEndpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEndpointByName(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoint, err := GetEndpointByName(Endpoint.Name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundEndpoint == nil {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
|
||||
err = foundEndpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListEndpoints(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoints, err := ListEndpoints()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoints) == 0 {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
|
||||
err = Endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListEndpointsOfNetwork(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoints, err := ListEndpointsOfNetwork(network.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoints) == 0 {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
|
||||
err = Endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEndpointNamespaceAttachDetach(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = endpoint.NamespaceAttach(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.NamespaceDetach(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateEndpointWithNamespace(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpointWithNamespace(network, namespace)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if Endpoint.HostComputeNamespace == "" {
|
||||
t.Fatal("No Namespace detected.")
|
||||
}
|
||||
|
||||
err = Endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyPolicyOnEndpoint(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
Endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpointPolicyList, err := HcnCreateAcls()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
jsonString, err := json.Marshal(*endpointPolicyList)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Printf("ACLS JSON:\n%s \n", jsonString)
|
||||
err = Endpoint.ApplyPolicy(*endpointPolicyList)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoint, err := GetEndpointByName(Endpoint.Name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoint.Policies) == 0 {
|
||||
t.Fatal("No Endpoint Policies found")
|
||||
}
|
||||
|
||||
err = Endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestModifyEndpointSettings(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpointPolicy, err := HcnCreateAcls()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
settingsJson, err := json.Marshal(endpointPolicy)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
requestMessage := &ModifyEndpointSettingRequest{
|
||||
ResourceType: EndpointResourceTypePolicy,
|
||||
RequestType: RequestTypeUpdate,
|
||||
Settings: settingsJson,
|
||||
}
|
||||
|
||||
err = ModifyEndpointSettings(endpoint.Id, requestMessage)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoint, err := GetEndpointByName(endpoint.Name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoint.Policies) == 0 {
|
||||
t.Fatal("No Endpoint Policies found")
|
||||
}
|
||||
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
34
vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors_test.go
generated
vendored
34
vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors_test.go
generated
vendored
@ -1,34 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMissingNetworkByName(t *testing.T) {
|
||||
_, err := GetNetworkByName("Not found name")
|
||||
if err == nil {
|
||||
t.Fatal("Error was not thrown.")
|
||||
}
|
||||
if !IsNotFoundError(err) {
|
||||
t.Fatal("Unrelated error was thrown.")
|
||||
}
|
||||
if _, ok := err.(NetworkNotFoundError); !ok {
|
||||
t.Fatal("Wrong error type was thrown.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestMissingNetworkById(t *testing.T) {
|
||||
// Random guid
|
||||
_, err := GetNetworkByID("5f0b1190-63be-4e0c-b974-bd0f55675a42")
|
||||
if err == nil {
|
||||
t.Fatal("Unrelated error was thrown.")
|
||||
}
|
||||
if !IsNotFoundError(err) {
|
||||
t.Fatal("Unrelated error was thrown.")
|
||||
}
|
||||
if _, ok := err.(NetworkNotFoundError); !ok {
|
||||
t.Fatal("Wrong error type was thrown.")
|
||||
}
|
||||
}
|
54
vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go
generated
vendored
54
vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go
generated
vendored
@ -10,10 +10,10 @@ import (
|
||||
|
||||
// LoadBalancerPortMapping is associated with HostComputeLoadBalancer
|
||||
type LoadBalancerPortMapping struct {
|
||||
Protocol uint32 `json:",omitempty"` // EX: TCP = 6, UDP = 17
|
||||
InternalPort uint16 `json:",omitempty"`
|
||||
ExternalPort uint16 `json:",omitempty"`
|
||||
Flags uint32 `json:",omitempty"` // 0: None, 1: EnableILB, 2: LocalRoutedVip
|
||||
Protocol uint32 `json:",omitempty"` // EX: TCP = 6, UDP = 17
|
||||
InternalPort uint16 `json:",omitempty"`
|
||||
ExternalPort uint16 `json:",omitempty"`
|
||||
Flags LoadBalancerPortMappingFlags `json:",omitempty"`
|
||||
}
|
||||
|
||||
// HostComputeLoadBalancer represents software load balancer.
|
||||
@ -24,9 +24,35 @@ type HostComputeLoadBalancer struct {
|
||||
FrontendVIPs []string `json:",omitempty"`
|
||||
PortMappings []LoadBalancerPortMapping `json:",omitempty"`
|
||||
SchemaVersion SchemaVersion `json:",omitempty"`
|
||||
Flags uint32 `json:",omitempty"` // 0: None, 1: EnableDirectServerReturn
|
||||
Flags LoadBalancerFlags `json:",omitempty"` // 0: None, 1: EnableDirectServerReturn
|
||||
}
|
||||
|
||||
//LoadBalancerFlags modify settings for a loadbalancer.
|
||||
type LoadBalancerFlags uint32
|
||||
|
||||
var (
|
||||
// LoadBalancerFlagsNone is the default.
|
||||
LoadBalancerFlagsNone LoadBalancerFlags = 0
|
||||
// LoadBalancerFlagsDSR enables Direct Server Return (DSR)
|
||||
LoadBalancerFlagsDSR LoadBalancerFlags = 1
|
||||
)
|
||||
|
||||
// LoadBalancerPortMappingFlags are special settings on a loadbalancer.
|
||||
type LoadBalancerPortMappingFlags uint32
|
||||
|
||||
var (
|
||||
// LoadBalancerPortMappingFlagsNone is the default.
|
||||
LoadBalancerPortMappingFlagsNone LoadBalancerPortMappingFlags
|
||||
// LoadBalancerPortMappingFlagsILB enables internal loadbalancing.
|
||||
LoadBalancerPortMappingFlagsILB LoadBalancerPortMappingFlags = 1
|
||||
// LoadBalancerPortMappingFlagsLocalRoutedVIP enables VIP access from the host.
|
||||
LoadBalancerPortMappingFlagsLocalRoutedVIP LoadBalancerPortMappingFlags = 2
|
||||
// LoadBalancerPortMappingFlagsUseMux enables DSR for NodePort access of VIP.
|
||||
LoadBalancerPortMappingFlagsUseMux LoadBalancerPortMappingFlags = 4
|
||||
// LoadBalancerPortMappingFlagsPreserveDIP delivers packets with destination IP as the VIP.
|
||||
LoadBalancerPortMappingFlagsPreserveDIP LoadBalancerPortMappingFlags = 8
|
||||
)
|
||||
|
||||
func getLoadBalancer(loadBalancerGuid guid.GUID, query string) (*HostComputeLoadBalancer, error) {
|
||||
// Open loadBalancer.
|
||||
var (
|
||||
@ -280,20 +306,8 @@ func (loadBalancer *HostComputeLoadBalancer) RemoveEndpoint(endpoint *HostComput
|
||||
}
|
||||
|
||||
// AddLoadBalancer for the specified endpoints
|
||||
func AddLoadBalancer(endpoints []HostComputeEndpoint, isILB bool, isDSR bool, sourceVIP string, frontendVIPs []string, protocol uint16, internalPort uint16, externalPort uint16) (*HostComputeLoadBalancer, error) {
|
||||
logrus.Debugf("hcn::HostComputeLoadBalancer::AddLoadBalancer endpointId=%v, isILB=%v, sourceVIP=%s, frontendVIPs=%v, protocol=%v, internalPort=%v, externalPort=%v", endpoints, isILB, sourceVIP, frontendVIPs, protocol, internalPort, externalPort)
|
||||
|
||||
var portMappingFlags uint32
|
||||
portMappingFlags = 0
|
||||
if isILB {
|
||||
portMappingFlags = 1
|
||||
}
|
||||
|
||||
var lbFlags uint32
|
||||
lbFlags = 0
|
||||
if isDSR {
|
||||
lbFlags = 1 // EnableDirectServerReturn
|
||||
}
|
||||
func AddLoadBalancer(endpoints []HostComputeEndpoint, flags LoadBalancerFlags, portMappingFlags LoadBalancerPortMappingFlags, sourceVIP string, frontendVIPs []string, protocol uint16, internalPort uint16, externalPort uint16) (*HostComputeLoadBalancer, error) {
|
||||
logrus.Debugf("hcn::HostComputeLoadBalancer::AddLoadBalancer endpointId=%v, LoadBalancerFlags=%v, LoadBalancerPortMappingFlags=%v, sourceVIP=%s, frontendVIPs=%v, protocol=%v, internalPort=%v, externalPort=%v", endpoints, flags, portMappingFlags, sourceVIP, frontendVIPs, protocol, internalPort, externalPort)
|
||||
|
||||
loadBalancer := &HostComputeLoadBalancer{
|
||||
SourceVIP: sourceVIP,
|
||||
@ -310,7 +324,7 @@ func AddLoadBalancer(endpoints []HostComputeEndpoint, isILB bool, isDSR bool, so
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
Flags: lbFlags,
|
||||
Flags: flags,
|
||||
}
|
||||
|
||||
for _, endpoint := range endpoints {
|
||||
|
243
vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer_test.go
generated
vendored
243
vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer_test.go
generated
vendored
@ -1,243 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCreateDeleteLoadBalancer(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
loadBalancer, err := HcnCreateTestLoadBalancer(endpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
jsonString, err := json.Marshal(loadBalancer)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Printf("LoadBalancer JSON:\n%s \n", jsonString)
|
||||
|
||||
err = loadBalancer.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetLoadBalancerById(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
loadBalancer, err := HcnCreateTestLoadBalancer(endpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundLB, err := GetLoadBalancerByID(loadBalancer.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundLB == nil {
|
||||
t.Fatalf("No loadBalancer found")
|
||||
}
|
||||
err = loadBalancer.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListLoadBalancer(t *testing.T) {
|
||||
_, err := ListLoadBalancers()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadBalancerAddRemoveEndpoint(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
loadBalancer, err := HcnCreateTestLoadBalancer(endpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
secondEndpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
updatedLB, err := loadBalancer.AddEndpoint(secondEndpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if len(updatedLB.HostComputeEndpoints) != 2 {
|
||||
t.Fatalf("Endpoint not added to loadBalancer")
|
||||
}
|
||||
updatedLB, err = loadBalancer.RemoveEndpoint(secondEndpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(updatedLB.HostComputeEndpoints) != 1 {
|
||||
t.Fatalf("Endpoint not removed from loadBalancer")
|
||||
}
|
||||
|
||||
err = loadBalancer.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = secondEndpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddLoadBalancer(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
loadBalancer, err := AddLoadBalancer([]HostComputeEndpoint{*endpoint}, false, false, "10.0.0.1", []string{"1.1.1.2", "1.1.1.3"}, 6, 8080, 80)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundLB, err := GetLoadBalancerByID(loadBalancer.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundLB == nil {
|
||||
t.Fatal(fmt.Errorf("No loadBalancer found"))
|
||||
}
|
||||
|
||||
err = loadBalancer.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddDSRLoadBalancer(t *testing.T) {
|
||||
network, err := CreateTestOverlayNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
loadBalancer, err := AddLoadBalancer([]HostComputeEndpoint{*endpoint}, false, true, "10.0.0.1", []string{"1.1.1.2", "1.1.1.3"}, 6, 8080, 80)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundLB, err := GetLoadBalancerByID(loadBalancer.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundLB == nil {
|
||||
t.Fatal(fmt.Errorf("No loadBalancer found"))
|
||||
}
|
||||
|
||||
err = loadBalancer.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddILBLoadBalancer(t *testing.T) {
|
||||
network, err := CreateTestOverlayNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
loadBalancer, err := AddLoadBalancer([]HostComputeEndpoint{*endpoint}, true, false, "10.0.0.1", []string{"1.1.1.2", "1.1.1.3"}, 6, 8080, 80)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundLB, err := GetLoadBalancerByID(loadBalancer.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundLB == nil {
|
||||
t.Fatal(fmt.Errorf("No loadBalancer found"))
|
||||
}
|
||||
|
||||
err = loadBalancer.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
451
vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace_test.go
generated
vendored
451
vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace_test.go
generated
vendored
@ -1,451 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/Microsoft/hcsshim/internal/cni"
|
||||
"github.com/Microsoft/hcsshim/internal/guid"
|
||||
)
|
||||
|
||||
func TestNewNamespace(t *testing.T) {
|
||||
_ = NewNamespace(NamespaceTypeHost)
|
||||
_ = NewNamespace(NamespaceTypeHostDefault)
|
||||
_ = NewNamespace(NamespaceTypeGuest)
|
||||
_ = NewNamespace(NamespaceTypeGuestDefault)
|
||||
}
|
||||
|
||||
func TestCreateDeleteNamespace(t *testing.T) {
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
jsonString, err := json.Marshal(namespace)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Printf("Namespace JSON:\n%s \n", jsonString)
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateDeleteNamespaceGuest(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeGuestDefault,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNamespaceById(t *testing.T) {
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundNamespace, err := GetNamespaceByID(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if foundNamespace == nil {
|
||||
t.Fatal("No namespace found")
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListNamespaces(t *testing.T) {
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundNamespaces, err := ListNamespaces()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundNamespaces) == 0 {
|
||||
t.Fatal("No Namespaces found")
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNamespaceEndpointIds(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = endpoint.NamespaceAttach(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundEndpoints, err := GetNamespaceEndpointIds(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoints) == 0 {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
err = endpoint.NamespaceDetach(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNamespaceContainers(t *testing.T) {
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
foundEndpoints, err := GetNamespaceContainerIds(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoints) != 0 {
|
||||
t.Fatal("Found containers when none should exist")
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddRemoveNamespaceEndpoint(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = AddNamespaceEndpoint(namespace.Id, endpoint.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundEndpoints, err := GetNamespaceEndpointIds(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoints) == 0 {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
err = RemoveNamespaceEndpoint(namespace.Id, endpoint.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestModifyNamespaceSettings(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
endpoint, err := HcnCreateTestEndpoint(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
namespace, err := HcnCreateTestNamespace()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
mapA := map[string]string{"EndpointId": endpoint.Id}
|
||||
settingsJson, err := json.Marshal(mapA)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
requestMessage := &ModifyNamespaceSettingRequest{
|
||||
ResourceType: NamespaceResourceTypeEndpoint,
|
||||
RequestType: RequestTypeAdd,
|
||||
Settings: settingsJson,
|
||||
}
|
||||
|
||||
err = ModifyNamespaceSettings(namespace.Id, requestMessage)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foundEndpoints, err := GetNamespaceEndpointIds(namespace.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(foundEndpoints) == 0 {
|
||||
t.Fatal("No Endpoint found")
|
||||
}
|
||||
err = RemoveNamespaceEndpoint(namespace.Id, endpoint.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = namespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// Sync Tests
|
||||
|
||||
func TestSyncNamespaceHostDefault(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeHostDefault,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Host namespace types should be no-op success
|
||||
err = hnsNamespace.Sync()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSyncNamespaceHost(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeHost,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Host namespace types should be no-op success
|
||||
err = hnsNamespace.Sync()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSyncNamespaceGuestNoReg(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeGuest,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Guest namespace type with out reg state should be no-op success
|
||||
err = hnsNamespace.Sync()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSyncNamespaceGuestDefaultNoReg(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeGuestDefault,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Guest namespace type with out reg state should be no-op success
|
||||
err = hnsNamespace.Sync()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSyncNamespaceGuest(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeGuest,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Create registry state
|
||||
pnc := cni.NewPersistedNamespaceConfig(t.Name(), "test-container", guid.New())
|
||||
err = pnc.Store()
|
||||
if err != nil {
|
||||
pnc.Remove()
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Guest namespace type with reg state but not Vm shim should pass...
|
||||
// after trying to connect to VM shim that it doesn't find and remove the Key so it doesn't look again.
|
||||
err = hnsNamespace.Sync()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = pnc.Remove()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSyncNamespaceGuestDefault(t *testing.T) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeGuestDefault,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
hnsNamespace, err := namespace.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Create registry state
|
||||
pnc := cni.NewPersistedNamespaceConfig(t.Name(), "test-container", guid.New())
|
||||
err = pnc.Store()
|
||||
if err != nil {
|
||||
pnc.Remove()
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Guest namespace type with reg state but not Vm shim should pass...
|
||||
// after trying to connect to VM shim that it doesn't find and remove the Key so it doesn't look again.
|
||||
err = hnsNamespace.Sync()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = pnc.Remove()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = hnsNamespace.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
165
vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork_test.go
generated
vendored
165
vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork_test.go
generated
vendored
@ -1,165 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCreateDeleteNetwork(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
jsonString, err := json.Marshal(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Printf("Network JSON:\n%s \n", jsonString)
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNetworkByName(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
network, err = GetNetworkByName(network.Name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if network == nil {
|
||||
t.Fatal("No Network found")
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNetworkById(t *testing.T) {
|
||||
network, err := HcnCreateTestNATNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
network, err = GetNetworkByID(network.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if network == nil {
|
||||
t.Fatal("No Network found")
|
||||
}
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListNetwork(t *testing.T) {
|
||||
_, err := ListNetworks()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func testNetworkPolicy(t *testing.T, policiesToTest *PolicyNetworkRequest) {
|
||||
network, err := CreateTestOverlayNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
network.AddPolicy(*policiesToTest)
|
||||
|
||||
//Reload the network object from HNS.
|
||||
network, err = GetNetworkByID(network.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for _, policyToTest := range policiesToTest.Policies {
|
||||
foundPolicy := false
|
||||
for _, policy := range network.Policies {
|
||||
if policy.Type == policyToTest.Type {
|
||||
foundPolicy = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !foundPolicy {
|
||||
t.Fatalf("Could not find %s policy on network.", policyToTest.Type)
|
||||
}
|
||||
}
|
||||
|
||||
network.RemovePolicy(*policiesToTest)
|
||||
|
||||
//Reload the network object from HNS.
|
||||
network, err = GetNetworkByID(network.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for _, policyToTest := range policiesToTest.Policies {
|
||||
foundPolicy := false
|
||||
for _, policy := range network.Policies {
|
||||
if policy.Type == policyToTest.Type {
|
||||
foundPolicy = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if foundPolicy {
|
||||
t.Fatalf("Found %s policy on network when it should have been deleted.", policyToTest.Type)
|
||||
}
|
||||
}
|
||||
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddRemoveRemoteSubnetRoutePolicy(t *testing.T) {
|
||||
|
||||
remoteSubnetRoutePolicy, err := HcnCreateTestRemoteSubnetRoute()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
testNetworkPolicy(t, remoteSubnetRoutePolicy)
|
||||
}
|
||||
|
||||
func TestAddRemoveHostRoutePolicy(t *testing.T) {
|
||||
|
||||
hostRoutePolicy, err := HcnCreateTestHostRoute()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
testNetworkPolicy(t, hostRoutePolicy)
|
||||
}
|
||||
|
||||
func TestNetworkFlags(t *testing.T) {
|
||||
|
||||
network, err := CreateTestOverlayNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
//Reload the network object from HNS.
|
||||
network, err = GetNetworkByID(network.Id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if network.Flags != EnableNonPersistent {
|
||||
t.Errorf("EnableNonPersistent flag (%d) is not set on network", EnableNonPersistent)
|
||||
}
|
||||
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
62
vendor/github.com/Microsoft/hcsshim/hcn/hcnsupport_test.go
generated
vendored
62
vendor/github.com/Microsoft/hcsshim/hcn/hcnsupport_test.go
generated
vendored
@ -1,62 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSupportedFeatures(t *testing.T) {
|
||||
supportedFeatures := GetSupportedFeatures()
|
||||
jsonString, err := json.Marshal(supportedFeatures)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Printf("Supported Features:\n%s \n", jsonString)
|
||||
}
|
||||
|
||||
func TestV2ApiSupport(t *testing.T) {
|
||||
supportedFeatures := GetSupportedFeatures()
|
||||
err := V2ApiSupported()
|
||||
if supportedFeatures.Api.V2 && err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !supportedFeatures.Api.V2 && err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRemoteSubnetSupport(t *testing.T) {
|
||||
supportedFeatures := GetSupportedFeatures()
|
||||
err := RemoteSubnetSupported()
|
||||
if supportedFeatures.RemoteSubnet && err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !supportedFeatures.RemoteSubnet && err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHostRouteSupport(t *testing.T) {
|
||||
supportedFeatures := GetSupportedFeatures()
|
||||
err := HostRouteSupported()
|
||||
if supportedFeatures.HostRoute && err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !supportedFeatures.HostRoute && err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDSRSupport(t *testing.T) {
|
||||
supportedFeatures := GetSupportedFeatures()
|
||||
err := DSRSupported()
|
||||
if supportedFeatures.DSR && err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !supportedFeatures.DSR && err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
267
vendor/github.com/Microsoft/hcsshim/hcn/hcnutils_test.go
generated
vendored
267
vendor/github.com/Microsoft/hcsshim/hcn/hcnutils_test.go
generated
vendored
@ -1,267 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
func cleanup(networkName string) {
|
||||
// Delete test network (if exists)
|
||||
testNetwork, err := GetNetworkByName(networkName)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if testNetwork != nil {
|
||||
err := testNetwork.Delete()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func HcnCreateTestNATNetwork() (*HostComputeNetwork, error) {
|
||||
cleanup(NatTestNetworkName)
|
||||
network := &HostComputeNetwork{
|
||||
Type: "NAT",
|
||||
Name: NatTestNetworkName,
|
||||
MacPool: MacPool{
|
||||
Ranges: []MacRange{
|
||||
{
|
||||
StartMacAddress: "00-15-5D-52-C0-00",
|
||||
EndMacAddress: "00-15-5D-52-CF-FF",
|
||||
},
|
||||
},
|
||||
},
|
||||
Ipams: []Ipam{
|
||||
{
|
||||
Type: "Static",
|
||||
Subnets: []Subnet{
|
||||
{
|
||||
IpAddressPrefix: "192.168.100.0/24",
|
||||
Routes: []Route{
|
||||
{
|
||||
NextHop: "192.168.100.1",
|
||||
DestinationPrefix: "0.0.0.0",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
return network.Create()
|
||||
}
|
||||
|
||||
func CreateTestOverlayNetwork() (*HostComputeNetwork, error) {
|
||||
cleanup(OverlayTestNetworkName)
|
||||
network := &HostComputeNetwork{
|
||||
Type: "Overlay",
|
||||
Name: OverlayTestNetworkName,
|
||||
MacPool: MacPool{
|
||||
Ranges: []MacRange{
|
||||
{
|
||||
StartMacAddress: "00-15-5D-52-C0-00",
|
||||
EndMacAddress: "00-15-5D-52-CF-FF",
|
||||
},
|
||||
},
|
||||
},
|
||||
Ipams: []Ipam{
|
||||
{
|
||||
Type: "Static",
|
||||
Subnets: []Subnet{
|
||||
{
|
||||
IpAddressPrefix: "192.168.100.0/24",
|
||||
Routes: []Route{
|
||||
{
|
||||
NextHop: "192.168.100.1",
|
||||
DestinationPrefix: "0.0.0.0/0",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Flags: EnableNonPersistent,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
vsid := &VsidPolicySetting{
|
||||
IsolationId: 5000,
|
||||
}
|
||||
vsidJson, err := json.Marshal(vsid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
sp := &SubnetPolicy{
|
||||
Type: VSID,
|
||||
}
|
||||
sp.Settings = vsidJson
|
||||
|
||||
spJson, err := json.Marshal(sp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
network.Ipams[0].Subnets[0].Policies = append(network.Ipams[0].Subnets[0].Policies, spJson)
|
||||
|
||||
return network.Create()
|
||||
}
|
||||
|
||||
func HcnCreateTestEndpoint(network *HostComputeNetwork) (*HostComputeEndpoint, error) {
|
||||
if network == nil {
|
||||
|
||||
}
|
||||
Endpoint := &HostComputeEndpoint{
|
||||
Name: NatTestEndpointName,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
return network.CreateEndpoint(Endpoint)
|
||||
}
|
||||
|
||||
func HcnCreateTestEndpointWithNamespace(network *HostComputeNetwork, namespace *HostComputeNamespace) (*HostComputeEndpoint, error) {
|
||||
Endpoint := &HostComputeEndpoint{
|
||||
Name: NatTestEndpointName,
|
||||
HostComputeNamespace: namespace.Id,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
return network.CreateEndpoint(Endpoint)
|
||||
}
|
||||
|
||||
func HcnCreateTestNamespace() (*HostComputeNamespace, error) {
|
||||
namespace := &HostComputeNamespace{
|
||||
Type: NamespaceTypeHostDefault,
|
||||
NamespaceId: 5,
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
return namespace.Create()
|
||||
}
|
||||
|
||||
func HcnCreateAcls() (*PolicyEndpointRequest, error) {
|
||||
in := AclPolicySetting{
|
||||
Protocols: "6",
|
||||
Action: ActionTypeAllow,
|
||||
Direction: DirectionTypeIn,
|
||||
LocalAddresses: "192.168.100.0/24,10.0.0.21",
|
||||
RemoteAddresses: "192.168.100.0/24,10.0.0.21",
|
||||
LocalPorts: "80,8080",
|
||||
RemotePorts: "80,8080",
|
||||
RuleType: RuleTypeSwitch,
|
||||
Priority: 200,
|
||||
}
|
||||
|
||||
rawJSON, err := json.Marshal(in)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
inPolicy := EndpointPolicy{
|
||||
Type: ACL,
|
||||
Settings: rawJSON,
|
||||
}
|
||||
|
||||
out := AclPolicySetting{
|
||||
Protocols: "6",
|
||||
Action: ActionTypeAllow,
|
||||
Direction: DirectionTypeOut,
|
||||
LocalAddresses: "192.168.100.0/24,10.0.0.21",
|
||||
RemoteAddresses: "192.168.100.0/24,10.0.0.21",
|
||||
LocalPorts: "80,8080",
|
||||
RemotePorts: "80,8080",
|
||||
RuleType: RuleTypeSwitch,
|
||||
Priority: 200,
|
||||
}
|
||||
|
||||
rawJSON, err = json.Marshal(out)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
outPolicy := EndpointPolicy{
|
||||
Type: ACL,
|
||||
Settings: rawJSON,
|
||||
}
|
||||
|
||||
endpointRequest := PolicyEndpointRequest{
|
||||
Policies: []EndpointPolicy{inPolicy, outPolicy},
|
||||
}
|
||||
|
||||
return &endpointRequest, nil
|
||||
}
|
||||
|
||||
func HcnCreateTestLoadBalancer(endpoint *HostComputeEndpoint) (*HostComputeLoadBalancer, error) {
|
||||
loadBalancer := &HostComputeLoadBalancer{
|
||||
HostComputeEndpoints: []string{endpoint.Id},
|
||||
SourceVIP: "10.0.0.1",
|
||||
PortMappings: []LoadBalancerPortMapping{
|
||||
{
|
||||
Protocol: 6, // TCP
|
||||
InternalPort: 8080,
|
||||
ExternalPort: 8090,
|
||||
},
|
||||
},
|
||||
FrontendVIPs: []string{"1.1.1.2", "1.1.1.3"},
|
||||
SchemaVersion: SchemaVersion{
|
||||
Major: 2,
|
||||
Minor: 0,
|
||||
},
|
||||
}
|
||||
|
||||
return loadBalancer.Create()
|
||||
}
|
||||
|
||||
func HcnCreateTestRemoteSubnetRoute() (*PolicyNetworkRequest, error) {
|
||||
rsr := RemoteSubnetRoutePolicySetting{
|
||||
DestinationPrefix: "192.168.2.0/24",
|
||||
IsolationId: 5000,
|
||||
ProviderAddress: "1.1.1.1",
|
||||
DistributedRouterMacAddress: "00-12-34-56-78-9a",
|
||||
}
|
||||
|
||||
rawJSON, err := json.Marshal(rsr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rsrPolicy := NetworkPolicy{
|
||||
Type: RemoteSubnetRoute,
|
||||
Settings: rawJSON,
|
||||
}
|
||||
|
||||
networkRequest := PolicyNetworkRequest{
|
||||
Policies: []NetworkPolicy{rsrPolicy},
|
||||
}
|
||||
|
||||
return &networkRequest, nil
|
||||
}
|
||||
|
||||
func HcnCreateTestHostRoute() (*PolicyNetworkRequest, error) {
|
||||
hostRoutePolicy := NetworkPolicy{
|
||||
Type: HostRoute,
|
||||
Settings: []byte("{}"),
|
||||
}
|
||||
|
||||
networkRequest := PolicyNetworkRequest{
|
||||
Policies: []NetworkPolicy{hostRoutePolicy},
|
||||
}
|
||||
|
||||
return &networkRequest, nil
|
||||
}
|
111
vendor/github.com/Microsoft/hcsshim/hcn/hcnv1schema_test.go
generated
vendored
111
vendor/github.com/Microsoft/hcsshim/hcn/hcnv1schema_test.go
generated
vendored
@ -1,111 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/Microsoft/hcsshim"
|
||||
)
|
||||
|
||||
func TestV1Network(t *testing.T) {
|
||||
cleanup(NatTestNetworkName)
|
||||
|
||||
v1network := hcsshim.HNSNetwork{
|
||||
Type: "NAT",
|
||||
Name: NatTestNetworkName,
|
||||
MacPools: []hcsshim.MacPool{
|
||||
{
|
||||
StartMacAddress: "00-15-5D-52-C0-00",
|
||||
EndMacAddress: "00-15-5D-52-CF-FF",
|
||||
},
|
||||
},
|
||||
Subnets: []hcsshim.Subnet{
|
||||
{
|
||||
AddressPrefix: "192.168.100.0/24",
|
||||
GatewayAddress: "192.168.100.1",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
jsonString, err := json.Marshal(v1network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
network, err := createNetwork(string(jsonString))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestV1Endpoint(t *testing.T) {
|
||||
cleanup(NatTestNetworkName)
|
||||
|
||||
v1network := hcsshim.HNSNetwork{
|
||||
Type: "NAT",
|
||||
Name: NatTestNetworkName,
|
||||
MacPools: []hcsshim.MacPool{
|
||||
{
|
||||
StartMacAddress: "00-15-5D-52-C0-00",
|
||||
EndMacAddress: "00-15-5D-52-CF-FF",
|
||||
},
|
||||
},
|
||||
Subnets: []hcsshim.Subnet{
|
||||
{
|
||||
AddressPrefix: "192.168.100.0/24",
|
||||
GatewayAddress: "192.168.100.1",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
jsonString, err := json.Marshal(v1network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
network, err := createNetwork(string(jsonString))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
v1endpoint := hcsshim.HNSEndpoint{
|
||||
Name: NatTestEndpointName,
|
||||
VirtualNetwork: network.Id,
|
||||
}
|
||||
|
||||
jsonString, err = json.Marshal(v1endpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
endpoint, err := createEndpoint(network.Id, string(jsonString))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
err = endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fail()
|
||||
}
|
||||
}
|
97
vendor/github.com/Microsoft/hcsshim/hcn/hnsv1_test.go
generated
vendored
97
vendor/github.com/Microsoft/hcsshim/hcn/hnsv1_test.go
generated
vendored
@ -1,97 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package hcn
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/Microsoft/hcsshim"
|
||||
)
|
||||
|
||||
const (
|
||||
NatTestNetworkName string = "GoTestNat"
|
||||
NatTestEndpointName string = "GoTestNatEndpoint"
|
||||
OverlayTestNetworkName string = "GoTestOverlay"
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
os.Exit(m.Run())
|
||||
}
|
||||
|
||||
func CreateTestNetwork() (*hcsshim.HNSNetwork, error) {
|
||||
network := &hcsshim.HNSNetwork{
|
||||
Type: "NAT",
|
||||
Name: NatTestNetworkName,
|
||||
Subnets: []hcsshim.Subnet{
|
||||
{
|
||||
AddressPrefix: "192.168.100.0/24",
|
||||
GatewayAddress: "192.168.100.1",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return network.Create()
|
||||
}
|
||||
|
||||
func TestEndpoint(t *testing.T) {
|
||||
|
||||
network, err := CreateTestNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Endpoint := &hcsshim.HNSEndpoint{
|
||||
Name: NatTestEndpointName,
|
||||
}
|
||||
|
||||
Endpoint, err = network.CreateEndpoint(Endpoint)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = Endpoint.HostAttach(1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = Endpoint.HostDetach()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = Endpoint.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEndpointGetAll(t *testing.T) {
|
||||
_, err := hcsshim.HNSListEndpointRequest()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNetworkGetAll(t *testing.T) {
|
||||
_, err := hcsshim.HNSListNetworkRequest("GET", "", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNetwork(t *testing.T) {
|
||||
network, err := CreateTestNetwork()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = network.Delete()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user