mini_buildd.api module

API arguments and calls.

>>> Setup.from_command_line("--save --update --archives-from-proxy --sources bullseye --sources-from-vendor-with-lts Debian --chroots-from-sources --repositories test/Test").command_line()
'--save --update --archives-from-proxy --sources bullseye --sources-from-vendor-with-lts Debian --chroots-from-sources --repositories test/Test'
class mini_buildd.api.Argument(id_list, doc='Undocumented', default=None, choices=None, header=None)

Bases: object

Generic Argument Class.

value() always provides a non-None value of the specific type, either the default or a given value.

strvalue() always provides a non-None str value.

The default value is given in the constructor. For server-specific defaults, this may be function – then the default value will be computed only at run time on the server.

A given value can be provided via special set() method:
  • Empty str, list or false bool will yield None.

  • Non-empty str will be converted to the specific type.

  • Other given values will be used as is.

Type

value() type

svalue() ex.

HTML GET

argparse

Str

str

“string”

key=string

–key “string”

Url

str

http://..”

key=string

–key “string”

MultilineStr

str

“long”

key=string

–key “string”

Choice

str

“c0”

key=string

–key “string”

Int

int

“17”

key=string

–key “int”

Bool

bool

“True”

key=True

–key

List

list of str

“v0,v1,..”

key=v0,v1..

–key “v0” “v1”..

VALUE_TYPE

alias of str

SERVER_DEFAULT = '<server_default>'

Magic string value to use as value when a default callable on the server should be used.

classmethod s2v(str_value)

Convert string to value.

classmethod v2s(value)

Convert value to string.

needs_value()

If user input is no_value.

choices()
default()
strdefault()
value()
strvalue()
strgiven()
icommand_line_given()
set(given)
argparse_kvsargs()

Python ‘argparse’ support.

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

Bases: mini_buildd.api.Argument

HTML_TYPE = 'text'
argparse_kvsargs()

Python ‘argparse’ support.

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

Bases: mini_buildd.api.StrArgument

HTML_TYPE = 'url'
class mini_buildd.api.MultilineStrArgument(id_list, doc='Undocumented', default=None, choices=None, header=None)

Bases: mini_buildd.api.StrArgument

HTML_TYPE = 'textarea'
class mini_buildd.api.ChoiceArgument(id_list, doc='Undocumented', default=None, choices=None, header=None)

Bases: mini_buildd.api.Argument

HTML_TYPE = 'text'
value()
argparse_kvsargs()

Python ‘argparse’ support.

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

Bases: mini_buildd.api.StrArgument

VALUE_TYPE

alias of int

HTML_TYPE = 'number'
argparse_kvsargs()

Python ‘argparse’ support.

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

Bases: mini_buildd.api.ChoiceArgument

VALUE_TYPE

alias of bool

HTML_TYPE = 'checkbox'
classmethod s2v(str_value)

Convert string to value.

icommand_line_given()

Empty generator – bools are just command line options like --with-foo.

argparse_kvsargs()

Python ‘argparse’ support.

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

Bases: mini_buildd.api.StrArgument

VALUE_TYPE

alias of list

SEPARATOR = ','
classmethod s2v(str_value)

Convert string to value.

classmethod v2s(value)

Convert value to string.

icommand_line_given()
argparse_kvsargs()

Python ‘argparse’ support.

class mini_buildd.api.Repositories(id_list, **kwargs)

Bases: mini_buildd.api.ListArgument

objects()
class mini_buildd.api.Codenames(id_list, **kwargs)

Bases: mini_buildd.api.ListArgument

mini_buildd.api.diststr2repository(diststr)
class mini_buildd.api.Distribution(id_list, choices=Name.ACTIVE_DISTRIBUTIONS, doc='', **kwargs)

Bases: mini_buildd.api.StrArgument

class mini_buildd.api.Distributions(id_list, choices=Name.ACTIVE_DISTRIBUTIONS, **kwargs)

Bases: mini_buildd.api.ListArgument

class mini_buildd.api.Source(id_list, doc='', **kwargs)

Bases: mini_buildd.api.StrArgument

class mini_buildd.api.UploadOptions(id_list, **kwargs)

Bases: mini_buildd.api.StrArgument

class mini_buildd.api.Call(**kwargs)

Bases: object

AUTH = <mini_buildd.config.Auth object>
NEEDS_RUNNING_DAEMON = False
CONFIRM = False
PLAIN = '__plain__'
classmethod name()
classmethod doc()
classmethod doc_title()
classmethod doc_body()
CATEGORIES = ['Consumer', 'Developer', 'Administrator']
classmethod category()
classmethod uri()
classmethod iarguments()
classmethod from_sloppy_args(**kwargs)

Construct ignoring any unknown arguments given.

classmethod from_command_line(command_line)
set_request(request)
classmethod json_pretty(result)
classmethod get_plain(result)
classmethod parse_command_line(command_line)
icommand_line(full=False, with_user=False, user=None)
command_line(full=False, with_user=False, user=None)
command_line_full()
plain()
abstract run()
class mini_buildd.api.Status(**kwargs)

Bases: mini_buildd.api.Call

Get the status of an instance.

JSON Result:

  • version : mini-buildd’s version.

  • identity : Instance identity.

  • url : Instance URL (HTTP).

  • incoming_url: Incoming URL (currently FTP).

  • load : Instance’s (0 =< load <= 1). If negative, the instance is not powered on.

  • chroots : Active chroots.

  • remotes : Active or auto-reactivatable remotes.

Authorization: NONE

run()
class mini_buildd.api.PubKey(**kwargs)

Bases: mini_buildd.api.Call

Get (ASCII-armored) GnuPG public key (apt key).

Authorization: NONE

run()
class mini_buildd.api.DputConf(**kwargs)

Bases: mini_buildd.api.Call

Get recommended dput config snippet.

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

Authorization: NONE

run()
class mini_buildd.api.SourcesList(**kwargs)

Bases: mini_buildd.api.Call

Get sources.list (apt lines).

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

Authorization: NONE

classmethod iarguments()
run()
class mini_buildd.api.Ls(**kwargs)

Bases: mini_buildd.api.Call

Show package.

Authorization: NONE

classmethod iarguments()
run()
class mini_buildd.api.Find(**kwargs)

Bases: mini_buildd.api.Ls

Find package.

Like ‘ls’, but call will fail on no results.

Authorization: NONE

run()
class mini_buildd.api.List(**kwargs)

Bases: mini_buildd.api._Login, mini_buildd.api.Call

List packages (deb or src).

Unlike ‘ls’, this will also look for debs. This may be a very expensive operation - pick <package> and <distributions> wisely.

Authorization: LOGIN

classmethod iarguments()
run()
class mini_buildd.api.Migrate(**kwargs)

Bases: mini_buildd.api._Staff, mini_buildd.api._Confirm, mini_buildd.api.Call

Migrate package.

Migrates a source package along with all its binary packages. If run for a rollback distribution, this will perform a rollback restore.

JSON Result (dict):

__plain__: string: textual migration log.

Authorization: STAFF

classmethod iarguments()
run()
class mini_buildd.api.Remove(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.Call

Remove package.

Removes a source package along with all its binary packages.

JSON Result (dict):

__plain__: string: textual removal log.

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.Port(**kwargs)

Bases: mini_buildd.api._Staff, mini_buildd.api._Running, mini_buildd.api._Confirm, mini_buildd.api.Call

Port 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):

uploaded: list of triples of all items uploaded

Authorization: STAFF

classmethod iarguments()
run()
class mini_buildd.api.PortExt(**kwargs)

Bases: mini_buildd.api._Staff, mini_buildd.api._Running, mini_buildd.api._Confirm, mini_buildd.api.Call

Port 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):

uploaded: list of triples of all items uploaded

Authorization: STAFF

classmethod iarguments()
run()
class mini_buildd.api.Retry(**kwargs)

Bases: mini_buildd.api._Staff, mini_buildd.api._Running, mini_buildd.api._Confirm, mini_buildd.api.Call

Retry a previously failed package.

JSON Result:

  • changes: Changes file that has been re-uploaded.

Authorization: STAFF

BKEY_FORMAT = '<source>/<version>/<timecode>/source[ <arch>]'
BKEY_REGEX = re.compile('[^/]+/[^/]+/[^/]+/[^/]+')
classmethod iarguments()
run()
class mini_buildd.api.Cancel(**kwargs)

Bases: mini_buildd.api._Staff, mini_buildd.api._Running, mini_buildd.api._Confirm, mini_buildd.api.Call

Cancel a running package build. Authorization: STAFF

classmethod iarguments()
run()
class mini_buildd.api.SetUserKey(**kwargs)

Bases: mini_buildd.api._Login, mini_buildd.api._Confirm, mini_buildd.api.Call

Set a user’s GnuPG public key.

Authorization: LOGIN

classmethod category()
classmethod iarguments()
run()
class mini_buildd.api.Subscribe(**kwargs)

Bases: mini_buildd.api._Login, mini_buildd.api.Call

Subscribe to package (email) notifications.

Authorization: LOGIN

classmethod iarguments()
run()
class mini_buildd.api.Unsubscribe(**kwargs)

Bases: mini_buildd.api.Subscribe

Unsubscribe from package (email) notifications.

Authorization: LOGIN

run()
class mini_buildd.api.Setup(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.Call

Create, update or inspect your setup.

Daemon will be stopped while running, and started when finished (i.e., even if it was not running before).

Authorization: ADMIN

classmethod iarguments()
SETUP = {'layout': {'Debian Developer': {'options': {'experimental_mandatory_version_regex': '.*', 'extra_options': 'Meta-Distributions: unstable=sid-unstable experimental=sid-experimental\n', 'mandatory_version_regex': '.*'}, 'suites': {'experimental': {'options': {'but_automatic_upgrades': False, 'experimental': True}, 'rollback': 6}, 'stable': {'options': {'uploadable': False}, 'rollback': 6}, 'testing': {'migrates_to': 'stable', 'options': {'uploadable': False}, 'rollback': 3}, 'unstable': {'migrates_to': 'testing', 'options': {'build_keyring_package': True}, 'rollback': 9}}, 'with_rollbacks': False}, 'Default': {'suites': {'experimental': {'options': {'but_automatic_upgrades': False, 'experimental': True}, 'rollback': 6}, 'hotfix': {'migrates_to': 'stable', 'rollback': 4}, 'snapshot': {'options': {'experimental': True}, 'rollback': 12}, 'stable': {'options': {'uploadable': False}, 'rollback': 6}, 'testing': {'migrates_to': 'stable', 'options': {'uploadable': False}, 'rollback': 3}, 'unstable': {'migrates_to': 'testing', 'options': {'build_keyring_package': True}, 'rollback': 9}}, 'with_rollbacks': True}, 'Default (no rollbacks)': {'suites': {'experimental': {'options': {'but_automatic_upgrades': False, 'experimental': True}, 'rollback': 6}, 'hotfix': {'migrates_to': 'stable', 'rollback': 4}, 'snapshot': {'options': {'experimental': True}, 'rollback': 12}, 'stable': {'options': {'uploadable': False}, 'rollback': 6}, 'testing': {'migrates_to': 'stable', 'options': {'uploadable': False}, 'rollback': 3}, 'unstable': {'migrates_to': 'testing', 'options': {'build_keyring_package': True}, 'rollback': 9}}, 'with_rollbacks': False}}, 'lintian_options': {'common': ['--suppress-tags', 'bad-distribution-in-changes-file'], 'warnfail': ['--fail-on', 'error,warning']}, 'repository': {'Debian Developer': {'distribution_filter': {'base_source__codename': 'sid'}, 'layout': 'Debian Developer', 'options': {'extra_uploader_keyrings': "# Allow Debian maintainers (must install the 'debian-keyring' package)\n/usr/share/keyrings/debian-keyring.gpg\n"}}, 'Default': {'distribution_filter': {'base_source__codename__regex': '.*'}, 'layout': 'Default'}, 'Test': {'distribution_filter': {'base_source__codename__regex': '.*'}, 'layout': 'Default', 'options': {'allow_unauthenticated_uploads': True}}}, 'vendor': {'Debian': {'archive': ['http://ftp.debian.org/debian/', 'http://deb.debian.org/debian/', 'http://security.debian.org/debian-security/', 'http://deb.debian.org/debian-security/', 'http://archive.debian.org/debian/', 'http://archive.debian.org/debian-security/', 'http://archive.debian.org/debian-backports/'], 'archive_paths': ['debian', 'debian-security', 'debian-ports', 'debian-archive/debian', 'debian-archive/debian-security', 'debian-archive/debian-backports'], 'codename': {'bullseye': {'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'buster': {'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'jessie': {'apt_allow_unauthenticated': True, 'extra_options': 'Sbuild-Setup-Blocks-Top: apt-disable-check-valid-until\n', 'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'sid': {'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'stretch': {'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'wheezy': {'extra_options': 'Sbuild-Setup-Blocks-Top: apt-disable-check-valid-until\n', 'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}}, 'default_components': ['main', 'contrib', 'non-free'], 'distro_info': <mini_buildd.dist.DebianDistroInfo object>, 'security_codename_regex': re.compile('(^[a-z]+-security$|^[a-z]+/updates$)')}, 'Ubuntu': {'archive': ['http://archive.ubuntu.com/ubuntu/', 'http://security.ubuntu.com/ubuntu/', 'http://old-releases.ubuntu.com/ubuntu/'], 'archive_paths': ['ubuntu', 'ubuntu-old'], 'codename': {'bionic': {'extra_options': 'Deb-Build-Options: noddebs\n', 'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'eoan': {'extra_options': 'Deb-Build-Options: noddebs\n', 'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'focal': {'arch_optional': ['i386'], 'extra_options': 'Deb-Build-Options: noddebs\n', 'lintian_options': {'warnfail': []}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'groovy': {'arch_optional': ['i386'], 'extra_options': 'Deb-Build-Options: noddebs\n', 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'hirsute': {'arch_optional': ['i386'], 'extra_options': 'Deb-Build-Options: noddebs\n', 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'impish': {'arch_optional': ['i386'], 'extra_options': 'Deb-Build-Options: noddebs\n', 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}, 'xenial': {'lintian_options': {'warnfail': ['--fail-on-warnings']}, 'sources': [<mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>, <mini_buildd.dist.SourceSetup object>]}}, 'default_components': ['main', 'universe', 'restricted', 'multiverse'], 'distro_info': <mini_buildd.dist.UbuntuDistroInfo object>, 'security_codename_regex': re.compile('^[a-z]+-security$')}}}
x_or_create(cls, defaults=None, **kwargs)
classmethod ilocal_archive_urls()
classmethod iapt_cacher_archive_urls()
setup_daemon()
setup_archives()
setup_sources()
setup_chroots()
setup_remotes()
setup_repositories()
run()
classmethod preset(**kwargs)
classmethod preset_debian(**kwargs)
classmethod preset_ubuntu(**kwargs)
classmethod preset_debian_ubuntu(**kwargs)
classmethod preset_saved()
class mini_buildd.api.RemakeChroots(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.Call

Remake chroots.

Run actions ‘remove’, ‘prepare’, ‘check’ and ‘activate’.

Daemon will be stopped while running.

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.Power(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.Call

Power Daemon (incoming) on or off (toggles by default).

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.Wake(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.Call

Wake a remote instance.

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.Handshake(**kwargs)

Bases: mini_buildd.api.Call

Check if signed message matches a remote, reply our signed message on success.

This is for internal use only.

Authorization: NONE

classmethod category()
classmethod iarguments()
run()
class mini_buildd.api.Cronjob(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.Call

Run a cron job now (out of schedule).

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.Uploaders(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Running, mini_buildd.api.Call

Get upload permissions for repositories.

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.SnapshotLs(**kwargs)

Bases: mini_buildd.api._Running, mini_buildd.api.Call

Get list of repository snapshots for a distribution.

JSON Result (dict):

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

Authorization: NONE

classmethod iarguments()
run()
class mini_buildd.api.SnapshotCreate(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Confirm, mini_buildd.api.SnapshotLs

Create a repository snapshot.

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.SnapshotDelete(**kwargs)

Bases: mini_buildd.api.SnapshotCreate

Delete a repository snapshot.

run()
class mini_buildd.api.KeyringPackages(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Running, mini_buildd.api._Confirm, mini_buildd.api.Call

Build keyring packages.

JSON Result (dict):

uploaded: list of triples of all items uploaded

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.TestPackages(**kwargs)

Bases: mini_buildd.api._Admin, mini_buildd.api._Running, mini_buildd.api._Confirm, mini_buildd.api.Call

Build test packages.

JSON Result (dict):

uploaded: list of triples of all items uploaded

Authorization: ADMIN

classmethod iarguments()
run()
class mini_buildd.api.Calls

Bases: collections.OrderedDict

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