Release v1.1.18 ====================================================================================================== New VMs and Remote node images are available on the download page (https://riaps.isis.vanderbilt.edu/downloads/1.1.18). This release includes SD card images for TI Beaglebone Black, Raspberry Pi 4 and NVIDIA Jetson Nano. An update script is available to update v1.1.17 VM to a v1.1.18. If you are moving from any earlier VM versions, you will need to use the image available in the downloads. The RIAPS platform consists of 3 packages: riaps-core, riaps-pycom and riaps-timesync IMPORTANT NOTE ON REMOTE NODE IMAGES: The remote node images are basic platform prepared image. It includes the needed third-party packages already installed and the environment configurations available for the RIAPS platform. It DOES NOT INCLUDE the RIAPS platform pre-installed. Once you copy this image to an SD card, the RIAPS Platform must be installed using the following script on each remote node: riaps_install_node.sh (https://github.com/RIAPS/riaps-integration/blob/master/riaps-node-runtime/riaps_install_node.sh). The remote node needs to have access to the network during this installation step. If you have multiple remote nodes, you can update one with the RIAPS packages and then copy that SD card to the other nodes. Instructions for transferring the SD card image to a location on a VM or a local Linux machine can be found at https://github.com/RIAPS/riaps-integration/blob/master/riaps-node-creation/README.md#saving-image, then use balenaEtcher to write that image to the other SD cards. **Project Impact Notes: 1) The component API changed for C++ components to add the group feature. You will need to update code to compile. The following commit show changes made in the riaps-apps repository to shift the API: https://github.com/RIAPS/riaps-apps/commit/53eb4c12083f9b707d8c5e4cb915456c08bd5943#diff-3b4c1b5084534dd2632c461170e0d5ac ==================================================================================================== V1.1.18 Release Notes ==================================================================================================== Features: * Added arm64 architecture package to all RIAPS packages to support Raspberry Pi 4 and NVIDIA Jetson Nano computer boards * Distributed coordination (groups) for Python and C++ components (note Python/C++ mixed still in development) * Event handlers for group membership/leadership: GroupJoin, GroupMessage, MessageToLeader, MessageFromLeader, Vote Request, ActionVoteRequest, VoteResult, MemberJoined, MemberLeft, LeaderElected, LeaderExited * Component message scheduling control (batch/old, round-robin, priority) * Real-time actor feature - to enable setting scheduling policy (rr or priority) on the actor > Note: Settings are for the actor (components run with the same policy) * Support for running mininet configurations on the dev vm * riaps_ctrl can directly issue riaps_fab commands (to the connected hosts) * Add Simple Finite-State Machine (FSM) component package and test (PingPong) * Add HandleActivate for C++ components Refactoring: * Move towards riaps-pycom style ActorId * Moved r_portbase.h to ports folder (C++ components) Bug Fixes: * Actor id deducted from the configured NIC and not the first NIC * Controller * Reconnection to already running app resulted in error. The recovered running up can only be stopped and removed. * Loading depl file as a json file does not work in riaps_ctrl * Better deplo logging about w.r.t. login to riaps_ctrl * Change 'async' (which is a keyword now in rpyc) to async_ * Deployment * Timer delayed termination of actor until end of period * Deployment tagging logs but ignores git tagging faults * depl json generation terminology fix * Lengthened timeout for actor/device termination to 5 sec * Minor fixes in deplo related to starting and stopping * ‘handleDeactivate’ function name adjustment * Update riaps_fab command to find riaps package * Take keys out of conffiles, save keys in user account, if keys are saved - restore them * riaps-mn.crl always launches rpyc_registry (if needed, running rpyc_registry must be stopped first using sudo systemctl stop riaps-rpyc-registry.service) * Update psutil package to 5.7.0 to address a security advisory (https://github.com/advisories/GHSA-qfc5-mcwq-26q8) * Raw data on ports has type 'bytes' * Improved error messages * Documentation updates, including moving BBB references to a general RIAPS node terminology due to increased number of architectures supported for remote nodes * Update copyright / license text Suggestions for Transferring Eclipse Workspaces to a new VM =========================================================== There are several ways to transfer your project work between VM. Perhaps the easiest is to keep your code in a code repository (such as SVN or GIT) and then create a new workspace from the retrieval of the code from the repository. Another way would be to use Eclipse to export an archive file that can be moved to a transfer site (such as Dropbox or any other file sharing tool). And then import that file into a new VM eclipse workspace. Here are some tips for doing this: 1) In the old VM, choose "File" --> "Export" from the drop-down menus and select the "General - Archive Files" option. 2) Select all the files you want to include in the archive. You can unselect compiled files or even use the "Filter Types" tool to help with this. Indicate the file name and location to place this archive ("To archive file:" box). 3) Copy the file to a transfer site (such as Dropbox) and then retrieve it on the new VM. 4) On the new VM, choose "File" --> "Import" from the drop-down menus and select the "General - Existing Projects into Workspace" option. 5) "Select the archive file" option and find the transferred file. 6) This should have the workspace back in place in the new VM. Using the Update Script for Moving from v1.1.17 to v1.1.18 ========================================================== There is a 'riaps_update_vm_v1_1_18.sh' script (located at https://github.com/RIAPS/riaps-integration/blob/master/riaps-x86runtime/riaps_update_vm_v1_1_18.sh) to help with this update since there are additional third party packages utilized by the RIAPS updates. 1) git clone https://github.com/RIAPS/riaps-integration.git 2) cd riaps-integration/riaps-x86runtime 3) chmod +x riaps_update_vm_v1_1_18.sh (if needed) 4) Update the INSTALL_SCRIPT_LOC if you cloned to a directory other than /home/$INSTALL_USER 5) sudo ./riaps_update_vm_v1_1_18.sh 2>&1 | tee install_updated_vm.log 6) rm -rf riaps-integration 7) Reset the 'nic_name' in the /etc/riaps/riaps.conf file to be the same as the VM network interface that is attached to the router servicing the remote RIAPS nodes 8) Update /etc/riaps/riaps-hosts.conf with RIAPS nodes (riaps-xxxx) 9) Secure communication between VM and newly updated remote nodes (information found at https://github.com/RIAPS/riaps-integration/tree/master/riaps-x86runtime#securing-communication-between-the-vm-and-remote-riaps-nodes)