Skip to main content
Version: 5.3.0.0

File Path & NFS

Description

Filepath Environment entries are used to load or store resources to/from a file system directory. The entry contains the specific file path to use.

Configuration

  1. Create an Environment entry of type filepath.
  2. Choose a protocol:
  3. Local file system: Used for normal and private files in local system.
    • Windows network file share (SMB): Network protocol, designed to access Windows and mac servers, but is also used in the UNIX world through the SAMBA server. E.g. smb://<server>/filepath
    • Network file system(NFS): UNIX based protocol, used to access servers. E.g. nfs://<server>:/<filepath>
  4. Choose a filepath:
  5. Either copy a filepath or select one via "..." in folder pane.
  6. Click on Test: An alert window will appear, which shows whether the test of the path was successful.
  7. If the test was successful click Finish.

Preparing NFS access on Linux

If you want to export for example the directory /opt/test per NFS to any other computer you must execute the following command:

  • the option rw denotes read/write access to the directory
  • the option insecure is necessary to admit access to ports higher than 1024; if this option is not set, you will see the following messages in the log files ont the NFS server:
Apr 7 13:33:26 akn-laptop mountd[1161]: bad path in mount request from 192.168.2.89:"opt/test"
Apr 7 13:33:26 akn-laptop mountd[1161]: refused mount request from 192.168.2.89 for /opt/test (/opt/test): illegal port 35169

To find out the UID and GID of the user for login you may execute the following

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
akn:x:1000:1000:akn,,,:/home/akn:/bin/bash

Settings in the Orchestra Designer

  1. Set the path to the remote directory in the environment entry. This could e.g. look like: //192.168.2.169//opt/test or: //192.168.2.169:/opt/test or: nfs://192.168.2.169:/opt/test
info

Note: The prefix nfs: is added from Orchestra automatically!

  1. In the scenario element tree in the groupSecurity add a new Credential where the name must consist from UID and GID, e.g.: 1000:1000
  2. Then add username and password in the tab Authentication of the Credential. As username again seUtID:GID. Caveat: Currently due to a bug, the name of the credential is used as the username by Orchestra. If the bug eventually is solved, is will be sufficient if the username defined for the Password authentication matches the given pattern.

Additional Information About possible URLs:

  • This URL parser also handles undocumented testing options inserted in the URL in the port field. The following sequence of option letters may appear before or after the port number, or alone if the port number is not given.
  • vn - NFS version, e.g. "v3"
  • u - Force UDP - normally TCP is preferred
  • t - Force TDP - don't fall back to UDP
  • m - Force Mount protocol. Normally public filehandle is preferred
  • Option ordering is not important.
    • Example: nfs://server:123v2um/path
  • Use port 123 with NFS v2 over UDP and Mount protocol
  • nfs://server:m/path
  • Use default port, prefer V3/TCP but use Mount protocol Port Problems while accessing the directory through NFS (because of insecure) If you have problems with the port, e.g. if the option insecure was not set on server side, you will find the following error message in the log file:
7.04/14:16:11.414 SEVERE [10] oundAdapterTestPanel.setupTest:
Error in channel test emds.epi.decl.exceptions.TechnicalException:
Directory nfs://192.168.2.169//opt/test doesn't exist at
emds.epi.impl.adapter.file.AbstractFileListener.checkInputDirectory(AbstractFileListener.java:33
6) at emds.epi.impl.adapter.file.AbstractFileListener.start(AbstractFileListener.java:755) at
emds.util.swing.InboundAdapterTestPanel.setupTest(InboundAdapterTestPanel.java:97) at
emds.epi.graph.EPIFrame.testAdapter(EPIFrame.java:1632)
...

Access without authentication

If you have problems with authentication the directory is visible but renaming the file causes errors:

07.04/15:40:04.519 FINE [19] .simpl.SimpleJobFactory.newJob: Producing
instance of Job
'FILE_POLLING__1396877983086_22_ORC.FILE_POLLING__1396877983086_22_ORC',
class=emds.epi.impl.timer.QuartzDelegationJobVolatile
07.04/15:40:04.520 FINE [14] rg.quartz.core.JobRunShell.run: Calling execute on
job FILE_POLLING__1396877983086_22_ORC.FILE_POLLING__1396877983086_22_ORC
07.04/15:40:04.520 INFO [14] legationJobBase.safeExecuteJob: Timer job
FILE_POLLING__1396877983086_22_ORC: start
07.04/15:40:04.523 INFO [14] leListener.checkInputDirectory: Scanning directory:
nfs://192.168.2.169//opt/test
07.04/15:40:04.524 INFO [14] Listener.observeInputDirectory: Reading file:
nfs://192.168.2.169//opt/test/DeviceData.txt
07.04/15:40:04.528 FINE [14] Listener.observeInputDirectory: QOS: VOLATILE
07.04/15:40:04.529 FINE [14] adapter.file.FileLocker.rename: couldn't rename file
to: DeviceData.txt.wrk
07.04/15:40:04.534 FINE [14] ileLocker.tryLockedInputStream: file mat.csv is in use
07.04/15:40:04.635 FINE [14] adapter.file.FileLocker.rename: couldn't rename file
to: DeviceData.txt.wrk
07.04/15:40:04.636 FINE [14] ileLocker.tryLockedInputStream: file mat.csv is in use
07.04/15:40:04.838 FINE [14] adapter.file.FileLocker.rename: couldn't rename file
to: DeviceData.txt.wrk
07.04/15:40:04.838 FINE [14] ileLocker.tryLockedInputStream: file mat.csv is in use
07.04/15:40:05.248 FINE [14] adapter.file.FileLocker.rename: couldn't rename file
to: DeviceData.txt.wrk
07.04/15:40:05.248 FINE [14] ileLocker.tryLockedInputStream: file mat.csv is in use
07.04/15:40:06.057 INFO [14] legationJobBase.safeExecuteJob: Timer job
FILE_POLLING__1396877983086_22_ORC: end

On Linux every access is recorded in the syslog file on Linux you may find helpful information auf the authentication:

Apr 7 14:56:27 akn-laptop mountd[1161]: authenticated mount request from 192.168.2.89:944
for /opt/test (/opt/test)
Apr 7 14:57:09 akn-laptop mountd[1161]: authenticated unmount request from 192.168.2.89:692
for /opt/test (/opt/test)
Apr 7 14:57:21 akn-laptop mountd[1161]: authenticated unmount request from 192.168.2.89:735
for /opt/test (/opt/test)