@@ -1044,6 +1044,7 @@ class SubnetBasedNetworkToolDefinition:
1044
1044
__FIELD_ROUTES = "routes"
1045
1045
__FIELD_ROUTES_IPV4 = "routes-v4"
1046
1046
__FIELD_ROUTES_IPV6 = "routes-v6"
1047
+ __FIELD_TYPE = "type"
1047
1048
1048
1049
def __init__ (
1049
1050
self ,
@@ -1067,6 +1068,7 @@ def __init__(
1067
1068
self .__ipv6_ranges : typing .List [HostNetworkRange ] = []
1068
1069
self .__ipv4_routes : typing .List [HostNetworkRoute ] = []
1069
1070
self .__ipv6_routes : typing .List [HostNetworkRoute ] = []
1071
+ self .__type : typing .Optional [str ] = None
1070
1072
1071
1073
self .__parse_raw (raw_config )
1072
1074
@@ -1092,6 +1094,13 @@ def __parse_raw(self, raw_definition: typing.Dict[str, typing.Any]):
1092
1094
alone_field = self .__FIELD_ROUTES ,
1093
1095
)
1094
1096
1097
+ _validate_fields_one_of (
1098
+ [
1099
+ self .__FIELD_TYPE ,
1100
+ ],
1101
+ raw_definition ,
1102
+ parent_name = self .__object_name ,
1103
+ )
1095
1104
self .__parse_raw_range_field (raw_definition , self .__FIELD_RANGES )
1096
1105
self .__parse_raw_range_field (
1097
1106
raw_definition , self .__FIELD_RANGES_IPV4 , ip_version = 4
@@ -1107,6 +1116,7 @@ def __parse_raw(self, raw_definition: typing.Dict[str, typing.Any]):
1107
1116
self .__parse_raw_route_field (
1108
1117
raw_definition , self .__FIELD_ROUTES_IPV6 , ip_version = 6
1109
1118
)
1119
+ self .__parse_raw_type_field (raw_definition , self .__FIELD_TYPE )
1110
1120
1111
1121
def __parse_raw_range_field (
1112
1122
self ,
@@ -1190,6 +1200,21 @@ def __parse_raw_route_field(
1190
1200
if ipv6_route :
1191
1201
self .__ipv6_routes .append (ipv6_route )
1192
1202
1203
+ @property
1204
+ def type (self ) -> str :
1205
+ """The type of the tool for multus."""
1206
+ return self .__type
1207
+
1208
+ def __parse_raw_type_field (self , raw_definition , field_name : str ):
1209
+ if field_name in raw_definition :
1210
+ type = _validate_parse_field_type (
1211
+ field_name ,
1212
+ raw_definition ,
1213
+ str ,
1214
+ parent_name = self .__object_name ,
1215
+ )
1216
+ self .__type = type
1217
+
1193
1218
1194
1219
class MultusNetworkDefinition (SubnetBasedNetworkToolDefinition ):
1195
1220
"""Parses and holds Multus configuration for a given network."""
0 commit comments