def _update_ipv4_settings(connection, ipv4_method, ipv4_address): """Edit IPv4 settings for network manager connections.""" settings = connection.get_setting_ip4_config() if not settings: settings = nm.SettingIP4Config.new() connection.add_setting(settings) settings.set_property(nm.SETTING_IP_CONFIG_METHOD, ipv4_method) if ipv4_method == nm.SETTING_IP4_CONFIG_METHOD_MANUAL and ipv4_address: ipv4_address_int = ipv4_string_to_int(ipv4_address) ipv4_prefix = nm.utils_ip4_get_default_prefix(ipv4_address_int) address = nm.IPAddress.new(socket.AF_INET, ipv4_address, ipv4_prefix) settings.add_address(address) settings.set_property(nm.SETTING_IP_CONFIG_GATEWAY, '0.0.0.0') else: settings.clear_addresses()
def _update_common_settings(connection, connection_uuid, name, type_, interface, zone, ipv4_method, ipv4_address): """Create/edit basic settings for network manager connections.""" if not connection: connection = nm.SimpleConnection.new() # Connection settings = connection.get_setting_connection() if not settings: settings = nm.SettingConnection.new() connection.add_setting(settings) settings.set_property(nm.SETTING_CONNECTION_UUID, connection_uuid) settings.set_property(nm.SETTING_CONNECTION_ID, name) settings.set_property(nm.SETTING_CONNECTION_TYPE, type_) settings.set_property(nm.SETTING_CONNECTION_INTERFACE_NAME, interface) settings.set_property(nm.SETTING_CONNECTION_ZONE, zone) # IPv4 settings = connection.get_setting_ip4_config() if not settings: settings = nm.SettingIP4Config.new() connection.add_setting(settings) settings.set_property(nm.SETTING_IP_CONFIG_METHOD, ipv4_method) if ipv4_method == nm.SETTING_IP4_CONFIG_METHOD_MANUAL and ipv4_address: ipv4_address_int = ipv4_string_to_int(ipv4_address) ipv4_prefix = nm.utils_ip4_get_default_prefix(ipv4_address_int) address = nm.IPAddress.new(socket.AF_INET, ipv4_address, ipv4_prefix) settings.add_address(address) settings.set_property(nm.SETTING_IP_CONFIG_GATEWAY, '0.0.0.0') else: settings.clear_addresses() return connection