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, custom_data=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
-
-
class
cfme.utils.trackerbot.
TemplateName
(build_url)[source]¶ Bases:
object
Generate a template name from given link, a timestamp, and optional version string
This method should handle naming templates from the following URL types:
- http://<build-server-address>/builds/manageiq/master/latest/
- http://<build-server-address>/builds/manageiq/gaprindashvili/stable/
- http://<build-server-address>/builds/manageiq/fine/stable/
- http://<build-server-address>/builds/cfme/5.8/stable/
- http://<build-server-address>/builds/cfme/5.9/latest/
These builds fall into a few categories:
- MIQ nightly (master/latest) (upstream)
- MIQ stable (<name>/stable) (upstream_stable, upstream_fine, etc)
- CFME nightly (<stream>/latest) (downstream-nightly)
- CFME stream (<stream>/stable) (downstream-<stream>)
The generated template names should follow the syntax with 5 digit version numbers:
- MIQ nightly: miq-nightly-<yyyymmdd> (miq-nightly-201711212330)
- MIQ stable: miq-<name>-<number>-yyyymmdd (miq-fine-4-20171024, miq-gapri-20180130)
- CFME nightly: cfme-nightly-<version>-<yyyymmdd> (cfme-nightly-59000-20170901)
- CFME stream: cfme-<version>-<yyyymmdd> (cfme-57402-20171202)
Release names for upstream will be truncated to 5 letters (thanks gaprindashvili...)
-
CFME_ID
= 'cfme'¶
-
MIQ_ID
= 'manageiq'¶
-
SHA
= 'SHA256SUM'¶
-
__ge__
(other)¶ Automatically created by attrs.
-
__gt__
(other)¶ Automatically created by attrs.
-
__le__
(other)¶ Automatically created by attrs.
-
__lt__
(other)¶ Automatically created by attrs.
-
__ne__
(other)¶ Check equality and either forward a NotImplemented or return the result negated.
-
__repr__
()¶ Automatically created by attrs.
-
build_date
¶ Get a build date from the SHA256SUM
-
build_version
¶ Version string from version file in build folder (cfme) release name and build number from an image file (MIQ)
Will substitute ‘nightly’ for master URLs
Raises: ValueError if unable to parse version string or release name from files Returns: String 5-digit version number or release name for MIQ
-
template_name
¶ Actually construct the template name
-
cfme.utils.trackerbot.
api
(trackerbot_url=None)[source]¶ Return an API object authenticated to the given trackerbot api
-
cfme.utils.trackerbot.
check_if_tested
(api, template_name, provider_type)[source]¶ Check if a template has been tested on a specific provider type.
Parameters: - template_name – e.g. “cfme-59021-02141929”
- provider_type – e.g. “rhevm”
Returns: True if this template has been tested on at least one deployment of this provider type False otherwise
-
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.
get_tested_providers
(api, template_name)[source]¶ Return all tested provider templates for given template_name
-
cfme.utils.trackerbot.
mark_provider_template
(api, provider, template, tested=None, usable=None, diagnosis='', build_number=None, stream=None, custom_data=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.
mark_unusable_as_untested
(api, template_name, provider_type)[source]¶ Search through all tested providers and if provider type is unusable, mark it as not tested
This action is limited to a specific template_name and a specific provider_type
-
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.
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)