Skip to content

Commit

Permalink
Add Logical Network Support (#160)
Browse files Browse the repository at this point in the history
Add SDN Logical Network support.
  • Loading branch information
mjethwa-msft authored Jan 23, 2024
1 parent 76ac007 commit 6901e2d
Show file tree
Hide file tree
Showing 9 changed files with 542 additions and 28 deletions.
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ require (
github.com/Azure/go-autorest/autorest v0.9.0
github.com/Azure/go-autorest/autorest/date v0.2.0
github.com/google/uuid v1.3.1
github.com/microsoft/moc v0.11.0-alpha.37
github.com/microsoft/moc v0.13.1
google.golang.org/grpc v1.58.3
k8s.io/klog v1.0.0
)
Expand All @@ -18,7 +18,7 @@ require (
github.com/golang/protobuf v1.5.3
github.com/spf13/viper v1.17.0
github.com/stretchr/testify v1.8.4
google.golang.org/protobuf v1.31.0
google.golang.org/protobuf v1.32.0
)

replace (
Expand Down
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1120,8 +1120,8 @@ github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/microsoft/moc v0.11.0-alpha.37 h1:Jj2O5pzfxSXvwVyw7qcBxwKi/tJrl5AfLp7c7OtSLFE=
github.com/microsoft/moc v0.11.0-alpha.37/go.mod h1:jOoFNC7xKu/jm2m2mALc+q1lGdfFVSZgNUFcLNu6MfQ=
github.com/microsoft/moc v0.13.1 h1:fRz8SiDa5PTw9eDF7+unxpAkbvGFhoaJy3dFyAdYAsA=
github.com/microsoft/moc v0.13.1/go.mod h1:vKgyhVep/PkxuRLXRhAlskoWyfU8Uyg+O1RXW8H1jfo=
github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY=
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE=
Expand Down Expand Up @@ -1457,9 +1457,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
Expand Down Expand Up @@ -1637,7 +1636,6 @@ google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvx
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200128133413-58ce757ed39b/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
Expand Down Expand Up @@ -1837,6 +1835,7 @@ google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
Expand All @@ -1859,8 +1858,9 @@ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand Down
10 changes: 10 additions & 0 deletions pkg/client/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ func GetVirtualNetworkClient(serverAddress *string, authorizer auth.Authorizer)
return network_pb.NewVirtualNetworkAgentClient(conn), nil
}

// GetLogicalNetworkClient returns the logical network client to communicate with the wssdagent
func GetLogicalNetworkClient(serverAddress *string, authorizer auth.Authorizer) (network_pb.LogicalNetworkAgentClient, error) {
conn, err := getClientConnection(serverAddress, authorizer)
if err != nil {
log.Fatalf("Unable to get LogicalNetworkClient. Failed to dial: %v", err)
}

return network_pb.NewLogicalNetworkAgentClient(conn), nil
}

// GetNetworkInterfaceClient returns the virtual network interface client to communicate with the wssd agent
func GetNetworkInterfaceClient(serverAddress *string, authorizer auth.Authorizer) (network_pb.NetworkInterfaceAgentClient, error) {
conn, err := getClientConnection(serverAddress, authorizer)
Expand Down
49 changes: 49 additions & 0 deletions services/network/logicalnetwork/client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the Apache v2.0 License.

package logicalnetwork

import (
"context"

"github.com/microsoft/moc-sdk-for-go/services/network"
"github.com/microsoft/moc/pkg/auth"
)

// Service interface
type Service interface {
Get(context.Context, string, string) (*[]network.LogicalNetwork, error)
CreateOrUpdate(context.Context, string, string, *network.LogicalNetwork) (*network.LogicalNetwork, error)
Delete(context.Context, string, string) error
}

// Client structure
type LogicalNetworkClient struct {
network.BaseClient
internal Service
}

// NewClient method returns new client
func NewLogicalNetworkClient(cloudFQDN string, authorizer auth.Authorizer) (*LogicalNetworkClient, error) {
c, err := newLogicalNetworkClient(cloudFQDN, authorizer)
if err != nil {
return nil, err
}

return &LogicalNetworkClient{internal: c}, nil
}

// Get methods invokes the client Get method
func (c *LogicalNetworkClient) Get(ctx context.Context, location, name string) (*[]network.LogicalNetwork, error) {
return c.internal.Get(ctx, location, name)
}

// CreateOrUpdate methods invokes create or update on the client
func (c *LogicalNetworkClient) CreateOrUpdate(ctx context.Context, location, name string, network *network.LogicalNetwork) (*network.LogicalNetwork, error) {
return c.internal.CreateOrUpdate(ctx, location, name, network)
}

// Delete methods invokes delete of the logical network resource
func (c *LogicalNetworkClient) Delete(ctx context.Context, location, name string) error {
return c.internal.Delete(ctx, location, name)
}
Loading

0 comments on commit 6901e2d

Please sign in to comment.