3 |
from rdiff_backup.log import Log |
from rdiff_backup.log import Log |
4 |
from rdiff_backup.rpath import RPath |
from rdiff_backup.rpath import RPath |
5 |
from rdiff_backup import Globals, Hardlink, SetConnections, Main, \ |
from rdiff_backup import Globals, Hardlink, SetConnections, Main, \ |
6 |
selection, lazy, Time, rpath, eas_acls, rorpiter |
selection, lazy, Time, rpath, eas_acls, rorpiter, Security |
7 |
|
|
8 |
RBBin = "../rdiff-backup" |
RBBin = "../rdiff-backup" |
9 |
SourceDir = "../rdiff_backup" |
SourceDir = "../rdiff_backup" |
72 |
print "Executing: ", cmdline |
print "Executing: ", cmdline |
73 |
assert not os.system(cmdline) |
assert not os.system(cmdline) |
74 |
|
|
|
def cmd_schemas2rps(schema_list, remote_schema): |
|
|
"""Input list of file descriptions and the remote schema, return rps |
|
|
|
|
|
File descriptions should be strings of the form 'hostname.net::foo' |
|
|
|
|
|
""" |
|
|
return map(SetConnections.cmdpair2rp, |
|
|
SetConnections.get_cmd_pairs(schema_list, remote_schema)) |
|
|
|
|
75 |
def InternalBackup(source_local, dest_local, src_dir, dest_dir, |
def InternalBackup(source_local, dest_local, src_dir, dest_dir, |
76 |
current_time = None, eas = None, acls = None): |
current_time = None, eas = None, acls = None): |
77 |
"""Backup src to dest internally |
"""Backup src to dest internally |
94 |
dest_dir = "cd test2/tmp; python ../../server.py ../../%s::../../%s" \ |
dest_dir = "cd test2/tmp; python ../../server.py ../../%s::../../%s" \ |
95 |
% (SourceDir, dest_dir) |
% (SourceDir, dest_dir) |
96 |
|
|
97 |
rpin, rpout = cmd_schemas2rps([src_dir, dest_dir], remote_schema) |
cmdpairs = SetConnections.get_cmd_pairs([src_dir, dest_dir], remote_schema) |
98 |
|
Security.initialize("backup", cmdpairs) |
99 |
|
rpin, rpout = map(SetConnections.cmdpair2rp, cmdpairs) |
100 |
for attr in ('eas_active', 'eas_write', 'eas_conn'): |
for attr in ('eas_active', 'eas_write', 'eas_conn'): |
101 |
SetConnections.UpdateGlobal(attr, eas) |
SetConnections.UpdateGlobal(attr, eas) |
102 |
for attr in ('acls_active', 'acls_write', 'acls_conn'): |
for attr in ('acls_active', 'acls_write', 'acls_conn'): |
144 |
dest_dir = "cd test2/tmp; python ../../server.py ../../%s::../../%s" \ |
dest_dir = "cd test2/tmp; python ../../server.py ../../%s::../../%s" \ |
145 |
% (SourceDir, dest_dir) |
% (SourceDir, dest_dir) |
146 |
|
|
147 |
mirror_rp, dest_rp = cmd_schemas2rps([mirror_dir, dest_dir], remote_schema) |
cmdpairs = SetConnections.get_cmd_pairs([mirror_dir, dest_dir], |
148 |
|
remote_schema) |
149 |
|
Security.initialize("restore", cmdpairs) |
150 |
|
mirror_rp, dest_rp = map(SetConnections.cmdpair2rp, cmdpairs) |
151 |
for attr in ('eas_active', 'eas_write', 'eas_conn'): |
for attr in ('eas_active', 'eas_write', 'eas_conn'): |
152 |
SetConnections.UpdateGlobal(attr, eas) |
SetConnections.UpdateGlobal(attr, eas) |
153 |
for attr in ('acls_active', 'acls_write', 'acls_conn'): |
for attr in ('acls_active', 'acls_write', 'acls_conn'): |