├── .gitignore ├── .ruby-version ├── .travis.yml ├── Dockerfile ├── Gemfile ├── LICENSE ├── README.md ├── apps ├── cassandra │ ├── .gitignore │ ├── README.md │ └── cassandra-log4j2-appender │ │ ├── README │ │ ├── log4j-appender-INTRO.txt │ │ ├── log4j2-example-config.yaml │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── datastax │ │ │ └── logging │ │ │ └── appender │ │ │ └── CassandraAppender.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── datastax │ │ │ └── logging │ │ │ └── BasicTest.java │ │ └── resources │ │ ├── cassandra.yaml │ │ ├── log4j.properties │ │ └── log4j.xml ├── cli │ ├── README │ ├── clio │ ├── coroutine.py │ ├── doc │ │ └── SCHEMA_from_ODENOS.txt │ ├── env.py │ ├── init.yaml │ ├── mako_render.py │ ├── odenos.conf │ ├── pom.xml │ ├── preset.yaml │ ├── producer.py │ ├── rest.py │ ├── scenarios │ │ ├── cli_style │ │ │ └── rest_test.cli │ │ ├── federator │ │ │ └── federator.yaml │ │ ├── mako │ │ │ ├── rest_aggregator.yaml │ │ │ └── rest_aggregator2.yaml │ │ ├── multi_hosts │ │ │ ├── README │ │ │ └── multi_hosts.yaml │ │ ├── redis_bridge │ │ │ └── bridge.yaml │ │ ├── slicer │ │ │ ├── slicer.yaml │ │ │ └── slicer_mako.yaml │ │ └── topologies │ │ │ ├── 1000nodes_ring.yaml │ │ │ └── fat_tree.yaml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── o3project │ │ │ └── odenos │ │ │ ├── component │ │ │ └── generator │ │ │ │ ├── Control.java │ │ │ │ ├── Env.java │ │ │ │ ├── Generator.java │ │ │ │ ├── PostInPacket.java │ │ │ │ ├── PostInPacketGenerator.java │ │ │ │ ├── Stats.java │ │ │ │ └── Util.java │ │ │ └── remoteobject │ │ │ └── messagingclient │ │ │ └── redis │ │ │ └── bridge │ │ │ └── Bridge.java │ └── util.py ├── example │ ├── README.md │ ├── federated_network │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── federated_network │ │ │ ├── CleanUp.java │ │ │ ├── SettingNetwork.java │ │ │ └── StartFederatedNetwork.java │ ├── layerized_network │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── layerized_network │ │ │ ├── CleanUp.java │ │ │ ├── SettingNetwork.java │ │ │ └── StartLayerizedNetwork.java │ ├── monitor.sh │ ├── monitor_preset │ │ ├── federated_network.yaml │ │ ├── layerized_network.yaml │ │ ├── one_big_l2switch.yaml │ │ ├── register_aggregator.yaml │ │ └── simple_l2switch.yaml │ ├── one_big_l2switch │ │ ├── pom.xml │ │ ├── run_python.sh │ │ ├── src │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── one_big_l2switch │ │ │ │ ├── CleanUp.java │ │ │ │ ├── SettingNetwork.java │ │ │ │ └── StartOneBigL2Switch.java │ │ └── start_one_big_l2switch.py │ ├── pom.xml │ ├── register_aggregator │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── register_aggregator │ │ │ ├── CleanUp.java │ │ │ ├── RegisterAggregator.java │ │ │ └── SettingNetwork.java │ ├── run-example.sh │ ├── simple_controller │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── simple_controller │ │ │ ├── DumpNetwork.java │ │ │ └── SimpleControllerBase.java │ ├── simple_l2switch │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── simple_l2switch │ │ │ ├── CleanUp.java │ │ │ ├── SettingNetwork.java │ │ │ └── StartSimpleL2Switch.java │ ├── slice_openflow_network │ │ ├── dump_original_topology_and_flows.sh │ │ ├── dump_sliver_topology_and_flows.sh │ │ ├── set_slice_condition.py │ │ ├── set_vnet.sh │ │ └── start_slice_openflow_network.rb │ └── sliver_network │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── java │ │ └── sliver_network │ │ ├── CleanUp.java │ │ ├── SettingNetwork.java │ │ └── StartSliverNetwork.java ├── java │ └── sample_components │ │ ├── pom.xml │ │ ├── scripts │ │ └── rest_DummyDriver2.sh │ │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── o3project │ │ └── odenos │ │ └── sample_components │ │ └── drivers │ │ ├── DummyDriver1.java │ │ └── DummyDriver2.java ├── mininet_examples │ ├── multi_network_control │ │ ├── README.md │ │ ├── config_odenos.py │ │ ├── driver_dc1.conf │ │ ├── driver_dc2.conf │ │ ├── driver_dc3.conf │ │ ├── driver_wan.conf │ │ ├── start_mininet.py │ │ └── start_odenos.sh │ ├── single_network_control │ │ ├── README.md │ │ ├── config_odenos.py │ │ ├── odenos.conf │ │ ├── setflow.sh │ │ ├── start_mininet.py │ │ └── start_odenos.sh │ └── single_node_control │ │ ├── README.md │ │ ├── config_odenos.py │ │ ├── odenos.conf │ │ ├── rest_single_network.sh │ │ ├── start_mininet.py │ │ └── start_odenos.sh ├── monitor │ ├── README.md │ ├── default.yaml │ ├── doc │ │ ├── console.png │ │ ├── detail.png │ │ └── start.png │ ├── monitor │ └── web │ │ ├── images │ │ ├── Default.png │ │ └── Network.png │ │ └── index.html ├── neo4j │ ├── README.md │ ├── graphstyle.grass │ ├── images │ │ ├── Screenshot1.png │ │ ├── Screenshot2.png │ │ ├── browser1.png │ │ ├── config.png │ │ ├── config2.png │ │ ├── install1.png │ │ └── neo4jarch.jpg │ ├── neo4j.conf │ ├── neo4jadapter.py │ ├── neo4jclient.py │ └── neo4jsync.py ├── python │ └── sample_components │ │ └── dummy_driver3.py └── rest_sample │ ├── rest_aggregator.sh │ ├── rest_connection.sh │ ├── rest_federator.sh │ ├── rest_flow.sh │ ├── rest_linklayerizer.sh │ ├── rest_packet.sh │ ├── rest_put_post.sh │ ├── rest_query.sh │ ├── rest_sample.sh │ └── rest_slicer.sh ├── doc ├── DISTRIBUTED_ODENOS.md ├── QUICKSTART.eclipse ├── QUICKSTART.md └── api │ ├── Aggregator.md │ ├── ComponentManager.md │ ├── DataClass.md │ ├── EventManager.md │ ├── Federator.md │ ├── LearningSwitch.md │ ├── LinkLayerizer.md │ ├── Network.md │ ├── Slicer.md │ ├── SystemManager.md │ ├── images │ ├── Aggregator.jpg │ ├── Architecture.jpg │ ├── Federator.jpg │ ├── LinkLayerizer.jpg │ ├── MessageDisp.jpg │ ├── Network.jpg │ ├── SliceCondition.jpg │ ├── Slicer.jpg │ ├── systemconfiguration.jpg │ └── systemmgr.jpg │ └── index.md ├── etc ├── 80-odenos.conf ├── Doxyfile.python ├── log4j2-silent.yaml ├── log4j2_java.yaml ├── log_python.conf ├── log_ruby.conf ├── odenos.conf ├── odenos.importorder └── odenos_format.xml ├── odenos ├── pom.xml ├── run-unittests.sh └── src ├── main ├── java │ ├── distribution.xml │ └── org │ │ └── o3project │ │ └── odenos │ │ ├── component │ │ ├── aggregator │ │ │ ├── Aggregator.java │ │ │ └── package-info.java │ │ ├── federator │ │ │ ├── BoundaryPort.java │ │ │ ├── Federator.java │ │ │ ├── FederatorBoundary.java │ │ │ ├── FederatorBoundaryTable.java │ │ │ ├── FederatorException.java │ │ │ ├── FederatorOnFlow.java │ │ │ └── package-info.java │ │ ├── learningswitch │ │ │ ├── LearningSwitch.java │ │ │ ├── LearningSwitchVlan.java │ │ │ └── package-info.java │ │ ├── linklayerizer │ │ │ ├── LinkLayerizer.java │ │ │ ├── LinkLayerizerBoundary.java │ │ │ ├── LinkLayerizerBoundaryException.java │ │ │ ├── LinkLayerizerBoundaryTable.java │ │ │ ├── LinkLayerizerOnFlow.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── slicer │ │ │ ├── BasicSliceCondition.java │ │ │ ├── SliceCondition.java │ │ │ ├── SliceConditionTable.java │ │ │ ├── Slicer.java │ │ │ └── package-info.java │ │ ├── core │ │ ├── Odenos.java │ │ ├── component │ │ │ ├── Boundary.java │ │ │ ├── Component.java │ │ │ ├── ConversionTable.java │ │ │ ├── Driver.java │ │ │ ├── DummyDriver.java │ │ │ ├── Logic.java │ │ │ ├── LogicIF.java │ │ │ ├── NetworkIF.java │ │ │ ├── NetworkInterface.java │ │ │ ├── SystemManagerInterface.java │ │ │ ├── network │ │ │ │ ├── BaseNetworkChanged.java │ │ │ │ ├── BaseObjectQuery.java │ │ │ │ ├── BasicQuery.java │ │ │ │ ├── Network.java │ │ │ │ ├── flow │ │ │ │ │ ├── Flow.java │ │ │ │ │ ├── FlowActionQueryFactory.java │ │ │ │ │ ├── FlowChanged.java │ │ │ │ │ ├── FlowMatchQueryFactory.java │ │ │ │ │ ├── FlowObject.java │ │ │ │ │ ├── FlowQueryFactory.java │ │ │ │ │ ├── FlowSet.java │ │ │ │ │ ├── basic │ │ │ │ │ │ ├── BasicFlow.java │ │ │ │ │ │ ├── BasicFlowMatch.java │ │ │ │ │ │ ├── FlowAction.java │ │ │ │ │ │ ├── FlowActionOutput.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── ofpflow │ │ │ │ │ │ ├── OFPFlow.java │ │ │ │ │ │ ├── OFPFlowActionCopyTtlIn.java │ │ │ │ │ │ ├── OFPFlowActionCopyTtlOut.java │ │ │ │ │ │ ├── OFPFlowActionDecIpTtl.java │ │ │ │ │ │ ├── OFPFlowActionDecMplsTtl.java │ │ │ │ │ │ ├── OFPFlowActionExperimenter.java │ │ │ │ │ │ ├── OFPFlowActionGroupAction.java │ │ │ │ │ │ ├── OFPFlowActionPopMpls.java │ │ │ │ │ │ ├── OFPFlowActionPopPbb.java │ │ │ │ │ │ ├── OFPFlowActionPopVlan.java │ │ │ │ │ │ ├── OFPFlowActionPushMpls.java │ │ │ │ │ │ ├── OFPFlowActionPushPbb.java │ │ │ │ │ │ ├── OFPFlowActionPushVlan.java │ │ │ │ │ │ ├── OFPFlowActionSetField.java │ │ │ │ │ │ ├── OFPFlowActionSetIpTtl.java │ │ │ │ │ │ ├── OFPFlowActionSetMplsTtl.java │ │ │ │ │ │ ├── OFPFlowActionSetQueue.java │ │ │ │ │ │ ├── OFPFlowMatch.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── query │ │ │ │ │ │ ├── BasicFlowMatchQuery.java │ │ │ │ │ │ ├── BasicFlowQuery.java │ │ │ │ │ │ ├── FlowActionOutputQuery.java │ │ │ │ │ │ ├── FlowActionQuery.java │ │ │ │ │ │ ├── FlowQuery.java │ │ │ │ │ │ ├── OFPFlowActionCopyTtlInQuery.java │ │ │ │ │ │ ├── OFPFlowActionCopyTtlOutQuery.java │ │ │ │ │ │ ├── OFPFlowActionDecIpTtlQuery.java │ │ │ │ │ │ ├── OFPFlowActionDecMplsTtlQuery.java │ │ │ │ │ │ ├── OFPFlowActionExperimenterQuery.java │ │ │ │ │ │ ├── OFPFlowActionGroupActionQuery.java │ │ │ │ │ │ ├── OFPFlowActionPopMplsQuery.java │ │ │ │ │ │ ├── OFPFlowActionPopPbbQuery.java │ │ │ │ │ │ ├── OFPFlowActionPopVlanQuery.java │ │ │ │ │ │ ├── OFPFlowActionPushMplsQuery.java │ │ │ │ │ │ ├── OFPFlowActionPushPbbQuery.java │ │ │ │ │ │ ├── OFPFlowActionPushVlanQuery.java │ │ │ │ │ │ ├── OFPFlowActionSetFieldQuery.java │ │ │ │ │ │ ├── OFPFlowActionSetIpTtlQuery.java │ │ │ │ │ │ ├── OFPFlowActionSetMplsTtlQuery.java │ │ │ │ │ │ ├── OFPFlowActionSetQueueQuery.java │ │ │ │ │ │ ├── OFPFlowMatchQuery.java │ │ │ │ │ │ ├── OFPFlowQuery.java │ │ │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── packet │ │ │ │ │ ├── BasePacketAdded.java │ │ │ │ │ ├── InPacket.java │ │ │ │ │ ├── InPacketAdded.java │ │ │ │ │ ├── InPacketQuery.java │ │ │ │ │ ├── InPacketQueue.java │ │ │ │ │ ├── OFPInPacket.java │ │ │ │ │ ├── OFPOutPacket.java │ │ │ │ │ ├── OutPacket.java │ │ │ │ │ ├── OutPacketAdded.java │ │ │ │ │ ├── OutPacketQuery.java │ │ │ │ │ ├── OutPacketQueue.java │ │ │ │ │ ├── Packet.java │ │ │ │ │ ├── PacketObject.java │ │ │ │ │ ├── PacketQuery.java │ │ │ │ │ ├── PacketQueue.java │ │ │ │ │ ├── PacketQueueSet.java │ │ │ │ │ ├── PacketStatus.java │ │ │ │ │ ├── PacketStatusSub.java │ │ │ │ │ ├── PacketsCounter.java │ │ │ │ │ └── package-info.java │ │ │ │ └── topology │ │ │ │ │ ├── Link.java │ │ │ │ │ ├── LinkChanged.java │ │ │ │ │ ├── LinkQuery.java │ │ │ │ │ ├── Node.java │ │ │ │ │ ├── NodeChanged.java │ │ │ │ │ ├── NodeIF.java │ │ │ │ │ ├── NodeQuery.java │ │ │ │ │ ├── Port.java │ │ │ │ │ ├── PortChanged.java │ │ │ │ │ ├── PortIF.java │ │ │ │ │ ├── PortQuery.java │ │ │ │ │ ├── Topology.java │ │ │ │ │ ├── TopologyChanged.java │ │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ ├── logging │ │ │ ├── message │ │ │ │ ├── ILogMessage.java │ │ │ │ ├── LogMessage.java │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ ├── manager │ │ │ ├── ComponentManager2.java │ │ │ ├── package-info.java │ │ │ └── system │ │ │ │ ├── ComponentConnection.java │ │ │ │ ├── ComponentConnectionLogicAndNetwork.java │ │ │ │ ├── SystemManager.java │ │ │ │ ├── SystemManagerIF.java │ │ │ │ ├── event │ │ │ │ ├── ComponentConnectionChanged.java │ │ │ │ ├── ComponentManagerChanged.java │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── util │ │ │ ├── ComponentLoader.java │ │ │ ├── InstanceCreator.java │ │ │ ├── PathCalculator.java │ │ │ ├── package-info.java │ │ │ └── zookeeper │ │ │ ├── KeepAliveClient.java │ │ │ ├── ZooKeeperService.java │ │ │ └── package-info.java │ │ └── remoteobject │ │ ├── ObjectProperty.java │ │ ├── ObjectSettings.java │ │ ├── RemoteObject.java │ │ ├── RemoteObjectIF.java │ │ ├── RemoteObjectManager.java │ │ ├── RequestParser.java │ │ ├── actor │ │ ├── Actor.java │ │ ├── Mail.java │ │ └── package-info.java │ │ ├── event │ │ ├── BaseObjectChanged.java │ │ ├── EventSubscription.java │ │ ├── ObjectPropertyChanged.java │ │ ├── ObjectSettingsChanged.java │ │ └── package-info.java │ │ ├── manager │ │ ├── ComponentTypesHash.java │ │ ├── EventManager.java │ │ ├── EventSubscriptionObject.java │ │ ├── ObjectPropertiesHash.java │ │ ├── ObjectPropertyList.java │ │ ├── component │ │ │ ├── ComponentManager.java │ │ │ ├── ComponentType.java │ │ │ ├── OdenosProcess.java │ │ │ ├── event │ │ │ │ ├── ComponentChanged.java │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── package-info.java │ │ ├── message │ │ ├── BaseObject.java │ │ ├── Event.java │ │ ├── MessageBodyUnpacker.java │ │ ├── OdenosMessage.java │ │ ├── Request.java │ │ ├── Response.java │ │ └── package-info.java │ │ ├── messagingclient │ │ ├── Config.java │ │ ├── ConfigBuilder.java │ │ ├── IMessageListener.java │ │ ├── IMultiMap.java │ │ ├── IPubSubDriver.java │ │ ├── LoopBackDriver.java │ │ ├── MessageDispatcher.java │ │ ├── RemoteTransactions.java │ │ ├── SubscribersMap.java │ │ ├── package-info.java │ │ └── redis │ │ │ ├── ChannelCheckerClient.java │ │ │ ├── PubSubDriverImpl.java │ │ │ ├── PublisherClient.java │ │ │ ├── RedisClient.java │ │ │ ├── RedisServerAddress.java │ │ │ ├── SubscriberClient.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── rest │ │ ├── Attributes.java │ │ ├── RESTTranslator.java │ │ ├── package-info.java │ │ └── servlet │ │ ├── RestServlet.java │ │ ├── StreamServlet.java │ │ ├── SubscriptionsServlet.java │ │ └── package-info.java ├── python │ └── org │ │ ├── __init__.py │ │ └── o3project │ │ ├── __init__.py │ │ └── odenos │ │ ├── __init__.py │ │ ├── core │ │ ├── __init__.py │ │ ├── component │ │ │ ├── __init__.py │ │ │ ├── component.py │ │ │ ├── conversion_table.py │ │ │ ├── driver.py │ │ │ ├── dummy_driver.py │ │ │ ├── logic.py │ │ │ └── network │ │ │ │ ├── __init__.py │ │ │ │ ├── flow │ │ │ │ ├── __init__.py │ │ │ │ ├── basic │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── basic_flow.py │ │ │ │ │ ├── basic_flow_match.py │ │ │ │ │ ├── flow_action.py │ │ │ │ │ └── flow_action_output.py │ │ │ │ ├── flow.py │ │ │ │ ├── flow_changed.py │ │ │ │ ├── flow_set.py │ │ │ │ └── ofpflow │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── ofp_flow.py │ │ │ │ │ ├── ofp_flow_action_copy_ttl_In.py │ │ │ │ │ ├── ofp_flow_action_copy_ttl_out.py │ │ │ │ │ ├── ofp_flow_action_dec_ip_ttl.py │ │ │ │ │ ├── ofp_flow_action_dec_mpls_ttl.py │ │ │ │ │ ├── ofp_flow_action_experimenter.py │ │ │ │ │ ├── ofp_flow_action_group_action.py │ │ │ │ │ ├── ofp_flow_action_pop_mpls.py │ │ │ │ │ ├── ofp_flow_action_pop_pbb.py │ │ │ │ │ ├── ofp_flow_action_pop_vlan.py │ │ │ │ │ ├── ofp_flow_action_push_mpls.py │ │ │ │ │ ├── ofp_flow_action_push_pbb.py │ │ │ │ │ ├── ofp_flow_action_push_vlan.py │ │ │ │ │ ├── ofp_flow_action_set_field.py │ │ │ │ │ ├── ofp_flow_action_set_ip_ttl.py │ │ │ │ │ ├── ofp_flow_action_set_mpls_ttl.py │ │ │ │ │ ├── ofp_flow_action_set_queue.py │ │ │ │ │ └── ofp_flow_match.py │ │ │ │ ├── packet │ │ │ │ ├── __init__.py │ │ │ │ ├── in_packet.py │ │ │ │ ├── in_packet_added.py │ │ │ │ ├── ofp_in_packet.py │ │ │ │ ├── ofp_out_packet.py │ │ │ │ ├── out_packet.py │ │ │ │ ├── out_packet_added.py │ │ │ │ ├── packet.py │ │ │ │ └── packet_status.py │ │ │ │ └── topology │ │ │ │ ├── __init__.py │ │ │ │ ├── link.py │ │ │ │ ├── link_changed.py │ │ │ │ ├── node.py │ │ │ │ ├── node_changed.py │ │ │ │ ├── port.py │ │ │ │ ├── port_changed.py │ │ │ │ ├── topology.py │ │ │ │ └── topology_changed.py │ │ ├── manager │ │ │ ├── __init__.py │ │ │ └── component_manager.py │ │ ├── odenos.py │ │ └── util │ │ │ ├── __init__.py │ │ │ ├── configurator.py │ │ │ ├── logger.py │ │ │ ├── network_interface.py │ │ │ ├── remote_object_interface.py │ │ │ ├── request_parser.py │ │ │ ├── rest_client.py │ │ │ └── system_manager_interface.py │ │ └── remoteobject │ │ ├── __init__.py │ │ ├── event │ │ ├── __init__.py │ │ └── object_setting_changed.py │ │ ├── manager │ │ ├── __init__.py │ │ ├── component │ │ │ ├── __init__.py │ │ │ ├── component_manager.py │ │ │ ├── component_type.py │ │ │ └── event │ │ │ │ ├── __init__.py │ │ │ │ └── component_changed.py │ │ ├── event_subscription.py │ │ └── system │ │ │ ├── __init__.py │ │ │ ├── component_connection.py │ │ │ ├── component_connection_logic_and_network.py │ │ │ └── event │ │ │ ├── __init__.py │ │ │ ├── component_connection_changed.py │ │ │ └── component_manager_changed.py │ │ ├── message │ │ ├── __init__.py │ │ ├── event.py │ │ ├── request.py │ │ └── response.py │ │ ├── object_property.py │ │ ├── remote_object.py │ │ ├── remote_object_manager.py │ │ └── transport │ │ ├── __init__.py │ │ ├── base_message_transport.py │ │ ├── local_message_transport.py │ │ ├── message_dispatcher.py │ │ └── remote_message_transport.py └── ruby │ ├── .rubocop.yml │ ├── .rubocop_todo.yml │ ├── org │ └── o3project │ │ ├── odenos.rb │ │ └── odenos │ │ ├── component.rb │ │ ├── component │ │ ├── driver.rb │ │ └── driver │ │ │ ├── driver.rb │ │ │ ├── of_driver.rb │ │ │ └── of_driver │ │ │ ├── flow_entry.rb │ │ │ ├── flow_map.rb │ │ │ ├── monkey_patch.rb │ │ │ ├── openflow_controller.rb │ │ │ ├── openflow_driver.rb │ │ │ ├── request_errors.rb │ │ │ ├── request_helpers.rb │ │ │ ├── ruby_topology.rb │ │ │ ├── ruby_topology │ │ │ ├── link.rb │ │ │ ├── topology-controller.rb │ │ │ ├── topology.rb │ │ │ └── trema-extensions │ │ │ │ ├── port.rb │ │ │ │ └── port │ │ │ │ └── predicates.rb │ │ │ ├── topology_map.rb │ │ │ └── transactions.rb │ │ ├── core.rb │ │ ├── core │ │ ├── component.rb │ │ ├── component │ │ │ ├── component.rb │ │ │ ├── logic.rb │ │ │ ├── network_component_entity.rb │ │ │ ├── network_interface.rb │ │ │ └── system_manager_interface.rb │ │ ├── odenos.rb │ │ ├── util.rb │ │ └── util │ │ │ ├── array_accessor.rb │ │ │ ├── hash_accessor.rb │ │ │ ├── logger.rb │ │ │ ├── meta_helper.rb │ │ │ ├── object_array.rb │ │ │ ├── object_hash.rb │ │ │ └── request_parser.rb │ │ ├── remoteobject.rb │ │ └── remoteobject │ │ ├── component_connection.rb │ │ ├── component_connection_logic_and_network.rb │ │ ├── event.rb │ │ ├── manager.rb │ │ ├── manager │ │ ├── component_manager.rb │ │ └── of_component_manager.rb │ │ ├── message_dispatcher.rb │ │ ├── remote_object.rb │ │ ├── request.rb │ │ ├── response.rb │ │ └── transport.rb │ └── yard_extensions.rb └── test ├── Integration ├── run_scripts.sh └── testFederator.py ├── java └── org │ └── o3project │ └── odenos │ ├── AllTests.java │ ├── component │ ├── aggregator │ │ └── AggregatorTest.java │ ├── federator │ │ ├── BoundaryPortTest.java │ │ ├── FederatorBoundaryTableTest.java │ │ ├── FederatorBoundaryTest.java │ │ ├── FederatorOnFlowTest.java │ │ └── FederatorTest.java │ ├── learningswitch │ │ └── LearningSwitchTest.java │ ├── linklayerizer │ │ ├── LinkLayerizerBoundaryTableTest.java │ │ ├── LinkLayerizerBoundaryTest.java │ │ ├── LinkLayerizerOnFlowTest.java │ │ └── LinkLayerizerTest.java │ └── slicer │ │ ├── BasicSliceConditionTest.java │ │ ├── SliceConditionTableTest.java │ │ ├── SliceConditionTest.java │ │ └── SlicerTest.java │ ├── core │ ├── component │ │ ├── BoundaryTest.java │ │ ├── ComponentTest.java │ │ ├── ConversionTableTest.java │ │ ├── DriverTest.java │ │ ├── DummyDriverTest.java │ │ ├── LogicTest.java │ │ ├── NetworkInterfaceTest.java │ │ ├── SystemManagerInterfaceTest.java │ │ └── network │ │ │ ├── BaseNetworkChangedTest.java │ │ │ ├── BaseObjectQueryTest.java │ │ │ ├── BasicQueryTest.java │ │ │ ├── NetworkTest.java │ │ │ ├── flow │ │ │ ├── FlowActionQueryFactoryTest.java │ │ │ ├── FlowChangedTest.java │ │ │ ├── FlowMatchQueryFactoryTest.java │ │ │ ├── FlowObjectTest.java │ │ │ ├── FlowQueryFactoryTest.java │ │ │ ├── FlowSetTest.java │ │ │ ├── FlowTest.java │ │ │ ├── basic │ │ │ │ ├── BasicFlowMatchTest.java │ │ │ │ ├── BasicFlowTest.java │ │ │ │ ├── FlowActionOutputTest.java │ │ │ │ └── FlowActionTest.java │ │ │ ├── ofpflow │ │ │ │ ├── OFPFlowActionCopyTtlInTest.java │ │ │ │ ├── OFPFlowActionCopyTtlOutTest.java │ │ │ │ ├── OFPFlowActionDecIpTtlTest.java │ │ │ │ ├── OFPFlowActionDecMplsTtlTest.java │ │ │ │ ├── OFPFlowActionExperimenterTest.java │ │ │ │ ├── OFPFlowActionGroupActionTest.java │ │ │ │ ├── OFPFlowActionPopMplsTest.java │ │ │ │ ├── OFPFlowActionPopPbbTest.java │ │ │ │ ├── OFPFlowActionPopVlanTest.java │ │ │ │ ├── OFPFlowActionPushMplsTest.java │ │ │ │ ├── OFPFlowActionPushPbbTest.java │ │ │ │ ├── OFPFlowActionPushVlanTest.java │ │ │ │ ├── OFPFlowActionSetFieldTest.java │ │ │ │ ├── OFPFlowActionSetIpTtlTest.java │ │ │ │ ├── OFPFlowActionSetMplsTtlTest.java │ │ │ │ ├── OFPFlowActionSetQueueTest.java │ │ │ │ ├── OFPFlowMatchTest.java │ │ │ │ └── OFPFlowTest.java │ │ │ └── query │ │ │ │ ├── BasicFlowMatchQueryTest.java │ │ │ │ ├── BasicFlowQueryTest.java │ │ │ │ ├── FlowActionOutputQueryTest.java │ │ │ │ ├── FlowActionQueryTest.java │ │ │ │ ├── FlowQueryTest.java │ │ │ │ ├── OFPFlowActionCopyTtlInQueryTest.java │ │ │ │ ├── OFPFlowActionCopyTtlOutQueryTest.java │ │ │ │ ├── OFPFlowActionDecIpTtlQueryTest.java │ │ │ │ ├── OFPFlowActionDecMplsTtlQueryTest.java │ │ │ │ ├── OFPFlowActionExperimenterQueryTest.java │ │ │ │ ├── OFPFlowActionGroupActionQueryTest.java │ │ │ │ ├── OFPFlowActionPopMplsQueryTest.java │ │ │ │ ├── OFPFlowActionPopPbbQueryTest.java │ │ │ │ ├── OFPFlowActionPopVlanQueryTest.java │ │ │ │ ├── OFPFlowActionPushMplsQueryTest.java │ │ │ │ ├── OFPFlowActionPushPbbQueryTest.java │ │ │ │ ├── OFPFlowActionPushVlanQueryTest.java │ │ │ │ ├── OFPFlowActionSetFieldQueryTest.java │ │ │ │ ├── OFPFlowActionSetIpTtlQueryTest.java │ │ │ │ ├── OFPFlowActionSetMplsTtlQueryTest.java │ │ │ │ ├── OFPFlowActionSetQueueQueryTest.java │ │ │ │ ├── OFPFlowMatchQueryTest.java │ │ │ │ └── OFPFlowQueryTest.java │ │ │ ├── packet │ │ │ ├── BasePacketAddedTest.java │ │ │ ├── InPacketAddedTest.java │ │ │ ├── InPacketQueryTest.java │ │ │ ├── InPacketTest.java │ │ │ ├── OFPInPacketTest.java │ │ │ ├── OFPOutPacketTest.java │ │ │ ├── OutPacketAddedTest.java │ │ │ ├── OutPacketQueryTest.java │ │ │ ├── OutPacketTest.java │ │ │ ├── PacketObjectTest.java │ │ │ ├── PacketQueryTest.java │ │ │ ├── PacketQueueSetTest.java │ │ │ ├── PacketQueueTest.java │ │ │ ├── PacketStatusSubTest.java │ │ │ ├── PacketStatusTest.java │ │ │ └── PacketTest.java │ │ │ └── topology │ │ │ ├── LinkChangedTest.java │ │ │ ├── LinkQueryTest.java │ │ │ ├── LinkTest.java │ │ │ ├── NodeChangedTest.java │ │ │ ├── NodeQueryTest.java │ │ │ ├── NodeTest.java │ │ │ ├── PortChangedTest.java │ │ │ ├── PortQueryTest.java │ │ │ ├── PortTest.java │ │ │ ├── TopologyChangedTest.java │ │ │ └── TopologyTest.java │ ├── logging │ │ └── message │ │ │ └── LogMessageTest.java │ ├── manager │ │ └── system │ │ │ ├── ComponentConnectionLogicAndNetworkTest.java │ │ │ ├── ComponentConnectionTest.java │ │ │ ├── SystemManagerTest.java │ │ │ └── event │ │ │ ├── ComponentConnectionChangedTest.java │ │ │ └── ComponentManagerChangedTest.java │ └── util │ │ ├── InstanceCreatorTest.java │ │ └── PathCalculatorTest.java │ └── remoteobject │ ├── ObjectPropertyTest.java │ ├── ObjectSettingsTest.java │ ├── RemoteObjectTest.java │ ├── RequestParserTest.java │ ├── event │ ├── BaseObjectChangedTest.java │ ├── ObjectPropertyChangedTest.java │ └── ObjectSettingsChangedTest.java │ ├── manager │ ├── ComponentTypesHashTest.java │ ├── EventManagerTest.java │ ├── EventSubscriptionObjectTest.java │ ├── ObjectPropertiesHashTest.java │ ├── ObjectPropertyListTest.java │ └── component │ │ ├── ComponentManagerTest.java │ │ └── event │ │ └── ComponentChangedTest.java │ ├── message │ ├── BaseObjectTest.java │ ├── EventTest.java │ ├── MessageBodyUnpackerTest.java │ ├── OdenosMessageTest.java │ ├── RequestTest.java │ └── ResponseTest.java │ ├── messagingclient │ ├── MessageDispatcherTest.java │ ├── PubSubDriverMock.java │ ├── RemoteTransactionsTest.java │ ├── SubscribersMapTest.java │ └── redis │ │ ├── ChannelCheckerClientTest.java │ │ ├── PubSubDriverImplTest.java │ │ ├── PublisherClientTest.java │ │ ├── RedisClientTest.java │ │ ├── RedisServerAddressTest.java │ │ └── SubscriberClientTest.java │ └── rest │ ├── AttributesTest.java │ ├── RESTTranslatorTest.java │ └── servlet │ ├── RestServletTest.java │ ├── StreamServletTest.java │ └── SubscriptionsServletTest.java ├── python ├── __init__.py └── org │ ├── __init__.py │ └── o3project │ ├── __init__.py │ └── odenos │ ├── __init__.py │ ├── core │ ├── __init__.py │ ├── component │ │ ├── __init__.py │ │ ├── network │ │ │ ├── __init__.py │ │ │ ├── flow │ │ │ │ ├── __init__.py │ │ │ │ ├── basic │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── test_basic_flow.py │ │ │ │ │ ├── test_basic_flow_match.py │ │ │ │ │ ├── test_flow_action.py │ │ │ │ │ └── test_flow_action_output.py │ │ │ │ ├── ofpflow │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── test_ofp_flow.py │ │ │ │ │ ├── test_ofp_flow_action_copy_ttl_In.py │ │ │ │ │ ├── test_ofp_flow_action_copy_ttl_out.py │ │ │ │ │ ├── test_ofp_flow_action_dec_ip_ttl.py │ │ │ │ │ ├── test_ofp_flow_action_dec_mpls_ttl.py │ │ │ │ │ ├── test_ofp_flow_action_experimenter.py │ │ │ │ │ ├── test_ofp_flow_action_group_action.py │ │ │ │ │ ├── test_ofp_flow_action_pop_mpls.py │ │ │ │ │ ├── test_ofp_flow_action_pop_pbb.py │ │ │ │ │ ├── test_ofp_flow_action_pop_vlan.py │ │ │ │ │ ├── test_ofp_flow_action_push_mpls.py │ │ │ │ │ ├── test_ofp_flow_action_push_pbb.py │ │ │ │ │ ├── test_ofp_flow_action_push_vlan.py │ │ │ │ │ ├── test_ofp_flow_action_set_field.py │ │ │ │ │ ├── test_ofp_flow_action_set_ip_ttl.py │ │ │ │ │ ├── test_ofp_flow_action_set_mpls_ttl.py │ │ │ │ │ ├── test_ofp_flow_action_set_queue.py │ │ │ │ │ └── test_ofp_flow_match.py │ │ │ │ ├── test_flow.py │ │ │ │ ├── test_flow_changed.py │ │ │ │ └── test_flow_set.py │ │ │ ├── packet │ │ │ │ ├── __init__.py │ │ │ │ ├── test_in_packet.py │ │ │ │ ├── test_in_packet_added.py │ │ │ │ ├── test_ofp_in_packet.py │ │ │ │ ├── test_ofp_out_packet.py │ │ │ │ ├── test_out_packet.py │ │ │ │ ├── test_out_packet_added.py │ │ │ │ ├── test_packet.py │ │ │ │ └── test_packet_status.py │ │ │ └── topology │ │ │ │ ├── __init__.py │ │ │ │ ├── test_link.py │ │ │ │ ├── test_link_changed.py │ │ │ │ ├── test_node.py │ │ │ │ ├── test_node_changed.py │ │ │ │ ├── test_port.py │ │ │ │ ├── test_port_changed.py │ │ │ │ ├── test_topology.py │ │ │ │ └── test_topology_changed.py │ │ ├── test_component.py │ │ ├── test_conversion_table.py │ │ ├── test_driver.py │ │ ├── test_dummy_driver.py │ │ └── test_logic.py │ ├── manager │ │ ├── __init__.py │ │ └── test_component_manager.py │ └── util │ │ ├── __init__.py │ │ ├── test_logger.py │ │ ├── test_network_interface.py │ │ ├── test_remote_object_interface.py │ │ ├── test_request_parser.py │ │ └── test_system_manager_interface.py │ └── remoteobject │ ├── __init__.py │ ├── event │ ├── __init__.py │ └── test_object_setting_changed.py │ ├── manager │ ├── __init__.py │ ├── component │ │ ├── __init__.py │ │ ├── event │ │ │ ├── __init__.py │ │ │ └── test_component_changed.py │ │ ├── test_component_manager.py │ │ └── test_component_type.py │ ├── system │ │ ├── __init__.py │ │ ├── event │ │ │ ├── __init__.py │ │ │ ├── test_component_connection_changed.py │ │ │ └── test_component_manager_changed.py │ │ ├── test_component_connection.py │ │ └── test_component_connection_logic_and_network.py │ ├── test_event_subscription.py │ └── test_eventsubscription.py │ ├── message │ ├── __init__.py │ ├── test_event.py │ ├── test_request.py │ └── test_response.py │ ├── test_object_property.py │ ├── test_remote_object.py │ ├── test_remote_object_manager.py │ └── transport │ ├── __init__.py │ ├── test_base_message_transport.py │ ├── test_local_message_transport.py │ ├── test_message_dispatcher.py │ └── test_remote_message_transport.py ├── resources └── odenos_messaging.conf └── ruby ├── org └── o3project │ └── odenos │ ├── component │ └── driver │ │ ├── of_driver │ │ ├── dummy_trema │ │ │ └── trema.rb │ │ ├── test_openflow_controller.rb │ │ └── test_openflow_driver.rb │ │ └── test_driver.rb │ ├── core │ ├── component │ │ ├── test_component.rb │ │ ├── test_logic.rb │ │ ├── test_network_component_entity.rb │ │ ├── test_network_interface.rb │ │ └── test_system_manager_interface.rb │ └── util │ │ ├── test_array_accessor.rb │ │ ├── test_hash_accessor.rb │ │ ├── test_logger.rb │ │ ├── test_meta_helper.rb │ │ ├── test_object_array.rb │ │ ├── test_object_hash.rb │ │ └── test_request_parser.rb │ └── remoteobject │ ├── manager │ ├── test_component_manager.rb │ └── test_of_component_manager.rb │ ├── test_component_connection.rb │ ├── test_component_connection_logic_and_network.rb │ ├── test_event.rb │ ├── test_message_dispatcher.rb │ ├── test_remote_object.rb │ ├── test_request.rb │ ├── test_response.rb │ └── test_transport.rb └── test_helper.rb /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.jar 3 | *.log 4 | *.pom 5 | *.pyc 6 | *~ 7 | .classpath 8 | .project 9 | .pydevproject 10 | .settings 11 | Gemfile.lock 12 | 13 | GPATH 14 | GRTAGS 15 | GSYMS 16 | GTAGS 17 | TAGS 18 | callgrind.out.* 19 | 20 | # ODENOS Project 21 | lib 22 | src/test/.coverage 23 | src/test/ruby/coverage 24 | target 25 | var 26 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | ruby-2.0.0-p643 2 | 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - oraclejdk7 4 | - oraclejdk8 5 | 6 | before_install: 7 | - sudo service redis-server restart 8 | after_install: 9 | - "cat ~/.cpanm/build.log" 10 | 11 | script: 12 | - mvn test javadoc:javadoc -B 13 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'http://rubygems.org' 2 | 3 | gem 'bindata', '~> 2.1.0' 4 | gem 'pio', '~> 0.18.2' 5 | gem 'msgpack', '~> 0.5.9' 6 | gem 'redis', '~> 3.1.0' 7 | gem 'concurrent-ruby', '~>0.7.0' 8 | group :development do 9 | gem 'bundler' 10 | gem 'yard' 11 | gem 'rubocop', '~> 0.27.1' 12 | end 13 | group :test do 14 | gem 'minitest', '~> 5.4.2' 15 | gem 'mocha', '~> 1.1.0' 16 | gem 'simplecov', '~> 0.9.1', require: false 17 | end 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | [![Build Status](https://travis-ci.org/o3project/odenos.svg?branch=develop)](https://travis-ci.org/o3project/odenos) 3 | 4 | What's ODENOS 5 | ========================== 6 | ODENOS is a network orchestration framework for controlling 7 | multi-layer, multi-domain or multi-vendor networks. 8 | 9 | ODENOS enables programmers to easily design a SDN orchestrator 10 | as an arbitral combination of four types of objects, Network, 11 | Driver, Operator and Application. 12 | 13 | Currently, some examples which use OpenFlowDriver and Mininet 14 | are avaiable. 15 | 16 | 17 | How to use ODENOS 18 | ========================== 19 | Please read [Getting Started with ODENOS](/doc/QUICKSTART.md). 20 | 21 | 22 | Supported environments 23 | ========================== 24 | - CPU: Intel x64 servers (with compatible) 25 | - Memory: >= 2GB 26 | - Ubuntu 14.04 27 | 28 | 29 | Support 30 | ========================== 31 | ODENOS official site is . 32 | 33 | 34 | Development 35 | ========================== 36 | Your contribution are very welcome, please submit your patch code using 37 | github "Pull Requests". 38 | If you find any bug, let us know by github's Issues page. 39 | 40 | [ODENOS APIs](/doc/api/index.md). 41 | -------------------------------------------------------------------------------- /apps/cassandra/.gitignore: -------------------------------------------------------------------------------- 1 | .project 2 | .settings 3 | .classpath 4 | target 5 | tmp 6 | -------------------------------------------------------------------------------- /apps/cassandra/cassandra-log4j2-appender/log4j2-example-config.yaml: -------------------------------------------------------------------------------- 1 | configuration: 2 | 3 | status: warn 4 | packages: com.datastax.logging.appender 5 | 6 | ThresholdFilter: 7 | level: info 8 | 9 | appenders: 10 | Console: 11 | name: Console 12 | PatternLayout: 13 | Pattern: "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" 14 | # File: 15 | # name: File 16 | # # Set a Java property like this to set a log fine name: 17 | # # -Dapp.log="/home/foo/var/abc.log" 18 | # fileName: "${sys:app.log}" 19 | # PatternLayout: 20 | # Pattern: "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" 21 | CassandraAppender: 22 | name: CassandraAppender 23 | ThresholdFilter: 24 | level: info 25 | 26 | loggers: 27 | root: 28 | level: info 29 | AppenderRef: 30 | - ref: Console 31 | # - ref: File 32 | - ref: CassandraAppender 33 | -------------------------------------------------------------------------------- /apps/cassandra/cassandra-log4j2-appender/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # for production, you should probably set the root to INFO 18 | # and the pattern to %c instead of %l. (%l is slower.) 19 | 20 | # output messages into a rolling log file as well as stdout 21 | log4j.rootLogger=INFO,stdout 22 | 23 | # stdout 24 | #log4j.appender.stdout=org.apache.log4j.ConsoleAppender 25 | #log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout 26 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 27 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 28 | log4j.appender.stdout.layout.ConversionPattern=%-5p [%t]: %m%n 29 | 30 | 31 | #log4j.category.org.apache=INFO, stdout 32 | log4j.logger.com.datastax.logging= INFO 33 | -------------------------------------------------------------------------------- /apps/cassandra/cassandra-log4j2-appender/src/test/resources/log4j.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/cli/doc/SCHEMA_from_ODENOS.txt: -------------------------------------------------------------------------------- 1 | SCHEMA from OdenOS 2 | ================== 3 | 4 | org.o3project.odenos.util.RequestParser has a private variable "headstate" that holds a path tree and callback functions for each methods: 5 | 6 | headstate --+-- 7 | | 8 | +---+---- GET: callback A 9 | | POST: callback B 10 | | : 11 | | 12 | +---- 13 | 14 | You can manually get a schema from OdenOS like this way: 15 | $ cat LearningSwitch.java | grep addRule 16 | $ cat Network.java | grep addRule 17 | : 18 | 19 | Then modify 'schema' in init.yaml following the output above. 20 | 21 | -------------------------------------------------------------------------------- /apps/cli/mako_render.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | import sys 17 | from mako.template import Template 18 | 19 | if __name__ == '__main__': 20 | with open(sys.argv[1]) as f: 21 | print Template(text=f.read()).render() 22 | -------------------------------------------------------------------------------- /apps/cli/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | org.o3project.odenos.component.generator 6 | generator 7 | 1.0 8 | jar 9 | 10 | generator 11 | http://maven.apache.org 12 | 13 | 14 | UTF-8 15 | 16 | 17 | 18 | 19 | org.o3project.odenos 20 | odenos 21 | 1.0.0 22 | 23 | 24 | org.slf4j 25 | slf4j-log4j12 26 | 1.6.1 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | org.apache.maven.plugins 35 | maven-compiler-plugin 36 | 3.1 37 | 38 | 39 | 40 | 41 | 42 | 43 | org.apache.maven.plugins 44 | maven-compiler-plugin 45 | 46 | 1.7 47 | 1.7 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /apps/cli/scenarios/cli_style/rest_test.cli: -------------------------------------------------------------------------------- 1 | #!cli 2 | 3 | echo Reads system properties 4 | get /systemmanager/property 5 | get /systemmanager/component_types 6 | sleep 1 7 | 8 | echo Creates component instances 9 | put /systemmanager/components/network1: 10 | type: Network 11 | id: network1 12 | cm_id: romgr1 13 | put /systemmanager/components/driver1: 14 | type: DummyDriver 15 | id: driver1 16 | cm_id: romgr1 17 | put /systemmanager/components/switch1: 18 | type: LearningSwitch 19 | id: switch1 20 | cm_id: romgr1 21 | get /systemmanager/components 22 | 23 | echo CLI 24 | cli 25 | 26 | echo Makes connections among the components 27 | put /systemmanager/connections/conn1_driver: 28 | id: conn1_driver 29 | connection_type: original 30 | type: LogicAndNetwork 31 | logic_id: driver1 32 | network_id: network1 33 | put /systemmanager/connections/conn1_switch: 34 | id: conn1_switch 35 | connection_type: original 36 | type: LogicAndNetwork 37 | logic_id: switch1 38 | network_id: network1 39 | get /systemmanager/connections 40 | get /systemmanager/components/network1/topology 41 | get /systemmanager/components/switch1/property 42 | get /systemmanager/components/switch1/fdb 43 | 44 | cli 45 | 46 | echo Deletes all the instances 47 | delete /systemmanager/connections/conn1_switch 48 | delete /systemmanager/connections/conn1_driver 49 | delete /systemmanager/components/switch1 50 | delete /systemmanager/components/driver1 51 | delete /systemmanager/components/network1 52 | 53 | echo Make sure that all the instances have been deleted 54 | get /systemmanager/components/ 55 | get /systemmanager/connections/ 56 | 57 | -------------------------------------------------------------------------------- /apps/cli/scenarios/multi_hosts/README: -------------------------------------------------------------------------------- 1 | This scenario is to test the following configuration: 2 | 3 | # host A host B 4 | # systemmanager network1 gen, aggre lsw network0 5 | # | romgr1 romgr2 romgr10 romgr11 6 | # | | | | | 7 | # +------------+-------+---[pubsub server]-----+--------+ 8 | # 9 | # gen <--> network1 <--> aggre <--> network0 <--> lsw 10 | # romgr2 romgr1 romgr2 romgr11 romgr10 11 | 12 | To test it, you have to prepare the following: 13 | 14 | [host A] 15 | 16 | - odenos.conf 17 | MANAGER systemmanager 18 | PROCESS romgr1,java,apps/cli/target/classes 19 | PROCESS romgr2,java,apps/cli/target/classes 20 | pubsub_server_host 21 | pubsub_server_port 22 | 23 | [host B] 24 | - odenos.conf 25 | PROCESS romgr10,java,apps/cli/target/classes 26 | PROCESS romgr11,java,apps/cli/target/classes 27 | pubsub_server_host 28 | pubsub_server_port 29 | 30 | -------------------------------------------------------------------------------- /apps/cli/scenarios/multi_hosts/multi_hosts.yaml: -------------------------------------------------------------------------------- 1 | # host A host B 2 | # systemmanager network1 gen, aggre lsw network0 3 | # | romgr1 romgr2 romgr10 romgr11 4 | # | | | | | 5 | # +------------+-------+---[pubsub server]-----+--------+ 6 | # 7 | # gen <--> network1 <--> aggre <--> network0 <--> lsw 8 | # romgr2 romgr1 romgr2 romgr11 romgr10 9 | # 10 | - macro: create_comp 11 | scenario: 12 | - put: /systemmanager/components/lsw 13 | body: 14 | type: LearningSwitch 15 | id: lsw 16 | cm_id: romgr10 17 | - assert: 18 | status: 2\d{2} 19 | - put: /systemmanager/components/network0 20 | body: 21 | type: Network 22 | id: network0 23 | cm_id: romgr11 24 | - assert: 25 | status: 2\d{2} 26 | - put: /systemmanager/components/network1 27 | body: 28 | type: Network 29 | id: network1 30 | cm_id: romgr1 31 | - assert: 32 | status: 2\d{2} 33 | - put: /systemmanager/components/gen 34 | body: 35 | type: Generator 36 | id: gen 37 | cm_id: romgr2 38 | - assert: 39 | status: 2\d{2} 40 | - put: /systemmanager/components/aggre 41 | body: 42 | type: Aggregator 43 | id: aggre 44 | cm_id: romgr2 45 | - assert: 46 | status: 2\d{2} 47 | 48 | - macros: 49 | - create_comp 50 | - create_conn 51 | - create_topo ring # The 1st arg can be ring, mesh or linear 52 | - cli 53 | 54 | -------------------------------------------------------------------------------- /apps/cli/scenarios/redis_bridge/bridge.yaml: -------------------------------------------------------------------------------- 1 | # OdenOS base configuration 2 | - macro: create_bridge 3 | scenario: 4 | - put: /systemmanager/components/bridge 5 | body: 6 | type: Bridge 7 | id: redis-bridge 8 | cm_id: romgr1 9 | - post: /redis-bridge/{0} 10 | - post: /redis-bridge/{1} 11 | -------------------------------------------------------------------------------- /apps/cli/scenarios/topologies/1000nodes_ring.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # 1000 node ring topo 3 | # 4 | 5 | # === GENERATOR DECLARATIONS === 6 | 7 | # Generate a ring topology 8 | - producer: topo_ring 9 | class: Topology 10 | topo_type: ring 11 | networks: 1 12 | nodes: 1000 13 | eports: 10 # The number of unconnected ports 14 | 15 | - macro: verbose_off 16 | scenario: 17 | - put: /network1/settings/verbose_event/port 18 | body: 'false' 19 | - put: /network0/settings/verbose_event/port 20 | body: 'false' 21 | - put: /network1/settings/verbose_event/link 22 | body: 'false' 23 | - put: /network0/settings/verbose_event/link 24 | body: 'false' 25 | 26 | 27 | # === Create components, connections and ring topo, then initiate CLI === 28 | # NOTE: The following is executed when clio is initiated with this file 29 | # without -p option. 30 | 31 | - macros: 32 | - create_comp 33 | - create_conn 34 | - verbose_off 35 | - create_topo ring 36 | - cli 37 | -------------------------------------------------------------------------------- /apps/example/federated_network/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | federated_network 6 | federated_network 7 | federated_network 8 | 9 | 10 | UTF-8 11 | 12 | 13 | 14 | org.o3project.odenos 15 | ODENOS-example 16 | 1.0 17 | 18 | 19 | 20 | 21 | simple_controller 22 | simple_controller 23 | 1.0 24 | 25 | 26 | junit 27 | junit 28 | 3.8.1 29 | test 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /apps/example/layerized_network/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | layerized_network 6 | layerized_network 7 | layerized_network 8 | 9 | 10 | UTF-8 11 | 12 | 13 | 14 | org.o3project.odenos 15 | ODENOS-example 16 | 1.0 17 | 18 | 19 | 20 | 21 | simple_controller 22 | simple_controller 23 | 1.0 24 | 25 | 26 | junit 27 | junit 28 | 3.8.1 29 | test 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /apps/example/monitor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$1" ]; then 4 | echo "" 5 | echo "--- message sequence diagram ---" 6 | echo "" 7 | echo 'IMPORTANT: uncomment "manager" in odenos.conf before starting OdenOS.' 8 | echo "" 9 | echo "Usage:" 10 | echo "$ ./monitor.sh " 11 | echo "Example: ./monitor.sh federated_network" 12 | echo "" 13 | echo "Or, you may start a HTTP server to show the diagram on your firefox browser." 14 | echo "$ ./monitor.sh w" 15 | echo "Example: ./monitor.sh federated_network w" 16 | echo "" 17 | echo 'Add or edit files in "monitor_preset" folder' 18 | exit 1 19 | fi 20 | 21 | PRESET=monitor_preset/$1.yaml 22 | 23 | if [ -z "$2" ]; then 24 | ../monitor/monitor -f $PRESET -c 25 | else 26 | ../monitor/monitor -f $PRESET 27 | fi 28 | 29 | 30 | -------------------------------------------------------------------------------- /apps/example/monitor_preset/federated_network.yaml: -------------------------------------------------------------------------------- 1 | # Object IDs 2 | object_ids: 3 | - systemmanager 4 | - romger1 5 | - dummy-driver01 6 | - original-nw01 7 | - dummy-driver02 8 | - original-nw02 9 | - federator 10 | - federated-nw 11 | - learning-switch 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/example/monitor_preset/layerized_network.yaml: -------------------------------------------------------------------------------- 1 | # Object IDs 2 | object_ids: 3 | - systemmanager 4 | - romger1 5 | - dummy-driver 6 | - lower-nw 7 | - upper-nw 8 | - link-layerizer 9 | - layerized-nw 10 | - learning-switch 11 | -------------------------------------------------------------------------------- /apps/example/monitor_preset/one_big_l2switch.yaml: -------------------------------------------------------------------------------- 1 | # Object IDs 2 | object_ids: 3 | - systemmanager 4 | - romger1 5 | - dummy_driver2 6 | - original_network2 7 | - aggregator2 8 | - aggregated_network2 9 | - learning_switch2 10 | 11 | -------------------------------------------------------------------------------- /apps/example/monitor_preset/register_aggregator.yaml: -------------------------------------------------------------------------------- 1 | # Object IDs 2 | object_ids: 3 | - systemmanager 4 | - romger1 5 | - original_network 6 | - aggregator 7 | - aggregated_network 8 | 9 | 10 | -------------------------------------------------------------------------------- /apps/example/monitor_preset/simple_l2switch.yaml: -------------------------------------------------------------------------------- 1 | # Object IDs 2 | object_ids: 3 | - systemmanager 4 | - romger1 5 | - dummy_driver 6 | - netowrk1 7 | - learning_switch 8 | 9 | -------------------------------------------------------------------------------- /apps/example/one_big_l2switch/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | one_big_l2switch 6 | one_big_l2switch 7 | one_big_l2switch 8 | 9 | 10 | UTF-8 11 | 12 | 13 | 14 | org.o3project.odenos 15 | ODENOS-example 16 | 1.0 17 | 18 | 19 | 20 | 21 | simple_controller 22 | simple_controller 23 | 1.0 24 | 25 | 26 | junit 27 | junit 28 | 3.8.1 29 | test 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /apps/example/register_aggregator/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | register_aggregator 6 | register_aggregator 7 | register_aggregator 8 | 9 | 10 | UTF-8 11 | 12 | 13 | 14 | org.o3project.odenos 15 | ODENOS-example 16 | 1.0 17 | 18 | 19 | 20 | 21 | simple_controller 22 | simple_controller 23 | 1.0 24 | 25 | 26 | junit 27 | junit 28 | 3.8.1 29 | test 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /apps/example/simple_controller/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | simple_controller 7 | simple_controller 8 | 1.0 9 | simple_controller 10 | 11 | 12 | UTF-8 13 | 14 | 15 | 16 | org.o3project.odenos 17 | ODENOS-example 18 | 1.0 19 | 20 | 21 | 22 | 23 | junit 24 | junit 25 | 3.8.1 26 | test 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /apps/example/simple_l2switch/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | simple_l2switch 6 | simple_l2switch 7 | 1.0 8 | simple_l2switch 9 | 10 | 11 | UTF-8 12 | 13 | 14 | 15 | org.o3project.odenos 16 | ODENOS-example 17 | 1.0 18 | 19 | 20 | 21 | 22 | simple_controller 23 | simple_controller 24 | 1.0 25 | 26 | 27 | junit 28 | junit 29 | 3.8.1 30 | test 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /apps/example/slice_openflow_network/dump_original_topology_and_flows.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | ## remove proxy 18 | unset http_proxy 19 | 20 | FORMAT="\n%{url_effective}, %{response_code}\n\n" 21 | ADDRESS=127.0.0.1 22 | 23 | echo "------ dump original-nw's topology -------" 24 | curl http://$ADDRESS:10080/systemmanager/components/original-nw/topology -X GET | python -mjson.tool 25 | 26 | echo "------ dump original-nw's flows -------" 27 | curl http://$ADDRESS:10080/systemmanager/components/original-nw/flows -X GET | python -mjson.tool 28 | 29 | -------------------------------------------------------------------------------- /apps/example/sliver_network/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | sliver_network 6 | sliver_network 7 | sliver_network 8 | 9 | 10 | UTF-8 11 | 12 | 13 | 14 | org.o3project.odenos 15 | ODENOS-example 16 | 1.0 17 | 18 | 19 | 20 | 21 | simple_controller 22 | simple_controller 23 | 1.0 24 | 25 | 26 | junit 27 | junit 28 | 3.8.1 29 | test 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /apps/java/sample_components/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | org.o3project.odenos.sample_components 6 | sample_components 7 | 1.0 8 | jar 9 | 10 | sample_components 11 | http://maven.apache.org 12 | 13 | 14 | UTF-8 15 | 16 | 17 | 18 | 19 | org.o3project.odenos 20 | odenos 21 | 1.0.0 22 | 23 | 24 | org.slf4j 25 | slf4j-log4j12 26 | 1.6.1 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | org.apache.maven.plugins 35 | maven-compiler-plugin 36 | 3.1 37 | 38 | 39 | 40 | 41 | 42 | 43 | org.apache.maven.plugins 44 | maven-compiler-plugin 45 | 46 | 1.7 47 | 1.7 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /apps/mininet_examples/multi_network_control/driver_dc1.conf: -------------------------------------------------------------------------------- 1 | port 6653 2 | -------------------------------------------------------------------------------- /apps/mininet_examples/multi_network_control/driver_dc2.conf: -------------------------------------------------------------------------------- 1 | port 6654 2 | -------------------------------------------------------------------------------- /apps/mininet_examples/multi_network_control/driver_dc3.conf: -------------------------------------------------------------------------------- 1 | port 6655 2 | -------------------------------------------------------------------------------- /apps/mininet_examples/multi_network_control/driver_wan.conf: -------------------------------------------------------------------------------- 1 | port 6656 2 | -------------------------------------------------------------------------------- /apps/mininet_examples/single_network_control/start_odenos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | RUN_DIR=`pwd` 4 | ODENOS_HOME_DIR=../../../ 5 | CONF_FILE="${RUN_DIR}/odenos.conf" 6 | DEBUG="${DEBUG:-OFF}" 7 | 8 | ## please specify the path of trema command 9 | export TREMA="${HOME}/trema-edge/trema" 10 | 11 | start() { 12 | run cd $ODENOS_HOME_DIR 13 | run ./odenos start -c "${CONF_FILE}" 14 | run cd $RUN_DIR 15 | run eval PYTHONPATH=$ODENOS_HOME_DIR/lib/python/ ./config_odenos.py 16 | } 17 | 18 | stop() { 19 | run cd $ODENOS_HOME_DIR 20 | run ./odenos stop -c "${CONF_FILE}" 21 | run cd $RUN_DIR 22 | } 23 | 24 | clean() { 25 | run killall -9 python 26 | run cd $ODENOS_HOME_DIR 27 | [ "$( echo var/log/*.log )" = "var/log/*.log" ] || run rm var/log/*.log 28 | [ ! -d var/zookeeper ] || run rm -r var/zookeeper 29 | run cd "${TREMA%/*}" 30 | [ "$( echo tmp/* )" = "tmp/*" ] || run rm -r tmp/* 31 | run cd $RUN_DIR 32 | run sudo service redis-server restart 33 | } 34 | 35 | run() { 36 | local res 37 | case "${DEBUG}" in 38 | ON|on|YES|yes) 39 | echo "==== $* ====" >&2 40 | ;; 41 | esac 42 | "$@" 43 | res=$? 44 | case "${DEBUG}" in 45 | ON|on|YES|yes) 46 | echo "==== exit=${res} ====" >&2 47 | ;; 48 | esac 49 | return ${res} 50 | } 51 | 52 | case "$1" in 53 | start) 54 | start 55 | ;; 56 | stop) 57 | stop 58 | ;; 59 | clean) 60 | clean 61 | ;; 62 | restart) 63 | stop 64 | start 65 | ;; 66 | crestart) 67 | stop 68 | clean 69 | start 70 | ;; 71 | *) 72 | echo >&2 "$0 [start|stop|clean|restart]" 73 | esac 74 | -------------------------------------------------------------------------------- /apps/mininet_examples/single_node_control/start_odenos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | RUN_DIR=`pwd` 4 | ODENOS_HOME_DIR=../../../ 5 | 6 | ## please specify the path of trema command 7 | TREMA="${HOME}/trema-edge/trema" 8 | 9 | TREMA_PARAM="src/main/ruby/org/o3project/odenos/core/odenos.rb --cmpmgr=romgr3" 10 | 11 | start() { 12 | cd $ODENOS_HOME_DIR 13 | ./odenos start 14 | sleep 1 15 | ${TREMA} run -d "${TREMA_PARAM}" 16 | sleep 3 17 | cd $RUN_DIR 18 | PYTHONPATH=$ODENOS_HOME_DIR/lib/python/ ./config_odenos.py 19 | } 20 | 21 | stop() { 22 | ${TREMA} killall 23 | cd $ODENOS_HOME_DIR 24 | ./odenos stop 25 | cd $RUN_DIR 26 | } 27 | 28 | clean() { 29 | killall -9 python 30 | cd $ODENOS_HOME_DIR 31 | rm var/log/*.log 32 | rm -r var/zookeeper 33 | cd $RUN_DIR 34 | sudo service redis-server restart 35 | } 36 | 37 | case "$1" in 38 | start) 39 | start 40 | ;; 41 | stop) 42 | stop 43 | ;; 44 | clean) 45 | clean 46 | ;; 47 | restart) 48 | stop 49 | start 50 | ;; 51 | crestart) 52 | stop 53 | clean 54 | start 55 | ;; 56 | *) 57 | echo >&2 "$0 [start|stop|clean|restart]" 58 | esac 59 | -------------------------------------------------------------------------------- /apps/monitor/default.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Default settings for monitor 3 | # 4 | 5 | # Object IDs 6 | object_ids: 7 | - resttranslator:Default.png 8 | - systemmanager:Default.png 9 | - romgr1:Default.png 10 | - gen:Default.png 11 | - network1:Network.png 12 | - aggre:Default.png 13 | - network0:Network.png 14 | - lsw:Default.png 15 | -------------------------------------------------------------------------------- /apps/monitor/doc/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/monitor/doc/console.png -------------------------------------------------------------------------------- /apps/monitor/doc/detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/monitor/doc/detail.png -------------------------------------------------------------------------------- /apps/monitor/doc/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/monitor/doc/start.png -------------------------------------------------------------------------------- /apps/monitor/web/images/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/monitor/web/images/Default.png -------------------------------------------------------------------------------- /apps/monitor/web/images/Network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/monitor/web/images/Network.png -------------------------------------------------------------------------------- /apps/neo4j/README.md: -------------------------------------------------------------------------------- 1 | # neo4jAdapter 2 | Visualize the ODENOS component configuration 3 | 4 | # Screen shots 5 | 6 | 7 | 8 | # Architecture 9 | 10 | 11 | 12 | #Usage 13 | ``` 14 | To reflect the component configuration of odenos to neo4j. 15 | > PYTHONPATH=../../lib/python/ ./neo4jsync.py 16 | 17 | To reflect the component configuration and topology of odenos to neo4j. 18 | > PYTHONPATH=../../lib/python/ ./neo4jsync.py topology 19 | ``` 20 | #Setup Neo4j 21 | 22 | 1. Get&Install Neo4j-server http://neo4j.com/download/ 23 | 24 | 25 | 26 | 2. Edit the following parameters in *./conf/neo4j-server.properties* 27 | * dbms.security.auth_enabled=false 28 | * org.neo4j.server.webserver.address=0.0.0.0 29 | 30 | 31 | 32 | 3. Start Neo4j-server 33 | 34 | ``` 35 | $ ./bin/neo4j start 36 | ``` 37 | 4. In a browser, open http://localhost:7474/ 38 | 39 | 40 | 41 | 5. configure Graph Style Sheet 42 | 43 | drop file "./apps/neo4j/graphstyle.grass" 44 | 45 | 46 | 47 | # View Graph 48 | 49 | 50 | 1. Run ODENOS & example 51 | 52 | ``` 53 | $ cd (ODENOS_HOME) 54 | $ ./odenos start 55 | $ ./apps/rest_sample/rest_sample.sh 56 | $ PYTHONPATH=./lib/python/ ./apps/neo4j/neo4jsync.py 57 | ``` 58 | 59 | 2. In a browser, open http://localhost:7474/ 60 | 61 | * Click on the star mark 62 | * General -> Get some data 63 | * Click on the play mark 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /apps/neo4j/images/Screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/Screenshot1.png -------------------------------------------------------------------------------- /apps/neo4j/images/Screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/Screenshot2.png -------------------------------------------------------------------------------- /apps/neo4j/images/browser1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/browser1.png -------------------------------------------------------------------------------- /apps/neo4j/images/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/config.png -------------------------------------------------------------------------------- /apps/neo4j/images/config2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/config2.png -------------------------------------------------------------------------------- /apps/neo4j/images/install1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/install1.png -------------------------------------------------------------------------------- /apps/neo4j/images/neo4jarch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/apps/neo4j/images/neo4jarch.jpg -------------------------------------------------------------------------------- /apps/neo4j/neo4j.conf: -------------------------------------------------------------------------------- 1 | # Copyright 2015 NEC Corporation. # 2 | # # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); # 4 | # you may not use this file except in compliance with the License. # 5 | # You may obtain a copy of the License at # 6 | # # 7 | # http://www.apache.org/licenses/LICENSE-2.0 # 8 | # # 9 | # Unless required by applicable law or agreed to in writing, software # 10 | # distributed under the License is distributed on an "AS IS" BASIS, # 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 12 | # See the License for the specific language governing permissions and # 13 | # limitations under the License. # 14 | 15 | # Neo4jAdaper Configuration 16 | 17 | # neo4jserver rest address (default:127.0.0.1) 18 | address=127.0.0.1 19 | # neo4jserver rest port (default:7474) 20 | port=7474 21 | 22 | timeout=1 23 | -------------------------------------------------------------------------------- /doc/api/images/Aggregator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/Aggregator.jpg -------------------------------------------------------------------------------- /doc/api/images/Architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/Architecture.jpg -------------------------------------------------------------------------------- /doc/api/images/Federator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/Federator.jpg -------------------------------------------------------------------------------- /doc/api/images/LinkLayerizer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/LinkLayerizer.jpg -------------------------------------------------------------------------------- /doc/api/images/MessageDisp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/MessageDisp.jpg -------------------------------------------------------------------------------- /doc/api/images/Network.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/Network.jpg -------------------------------------------------------------------------------- /doc/api/images/SliceCondition.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/SliceCondition.jpg -------------------------------------------------------------------------------- /doc/api/images/Slicer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/Slicer.jpg -------------------------------------------------------------------------------- /doc/api/images/systemconfiguration.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/systemconfiguration.jpg -------------------------------------------------------------------------------- /doc/api/images/systemmgr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/o3project/odenos/837d0d3d3c37482e843c40c5eeeac10646e68c65/doc/api/images/systemmgr.jpg -------------------------------------------------------------------------------- /etc/80-odenos.conf: -------------------------------------------------------------------------------- 1 | # -- local output -- 2 | # all odenos log output to one file 3 | $template odenos-format, "%timegenerated% %hostname%: %syslogpriority-text:::UPPERCASE%: %syslogtag%%msg:::drop-last-lf%\n" 4 | local1.* /var/log/odenos.log;odenos-format 5 | # -- remote output -- 6 | # odenos log send to remote server 7 | #if $syslogfacility-text == 'local1' then @192.168.1.1 8 | -------------------------------------------------------------------------------- /etc/log4j2-silent.yaml: -------------------------------------------------------------------------------- 1 | configuration: 2 | 3 | loggers: 4 | root: 5 | level: "OFF" 6 | -------------------------------------------------------------------------------- /etc/log4j2_java.yaml: -------------------------------------------------------------------------------- 1 | configuration: 2 | 3 | status: warn 4 | name: Odenos Logging 5 | packages: com.datastax.logging.appender 6 | properties: 7 | property: 8 | name: log4j2_app.log 9 | value: odenos.log 10 | 11 | appenders: 12 | Console: 13 | name: Console 14 | PatternLayout: 15 | Pattern: "%d{HH:mm:ss.SSS} %-5level %logger{2} txid: %replace{%X{txid}}{^$}{-} - %msg%n" 16 | ThresholdFilter: 17 | level: error 18 | 19 | File: 20 | name: File 21 | fileName: "${sys:log4j2_app.log}" 22 | PatternLayout: 23 | Pattern: "%d %-5level [%t] %logger{36}.%M txid: %replace{%X{txid}}{^$}{-} - %msg%n" 24 | 25 | Syslog: 26 | name: Syslog 27 | Host: "localhost" 28 | Protocol: UDP 29 | Port: 514 30 | Facility: "LOCAL1" 31 | Format: "RFC5424" 32 | mdcId: "mdc" 33 | includeMDC: "true" 34 | LoggerFields: 35 | KeyValuePair: !!pairs 36 | - key: "thread" 37 | value: "%t" 38 | - key: "method" 39 | value: "%c.%M" 40 | - key: "txid" 41 | value: "%replace{%X{txid}}{^$}{-}" 42 | 43 | # CassandraAppender: 44 | # name: CassandraAppender 45 | # ThresholdFilter: 46 | # level: info 47 | 48 | loggers: 49 | root: 50 | level: info 51 | AppenderRef: 52 | # - ref: Console 53 | - ref: File 54 | # - ref: Syslog 55 | # - ref: CassandraAppender 56 | logger: 57 | name: org.apache.zookeeper 58 | level: error 59 | AppenderRef: 60 | - ref: File 61 | -------------------------------------------------------------------------------- /etc/log_ruby.conf: -------------------------------------------------------------------------------- 1 | # Copyright 2015 NEC Corporation. # 2 | # # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); # 4 | # you may not use this file except in compliance with the License. # 5 | # You may obtain a copy of the License at # 6 | # # 7 | # http://www.apache.org/licenses/LICENSE-2.0 # 8 | # # 9 | # Unless required by applicable law or agreed to in writing, software # 10 | # distributed under the License is distributed on an "AS IS" BASIS, # 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 12 | # See the License for the specific language governing permissions and # 13 | # limitations under the License. # 14 | 15 | # Logger Config 16 | Logger: 17 | # Logger enable true or false 18 | Enabled: true 19 | # logging file path 20 | Output: ./var/log/odenos_romgr3.log 21 | # log level: FATAL/ERROR/WARN/INFO/DEBUG 22 | Level: INFO 23 | 24 | # Syslog Config 25 | Syslog: 26 | # Logger enable true or false 27 | Enabled: false 28 | # facility LOG_LOCAL0~LOG_LOCAL7 29 | Facility: LOG_LOCAL1 30 | # log level(severity): FATAL/ERROR/WARN/INFO/DEBUG 31 | Level: INFO 32 | -------------------------------------------------------------------------------- /etc/odenos.importorder: -------------------------------------------------------------------------------- 1 | #Organize Import Order 2 | #Fri Nov 28 14:16:54 JST 2014 3 | 4=javax 4 | 3=java 5 | 2=com 6 | 1=org 7 | 0=edu 8 | -------------------------------------------------------------------------------- /src/main/java/distribution.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | bin 6 | 7 | zip 8 | 9 | true 10 | ${project.artifactId}-${project.version} 11 | 12 | 13 | etc 14 | etc 15 | 16 | 17 | doc 18 | doc 19 | 20 | 21 | src/main/python 22 | lib/python 23 | 24 | 25 | src/main/ruby 26 | lib/ruby 27 | 28 | 29 | var 30 | var 31 | 32 | 33 | apps 34 | apps 35 | 36 | 37 | 38 | 39 | false 40 | runtime 41 | lib/java/ 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/aggregator/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.aggregator; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/federator/FederatorException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.federator; 18 | 19 | /** 20 | * Exception of Federator. 21 | * 22 | */ 23 | @SuppressWarnings("serial") 24 | public class FederatorException extends Exception { 25 | 26 | /** 27 | * Constructors. 28 | */ 29 | public FederatorException() { 30 | super(); 31 | } 32 | 33 | /** 34 | * Constructors with messages. 35 | * @param message detail message 36 | */ 37 | public FederatorException(String message) { 38 | super(message); 39 | } 40 | 41 | /** 42 | * Constructors with messages and cause. 43 | * @param message detail message 44 | * @param cause cause 45 | */ 46 | public FederatorException(String message, Throwable cause) { 47 | super(message, cause); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/federator/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.federator; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/learningswitch/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.learningswitch; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/linklayerizer/LinkLayerizerBoundaryException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.linklayerizer; 18 | 19 | /** 20 | * Exception of LinkLayerizer. 21 | * 22 | */ 23 | @SuppressWarnings("serial") 24 | public class LinkLayerizerBoundaryException extends Exception { 25 | 26 | /** 27 | * Constructors. 28 | */ 29 | public LinkLayerizerBoundaryException() { 30 | super(); 31 | } 32 | 33 | /** 34 | * Constructors with messages. 35 | * @param message detail message 36 | */ 37 | public LinkLayerizerBoundaryException(String message) { 38 | super(message); 39 | } 40 | 41 | /** 42 | * Constructors with cause. 43 | * @param cause cause 44 | */ 45 | public LinkLayerizerBoundaryException(Throwable cause) { 46 | super(cause); 47 | } 48 | 49 | /** 50 | * Constructors with messages and cause. 51 | * @param message detail message 52 | * @param cause cause 53 | */ 54 | public LinkLayerizerBoundaryException(String message, Throwable cause) { 55 | super(message, cause); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/linklayerizer/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.linklayerizer; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/component/slicer/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.component.slicer; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/LogicIF.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component; 18 | 19 | import org.o3project.odenos.remoteobject.RemoteObjectIF; 20 | import org.o3project.odenos.remoteobject.messagingclient.MessageDispatcher; 21 | 22 | public class LogicIF extends RemoteObjectIF { 23 | 24 | @Deprecated 25 | public LogicIF(final MessageDispatcher dispatcher, final String id) { 26 | super(dispatcher, id); 27 | } 28 | 29 | public LogicIF(final String sourceObjectId, final MessageDispatcher dispatcher) { 30 | super(sourceObjectId, dispatcher); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/flow/basic/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.flow.basic; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/flow/ofpflow/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.flow.ofpflow; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/flow/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.flow; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/flow/query/FlowQuery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.flow.query; 18 | 19 | import org.o3project.odenos.core.component.network.BaseObjectQuery; 20 | import org.o3project.odenos.core.component.network.flow.Flow; 21 | import org.o3project.odenos.core.component.network.topology.Topology; 22 | 23 | /** 24 | * Prepares a query for Flow class. 25 | * 26 | */ 27 | public abstract class FlowQuery extends BaseObjectQuery { 28 | 29 | protected Topology topology = null; 30 | 31 | /** 32 | * Constructor. 33 | * @param queriesString query string. 34 | */ 35 | public FlowQuery(String queriesString) { 36 | super(queriesString); 37 | } 38 | 39 | /** 40 | * Sets a topology. 41 | * @param topology topology. 42 | */ 43 | public void setTopology(Topology topology) { 44 | this.topology = topology; 45 | } 46 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/flow/query/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.flow.query; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/InPacketAdded.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * InPacketAdded represents a body of event message delivered when InPacketAdded 21 | * event occurs. 22 | * 23 | */ 24 | public class InPacketAdded extends BasePacketAdded { 25 | 26 | public static final String TYPE = "InPacketAdded"; 27 | 28 | /** 29 | * Constructor. 30 | */ 31 | public InPacketAdded() { 32 | } 33 | 34 | /** 35 | * Constructor. 36 | * @param inpacket packet of packet IN. 37 | */ 38 | public InPacketAdded(final Packet inpacket) { 39 | super(inpacket); 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/InPacketQuery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * Prepares a query for Packet IN. 21 | * 22 | */ 23 | public class InPacketQuery extends PacketQuery { 24 | 25 | /** 26 | * Constructor. 27 | * @param queriesString query string. 28 | */ 29 | public InPacketQuery(String queriesString) { 30 | super(queriesString); 31 | } 32 | 33 | /* 34 | * (non-Javadoc) 35 | * @see org.o3project.odenos.core.component.network.packet.PacketQuery#parse() 36 | */ 37 | @Override 38 | public boolean parse() { 39 | if (!super.parse()) { 40 | return false; 41 | } 42 | if (this.queries.size() != 0) { 43 | return false; 44 | } 45 | if (this.attributes == null) { 46 | return false; 47 | } 48 | return true; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/InPacketQueue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * Queue Packet IN. 21 | * 22 | */ 23 | public class InPacketQueue extends PacketQueue { 24 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/OutPacketAdded.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * OutPacketAdded represents a body of event message delivered when 21 | * OutPacketAdded event occurs. 22 | * 23 | */ 24 | public class OutPacketAdded extends BasePacketAdded { 25 | 26 | public static final String TYPE = "OutPacketAdded"; 27 | 28 | /** 29 | * Constructor. 30 | */ 31 | public OutPacketAdded() { 32 | } 33 | 34 | /** 35 | * Constructor. 36 | * @param outpacket packet of packet OUT. 37 | */ 38 | public OutPacketAdded(final Packet outpacket) { 39 | super(outpacket); 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/OutPacketQuery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * Prepares a query for Packet OUT. 21 | * 22 | */ 23 | public class OutPacketQuery extends PacketQuery { 24 | 25 | /** 26 | * Constructor. 27 | * @param queriesString query string. 28 | */ 29 | public OutPacketQuery(String queriesString) { 30 | super(queriesString); 31 | } 32 | 33 | /* 34 | * (non-Javadoc) 35 | * @see org.o3project.odenos.core.component.network.packet.PacketQuery#parse() 36 | */ 37 | @Override 38 | public boolean parse() { 39 | if (!super.parse()) { 40 | return false; 41 | } 42 | if (this.queries.size() != 0) { 43 | return false; 44 | } 45 | if (this.attributes == null) { 46 | return false; 47 | } 48 | return true; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/OutPacketQueue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * Queue Packet OUT. 21 | * 22 | */ 23 | public class OutPacketQueue extends PacketQueue { 24 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/PacketQueueSet.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | /** 20 | * Set of packet queue. 21 | * 22 | */ 23 | public class PacketQueueSet { 24 | private InPacketQueue inQueue; 25 | private OutPacketQueue outQueue; 26 | 27 | /** 28 | * Constructor. 29 | */ 30 | public PacketQueueSet() { 31 | inQueue = new InPacketQueue(); 32 | outQueue = new OutPacketQueue(); 33 | } 34 | 35 | /** 36 | * Returns a packet queue IN. 37 | * @return packet queue IN. 38 | */ 39 | public PacketQueue getInQueue() { 40 | return inQueue; 41 | } 42 | 43 | /** 44 | * Returns a packet queue IN. 45 | * @return packet queue OUT. 46 | */ 47 | public PacketQueue getOutQueue() { 48 | return outQueue; 49 | } 50 | 51 | /** 52 | * Returns packet status. 53 | * @return packet status. 54 | */ 55 | public PacketStatus getPacketStatus() { 56 | PacketStatus status = new PacketStatus(); 57 | inQueue.calcPacketStatus(status.inStatus); 58 | outQueue.calcPacketStatus(status.outStatus); 59 | 60 | return status; 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/PacketStatusSub.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | import java.util.List; 20 | 21 | /** 22 | * Stats of some packet information. 23 | * 24 | */ 25 | public class PacketStatusSub { 26 | public long packetCount; 27 | public long packetBytes; 28 | public long packetQueueCount; 29 | public List packets; 30 | 31 | /** 32 | * Returns a count of packet. 33 | * @return count of packet. 34 | */ 35 | public long getPacketCount() { 36 | return packetCount; 37 | } 38 | 39 | /** 40 | * Returns bytes of packet. 41 | * @return bytes of packet. 42 | */ 43 | public long getPacketBytes() { 44 | return packetBytes; 45 | } 46 | 47 | /** 48 | * Returns a count of packet queue. 49 | * @return count of packet queue. 50 | */ 51 | public long getPacketQueueCount() { 52 | return packetQueueCount; 53 | } 54 | 55 | /** 56 | * Returns a list of packets. 57 | * @return list of packets. 58 | */ 59 | public List getPackets() { 60 | return packets; 61 | } 62 | 63 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/PacketsCounter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | import org.msgpack.annotation.Message; 20 | 21 | /** 22 | * Packets Counter. 23 | * 24 | */ 25 | @Message 26 | public class PacketsCounter { 27 | 28 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/packet/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.packet; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/topology/LinkQuery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.topology; 18 | 19 | import org.o3project.odenos.core.component.network.BaseObjectQuery; 20 | 21 | /** 22 | * Prepares a query for Link. 23 | * 24 | */ 25 | public class LinkQuery extends BaseObjectQuery { 26 | 27 | /** 28 | * Constructor. 29 | * @param queriesString query string. 30 | */ 31 | public LinkQuery(String queriesString) { 32 | super(queriesString); 33 | } 34 | 35 | /* 36 | * (non-Javadoc) 37 | * @see org.o3project.odenos.core.component.network.BaseObjectQuery#parse() 38 | */ 39 | @Override 40 | public boolean parse() { 41 | if (!super.parse()) { 42 | return false; 43 | } 44 | if (this.queries.size() != 0) { 45 | return false; 46 | } 47 | if (this.attributes == null) { 48 | return false; 49 | } 50 | return true; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/topology/NodeQuery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.topology; 18 | 19 | import org.o3project.odenos.core.component.network.BaseObjectQuery; 20 | 21 | /** 22 | * Prepares a query for Node. 23 | * 24 | */ 25 | public class NodeQuery extends BaseObjectQuery { 26 | 27 | /** 28 | * Constructor. 29 | * @param queriesString query string. 30 | */ 31 | public NodeQuery(String queriesString) { 32 | super(queriesString); 33 | } 34 | 35 | /* 36 | * (non-Javadoc) 37 | * @see org.o3project.odenos.core.component.network.BaseObjectQuery#parse() 38 | */ 39 | @Override 40 | public boolean parse() { 41 | if (!super.parse()) { 42 | return false; 43 | } 44 | if (this.queries.size() != 0) { 45 | return false; 46 | } 47 | if (this.attributes == null) { 48 | return false; 49 | } 50 | return true; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/topology/PortIF.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.topology; 18 | 19 | import org.o3project.odenos.core.component.NetworkIF; 20 | 21 | public class PortIF { 22 | private NetworkIF network; 23 | private Port port; 24 | 25 | public PortIF(NetworkIF network, Port port) { 26 | this.network = network; 27 | this.port = port; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/topology/PortQuery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.topology; 18 | 19 | import org.o3project.odenos.core.component.network.BaseObjectQuery; 20 | 21 | /** 22 | * Prepares a query for Port. 23 | * 24 | */ 25 | public class PortQuery extends BaseObjectQuery { 26 | 27 | /** 28 | * Constructor. 29 | * @param queriesString query string. 30 | */ 31 | public PortQuery(String queriesString) { 32 | super(queriesString); 33 | } 34 | 35 | /* 36 | * (non-Javadoc) 37 | * @see org.o3project.odenos.core.component.network.BaseObjectQuery#parse() 38 | */ 39 | @Override 40 | public boolean parse() { 41 | if (!super.parse()) { 42 | return false; 43 | } 44 | if (this.queries.size() != 0) { 45 | return false; 46 | } 47 | if (this.attributes == null) { 48 | return false; 49 | } 50 | return true; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/network/topology/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component.network.topology; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/component/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.component; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/logging/message/ILogMessage.java: -------------------------------------------------------------------------------- 1 | package org.o3project.odenos.core.logging.message; 2 | 3 | import org.apache.logging.log4j.message.Message; 4 | 5 | /** 6 | * log4j appenders use these methods to get parameters from a 7 | * logging message DTO. 8 | */ 9 | public interface ILogMessage extends Message { 10 | 11 | /** 12 | * Returns a transaction ID (txid). 13 | * 14 | * @return txid 15 | */ 16 | public String getTxid(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/logging/message/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author arao 6 | * 7 | */ 8 | package org.o3project.odenos.core.logging.message; -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/logging/package-info.java: -------------------------------------------------------------------------------- 1 | package org.o3project.odenos.core.logging; -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/manager/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.manager; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/manager/system/event/ComponentManagerChanged.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.manager.system.event; 18 | 19 | import org.o3project.odenos.remoteobject.ObjectProperty; 20 | import org.o3project.odenos.remoteobject.event.BaseObjectChanged; 21 | 22 | /** 23 | * The event to notify of change in ObjectProperty (in ComponentManager). 24 | * 25 | */ 26 | public class ComponentManagerChanged extends 27 | BaseObjectChanged { 28 | 29 | public static enum Action { 30 | add, delete, update; 31 | } 32 | 33 | public static final String TYPE = "ComponentManagerChanged"; 34 | 35 | /** 36 | * Constructor. 37 | */ 38 | public ComponentManagerChanged() { 39 | super(ObjectProperty.class); 40 | } 41 | 42 | /** 43 | * Constructor. 44 | * @param action actions. "add", "delete", or "update" 45 | * @param prev previous ObjectProperty. 46 | * @param curr current ObjectProperty. 47 | */ 48 | public ComponentManagerChanged( 49 | final String action, 50 | final ObjectProperty prev, 51 | final ObjectProperty curr) { 52 | super(action, prev, curr); 53 | } 54 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/manager/system/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.manager.system.event; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/manager/system/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.manager.system; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.core.util; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/core/util/zookeeper/package-info.java: -------------------------------------------------------------------------------- 1 | package org.o3project.odenos.core.util.zookeeper; 2 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/actor/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.actor; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/event/ObjectPropertyChanged.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.event; 18 | 19 | import org.o3project.odenos.remoteobject.ObjectProperty; 20 | 21 | /** 22 | * The event to notify of change in ObjectProperty. 23 | * 24 | */ 25 | public class ObjectPropertyChanged extends BaseObjectChanged { 26 | 27 | public static enum Action { 28 | add, delete, update; 29 | } 30 | 31 | public static final String TYPE = "ObjectPropertyChanged"; 32 | 33 | /** 34 | * Constructor. 35 | */ 36 | public ObjectPropertyChanged() { 37 | super(ObjectProperty.class); 38 | } 39 | 40 | /** 41 | * Constructor. 42 | * @param action actions. {@link Action} 43 | * @param prev previous ObjectProperty. 44 | * @param curr current ObjectProperty. 45 | */ 46 | public ObjectPropertyChanged( 47 | final String action, 48 | final ObjectProperty prev, 49 | final ObjectProperty curr) { 50 | super(action, prev, curr); 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/event/ObjectSettingsChanged.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.event; 18 | 19 | import org.o3project.odenos.remoteobject.ObjectSettings; 20 | 21 | /** 22 | * The event to notify of change in ObjectSettings. 23 | * 24 | */ 25 | public class ObjectSettingsChanged extends BaseObjectChanged { 26 | 27 | public static enum Action { 28 | add, delete, update; 29 | } 30 | 31 | public static final String TYPE = "ObjectSettingsChanged"; 32 | 33 | /** 34 | * Constructor. 35 | */ 36 | public ObjectSettingsChanged() { 37 | super(ObjectSettings.class); 38 | } 39 | 40 | /** 41 | * Constructor. 42 | * @param action actions. {@link Action} 43 | * @param prev previous ObjectSettings 44 | * @param curr current ObjectSettings 45 | */ 46 | public ObjectSettingsChanged( 47 | final String action, 48 | final ObjectSettings prev, 49 | final ObjectSettings curr) { 50 | super(action, prev, curr); 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.event; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/ComponentTypesHash.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager; 18 | 19 | import org.o3project.odenos.remoteobject.manager.component.ComponentType; 20 | import org.o3project.odenos.remoteobject.message.MessageBodyUnpacker.TemplateHashMap; 21 | 22 | /** 23 | * HashMap for type of component. 24 | * 25 | */ 26 | @SuppressWarnings("serial") 27 | public class ComponentTypesHash extends TemplateHashMap { 28 | 29 | /** 30 | * Constructor. 31 | */ 32 | public ComponentTypesHash() { 33 | super(ComponentType.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/ObjectPropertiesHash.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager; 18 | 19 | import org.o3project.odenos.remoteobject.ObjectProperty; 20 | import org.o3project.odenos.remoteobject.message.MessageBodyUnpacker.TemplateHashMap; 21 | 22 | /** 23 | * HashMap of ObjcetProperty. 24 | * 25 | */ 26 | @SuppressWarnings("serial") 27 | public class ObjectPropertiesHash extends TemplateHashMap { 28 | 29 | /** 30 | * Constructor. 31 | */ 32 | public ObjectPropertiesHash() { 33 | super(ObjectProperty.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/ObjectPropertyList.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager; 18 | 19 | import org.msgpack.MessagePackable; 20 | import org.msgpack.packer.Packer; 21 | import org.msgpack.unpacker.Unpacker; 22 | import org.o3project.odenos.remoteobject.ObjectProperty; 23 | 24 | import java.io.IOException; 25 | import java.util.ArrayList; 26 | 27 | /** 28 | * ArrayList of ObjcetProperty. 29 | * 30 | */ 31 | @SuppressWarnings("serial") 32 | public class ObjectPropertyList extends ArrayList implements 33 | MessagePackable { 34 | 35 | @Override 36 | public void writeTo(Packer pk) throws IOException { 37 | pk.writeArrayBegin(this.size()); 38 | for (ObjectProperty prop : this) { 39 | pk.write(prop); 40 | } 41 | pk.writeArrayEnd(); 42 | } 43 | 44 | @Override 45 | public void readFrom(Unpacker unpk) throws IOException { 46 | int arraySize = unpk.readArrayBegin(); 47 | for (int i = 0; i < arraySize; i++) { 48 | ObjectProperty obj = unpk.read(ObjectProperty.class); 49 | add(obj); 50 | } 51 | unpk.readArrayEnd(); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/component/event/ComponentChanged.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager.component.event; 18 | 19 | import org.o3project.odenos.remoteobject.ObjectProperty; 20 | import org.o3project.odenos.remoteobject.event.BaseObjectChanged; 21 | 22 | /** 23 | * The event to notify of change in the Component. 24 | * 25 | */ 26 | public class ComponentChanged extends BaseObjectChanged { 27 | 28 | public static enum Action { 29 | add, delete, update; 30 | } 31 | 32 | public static final String TYPE = "ComponentChanged"; 33 | 34 | /** 35 | * Constructor. 36 | */ 37 | public ComponentChanged() { 38 | super(ObjectProperty.class); 39 | } 40 | 41 | /** 42 | * Constructor. 43 | * @param action string of action. "add", "delete", or "update" 44 | * @param prev previous object. 45 | * @param curr current object. 46 | */ 47 | public ComponentChanged( 48 | final String action, 49 | final ObjectProperty prev, 50 | final ObjectProperty curr) { 51 | super(action, prev, curr); 52 | } 53 | } -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/component/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager.component.event; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/component/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager.component; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/manager/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.manager; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/message/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.message; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/messagingclient/IMessageListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.messagingclient; 18 | 19 | public interface IMessageListener { 20 | 21 | /** 22 | * A message has just been received from pubsub server. 23 | * 24 | * @param channel channel (aka "topic") 25 | * @param message message in the form of byte array 26 | */ 27 | public void onMessage(String channel, byte[] message); 28 | 29 | /** 30 | * A message has just been received from pubsub server. 31 | * 32 | * @param pattern pattern 33 | * @param channel channel (aka "topic") 34 | * @param message message in the form of byte array 35 | */ 36 | public void onPmessage(String pattern, String channel, byte[] message); 37 | 38 | /** 39 | * Connectivity to pubsub server has just been resumed. 40 | */ 41 | public void onReconnected(); 42 | 43 | /** 44 | * Connectivity to pubsub server has just been lost. 45 | */ 46 | public void onDisconnected(); 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/messagingclient/IMultiMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.messagingclient; 18 | 19 | /** 20 | * This interface is for future enhancements. 21 | * 22 | *

23 | * Potential uses: 24 | *

    25 | *
  • Brokerless pubsub for reliable pubsub services. 26 | *
27 | * 28 | */ 29 | public interface IMultiMap { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/messagingclient/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.messagingclient; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/messagingclient/redis/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.messagingclient.redis; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/rest/Attributes.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.rest; 18 | 19 | /** 20 | * Attributes class. 21 | * 22 | */ 23 | public class Attributes { 24 | 25 | public static final String REST_TRANSLATOR = "RESTTranslator"; 26 | 27 | /** 28 | * A key name of Event Subscription Table for HttpSession's attribute. 29 | * 30 | *
31 |    * {
32 |    *   <object_id>: [<event_type>, ...],
33 |    *   ...
34 |    * }
35 |    * 
36 | */ 37 | public static final String SUBSCRIPTION_TABLE = "Subscription Table"; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/rest/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.rest; 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/org/o3project/odenos/remoteobject/rest/servlet/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 NEC Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.o3project.odenos.remoteobject.rest.servlet; 18 | 19 | -------------------------------------------------------------------------------- /src/main/python/org/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/driver.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.logic import Logic 18 | 19 | 20 | class Driver(Logic): 21 | CONNECTION_TYPES = "original:1" 22 | 23 | def __init__(self, object_id, dispatcher): 24 | self._super_type = Driver.__name__ 25 | super(Driver, self).__init__(object_id, dispatcher) 26 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/basic/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/basic/flow_action.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | 18 | class FlowAction(object): 19 | # property key 20 | TYPE = "type" 21 | 22 | def __init__(self, type_): 23 | self._body = { 24 | self.TYPE: type_ 25 | } 26 | 27 | @property 28 | def type(self): 29 | return self._body[self.TYPE] 30 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/basic/flow_action_output.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class FlowActionOutput(FlowAction): 23 | # property key 24 | OUTPUT = "output" 25 | 26 | def __init__(self, type_, output): 27 | super(FlowActionOutput, self).__init__(type_) 28 | self._body[self.OUTPUT] = output 29 | 30 | @property 31 | def output(self): 32 | return self._body[self.OUTPUT] 33 | 34 | @classmethod 35 | def create_from_packed(cls, packed): 36 | return cls(packed[cls.TYPE], packed[cls.OUTPUT]) 37 | 38 | def packed_object(self): 39 | return self._body 40 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/ofp_flow_action_copy_ttl_In.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class OFPFlowActionCopyTtlIn(FlowAction): 23 | 24 | def __init__(self, type_): 25 | super(OFPFlowActionCopyTtlIn, self).__init__(type_) 26 | 27 | @classmethod 28 | def create_from_packed(cls, packed): 29 | return cls(packed[cls.TYPE]) 30 | 31 | def packed_object(self): 32 | return self._body 33 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/ofp_flow_action_copy_ttl_out.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class OFPFlowActionCopyTtlOut(FlowAction): 23 | 24 | def __init__(self, type_): 25 | super(OFPFlowActionCopyTtlOut, self).__init__(type_) 26 | 27 | @classmethod 28 | def create_from_packed(cls, packed): 29 | return cls(packed[cls.TYPE]) 30 | 31 | def packed_object(self): 32 | return self._body 33 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/ofp_flow_action_dec_ip_ttl.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class OFPFlowActionDecIpTtl(FlowAction): 23 | 24 | def __init__(self, type_): 25 | super(OFPFlowActionDecIpTtl, self).__init__(type_) 26 | 27 | @classmethod 28 | def create_from_packed(cls, packed): 29 | return cls(packed[cls.TYPE]) 30 | 31 | def packed_object(self): 32 | return self._body 33 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/ofp_flow_action_dec_mpls_ttl.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class OFPFlowActionDecMplsTtl(FlowAction): 23 | 24 | def __init__(self, type_): 25 | super(OFPFlowActionDecMplsTtl, self).__init__(type_) 26 | 27 | @classmethod 28 | def create_from_packed(cls, packed): 29 | return cls(packed[cls.TYPE]) 30 | 31 | def packed_object(self): 32 | return self._body 33 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/ofp_flow_action_pop_pbb.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class OFPFlowActionPopPbb(FlowAction): 23 | 24 | def __init__(self, type_): 25 | super(OFPFlowActionPopPbb, self).__init__(type_) 26 | 27 | @classmethod 28 | def create_from_packed(cls, packed): 29 | return cls(packed[cls.TYPE]) 30 | 31 | def packed_object(self): 32 | return self._body 33 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/flow/ofpflow/ofp_flow_action_pop_vlan.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action import ( 18 | FlowAction 19 | ) 20 | 21 | 22 | class OFPFlowActionPopVlan(FlowAction): 23 | 24 | def __init__(self, type_): 25 | super(OFPFlowActionPopVlan, self).__init__(type_) 26 | 27 | @classmethod 28 | def create_from_packed(cls, packed): 29 | return cls(packed[cls.TYPE]) 30 | 31 | def packed_object(self): 32 | return self._body 33 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/packet/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/packet/in_packet_added.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | 18 | class InPacketAdded(object): 19 | TYPE = "InPacketAdded" 20 | 21 | # property key 22 | ID = "id" 23 | 24 | def __init__(self, id_): 25 | self.__id = id_ 26 | 27 | @property 28 | def id(self): 29 | return self.__id 30 | 31 | @classmethod 32 | def create_from_packed(cls, packed): 33 | return cls(packed[cls.ID]) 34 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/packet/out_packet_added.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | 18 | class OutPacketAdded(object): 19 | TYPE = "OutPacketAdded" 20 | 21 | # property key 22 | ID = "id" 23 | 24 | def __init__(self, id_): 25 | self.__id = id_ 26 | 27 | @property 28 | def id(self): 29 | return self.__id 30 | 31 | @classmethod 32 | def create_from_packed(cls, packed): 33 | return cls(packed[cls.ID]) 34 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/packet/packet.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | 18 | class Packet(object): 19 | # property key 20 | PACKET_ID = "packet_id" 21 | TYPE = "type" 22 | ATTRIBUTES = "attributes" 23 | 24 | def __init__(self, id_, type_, attributes): 25 | self._body = { 26 | self.PACKET_ID: id_, 27 | self.TYPE: type_, 28 | self.ATTRIBUTES: attributes 29 | } 30 | 31 | @property 32 | def packet_id(self): 33 | return self._body[self.PACKET_ID] 34 | 35 | @property 36 | def type(self): 37 | return self._body[self.TYPE] 38 | 39 | @property 40 | def attributes(self): 41 | return self._body[self.ATTRIBUTES] 42 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/component/network/topology/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/manager/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/core/util/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/event/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/manager/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/manager/component/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/manager/component/event/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/manager/system/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/manager/system/event/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/message/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/message/event.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | 18 | class Event: 19 | 20 | def __init__(self, publisher_id, event_type, event_body): 21 | self.publisher_id = publisher_id 22 | self.event_type = event_type 23 | self.txid = '*' 24 | self.body = event_body 25 | 26 | @classmethod 27 | def create_from_packed(cls, packed): 28 | packed.pop(2) 29 | return cls(*packed) 30 | 31 | def packed_object(self): 32 | body = self.body 33 | if hasattr(body, "packed_object"): 34 | body = self.body.packed_object() 35 | return (self.publisher_id, self.event_type, self.txid, body) 36 | -------------------------------------------------------------------------------- /src/main/python/org/o3project/odenos/remoteobject/transport/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/main/ruby/.rubocop.yml: -------------------------------------------------------------------------------- 1 | inherit_from: .rubocop_todo.yml 2 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | $LOAD_PATH << File.expand_path(File.dirname(__FILE__)) 17 | 18 | require 'odenos/component' 19 | require 'odenos/remoteobject' 20 | require 'odenos/core' 21 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/core/component/component' 17 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component/driver.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/component/driver/driver' 17 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component/driver/driver.rb: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | require 'odenos/core/component' 18 | require 'odenos/remoteobject' 19 | require 'odenos/core/util' 20 | require 'odenos/core/component/logic' 21 | 22 | module Odenos 23 | module Component 24 | module Driver 25 | class Driver < Odenos::Component::Logic 26 | include Odenos::Util 27 | def initialize(remote_object_id, dispatcher) 28 | debug 'Driver#initialize' 29 | @super_type = 'Driver' 30 | @connection_types = 'original:1' 31 | super 32 | end 33 | end 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component/driver/of_driver.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/component/driver/of_driver/monkey_patch' 17 | require 'odenos/component/driver/of_driver/transactions' 18 | require 'odenos/component/driver/of_driver/flow_entry' 19 | require 'odenos/component/driver/of_driver/openflow_controller' 20 | require 'odenos/component/driver/of_driver/request_errors' 21 | require 'odenos/component/driver/of_driver/flow_map' 22 | require 'odenos/component/driver/of_driver/openflow_driver' 23 | require 'odenos/component/driver/of_driver/request_helpers' 24 | require 'odenos/component/driver/of_driver/topology_map' 25 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component/driver/of_driver/ruby_topology.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/component/driver/of_driver/ruby_topology/link' 17 | require 'odenos/component/driver/of_driver/ruby_topology/topology-controller' 18 | require 'odenos/component/driver/of_driver/ruby_topology/topology' 19 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component/driver/of_driver/ruby_topology/trema-extensions/port.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/component/driver/of_driver/ruby_topology/trema-extensions/port/predicates' 17 | 18 | module Trema 19 | class Port 20 | include TremaExtensions::Port 21 | end 22 | end 23 | 24 | ### Local variables: 25 | ### mode: Ruby 26 | ### coding: utf-8-unix 27 | ### indent-tabs-mode: nil 28 | ### End: 29 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/component/driver/of_driver/ruby_topology/trema-extensions/port/predicates.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'trema' 17 | 18 | module TremaExtensions 19 | module Port 20 | def local? 21 | number == Trema::Controller::OFPP_LOCAL 22 | end 23 | end 24 | end 25 | 26 | ### Local variables: 27 | ### mode: Ruby 28 | ### coding: utf-8-unix 29 | ### indent-tabs-mode: nil 30 | ### End: 31 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/core.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/core/component' 17 | require 'odenos/core/util' 18 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/core/component.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/core/component/component' 17 | require 'odenos/core/component/logic' 18 | require 'odenos/core/component/network_interface' 19 | require 'odenos/core/component/network_component_entity' 20 | require 'odenos/core/component/system_manager_interface' 21 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/core/odenos.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | $LOAD_PATH.unshift File.expand_path(File.join File.dirname(__FILE__), '../../') 17 | 18 | require 'rubygems' 19 | require 'odenos/component/driver/of_driver' 20 | require 'odenos/component/driver/of_driver/openflow_controller' 21 | require 'odenos/remoteobject/manager/of_component_manager' 22 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/core/util.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/core/util/array_accessor' 17 | require 'odenos/core/util/logger' 18 | require 'odenos/core/util/object_array' 19 | require 'odenos/core/util/request_parser' 20 | require 'odenos/core/util/hash_accessor' 21 | require 'odenos/core/util/meta_helper' 22 | require 'odenos/core/util/object_hash' 23 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/core/util/meta_helper.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | module Odenos 17 | module Util 18 | module MetaHelper 19 | def self.class_from_string(str) 20 | str.split('::').reduce(Object) do |mod, class_name| 21 | mod.const_get(class_name) 22 | end 23 | end 24 | 25 | def self.parent_module(cls) 26 | mod_path = cls.to_s.split('::') 27 | mod_path.pop 28 | mod_path.reduce(Object) do |mod, class_name| 29 | mod.const_get(class_name) 30 | end 31 | end 32 | 33 | def self.simple_class(cls) 34 | cls.to_s.split('::').last 35 | end 36 | end 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/remoteobject.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/remoteobject/component_connection' 17 | require 'odenos/remoteobject/event' 18 | require 'odenos/remoteobject/remote_object' 19 | require 'odenos/remoteobject/response' 20 | require 'odenos/remoteobject/component_connection_logic_and_network' 21 | require 'odenos/remoteobject/message_dispatcher' 22 | require 'odenos/remoteobject/request' 23 | require 'odenos/remoteobject/transport' 24 | require 'odenos/remoteobject/manager' 25 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/remoteobject/component_connection.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/core/util' 17 | 18 | module Odenos 19 | module Core 20 | class ComponentConnection < Odenos::Util::TypedObjectHash 21 | hash_accessor :object, :connection_type, :state 22 | 23 | def component_connection_id 24 | @object[:id] 25 | end 26 | 27 | def component_connection_id=(v) 28 | @object[:id] = v 29 | end 30 | 31 | module State 32 | INITIALIZING = 'initializing' 33 | RUNNING = 'running' 34 | FINALIZING = 'finalizing' 35 | ERROR = 'error' 36 | NONE = 'none' 37 | end 38 | 39 | def initialize(initial_hash = {}) 40 | super(initial_hash) 41 | end 42 | end 43 | end 44 | end 45 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/remoteobject/component_connection_logic_and_network.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/remoteobject/component_connection' 17 | 18 | module Odenos 19 | module Core 20 | class LogicAndNetwork < Odenos::Core::ComponentConnection 21 | hash_accessor :object, :logic_id, :network_id 22 | 23 | def initialize(initial_hash = {}) 24 | super(initial_hash) 25 | end 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /src/main/ruby/org/o3project/odenos/remoteobject/manager.rb: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | require 'odenos/remoteobject/manager/component_manager' 17 | -------------------------------------------------------------------------------- /src/test/python/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/flow/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/flow/basic/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/flow/basic/test_flow_action.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | from org.o3project.odenos.core.component.network.flow.basic.flow_action\ 18 | import FlowAction 19 | import unittest 20 | 21 | 22 | class FlowActionTest(unittest.TestCase): 23 | Type = "FlowActionOutput" 24 | 25 | def setUp(self): 26 | self.target = FlowAction(self.Type) 27 | 28 | def tearDown(self): 29 | self.target = None 30 | 31 | def test_constructor(self): 32 | self.assertEqual(self.target._body[self.target.TYPE], self.Type) 33 | 34 | def test_type(self): 35 | self.assertEqual(self.target.type, self.Type) 36 | 37 | if __name__ == '__main__': 38 | unittest.main() -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/flow/ofpflow/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/packet/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/component/network/topology/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/manager/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/core/util/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/event/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/manager/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/manager/component/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2015 NEC Corporation. # 3 | # # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); # 5 | # you may not use this file except in compliance with the License. # 6 | # You may obtain a copy of the License at # 7 | # # 8 | # http://www.apache.org/licenses/LICENSE-2.0 # 9 | # # 10 | # Unless required by applicable law or agreed to in writing, software # 11 | # distributed under the License is distributed on an "AS IS" BASIS, # 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 13 | # See the License for the specific language governing permissions and # 14 | # limitations under the License. # 15 | 16 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/manager/component/event/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/manager/system/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/manager/system/event/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/message/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/python/org/o3project/odenos/remoteobject/transport/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | 3 | # Copyright 2015 NEC Corporation. # 4 | # # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); # 6 | # you may not use this file except in compliance with the License. # 7 | # You may obtain a copy of the License at # 8 | # # 9 | # http://www.apache.org/licenses/LICENSE-2.0 # 10 | # # 11 | # Unless required by applicable law or agreed to in writing, software # 12 | # distributed under the License is distributed on an "AS IS" BASIS, # 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 14 | # See the License for the specific language governing permissions and # 15 | # limitations under the License. # 16 | 17 | -------------------------------------------------------------------------------- /src/test/resources/odenos_messaging.conf: -------------------------------------------------------------------------------- 1 | # 2 | # MessageDispatcher parameters tuning 3 | # 4 | 5 | pubsub.client=org.o3project.odenos.remoteobject.messagingclient.redis.Client 6 | 7 | # SUBSCRIBER QUEUE SIZE 8 | subscriber.queue.size=911 9 | # SUBSCRIBER POOL SIZE (i.e., maximumPoolSize) 10 | subscriber.pool.size=110 11 | 12 | # PUBLISHER QUEUE SIZE 13 | publisher.queue.size=1234 14 | 15 | # MAX REMOTE REQUEST SIMULTANEOUS TRANSACTIONS 16 | remote.transactions.max=4321 17 | # REMOTE REQUEST TIMEOUT (in sec) 18 | remote.transactions.timeout=99 19 | --------------------------------------------------------------------------------