virt.virt_test_utils: run_autotest - 'tar' needs relative paths to strip the leading '/'
[autotest-zwu.git] / client / common_lib / host_protections.py
blobb5b215627d3192ffb7bd51110cf91562a28bd5e0
1 import logging
2 from autotest_lib.client.common_lib import enum, global_config
4 # Changing this file has consequences that need to be understood.
5 # Adding a protection level to the enum requires you to append your change to
6 # the end of the enum or a database migration needs to be added to migrate
7 # older protections to match the layout of the new enum.
8 # Removing a protection level from the enum requires a database migration to
9 # update the integer values in the DB and migrate hosts that use the removed
10 # protection to a default protection level.
11 # IF THIS IS NOT DONE HOSTS' PROTECTION LEVELS WILL BE CHANGED RANDOMLY.
13 Protection = enum.Enum('No protection', # Repair can do anything to
14 # this host.
15 'Repair software only', # repair should try to fix any
16 # software problem
17 'Repair filesystem only', # Repair should only try to
18 # recover the file system.
19 'Do not repair', # Repair should not touch this
20 # host.
21 'Do not verify', # Don't even try to verify
22 # this host
25 running_client = global_config.global_config.check_stand_alone_client_run()
27 try:
28 _bad_value = object()
29 default_protection = global_config.global_config.get_config_value(
30 'HOSTS', 'default_protection', default=_bad_value)
31 if default_protection == _bad_value:
32 if not running_client:
33 raise global_config.ConfigError(
34 'No HOSTS.default_protection defined in global_config.ini')
35 else:
36 default = Protection.get_value(default_protection)
38 # It is OK to have an empty global configuration object (stand alone client)
39 # so we trap this exception.
40 except global_config.ConfigError:
41 pass
43 choices = Protection.choices()