Skip to content
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

How to configure the QS Host / run the QS as a client? #3

Open
prjemian opened this issue Oct 17, 2024 · 13 comments
Open

How to configure the QS Host / run the QS as a client? #3

prjemian opened this issue Oct 17, 2024 · 13 comments
Labels
question Further information is requested

Comments

@prjemian
Copy link
Collaborator

prjemian commented Oct 17, 2024

  1. queuserver host: how is the QS host defined? And follow up question: how do I start the queueserver as a client? does it need a separate/different installation?

Originally posted by @rodolakis in #2 (comment)

@prjemian prjemian added the question Further information is requested label Oct 17, 2024
@rodolakis rodolakis changed the title Basic instructions to run/test the queueserver from the queue monitor would help too; e.g. Add instructions to run/test/configure the queueserver Oct 17, 2024
@prjemian
Copy link
Collaborator Author

prjemian commented Oct 17, 2024

image

The QS host interacts with redis at this network host:port:

redis_addr: localhost:6379

QS clients do not need to know about this connection. They interact only with the QS host.

@prjemian
Copy link
Collaborator Author

image

Right. If the QS host wanted to use the redis service which was running on a different workstation (say example.server.org), then change qs-config.yml as you said:

  redis_addr: example.server.org:6379 

@prjemian
Copy link
Collaborator Author

Basic instructions to run/test the queueserver ...

I'm sure we wrote these instructions in one of the BDP demo presentations. I'll dig that up.

@rodolakis
Copy link
Collaborator

I am happy to write those

Basic instructions to run/test the queueserver ...

I'm sure we wrote these instructions in one of the BDP demo presentations. I'll dig that up.

@rodolakis
Copy link
Collaborator

So, you ONLY need to change the qs-config.yml?
In this case the I am a bit confused about the comment here in qs_host.sh:

# Host name (from $hostname) where the queueserver host process runs.
# QS_HOSTNAME=amber.xray.aps.anl.gov  # if a specific host is required
QS_HOSTNAME="$(hostname)" 

image

Right. If the QS host wanted to use the redis service which was running on a different workstation (say example.server.org), then change qs-config.yml as you said:

  redis_addr: example.server.org:6379 

@rodolakis rodolakis changed the title Add instructions to run/test/configure the queueserver How to configure the QS Host and run the QS as a client? Oct 17, 2024
@rodolakis rodolakis changed the title How to configure the QS Host and run the QS as a client? How to configure the QS Host / run the QS as a client? Oct 17, 2024
@prjemian
Copy link
Collaborator Author

prjemian commented Oct 17, 2024

comment moved

@prjemian
Copy link
Collaborator Author

QS Host and QS clients are separate processes.

  • QS Host process is started from a workstation with access to:
    • the qs-config.yml file
    • a redis service
    • the instrument package with the RE, devices, and plans
  • Any QS client is started from a workstation with network access to the QS Host process

@prjemian
Copy link
Collaborator Author

prjemian commented Oct 17, 2024

Your question involved the qs-config.yml file and port 6379 (port used by the redis service). This configuration file is used when running start-re-manager (the program that actually operates the queueserver host process).

I'll look again at the qs_host.sh (which calls start-re-manager) to make sure that its comments and code agree with our documentation. The shell script has some defense against certain beamline staff trying to start the QS host on random workstations. (To avoid having multiple RE instances running at the same time, actively running plans on the same hardware.)

By team agreement, we chose one, specific workstation to run the QS Host. The code checks for that. This additional configuration must be known and checked before start-re-manager is run.

@rodolakis
Copy link
Collaborator

QS Host and QS clients are separate processes.

  • QS Host process is started from a workstation with access to:

    • the qs-config.yml file
    • a redis service
    • the instrument package with the RE, devices, and plans

Right, I am perfectly good with that part. But I am still unclear about how, in practice, do you achieve that:

  • Any QS client is started from a workstation with network access to the QS Host process

Do you need that (QS client) workstation to have the package installed with a different set of settings for qs-config.yml? Or a lighter version of the package (since it does not need to know about the RE, devices and plans, which are handled by the host)? How do you start the Queuemonitor from that workstation?

@prjemian
Copy link
Collaborator Author

QS clients will never use the qs-config.yml file.

@prjemian
Copy link
Collaborator Author

Or a lighter version

The packages required depend on which client program is to be run. For example, the standard GUI (queue-monitor) comes from the bluesky_widgets package.

@prjemian
Copy link
Collaborator Author

To run a client, follow the installation steps for that client. They don't need the same suite of packages that the server needs.

@prjemian
Copy link
Collaborator Author

Q: Does a QS client need to know about the redis server or the qs-config.yml file?
A: No. It only needs to know how to communicate with the QS Host process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants