Commit 4413e841 by Czémán Arnold

Merge branch 'redundant_tasks' into new_ceph

parents 2abdcc95 017603f5
...@@ -91,6 +91,10 @@ class DataStore(Model): ...@@ -91,6 +91,10 @@ class DataStore(Model):
@method_cache(30) @method_cache(30)
def get_orphan_disks(self, timeout=15): def get_orphan_disks(self, timeout=15):
"""Disk image files without Disk object in the database. """Disk image files without Disk object in the database.
Exclude cloud-xxxxxxxx.dump format images.
:param timeout: Seconds before TimeOut exception
:type timeout: int
""" """
queue_name = self.get_remote_queue_name('storage', "slow") queue_name = self.get_remote_queue_name('storage', "slow")
files = set(storage_tasks.list_files.apply_async( files = set(storage_tasks.list_files.apply_async(
...@@ -106,6 +110,9 @@ class DataStore(Model): ...@@ -106,6 +110,9 @@ class DataStore(Model):
@method_cache(30) @method_cache(30)
def get_missing_disks(self, timeout=15): def get_missing_disks(self, timeout=15):
"""Disk objects without disk image files. """Disk objects without disk image files.
:param timeout: Seconds before TimeOut exception
:type timeout: int
""" """
queue_name = self.get_remote_queue_name('storage', "slow") queue_name = self.get_remote_queue_name('storage', "slow")
files = set(storage_tasks.list_files.apply_async( files = set(storage_tasks.list_files.apply_async(
......
...@@ -61,15 +61,11 @@ def list_orphan_disks(timeout=15): ...@@ -61,15 +61,11 @@ def list_orphan_disks(timeout=15):
Exclude cloud-xxxxxxxx.dump format images. Exclude cloud-xxxxxxxx.dump format images.
:param timeout: Seconds before TimeOut exception :param timeout: Seconds before TimeOut exception
:type timeoit: int :type timeout: int
""" """
import re import re
for ds in DataStore.objects.all(): for ds in DataStore.objects.all():
queue_name = ds.get_remote_queue_name('storage', "slow") for i in ds.get_orphan_disks(timeout=timeout):
files = set(storage_tasks.list_files.apply_async(
args=[ds.path], queue=queue_name).get(timeout=timeout))
disks = set([disk.filename for disk in ds.disk_set.all()])
for i in files - disks:
if not re.match('cloud-[0-9]*\.dump', i): if not re.match('cloud-[0-9]*\.dump', i):
logging.warning("Orphan disk: %s" % i) logging.warning("Orphan disk: %s" % i)
...@@ -79,14 +75,9 @@ def list_missing_disks(timeout=15): ...@@ -79,14 +75,9 @@ def list_missing_disks(timeout=15):
"""List Disk objects without disk image files. """List Disk objects without disk image files.
:param timeout: Seconds before TimeOut exception :param timeout: Seconds before TimeOut exception
:type timeoit: int :type timeout: int
""" """
for ds in DataStore.objects.all(): for ds in DataStore.objects.all():
queue_name = ds.get_remote_queue_name('storage', "slow") for i in ds.get_missing_disks(timeout=timeout):
files = set(storage_tasks.list_files.apply_async(
args=[ds.path], queue=queue_name).get(timeout=timeout))
disks = set([disk.filename for disk in
ds.disk_set.filter(destroyed__isnull=True)])
for i in disks - files:
logging.critical("Image: %s is missing from %s datastore." logging.critical("Image: %s is missing from %s datastore."
% (i, ds.path)) % (i, ds.path))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment