VOL-3121 - Removing usage of device.Ports

Changed device.Ports usages to GetDevicePort() and ListDevicePorts()
Added port type filter to PortsStateUpdate()

Change-Id: I4fab819a909379ee71e70eb48ac44044e9810185
diff --git a/internal/pkg/core/device_handler_test.go b/internal/pkg/core/device_handler_test.go
index 38affa0..1507f2f 100644
--- a/internal/pkg/core/device_handler_test.go
+++ b/internal/pkg/core/device_handler_test.go
@@ -44,20 +44,16 @@
 )
 
 func newMockCoreProxy() *mocks.MockCoreProxy {
-	mcp := mocks.MockCoreProxy{}
-	mcp.Devices = make(map[string]*voltha.Device)
+	mcp := mocks.MockCoreProxy{
+		Devices:     make(map[string]*voltha.Device),
+		DevicePorts: make(map[string][]*voltha.Port),
+	}
 	var pm []*voltha.PmConfig
 	mcp.Devices["olt"] = &voltha.Device{
-
 		Id:           "olt",
 		Root:         true,
 		ParentId:     "logical_device",
 		ParentPortNo: 1,
-
-		Ports: []*voltha.Port{
-			{PortNo: 1, Label: "pon"},
-			{PortNo: 2, Label: "nni"},
-		},
 		ProxyAddress: &voltha.Device_ProxyAddress{
 			DeviceId:       "olt",
 			DeviceType:     "onu",
@@ -73,17 +69,17 @@
 			Metrics:      pm,
 		},
 	}
-	mcp.Devices["onu1"] = &voltha.Device{
+	mcp.DevicePorts["olt"] = []*voltha.Port{
+		{PortNo: 1, Label: "pon"},
+		{PortNo: 2, Label: "nni"},
+	}
 
+	mcp.Devices["onu1"] = &voltha.Device{
 		Id:           "1",
 		Root:         false,
 		ParentId:     "olt",
 		ParentPortNo: 1,
 
-		Ports: []*voltha.Port{
-			{PortNo: 1, Label: "pon"},
-			{PortNo: 2, Label: "uni"},
-		},
 		OperStatus: 4,
 		ProxyAddress: &voltha.Device_ProxyAddress{
 			OnuId:          1,
@@ -99,15 +95,16 @@
 			Metrics:      pm,
 		},
 	}
+	mcp.DevicePorts["onu1"] = []*voltha.Port{
+		{PortNo: 1, Label: "pon"},
+		{PortNo: 2, Label: "uni"},
+	}
+
 	mcp.Devices["onu2"] = &voltha.Device{
 		Id:         "2",
 		Root:       false,
 		ParentId:   "olt",
 		OperStatus: 2,
-		Ports: []*voltha.Port{
-			{PortNo: 1, Label: "pon"},
-			{PortNo: 2, Label: "uni"},
-		},
 
 		ParentPortNo: 1,
 
@@ -125,6 +122,10 @@
 			Metrics:      pm,
 		},
 	}
+	mcp.DevicePorts["onu2"] = []*voltha.Port{
+		{PortNo: 1, Label: "pon"},
+		{PortNo: 2, Label: "uni"},
+	}
 	return &mcp
 }
 func newMockDeviceHandler() *DeviceHandler {
@@ -132,10 +133,6 @@
 		Id:       "olt",
 		Root:     true,
 		ParentId: "logical_device",
-		Ports: []*voltha.Port{
-			{PortNo: 1, Label: "pon", Type: voltha.Port_PON_OLT},
-			{PortNo: 2, Label: "nni", Type: voltha.Port_ETHERNET_NNI},
-		},
 		ProxyAddress: &voltha.Device_ProxyAddress{
 			DeviceId:       "olt",
 			DeviceType:     "onu",
@@ -1130,12 +1127,11 @@
 		dh *DeviceHandler
 	}
 	dh := newMockDeviceHandler()
-	ports := []*voltha.Port{
+	dh.coreProxy.(*mocks.MockCoreProxy).DevicePorts[dh.device.Id] = []*voltha.Port{
 		{PortNo: 1, Label: "pon", Type: voltha.Port_PON_OLT},
 		{PortNo: 1048577, Label: "nni", Type: voltha.Port_ETHERNET_NNI},
 		{PortNo: 1048578, Label: "nni", Type: voltha.Port_ETHERNET_NNI},
 	}
-	dh.device.Ports = ports
 	dh.portStats.NorthBoundPort = make(map[uint32]*NniPort)
 	dh.portStats.NorthBoundPort[1] = &NniPort{Name: "OLT-1"}
 	dh.portStats.NorthBoundPort[2] = &NniPort{Name: "OLT-1"}
@@ -1145,7 +1141,7 @@
 		dh.portStats.SouthBoundPort[uint32(i)] = &PonPort{DeviceID: "OLT-1"}
 	}
 	dh1 := newMockDeviceHandler()
-	dh1.device.Ports = []*voltha.Port{}
+	dh1.coreProxy.(*mocks.MockCoreProxy).DevicePorts[dh.device.Id] = []*voltha.Port{}
 	tests := []struct {
 		name string
 		args args