関数が数値を返すという問題があります。次に、その番号を含む URL を組み立てようとすると、失敗します。
具体的には、私が得るエラーは
TypeError: 'str' オブジェクトと 'NoneType' オブジェクトを連結できません
ここからどこへ行くべきかわからない。
関連するコードは次のとおりです。
# Get the raw ID number of the current configuration
configurationID = generate_configurationID()
# Update config name at in Cloud
updateConfigLog = open(logBase+'change_config_name_log.xml', 'w')
# Redirect stdout to file
sys.stdout = updateConfigLog
rest.rest(('put', baseURL+'configurations/'+configurationID+'?name=this_is_a_test_', user, token))
sys.stdout = sys.__stdout__
次のように手動で rest.rest() に入力すると、完全に機能します
rest.rest(('put', http://myurl.com/configurations/123456?name=this_is_a_test_, myusername, mypassword))
試してみたところstr(configurationID)
、番号が返されましたが、残りのURLを取得できなくなりました...
アイデア?ヘルプ?
わかりました... baseURL と configurationID をここに表示しようとして、私がしたことは次のとおりです。
print 'baseURL: '+baseURL
print 'configurationID: '+configurationID
そして、ここに私が戻ってきたものがあります
it-tone:trunk USER$ ./skynet.py fresh
baseURL: https://myurl.com/
369596
Traceback (most recent call last):
File "./skynet.py", line 173, in <module>
main()
File "./skynet.py", line 30, in main
fresh()
File "./skynet.py", line 162, in fresh
updateConfiguration()
File "./skynet.py", line 78, in updateConfiguration
print 'configurationID: '+configurationID
TypeError: cannot concatenate 'str' and 'NoneType' objects
it-tone:trunk USER$
私にとって興味深いのは、369596 が構成 ID であるということですが、以前と同様に、その周りで呼び出されたすべてのものを壊しているように見えます。
以下でkindallが指摘したように、私のgenerate_configurationIDは値を返さず、むしろそれを出力していました。
# from generate_configurationID
def generate_configurationID():
dom = parse(logBase+'provision_template_log.xml')
name = dom.getElementsByTagName('id')
p = name[0].firstChild.nodeValue
print p
return p