- Workflow and report downloads now run faster and have less size: when archiving the document to download, pSeven no longer adds the history of document changes to the archive. Previously, downloads always kept a full history, which could greatly increase the archive size.
- Added a few convenience improvements related to configuring
and linking blocks that have driver ports - for example,
Python script blocks with function and argument ports:
- Driver ports and generic ports are now sorted separately in the Links and Autolink dialogs.
- Output driver ports are labeled "Request": a block uses them to request evaluations from other blocks connected to it.
- Input driver ports are labeled "Response": they accept responses (evaluation results) from connected blocks.
- Upgraded the embedded pSeven Core package to version 6.21. For details on recent improvements and changes, see the pSeven Core changelog.
- Reduced the extension node setup package size. Removed a few unused versions of packaged components, which could cause issues during a node deployment.
- Updated the pSeven Enterprise deployment guide for more clarity:
- Updated the Extension node deployment guide, added section Allowed users.
- Added the Russian language version to the pSeven help. To select your language, use the menu in the help's top bar.
pSeven Enterprise help is now also available at the DATADVANCE website. See www.datadvance.net/product/pseven-enterprise/docs/en/ for the latest version.
- When block developers update a block in the common library, users can now update this block in their workflows in a few clicks - instead of manually replacing old versions of the block. pSeven shows block update notifications in the Workflow library pane; click a notification to begin update.
- Fixed issues in block manifest validation, due to which you could add an unusable block with an invalid name to the block library, or add a block with an invalid id, which you then could not delete.
- Fixed an issue where the Block library pane sometimes displayed wrong icons for user blocks.
- Fixed an issue where any user with admin access could see workflow runs of other users on the Start tab, and an attempt to open one of these runs led to an error.
- Fixed a rare issue where a workflow run did not start but pSeven did not show any error, so the run appeared to be waiting indefinitely.
- Fixed a stability issue which could disable editing and running a workflow if there was an error while editing this workflow, so you had to create its copy to continue.
- Fixed an issue where pSeven was showing an incorrect inline preview for a matrix value - for example, port values in the Block properties pane or parameter values in the Run setup pane.
- Removed dummy test blocks from the block library.
- Fixed Enter not working as a confirmation in the file deletion dialog.
- Added the Condition block, which enables conditional branching in workflows.
- Upgraded the embedded pSeven Core package to version 6.20. For details on recent improvements and changes, see the pSeven Core changelog.
- Added built-in help.
- Updated the Extension node deployment guide, added section Upgrade.
- Minor updates in the pSeven Enterprise deployment guide.
The storage server address and the shared data directory path are specified by the
storage.shareddata.*parameters in the deployment configuration file (
- Fixed an issue in the Python script block, due to which it sometimes did not save configuration changes.
- Fixed a bug due to which unfinished Kubernetes jobs were building up and could consume all resources, potentially leading to a general failure.
- Fixed a bug in UDP package routing, which could cause instability of the OpenVPN connection between pSeven and Windows extension nodes.
- Since this release, pSeven supports only NFS file storages. If your current deployment uses a persistent volume claim or a custom storage class, you will have to set up an NFS storage and transfer all files there before upgrading to v2021.04.20. Note the requirements listed in section File storage of the pSeven Enterprise deployment guide.
- This release uses a new deployment configuration file, which contains a number of changes compared to previous releases. If you are upgrading an existing deployment to v2021.04.20, you will have to re-create the configuration file - see pSeven Enterprise upgrade in the upgrade notice below.
- If you use extension nodes, you will have to manually remove HTCondor on each node before updating it with the new node setup package - see Extension node upgrade in the upgrade notice below.
pSeven Enterprise v2021.04.20 contains a few changes that are not compatible with previous versions. To avoid issues when upgrading an existing deployment (v2021.04 or earlier) to v2021.04.20, follow the guides in this section.
pSeven Enterprise upgrade¶
To upgrade pSeven, generate a new configuration file and transfer settings from the existing deployment manually. After this, do a clean installation with the new configuration file.
Find the release name of the existing deployment:
helm list -a --all-namespaces
Get a configuration file from the existing deployment:
helm get values <release name> > config_old.yaml
Generate a new configuration file:
helm show values pseven-2021.04.20.tgz > config.yaml
config_old.yamlas a reference, set parameters in
config.yamlas described in section Installation.
- Clean installation is required for v2021.04.20. Uninstall the existing deployment (see Uninstallation). Keep the database and file storage data.
- Install pSeven v2021.04.20 with the new configuration file.
Extension node upgrade¶
The version of the HTCondor service in the v2021.04.20 extension node setup package is not compatible with previous installations, so you will have to remove HTCondor on each of the extension nodes manually before upgrading.
- Open the Windows Control Panel - Programs and Features (or run
appwiz.cplto open Programs and Features directly). Find HTCondor in the list and uninstall it. If the uninstaller prompts for a restart, reboot the node before you continue.
- Get the new
pSevenExtensionNode.zipsetup package from pSeven (see Setup package).
pSevenExtensionNode.zipto a temporary directory. The path to this directory must not contain spaces, for example:
- From this directory, run
bootstrap.batwithout parameters. The setup scripts will use settings from the previous installation, which are stored into environment variables on the node.
bootstrap.batfinishes, check its output for errors. If there are none, reboot. If you see errors, copy the script's output from the command prompt and send it to email@example.com including a brief description of the problem.
- After the reboot, check the node as described in the Extension node deployment guide, section Node check.
- It is now possible to restrict user access to a Windows extension node connected with pSeven. See Allowed users in the Extension node deployment guide for details.
- You can now stop a running app in AppsHub using the Stop button added to the default app UI. Also improved the default app UI stability in case of connection issues.
- Workflow and report copy now works faster, and newly created copies take less space because pSeven no longer copies the history of changes with the document. The original document keeps a full history, but the history in a copy will contain only newer changes.
- Added the Getting started page, which provides a quick overview of pSeven's functions and features and links to more guides. To open it, click the Getting started button on the Start tab.
- Since reports in pSeven are currently limited, and many of their planned features are missing, the New report dialog now contains a beta notice to avoid misunderstanding.
- Fixed an issue where adding a user block to a workflow created duplicates of this block in the workflow library.
- Fixed an issue where you could not copy and paste a user block in a workflow if the block contains a large amount of code or embedded data.
- Fixed slowdown issues, which could occur when running a workflow where a Composite block receives or outputs a large data array - for example, a 100x100 matrix.
- Fixed the inability to save a Python script block that contains a very long script.
- Fixed an AppsHub issue where an app with default UI reported a timeout error if it was working longer than 10 minutes.
- Fixed a bug due to which a block in a running workflow failed to start if you have copied this block from another workflow.
- Fixed an issue where pSeven sometimes was not showing notifications until you refresh its tab in your browser.
- Convenience improvements in the Links and Autolink
- Quicker linking for ports with matching names. Ctrl-click and drag when creating a link to instantly open the Autolink dialog. In this case, OK in the Autolink dialog links selected port pairs and closes the dialog.
- Switch between autolinking and manual linking. In the Links dialog, click Autolink to open the simplified dialog. In this case, OK in the Autolink dialog selects the links to create and switches back to Links, where you can continue with manual link editing.
- The Python script block now automatically formats the script code to comply with PEP 8 and checks the code for syntax errors, when you click Apply or Save in the block's configuration dialog.
- OpenTURNS support. You can now use the
openturnsmodule in Python script blocks and user blocks implemented in Python.
- The Block properties pane now shows inputs and outputs sorted in the order defined by the block. You can also switch to alphabetical order using the sorting buttons in the pane. For grouped ports, alphabetical sorting applies to port names in a group but does not change the order of groups.
- When a message receive timeout is exceeded, the
api.message_pop()REST API method in the Python script block now raises a
TimeoutErrorinstead of a generic exception. If you use messaging in Python script, it is recommended to update your scripts to specifically handle the
- Added logging for block editing operations. When you add,
reconfigure, or delete a block, pSeven writes debug information to
edit log.txtin the workflow folder.
- User blocks can now access the Redis database that provides
the REST API messaging functionality. This makes it possible to add
your custom messaging implementation to a user block, functionally
similar to the
api.message_pop()methods available in Python script blocks. The database hostname and port are available to blocks as the
- Fixed various issues with incorrect run order and statuses displayed in the Start tab.
- Fixed an AppsHub issue where you could not edit some of the app's parameters in the default app UI.
- Fixed an AppsHub issue where an app with default UI could not start if there is a parameter that accepts any data type.
- Fixed a vulnerability issue in the messaging mechanism, which is in particular used by the Python script block REST API implementation. Before the fix, exploiting this vulnerability allowed a user to access messages of Python script blocks from workflows of other users, and to access messages used internally by pSeven. This could cause data loss in workflows and general malfunctioning. The fix properly isolates messaging for every user.
- Fixed a bug in the Python script block REST API, due to
api.message_pop()returned a bytearray instead of a string.
- Fixed an issue where pSeven could show a failed workflow run as active (running) indefinitely if the run fails to start because of a block startup error.
- Fixed a similar issue where pSeven could not handle a block error when you open the block to edit its configuration.
- Fixed pSeven showing a workflow run as active when it has failed due to an internal error. Now pSeven automatically cancels runs that stopped responding and shows them as failed.
- Fixed a similar issue where pSeven did not properly stop a block if there was an error while editing its configuration. Now pSeven automatically stops a block running in the edit mode if it becomes unresponsive.
api.message_pop()in a Python script block now returns a string as intended (was bytearray), you may be required to update your scripts to correctly handle the return value, depending on how it is processed.
- Enabled the intended functionality of the Files
folder in a workflow. This special folder is a prototype of the
workflow's working directory:
- When you configure block's working directories, pSeven creates folders in Files - so you can preview the working directory structure while editing a workflow. When you move, rename, or reconfigure blocks, pSeven automatically updates the folder structure in Files.
- You can upload data to Files and folders inside to make this data available to blocks during a workflow run. When a workflow starts, pSeven copies files and folders from Files to the workflow run directory, creating the initial state of block working directories.
- Running blocks work with copies of files in the run directory, so you can continue editing the workflow and Files as needed, even while a workflow run is active.
- Note that if a block's working directory type is "indexed", the
block creates a new (numbered) working directory every time it
starts. These directories have a single prototype in Files - a
folder with the
[####]name suffix. When you run a workflow, pSeven copies this folder's contents to every new working directory created by the block.
- To avoid needless copying, place read-only files somewhere outside of the Files folder.
- Simplified behavior of the block linking dialogs. The Autolink dialog no longer opens when you create a link, and you can switch to autolinking with the Autolink button in the Links dialog. Creating or editing a link now always opens the full Links dialog.
- The Python script block now validates names of variables, functions, and arguments to avoid syntax issues and name conflicts.
- Added a command to download the run log file, available in the Run logs pane menu.
- REST API clients can now download workflow run logs. To get a
download URL, request run details and read
logfile_urlfrom the response.
- Fixed licensing issues, due to which any user could start an unlimited number of workflow runs or calculations in AppsHub, potentially consuming all resources and disrupting other user's activity.
- Fixed a bug with messaging support in AppsHub, due to which
an app did not work if its workflow contained a Python script block
that uses messaging (the
api.message_pop()REST API methods).
- Fixed an AppsHub issue where you could not open the Edit value dialog for an app parameter that currently has an invalid value.
- Fixed an AppsHub issue where an app could not start due to an error in processing a port that is both linked and selected as a parameter.
- Fixed a GUI error that sometimes occurred when deleting a block from a workflow.
- Due to bugfixes in the license mechanism, this version requires an updated license valid for v2021.02 or above.