Commit graph

363 commits

Author SHA1 Message Date
Blake Harnden
5cc4d92760 daemon: removed nem map from individual emane networks, all nems are stored and generated from the emane manager 2020-07-05 21:29:03 -07:00
Blake Harnden
3477e84e9d core-cli: added wlan set/get config, fixed session option for node/link interactions 2020-07-01 09:30:05 -07:00
Blake Harnden
f22edd1d25 grpc: fixed accidental breakage for get_session ptp links 2020-06-30 16:16:58 -07:00
Blake Harnden
beaebcfa24 grpc: added node_id and net2_id data to interface protos to allow querying a node to provide the node and networks an interface is associated with 2020-06-30 12:34:20 -07:00
Blake Harnden
ab17cb1053 grpc: grpc get_session will no longer return peer to peer nodes, they should be invisible to users, updated core-cli to print human readable links better 2020-06-30 09:50:28 -07:00
Blake Harnden
69721dc129 grpc: updated client edit_node to have source as last parameter to be consistent with source placement on all other functions 2020-06-30 09:32:56 -07:00
Blake Harnden
c8daeb02d8 grpc: fixed issue with not catching error in delete_node from broadcast changes 2020-06-26 22:29:17 -07:00
Blake Harnden
5eae67aac5 grpc/pygui: updated add_node source support, updated pygui to handle add_node events 2020-06-26 22:11:36 -07:00
Blake Harnden
e79645013b grpc/pygui: updated delete_node to use the source, updated pygui to support delete node events 2020-06-26 21:45:29 -07:00
Blake Harnden
f4a3fe6b7b grpc/pygui: edit_link will now broadcast link changes, pygui now handles receiving this data 2020-06-26 15:14:30 -07:00
Blake Harnden
f921fa45c5 grpc: updated client methods to allow passing source for add_link/delete_link, None by default 2020-06-26 14:44:13 -07:00
Blake Harnden
aebbff8c22 grpc/pygui: shifted source field in node events to base event message to apply to all events, updated add_link/delete_link rpc calls to broadcast events, updated pygui to handle these events 2020-06-26 14:39:12 -07:00
Blake Harnden
7215f852b8 grpc: added check for emane pathloss when nem id is None and throw an error 2020-06-23 13:34:40 -07:00
Blake Harnden
0356f3b19c pygui: added type hinting to everything under base core.gui 2020-06-19 22:08:24 -07:00
Blake Harnden
1829a8e2f8 daemon: refactored CoreInterface.mac from a string to a netaddr.EUI object, providing more functionality 2020-06-19 15:21:45 -07:00
Blake Harnden
d88f3a2535 daemon: refactored CoreInterface.addrlist storing strings into CoreInterface.ip4s and ip6s, stored as netaddr.IPNetwork objects 2020-06-19 08:50:36 -07:00
Blake Harnden
ca2b1c9e4c daemon: refactored all_link_data to links 2020-06-18 21:33:28 -07:00
Blake Harnden
ecc3eb1c89 daemon: refactored NodeData to reference a node instead of replicating fields as an intermediate passthrough, removed data() functions from nodes due to this change 2020-06-18 09:06:31 -07:00
Blake Harnden
3d7d775bfb daemon: removed unused variables from LinkOptions 2020-06-18 00:15:44 -07:00
Blake Harnden
b92ff0586a daemon: renamed NodeData.node_type to type, removed NodeData/NodeOptions fields that were not being used for clarity 2020-06-17 22:43:13 -07:00
Blake Harnden
f4671ab2b8 daemon: refactored usages of hwaddr to mac and be consistent everywhere 2020-06-16 23:25:26 -07:00
Blake Harnden
a1734c3bc0 grpc: updated Interface proto fields to be more consistent with code, ip4mask to ip4_mask, ip6mask to ip6_mask, netid to net_id, flowid to flow_id 2020-06-16 22:05:36 -07:00
Blake Harnden
351b99aae0 daemon: renamed LinkData.link_type to LinkData.type and removed LinkOptions.type to remove redundant information, link_type param added to session.add_link, delete_link, and update_link functions 2020-06-16 21:53:12 -07:00
Blake Harnden
a29a7a5582 refactored LinkOptions to be used within LinkData, instead of duplicating data, removed session from LinkOptions and LinkData 2020-06-16 14:18:19 -07:00
Blake Harnden
eeca33e722 combined core.emulator.data and core.emulator.emudata, updated LinkData to leverage InterfaceData, instead of repeated interface fields, removed session from LinkData and LinkOptions 2020-06-16 12:50:24 -07:00
Blake Harnden
0725199d6d initial sweeping changes to call all usages of various interface related variables and functions (netif, interface, if, ifc, etc) to use a consistent name iface 2020-06-16 09:30:16 -07:00
Blake Harnden
91f1f7f004 daemon: added global type hinting to core.emulator.session and core.api.grpc.server 2020-06-13 22:01:07 -07:00
Blake Harnden
5df2e36083 daemon: fixed session.add_event parameter to be specific to node_id 2020-06-13 21:48:51 -07:00
Blake Harnden
83f66d33f7 merged latest from develop 2020-06-13 18:07:21 -07:00
Blake Harnden
23d957679e daemon: Session cleanup, removed unused functions, used context managers for writing files, made variables used externally no longer private 2020-06-12 20:22:51 -07:00
Blake Harnden
178d12b327 daemon: updated variables for InterfaceData to be denote data to make it more clear 2020-06-12 17:32:55 -07:00
Blake Harnden
876699e8ef variable/grpc cleanup to rename everything using spelt out numbers instead of actual numbers 2020-06-12 16:52:41 -07:00
Blake Harnden
76305f7257 converted usages of per to loss 2020-06-12 12:49:53 -07:00
Blake Harnden
cfaa9397ad daemon: added class variable type hinting to core.api.grpc 2020-06-12 08:34:02 -07:00
Blake Harnden
c64094ac1c daemon: updated session.delete_link to have the interface ids default to none, since only one may need to be provided, updated link tests to account for more cases 2020-06-11 19:01:38 -07:00
Blake Harnden
ccf2646c00 daemon: refactored add_link,update_link,delete_link to have more specific logic, refactored CoreNodeBase to have newnetif and for it to return the interface created 2020-06-11 13:59:29 -07:00
Blake Harnden
4cc9d3debf added pydoc for grpc client InterfaceHelper 2020-06-09 18:59:14 -07:00
Blake Harnden
d71d84fae7 daemon: updated IpPrefixes and InterfaceHelper to remove duplicate code 2020-06-09 18:40:50 -07:00
Blake Harnden
21da670698 daemon: renamed link_options to options in both session.add_link and session.update_link 2020-06-09 13:46:26 -07:00
Blake Harnden
7d2034df71 daemon: updated NodeOptions to leverage dataclass 2020-06-09 10:45:18 -07:00
Blake Harnden
b5e53e573a daemon: LinkOptions now leverage dataclass and has type hinting, improve test_gui type hinting 2020-06-09 09:12:31 -07:00
Blake Harnden
18044f9474 daemon: cleaned up InterfaceData class, it now leverages dataclass, removed extra bloat and no longer requires parameters as they are optional 2020-06-09 08:48:18 -07:00
Blake Harnden
bf1bc511e2 removed configuration option for number of for corehandler threads as it cannot properly deal with anything more than 1, updated man pages to current 6.4 versions for now 2020-06-05 14:34:19 -07:00
Blake Harnden
75d5bced9c grpc doc improvements, grpc examples additions, small tweak to grpc client for setting emane models not requiring a config when using default configuration 2020-06-05 11:20:23 -07:00
Blake Harnden
9a5fc94ba2 improvements for grpc docs and upates to grpc client pydocs 2020-06-05 08:44:19 -07:00
Blake Harnden
7b2dd59c81 grpc: node_command improvements to include return code and options for wait and shell when running commands 2020-06-04 13:48:25 -07:00
Blake Harnden
29d09c8397 updates to move_nodes and emane_pathlosses type hinting and naming 2020-06-03 14:58:29 -07:00
Blake Harnden
3b0ca1638c grpc: implemened initial support for streaming emane pathloss events 2020-06-03 14:35:17 -07:00
Blake Harnden
1884103cb4 grpc: added call to stream node movements using geo/xy and tests to validate usage, fixed potential exception when not setting session geo ref and using conversions 2020-06-03 08:47:36 -07:00
Blake Harnden
c6a06baf29 add geo to grpc calls getting node values, updated emane position hook to set lon/lat/alt values 2020-05-30 14:24:38 -07:00
Blake Harnden
4ab415e37d grpc: updated node events to contain geo data when present 2020-05-28 16:12:11 -07:00
Blake Harnden
70bd837f02 Merge branch 'enhancement/type-checking-node-retrieval' into develop 2020-05-21 07:39:15 -07:00
Blake Harnden
bcd9e4ceb1 fixed session.add_hook to not require a source, since it was not typically used an None was being passed, cleaned up some bad type hinting in related to session.py 2020-05-21 00:20:05 -07:00
Blake Harnden
d5016bf44f removed pointless wlan instance check in grpc wlan_link api since it is already being done when retrieving the wlan node 2020-05-20 22:36:04 -07:00
Blake Harnden
c07766e1eb updated session.add_node to use better type hinting and force usage of classes directly, instead of indirectly through NodeTypes 2020-05-20 22:14:03 -07:00
Blake Harnden
d5254e6a91 changes to support better type checking for retrieving an arbitrary node from a session, get_node now requires an expected class that the node would be an instance of, if the returned node is not an instance a CoreError is thrown, this also helps editors pick up expected types to account for variable/function usage better as well 2020-05-20 14:44:34 -07:00
Blake Harnden
0a792f7b3f updates to grpc rpc wlan link, added node class type checking and hinting in grpc server code 2020-05-19 22:36:10 -07:00
Blake Harnden
d14056393b added grpc call to allow direct control of nodes connected through wlan to be linked or not 2020-05-19 16:46:44 -07:00
Blake Harnden
95d3a6ca8c updates to force CoreCommandError to contain string values for stderr and stdout, couple bugfixes in handling bad commands when using execute commands from tlv based api or coresendmsg, also updates to coresendmsg to display everything in lowercase to mimic previous look and feel, however coresendmg will now work regardless of casing to avoid breaking things again 2020-05-13 12:01:28 -07:00
Blake Harnden
0999fabb14 pygui revamped progress bar functionality into app task calls to simplify and commonize the functionality, handle and display task exceptions 2020-05-03 10:41:36 -07:00
Blake Harnden
686026d9f2 improved netaddr mac dialect usage to leverage constructor parameter 2020-05-01 17:40:53 -07:00
Blake Harnden
4a7abe71e4 removed unwanted grpc client stream log 2020-05-01 13:42:15 -07:00
Blake Harnden
f521fe4141 fixed issue where actually sending interface names to tcl gui would cause issue, no longer sending link interfave names 2020-04-22 00:20:18 -07:00
Blake Harnden
efa5506c80 fix issue when tcp handlers has no other clients for a session 2020-04-20 15:56:25 -07:00
Blake Harnden
5dcf2f45c5 updates to allow building python docs again, also added checks for requirements to build the python docs 2020-04-16 11:32:50 -07:00
Blake Harnden
7e7bf8c7b7 fix p2p upstream link data not using enum, consolidated grpc logic for getting link protobufs 2020-04-15 16:36:03 -07:00
Blake Harnden
e2490dee4a modified wireless links to obtain colors based on connected network from the session, LinkData will no provide a color itself 2020-04-15 15:41:37 -07:00
Blake Harnden
23562cd294 updates for working label drawing on wireless links in pygui, will display sinr values on emane links 2020-04-15 12:41:09 -07:00
Blake Harnden
3c4a908fd5 updates to support multiple links between nodes in pygui, initially handling multiple wireless links 2020-04-14 15:51:28 -07:00
Blake Harnden
0aa7c6f1f2 cleaned up how grpc creates node protobuf data for grpc interfaces, cleaned up route monitor script slighly 2020-04-06 16:09:01 -07:00
Blake Harnden
0742c08b59 added session/node dir to grpc responses and node channels, updating route monitor to use grpc for getting session/node information 2020-04-06 15:46:47 -07:00
Blake Harnden
d0c4d4b935 fixed issue where the udp handler would no broadcast node/link changes from coresendmsg 2020-04-02 21:14:08 -07:00
Blake Harnden
72189a5c28 fix configdata issue, since most corehandler code did not account for using flags directly 2020-04-01 10:56:09 -07:00
Blake Harnden
091131fe5c tweak to session.exception to default node_id to None when not provided 2020-03-31 16:39:27 -07:00
Blake Harnden
3165bddc92 updates to allow emane to throw an exception when emane python bindings are not present and emane is attempted to be ran 2020-03-31 16:21:04 -07:00
Blake Harnden
8186c62b19 switched core emulator data files from using namedtuples to backported dataclasses 2020-03-31 09:41:29 -07:00
Blake Harnden
6a41012857 updates to break up core.proto into separate logical files 2020-03-22 22:57:50 -07:00
Blake Harnden
14e708681c small tweak to corehandlers logic 2020-03-22 21:08:12 -07:00
Blake Harnden
33bcc24d88 cleaned up broadcast_node to use nodes directly 2020-03-22 16:38:15 -07:00
Blake Harnden
39499a4ab4 moved ConfigShim to being under tlv, updated RegisterTlvs to use enums directly in non tlv code 2020-03-22 14:59:42 -07:00
Blake Harnden
7a5a0f34ea broke out tlv specific enums into their own module 2020-03-22 14:09:38 -07:00
Blake Harnden
c264634b5f merged latest from develop 2020-03-22 13:52:26 -07:00
Blake Harnden
3f17706c28 small cleanup for interface position hooks, updates to support using a provided altitude when sending emane events based on position hooks 2020-03-19 16:40:43 -07:00
Blake Harnden
a7790185d4 updates to use message flags enum directly 2020-03-12 23:12:17 -07:00
Blake Harnden
5cdfd8d8b9 updated NodeTypes to be used directly 2020-03-10 23:11:37 -07:00
Blake Harnden
f277e96c9a revert logging back to info, removed Rj45Models enum as it was not being used, updated linktypes enum to be used directly 2020-03-10 22:48:05 -07:00
Blake Harnden
1e8d1ecd9f changes for sessions to use EventTypes for state/hooks directly 2020-03-06 22:35:23 -08:00
Blake Harnden
c4234d33f0 updates to allow new gui to recreate session to continue where it left off 2020-03-04 20:09:56 -08:00
bharnden
7c8e115bc7
Merge pull request #383 from coreemu/coretk-enhance/disable-runtime-editing-custom-service-config
Coretk enhance/disable runtime editing custom service config
2020-03-03 12:54:47 -08:00
Blake Harnden
ff3b20a962 modifications to support optional geo position edits for nodes and to account for geo updates to sdt 2020-03-02 10:01:36 -08:00
Blake Harnden
9535d40b70 added grpc call to execute python script, to replicate prior gui functionality 2020-02-28 12:28:41 -08:00
Blake Harnden
67da3e5c22 changes to move sdt calls internal to core interactions, which allows it to work with both guis 2020-02-27 21:39:18 -08:00
Huy Pham
f8a3f0a2d4 Merge branch 'develop' into coretk-enhance/disable-runtime-editing-custom-service-config 2020-02-27 11:00:09 -08:00
Huy Pham
c36f060d44 fixed wrong variable used for configuring service in grpcutils, add/delete directories for node's service configuration, clean up some old code 2020-02-26 15:43:31 -08:00
Blake Harnden
20e3fbc7d9 modify execute python script handling for old gui to wait for script to complete before looking for new session to avoid possible race conditions 2020-02-26 15:39:37 -08:00
Blake Harnden
e1c9155ba7 simplify thread daemon usage 2020-02-26 15:29:19 -08:00
Blake Harnden
909f231c13 Merge branch 'develop' into enhancement/xy-to-lonlat 2020-02-25 13:14:34 -08:00
Blake Harnden
177f27372e fixed wrong variable used for configuring service in grpcutils 2020-02-25 11:30:26 -08:00
Blake Harnden
f1a7c10e91 Merge branch 'develop' into enhancement/xy-to-lonlat 2020-02-21 16:43:18 -08:00
Blake Harnden
a3c7ed8012 update emaneevent logging to debug, fixed emaneevent thread stop logic, fixed node data conversion for lon,lat,alt values 2020-02-21 16:42:23 -08:00
Blake Harnden
95c32ddd28 initial geo location conversion using pyproj 2020-02-21 15:54:55 -08:00
Blake Harnden
1375af51cb added grpc to get emane event channel being used 2020-02-14 16:22:28 -08:00
Blake Harnden
ebafa228ff added files/directories to grpc set_node_service 2020-02-14 13:40:10 -08:00
Blake Harnden
71aeb98bb9 updates to grpc add_link to return created interface data 2020-02-14 13:18:05 -08:00
Blake Harnden
6020496b6f fixed sdt issue core gui, fixed sdt message sending for python3 2020-02-05 14:40:37 -08:00
Blake Harnden
45fb32c834 renamed config service dependency finder method to startup_paths, added pydocs to config service related methods 2020-01-27 11:44:00 -08:00
Blake Harnden
d7d0a55fd2 updates to support saving config services to xml, loading config services from xml, retrieving config services from coretk when joining a session 2020-01-21 17:32:12 -08:00
Blake Harnden
0ea2f73a80 added modes to config services that allows them to decide sets of configurations 2020-01-21 14:00:55 -08:00
Blake Harnden
80a4955bd4 updated coretk to working order for configuring config services from coretk 2020-01-21 11:58:43 -08:00
Blake Harnden
da107cc1d9 updates to config services dialogs in coretk, initial working state for running config services from the coretk gui 2020-01-21 10:35:46 -08:00
Blake Harnden
83e7853821 fixed protobuf generation to avoid grpc generation for files with no definitions, added service config tab display to coretk 2020-01-20 16:25:56 -08:00
Blake Harnden
a4f3abf27c updated config service grpc to return default templates and config, added logic to check for local custom templates 2020-01-20 15:54:47 -08:00
Blake Harnden
7b5df11dc7 added files to config services, added default logic for creating files from templates, added new method to provide extra data to templates, updated gui to display templates raw 2020-01-20 15:02:04 -08:00
Blake Harnden
0e6d1535db added grpc to get current config services for a node 2020-01-19 19:27:57 -08:00
Blake Harnden
0af6a7a620 improved gitignore for generated proto files, added new initial separate config service proto, incorporated into grpc api 2020-01-18 13:52:15 -08:00
Blake Harnden
f4ddf310a8 removed rtype and param typing from doc strings to help avoid maintaining duplicate information provided by type hints 2020-01-16 11:00:57 -08:00
Blake Harnden
dcabd8d6f8 updates to add type hinting to uses of Callable 2020-01-15 11:56:23 -08:00
Blake Harnden
dafd5dff9f merged latest from develop 2020-01-14 22:19:49 -08:00
Blake Harnden
d4bce0d25c updated grpc client to have a proxy flag, updated coretk script to have a flag to enable proxy, disabled by default 2020-01-14 22:15:00 -08:00
Blake Harnden
03c4d8768d finished grpc server func type hints 2020-01-13 21:33:15 -08:00
Blake Harnden
c0fcc91d10 added type hinting for core.nodes 2020-01-13 14:08:49 -08:00
Blake Harnden
4e71759ac9 updates for typing functions on top level modules 2020-01-13 10:06:18 -08:00
Blake Harnden
ab3659183e function typing for some of the grpc code 2020-01-11 23:49:51 -08:00
Blake Harnden
583a552bdb disable grpc client from using proxy settings 2020-01-10 20:25:34 -08:00
Blake Harnden
de493c810a changes to replace MacAddress usage and remove ipaddress module altogether 2020-01-08 17:33:49 -08:00
Blake Harnden
fd10663323 changes to replaces known usages of ipaddress, leaving only ipaddress.MacAddress 2020-01-08 13:25:00 -08:00
Blake Harnden
769572de02 added get_interfaces to grpc client 2020-01-07 12:03:51 -08:00
Blake Harnden
6d68034177 updated start proto to return exception strings, updated grpc start session to exist early when a failure is found, updated coretk ui to not switch ui to running when start fails and display error dialog 2019-12-20 15:11:34 -08:00
Blake Harnden
513eaf2b76 improved coretk gui alerts to display alert text when selected, fixed merged code for adding a check to cleanup interfaces, updated session.exceptions to use enums directly 2019-12-20 10:51:52 -08:00
Blake Harnden
8eb4df7b1d updated linkconfig to support asymmetric links, updated grpc start session to provide asymmetric links, since they currently depend on being processed as a link edit 2019-12-18 22:09:00 -08:00
Blake Harnden
69494b600f fixes for parsing grpc throughputs 2019-12-16 13:26:55 -08:00
Blake Harnden
44df926fb9 updated events streamed from sessions to include session id for easy identification 2019-12-16 12:21:03 -08:00
Blake Harnden
424f69bb15 updated grpc throughputs to only check a specific session and verify the data being collected and sent is for that session, fixed data from throughputs being in hex getting converted to int, updated coretk to only run throughputs when enabled, updated grpc streams to return the stream to allow it being canceled 2019-12-16 11:14:05 -08:00
Blake Harnden
85521e8c8f added grpc to get current service configurations, fixed bug for core daemon not using custom service configs 2019-12-13 18:17:42 -08:00
Blake Harnden
47cc20b567 updates to grpc event streaming, client can now listen to a subset of desired events 2019-12-13 16:11:58 -08:00
Blake Harnden
9d988a4b13 fixed issue in grpc get emane model configs that would allow key collision 2019-12-13 14:18:13 -08:00
Blake Harnden
9ada94107e changes to grpc get emane model configs to return the interface value and actual node id, instead of coded value that would need to be parsed 2019-12-13 14:03:41 -08:00
Blake Harnden
9b16f272b8 added get wlan configs, made use of it in coretk, updated node context to allow wlan config during runtime 2019-12-13 11:48:36 -08:00
Blake Harnden
b993fadedb removed grpc check for getting a node service file, it will return the default value when not currently set 2019-12-13 11:24:35 -08:00
Blake Harnden
819954a695 updated grpc node positions to use floats, avoids needing to deal with int conversions 2019-12-13 10:47:23 -08:00
Blake Harnden
d343bd0655 updated gui to display custom icons if set, updated grpc to send custon icon and image data when present 2019-12-13 08:48:40 -08:00
Huy Pham
2344e026ff check emulation light, fix one line of backend code 2019-12-12 16:17:33 -08:00
Blake Harnden
45a23a6c14 updated usage of time.time to time.monotonic or time.perf_counter due to time.time possibly rolling backwards 2019-12-06 09:42:41 -08:00
Blake Harnden
d1db5e4b4e added some data for node events to have a source field to help distinguish what originates from the gui or not 2019-11-27 12:55:39 -08:00
Blake Harnden
da203d578e fixed issue with node event tests when position is None 2019-11-27 09:15:19 -08:00
Blake Harnden
8b7d651d06 fixed issue with nod emobility location calculations being forced to use ints 2019-11-27 09:05:37 -08:00
Blake Harnden
9445b63bd2 removed saving default configurations for wlan and mobility by default, updated session.add_node to set default configurations for wlan and emane 2019-11-21 12:29:33 -08:00
Blake Harnden
aa718817d0 updates to implement working observer widgets 2019-11-11 13:23:02 -08:00
Blake Harnden
18c9904d58 modified grpc set node service and node service file to use messages for their config, updated start session to leverage these messages to set them when starting a session 2019-11-11 10:19:30 -08:00
Blake Harnden
ea39f8fc6f updated corehandlers.py to no longer use threading.isAlive, which is pending deprecation 2019-10-30 15:49:08 -07:00