Merge pull request #20 from sh8121att/network_ignore_metadata
Network ignore metadata
This commit is contained in:
commit
04f98f9a06
@ -538,6 +538,12 @@ class MaasTaskRunner(drivers.DriverTaskRunner):
|
||||
}
|
||||
|
||||
for l in design_links:
|
||||
if l.metalabels is not None:
|
||||
# TODO move metalabels into config
|
||||
if 'noconfig' in l.metalabels:
|
||||
self.logger.info("NetworkLink %s marked 'noconfig', skipping configuration including allowed networks." % (l.name))
|
||||
continue
|
||||
|
||||
fabrics_found = set()
|
||||
|
||||
# First loop through the possible Networks on this NetworkLink
|
||||
@ -711,6 +717,12 @@ class MaasTaskRunner(drivers.DriverTaskRunner):
|
||||
success_rate = 0
|
||||
|
||||
for n in design_networks:
|
||||
if n.metalabels is not None:
|
||||
# TODO move metalabels into config
|
||||
if 'noconfig' in n.metalabels:
|
||||
self.logger.info("Network %s marked 'noconfig', skipping validation." % (l.name))
|
||||
continue
|
||||
|
||||
exists = subnet_list.query({'cidr': n.cidr})
|
||||
if len(exists) > 0:
|
||||
subnet = exists[0]
|
||||
@ -892,6 +904,12 @@ class MaasTaskRunner(drivers.DriverTaskRunner):
|
||||
for i in node.interfaces:
|
||||
nl = site_design.get_network_link(i.network_link)
|
||||
|
||||
if nl.metalabels is not None:
|
||||
if 'noconfig' in nl.metalabels:
|
||||
self.logger.info("Interface %s connected to NetworkLink %s marked 'noconfig', skipping." %
|
||||
(i.device_name, nl.name))
|
||||
continue
|
||||
|
||||
fabric = fabrics.singleton({'name': nl.name})
|
||||
|
||||
if fabric is None:
|
||||
|
@ -125,6 +125,15 @@ class YamlIngester(IngesterPlugin):
|
||||
model.name = metadata.get('name', '')
|
||||
model.site = metadata.get('region', '')
|
||||
|
||||
metalabels = metadata.get('labels', [])
|
||||
|
||||
for l in metalabels:
|
||||
if model.metalabels is None:
|
||||
model.metalabels = [l]
|
||||
else:
|
||||
model.metalabels.append(l)
|
||||
|
||||
|
||||
bonding = spec.get('bonding', {})
|
||||
model.bonding_mode = bonding.get('mode',
|
||||
hd_fields.NetworkLinkBondingMode.Disabled)
|
||||
@ -150,42 +159,50 @@ class YamlIngester(IngesterPlugin):
|
||||
else:
|
||||
raise ValueError('Unknown API version of object')
|
||||
elif kind == 'Network':
|
||||
if api_version == "v1":
|
||||
model = objects.Network()
|
||||
if api_version == "v1":
|
||||
model = objects.Network()
|
||||
|
||||
metadata = d.get('metadata', {})
|
||||
spec = d.get('spec', {})
|
||||
metadata = d.get('metadata', {})
|
||||
spec = d.get('spec', {})
|
||||
|
||||
model.name = metadata.get('name', '')
|
||||
model.site = metadata.get('region', '')
|
||||
model.name = metadata.get('name', '')
|
||||
model.site = metadata.get('region', '')
|
||||
|
||||
model.cidr = spec.get('cidr', None)
|
||||
model.allocation_strategy = spec.get('allocation', 'static')
|
||||
model.vlan_id = spec.get('vlan', None)
|
||||
model.mtu = spec.get('mtu', None)
|
||||
metalabels = metadata.get('labels', [])
|
||||
|
||||
dns = spec.get('dns', {})
|
||||
model.dns_domain = dns.get('domain', 'local')
|
||||
model.dns_servers = dns.get('servers', None)
|
||||
for l in metalabels:
|
||||
if model.metalabels is None:
|
||||
model.metalabels = [l]
|
||||
else:
|
||||
model.metalabels.append(l)
|
||||
|
||||
model.cidr = spec.get('cidr', None)
|
||||
model.allocation_strategy = spec.get('allocation', 'static')
|
||||
model.vlan_id = spec.get('vlan', None)
|
||||
model.mtu = spec.get('mtu', None)
|
||||
|
||||
ranges = spec.get('ranges', [])
|
||||
model.ranges = []
|
||||
dns = spec.get('dns', {})
|
||||
model.dns_domain = dns.get('domain', 'local')
|
||||
model.dns_servers = dns.get('servers', None)
|
||||
|
||||
for r in ranges:
|
||||
model.ranges.append({'type': r.get('type', None),
|
||||
'start': r.get('start', None),
|
||||
'end': r.get('end', None),
|
||||
})
|
||||
ranges = spec.get('ranges', [])
|
||||
model.ranges = []
|
||||
|
||||
routes = spec.get('routes', [])
|
||||
model.routes = []
|
||||
for r in ranges:
|
||||
model.ranges.append({'type': r.get('type', None),
|
||||
'start': r.get('start', None),
|
||||
'end': r.get('end', None),
|
||||
})
|
||||
|
||||
for r in routes:
|
||||
model.routes.append({'subnet': r.get('subnet', None),
|
||||
'gateway': r.get('gateway', None),
|
||||
'metric': r.get('metric', None),
|
||||
})
|
||||
models.append(model)
|
||||
routes = spec.get('routes', [])
|
||||
model.routes = []
|
||||
|
||||
for r in routes:
|
||||
model.routes.append({'subnet': r.get('subnet', None),
|
||||
'gateway': r.get('gateway', None),
|
||||
'metric': r.get('metric', None),
|
||||
})
|
||||
models.append(model)
|
||||
elif kind == 'HardwareProfile':
|
||||
if api_version == 'v1':
|
||||
metadata = d.get('metadata', {})
|
||||
|
@ -50,7 +50,7 @@ class HostProfile(base.DrydockPersistentObject, base.DrydockObject):
|
||||
'image': obj_fields.StringField(nullable=True),
|
||||
'kernel': obj_fields.StringField(nullable=True),
|
||||
'kernel_params': obj_fields.DictOfStringsField(nullable=True),
|
||||
'primary_network': obj_fields.StringField(nullable=False),
|
||||
'primary_network': obj_fields.StringField(nullable=True),
|
||||
}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
|
@ -32,6 +32,7 @@ class NetworkLink(base.DrydockPersistentObject, base.DrydockObject):
|
||||
fields = {
|
||||
'name': ovo_fields.StringField(),
|
||||
'site': ovo_fields.StringField(),
|
||||
'metalabels': ovo_fields.ListOfStringsField(nullable=True),
|
||||
'bonding_mode': hd_fields.NetworkLinkBondingModeField(
|
||||
default=hd_fields.NetworkLinkBondingMode.Disabled),
|
||||
'bonding_xmit_hash': ovo_fields.StringField(nullable=True, default='layer3+4'),
|
||||
@ -76,6 +77,7 @@ class Network(base.DrydockPersistentObject, base.DrydockObject):
|
||||
fields = {
|
||||
'name': ovo_fields.StringField(),
|
||||
'site': ovo_fields.StringField(),
|
||||
'metalabels': ovo_fields.ListOfStringsField(nullable=True),
|
||||
'cidr': ovo_fields.StringField(),
|
||||
'allocation_strategy': ovo_fields.StringField(),
|
||||
'vlan_id': ovo_fields.StringField(nullable=True),
|
||||
|
Loading…
x
Reference in New Issue
Block a user