Support connecting to multiple OpenFlow controllers

Change-Id: I0989d5031fb2d4f5aa78ba0e4576e465f826a419
diff --git a/internal/pkg/ofagent/ofagent.go b/internal/pkg/ofagent/ofagent.go
index 1d225b2..419a988 100644
--- a/internal/pkg/ofagent/ofagent.go
+++ b/internal/pkg/ofagent/ofagent.go
@@ -44,7 +44,7 @@
 
 type OFAgent struct {
 	VolthaApiEndPoint         string
-	OFControllerEndPoint      string
+	OFControllerEndPoints     []string
 	DeviceListRefreshInterval time.Duration
 	ConnectionMaxRetries      int
 	ConnectionRetryDelay      time.Duration
@@ -63,7 +63,7 @@
 func NewOFAgent(config *OFAgent) (*OFAgent, error) {
 	ofa := OFAgent{
 		VolthaApiEndPoint:         config.VolthaApiEndPoint,
-		OFControllerEndPoint:      config.OFControllerEndPoint,
+		OFControllerEndPoints:     config.OFControllerEndPoints,
 		DeviceListRefreshInterval: config.DeviceListRefreshInterval,
 		ConnectionMaxRetries:      config.ConnectionMaxRetries,
 		ConnectionRetryDelay:      config.ConnectionRetryDelay,
@@ -99,7 +99,7 @@
 	logger.Debugw("Starting GRPC - VOLTHA client",
 		log.Fields{
 			"voltha-endpoint":     ofa.VolthaApiEndPoint,
-			"controller-endpoint": ofa.OFControllerEndPoint})
+			"controller-endpoint": ofa.OFControllerEndPoints})
 
 	// If the context contains a k8s probe then register services
 	p := probe.GetProbeFromContext(ctx)