本文整理匯總了Python中ralph.discovery.models.Storage.save方法的典型用法代碼示例。如果您正苦於以下問題:Python Storage.save方法的具體用法?Python Storage.save怎麽用?Python Storage.save使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ralph.discovery.models.Storage
的用法示例。
在下文中一共展示了Storage.save方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: save_storage
# 需要導入模塊: from ralph.discovery.models import Storage [as 別名]
# 或者: from ralph.discovery.models.Storage import save [as 別名]
def save_storage(storage, dev):
mount_points = []
for item in storage:
sn = item.get("sn")
mount_point = item.get("mountpoint")
if not sn or not mount_point:
continue
label = item.get("label")
try:
size = int(item.get("size"))
except ValueError:
continue
model_name = "{} {}MiB".format(label, size)
model, c = ComponentModel.create(ComponentType.disk, size=size, family=model_name, priority=SAVE_PRIORITY)
stor = None
try:
stor = Storage.objects.get(device=dev, mount_point=mount_point)
if stor.sn != sn:
try:
stor_found_by_sn = Storage.objects.get(sn=sn)
if all(
(
stor_found_by_sn.model == model,
stor_found_by_sn.size == size,
stor_found_by_sn.label == label,
)
):
stor.mount_point = None
stor.save(priotity=SAVE_PRIORITY)
stor = stor_found_by_sn
stor.device = dev
stor.mount_point = mount_point
else:
stor = None
except Storage.DoesNotExist:
stor.sn = sn
except Storage.DoesNotExist:
try:
stor = Storage.objects.get(sn=sn)
if all((stor.model == model, stor.size == size, stor.label == label)):
stor.device = dev
stor.mount_point = mount_point
else:
stor = None
except Storage.DoesNotExist:
stor = Storage(device=dev, mount_point=mount_point, sn=sn)
if stor:
stor.model = model
stor.label = label
stor.size = size
stor.save(priority=SAVE_PRIORITY)
mount_points.append(mount_point)
dev.storage_set.exclude(mount_point__in=mount_points).update(mount_point=None)