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

76 Commits

Author SHA1 Message Date
Sebastian Goscik
bd6092728d RunConfiguration: Various improvements
- Removed `output_directory` ConfigurationPoint, it should be set and passed
  by whatever instanstiates RunConfiguration.
- Made `device` a mandatory configuration point.
- Added serialization
- Now handles merging specific and generic config
`output_directory` should be set and passed why what ever instanstiates RunConfiguration.
2016-09-27 11:20:12 +01:00
Sebastian Goscik
dc0449b544 Configuration: Various fixes
- Removed `finalize`, replaced it with `validate`
- Added `to_pod` and `from_pod` methods
- `set` and `update_config` now take (and forward) `check_mandatory`
2016-09-27 11:20:12 +01:00
Sebastian Goscik
57cd5a93fe Added merge_using_priority_specificity
This complex function handles merging of config with two priorities in mind.
The specificity of the config (`device_config` vs `nexus10`) and the priorty
of the source.
2016-09-27 11:20:12 +01:00
Sebastian Goscik
22888b502f ConfigurationPoint: Now validates the default value 2016-09-27 11:20:12 +01:00
Sebastian Goscik
9cc42c1879 Moved get_type_name outside of ConfigurationPoint 2016-09-27 11:20:12 +01:00
Sebastian Goscik
cddc29af05 ConfigurationPoint: Removed convert_types
Now always done by default because we never had a situation where this was not necessary.
2016-09-27 11:20:12 +01:00
Sebastian Goscik
6798a54a61 ConfigParser: Added ID validation - IDs cannot contain a - because its used to separate section IDs from workload IDs - global is a reserved ID for the "global" section. 2016-09-27 11:20:12 +01:00
Sebastian Goscik
451d973a65 ConfigParser: Global generic config is now stored in the plugin cache
Config such as "device_config" or "workload_parameters" is now stored in
the plugin cache till we know what it belongs to.
2016-09-27 11:20:12 +01:00
Sebastian Goscik
059b38685b AgendaParse: Removed config finalisation
It should not been done by the agenda parser but rather what ever invokes it
2016-09-27 11:20:12 +01:00
Sebastian Goscik
df17f79142 Job spec tree: Added a common base for workloads and sections
Added "JobSpecSource" as a base class for both section tree nodes and
workload entries. This adds a common interface between them for:
 - Resolving names
 - Storing configuration
 - References to parents
 - Getting IDs out of configuration
2016-09-27 11:20:12 +01:00
Sebastian Goscik
b0e500e2a8 misc 2016-09-27 11:20:11 +01:00
Sebastian Goscik
e0e4f389b9 Reworked configuration
All config now uses configuration points
Config parsing is now done in destinct stages
  - first all files are parsed and sent to their corresponding config objects or to a tree
  - tree is traversed to generate job specs.
2016-09-27 11:20:11 +01:00
Sebastian Goscik
05df7c7d9f ExecutionContext: Fixed copying agenda when one is not used 2016-09-27 11:17:25 +01:00
Sebastian Goscik
98b46894d8 Updates to pluggins to match the new plugin loader 2016-09-27 11:17:25 +01:00
Sebastian Goscik
17a395fbd4 Improved serializability 2016-09-27 11:17:25 +01:00
Sebastian Goscik
4485333454 Moved wlauto.core.config.core into wlauto.core.configuration 2016-09-27 11:17:25 +01:00
Sebastian Goscik
1e6763ee9b pluginloader: Replaced extension loader with WA3 plugin loader
In the process removed modules and boot_strap.py. Also Renamed extensions Plugins.

Louie is now monkey patched rather than containing a modified version in external
2016-09-27 11:17:25 +01:00
Sebastian Goscik
d89a52584b bootstrap: Removed and fixed module mapping for extensions 2016-02-23 17:01:53 +00:00
Sebastian Goscik
001239dfe4 Fixed WA extensions for LinuxManager
Changed method calls to devlib naming
2016-02-19 15:27:18 +00:00
Sebastian Goscik
1599c1e0ed Devices: Removed Devices
They are now superseded by DeviceManagers
2016-02-19 15:26:54 +00:00
Sebastian Goscik
4fc93a8a3c DeviceManager: Introduced DeviceManager extension
DeviceManagers will replace devices and will wrap devlib targets for use in WA
2016-02-19 15:23:07 +00:00
Sebastian Goscik
cd0186d14e json: Replaced json results processor with a more comprehensive one 2016-02-19 15:23:07 +00: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