Prevent objective context from being executed multiple times

Consider the following sequence:
1. Flow objective issued
2. Cache timeout since the objective is not processed in time.
   onError()() will be triggered with ObjectiveError.INSTALLATIONTIMEOUT
3. While 2 is still being processed, the objective actually completed.
   onSuccess() will be triggered and therefore the same objective will be dequeued and executed again

The unit test was also wrong.
One objective context should only be executed once no matter the objective succeeded or failed.

In addition, we also fix unit test.

The execution time was originally set to a value that is too close to
the timeout. Therefore, there is chance that it will actually make it
in time. The purpose of this patch is to further delayed the execution
time and therefore get a better chance to create a true timeout.

Change-Id: I2501903bebee6fd9eefb03a71042c4a06ba4c42f
2 files changed
tree: 81a8f3d09612b6caaabb3ef94f2cd1d844c69e50
  1. .buckconfig
  2. .dockerignore
  3. .gitignore
  4. .gitreview
  5. BUCK
  6. Dockerfile
  7. Jenkinsfile
  8. LICENSE.txt
  9. README.md
  10. apps/
  11. buck-tools/
  12. bucklets/
  13. cli/
  14. core/
  15. docs/
  16. drivers/
  17. features/
  18. incubator/
  19. lib/
  20. models/
  21. modules.bzl
  22. modules.defs
  23. onos.defs
  24. pipelines/
  25. pom.xml
  26. protocols/
  27. providers/
  28. tools/
  29. utils/
  30. web/
README.md

ONOS : Open Network Operating System

What is ONOS?

ONOS is a new SDN network operating system designed for high availability, performance, scale-out.

Top-Level Features

  • High availability through clustering and distributed state management.
  • Scalability through clustering and sharding of network device control.
  • Performance that is good for a first release, and which has an architecture that will continue to support improvements.
  • Northbound abstractions for a global network view, network graph, and application intents.
  • Pluggable southbound for support of OpenFlow and new or legacy protocols.
  • Graphical user interface to view multi-layer topologies and inspect elements of the topology.
  • REST API for access to Northbound abstractions as well as CLI commands.
  • CLI for debugging.
  • Support for both proactive and reactive flow setup.
  • SDN-IP application to support interworking with traditional IP networks controlled by distributed routing protocols such as BGP.
  • IP-Optical use case demonstration.

Checkout our website and our tools