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()
update()

Overwrite to implement custom run-time update.

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

class mini_buildd.api.MultiSelectArgument(*args, **kwargs)

Bases: mini_buildd.api.TextArgument

TYPE = 'multiselect'
SEPARATOR = ','
class mini_buildd.api.RepositoryRegex(ident)

Bases: mini_buildd.api.TextArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.RepositoryPattern(ident)

Bases: mini_buildd.api.TextArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.Distribution(ident)

Bases: mini_buildd.api.TextArgument

update(**kwargs)

Overwrite to implement custom run-time update.

class mini_buildd.api.Distributions(ident)

Bases: mini_buildd.api.MultiSelectArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.KeyringDistributions(ident)

Bases: mini_buildd.api.Distributions

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.UploadableDistributions(ident)

Bases: mini_buildd.api.Distributions

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.AutoPortDistributions(ident)

Bases: mini_buildd.api.UploadableDistributions

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.TestDistributions(ident)

Bases: mini_buildd.api.UploadableDistributions

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.FindDistributions(ident)

Bases: mini_buildd.api.Distributions

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.Codename(ident)

Bases: mini_buildd.api.TextArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.Suite(ident)

Bases: mini_buildd.api.TextArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.Source(ident)

Bases: mini_buildd.api.TextArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.PatternSource(ident)

Bases: mini_buildd.api.TextArgument

update()

Overwrite to implement custom run-time update.

class mini_buildd.api.SourceVersion(ident)

Bases: mini_buildd.api.TextArgument

class mini_buildd.api.UploadOptions(ident)

Bases: mini_buildd.api.TextArgument

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()
update()
run()
has_flag(flag)
class mini_buildd.api.GroupSetup(given_args=None, request=None)

Bases: mini_buildd.api.Command

Setup.

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

Bases: mini_buildd.api.GroupSetup

Daemon setup. Authorization: super user login

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

Bases: mini_buildd.api.GroupSetup

Sources setup. 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.SetupRepositories(given_args=None, request=None)

Bases: mini_buildd.api.GroupSetup

Repositories setup. Authorization: super user login

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

Bases: mini_buildd.api.GroupSetup

Chroots setup. Authorization: super user login

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

Bases: mini_buildd.api.GroupSetup

Bootstrap setup.

>>> Setup({'chroot_backend': 'File'}).args['chroot_backend'].value
'File'
>>> Setup({'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.

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 : list: [<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 : list: [<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 : list: [<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.TerminatePackage(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

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.GetKey(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

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.GroupDaemon

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.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.RepositoryRegex object>]
class mini_buildd.api.LogCat(given_args=None, request=None)

Bases: mini_buildd.api.GroupDaemon

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.GroupRepository(given_args=None, request=None)

Bases: mini_buildd.api.Command

Repositories.

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

Bases: mini_buildd.api.GroupRepository

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.Codename object>, <mini_buildd.api.RepositoryRegex object>, <mini_buildd.api.Suite 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.GetSnapshots(given_args=None, request=None)

Bases: mini_buildd.api.GroupRepository

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.Distribution 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.Distribution 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.KeyringPackages(given_args=None, request=None)

Bases: mini_buildd.api.GroupRepository

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.KeyringDistributions object>, <mini_buildd.api.BoolArgument object>]
class mini_buildd.api.TestPackages(given_args=None, request=None)

Bases: mini_buildd.api.GroupRepository

Build internal test packages.

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.TestDistributions object>, <mini_buildd.api.AutoPortDistributions object>, <mini_buildd.api.BoolArgument object>]
class mini_buildd.api.GroupPackage(given_args=None, request=None)

Bases: mini_buildd.api.Command

Packages.

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

Bases: mini_buildd.api.GroupPackage

List packages of a distribution, 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.Distribution object>, <mini_buildd.api.PatternSource object>, <mini_buildd.api.NumberArgument 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.Source 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.Source object>, <mini_buildd.api.FindDistributions object>, <mini_buildd.api.SourceVersion object>, <mini_buildd.api.SourceVersion 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).

If run for a rollback distribution, this will perform a rollback restore.

JSON Result (dict):

__plain__: string: textual migration log.

Authorization: staff user login

AUTH = 2
CONFIRM = True
ARGUMENTS = [<mini_buildd.api.Source object>, <mini_buildd.api.Distribution object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.SourceVersion 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.Source object>, <mini_buildd.api.Distribution object>, <mini_buildd.api.BoolArgument object>, <mini_buildd.api.SourceVersion 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.

When from-distribution equals to_distribution, a rebuild will be done.

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.Source object>, <mini_buildd.api.Distribution object>, <mini_buildd.api.UploadableDistributions object>, <mini_buildd.api.SourceVersion object>, <mini_buildd.api.UploadOptions object>]
update()
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.UploadableDistributions object>, <mini_buildd.api.UploadOptions object>]
class mini_buildd.api.Retry(given_args=None, request=None)

Bases: mini_buildd.api.GroupPackage

Retry a previously failed package.

Use ‘repository’ in case of multiple matches only.”

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.Distribution object>, <mini_buildd.api.Source object>, <mini_buildd.api.SourceVersion object>]
update()
class mini_buildd.api.GroupUser(given_args=None, request=None)

Bases: mini_buildd.api.Command

Users.

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>]
update()
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).