diff options
author | Rob Crittenden <rcritten@redhat.com> | 2008-01-14 12:43:26 -0500 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2008-01-14 12:43:26 -0500 |
commit | c7f3c746ccfd74480064dbe73fbc754548c30927 (patch) | |
tree | e0e8296dd50c0f9815f930713a2b3e917cb83bdf /ipa-server/ipaserver/bindinstance.py | |
parent | 23ac773ada10867767e779823ab5f66c79b0dc04 (diff) | |
download | freeipa.git-c7f3c746ccfd74480064dbe73fbc754548c30927.tar.gz freeipa.git-c7f3c746ccfd74480064dbe73fbc754548c30927.tar.xz freeipa.git-c7f3c746ccfd74480064dbe73fbc754548c30927.zip |
Backup system state in ipa-server-install
This patch adds a sysrestore module which allows ipa-server-install
code to backup any system state so that it can be restored again
with e.g. ipa-server-install --uninstall.
The idea is that any files ipa-server-install modifies gets backed
up to /var/cache/ipa/sysrestore/ while any "meta" state, like
whether a service is enabled with chkconfig, is saved to
/var/cache/ipa/sysrestore.state.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Diffstat (limited to 'ipa-server/ipaserver/bindinstance.py')
-rw-r--r-- | ipa-server/ipaserver/bindinstance.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ipa-server/ipaserver/bindinstance.py b/ipa-server/ipaserver/bindinstance.py index cc99eacf..770663c6 100644 --- a/ipa-server/ipaserver/bindinstance.py +++ b/ipa-server/ipaserver/bindinstance.py @@ -25,6 +25,7 @@ import os import socket import service +import sysrestore from ipa import ipautil class BindInstance(service.Service): @@ -72,6 +73,7 @@ class BindInstance(service.Service): self.__setup_named_conf() try: + self.backup_state("running", self.is_running()) self.start() except: print "named service failed to start" @@ -84,14 +86,15 @@ class BindInstance(service.Service): REALM=self.realm) def __setup_zone(self): + self.backup_state("domain", self.domain) zone_txt = ipautil.template_file(ipautil.SHARE_DIR + "bind.zone.db.template", self.sub_dict) + sysrestore.backup_file('/var/named/'+self.domain+'.zone.db') zone_fd = open('/var/named/'+self.domain+'.zone.db', 'w') zone_fd.write(zone_txt) zone_fd.close() def __setup_named_conf(self): - if os.path.exists('/etc/named.conf'): - shutil.copy2('/etc/named.conf', '/etc/named.conf.ipabkp') + sysrestore.backup_file('/etc/named.conf') named_txt = ipautil.template_file(ipautil.SHARE_DIR + "bind.named.conf.template", self.sub_dict) named_fd = open('/etc/named.conf', 'w') named_fd.seek(0) @@ -99,8 +102,7 @@ class BindInstance(service.Service): named_fd.write(named_txt) named_fd.close() - if os.path.exists('/etc/resolve.conf'): - shutil.copy2('/etc/resolve.conf', '/etc/resolv.conf.ipabkp') + sysrestore.backup_file('/etc/resolve.conf') resolve_txt = "search "+self.domain+"\nnameserver "+self.ip_address+"\n" resolve_fd = open('/etc/resolve.conf', 'w') resolve_fd.seek(0) |