summaryrefslogtreecommitdiffstats
path: root/doc/development/packages.txt
blob: fea044e879481fbf6bb6281ecff3578e800ed07d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
.. -*- mode: rst -*-

.. _development-cfg:

=======================
Developing for Packages
=======================

The :ref:`server-plugins-generators-packages` plugin offers multiple
backends to support different types of software repositories.  New
backends can be written to handle new types of software repositories.

Each new Packages backend must be contained in its own module in
``Bcfg2.Server.Plugins.Packages``.  Each module must implement two
classes: A
:class:`Bcfg2.Server.Plugins.Packages.Collection.Collection` subclass
called ``<module>Collection``, and a
:class:`Bcfg2.Server.Plugins.Packages.Source.Source` subclass called
``<module>Source``.  E.g., the
:mod:`Bcfg2.Server.Plugins.Packages.Yum` backend has
:class:`Bcfg2.Server.Plugins.Packages.Yum.YumCollection` and 
:class:`Bcfg2.Server.Plugins.Packages.Yum.YumSource` objects.  These
interfaces are explained in detail below.

The Collection Object
=====================

.. automodule:: Bcfg2.Server.Plugins.Packages.Collection
.. autoclass:: Bcfg2.Server.Plugins.Packages.Collection._Collection


The Source Object
=================

.. automodule:: Bcfg2.Server.Plugins.Packages.Source

The Packages Module and Configuration
=====================================

.. automodule:: Bcfg2.Server.Plugins.Packages
.. automodule:: Bcfg2.Server.Plugins.Packages.PackagesSources

Existing Packages Backends
==========================

.. automodule:: Bcfg2.Server.Plugins.Packages.Yum
.. automodule:: Bcfg2.Server.Plugins.Packages.Apt
.. automodule:: Bcfg2.Server.Plugins.Packages.Pac