-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Port to Python cryptography module #27
base: master
Are you sure you want to change the base?
Conversation
Note that this commit also changes the format of `omero.certificates.owner` from the OpenSSL command line `/` separated format to RFC 4514 (which supercedes RFC 2253) `,` separated format. As this plugin saves the owner in OMERO server configuration the upgrade user experience will have to be considered in a follow up commit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two immediate comments from my initial testing in a OSX 12 / Python 3.8 (server) / OS X 12 / Python 3.10 (client) context. I'll expand my testing on Linux environments.
3c66b69
to
050c3c9
Compare
a0d7c08
to
019bbe9
Compare
Successfully tested in an Ubuntu 20.04 environment with a deployed OMERO.server. After stopping the server, moving the existing certs and installing this new version of the
Both local connections and imports worked as expected
|
I have now modified the |
ome/omero-install#269 tests the installation and import of image on Ubuntu 20.04, Debian 10 and Centos7 with scl Python 3.8 |
List of actions derived from this change
|
README.md
Outdated
For full information see the output of: | ||
## Upgrading | ||
|
||
Since version 0.3.0 this plugin uses portable RFC 4514 (supercedes RFC 2253) formatted strings for the `omero.certificates.owner` configuration option. If you have ran `omero certificates` before you may have OpenSSL command line formatted strings in your configuration that should be updated before you can run `omero certificates` again. In most cases this means taking a string such as `/L=OMERO/O=OMERO.server` and reformatting it to `L=OMERO,O=OMERO.server`; remove the leading `/` and replace separator `/`'s with `,`'s. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quick note before I need to head out: there is a place in omero-py for upgrading properties in case we want to make use of it. (And this is a really long line...)
This PR has been included in daily build for several weeks. |
As briefly mentioned at the weekly meeting today, my main caveat is that the testing so far has taken place on several operating systems/environment but has been restricted to client/server connections within the server environment itself. I will work on cross-environment testing and report in the upcoming days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Set-up two servers with different versions of Python/OpenSSL with omero-certificates
including this PR:
Ubuntu 20.04 | Ubuntu 22.04 | |
---|---|---|
Python | 3.8.10 | 3.10.6 |
Java | 11.0.17 | 11.0.17 |
OpenSSL | 1.1.1 | 3.0.215 |
omero-py | 5.13.1 | 5.13.1 |
Tested the import against both servers using the same systems as well as a CentOS 7 as client. All connections worked as expected.
Client / server | Ubuntu 20.04 | Ubuntu 22.04 |
---|---|---|
Ubuntu 20.04 | pass | pass |
Ubuntu 22.04 | pass | pass |
CentOS 7 | pass | pass |
The CentOS 7 / Python 3.6 / OpenSSL 1.0.x client/server should have been tested by the latest builds of the OME CI infrastructure. Deferring to @jburel on whether we want to some cross-environment testing using this environment.
The only remaining issue that was highlighted from my testing is the minimum cryptography
requirement. Importantly, this came up when running an upgrade against a deployed system with an older version of cryptography
so there is probably a case for testing the upgrade scenario if we cut a new release of omero-certificates
.
@jburel with OMERO.server 5.6.7 behind us, I propose we come back to this. What are the next steps to get this released as |
Several warning in the merge-ci build
|
This warning communicates the upstream decide to drop Python 3.6 support with the current 40.x series being the last one where this version is supported. |
This pull request has been mentioned on Image.sc Forum. There might be relevant details there: |
Coming back to this as the underlying migration of OME CI infrastructure is getting upgraded to Python 3.8+. This means the concerns echoed in #27 (comment) should be lifted soon. Are there any other outstanding blockers to moving forward with this migration? Update (2023-06-16): from a discussion with @chris-allan, the current proposal would be to: |
Ports the plugin to use the Python cryptography module rather than calling out to the OpenSSL command line tools which can be error prone, is not cross platform, and for which error conditions are hard to control for.