mirror of
https://github.com/ceph/ceph
synced 2025-02-19 08:57:27 +00:00
qa/tasks/cephfs/mount.py: always setup the NAT rules
If the last test failed just after the 'ceph-brx' bridge is created but with setuping the NAT rules in iptables, so if we run the test case again, it will just skip seting the 'ceph-brx' and the NAT rules. Then deleting the NAT rules will get the errors like: iptables: Bad rule (does a matching rule exist in that chain?). Signed-off-by: Xiubo Li <xiubli@redhat.com>
This commit is contained in:
parent
f7b49f5bab
commit
2e6e3916a0
@ -107,29 +107,31 @@ class CephFSMount(object):
|
||||
_ip, _mask = brx[0].split()[1].split('/', 1)
|
||||
if _ip != "{}".format(ip) or _mask != mask:
|
||||
raise RuntimeError("Conflict with existing ceph-brx {0}, new {1}/{2}".format(brx[0].split()[1], ip, mask))
|
||||
return
|
||||
|
||||
log.info("Setuping the 'ceph-brx' with {0}/{1}".format(ip, mask))
|
||||
|
||||
# Setup the ceph-brx and always use the last valid IP
|
||||
args = ["sudo", "bash", "-c", "ip link add name ceph-brx type bridge"]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
args = ["sudo", "bash", "-c", "ip link set ceph-brx up"]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
args = ["sudo", "bash", "-c",
|
||||
"ip addr add {0}/{1} brd {2} dev ceph-brx".format(ip, mask, brd)]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
if not brx:
|
||||
log.info("Setuping the 'ceph-brx' with {0}/{1}".format(ip, mask))
|
||||
|
||||
args = ["sudo", "bash", "-c", "ip link add name ceph-brx type bridge"]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
args = ["sudo", "bash", "-c", "ip link set ceph-brx up"]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
args = ["sudo", "bash", "-c",
|
||||
"ip addr add {0}/{1} brd {2} dev ceph-brx".format(ip, mask, brd)]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
|
||||
# Save the ip_forward
|
||||
self.client_remote.run(args=['touch', '/tmp/python-ceph-brx'],
|
||||
timeout=(5*60))
|
||||
p = self.client_remote.run(args=['cat', '/proc/sys/net/ipv4/ip_forward'],
|
||||
stderr=StringIO(), stdout=StringIO(),
|
||||
timeout=(5*60))
|
||||
val = p.stdout.getvalue().strip()
|
||||
args = ["sudo", "bash", "-c",
|
||||
"echo {} > /tmp/python-ceph-brx".format(val)]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
# Save the ip_forward's old value
|
||||
save_path = "/tmp/python-ceph-brx"
|
||||
if not os.path.exists(save_path):
|
||||
self.client_remote.run(args=['touch', save_path], timeout=(5*60))
|
||||
p = self.client_remote.run(args=['cat', '/proc/sys/net/ipv4/ip_forward'],
|
||||
stderr=StringIO(), stdout=StringIO(),
|
||||
timeout=(5*60))
|
||||
val = p.stdout.getvalue().strip()
|
||||
args = ["sudo", "bash", "-c",
|
||||
"echo {0} > {1}".format(val, save_path)]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
|
||||
args = ["sudo", "bash", "-c",
|
||||
"echo 1 > /proc/sys/net/ipv4/ip_forward"]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
@ -303,14 +305,15 @@ class CephFSMount(object):
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
|
||||
# Restore the ip_forward
|
||||
p = self.client_remote.run(args=['cat', '/tmp/python-ceph-brx'],
|
||||
save_path = "/tmp/python-ceph-brx"
|
||||
p = self.client_remote.run(args=['cat', save_path],
|
||||
stderr=StringIO(), stdout=StringIO(),
|
||||
timeout=(5*60))
|
||||
val = p.stdout.getvalue().strip()
|
||||
args = ["sudo", "bash", "-c",
|
||||
"echo {} > /proc/sys/net/ipv4/ip_forward".format(val)]
|
||||
self.client_remote.run(args=args, timeout=(5*60))
|
||||
self.client_remote.run(args=['rm', '-f', '/tmp/python-ceph-brx'],
|
||||
self.client_remote.run(args=['rm', '-f', save_path],
|
||||
timeout=(5*60))
|
||||
|
||||
def setup_netns(self):
|
||||
|
Loading…
Reference in New Issue
Block a user