mini_buildd.api module

class mini_buildd.api.Argument(id_list, doc='Undocumented', default=None, choices=None)

Bases: object

set(value)
property value

Get value, including convenience transformations.

false2none()
class mini_buildd.api.TextArgument(*args, **kwargs)

Bases: mini_buildd.api.Argument

TYPE = 'text'
class mini_buildd.api.URLArgument(*args, **kwargs)

Bases: mini_buildd.api.TextArgument

TYPE = 'url'
class mini_buildd.api.TextareaArgument(*args, **kwargs)

Bases: mini_buildd.api.TextArgument

TYPE = 'textarea'
class mini_buildd.api.NumberArgument(*args, **kwargs)

Bases: mini_buildd.api.TextArgument

TYPE = 'number'
class mini_buildd.api.SelectArgument(*args, **kwargs)

Bases: mini_buildd.api.Argument

TYPE = 'select'
class mini_buildd.api.BoolArgument(*args, **kwargs)

Bases: mini_buildd.api.SelectArgument

TRUE = 'True'
FALSE = 'False'
class mini_buildd.api.MultiSelectArgument(*args, **kwargs)

Bases: mini_buildd.api.TextArgument

TYPE = 'multiselect'
SEPARATOR = ','
class mini_buildd.api.Command(given_args=None, request=None)

Bases: object

NONE = 0
LOGIN = 1
STAFF = 2
ADMIN = 3
AUTH = 0
AUTH_STRINGS = {0: 'anonymous', 1: 'any user login', 2: 'staff user login', 3: 'super user login'}
CONFIRM = False
NEEDS_RUNNING_DAEMON = False
ARGUMENTS = []
PLAIN = '__plain__'
classmethod isgroup()
classmethod name()
classmethod doc()
classmethod arg_identities()
classmethod api_args(args)

Safely generate API args from args dict.

  • Use only known argument identities.

  • Use only non-None values.

  • Convert values to raw ‘str’ representation.

classmethod auth_err(user)

Check if django user is authorized to call command.

Empty string means user is authorized.

classmethod json_pretty(result)
classmethod get_plain(result)
plain()
run()
has_flag(flag)
class mini_buildd.api.GroupAutoSetup(given_args=None, request=None)

Bases: mini_buildd.api.Command

Autosetup commands.

AUTH = 3
CONFIRM = True
class mini_buildd.api.AutoSetupDaemon(given_args=None, request=None)

Bases: mini_buildd.api.GroupAutoSetup

Daemon autosetup. Authorization: super user login

class mini_buildd.api.AutoSetupSources(given_args=None, request=None)

Bases: mini_buildd.api.GroupAutoSetup

Sources autosetup. Authorization: super user login

ARGUMENTS = [<mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.BoolArgument object>]
class mini_buildd.api.AutoSetupRepositories(given_args=None, request=None)

Bases: mini_buildd.api.GroupAutoSetup

Repositories autosetup. Authorization: super user login

ARGUMENTS = [<mini_buildd.api.MultiSelectArgument object>]
class mini_buildd.api.AutoSetupChroots(given_args=None, request=None)

Bases: mini_buildd.api.GroupAutoSetup

Chroots autosetup. Authorization: super user login

ARGUMENTS = [<mini_buildd.api.SelectArgument object>]
class mini_buildd.api.AutoSetup(given_args=None, request=None)

Bases: mini_buildd.api.GroupAutoSetup

Auto setup / bootstrap.

>>> AutoSetup({'chroot_backend': 'File'}).args['chroot_backend'].value
'File'
>>> AutoSetup({'chroot_backend': SelectArgument(["--chroot-backend", "-C"], default="BtrfsSnapshot", choices=["Dir", "File", "LVM", "LoopLVM", "BtrfsSnapshot"])}).args['chroot_backend'].value
'BtrfsSnapshot'

Authorization: super user login

ARGUMENTS = [<mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.SelectArgument object>]
class mini_buildd.api.GroupDaemon(given_args=None, request=None)

Bases: mini_buildd.api.Command

Daemon commands.

PORT_RESULT_DOC = ('JSON Result (dict):', ' uploaded: list of triples of all items uploaded')
class mini_buildd.api.Status(*args, **kwargs)

Bases: mini_buildd.api.GroupDaemon

Show the status of the mini-buildd instance.

JSON Result (dict):

identity : string: instance identity version : string: mini-buildd version http : string: HTTP URL ftp : string: FTP URL running : bool: Whether instance is accepting incoming load : float: machine load (0 =< load <= 1+) chroots : dict: {codename: [arch, ..]}: Active chroots repositories: dict: {identity: [codename, ..]}: Active repositories remotes : list: Active or auto-reactivate remotes packaging : list: Active (source) packages being processed building : list: Active (binary) package builds

Authorization: anonymous

classmethod has_chroot(result, codename, arch)
class mini_buildd.api.Activate(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

Activate the Daemon.

JSON Result (dict):

identity : string: instance identity version : string: mini-buildd version http : string: HTTP URL ftp : string: FTP URL running : bool: Whether instance is accepting incoming load : float: machine load (0 =< load <= 1+) chroots : dict: {codename: [arch, ..]}: Active chroots repositories: dict: {identity: [codename, ..]}: Active repositories remotes : list: Active or auto-reactivate remotes packaging : list: Active (source) packages being processed building : list: Active (binary) package builds

Authorization: super user login

AUTH = 3
class mini_buildd.api.Deactivate(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

Deactivate the Daemon.

JSON Result (dict):

identity : string: instance identity version : string: mini-buildd version http : string: HTTP URL ftp : string: FTP URL running : bool: Whether instance is accepting incoming load : float: machine load (0 =< load <= 1+) chroots : dict: {codename: [arch, ..]}: Active chroots repositories: dict: {identity: [codename, ..]}: Active repositories remotes : list: Active or auto-reactivate remotes packaging : list: Active (source) packages being processed building : list: Active (binary) package builds

Authorization: super user login

AUTH = 3
ARGUMENTS = []
class mini_buildd.api.GetUploaders(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

Get all GPG keys allowed to upload to repositories.

JSON Result (dict): {repository: {‘allow_unauthenticated_uploads’: True|False, ‘uploaders’: {long_key_id: {key info…}), ..}}}

Authorization: super user login

AUTH = 3
NEEDS_RUNNING_DAEMON = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>]
class mini_buildd.api.KeyringPackages(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

Build keyring packages for all active repositories.

JSON Result (dict):

uploaded: list of triples of all items uploaded

Authorization: super user login

AUTH = 3
NEEDS_RUNNING_DAEMON = True
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.BoolArgument object>]
class mini_buildd.api.TestPackages(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

Build internal test packages.

Per default, we build all test packages for all active distributions ending on ‘experimental’.

JSON Result (dict):

uploaded: list of triples of all items uploaded

Authorization: super user login

AUTH = 3
NEEDS_RUNNING_DAEMON = True
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.BoolArgument object>]
class mini_buildd.api.GetSnapshots(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

Get list of repository snapshots for a distribution.

JSON Result (dict):

dict: <distribution>: [snasphot,…]: List of snapshots for the given distribution.

Authorization: anonymous

NEEDS_RUNNING_DAEMON = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>]
class mini_buildd.api.GenSnapshot(given_args=None, request=None)

Bases: mini_buildd.api.GetSnapshots

Generate a repository snapshot.

JSON Result (dict): Empty for now.

Authorization: super user login

AUTH = 3
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.DelSnapshot(given_args=None, request=None)

Bases: mini_buildd.api.GenSnapshot

Delete a repository snapshot.

JSON Result (dict): Empty for now.

class mini_buildd.api.GroupConfig(given_args=None, request=None)

Bases: mini_buildd.api.Command

Configuration convenience commands.

class mini_buildd.api.GetKey(given_args=None, request=None)

Bases: mini_buildd.api.GroupConfig

Get GnuPG public key.

JSON Result (dict):

__plain__: string: ASCII-armored key.

Authorization: anonymous

class mini_buildd.api.GetDputConf(given_args=None, request=None)

Bases: mini_buildd.api.GroupConfig

Get recommended dput config snippet.

Usually, this is for integration in your personal ~/.dput.cf.

JSON Result (dict):

__plain__: string: dput config snippet.

Authorization: anonymous

class mini_buildd.api.GetSourcesList(given_args=None, request=None)

Bases: mini_buildd.api.GroupConfig

Get sources.list (apt lines).

Usually, this output is put to a file like ‘/etc/sources.list.d/mini-buildd-xyz.list’.

JSON Result (dict):

__plain__: string: apt lines

Authorization: anonymous

ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.NumberArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.BoolArgument object>]
class mini_buildd.api.LogCat(given_args=None, request=None)

Bases: mini_buildd.api.GroupConfig

Cat last n lines of the mini-buildd’s log.

JSON Result (dict):

__plain__: string: last n loglines

Authorization: staff user login

AUTH = 2
ARGUMENTS = [<mini_buildd.api.NumberArgument object>]
class mini_buildd.api.GroupPackage(given_args=None, request=None)

Bases: mini_buildd.api.Command

Package management commands.

class mini_buildd.api.List(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

List packages matching a shell-like glob pattern; matches both source and binary package names.

JSON Result (dict): {repository: [{package_info}…]}

Authorization: any user login

AUTH = 1
ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.SelectArgument object>]
class mini_buildd.api.Show(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Show a source package.

JSON Result (dict): {repository: [(codename, {package_info}),…]}

Authorization: anonymous

ARGUMENTS = [<mini_buildd.api.TextArgument object>]
class mini_buildd.api.Find(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Find a source package.

JSON Result (dict): {repository: [{package_info},…]}

Authorization: anonymous

ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.Migrate(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Migrate a source package (along with all binary packages).

JSON Result (dict):

__plain__: string: textual migration log.

Authorization: staff user login

AUTH = 2
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.Remove(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Remove a source package (along with all binary packages).

JSON Result (dict):

__plain__: string: textual removal log.

Authorization: super user login

AUTH = 3
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.Port(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Port an internal package.

An internal ‘port’ is a no-changes (i.e., only the changelog will be adapted) rebuild of the given locally-installed package.

JSON Result (dict):

requested: list: Info string about each port that has been triggered

JSON Result (dict):

uploaded: list of triples of all items uploaded

Authorization: staff user login

AUTH = 2
NEEDS_RUNNING_DAEMON = True
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.PortExt(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Port an external package.

An external ‘port’ is a no-changes (i.e., only the changelog will be adapted) rebuild of any given source package.

JSON Result (dict):

requested: list: Info string about each port that has been triggered.

JSON Result (dict):

uploaded: list of triples of all items uploaded

Authorization: staff user login

AUTH = 2
NEEDS_RUNNING_DAEMON = True
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.URLArgument object>, <mini_buildd.api.MultiSelectArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.Retry(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Retry a previously failed package.

JSON Result (dict):

uploaded: string: Info string about each retry that has been triggered.

Authorization: staff user login

AUTH = 2
NEEDS_RUNNING_DAEMON = True
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.TerminatePackage(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Terminate an ongoing package. Authorization: staff user login

AUTH = 2
NEEDS_RUNNING_DAEMON = True
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextArgument object>]
class mini_buildd.api.TerminateBuild(given_args=None, request=None)

Bases: mini_buildd.api.TerminatePackage

Terminate an ongoing build. Authorization: staff user login

class mini_buildd.api.GroupUser(given_args=None, request=None)

Bases: mini_buildd.api.Command

User management commands.

class mini_buildd.api.SetUserKey(given_args=None, request=None)

Bases: mini_buildd.api.GroupUser

Set a user’s GnuPG public key.

Authorization: any user login

AUTH = 1
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.TextareaArgument object>]
class mini_buildd.api.Subscription(given_args=None, request=None)

Bases: mini_buildd.api.GroupUser

Manage subscriptions to package notifications.

A package subscription is a tuple ‘PACKAGE:DISTRIBUTION’, where both PACKAGE or DISTRIBUTION may be empty to denote all resp. items.

JSON Result (dict):

list: list: (action=list only) Human readable list of subscriptions. add: list: (action=add only) Human readable list of added subscriptions. remove: list: (action=lremoved only) Human readable list of removed subscriptions.

Authorization: any user login

AUTH = 1
ARGUMENTS = [<mini_buildd.api.SelectArgument object>, <mini_buildd.api.TextArgument object>]
class mini_buildd.api.Commands

Bases: collections.OrderedDict

Automatically collect all commands defined in this module, and make them accessible.

menu()

Menu-like structure of commands (helps creating the API menu in HTML).