diff --git a/management/python-notifier/python-notifier b/management/python-notifier/python-notifier index 5795ab5..054b7e6 160000 --- a/management/python-notifier/python-notifier +++ b/management/python-notifier/python-notifier @@ -1 +1 @@ -Subproject commit 5795ab564093bd83bcee204cbf8c6c36044d8cea +Subproject commit 054b7e686501e219b0ff44244be931c1c0ae6b8e diff --git a/management/univention-appcenter/python/appcenter/utils.py b/management/univention-appcenter/python/appcenter/utils.py index 2ff577c..394bec9 100644 --- a/management/univention-appcenter/python/appcenter/utils.py +++ b/management/univention-appcenter/python/appcenter/utils.py @@ -94,6 +94,16 @@ def docker_bridge_network_conflict(): return False +def docker_compose_network_conflict(): + docker_compose_net = ipaddr.IPv4Network(ucr_get('appcenter/docker/compose/network', '172.16.1.1/16')) + for name, iface in interfaces.Interfaces().ipv4_interfaces: + if 'network' in iface and 'netmask' in iface: + my_net = ipaddr.IPv4Network('%s/%s' % (iface['network'], iface['netmask'])) + if my_net.overlaps(docker_compose_net): + return True + return False + + def app_is_running(app): from univention.appcenter.app_cache import Apps if isinstance(app, basestring): diff --git a/management/univention-appcenter/umc/python/appcenter/__init__.py b/management/univention-appcenter/umc/python/appcenter/__init__.py index 2bf70eb..6b287c8 100644 --- a/management/univention-appcenter/umc/python/appcenter/__init__.py +++ b/management/univention-appcenter/umc/python/appcenter/__init__.py @@ -63,7 +63,7 @@ from univention.appcenter.exceptions import Abort, NetworkError, AppCenterError from univention.appcenter.packages import reload_package_manager, get_package_manager, package_lock, LOCK_FILE from univention.appcenter.app_cache import Apps, AppCenterCache, default_server from univention.appcenter.udm import _update_modules -from univention.appcenter.utils import docker_is_running, call_process, docker_bridge_network_conflict, send_information, app_is_running, find_hosts_for_master_packages, get_local_fqdn +from univention.appcenter.utils import docker_is_running, call_process, docker_bridge_network_conflict, docker_compose_network_conflict, send_information, app_is_running, find_hosts_for_master_packages, get_local_fqdn from univention.appcenter.log import get_base_logger, log_to_logfile from univention.appcenter.ucr import ucr_instance, ucr_save from univention.appcenter.settings import FileSetting, PasswordFileSetting @@ -274,6 +274,11 @@ class Instance(umcm.Base, ProgressMixin): msg += _('Please either configure a different network for the docker bridge by setting the UCR variable docker/daemon/default/opts/bip to a different network and restart the system,') + ' ' msg += _('or disable the docker support in the AppCenter by setting appcenter/docker to false.') raise umcm.UMC_Error(msg) + if docker_compose_network_conflict(): + msg = _('A conflict between the system network settings and the docker compose default network has been detected.') + '\n\n' + msg += _('Please either configure a different network for docker compose by setting the UCR variable appcenter/docker/compose/network to a different network and restart the system,') + ' ' + msg += _('or disable the docker support in the AppCenter by setting appcenter/docker to false.') + raise umcm.UMC_Error(msg) if not docker_is_running(): MODULE.warn('Docker is not running! Trying to start it now...') call_process(['invoke-rc.d', 'docker', 'start']) diff --git a/test/ucs-ec2-tools b/test/ucs-ec2-tools index 94ea10e..fc9f512 160000 --- a/test/ucs-ec2-tools +++ b/test/ucs-ec2-tools @@ -1 +1 @@ -Subproject commit 94ea10eef74da3c33258201809030f9fcd7d7a6d +Subproject commit fc9f512f23cef2d0b39aef0666f3588c21489a9d