Files
nodepool/doc/source/devguide.rst
David Shrewsbury 326de1eedb Make a proper driver notification API
We sometimes have need to send notifications to certain driver objects.
A "notification" is a call to an object to indicate some condition has
changed, and the callee may choose to act on that, or totally ignore it.
Currently, the only notification is NodeRequestHandler.nodeReused() but
this adds another notification for the Provider objects in preparation
for static node driver changes.

Since it is entirely probable we may want more in the future, this
change organizes the notifications into proper classes for easy
identification/manipulation. It will be a naming standard end these
notification method names with "Notification".

Change-Id: I905ef42bb434435cbe3cec0f5007981a5b789769
2018-06-13 10:22:11 -04:00

69 lines
2.6 KiB
ReStructuredText

.. _devguide:
Developer's Guide
=================
The following guide is intended for those interested in the inner workings
of nodepool and its various processes.
Operation
---------
If you send a SIGUSR2 to one of the daemon processes, Nodepool will
dump a stack trace for each running thread into its debug log. It is
written under the log bucket ``nodepool.stack_dump``. This is useful
for tracking down deadlock or otherwise slow threads.
Nodepool Builder
----------------
The following is the overall diagram for the `nodepool-builder` process and
its most important pieces::
+-----------------+
| ZooKeeper |
+-----------------+
^ |
bld | | watch
+------------+ req | | trigger
| client +---------+ | +--------------------+
+------------+ | | NodepoolBuilderApp |
| +---+----------------+
| |
| | start/stop
| |
+-------v-------+ |
| <-------+
+---------> NodePool- <----------+
| +---+ Builder +---+ |
| | | | | |
| | +---------------+ | |
| | | |
done | | start start | | done
| | bld upld | |
| | | |
| | | |
+---------v---+ +---v----------+
| BuildWorker | | UploadWorker |
+-+-------------+ +-+--------------+
| BuildWorker | | UploadWorker |
+-+-------------+ +-+--------------+
| BuildWorker | | UploadWorker |
+-------------+ +--------------+
Drivers
-------
.. autoclass:: nodepool.driver.Driver
:members:
.. autoclass:: nodepool.driver.Provider
:members:
.. autoclass:: nodepool.driver.ProviderNotifications
:members:
.. autoclass:: nodepool.driver.NodeRequestHandler
:members:
.. autoclass:: nodepool.driver.NodeRequestHandlerNotifications
:members:
.. autoclass:: nodepool.driver.ProviderConfig
:members: