diff --git a/management/backup.py b/management/backup.py index 26a61a0e..ce358e06 100755 --- a/management/backup.py +++ b/management/backup.py @@ -12,7 +12,7 @@ import dateutil.parser, dateutil.relativedelta, dateutil.tz import rtyaml from exclusiveprocess import Lock -from utils import load_environment, shell, wait_for_service, fix_boto +from utils import load_environment, shell, wait_for_service def backup_status(env): # If backups are dissbled, return no status. @@ -197,12 +197,7 @@ def get_duplicity_target_url(config): from urllib.parse import urlsplit, urlunsplit target = list(urlsplit(target)) - # Duplicity now defaults to boto3 as the backend for S3, but we have - # legacy boto installed (boto3 doesn't support Ubuntu 18.04) so - # we retarget for classic boto. - target[0] = "boto+" + target[0] - - # In addition, although we store the S3 hostname in the target URL, + # Although we store the S3 hostname in the target URL, # duplicity no longer accepts it in the target URL. The hostname in # the target URL must be the bucket name. The hostname is passed # via get_duplicity_additional_args. Move the first part of the @@ -452,7 +447,6 @@ def list_target_files(config): elif target.scheme == "s3": # match to a Region - fix_boto() # must call prior to importing boto import boto.s3 from boto.exception import BotoServerError custom_region = False diff --git a/management/daemon.py b/management/daemon.py index 0bbb1ad5..98c6689c 100755 --- a/management/daemon.py +++ b/management/daemon.py @@ -121,7 +121,6 @@ def index(): no_users_exist = (len(get_mail_users(env)) == 0) no_admins_exist = (len(get_admins(env)) == 0) - utils.fix_boto() # must call prior to importing boto import boto.s3 backup_s3_hosts = [(r.name, r.endpoint) for r in boto.s3.regions()] diff --git a/management/utils.py b/management/utils.py index 652b48f6..fc04ed4d 100644 --- a/management/utils.py +++ b/management/utils.py @@ -175,14 +175,6 @@ def wait_for_service(port, public, env, timeout): return False time.sleep(min(timeout/4, 1)) -def fix_boto(): - # Google Compute Engine instances install some Python-2-only boto plugins that - # conflict with boto running under Python 3. Disable boto's default configuration - # file prior to importing boto so that GCE's plugin is not loaded: - import os - os.environ["BOTO_CONFIG"] = "/etc/boto3.cfg" - - if __name__ == "__main__": from web_update import get_web_domains env = load_environment() diff --git a/setup/management.sh b/setup/management.sh index 046c5bac..483a9c5d 100755 --- a/setup/management.sh +++ b/setup/management.sh @@ -30,7 +30,7 @@ apt_install duplicity python-pip virtualenv certbot rsync # b2sdk is used for backblaze backups. # boto is used for amazon aws backups. # Both are installed outside the pipenv, so they can be used by duplicity -hide_output pip3 install --upgrade b2sdk==1.14.1 boto +hide_output pip3 install --upgrade b2sdk boto # Create a virtualenv for the installation of Python 3 packages # used by the management daemon. @@ -52,7 +52,7 @@ hide_output $venv/bin/pip install --upgrade \ flask dnspython python-dateutil expiringdict \ qrcode[pil] pyotp \ "idna>=2.0.0" "cryptography==2.2.2" psutil postfix-mta-sts-resolver \ - b2sdk==1.14.1 boto + b2sdk boto # CONFIGURATION diff --git a/setup/system.sh b/setup/system.sh index 4e438087..b128a6bf 100755 --- a/setup/system.sh +++ b/setup/system.sh @@ -97,9 +97,6 @@ fi # come from there and minimal Ubuntu installs may have it turned off. hide_output add-apt-repository -y universe -# Install the certbot PPA. -hide_output add-apt-repository -y ppa:certbot/certbot - # Install the duplicity PPA. hide_output add-apt-repository -y ppa:duplicity-team/duplicity-release-git