cfme.utils.trackerbot module

class cfme.utils.trackerbot.Group(name, stream=True, active=True)[source]

Bases: dict

dict subclass to help serialize groups as JSON

class cfme.utils.trackerbot.Provider(key)[source]

Bases: dict

dict subclass to help serialize providers as JSON

class cfme.utils.trackerbot.ProviderTemplate(provider, template, usable=None, tested=None)[source]

Bases: dict

dict subclass to help serialize providertemplate details as JSON

concat_id
class cfme.utils.trackerbot.Template(name, group=None, datestamp=None)[source]

Bases: dict

dict subclass to help serialize templates as JSON

class cfme.utils.trackerbot.TemplateInfo(group_name, datestamp, stream)

Bases: tuple

__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__getstate__()

Exclude the OrderedDict from pickling

__repr__()

Return a nicely formatted representation string

datestamp

Alias for field number 1

group_name

Alias for field number 0

stream

Alias for field number 2

cfme.utils.trackerbot.active_streams(api, force=False)[source]
cfme.utils.trackerbot.api(trackerbot_url=None)[source]

Return an API object authenticated to the given trackerbot api

cfme.utils.trackerbot.cmdline_parser()[source]

Get a parser with basic trackerbot configuration params already set up

It will use the following keys from the env conf if they’re available:

# with example values
trackerbot:
    url: http://hostname/api/
    username: username
    apikey: 0123456789abcdef
cfme.utils.trackerbot.composite_uncollect(build, source='jenkins')[source]

Composite build function

cfme.utils.trackerbot.delete_provider_template(api, provider, template)[source]

Delete a provider/template relationship, used when a template is removed from one provider

cfme.utils.trackerbot.depaginate(api, result)[source]

Depaginate the first (or only) page of a paginated result

cfme.utils.trackerbot.futurecheck(check_date)[source]

Given a date object, return a date object that isn’t from the future

Some templates only have month/day values, not years. We create a date object

cfme.utils.trackerbot.latest_template(api, group, provider_key=None)[source]
cfme.utils.trackerbot.mark_provider_template(api, provider, template, tested=None, usable=None, diagnosis='', build_number=None, stream=None)[source]

Mark a provider template as tested and/or usable

Parameters:
  • api – The trackerbot API to act on
  • provider – The provider’s key in cfme_data or a Provider instance
  • template – The name of the template to mark on this provider or a Template
  • tested – Whether or not this template has been tested on this provider
  • usable – Whether or not this template is usable on this provider
  • diagnosis – Optional reason for marking a template

Returns the response of the API request

cfme.utils.trackerbot.parse_template(template_name)[source]

Given a template name, attempt to extract its group name and upload date

Returns:
  • None if no groups matched
  • group_name, datestamp of the first matching group. group name will be a string, datestamp with be a datetime.date, or None if a date can’t be derived from the template name
cfme.utils.trackerbot.post_jenkins_result(job_name, number, stream, date, template, build_status, artifact_report)[source]
cfme.utils.trackerbot.post_task_result(tid, result, output=None, coverage=0.0)[source]
cfme.utils.trackerbot.provider_templates(api)[source]
cfme.utils.trackerbot.set_provider_active(api, provider, active=True)[source]

Set a provider active (or inactive)

Parameters:
  • api – The trackerbot API to act on
  • active – active flag to set on the provider (True or False)
cfme.utils.trackerbot.templates_to_test(api, limit=1, request_type=None)[source]

get untested templates to pass to jenkins

Parameters:
  • limit – max number of templates to pull per request
  • request_type – request the provider_key of specific type
  • openstack (e.g) –
cfme.utils.trackerbot.trackerbot_add_provider_template(stream, provider, template_name)[source]