Committed by
Gerrit Code Review
Avoid using exception in not exceptional logic
Change-Id: I4eb4785b2610fbb1c7e6dd67688ce7d666ec22de
Showing
2 changed files
with
32 additions
and
68 deletions
... | @@ -38,7 +38,6 @@ import org.onosproject.net.DeviceId; | ... | @@ -38,7 +38,6 @@ import org.onosproject.net.DeviceId; |
38 | import org.onosproject.net.Host; | 38 | import org.onosproject.net.Host; |
39 | import org.onosproject.net.HostId; | 39 | import org.onosproject.net.HostId; |
40 | import org.onosproject.net.Port; | 40 | import org.onosproject.net.Port; |
41 | -import org.onosproject.net.PortNumber; | ||
42 | import org.onosproject.net.behaviour.BridgeConfig; | 41 | import org.onosproject.net.behaviour.BridgeConfig; |
43 | import org.onosproject.net.behaviour.BridgeName; | 42 | import org.onosproject.net.behaviour.BridgeName; |
44 | import org.onosproject.net.behaviour.ControllerInfo; | 43 | import org.onosproject.net.behaviour.ControllerInfo; |
... | @@ -77,7 +76,6 @@ import java.util.ArrayList; | ... | @@ -77,7 +76,6 @@ import java.util.ArrayList; |
77 | import java.util.HashMap; | 76 | import java.util.HashMap; |
78 | import java.util.List; | 77 | import java.util.List; |
79 | import java.util.Map; | 78 | import java.util.Map; |
80 | -import java.util.NoSuchElementException; | ||
81 | import java.util.Objects; | 79 | import java.util.Objects; |
82 | import java.util.Set; | 80 | import java.util.Set; |
83 | import java.util.concurrent.ExecutorService; | 81 | import java.util.concurrent.ExecutorService; |
... | @@ -492,14 +490,9 @@ public class CordVtn implements CordVtnService { | ... | @@ -492,14 +490,9 @@ public class CordVtn implements CordVtnService { |
492 | * @return cordvtn node, null if it fails to find the node | 490 | * @return cordvtn node, null if it fails to find the node |
493 | */ | 491 | */ |
494 | private CordVtnNode getNodeByOvsdbId(DeviceId ovsdbId) { | 492 | private CordVtnNode getNodeByOvsdbId(DeviceId ovsdbId) { |
495 | - try { | 493 | + return getNodes().stream() |
496 | - return getNodes().stream() | 494 | + .filter(node -> node.ovsdbId().equals(ovsdbId)) |
497 | - .filter(node -> node.ovsdbId().equals(ovsdbId)) | 495 | + .findFirst().orElse(null); |
498 | - .findFirst().get(); | ||
499 | - } catch (NoSuchElementException e) { | ||
500 | - log.debug("Couldn't find node information for {}", ovsdbId); | ||
501 | - return null; | ||
502 | - } | ||
503 | } | 496 | } |
504 | 497 | ||
505 | /** | 498 | /** |
... | @@ -509,14 +502,9 @@ public class CordVtn implements CordVtnService { | ... | @@ -509,14 +502,9 @@ public class CordVtn implements CordVtnService { |
509 | * @return cordvtn node, null if it fails to find the node | 502 | * @return cordvtn node, null if it fails to find the node |
510 | */ | 503 | */ |
511 | private CordVtnNode getNodeByBridgeId(DeviceId bridgeId) { | 504 | private CordVtnNode getNodeByBridgeId(DeviceId bridgeId) { |
512 | - try { | 505 | + return getNodes().stream() |
513 | - return getNodes().stream() | 506 | + .filter(node -> node.intBrId().equals(bridgeId)) |
514 | - .filter(node -> node.intBrId().equals(bridgeId)) | 507 | + .findFirst().orElse(null); |
515 | - .findFirst().get(); | ||
516 | - } catch (NoSuchElementException e) { | ||
517 | - log.debug("Couldn't find node information for {}", bridgeId); | ||
518 | - return null; | ||
519 | - } | ||
520 | } | 508 | } |
521 | 509 | ||
522 | /** | 510 | /** |
... | @@ -620,16 +608,11 @@ public class CordVtn implements CordVtnService { | ... | @@ -620,16 +608,11 @@ public class CordVtn implements CordVtnService { |
620 | * @return true if the interface exists, false otherwise | 608 | * @return true if the interface exists, false otherwise |
621 | */ | 609 | */ |
622 | private boolean checkTunnelInterface(CordVtnNode node) { | 610 | private boolean checkTunnelInterface(CordVtnNode node) { |
623 | - try { | 611 | + return deviceService.getPorts(node.intBrId()) |
624 | - deviceService.getPorts(node.intBrId()) | 612 | + .stream() |
625 | - .stream() | 613 | + .filter(p -> getPortName(p).contains(DEFAULT_TUNNEL) |
626 | - .filter(p -> getPortName(p).contains(DEFAULT_TUNNEL) | 614 | + && p.isEnabled()) |
627 | - && p.isEnabled()) | 615 | + .findAny().isPresent(); |
628 | - .findAny().get(); | ||
629 | - return true; | ||
630 | - } catch (NoSuchElementException e) { | ||
631 | - return false; | ||
632 | - } | ||
633 | } | 616 | } |
634 | 617 | ||
635 | /** | 618 | /** |
... | @@ -639,33 +622,11 @@ public class CordVtn implements CordVtnService { | ... | @@ -639,33 +622,11 @@ public class CordVtn implements CordVtnService { |
639 | * @return true if the interface exists, false otherwise | 622 | * @return true if the interface exists, false otherwise |
640 | */ | 623 | */ |
641 | private boolean checkPhyInterface(CordVtnNode node) { | 624 | private boolean checkPhyInterface(CordVtnNode node) { |
642 | - try { | 625 | + return deviceService.getPorts(node.intBrId()) |
643 | - deviceService.getPorts(node.intBrId()) | 626 | + .stream() |
644 | - .stream() | 627 | + .filter(p -> getPortName(p).contains(node.phyPortName()) |
645 | - .filter(p -> getPortName(p).contains(node.phyPortName()) | 628 | + && p.isEnabled()) |
646 | - && p.isEnabled()) | 629 | + .findAny().isPresent(); |
647 | - .findAny().get(); | ||
648 | - return true; | ||
649 | - } catch (NoSuchElementException e) { | ||
650 | - return false; | ||
651 | - } | ||
652 | - } | ||
653 | - | ||
654 | - /** | ||
655 | - * Returns tunnel port of the device. | ||
656 | - * | ||
657 | - * @param bridgeId device id | ||
658 | - * @return port number, null if no tunnel port exists on a given device | ||
659 | - */ | ||
660 | - private PortNumber getTunnelPort(DeviceId bridgeId) { | ||
661 | - try { | ||
662 | - return deviceService.getPorts(bridgeId).stream() | ||
663 | - .filter(p -> getPortName(p).contains(DEFAULT_TUNNEL) | ||
664 | - && p.isEnabled()) | ||
665 | - .findFirst().get().number(); | ||
666 | - } catch (NoSuchElementException e) { | ||
667 | - return null; | ||
668 | - } | ||
669 | } | 630 | } |
670 | 631 | ||
671 | /** | 632 | /** |
... | @@ -679,6 +640,7 @@ public class CordVtn implements CordVtnService { | ... | @@ -679,6 +640,7 @@ public class CordVtn implements CordVtnService { |
679 | if (node != null) { | 640 | if (node != null) { |
680 | return node.localIp().getIp4Address(); | 641 | return node.localIp().getIp4Address(); |
681 | } else { | 642 | } else { |
643 | + log.debug("Couldn't find node information for {}", bridgeId); | ||
682 | return null; | 644 | return null; |
683 | } | 645 | } |
684 | } | 646 | } |
... | @@ -897,6 +859,8 @@ public class CordVtn implements CordVtnService { | ... | @@ -897,6 +859,8 @@ public class CordVtn implements CordVtnService { |
897 | CordVtnNode node = getNodeByOvsdbId(device.id()); | 859 | CordVtnNode node = getNodeByOvsdbId(device.id()); |
898 | if (node != null) { | 860 | if (node != null) { |
899 | setNodeState(node, checkNodeState(node)); | 861 | setNodeState(node, checkNodeState(node)); |
862 | + } else { | ||
863 | + log.debug("Unregistered device {} connected, ignore it.", device.id()); | ||
900 | } | 864 | } |
901 | } | 865 | } |
902 | 866 | ||
... | @@ -915,6 +879,8 @@ public class CordVtn implements CordVtnService { | ... | @@ -915,6 +879,8 @@ public class CordVtn implements CordVtnService { |
915 | CordVtnNode node = getNodeByBridgeId(device.id()); | 879 | CordVtnNode node = getNodeByBridgeId(device.id()); |
916 | if (node != null) { | 880 | if (node != null) { |
917 | setNodeState(node, checkNodeState(node)); | 881 | setNodeState(node, checkNodeState(node)); |
882 | + } else { | ||
883 | + log.debug("Unregistered device {} connected, ignore it.", device.id()); | ||
918 | } | 884 | } |
919 | } | 885 | } |
920 | 886 | ||
... | @@ -938,6 +904,8 @@ public class CordVtn implements CordVtnService { | ... | @@ -938,6 +904,8 @@ public class CordVtn implements CordVtnService { |
938 | CordVtnNode node = getNodeByBridgeId((DeviceId) port.element().id()); | 904 | CordVtnNode node = getNodeByBridgeId((DeviceId) port.element().id()); |
939 | if (node == null) { | 905 | if (node == null) { |
940 | return; | 906 | return; |
907 | + } else { | ||
908 | + log.debug("Port {} added to unregistered device, ignore it.", getPortName(port)); | ||
941 | } | 909 | } |
942 | 910 | ||
943 | // TODO add host by updating network config | 911 | // TODO add host by updating network config | ... | ... |
... | @@ -33,6 +33,7 @@ import org.onosproject.mastership.MastershipService; | ... | @@ -33,6 +33,7 @@ import org.onosproject.mastership.MastershipService; |
33 | import org.onosproject.net.Device; | 33 | import org.onosproject.net.Device; |
34 | import org.onosproject.net.DeviceId; | 34 | import org.onosproject.net.DeviceId; |
35 | import org.onosproject.net.Host; | 35 | import org.onosproject.net.Host; |
36 | +import org.onosproject.net.Port; | ||
36 | import org.onosproject.net.PortNumber; | 37 | import org.onosproject.net.PortNumber; |
37 | import org.onosproject.net.behaviour.ExtensionTreatmentResolver; | 38 | import org.onosproject.net.behaviour.ExtensionTreatmentResolver; |
38 | import org.onosproject.net.device.DeviceService; | 39 | import org.onosproject.net.device.DeviceService; |
... | @@ -75,7 +76,6 @@ import org.slf4j.Logger; | ... | @@ -75,7 +76,6 @@ import org.slf4j.Logger; |
75 | import java.util.ArrayList; | 76 | import java.util.ArrayList; |
76 | import java.util.List; | 77 | import java.util.List; |
77 | import java.util.Map; | 78 | import java.util.Map; |
78 | -import java.util.NoSuchElementException; | ||
79 | import java.util.Objects; | 79 | import java.util.Objects; |
80 | import java.util.Set; | 80 | import java.util.Set; |
81 | import java.util.stream.Collectors; | 81 | import java.util.stream.Collectors; |
... | @@ -828,13 +828,11 @@ public class CordVtnRuleInstaller { | ... | @@ -828,13 +828,11 @@ public class CordVtnRuleInstaller { |
828 | * @return tunnel port number, or null if no tunnel port exists on a given device | 828 | * @return tunnel port number, or null if no tunnel port exists on a given device |
829 | */ | 829 | */ |
830 | private PortNumber getTunnelPort(DeviceId deviceId) { | 830 | private PortNumber getTunnelPort(DeviceId deviceId) { |
831 | - try { | 831 | + Port port = deviceService.getPorts(deviceId).stream() |
832 | - return deviceService.getPorts(deviceId).stream() | ||
833 | .filter(p -> p.annotations().value("portName").contains(tunnelType)) | 832 | .filter(p -> p.annotations().value("portName").contains(tunnelType)) |
834 | - .findFirst().get().number(); | 833 | + .findFirst().orElse(null); |
835 | - } catch (NoSuchElementException e) { | 834 | + |
836 | - return null; | 835 | + return port == null ? null : port.number(); |
837 | - } | ||
838 | } | 836 | } |
839 | 837 | ||
840 | /** | 838 | /** |
... | @@ -845,14 +843,12 @@ public class CordVtnRuleInstaller { | ... | @@ -845,14 +843,12 @@ public class CordVtnRuleInstaller { |
845 | * @return physical port number, or null if no physical port exists | 843 | * @return physical port number, or null if no physical port exists |
846 | */ | 844 | */ |
847 | private PortNumber getPhyPort(DeviceId deviceId, String phyPortName) { | 845 | private PortNumber getPhyPort(DeviceId deviceId, String phyPortName) { |
848 | - try { | 846 | + Port port = deviceService.getPorts(deviceId).stream() |
849 | - return deviceService.getPorts(deviceId).stream() | ||
850 | .filter(p -> p.annotations().value("portName").contains(phyPortName) && | 847 | .filter(p -> p.annotations().value("portName").contains(phyPortName) && |
851 | p.isEnabled()) | 848 | p.isEnabled()) |
852 | - .findFirst().get().number(); | 849 | + .findFirst().orElse(null); |
853 | - } catch (NoSuchElementException e) { | 850 | + |
854 | - return null; | 851 | + return port == null ? null : port.number(); |
855 | - } | ||
856 | } | 852 | } |
857 | 853 | ||
858 | /** | 854 | /** | ... | ... |
-
Please register or login to post a comment