我正在尝试使用具有自动删除功能的libcloud创建一个VM。问题是,它只适用于引导盘。
示例:
new_node = driver.create_node("my_node_str", size, get_root_snapshot(driver), location,ex_service_accounts=sa_scopes, ex_disk_auto_delete=True, ...
然后我附加一个磁盘:
driver.attach_volume(my_node,...,ex_boot=False, ex_auto_delete=True)
因此,我转到GCE,卷自动删除功能已关闭
因此,我尝试使用libcloud“手动”更改它:
conn.ex_set_volume_auto_delete(vol, node)
然后我得到了错误:
libcloud.common.google.GoogleBaseError: u"Invalid value for field 'disk': 'myvolume1-worker-disk'
但磁盘已创建,已连接,并且在我的虚拟机上正常工作。
根据文档(https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete),调试libloud一切似乎都很正常:
它调用:
u'/zones/us-central1-b/instances/myinstancename/setDiskAutoDelete'
带参数:'deviceName': volume.name, 'autoDelete': auto_delete,有什么线索吗?
发布于 2015-12-03 02:06:30
看起来attach_volume可能有个bug。我会做一些测试,如果是的话,我会把它修好。
关于使用ex_set_volume_auto_delete,您需要传入一个StorageVolume对象。看起来您只是传入了一个字符串(磁盘的名称)。
你可以试一试
disk_obj = driver.ex_get_volume('string-name-of-disk')
driver.ex_set_volume_auto_delete(node_obj, disk_obj, ex_auto_delete=True)当我更深入地研究第一个问题时,我会跟进它。
https://stackoverflow.com/questions/33923468
复制相似问题