...

Source file src/github.com/Microsoft/hcsshim/hcn/hcnroute_test.go

Documentation: github.com/Microsoft/hcsshim/hcn

     1  //go:build windows && integration
     2  // +build windows,integration
     3  
     4  package hcn
     5  
     6  import (
     7  	"encoding/json"
     8  	"testing"
     9  )
    10  
    11  func TestCreateDeleteRoute(t *testing.T) {
    12  	network, err := CreateTestOverlayNetwork()
    13  	if err != nil {
    14  		t.Fatal(err)
    15  	}
    16  	endpoint, err := HcnCreateTestEndpoint(network)
    17  	if err != nil {
    18  		t.Fatal(err)
    19  	}
    20  	route, err := HcnCreateTestSdnRoute(endpoint)
    21  	if err != nil {
    22  		t.Fatal(err)
    23  	}
    24  	jsonString, err := json.Marshal(route)
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  	t.Logf("SDN Route JSON:\n%s \n", jsonString)
    29  
    30  	err = route.Delete()
    31  	if err != nil {
    32  		t.Fatal(err)
    33  	}
    34  	err = endpoint.Delete()
    35  	if err != nil {
    36  		t.Fatal(err)
    37  	}
    38  	err = network.Delete()
    39  	if err != nil {
    40  		t.Fatal(err)
    41  	}
    42  }
    43  
    44  func TestGetRouteById(t *testing.T) {
    45  	network, err := CreateTestOverlayNetwork()
    46  	if err != nil {
    47  		t.Fatal(err)
    48  	}
    49  	endpoint, err := HcnCreateTestEndpoint(network)
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  	route, err := HcnCreateTestSdnRoute(endpoint)
    54  	if err != nil {
    55  		t.Fatal(err)
    56  	}
    57  	jsonString, err := json.Marshal(route)
    58  	if err != nil {
    59  		t.Fatal(err)
    60  	}
    61  	t.Logf("SDN Route JSON:\n%s \n", jsonString)
    62  	foundRoute, err := GetRouteByID(route.ID)
    63  	if err != nil {
    64  		t.Fatal(err)
    65  	}
    66  	if foundRoute == nil {
    67  		t.Fatalf("No SDN route found")
    68  	}
    69  	err = route.Delete()
    70  	if err != nil {
    71  		t.Fatal(err)
    72  	}
    73  	err = endpoint.Delete()
    74  	if err != nil {
    75  		t.Fatal(err)
    76  	}
    77  	err = network.Delete()
    78  	if err != nil {
    79  		t.Fatal(err)
    80  	}
    81  }
    82  
    83  func TestListRoutes(t *testing.T) {
    84  	_, err := ListRoutes()
    85  	if err != nil {
    86  		t.Fatal(err)
    87  	}
    88  }
    89  
    90  func TestRouteAddRemoveEndpoint(t *testing.T) {
    91  	network, err := CreateTestOverlayNetwork()
    92  	if err != nil {
    93  		t.Fatal(err)
    94  	}
    95  	endpoint, err := HcnCreateTestEndpoint(network)
    96  	if err != nil {
    97  		t.Fatal(err)
    98  	}
    99  	route, err := HcnCreateTestSdnRoute(endpoint)
   100  	if err != nil {
   101  		t.Fatal(err)
   102  	}
   103  	secondEndpoint, err := HcnCreateTestEndpoint(network)
   104  	if err != nil {
   105  		t.Fatal(err)
   106  	}
   107  	newRoute, err := route.AddEndpoint(secondEndpoint)
   108  	if err != nil {
   109  		t.Fatal(err)
   110  	}
   111  	if len(newRoute.HostComputeEndpoints) != 2 {
   112  		t.Fatalf("Endpoint not added to SDN Route")
   113  	}
   114  	newRoute1, err := route.RemoveEndpoint(secondEndpoint)
   115  	if err != nil {
   116  		t.Fatal(err)
   117  	}
   118  	if len(newRoute1.HostComputeEndpoints) != 1 {
   119  		t.Fatalf("Endpoint not removed from SDN Route")
   120  	}
   121  	err = route.Delete()
   122  	if err != nil {
   123  		t.Fatal(err)
   124  	}
   125  	err = endpoint.Delete()
   126  	if err != nil {
   127  		t.Fatal(err)
   128  	}
   129  	err = network.Delete()
   130  	if err != nil {
   131  		t.Fatal(err)
   132  	}
   133  }
   134  
   135  func TestAddRoute(t *testing.T) {
   136  	network, err := CreateTestOverlayNetwork()
   137  	if err != nil {
   138  		t.Fatal(err)
   139  	}
   140  	endpoint, err := HcnCreateTestEndpoint(network)
   141  	if err != nil {
   142  		t.Fatal(err)
   143  	}
   144  	route, err := AddRoute([]HostComputeEndpoint{*endpoint}, "169.254.169.254/24", "127.10.0.33", false)
   145  	if err != nil {
   146  		t.Fatal(err)
   147  	}
   148  	jsonString, err := json.Marshal(route)
   149  	if err != nil {
   150  		t.Fatal(err)
   151  	}
   152  	t.Logf("SDN Route JSON:\n%s \n", jsonString)
   153  	foundRoute, err := GetRouteByID(route.ID)
   154  	if err != nil {
   155  		t.Fatal(err)
   156  	}
   157  	if foundRoute == nil {
   158  		t.Fatalf("No SDN route found")
   159  	}
   160  	err = route.Delete()
   161  	if err != nil {
   162  		t.Fatal(err)
   163  	}
   164  	err = endpoint.Delete()
   165  	if err != nil {
   166  		t.Fatal(err)
   167  	}
   168  	err = network.Delete()
   169  	if err != nil {
   170  		t.Fatal(err)
   171  	}
   172  }
   173  

View as plain text