Revision fd9f58fd lib/opcodes.py
b/lib/opcodes.py | ||
---|---|---|
74 | 74 |
|
75 | 75 |
#: Migration type (live/non-live) |
76 | 76 |
_PMigrationMode = ("mode", None, |
77 |
ht.TOr(ht.TNone, ht.TElemOf(constants.HT_MIGRATION_MODES)),
|
|
77 |
ht.TMaybe(ht.TElemOf(constants.HT_MIGRATION_MODES)),
|
|
78 | 78 |
"Migration mode") |
79 | 79 |
|
80 | 80 |
#: Obsolete 'live' migration mode (boolean) |
... | ... | |
111 | 111 |
|
112 | 112 |
_PNodeGroupAllocPolicy = \ |
113 | 113 |
("alloc_policy", None, |
114 |
ht.TOr(ht.TNone, ht.TElemOf(constants.VALID_ALLOC_POLICIES)),
|
|
114 |
ht.TMaybe(ht.TElemOf(constants.VALID_ALLOC_POLICIES)),
|
|
115 | 115 |
"Instance allocation policy") |
116 | 116 |
|
117 | 117 |
_PGroupNodeParams = ("ndparams", None, ht.TMaybeDict, |
... | ... | |
152 | 152 |
# Disk parameters |
153 | 153 |
_PDiskParams = \ |
154 | 154 |
("diskparams", None, |
155 |
ht.TOr(ht.TNone, |
|
156 |
ht.TDictOf(ht.TElemOf(constants.DISK_TEMPLATES), ht.TDict)), |
|
155 |
ht.TMaybe(ht.TDictOf(ht.TElemOf(constants.DISK_TEMPLATES), ht.TDict)), |
|
157 | 156 |
"Disk templates' parameter defaults") |
158 | 157 |
|
159 | 158 |
# Parameters for node resource model |
... | ... | |
188 | 187 |
#: Utility function for testing NIC definitions |
189 | 188 |
_TestNicDef = \ |
190 | 189 |
ht.Comment("NIC parameters")(ht.TDictOf(ht.TElemOf(constants.INIC_PARAMS), |
191 |
ht.TOr(ht.TNone, ht.TNonEmptyString)))
|
|
190 |
ht.TMaybeString))
|
|
192 | 191 |
|
193 | 192 |
_TSetParamsResultItemItems = [ |
194 | 193 |
ht.Comment("name of changed parameter")(ht.TNonEmptyString), |
... | ... | |
325 | 324 |
template_check = ht.TElemOf(constants.DISK_TEMPLATES) |
326 | 325 |
|
327 | 326 |
if accept_none: |
328 |
template_check = ht.TOr(ht.TNone, template_check)
|
|
327 |
template_check = ht.TMaybe(template_check)
|
|
329 | 328 |
|
330 | 329 |
return ht.TAnd(template_check, _CheckFileStorage) |
331 | 330 |
|
... | ... | |
350 | 349 |
_CheckNetworkType = ht.TElemOf(constants.NETWORK_VALID_TYPES) |
351 | 350 |
|
352 | 351 |
#: Network type parameter |
353 |
_PNetworkType = ("network_type", None, ht.TOr(ht.TNone, _CheckNetworkType),
|
|
352 |
_PNetworkType = ("network_type", None, ht.TMaybe(_CheckNetworkType),
|
|
354 | 353 |
"Network type") |
355 | 354 |
|
356 | 355 |
|
... | ... | |
599 | 598 |
WITH_LU = True |
600 | 599 |
OP_PARAMS = [ |
601 | 600 |
("dry_run", None, ht.TMaybeBool, "Run checks only, don't execute"), |
602 |
("debug_level", None, ht.TOr(ht.TNone, ht.TNonNegativeInt), "Debug level"),
|
|
601 |
("debug_level", None, ht.TMaybe(ht.TNonNegativeInt), "Debug level"),
|
|
603 | 602 |
("priority", constants.OP_PRIO_DEFAULT, |
604 | 603 |
ht.TElemOf(constants.OP_PRIO_SUBMIT_VALID), "Opcode priority"), |
605 | 604 |
(DEPEND_ATTR, None, _BuildJobDepCheck(True), |
... | ... | |
864 | 863 |
OP_PARAMS = [ |
865 | 864 |
_PHvState, |
866 | 865 |
_PDiskState, |
867 |
("vg_name", None, ht.TOr(ht.TNone, ht.TString), "Volume group name"),
|
|
866 |
("vg_name", None, ht.TMaybe(ht.TString), "Volume group name"),
|
|
868 | 867 |
("enabled_hypervisors", None, |
869 |
ht.TOr(ht.TNone,
|
|
870 |
ht.TAnd(ht.TListOf(ht.TElemOf(constants.HYPER_TYPES)), ht.TTrue)),
|
|
868 |
ht.TMaybe(ht.TAnd(ht.TListOf(ht.TElemOf(constants.HYPER_TYPES)),
|
|
869 |
ht.TTrue)),
|
|
871 | 870 |
"List of enabled hypervisors"), |
872 | 871 |
("hvparams", None, |
873 |
ht.TOr(ht.TNone, ht.TDictOf(ht.TNonEmptyString, ht.TDict)),
|
|
872 |
ht.TMaybe(ht.TDictOf(ht.TNonEmptyString, ht.TDict)),
|
|
874 | 873 |
"Cluster-wide hypervisor parameter defaults, hypervisor-dependent"), |
875 |
("beparams", None, ht.TOr(ht.TNone, ht.TDict),
|
|
874 |
("beparams", None, ht.TMaybeDict,
|
|
876 | 875 |
"Cluster-wide backend parameter defaults"), |
877 |
("os_hvp", None, ht.TOr(ht.TNone, ht.TDictOf(ht.TNonEmptyString, ht.TDict)),
|
|
876 |
("os_hvp", None, ht.TMaybe(ht.TDictOf(ht.TNonEmptyString, ht.TDict)),
|
|
878 | 877 |
"Cluster-wide per-OS hypervisor parameter defaults"), |
879 | 878 |
("osparams", None, |
880 |
ht.TOr(ht.TNone, ht.TDictOf(ht.TNonEmptyString, ht.TDict)),
|
|
879 |
ht.TMaybe(ht.TDictOf(ht.TNonEmptyString, ht.TDict)),
|
|
881 | 880 |
"Cluster-wide OS parameter defaults"), |
882 | 881 |
_PDiskParams, |
883 |
("candidate_pool_size", None, ht.TOr(ht.TNone, ht.TPositiveInt),
|
|
882 |
("candidate_pool_size", None, ht.TMaybe(ht.TPositiveInt),
|
|
884 | 883 |
"Master candidate pool size"), |
885 | 884 |
("uid_pool", None, ht.NoType, |
886 | 885 |
"Set UID pool, must be list of lists describing UID ranges (two items," |
... | ... | |
899 | 898 |
("ndparams", None, ht.TMaybeDict, "Cluster-wide node parameter defaults"), |
900 | 899 |
("ipolicy", None, ht.TMaybeDict, |
901 | 900 |
"Cluster-wide :ref:`instance policy <rapi-ipolicy>` specs"), |
902 |
("drbd_helper", None, ht.TOr(ht.TNone, ht.TString), "DRBD helper program"),
|
|
903 |
("default_iallocator", None, ht.TOr(ht.TNone, ht.TString),
|
|
901 |
("drbd_helper", None, ht.TMaybe(ht.TString), "DRBD helper program"),
|
|
902 |
("default_iallocator", None, ht.TMaybe(ht.TString),
|
|
904 | 903 |
"Default iallocator for cluster"), |
905 |
("master_netdev", None, ht.TOr(ht.TNone, ht.TString),
|
|
904 |
("master_netdev", None, ht.TMaybe(ht.TString),
|
|
906 | 905 |
"Master network device"), |
907 |
("master_netmask", None, ht.TOr(ht.TNone, ht.TInt),
|
|
906 |
("master_netmask", None, ht.TMaybe(ht.TNonNegativeInt),
|
|
908 | 907 |
"Netmask of the master IP"), |
909 | 908 |
("reserved_lvs", None, ht.TMaybeListOf(ht.TNonEmptyString), |
910 | 909 |
"List of reserved LVs"), |
... | ... | |
957 | 956 |
_PUseLocking, |
958 | 957 |
("fields", ht.NoDefault, ht.TListOf(ht.TNonEmptyString), |
959 | 958 |
"Requested fields"), |
960 |
("qfilter", None, ht.TOr(ht.TNone, ht.TList),
|
|
959 |
("qfilter", None, ht.TMaybe(ht.TList),
|
|
961 | 960 |
"Query filter"), |
962 | 961 |
] |
963 | 962 |
OP_RESULT = \ |
... | ... | |
1246 | 1245 |
" or ".join("``%s``" % i for i in sorted(constants.DISK_ACCESS_SET)))), |
1247 | 1246 |
("disk_template", ht.NoDefault, _BuildDiskTemplateCheck(True), |
1248 | 1247 |
"Disk template"), |
1249 |
("file_driver", None, ht.TOr(ht.TNone, ht.TElemOf(constants.FILE_DRIVER)),
|
|
1248 |
("file_driver", None, ht.TMaybe(ht.TElemOf(constants.FILE_DRIVER)),
|
|
1250 | 1249 |
"Driver for file-backed disks"), |
1251 | 1250 |
("file_storage_dir", None, ht.TMaybeString, |
1252 | 1251 |
"Directory for storing file-backed disks"), |
... | ... | |
1273 | 1272 |
("os_type", None, ht.TMaybeString, "Operating system"), |
1274 | 1273 |
("pnode", None, ht.TMaybeString, "Primary node"), |
1275 | 1274 |
("snode", None, ht.TMaybeString, "Secondary node"), |
1276 |
("source_handshake", None, ht.TOr(ht.TNone, ht.TList),
|
|
1275 |
("source_handshake", None, ht.TMaybe(ht.TList),
|
|
1277 | 1276 |
"Signed handshake from source (remote import only)"), |
1278 | 1277 |
("source_instance_name", None, ht.TMaybeString, |
1279 | 1278 |
"Source instance name (remote import only)"), |
... | ... | |
1642 | 1641 |
("runtime_mem", None, ht.TMaybePositiveInt, "New runtime memory"), |
1643 | 1642 |
("hvparams", ht.EmptyDict, ht.TDict, |
1644 | 1643 |
"Per-instance hypervisor parameters, hypervisor-dependent"), |
1645 |
("disk_template", None, ht.TOr(ht.TNone, _BuildDiskTemplateCheck(False)),
|
|
1644 |
("disk_template", None, ht.TMaybe(_BuildDiskTemplateCheck(False)),
|
|
1646 | 1645 |
"Disk template for instance"), |
1647 | 1646 |
("remote_node", None, ht.TMaybeString, |
1648 | 1647 |
"Secondary node (used when changing disk template)"), |
... | ... | |
1808 | 1807 |
("mode", ht.NoDefault, ht.TElemOf(constants.EXPORT_MODES), |
1809 | 1808 |
"Export mode"), |
1810 | 1809 |
] |
1811 |
OP_RESULT = ht.TOr(ht.TNone, ht.TDict)
|
|
1810 |
OP_RESULT = ht.TMaybeDict
|
|
1812 | 1811 |
|
1813 | 1812 |
|
1814 | 1813 |
class OpBackupExport(OpCode): |
... | ... | |
1842 | 1841 |
"Whether to ignore failures while removing instances"), |
1843 | 1842 |
("mode", constants.EXPORT_MODE_LOCAL, ht.TElemOf(constants.EXPORT_MODES), |
1844 | 1843 |
"Export mode"), |
1845 |
("x509_key_name", None, ht.TOr(ht.TNone, ht.TList),
|
|
1844 |
("x509_key_name", None, ht.TMaybe(ht.TList),
|
|
1846 | 1845 |
"Name of X509 key (remote export only)"), |
1847 | 1846 |
("destination_x509_ca", None, ht.TMaybeString, |
1848 | 1847 |
"Destination X509 CA (remote export only)"), |
... | ... | |
1967 | 1966 |
ht.TMaybeListOf(ht.TDictOf(ht.TElemOf([constants.INIC_MAC, |
1968 | 1967 |
constants.INIC_IP, |
1969 | 1968 |
"bridge"]), |
1970 |
ht.TOr(ht.TNone, ht.TNonEmptyString))),
|
|
1969 |
ht.TMaybeString)),
|
|
1971 | 1970 |
None), |
1972 |
("disks", ht.NoDefault, ht.TOr(ht.TNone, ht.TList), None),
|
|
1971 |
("disks", ht.NoDefault, ht.TMaybe(ht.TList), None),
|
|
1973 | 1972 |
("hypervisor", None, ht.TMaybeString, None), |
1974 | 1973 |
("allocator", None, ht.TMaybeString, None), |
1975 | 1974 |
("tags", ht.EmptyList, ht.TListOf(ht.TNonEmptyString), None), |
1976 |
("memory", None, ht.TOr(ht.TNone, ht.TNonNegativeInt), None),
|
|
1977 |
("vcpus", None, ht.TOr(ht.TNone, ht.TNonNegativeInt), None),
|
|
1975 |
("memory", None, ht.TMaybe(ht.TNonNegativeInt), None),
|
|
1976 |
("vcpus", None, ht.TMaybe(ht.TNonNegativeInt), None),
|
|
1978 | 1977 |
("os", None, ht.TMaybeString, None), |
1979 | 1978 |
("disk_template", None, ht.TMaybeString, None), |
1980 | 1979 |
("instances", None, ht.TMaybeListOf(ht.TNonEmptyString), None), |
1981 | 1980 |
("evac_mode", None, |
1982 |
ht.TOr(ht.TNone, ht.TElemOf(constants.IALLOCATOR_NEVAC_MODES)), None),
|
|
1981 |
ht.TMaybe(ht.TElemOf(constants.IALLOCATOR_NEVAC_MODES)), None),
|
|
1983 | 1982 |
("target_groups", None, ht.TMaybeListOf(ht.TNonEmptyString), None), |
1984 | 1983 |
("spindle_use", 1, ht.TNonNegativeInt, None), |
1985 | 1984 |
("count", 1, ht.TNonNegativeInt, None), |
... | ... | |
2026 | 2025 |
("mac_prefix", None, ht.TMaybeString, |
2027 | 2026 |
"MAC address prefix that overrides cluster one"), |
2028 | 2027 |
("add_reserved_ips", None, |
2029 |
ht.TOr(ht.TNone, ht.TListOf(_CheckCIDRAddrNotation)),
|
|
2028 |
ht.TMaybe(ht.TListOf(_CheckCIDRAddrNotation)),
|
|
2030 | 2029 |
"Which IP addresses to reserve"), |
2031 | 2030 |
("tags", ht.EmptyList, ht.TListOf(ht.TNonEmptyString), "Network tags"), |
2032 | 2031 |
] |
... | ... | |
2058 | 2057 |
("mac_prefix", None, ht.TMaybeString, |
2059 | 2058 |
"MAC address prefix that overrides cluster one"), |
2060 | 2059 |
("add_reserved_ips", None, |
2061 |
ht.TOr(ht.TNone, ht.TListOf(_CheckCIDRAddrNotation)),
|
|
2060 |
ht.TMaybe(ht.TListOf(_CheckCIDRAddrNotation)),
|
|
2062 | 2061 |
"Which external IP addresses to reserve"), |
2063 | 2062 |
("remove_reserved_ips", None, |
2064 |
ht.TOr(ht.TNone, ht.TListOf(_CheckCIDRAddrNotation)),
|
|
2063 |
ht.TMaybe(ht.TListOf(_CheckCIDRAddrNotation)),
|
|
2065 | 2064 |
"Which external IP addresses to release"), |
2066 | 2065 |
] |
2067 | 2066 |
OP_RESULT = ht.TNone |
Also available in: Unified diff