-
+import json
import logging
from textwrap import dedent
import time
result = self.fs.mds_asok(["export", "dir", "/ALPHA", "1"], rank_0_id)
self.assertEqual(result["return_code"], 0)
+ # Pool the MDS cache dump to watch for the export completing
+ migrated = False
+ migrate_timeout = 60
+ migrate_elapsed = 0
+ while not migrated:
+ data = self.fs.mds_asok(["dump", "cache"], rank_1_id)
+ for inode_data in data:
+ if inode_data['ino'] == ino:
+ log.debug("Found ino in cache: {0}".format(json.dumps(inode_data, indent=2)))
+ if inode_data['is_auth'] is True:
+ migrated = True
+ break
+
+ if not migrated:
+ if migrate_elapsed > migrate_timeout:
+ raise RuntimeError("Migration hasn't happened after {0}s!".format(migrate_elapsed))
+ else:
+ migrate_elapsed += 1
+ time.sleep(1)
+
# Delete the file on rank 1
self.mount_a.run_shell(["rm", "-f", "ALPHA/alpha_file"])