def connect(self): try: server = self.omero_server_ctrl.GetValue() port = int(self.omero_port_ctrl.GetValue()) user = self.omero_user_ctrl.GetValue() except: self.message_ctrl.Label = ( "The port number must be an integer between 0 and 65535 (try 4064)" ) self.message_ctrl.ForegroundColour = "red" self.message_ctrl.Refresh() return False try: self.session_id = bioformats.formatreader.set_omero_credentials( server, port, user, self.omero_password_ctrl.GetValue()) self.message_ctrl.Label = "Connected" self.message_ctrl.ForegroundColour = "green" self.message_ctrl.Refresh() self.server = server self.port = port self.user = user set_omero_server(server) set_omero_port(port) set_omero_user(user) self.ok_button.Enable(True) return True except: self.message_ctrl.Label = "Failed to log onto server" self.message_ctrl.ForegroundColour = "red" self.message_ctrl.Refresh() return False
def set_omero_credentials_from_string(credentials_string): """Set the OMERO server / port / session ID credentials_string: a comma-separated key/value pair string (key=value) that gives the credentials. Keys are host - the DNS name or IP address of the OMERO server port - the TCP port to use to connect user - the user name session-id - the session ID used for authentication """ if re.match("([^=^,]+=[^=^,]+,)*([^=^,]+=[^=^,]+)", credentials_string) is None: logging.root.error( 'The OMERO credentials string, "%s", is badly-formatted.' % credentials_string) logging.root.error( 'It should have the form: "host=hostname.org,port=####,user=<user>,session-id=<session-id>\n' ) raise ValueError("Invalid format for --omero-credentials") credentials = {} for k, v in [kv.split("=", 1) for kv in credentials_string.split(",")]: k = k.lower() credentials = { bioformats.formatreader.K_OMERO_SERVER: get_omero_server(), bioformats.formatreader.K_OMERO_PORT: get_omero_port(), bioformats.formatreader.K_OMERO_USER: get_omero_user(), bioformats.formatreader.K_OMERO_SESSION_ID: get_omero_session_id(), } if k == OMERO_CK_HOST: set_omero_server(v, globally=False) credentials[bioformats.formatreader.K_OMERO_SERVER] = v elif k == OMERO_CK_PORT: set_omero_port(v, globally=False) credentials[bioformats.formatreader.K_OMERO_PORT] = v elif k == OMERO_CK_SESSION_ID: credentials[bioformats.formatreader.K_OMERO_SESSION_ID] = v elif k == OMERO_CK_USER: set_omero_user(v, globally=False) credentials[bioformats.formatreader.K_OMERO_USER] = v elif k == OMERO_CK_PASSWORD: credentials[bioformats.formatreader.K_OMERO_PASSWORD] = v elif k == OMERO_CK_CONFIG_FILE: credentials[bioformats.formatreader.K_OMERO_CONFIG_FILE] = v if not os.path.isfile(v): msg = "Cannot find OMERO config file, %s" % v logging.root.error(msg) raise ValueError(msg) else: logging.root.error('Unknown --omero-credentials keyword: "%s"' % k) logging.root.error('Acceptable keywords are: "%s"' % '","'.join( [OMERO_CK_HOST, OMERO_CK_PORT, OMERO_CK_SESSION_ID])) raise ValueError("Invalid format for --omero-credentials") bioformats.formatreader.use_omero_credentials(credentials)