1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2024-10-06 19:01:15 +01:00
Commit Graph

57 Commits

Author SHA1 Message Date
Sergei Trofimov
b6c0e2e4fd boostrap: nicer error messages on config parasing.
- handle ValueError as well as SyntaxError from config parser
- Report source file in the error message
2016-04-14 16:18:31 +01:00
Sergei Trofimov
48259d872b ApkWorkload: add package verison to the result as a classifer. 2016-04-14 11:23:39 +01:00
Sebastian Goscik
12dfbef76b ResourceResolver: Show version number when resource wasn't found.
If the ResourceResolver was looking for a specific version of a
resource and could not find it, this version number is now shown
in the error message.
2016-03-30 11:01:35 +01:00
Brendan Jackman
a5c9b94257 Add entry_point check for config file existence
This is just to provide a friendlier error message.
Before this commit you get an IOError from imp.load_source.
2016-02-17 17:24:14 +00:00
Sergei Trofimov
fdbc2ae372 pylint 2016-02-10 16:39:06 +00:00
Sebastian Goscik
519efaf22c Parameter: Fixed overriding of new parameters
Previously you could have `override` set to True on parameters that
only existed in the current scope.

Now if you try to override a parameter that doesn't exist higher up
in the hiarchy you will get a ValueError.
2016-02-04 15:36:47 +00:00
Sebastian Goscik
7ad8b8522b AttributeCollection: No longer allows duplicate overriding attributes
Previously if parameters with the same names and override set to True
were added to an extension at the same level one would silently
override the other.

This is no longer the case and an error will be show instead.

Also added tests to check that this is handeled correctly
2016-02-03 15:05:14 +00:00
Sebastian Goscik
fe2d279eac RunInfo: Added default run name
The run name will now default to ``{output_folder}_{date}_{time}``
2016-01-26 15:00:39 +00:00
Brendan Jackman
65cc22a305 core/agenda.py: Add check for empty values in agenda
This gives an error message when an agenda contains a key with no
value, so creating agendas is a little more user-friendly.
2016-01-25 13:43:38 +00:00
Brendan Jackman
2ae8c6073f doc: Apply it's/its grammar pedantry 2016-01-25 13:34:24 +00:00
Sergei Trofimov
98b19328de Fixing assets discovery.
- Two different parameters may now have the same global alias as long as
  their types match
- `extension_asset` resource getter now picks up the path to the mouted
  filer from ``remote_assets_path`` global setting.
2016-01-22 12:19:31 +00:00
Sebastian Goscik
bef8fb40ef Updated pylint for v1.5.1
Fixed WA for the latest version of pylint (1.5.1)
2015-12-09 16:52:39 +00:00
Sebastian Goscik
d9f1190e1f Version bump 2015-11-23 16:19:45 +00:00
Sergei Trofimov
76253e1e26 Fixing turning off UI in ChromeOS + adding it energy_model. 2015-09-14 12:53:08 +01:00
Sergei Trofimov
bfed59a7cf Adding an HTTP-based resource getter. 2015-09-03 13:55:44 +01:00
Sergei Trofimov
88f57e5251 Agenda: default config to dict 2015-08-21 08:34:49 +01:00
Sergei Trofimov
205934d55b juno: use bootargs on hard_reset with u-boot 2015-08-17 14:36:28 +01:00
Sergei Trofimov
25c0fd7b8b Allow setting classifiers via agenda. 2015-08-17 10:37:40 +01:00
Sergei Trofimov
85eba9c37a Better error reporting for subprocess.CalledProcessError 2015-08-11 16:51:34 +01:00
Sergei Trofimov
088d0f6981 fix: added remote_assets_mount_point to ingore list for cofig parsing 2015-07-07 16:20:24 +01:00
Sergei Trofimov
a37e734cf1 fix: adding dependencies_directory to NO_ONE resource owner 2015-07-01 16:08:10 +01:00
Sergei Trofimov
df6d1f1c2b resorce resover: debug-print the path of found resource 2015-06-30 10:50:49 +01:00
Sergei Trofimov
f7941bbc25 More informative syntax error reporting. 2015-06-30 10:36:20 +01:00
Bobby Batacharia
6069ccacdc ExtensionLoader should follow symlinks 2015-06-28 11:00:01 +01:00
Sergei Trofimov
4d5413ac26 add agenda command: added options for iterations and runtime parameters 2015-06-18 17:38:51 +01:00
Sergei Trofimov
ccea63555c Added retries
Failed jobs will now be automatically retired. This is controlled by two
new settings:

retry_on_status - a list of statuses which will be consided failures and
                  result in a retry
max_retries - number of retries before giving up
2015-06-18 16:46:26 +01:00
Sergei Trofimov
c076a87098 Added support for YAML configs
Config files (the default one in ~/.workload_automation plus ones
specified with -c) can now be written using YAML syntax as well as
Python.
2015-06-18 11:35:50 +01:00
Sergei Trofimov
d9f45db71e Implementing dynamic device modules
Dynamic modules may be loaded automatically on device initialization if
the device supports them. Dynamic modules implent probe() method to
determine whether they are supported by a particular deviced.

devcpufreq and cpuidle have been converted into dynamic modules
2015-06-18 09:42:40 +01:00
Sergei Trofimov
73d85c2b4e cleaning up initialize()
- standardisded on a single context argument
- removed Device.init() no longer necessary as initilize now
  automatically gets propagated up the hierarchy. Renamed the existing
  use of it to "initilize".
- related pylint cleanup.
2015-06-18 09:30:38 +01:00
Sergei Trofimov
53de517488 device: set core_clusters from core_names if not explicitly specified
if core_names are specified in the device config but core_clusters are
not, assume that all cores with the same name are on the same cluster.
2015-06-16 12:21:44 +01:00
Sergei Trofimov
179baf030e Fixed typo. 2015-06-12 12:43:35 +01:00
Sergei Trofimov
6c8228a26c Invoking workload finalizers at the end of the run. 2015-06-11 18:04:55 +01:00
Sergei Trofimov
b3a0933221 Adding intialize and finalize methods to workloads that will only be invoked once per run
- added initialze and finalize methods to workloads, which were the only
  major extension types that did not have them
- Semanatics for initialize/finalize for *all* Extensions are changed so
  that now they will always run at most once per run. They will not be
  executed twice even if invoke via istances of different subclasses (if
  those subclasses defined their own verions, then their versions will
  be invoked once each, but the base version will only get invoked
  once).
2015-06-11 17:45:09 +01:00
Sergei Trofimov
2ee9b40527 classifiers: usability updates
- add IterationResult-level classifiers that get merged into every
  added metric (saves having to pass the same classifiers to each
  metric added).
- Added a global alias to csv result processor's  use_all_classifiers
  attribute.
2015-06-11 17:45:09 +01:00
Sergei Trofimov
32f3dc21e4 Added job_status property to ExecutionContext 2015-06-11 17:45:09 +01:00
Sergei Trofimov
777003ed51 Adding instrument_is_enabled function
As instrumentation can be enabled/disabled for a specfic workload
execution, it is sometimes not enough to verify that an instrument has
been installed for the run; one might need to check whether it is
currently enabled.
2015-05-28 10:13:50 +01:00
Sergei Trofimov
a450957b9a Fixing locally defined instruments erroneously propagating into global instrumentation 2015-05-15 10:01:26 +01:00
Sergei Trofimov
512bacc1be Adding classifiers to metrics and updating csv and telemetry to take advantage of them
- Adding "classifiers" field to Metric objects. This is a dict mapping
  classifier names (arbitrary strings) to corresponding values for that
  specific metrics. This is to allow extensions to add
  extension-specific annotations to metric that could be handled in a
  generic way (e.g. by result processors).
- Updating telemetry workload to add classifiers for the url and internal
  iteration (or "time") for a particular result.
- Updating csv result processor with the option to use classifiers to
  add columns to results.csv (either using all classifiers found, or
  only for the specific ones listed).
2015-05-14 15:15:32 +01:00
Sergei Trofimov
b002505ac2 Updated Parameter to automatically convert int and boot kinds to integer and boolean respectively.
integer and boolen are defined in wlauto.utils.types; they perform more
intuitive conversions from other types, particularly strings, so are
more suitable than int and bool for parameters. If, for whatever reason,
native types are in fact desired for a Parameter, this behavior can be
supressed by specifying convert_types=False when defining the parameter.
2015-05-11 12:12:40 +01:00
Sergei Trofimov
108928c6a5 Added copy() method to WorkloadRunSpec. 2015-05-11 12:12:40 +01:00
Sergei Trofimov
3112eb0a9b Adding new types and updating device parameters to use them.
- added caseless_string type. This behaves exactly like a string, except
  this ignores case in comparisons. It does, however, preserve case. E.g.

	>>> s = caseless_string('Test')
	>>> s == 'test'
	True
	>>> print s
	Test

- added list_of type generating function. This allows to dynamically
  generate type-safe list types based on an existing type. E.g.

	>>> list_of_bool = list_of(bool)
	>>> list_of_bool(['foo', 0, 1, '', True])
	[True, False, True, False, True]

- Update core_names Device Parameter to be of type caseless_string
2015-05-11 12:12:40 +01:00
Sergei Trofimov
070b2230c9 updated ExecutionContext to keep a reference to the runner.
This will enable Extenstions to do things like modify the job queue.
2015-05-11 12:12:40 +01:00
Vasilis Flouris
82fed172d5 fix for leaked file descriptors in daq 2015-04-29 11:41:19 +01:00
Sergei Trofimov
97efd11b86 Fix: properly handle core_names and core_clusters in the agenda
Keep duplicates in lists when merging device_config dict from agenda
with the rest of the config; This will ensure that core_name sand
core_clusters aren't reduced to just unique elements.
2015-04-28 12:44:08 +01:00
Sergei Trofimov
5ceb093f3c Improving agenda validation
- raise an error if an agenda contains duplicate keys (by default PyYAML
  will silently ignore this)
- raise an error if config section in an agenda is not dict-like
  (before, this was allowed to propagate and relsulted an a traceback
  further down the line).
2015-04-27 16:36:30 +01:00
Sergei Trofimov
101d6a37ce Fix: correctly handle non-identifier alias names
Update ExtensionLoader to index aliases by their identifier'd name.
2015-04-27 11:57:34 +01:00
Sergei Trofimov
f906cbd851 Sent INITIAL_BOOT signal in hard reset path during intial boot 2015-04-24 17:51:55 +01:00
Sergei Trofimov
54e89a2118 Fix to initial ~/.workload_automation deployment when sudoing
Only attempt to chown ~/.workload_automation to SUDO_USER if the
effective user is root.
2015-04-24 10:05:13 +01:00
Sergei Trofimov
ff0d08cc8e All using idetifier version of non-identifier named instruments in configuration.
E.g. refering to "trace-cmd" as "trace_cmd" in the instrumentation list.
2015-04-20 09:18:49 +01:00
Javi Merino
8d3f9362fb Fix trace-cmd after 2276ae0c5b
Commit 2276ae0c5b ("Fixing config processing for extensions with
non-identifier names.") broke customizing the trace-cmd instrumentation
from the agenda.  With an agenda like:

config:
  instrumentation: [trace-cmd, delay]
  trace_events: ['thermal*']
  trace_buffer_size: 28000

trace_events and trace_buffer_size get added to the RunConfiguration's
_raw_config under the trace-cmd name, but then when it's looked up in
_finalize_config_list(), the dictionary is actually looked up using
identifier(extname), i.e. 'trace_cmd'.  Fix this by adding the user's
configuration using identifier(name) as well.
2015-04-17 20:10:25 +01:00