[libvirt] [PATCH 10/13] Add support for admin API in libvirt daemon

Michal Privoznik mprivozn at redhat.com
Fri May 22 07:52:12 UTC 2015


On 22.05.2015 07:22, Martin Kletzander wrote:
> On Thu, May 21, 2015 at 05:46:54PM +0200, Michal Privoznik wrote:
>> On 20.05.2015 07:19, Martin Kletzander wrote:
>>> For this to pe properly separated from other protocols used by the
>>> server, there is second server added which allows access to the whole
>>> virNetDaemon to its clients.
>>>
>>> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>>> ---
>>>  cfg.mk                |   3 ++
>>>  daemon/Makefile.am    |  34 ++++++++++++++-
>>>  daemon/admin_server.c | 116
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>  daemon/admin_server.h |  36 ++++++++++++++++
>>>  daemon/libvirtd.c     | 104
>>> +++++++++++++++++++++++++++++++++++++++-----
>>>  daemon/libvirtd.h     |  14 +++++-
>>>  po/POTFILES.in        |   1 +
>>>  7 files changed, 295 insertions(+), 13 deletions(-)
>>>  create mode 100644 daemon/admin_server.c
>>>  create mode 100644 daemon/admin_server.h
>>>
>>



> 
>>> +                                   !!config->keepalive_required,
>>> +                                   NULL,
>>> +                                   remoteAdmClientInitHook,
>>> +                                   NULL,
>>> +                                   remoteAdmClientFreeFunc,
>>> +                                   dmn))) {
>>> +        ret = VIR_DAEMON_ERR_INIT;
>>> +        goto cleanup;
>>> +    }
>>> +
>>> +    if (virNetDaemonAddServer(dmn, srvAdm) < 0) {
>>> +        ret = VIR_DAEMON_ERR_INIT;
>>> +        goto cleanup;
>>> +    }
>>
>> This is what I was talking about in reply to 02/13. Imagine the limits
>> for domain worker pool and sockets were set really low on daemon
>> startup. No new client can be accepted there. I would expect mgmt
>> application to connect to admin API and size up the limits. However, due
>> to bug in 2/13 all servers are suspended. I'll leave it up to you where
>> you'd like to solve it.
>>
> 
> There's nothing to solve.  The client is being added in a particular
> server and that server will call virNetServerUpdateServicesLocked()
> only on itself, not virNetDaemonUpdateServices() on the daemon.

Oh, right. I recalled adding updateServices function somewhere so that
server stops accepting new clients when a certain limit is reached. I
forgot it was updateServicesLocked() which you don't touch. Disregard my
comments to this then.

Michal




More information about the libvir-list mailing list