summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipaserver/bindinstance.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-01-14 12:43:26 -0500
committerRob Crittenden <rcritten@redhat.com>2008-01-14 12:43:26 -0500
commitc7f3c746ccfd74480064dbe73fbc754548c30927 (patch)
treee0e8296dd50c0f9815f930713a2b3e917cb83bdf /ipa-server/ipaserver/bindinstance.py
parent23ac773ada10867767e779823ab5f66c79b0dc04 (diff)
downloadfreeipa.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.py10
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)