Skip to content

Commit

Permalink
Move all ports in driver/ to one file.
Browse files Browse the repository at this point in the history
This change moves every port interface into one place. This makes it
possible to see what the core logic interfaces with at a glance.

Change-Id: I00c78a4b8908aac91ec87e268eb1b57ad5709321
Partial-Bug: #1778671
  • Loading branch information
Michal Kostrzewa committed Jul 4, 2018
1 parent 1cf5a7d commit 9cc0b69
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 94 deletions.
4 changes: 2 additions & 2 deletions agent/agent_test.go
Expand Up @@ -19,7 +19,7 @@ import (
"net/url"

"github.com/Juniper/contrail-windows-docker-driver/agent"
"github.com/Juniper/contrail-windows-docker-driver/core/driver"
"github.com/Juniper/contrail-windows-docker-driver/core/ports"

. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
Expand Down Expand Up @@ -56,7 +56,7 @@ func (h *httpHandler) ServeHTTP(res http.ResponseWriter, req *http.Request) {
var _ = Describe("AgentRestApi", func() {
mockHandler := &httpHandler{}
var testServer *httptest.Server
var agentInstance driver.Agent
var agentInstance ports.Agent

const (
vmUUID = "vmUUID"
Expand Down
21 changes: 0 additions & 21 deletions core/driver/agent_port_handler.go

This file was deleted.

16 changes: 9 additions & 7 deletions core/driver/driver.go
Expand Up @@ -31,6 +31,7 @@ import (

"github.com/Juniper/contrail-go-api/types"
"github.com/Juniper/contrail-windows-docker-driver/common"
"github.com/Juniper/contrail-windows-docker-driver/core/ports"
winio "github.com/Microsoft/go-winio"
"github.com/Microsoft/hcsshim"
dockerTypes "github.com/docker/docker/api/types"
Expand All @@ -44,11 +45,11 @@ import (
const hnsEndpointWaitingTime = 5

type ContrailDriver struct {
vrouter VRouter
controller Controller
agent Agent
localContrailNetworksRepo LocalContrailNetworkRepository
localContrailEndpointsRepo LocalContrailEndpointRepository
vrouter ports.VRouter
controller ports.Controller
agent ports.Agent
localContrailNetworksRepo ports.LocalContrailNetworkRepository
localContrailEndpointsRepo ports.LocalContrailEndpointRepository
listener net.Listener
PipeAddr string
stopReasonChan chan error
Expand All @@ -62,8 +63,9 @@ type NetworkMeta struct {
subnetCIDR string
}

func NewDriver(vr VRouter, c Controller, agent Agent, networksRepo LocalContrailNetworkRepository,
endpointsRepo LocalContrailEndpointRepository) *ContrailDriver {
func NewDriver(vr ports.VRouter, c ports.Controller, agent ports.Agent,
networksRepo ports.LocalContrailNetworkRepository,
endpointsRepo ports.LocalContrailEndpointRepository) *ContrailDriver {

d := &ContrailDriver{
vrouter: vr,
Expand Down
13 changes: 7 additions & 6 deletions core/driver/driver_test.go
Expand Up @@ -35,6 +35,7 @@ import (
"github.com/Juniper/contrail-windows-docker-driver/agent"
"github.com/Juniper/contrail-windows-docker-driver/common"
"github.com/Juniper/contrail-windows-docker-driver/core/driver"
"github.com/Juniper/contrail-windows-docker-driver/core/ports"
"github.com/Juniper/contrail-windows-docker-driver/core/vrouter"
"github.com/Microsoft/hcsshim"
dockerTypes "github.com/docker/docker/api/types"
Expand Down Expand Up @@ -113,10 +114,10 @@ func getDockerNetwork(docker *dockerClient.Client, dockerNetID string) (dockerTy
return docker.NetworkInspect(context.Background(), dockerNetID, inspectOptions)
}

var fakeVRouter driver.VRouter
var contrailController driver.Controller
var fakeVRouter ports.VRouter
var contrailController ports.Controller
var contrailDriver *driver.ContrailDriver
var localContrailNetworksRepo driver.LocalContrailNetworkRepository
var localContrailNetworksRepo ports.LocalContrailNetworkRepository
var project *types.Project

const (
Expand Down Expand Up @@ -798,7 +799,7 @@ var _ = PDescribe("On requests from docker daemon", func() {
})
})

func newModulesUnderTest() (vr driver.VRouter, d *driver.ContrailDriver, c driver.Controller, h driver.LocalContrailNetworkRepository, p *types.Project) {
func newModulesUnderTest() (vr ports.VRouter, d *driver.ContrailDriver, c ports.Controller, h ports.LocalContrailNetworkRepository, p *types.Project) {
var err error

ext := &hyperv_extension.HyperVExtensionSimulator{
Expand Down Expand Up @@ -913,7 +914,7 @@ func cleanupAllDockerNetworksAndContainers(docker *dockerClient.Client) {
}
}

func createTestContrailNetwork(c driver.Controller) *types.VirtualNetwork {
func createTestContrailNetwork(c ports.Controller) *types.VirtualNetwork {
network, err := c.CreateNetworkWithSubnet(tenantName, networkName, subnetCIDR)
Expect(err).ToNot(HaveOccurred())
return network
Expand All @@ -939,7 +940,7 @@ func getTheOnlyHNSEndpoint(d *driver.ContrailDriver) (*hcsshim.HNSEndpoint, stri
return hnsEndpoint, hnsEndpointID
}

func setupNetworksAndEndpoints(c driver.Controller, docker *dockerClient.Client) (
func setupNetworksAndEndpoints(c ports.Controller, docker *dockerClient.Client) (
*types.VirtualNetwork, string, string) {
contrailNet := createTestContrailNetwork(c)
dockerNetID := createValidDockerNetwork(docker)
Expand Down
35 changes: 0 additions & 35 deletions core/driver/local_networking.go

This file was deleted.

20 changes: 0 additions & 20 deletions core/driver/vrouter.go

This file was deleted.

32 changes: 29 additions & 3 deletions core/driver/controller.go → core/ports/ports.go
Expand Up @@ -13,13 +13,39 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package driver
package ports

import (
"github.com/Microsoft/hcsshim"

contrail "github.com/Juniper/contrail-go-api"
"github.com/Juniper/contrail-go-api/types"
)

type Agent interface {
AddPort(vmUUID, vifUUID, ifName, mac, dockerID, ipAddress, vnUUID string) error
DeletePort(vifUUID string) error
}

type VRouter interface {
Initialize() error
}

type LocalContrailNetworkRepository interface {
CreateNetwork(tenantName, networkName, subnetCIDR, defaultGW string) (*hcsshim.HNSNetwork,
error)
GetNetwork(tenantName, networkName, subnetCIDR string) (*hcsshim.HNSNetwork,
error)
DeleteNetwork(tenantName, networkName, subnetCIDR string) error
ListNetworks() ([]hcsshim.HNSNetwork, error)
}

type LocalContrailEndpointRepository interface {
CreateEndpoint(configuration *hcsshim.HNSEndpoint) (string, error)
GetEndpointByName(name string) (*hcsshim.HNSEndpoint, error)
DeleteEndpoint(endpointID string) error
}

// TODO: This interface can be simplified
type Controller interface {
NewProject(domain, tenant string) (*types.Project, error)
Expand All @@ -36,8 +62,8 @@ type Controller interface {
GetOrCreateInterface(net *types.VirtualNetwork, tenantName, containerId string) (*types.VirtualMachineInterface, error)
GetInterfaceMac(iface *types.VirtualMachineInterface) (string, error)

GetOrCreateInstanceIp(net *types.VirtualNetwork,
iface *types.VirtualMachineInterface, subnetUuid string) (*types.InstanceIp, error)
GetOrCreateInstanceIp(net *types.VirtualNetwork, iface *types.VirtualMachineInterface,
subnetUuid string) (*types.InstanceIp, error)

DeleteElementRecursive(parent contrail.IObject) error
}

0 comments on commit 9cc0b69

Please sign in to comment.