Opened 12 years ago

Last modified 11 years ago

#687 new enhancement

IZ3065: provide means to select between old and new (builtin) IJS method for each interactive job

Reported by: pollinger Owned by:
Priority: low Milestone:
Component: sge Version: 6.2
Severity: Keywords: clients


[Imported from gridengine issuezilla]

        Issue #:      3065             Platform:     All           Reporter: pollinger (pollinger)
       Component:     gridengine          OS:        All
     Subcomponent:    clients          Version:      6.2              CC:    None defined
        Status:       NEW              Priority:     P4
      Resolution:                     Issue type:    ENHANCEMENT
                                   Target milestone: ---
      Assigned to:    roland (roland)
      QA Contact:     roland
       * Summary:     provide means to select between old and new (builtin) IJS method for each interactive job
   Status whiteboard:

     Issue 3065 blocks:
   Votes for issue 3065:

   Opened: Thu Jun 25 02:56:00 -0700 2009 

With the introduction of the builtin interactive job support (IJS), some customers requested to let the job submitters select if their jobs
should use some old-style method (like rsh/rshd or ssh/sshd) or the builtin method for each single job.
This selection should be done by a command line option of the qrsh or qlogin client.

I order to keep the implementation rather simple, some restrictions must be defined:
* The user can only select between one old method and the new, builtin method.
* The user just can switch between two defined methods - he will not be able to define one via the command line of qrsh/qlogin.
* The old method is the same for all users - of course it still can vary for each host.

With this restrictions in mind, the algorithm could look like this:

1. The administrator has to configure the old IJS method in the configuration - be it the global one or the local one of an execution host.
An "old IJS method" means something like "rsh_command /usr/bin/rsh", "rsh_daemon /usr/sbin/rshd".

2. A "-builtin" switch is added to the qrsh and qlogin command line options. If a user submits e.g. "qrsh -builtin ...", the qrsh client
overwrites the configuration it got from QMaster. It simply overwrites the "rsh_command" value (or "rlogin_command" or "qlogin_command",
depending on the mode it is running in) with "builtin".

3. When the qrsh client submits the job to the QMaster, it adds a flag to the job object that reflects the "-builtin" switch.

4. When the Execd receives the job object, it checks if the flag is set. If yes, it overwrites the configuration for this job. Then it
starts the shepherd that gets the "builtin" configuration.

5. So if the user submitted "qrsh -builtin...", both the qrsh client and the shepherd are now in "builtin" mode. If the user submitted the
qrsh without the "-builtin" switch, both sides are in the mode that was configured by the Administrator.

6. As it may be the case that "-builtin" should not be selectable by the users (i.e. because only ssh/sshd should be used), this feature
must be disengageable. A "execd_params  allow_builtin_override=true/false" could be added.

The drawback of this solution is: The default is the old IJS method, the builtin method gets only used if requested. To avoid this, the
logic could be reversed. For this the meaning of the rsh_command etc. configuration would have to be changed, and the new switch had to be
called "-no-builtin" or "-use-configured-method".
Then the Administrator would still configure the old method, but by default the "builtin" method would be used, unless a user specifies the
"-no-builtin" switch.

The drawback of this solution is: The meaning of the configuration is changed. The use of the configured method can not be enforced.

Change History (0)

Note: See TracTickets for help on using tickets.