Skip to content

Commit

Permalink
Implement backup - restore and update test
Browse files Browse the repository at this point in the history
  • Loading branch information
Josue-T committed Nov 30, 2018
1 parent 4dec7f0 commit 5a3ff46
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 9 deletions.
6 changes: 4 additions & 2 deletions data/hooks/backup/05-conf_ldap
Expand Up @@ -13,5 +13,7 @@ backup_dir="${1}/conf/ldap"
ynh_backup "/etc/ldap/slapd.conf" "${backup_dir}/slapd.conf"
sudo slapcat -b cn=config -l "${backup_dir}/cn=config.master.ldif"

# Backup the database
sudo slapcat -b dc=yunohost,dc=org -l "${backup_dir}/dc=yunohost-dc=org.ldif"
# Backup the database (all but not the permission except the permission for mail, metronome and sftp
sudo slapcat -b dc=yunohost,dc=org \
-H 'ldap:///dc=yunohost,dc=org???(|(!(objectClass=permissionYnh))(cn=main.mail)(cn=main.metronome)(cn=main.sftp))' \
-l "${backup_dir}/dc=yunohost-dc=org.ldif"
8 changes: 8 additions & 0 deletions src/yunohost/backup.py
Expand Up @@ -683,6 +683,11 @@ def _collect_app_files(self, app):
raise_on_error=True, chdir=tmp_app_bkp_dir, env=env_dict)

self._import_to_list_to_backup(env_dict["YNH_BACKUP_CSV"])

# backup permissions
ldap_url = "ldap:///dc=yunohost,dc=org???(&(objectClass=permissionYnh)(cn=*.%s))" % app
os.system("slapcat -b dc=yunohost,dc=org -H '%s' -l '%s/permission.ldif'" % (ldap_url, app_setting_path))

except:
abs_tmp_app_dir = os.path.join(self.work_dir, 'apps/', app)
shutil.rmtree(abs_tmp_app_dir, ignore_errors=True)
Expand Down Expand Up @@ -1290,6 +1295,9 @@ def copytree(src, dst, symlinks=False, ignore=None):
filesystem.chmod(app_settings_new_path, 0400, 0400, True)
filesystem.chown(app_scripts_new_path, 'admin', None, True)

# Restore permissions
os.system("slapadd -l '%s/permission.ldif'" % app_settings_in_archive)

# Copy the app scripts to a writable temporary folder
# FIXME : use 'install -Dm555' or something similar to what's done
# in the backup method ?
Expand Down
6 changes: 3 additions & 3 deletions src/yunohost/tests/test_appurl.py
Expand Up @@ -6,9 +6,9 @@
from yunohost.domain import _get_maindomain, domain_url_available, _normalize_domain_path

# Instantiate LDAP Authenticator
auth_identifier = ('ldap', 'ldap-anonymous')
auth_parameters = {'uri': 'ldap://localhost:389', 'base_dn': 'dc=yunohost,dc=org'}
auth = init_authenticator(auth_identifier, auth_parameters)
AUTH_IDENTIFIER = ('ldap', 'as-root')
AUTH_PARAMETERS = {'uri': 'ldapi://%2Fvar%2Frun%2Fslapd%2Fldapi', 'base_dn': 'dc=yunohost,dc=org'}
auth = init_authenticator(AUTH_IDENTIFIER, AUTH_PARAMETERS)


# Get main domain
Expand Down
4 changes: 2 additions & 2 deletions src/yunohost/tests/test_backuprestore.py
Expand Up @@ -18,8 +18,8 @@
maindomain = _get_maindomain()

# Instantiate LDAP Authenticator
AUTH_IDENTIFIER = ('ldap', 'ldap-anonymous')
AUTH_PARAMETERS = {'uri': 'ldap://localhost:389', 'base_dn': 'dc=yunohost,dc=org'}
AUTH_IDENTIFIER = ('ldap', 'as-root')
AUTH_PARAMETERS = {'uri': 'ldapi://%2Fvar%2Frun%2Fslapd%2Fldapi', 'base_dn': 'dc=yunohost,dc=org'}
auth = None

def setup_function(function):
Expand Down
4 changes: 2 additions & 2 deletions src/yunohost/tests/test_changeurl.py
Expand Up @@ -9,8 +9,8 @@
from moulinette.core import MoulinetteError

# Instantiate LDAP Authenticator
AUTH_IDENTIFIER = ('ldap', 'ldap-anonymous')
AUTH_PARAMETERS = {'uri': 'ldap://localhost:389', 'base_dn': 'dc=yunohost,dc=org'}
AUTH_IDENTIFIER = ('ldap', 'as-root')
AUTH_PARAMETERS = {'uri': 'ldapi://%2Fvar%2Frun%2Fslapd%2Fldapi', 'base_dn': 'dc=yunohost,dc=org'}

auth = init_authenticator(AUTH_IDENTIFIER, AUTH_PARAMETERS)

Expand Down

0 comments on commit 5a3ff46

Please sign in to comment.