使用libcloud自动删除磁盘

时间:2015-11-25 18:03:05

标签: google-compute-engine

我尝试使用具有自动删除功能的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'

但是磁盘已创建,已连接,并且正在我的VM上运行。

根据文档(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, 任何线索?

1 个答案:

答案 0 :(得分:1)

看起来Transferred By可能存在错误。我会做一些测试,然后解决这个问题。

关于使用attach_volume,您需要传入ex_set_volume_auto_delete个对象。看起来你只是传入一个字符串(磁盘的名称)。

你可以试试,

StorageVolume

当我更多地研究它时,我会跟进第一个问题。