Commit graph

336 commits

Author SHA1 Message Date
Blake Harnden
f2868a9554 daemon: fixed issue where emane global config settings were not being sent to core-gui when joining a session 2020-10-05 20:15:55 -07:00
Blake Harnden
0306f77147 daemon: adjustments for shutdown behavior to avoid issues when shutting down, when already shutdown for the various different cases, but to also make sure the pycore directory is removed 2020-09-24 14:17:15 -07:00
Blake Harnden
828a68a0cd docs: pass on improving and providing doc based examples for common basic use cases, fixed issue with grpc defaulting session refscale to a very large number 2020-09-11 23:49:26 -07:00
Blake Harnden
82d87445b6 grpc: added some convenience functions for move node streaming in wrapped client 2020-09-05 10:34:08 -07:00
Blake Harnden
98a51ce17d grpc: implemented wrapper stream classes for using the wrapped client 2020-09-05 10:19:44 -07:00
Blake Harnden
c4a724ee10 daemon: added more wrapping classes, updated grpc.clientw to leverage wrapped classes for listened events 2020-09-02 12:08:21 -07:00
Blake Harnden
a80fda11f5 daemon: abstracted out iface specific configuration generation and parsing to common utilities, to avoid duplicate logic and potential differences that may arise 2020-09-02 09:44:45 -07:00
Blake Harnden
570ad9522c initial code for a wrapped grpc client, fix for pygui node emane config, fix for xml reading emane configs specific to nodes/interfaces, fix for adding emane nodes and setting the emane model properly 2020-09-01 16:19:01 -07:00
Blake Harnden
b0bac1d319 daemon: moved grpc wrapper classes to core.grpc.wrappers 2020-08-27 11:02:02 -07:00
Blake Harnden
4836ac4f2e daemon: small doc change and fix to corehandlers.py sending back proper data for hooks 2020-08-21 14:28:01 -07:00
Blake Harnden
f687115522 bump grpc worker limit to 1000, this does not mean it is a good idea to have this many connections, but at least helps allow trade offs for how to approach a problem 2020-08-20 16:18:20 -07:00
Blake Harnden
3e41d31c6c daemon: refactored missed LinkTlv INTERFACE_NAME fields to IFACE_NAME to match other refactoring done in 7.0.0 release 2020-08-17 20:04:42 -07:00
Blake Harnden
b98ff0f744 grpc: fixed issue with grpc throughputs checking session id matches using bad values 2020-08-10 12:46:21 -07:00
Blake Harnden
b89a19a18e grpc: update node events to include icon, pygui: updated handling node events to update icon when there is a change 2020-08-05 12:10:27 -07:00
Blake Harnden
8004be6e7c grpc: update client edit_node doc 2020-08-05 09:37:23 -07:00
Blake Harnden
fc44ad6fe8 pygui: update title to show xml file when one is opened, fixed issue creating nodes/links when not runtime due to refactoring, removed xml_file from coreclient and depend on the grpc GetSession wrapped data, grpc: added opened file information to GetSession call 2020-08-01 11:00:26 -07:00
Blake Harnden
d30778b238 daemon: fixed mobility checks to allow both wlan/emane, pygui: enabled emane nodes to configure mobility 2020-07-29 16:55:42 -07:00
Blake Harnden
fe36d28522 pygui: fixed issue with changes to protobuf files for getting emane model configs on a session 2020-07-28 22:45:42 -07:00
Blake Harnden
588afaad13 pygui: changes to make use of wrapped session object and wrapped nodes to maintain and retrieving configurations information 2020-07-28 00:03:15 -07:00
Blake Harnden
3bdd6292cd grpc: update GetSession to return all session related information, rather than needing 8 different calls, pygui: updated session protobuf wrapper to handle all new data 2020-07-27 18:19:51 -07:00
Blake Harnden
fff4bd7963 moved cpu usage to a grpc call that the gui will listen to, fixed grpc stream typing to be grpc.Future, fixed pygui issue for start callback when a start fails, but there are no exceptions 2020-07-23 09:41:39 -07:00
Blake Harnden
f8d862a296 grpc/pygui: added grpc alert api, updated pygui to better handle and display alerts 2020-07-22 19:19:22 -07:00
Blake Harnden
6d4434bc12 grpc: added set session user call, updated mobility to look for files within new gui as well, fixed pygui issue when start session has a grpc exceptions, showing and empty error window 2020-07-16 22:51:26 -07:00
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