Nil*_*esh 5 python vmware suds vmware-sdk
我正在使用VMware API执行vCenter操作.使用suds进行SDK调用.我的vCenter配置为非英语(日语)支持.
import suds
client = suds.client.Client("http://localhost/sdk/vimService.wsdl", location="https://localhost/sdk")
mo = suds.sudsobject.Property("ServiceInstance")
mo._type = "ServiceInstance"
service_content = client.service.RetrieveServiceContent(mo)
try:
client.service.Login(service_content.sessionManager, username='test', password='test', locale='en_US')
var = client.factory.create('ns0:WaitOptions')
kwargs = {'maxWaitSeconds': "2", 'maxObjectUpdates': "3"}
[setattr(var, key, value) for key, value in kwargs.items()]
client.service.WaitForUpdatesEx(service_content.propertyCollector, version=1, options=var)
except suds.WebFault as e:
print e.args
Run Code Online (Sandbox Code Playgroud)
如果我不设置locale,那么在vCenter中是否有任何错误,它将以非英语文本返回.我设置locale和异常将返回英语.
我们设置了a locale和它的工作正常,session但是如果会话创建中的任何错误或会话超时,那么它会以非英语形式给出错误.
请检查此代码(没有创建的调用方法session)
...
...
mo._type = "ServiceInstance"
service_content = client.service.RetrieveServiceContent(mo)
try:
var = client.factory.create('ns0:WaitOptions')
kwargs = {'maxWaitSeconds': "2", 'maxObjectUpdates': "3"}
[setattr(var, key, value) for key, value in kwargs.items()]
client.service.WaitForUpdatesEx(service_content.propertyCollector, version=1, options=var)
except suds.WebFault as e:
print e.args
Run Code Online (Sandbox Code Playgroud)
输出:
(u"Server raised fault: '\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u8a8d\u8a3c\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002'",)
Run Code Online (Sandbox Code Playgroud)
翻译:
(u"Server raised fault: '????????????????'",)
# English
(u"Server raised fault: 'Session is not authenticated.',)
Run Code Online (Sandbox Code Playgroud)
有没有办法locale在wsdl中设置url http://localhost/sdk/vimService.wsdl?local=en_US?
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |