Python API

Spicerack Python API autodoc.

Spicerack package.

class spicerack.Spicerack(*, verbose: bool = False, dry_run: bool = True, cumin_config: str = '/etc/cumin/config.yaml', conftool_config: str = '/etc/conftool/config.yaml', conftool_schema: str = '/etc/conftool/schema.yaml', debmonitor_config: str = '/etc/debmonitor.conf', spicerack_config_dir: str = '/etc/spicerack')[source]

Bases: object

Spicerack service locator.

Initialize the service locator for the Spicerack library.

Parameters
  • verbose (bool, optional) -- whether to set the verbose mode.

  • dry_run (bool, optional) -- whether this is a DRY-RUN.

  • cumin_config (str, optional) -- the path to Cumin's configuration file.

  • conftool_config (str, optional) -- the path to Conftool's configuration file.

  • conftool_schema (str, optional) -- the path to Conftool's schema file.

  • debmonitor_config (str, optional) --

    the path to Debmonitor's INI configuration file. It must have at least the following schema:

    [DEFAULT]
    server=debmonitor.example.com
    cert=/etc/debmonitor/ssl/cert.pem
    key=/etc/debmonitor/ssl/server.key
    

  • spicerack_config_dir (str, optional) -- the path for the root configuration directory for Spicerack. Module-specific configuration will be loaded from config_dir/module_name/.

admin_reason(reason: str, task_id: Optional[str] = None) → spicerack.administrative.Reason[source]

Get an administrative Reason instance.

Parameters
  • reason (str) -- the reason to use to justify an administrative action. See spicerack.administrative.Reason for all the details.

  • task_id (str, optional) -- the task ID to mention in the reason.

Returns

the administrative Reason instance.

Return type

spicerack.administrative.Reason

confctl(entity_name: str) → spicerack.confctl.ConftoolEntity[source]

Access a Conftool specific entity instance.

Parameters

entity_name (str) -- the name of a Conftool entity. Possible values: node, service, discovery, mwconfig.

Returns

the confctl entity instance.

Return type

spicerack.confctl.ConftoolEntity

debmonitor() → spicerack.debmonitor.Debmonitor[source]

Get a Debmonitor instance to interact with a Debmonitor website.

Returns

the instance.

Return type

spicerack.debmonitor.Debmonitor

Raises

KeyError -- if any configuration option is missing.

discovery(*records: str) → spicerack.dnsdisc.Discovery[source]

Get a Discovery instance.

Parameters

*records (str) -- arbitrary positional arguments, each one must be a Discovery DNS record name.

Returns

the pre-configured Discovery instance for the given records.

Return type

spicerack.dnsdisc.Discovery

dns() → spicerack.dns.Dns[source]

Get a Dns instance.

Returns

a Dns instance that will use the operating system default namserver(s).

Return type

spicerack.dns.Dns

property dry_run

Getter for the dry_run property.

Returns

True if the DRY-RUN mode is set, False otherwise.

Return type

bool

elasticsearch_clusters(clustergroup: str) → spicerack.elasticsearch_cluster.ElasticsearchClusters[source]

Get an ElasticsearchClusters instance.

Parameters

clustergroup (str) -- name of cluster group e.g search_eqiad.

Returns

ElasticsearchClusters instance.

Return type

spicerack.elasticsearch_cluster.ElasticsearchClusters

ganeti() → spicerack.ganeti.Ganeti[source]

Get an instance to interact with Ganeti.

Returns

the instance

Return type

spicerack.ganeti.Ganeti

Raises

KeyError -- If the configuration file does not contain the correct keys.

icinga() → spicerack.icinga.Icinga[source]

Get an Icinga instance.

Returns

Icinga instance.

Return type

spicerack.icinga.Icinga

property icinga_master_host

Getter for the icinga_master_host property.

Returns

the instance to execute commands on the Icinga master host.

Return type

spicerack.remote.RemoteHosts

ipmi() → spicerack.ipmi.Ipmi[source]

Get an Ipmi instance to send remote IPMI commands to management consoles.

Returns

the instance to run ipmitool commands.

Return type

spicerack.ipmi.Ipmi

property irc_logger

Getter for the irc_logger property.

Returns

the logger instance to write to IRC.

Return type

logging.Logger

management() → spicerack.management.Management[source]

Get a Management instance to interact with the management interfaces.

Returns

the instance.

Return type

spicerack.management.Management

mediawiki() → spicerack.mediawiki.MediaWiki[source]

Get a MediaWiki instance.

Returns

the MediaWiki instance.

Return type

spicerack.mediawiki.MediaWiki

mysql() → spicerack.mysql.Mysql[source]

Get a Mysql instance.

Returns

the Mysql instance.

Return type

spicerack.mysql.Mysql

netbox() → spicerack.netbox.Netbox[source]

Get a Netbox instance to interact with Netbox's API.

Returns

the instance

Return type

spicerack.netbox.Netbox

phabricator(bot_config_file: str, section: str = 'phabricator_bot') → spicerack.phabricator.Phabricator[source]

Get a Phabricator instance to interact with a Phabricator website.

Parameters
  • bot_config_file (str) --

    the path to the configuration file for the Phabricator bot, with the following structure:

    [section_name]
    host = https://phabricator.example.com/api/
    username = phab-bot
    token = api-12345
    

  • section (str, optional) -- the name of the section of the configuration file where to find the required parameters.

Returns

the instance.

Return type

spicerack.phabricator.Phabricator

prometheus() → spicerack.prometheus.Prometheus[source]

Get an Prometheus instance.

Returns

Prometheus instance.

Return type

spicerack.prometheus.Prometheus

puppet(remote_hosts: spicerack.remote.RemoteHosts) → spicerack.puppet.PuppetHosts[source]

Get a PuppetHosts instance for the given remote hosts.

Parameters

remote_hosts (spicerack.remote.RemoteHosts) -- the instance with the target hosts.

Returns

the instance to manage Puppet on the target hosts.

Return type

spicerack.puppet.PuppetHosts

puppet_master() → spicerack.puppet.PuppetMaster[source]

Get a PuppetMaster instance to manage hosts and certificates from a Puppet master.

Returns

the instance to manage Puppet hosts and certificates.

Return type

spicerack.puppet.PuppetMaster

redis_cluster(cluster: str) → spicerack.redis_cluster.RedisCluster[source]

Get a RedisCluster instance.

Parameters

cluster (str) -- the name of the cluster.

Returns

the cluster instance.

Return type

spicerack.redis_cluster.RedisCluster

remote() → spicerack.remote.Remote[source]

Get a Remote instance.

Returns

the Remote instance.

Return type

spicerack.remote.Remote

property username

Getter for the current username.

Returns

the name of the effective running user.

Return type

str

property verbose

Getter for the verbose property.

Returns

True if the verbose mode is set, False otherwise.

Return type

bool

spicerack.__version__ = '0.1.dev2+g3cd3df1'

the version of the current Spicerack module.

Type

str

Subpackages and Submodules