diff options
author | Liam Hopkins <liamh@google.com> | 2019-08-07 14:38:57 -0700 |
---|---|---|
committer | Liam Hopkins <liamh@google.com> | 2019-08-07 16:20:50 -0700 |
commit | 5f6d59d163b0ef8d40340e3d0f15891d2fdf97c5 (patch) | |
tree | bf24105b66b85cac6e0edfc96cfba7d9d3487ffc /packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py | |
parent | d6bbdc9ee77a185e0b318735b35d2cbdca16971b (diff) | |
download | google-compute-image-packages-5f6d59d163b0ef8d40340e3d0f15891d2fdf97c5.tar.gz |
Restart primary networking to detect new hostname.
Diffstat (limited to 'packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py')
-rw-r--r-- | packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py b/packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py index e152464..89af61e 100644 --- a/packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py +++ b/packages/python-google-compute-engine/google_compute_engine/networking/network_daemon.py @@ -22,6 +22,7 @@ Update IP forwarding when metadata changes. import logging.handlers import optparse import random +import socket from google_compute_engine import config_manager from google_compute_engine import constants @@ -31,6 +32,7 @@ from google_compute_engine import metadata_watcher from google_compute_engine import network_utils from google_compute_engine.networking.ip_forwarding import ip_forwarding from google_compute_engine.networking.network_setup import network_setup +from google_compute_engine.compat import distro_utils LOCKFILE = constants.LOCALSTATEDIR + '/lock/google_networking.lock' @@ -62,6 +64,7 @@ class NetworkDaemon(object): self.ip_forwarding_enabled = ip_forwarding_enabled self.network_setup_enabled = network_setup_enabled self.target_instance_ips = target_instance_ips + self.dhclient_script = dhclient_script self.ip_forwarding = ip_forwarding.IpForwarding( proto_id=proto_id, debug=debug) @@ -69,6 +72,7 @@ class NetworkDaemon(object): dhclient_script=dhclient_script, dhcp_command=dhcp_command, debug=debug) self.network_utils = network_utils.NetworkUtils(logger=self.logger) self.watcher = metadata_watcher.MetadataWatcher(logger=self.logger) + self.distro_utils = distro_utils.Utils(debug=debug) try: with file_utils.LockFile(LOCKFILE): @@ -76,7 +80,8 @@ class NetworkDaemon(object): timeout = 60 + random.randint(0, 30) self.watcher.WatchMetadata( self.HandleNetworkInterfaces, - metadata_key=self.network_interface_metadata_key, recursive=True, + metadata_key="instance/", + recursive=True, timeout=timeout) except (IOError, OSError) as e: self.logger.warning(str(e)) @@ -87,7 +92,7 @@ class NetworkDaemon(object): Args: result: dict, the metadata response with the network interfaces. """ - network_interfaces = self._ExtractInterfaceMetadata(result) + network_interfaces = self._ExtractInterfaceMetadata(result['networkInterfaces']) if self.network_setup_enabled: default_interface = network_interfaces[0] @@ -98,10 +103,13 @@ class NetworkDaemon(object): self.network_setup.EnableNetworkInterfaces( [interface.name for interface in network_interfaces[1:]]) - for interface in network_interfaces: - if self.ip_forwarding_enabled: - self.ip_forwarding.HandleForwardedIps( - interface.name, interface.forwarded_ips, interface.ip) + if self.ip_forwarding_enabled: + for interface in network_interfaces: + self.ip_forwarding.HandleForwardedIps(interface.name, + interface.forwarded_ips, + interface.ip) + if socket.gethostname() != result['hostname']: + distro_utils.RestartNetworking(self.logger) def _ExtractInterfaceMetadata(self, metadata): """Extracts network interface metadata. |