Toggle navigation
Toggle navigation
This project
Loading...
Sign in
홍길동
/
onos
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
tom
2014-09-06 10:47:25 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
24c55cd224f04def3386e9a5366dc33947137486
24c55cd2
1 parent
638dc71f
Added unit tests for port handling in trivial core.
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
7 deletions
net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManager.java
net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceStore.java
net/core/trivial/src/test/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManagerTest.java
net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManager.java
View file @
24c55cd
...
...
@@ -147,7 +147,7 @@ public class SimpleDeviceManager
public
void
deviceConnected
(
DeviceId
deviceId
,
DeviceDescription
deviceDescription
)
{
checkNotNull
(
deviceId
,
DEVICE_ID_NULL
);
checkNotNull
(
deviceDescription
,
DEVICE_DESCRIPTION_NULL
);
log
.
info
(
"Device {} connected
: {}"
,
deviceId
,
deviceDescription
);
log
.
info
(
"Device {} connected
"
,
deviceId
);
DeviceEvent
event
=
store
.
createOrUpdateDevice
(
provider
().
id
(),
deviceId
,
deviceDescription
);
post
(
event
);
...
...
@@ -165,7 +165,7 @@ public class SimpleDeviceManager
public
void
updatePorts
(
DeviceId
deviceId
,
List
<
PortDescription
>
portDescriptions
)
{
checkNotNull
(
deviceId
,
DEVICE_ID_NULL
);
checkNotNull
(
portDescriptions
,
"Port descriptions list cannot be null"
);
log
.
info
(
"Device {} ports updated
: {}"
,
portDescriptions
);
log
.
info
(
"Device {} ports updated
"
,
deviceId
);
List
<
DeviceEvent
>
events
=
store
.
updatePorts
(
deviceId
,
portDescriptions
);
for
(
DeviceEvent
event
:
events
)
{
post
(
event
);
...
...
@@ -176,7 +176,7 @@ public class SimpleDeviceManager
public
void
portStatusChanged
(
DeviceId
deviceId
,
PortDescription
portDescription
)
{
checkNotNull
(
deviceId
,
DEVICE_ID_NULL
);
checkNotNull
(
portDescription
,
PORT_DESCRIPTION_NULL
);
log
.
info
(
"Device {} port status changed
: {}"
,
deviceId
,
portDescription
);
log
.
info
(
"Device {} port status changed
"
,
deviceId
);
DeviceEvent
event
=
store
.
updatePortStatus
(
deviceId
,
portDescription
);
post
(
event
);
}
...
...
net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceStore.java
View file @
24c55cd
...
...
@@ -153,9 +153,9 @@ class SimpleDeviceStore {
Set
<
PortNumber
>
processed
=
new
HashSet
<>();
for
(
PortDescription
portDescription
:
portDescriptions
)
{
Port
port
=
ports
.
get
(
portDescription
.
portNumber
());
DeviceEvent
event
=
port
==
null
?
createPort
(
device
,
portDescription
,
ports
)
:
updatePort
(
device
,
port
,
portDescription
,
ports
);
events
.
add
(
port
==
null
?
createPort
(
device
,
portDescription
,
ports
)
:
updatePort
(
device
,
port
,
portDescription
,
ports
)
);
processed
.
add
(
portDescription
.
portNumber
());
}
...
...
@@ -198,7 +198,7 @@ class SimpleDeviceStore {
Iterator
<
PortNumber
>
iterator
=
ports
.
keySet
().
iterator
();
while
(
iterator
.
hasNext
())
{
PortNumber
portNumber
=
iterator
.
next
();
if
(
processed
.
contains
(
portNumber
))
{
if
(
!
processed
.
contains
(
portNumber
))
{
events
.
add
(
new
DeviceEvent
(
PORT_REMOVED
,
device
,
ports
.
get
(
portNumber
)));
iterator
.
remove
();
...
...
net/core/trivial/src/test/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManagerTest.java
View file @
24c55cd
...
...
@@ -7,7 +7,10 @@ import org.onlab.onos.event.Event;
import
org.onlab.onos.net.Device
;
import
org.onlab.onos.net.DeviceId
;
import
org.onlab.onos.net.MastershipRole
;
import
org.onlab.onos.net.Port
;
import
org.onlab.onos.net.PortNumber
;
import
org.onlab.onos.net.device.DefaultDeviceDescription
;
import
org.onlab.onos.net.device.DefaultPortDescription
;
import
org.onlab.onos.net.device.DeviceAdminService
;
import
org.onlab.onos.net.device.DeviceDescription
;
import
org.onlab.onos.net.device.DeviceEvent
;
...
...
@@ -16,6 +19,7 @@ import org.onlab.onos.net.device.DeviceProvider;
import
org.onlab.onos.net.device.DeviceProviderRegistry
;
import
org.onlab.onos.net.device.DeviceProviderService
;
import
org.onlab.onos.net.device.DeviceService
;
import
org.onlab.onos.net.device.PortDescription
;
import
org.onlab.onos.net.provider.AbstractProvider
;
import
org.onlab.onos.net.provider.ProviderId
;
...
...
@@ -42,6 +46,10 @@ public class SimpleDeviceManagerTest {
private
static
final
String
SW2
=
"3.9.5"
;
private
static
final
String
SN
=
"43311-12345"
;
private
static
final
PortNumber
P1
=
PortNumber
.
portNumber
(
1
);
private
static
final
PortNumber
P2
=
PortNumber
.
portNumber
(
2
);
private
static
final
PortNumber
P3
=
PortNumber
.
portNumber
(
3
);
private
SimpleDeviceManager
mgr
;
...
...
@@ -138,7 +146,61 @@ public class SimpleDeviceManagerTest {
assertEquals
(
"incorrect role"
,
MastershipRole
.
MASTER
,
provider
.
roleReceived
);
}
@Test
public
void
updatePorts
()
{
connectDevice
(
DID1
,
SW1
);
List
<
PortDescription
>
pds
=
new
ArrayList
<>();
pds
.
add
(
new
DefaultPortDescription
(
P1
,
true
));
pds
.
add
(
new
DefaultPortDescription
(
P2
,
true
));
pds
.
add
(
new
DefaultPortDescription
(
P3
,
true
));
providerService
.
updatePorts
(
DID1
,
pds
);
validateEvents
(
DEVICE_ADDED
,
PORT_ADDED
,
PORT_ADDED
,
PORT_ADDED
);
pds
.
clear
();
pds
.
add
(
new
DefaultPortDescription
(
P1
,
false
));
pds
.
add
(
new
DefaultPortDescription
(
P3
,
true
));
providerService
.
updatePorts
(
DID1
,
pds
);
validateEvents
(
PORT_UPDATED
,
PORT_REMOVED
);
}
@Test
public
void
updatePortStatus
()
{
connectDevice
(
DID1
,
SW1
);
List
<
PortDescription
>
pds
=
new
ArrayList
<>();
pds
.
add
(
new
DefaultPortDescription
(
P1
,
true
));
pds
.
add
(
new
DefaultPortDescription
(
P2
,
true
));
providerService
.
updatePorts
(
DID1
,
pds
);
validateEvents
(
DEVICE_ADDED
,
PORT_ADDED
,
PORT_ADDED
);
providerService
.
portStatusChanged
(
DID1
,
new
DefaultPortDescription
(
P1
,
false
));
validateEvents
(
PORT_UPDATED
);
providerService
.
portStatusChanged
(
DID1
,
new
DefaultPortDescription
(
P1
,
false
));
assertTrue
(
"no events expected"
,
listener
.
events
.
isEmpty
());
}
@Test
public
void
getPorts
()
{
connectDevice
(
DID1
,
SW1
);
List
<
PortDescription
>
pds
=
new
ArrayList
<>();
pds
.
add
(
new
DefaultPortDescription
(
P1
,
true
));
pds
.
add
(
new
DefaultPortDescription
(
P2
,
true
));
providerService
.
updatePorts
(
DID1
,
pds
);
validateEvents
(
DEVICE_ADDED
,
PORT_ADDED
,
PORT_ADDED
);
assertEquals
(
"wrong port count"
,
2
,
service
.
getPorts
(
DID1
).
size
());
Port
port
=
service
.
getPort
(
DID1
,
P1
);
assertEquals
(
"incorrect port"
,
P1
,
service
.
getPort
(
DID1
,
P1
).
number
());
assertEquals
(
"incorrect state"
,
true
,
service
.
getPort
(
DID1
,
P1
).
isEnabled
());
}
@Test
public
void
removeDevice
()
{
connectDevice
(
DID1
,
SW1
);
connectDevice
(
DID2
,
SW2
);
admin
.
removeDevice
(
DID1
);
assertNull
(
"device should not be found"
,
service
.
getDevice
(
DID1
));
assertNotNull
(
"device should be found"
,
service
.
getDevice
(
DID2
));
}
protected
void
validateEvents
(
Enum
...
types
)
{
int
i
=
0
;
...
...
Please
register
or
login
to post a comment