forked from pool/cloud-init
Accepting request 791202 from Cloud:Tools
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/791202 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/cloud-init?expand=0&rev=69
This commit is contained in:
commit
a931efbd63
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
from cloudinit import helpers
|
from cloudinit import helpers
|
||||||
from cloudinit import log as logging
|
from cloudinit import log as logging
|
||||||
@@ -172,7 +173,53 @@ class Distro(distros.Distro):
|
@@ -172,7 +173,69 @@ class Distro(distros.Distro):
|
||||||
util.write_file(out_fn, str(conf), 0o644)
|
util.write_file(out_fn, str(conf), 0o644)
|
||||||
|
|
||||||
def _write_network_config(self, netconfig):
|
def _write_network_config(self, netconfig):
|
||||||
@ -31,32 +31,48 @@
|
|||||||
+ if_name = config.get('name')
|
+ if_name = config.get('name')
|
||||||
+ subnets = config.get('subnets', [])
|
+ subnets = config.get('subnets', [])
|
||||||
+ config_routes = ''
|
+ config_routes = ''
|
||||||
|
+ has_default_route = False
|
||||||
+ for subnet in subnets:
|
+ for subnet in subnets:
|
||||||
|
+ # Render the default gateway if it is present
|
||||||
|
+ gateway = subnet.get('gateway')
|
||||||
|
+ if gateway:
|
||||||
|
+ config_routes += ' '.join(
|
||||||
|
+ ['default', gateway, '-', '-\n']
|
||||||
|
+ )
|
||||||
|
+ has_default_route = True
|
||||||
|
+ # Render subnet routes
|
||||||
+ routes = subnet.get('routes', [])
|
+ routes = subnet.get('routes', [])
|
||||||
+ for route in routes:
|
+ for route in routes:
|
||||||
+ dest = route.get('destination')
|
+ dest = route.get('destination') or route.get('network')
|
||||||
+ if dest in default_nets:
|
+ if not dest or dest in default_nets:
|
||||||
+ dest = 'default'
|
+ dest = 'default'
|
||||||
+ if dest != 'default':
|
+ if dest != 'default':
|
||||||
+ netmask = route.get('genmask')
|
+ netmask = route.get('netmask')
|
||||||
+ if netmask:
|
+ if netmask:
|
||||||
+ prefix = mask_to_net_prefix(netmask)
|
+ prefix = mask_to_net_prefix(netmask)
|
||||||
+ dest += '/' + str(prefix)
|
+ dest += '/' + str(prefix)
|
||||||
+ if '/' not in dest:
|
+ if '/' not in dest:
|
||||||
+ LOG.warning(
|
+ LOG.warning(
|
||||||
+ 'Route destination has no prefix "%s"', dest
|
+ 'Skipping route; has no prefix "%s"', dest
|
||||||
+ )
|
+ )
|
||||||
|
+ continue
|
||||||
|
+ if dest == 'default' and has_default_route:
|
||||||
|
+ LOG.warning(
|
||||||
|
+ '%s already has default route, skipping "%s"',
|
||||||
|
+ if_name, ' '.join([dest, gateway, '-', '-'])
|
||||||
|
+ )
|
||||||
|
+ continue
|
||||||
|
+ if dest == 'default' and not has_default_route:
|
||||||
|
+ has_default_route = True
|
||||||
+ gateway = route.get('gateway')
|
+ gateway = route.get('gateway')
|
||||||
|
+ if not gateway:
|
||||||
|
+ LOG.warning(
|
||||||
|
+ 'Missing gateway for "%s", skipping', dest
|
||||||
|
+ )
|
||||||
|
+ continue
|
||||||
+ config_routes += ' '.join(
|
+ config_routes += ' '.join(
|
||||||
+ [dest, gateway, '-', '-\n']
|
+ [dest, gateway, '-', '-\n']
|
||||||
+ )
|
+ )
|
||||||
+ if not config_routes:
|
|
||||||
+ dest = 'default'
|
|
||||||
+ gateway = subnet.get('gateway')
|
|
||||||
+ if gateway:
|
|
||||||
+ config_routes += ' '.join(
|
|
||||||
+ [dest, gateway, '-', '-\n']
|
|
||||||
+ )
|
|
||||||
+ if config_routes:
|
+ if config_routes:
|
||||||
+ route_file = '/etc/sysconfig/network/ifroute-%s' % if_name
|
+ route_file = '/etc/sysconfig/network/ifroute-%s' % if_name
|
||||||
+ util.write_file(route_file, config_routes)
|
+ util.write_file(route_file, config_routes)
|
||||||
|
@ -1,3 +1,29 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Mar 27 12:21:00 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
||||||
|
|
||||||
|
- Update cloud-init-write-routes.patch
|
||||||
|
+ In cases where the config contains 2 or more default gateway
|
||||||
|
specifications for an interface only write the first default route,
|
||||||
|
log warning message about skipped routes
|
||||||
|
+ Avoid writing invalid route specification if neither the network
|
||||||
|
nor destination is specified in the route configuration
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 26 17:20:12 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
||||||
|
|
||||||
|
- Update cloud-init-write-routes.patch
|
||||||
|
+ Still need to consider the "network" configuration uption
|
||||||
|
for the v1 config implementation. Fixes regression
|
||||||
|
introduced with update from Wed Feb 12 19:30:42
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 25 18:31:32 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
||||||
|
|
||||||
|
- Update cloud-init-write-routes.patch (bsc#1165296)
|
||||||
|
+ Add the default gateway to the ifroute config file when specified
|
||||||
|
as part of the subnet configuration
|
||||||
|
+ Fix typo to properly extrakt provided netmask data (bsc#1163178)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Feb 13 14:07:50 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
Thu Feb 13 14:07:50 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user