Drop some hacks that we needed for Ubuntu 18.04
* certbot's PPA is no longer needed because a recent version is now included in the Ubuntu respository. * Un-pin b2sdk (reverts69d8fdef99
andd829d74048
). * Revert boto+s3 workaround for duplicity (partial revert of99474b348f
). * Revert old "fix boto 2 conflict on Google Compute Engine instances" (cf33be4596
) which is probably no longer needed.
This commit is contained in:
parent
78569e9a88
commit
b41a0ad80e
5 changed files with 4 additions and 22 deletions
|
@ -12,7 +12,7 @@ import dateutil.parser, dateutil.relativedelta, dateutil.tz
|
||||||
import rtyaml
|
import rtyaml
|
||||||
from exclusiveprocess import Lock
|
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):
|
def backup_status(env):
|
||||||
# If backups are dissbled, return no status.
|
# If backups are dissbled, return no status.
|
||||||
|
@ -197,12 +197,7 @@ def get_duplicity_target_url(config):
|
||||||
from urllib.parse import urlsplit, urlunsplit
|
from urllib.parse import urlsplit, urlunsplit
|
||||||
target = list(urlsplit(target))
|
target = list(urlsplit(target))
|
||||||
|
|
||||||
# Duplicity now defaults to boto3 as the backend for S3, but we have
|
# Although we store the S3 hostname in the target URL,
|
||||||
# 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,
|
|
||||||
# duplicity no longer accepts it in the target URL. The hostname in
|
# duplicity no longer accepts it in the target URL. The hostname in
|
||||||
# the target URL must be the bucket name. The hostname is passed
|
# the target URL must be the bucket name. The hostname is passed
|
||||||
# via get_duplicity_additional_args. Move the first part of the
|
# via get_duplicity_additional_args. Move the first part of the
|
||||||
|
@ -452,7 +447,6 @@ def list_target_files(config):
|
||||||
|
|
||||||
elif target.scheme == "s3":
|
elif target.scheme == "s3":
|
||||||
# match to a Region
|
# match to a Region
|
||||||
fix_boto() # must call prior to importing boto
|
|
||||||
import boto.s3
|
import boto.s3
|
||||||
from boto.exception import BotoServerError
|
from boto.exception import BotoServerError
|
||||||
custom_region = False
|
custom_region = False
|
||||||
|
|
|
@ -121,7 +121,6 @@ def index():
|
||||||
no_users_exist = (len(get_mail_users(env)) == 0)
|
no_users_exist = (len(get_mail_users(env)) == 0)
|
||||||
no_admins_exist = (len(get_admins(env)) == 0)
|
no_admins_exist = (len(get_admins(env)) == 0)
|
||||||
|
|
||||||
utils.fix_boto() # must call prior to importing boto
|
|
||||||
import boto.s3
|
import boto.s3
|
||||||
backup_s3_hosts = [(r.name, r.endpoint) for r in boto.s3.regions()]
|
backup_s3_hosts = [(r.name, r.endpoint) for r in boto.s3.regions()]
|
||||||
|
|
||||||
|
|
|
@ -175,14 +175,6 @@ def wait_for_service(port, public, env, timeout):
|
||||||
return False
|
return False
|
||||||
time.sleep(min(timeout/4, 1))
|
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__":
|
if __name__ == "__main__":
|
||||||
from web_update import get_web_domains
|
from web_update import get_web_domains
|
||||||
env = load_environment()
|
env = load_environment()
|
||||||
|
|
|
@ -30,7 +30,7 @@ apt_install duplicity python-pip virtualenv certbot rsync
|
||||||
# b2sdk is used for backblaze backups.
|
# b2sdk is used for backblaze backups.
|
||||||
# boto is used for amazon aws backups.
|
# boto is used for amazon aws backups.
|
||||||
# Both are installed outside the pipenv, so they can be used by duplicity
|
# 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
|
# Create a virtualenv for the installation of Python 3 packages
|
||||||
# used by the management daemon.
|
# used by the management daemon.
|
||||||
|
@ -52,7 +52,7 @@ hide_output $venv/bin/pip install --upgrade \
|
||||||
flask dnspython python-dateutil expiringdict \
|
flask dnspython python-dateutil expiringdict \
|
||||||
qrcode[pil] pyotp \
|
qrcode[pil] pyotp \
|
||||||
"idna>=2.0.0" "cryptography==2.2.2" psutil postfix-mta-sts-resolver \
|
"idna>=2.0.0" "cryptography==2.2.2" psutil postfix-mta-sts-resolver \
|
||||||
b2sdk==1.14.1 boto
|
b2sdk boto
|
||||||
|
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
|
|
||||||
|
|
|
@ -97,9 +97,6 @@ fi
|
||||||
# come from there and minimal Ubuntu installs may have it turned off.
|
# come from there and minimal Ubuntu installs may have it turned off.
|
||||||
hide_output add-apt-repository -y universe
|
hide_output add-apt-repository -y universe
|
||||||
|
|
||||||
# Install the certbot PPA.
|
|
||||||
hide_output add-apt-repository -y ppa:certbot/certbot
|
|
||||||
|
|
||||||
# Install the duplicity PPA.
|
# Install the duplicity PPA.
|
||||||
hide_output add-apt-repository -y ppa:duplicity-team/duplicity-release-git
|
hide_output add-apt-repository -y ppa:duplicity-team/duplicity-release-git
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue