質問: ★スクリプト★ (#!/usr/bin/env python import commands clnw =commands.getoutput('cloudstack-api listVirtualMachines -t id,name,group,state|grep test|cut -d"|" -f2 |cut -d"|" -f1') print clnw def kekka(clnw): if clnw: print 'OK' else: return 'NG'
回答: すっごく愚直かもしれませんが `clnw` に値を代入する処理を、以下のように書いてみてはどうでしょうか? ``` clnw =commands.getoutput('cloudstack-api listVirtualMachines -t id,name,group,state|grep test|cut -d"|" -f2 |cut -d"|" -f1') if commands.getoutput('cloudstack-api listVirtualMachines -t id,name,group,state|grep test|cut -d"|" -f2 |cut -d"|" -f1') == "" else None ``` それと質問文のソースの書き方では、 `kekka` 関数は動きません。 おそらくこう書いたほうがいいと思います。 ``` print kekka(clnw) def kekka(data): if data: return 'OK' else: return 'NG' ``` なので最終的なソースコードは以下に様になります。 ``` #!/usr/bin/env python import commands clnw =commands.getoutput('cloudstack-api listVirtualMachines -t id,name,group,state|grep test|cut -d"|" -f2 |cut -d"|" -f1') if commands.getoutput('cloudstack-api listVirtualMachines -t id,name,group,state|grep test|cut -d"|" -f2 |cut -d"|" -f1') == "" else None print kekka(clnw) def kekka(data): if clnw: return 'OK' else: return 'NG' ``` P.S. ぱっと調べた限りですが、このライブラリを使えばPythonでCloudStackを操作できそうなのですが、外部ライブラリは使えない縛りなのでしょうか。 cs 1.1.1 -PyPI また、Python3を使わないのも、縛りがあるのでしょうか。