【问题标题】:'tags' parameter at Python Softlayer API call SoftLayer.VSManager.list_instances() not working as expectedPython Softlayer API 调用 SoftLayer.VSManager.list_instances() 的“tags”参数未按预期工作
【发布时间】:2016-08-02 23:01:42
【问题描述】:

我正在使用 Softlayer 实例和 Slurm 实施云爆发系统。但是我遇到了 Python Softlayer API 的问题。

当我尝试使用 API 调用 SoftLayer.VSManager.list_instances() 获取一些特定实例的列表时,我使用参数“tags”,因为我标记了实例以对它们进行分类。但它并没有按预期工作。

它应该找到'tagReferences'字段与您在API调用中传递的参数'tags'的值匹配的实例。

但是,我得到了一个列表,其中包含“tagReferences”字段不为空的所有节点。无论我作为“标签”参数传递的值是什么。

我有以下节点:

  • 主机名:'node000' 标签:'slurm,节点'
  • 主机名:'node005' 标签:'test'

我运行这个脚本:

import os
import SoftLayer

os.environ["SL_USERNAME"] = "***"
os.environ["SL_API_KEY"] = "******"

client = SoftLayer.Client()
mgr = SoftLayer.VSManager(client)

for vsi in mgr.list_instances(tags = 'slurm'):
  print vsi['hostname']

这是我得到的输出:

node000
node005

我尝试将不同的值作为“tags”参数传递(见下文),但我总是得到与上面相同的结果,即使是最后一个。

作为“标签”参数传递的一组值:

slurm, node
slurm
node
test
random

我错过了什么吗?

我给 Softlayer 支持团队写了一张票,但他们认为我的脚本应该可以工作,并且他们向我保证标签功能确实有效。甚至他们也明确告诉我来这里询问,因为他们不知道发生了什么。

【问题讨论】:

    标签: python api ibm-cloud-infrastructure


    【解决方案1】:

    根据您使用的方法的documentation,您需要发送一个标签列表,因此通过这样的列表更改字符串:

    client = SoftLayer.Client()
    mgr = SoftLayer.VSManager(client)
    
    for vsi in mgr.list_instances(tags = ['mytag']):
      print (vsi['hostname'])
    

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2018-10-19
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      相关资源
      最近更新 更多