Cyberduck Mountain Duck CLI

#9579 closed defect (worksforme)

iRODS zone name is not stored in bookmark

Reported by: carsten.jahn Owned by: dkocher
Priority: normal Milestone: 5.0.9
Component: irods Version: 5.0
Severity: normal Keywords:
Cc: carsten.jahn@… Architecture: Intel
Platform: Windows 7

Description

I can connect to our internal iRODS instance directly after the creation of a new bookmark, using a .cyberduckprofile file that I created. The .cyberduckprofile file looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Protocol</key>
        <string>irods</string>
        <key>Vendor</key>
        <string>irods</string>
        <key>Description</key>
        <string>irods</string>
        <key>Port Configurable</key>
        <true/>
        <key>Hostname Configurable</key>
        <true/>
        <key>Default Hostname</key>
        <string>--our hostname--</string>
        <key>Region</key>
        <string>bhctestZone</string>
        <key>Default Port</key>
        <string>1247</string>
        <key>Username Placeholder</key>
        <string>(STANDARD|PAM:)iRODS username (use PAM:username)</string>
        <key>Password Placeholder</key>
        <string>irods password</string>
    </dict>
</plist>

When I close cyberduck and start it again, I'd like to connect using the bookmark that it created automatically.

Double-clicking the bookmark leads to the display "Connection opened" with the right server name in the Windows tray bar. However, the connection is not really opened and the cyberduck.log says:

2016-06-03 07:35:19,845 [background-1] FATAL ch.cyberduck.core.threading.SessionBackgroundAction - Failure running background task. zone is null or empty
java.lang.IllegalArgumentException: zone is null or empty
	at org.irods.jargon.core.connection.IRODSAccount.instance(IRODSAccount.java:113)
	at ch.cyberduck.core.irods.IRODSSession.login(IRODSSession.java:136)
	at ch.cyberduck.core.KeychainLoginService.authenticate(KeychainLoginService.java:69)
	at ch.cyberduck.core.LoginConnectionService.authenticate(LoginConnectionService.java:214)
	at ch.cyberduck.core.LoginConnectionService.connect(LoginConnectionService.java:204)
	at ch.cyberduck.core.LoginConnectionService.check(LoginConnectionService.java:139)
	at ch.cyberduck.core.LoginConnectionService.check(LoginConnectionService.java:146)
	at ch.cyberduck.core.threading.SessionBackgroundAction.connect(SessionBackgroundAction.java:218)
	at ch.cyberduck.core.threading.SessionBackgroundAction.call(SessionBackgroundAction.java:183)
	at ch.cyberduck.core.threading.BackgroundCallable.call(BackgroundCallable.java:51)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:618)
	at ch.cyberduck.core.threading.NamedThreadFactory$1.run(NamedThreadFactory.java:58)
	at java.lang.Thread.run(Thread.java:955)

Checking the bookmark file: the zone (stored as "region" in cyberduck) is really not there, so this explains the error.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Protocol</key>
	<string>irods</string>
	<key>UUID</key>
	<string>24269464-8666-4b86-be63-733758c42f1e</string>
	<key>Hostname</key>
	<string>---ourhostname---</string>
	<key>Port</key>
	<string>1247</string>
	<key>Username</key>
	<string>PAM:---myusername---</string>
	<key>Access Timestamp</key>
	<string>1464932044361</string>
</dict>
</plist>

Can you fix cyberduck please, so that it saves the zone ("region") info in the bookmark as well?

I tested with 5.0 and the previous release of Cyberduck.

BTW, ideally the zone ("region") would be configurable as a user option. But multiple .cyberduckprofile files for multiple zones should work as well.

Thanks+Regards, Carsten

Change History (7)

comment:1 Changed on Jun 3, 2016 at 6:06:02 AM by carsten.jahn

  • Platform set to Windows 7

comment:2 Changed on Jun 3, 2016 at 6:06:15 AM by carsten.jahn

  • Cc carsten.jahn@… added

comment:3 Changed on Jun 3, 2016 at 9:50:17 AM by dkocher

  • Milestone set to 5.1
  • Owner set to dkocher
  • Status changed from new to assigned

comment:4 Changed on Jun 3, 2016 at 9:52:03 AM by dkocher

I suspect that the reference to the profile in the bookmark (using the Protocol key) is ambiguous. Do you have multiple profiles installed that have Protocol and Vendor set to irods?

comment:5 Changed on Jun 3, 2016 at 10:06:53 AM by dkocher

  • Resolution set to worksforme
  • Status changed from assigned to closed

Please resolve this issue by setting the Vendor setting to a different value than irods which is already reserved as the protocol identifier. For example use

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Protocol</key>
        <string>irods</string>
        <key>Vendor</key>
        <string>bhc</string>
        <key>Description</key>
        <string>bhctestZone irods</string>
        <key>Port Configurable</key>
        <true/>
        <key>Hostname Configurable</key>
        <true/>
        <key>Default Hostname</key>
        <string>--our hostname--</string>
        <key>Region</key>
        <string>bhctestZone</string>
        <key>Default Port</key>
        <string>1247</string>
        <key>Username Placeholder</key>
        <string>(STANDARD|PAM:)iRODS username (use PAM:username)</string>
        <key>Password Placeholder</key>
        <string>irods password</string>
    </dict>
</plist>

comment:6 Changed on Jun 3, 2016 at 8:04:16 PM by carsten.jahn

Thanks, with a different "vendor" setting it works for me as well! :-)

comment:7 Changed on Jul 19, 2016 at 9:20:47 AM by dkocher

  • Milestone changed from 5.1 to 5.0.9
Note: See TracTickets for help on using tickets.
swiss made software