【问题标题】:How get the softlayer storage credendials?如何获取 softlayer 存储凭证?
【发布时间】:2016-02-15 12:06:46
【问题描述】:

我正在尝试获取授权 Softlayer 网络存储的用户名、密码和主机 IQN。 我使用了这个 python 脚本,但是 shell 返回 []

    import SoftLayer
    API_USERNAME = 'xxx'
    API_KEY = 'yyyy'
    storageId = zzzz
    client = SoftLayer.Client(
       username=API_USERNAME,
       api_key=API_KEY
     )
    client['SoftLayer_Network_Storage'].getCredentials(id=storageId)

我的代码有什么问题? 问候

【问题讨论】:

    标签: python storage credentials ibm-cloud-infrastructure


    【解决方案1】:

    试试这个:

    """
    Get all the authorized hosts for a iSCSI.
    
    Important manual pages:
    http://sldn.softlayer.com/reference/datatypes/SoftLayer_Hardware
    http://sldn.softlayer.com/reference/datatypes/SoftLayer_Virtual_Guest
    http://sldn.softlayer.com/reference/datatypes/SoftLayer_Network_Storage
    http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage
    http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage/getObject
    
    License: http://sldn.softlayer.com/article/License
    Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
    """
    import SoftLayer
    
    USERNAME = 'set me'
    API_KEY = 'set me'
    
    iscsiId = 6548079
    
    # Declares the API client
    client = SoftLayer.Client(username=USERNAME, api_key=API_KEY)
    networkStorageService = client['SoftLayer_Network_Storage']
    
    objectMask = "mask[id,username,allowedVirtualGuests[fullyQualifiedDomainName,allowedHost[name,credential[username,password]]],allowedHardware[fullyQualifiedDomainName,allowedHost[name,credential[username,password]]]]"
    
    try:
        response = networkStorageService.getObject(id=iscsiId, mask=objectMask)
        print(response)
    except SoftLayer.SoftLayerAPIError as e:
        # If there was an error returned from the SoftLayer API then bomb out with the
        # error message.
        print("Unable to retrieve the network storage. faultCode=%s, faultString=%s" % (e.faultCode, e.faultString))
    

    【讨论】:

      【解决方案2】:

      您可以通过一些掩码使用“SoftLayer_Network_Storage::getObject”来获取更多信息。 下面是一个示例:“Username”、“Password”、“Host IQN”,用于授权主机(Bare Metal服务器、虚拟服务器、IP 地址)。

      Python 示例:

      # So we can talk to the SoftLayer API:
      import SoftLayer
      
      # For nice debug output:
      from pprint import pprint as pp
      
      # Your SoftLayer API username and key.
      API_USERNAME = 'set me'
      API_KEY = 'set me'
      
      # Set the network storage id in order to  get the associated authorized hosts:
      iscsiId = 6550721
      
      mask = 'mask[id,username,allowedVirtualGuests[fullyQualifiedDomainName,allowedHost[name,credential[username,password]]],allowedHardware[fullyQualifiedDomainName,allowedHost[name,credential[username,password]]],allowedIpAddresses[ipAddress,allowedHost[name,credential[username,password]]]]'
      
      # Set up your API client
      client = SoftLayer.Client(
          username=API_USERNAME,
          api_key=API_KEY
      )
      
      try:
          # The expected result after executing the script is: true
          result = client['SoftLayer_Network_Storage'].getObject(mask=mask,id=iscsiId)
          pp(result)
      except SoftLayer.SoftLayerAPIError as e:
              pp('Unable to get authorized hosts information faultCode=%s, faultString=%s'
                  % (e.faultCode, e.faultString))
      

      参考资料:

      http://developer.softlayer.com/article/Object-Masks http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage/getObject https://softlayer.github.io/python/list_packages/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多