[contestms] Re: More details about configuration's core_services

  • From: Luca Wehrstedt <luca.wehrstedt@xxxxxxxxx>
  • To: contestms@xxxxxxxxxxxxx
  • Date: Thu, 2 Jan 2014 01:33:32 +0100

The config file is used both to determine the services that should run
locally and to discover the address of remote services. The requirement of
having a single file for all machines imposes the use of IP addresses or
"global" hostnames (i.e. not "localhost"). (Actually the only strict
requirement is for the configs to describe the same network topology; we
suggest to use the same file as it's easier to manage, but you could give
each machine it's own version of the file and then use "localhost" where
appropriate). You can then run ResourceService on each computer and it will
determine the address of the machine it's running on [1], to start the
right services. If you say it doesn't work for you my first guess is that
that function isn't doing the right thing. Could you try running it
(`import cms; cms.find_local_addresses()` in a Python interpreter) and
check if the output seems reasonable? On a second thought, are you calling
ResourceService with the "-a" flag? (Because, well, you should... ;-) )

Luca Wehrstedt

PS: I don't think we use "other_services" in any way, it's probably an
heritage from old times.

[1]
https://github.com/cms-dev/cms/blob/2a8af8be3f89fe0d7601c70642734f3eb7584b23/cms/__init__.py#L445


On Thu, Jan 2, 2014 at 12:49 AM, Damien Leroy <damien.leroy@xxxxxxxx> wrote:

> Hi again,
> I do not find any clear explanation of what the content of the
> configuration’s core_services section should be in a case of a distributed
> architecture (let’s only consider independent worker for now).
> Is it supposed to be both the way to know which services have to be run
> locally and how to connect each service ?
> When it is stated that ResourceService should be replicated on each
> server, it means that we keep localhost in the config file ? (as the config
> should be the same on all servers)
> For the distributed entities, is it supposed to be an IP ? If so, it has
> to detect its own IP, right ?
> If I do so, the logger receives the connection from all resource services
> but not a single service is starting which probably means that it correctly
> read the IP (as it connects the log service) but does not recognise it is
> own IP to know which service to run.
>
> What am I doing wrong ?
>
> BTW, what is “other_services” ? How is it different or treated differently
> from the core services ?
>
> Damien
>

Other related posts: