2017-04-07 9 views
1

rundeck apiを調べてジョブのリストを返しています。私は手動でUIを介して2つのジョブを作成しました。しかし、私はそのapiを通して0の仕事を得ることになった。私はその過程で何が起こっているのか把握するのに苦労しています。Pythonを使用してRundeck APIでジョブを取得できない

import urllib2 
import logging 
import ssl 
RUNDECK_TOKEN = 'My_API_Token' 

class Rundeck(): 
    def get_full_url(self): 
     return 'https://rdurl:8443/rundeckpro/api/14/project/Sandbox/jobs?authtoken=' + RUNDECK_TOKEN 


    def make_api_call(self): 
     context = ssl._create_unverified_context() 
     opener = urllib2.build_opener(urllib2.HTTPSHandler(context=context)) 
     request = urllib2.Request(self.get_full_url()) 
     try: 
      return opener.open(request, timeout=30) 
     except urllib2.HTTPError as err: 
      if err.code == 409: 
       return 'Running' 
     except Exception as e: 
      logging.error('Exception : %s', e) 
      return False 


if __name__ == '__main__': 
    jobs = Rundeck() 
    print jobs.get_full_url() 
    print jobs.make_api_call().read() 

出力は次のとおりです:助けのために

<jobs count='0' /> 

おかげ

は、以下の私のコード例です。

答えて

0

スクリプトは完璧に機能します。

Rundeck ACLを確認すると、APIキーの所有者が作成したジョブへの読み取りアクセス権がない可能性があります。

テスト出力:

tmp $ python test.py 
http://localhost:4440/api/14/project/TestProject/jobs?authtoken=OyFXX1q4UzhTUe7deOUIPJKkrUnEwZlo 
<jobs count='3'> 
    <job id='63385df9-8898-48e9-ae8a-047b548915cd' href='http://localhost:4440/api/18/job/63385df9-8898-48e9-ae8a-047b548915cd' permalink='http://localhost:4440/project/TestProject/job/show/63385df9-8898-48e9-ae8a-047b548915cd'> 
    <name>TEST</name> 
    <group /> 
    <project>TestProject</project> 
    <description></description> 
    </job> 
    <job id='02a41aaa-eb50-4831-8762-80b798468cbe' href='http://localhost:4440/api/18/job/02a41aaa-eb50-4831-8762-80b798468cbe' permalink='http://localhost:4440/project/TestProject/job/show/02a41aaa-eb50-4831-8762-80b798468cbe'> 
    <name>TestJob</name> 
    <group /> 
    <project>TestProject</project> 
    <description>TestJob Description</description> 
    </job> 
    <job id='9b2ac9e9-0350-4494-a463-b43ba1e458ab' href='http://localhost:4440/api/18/job/9b2ac9e9-0350-4494-a463-b43ba1e458ab' permalink='http://localhost:4440/project/TestProject/job/show/9b2ac9e9-0350-4494-a463-b43ba1e458ab'> 
    <name>TestJob2</name> 
    <group /> 
    <project>TestProject</project> 
    <description></description> 
    </job> 
</jobs> 
+0

ユーザは、ACL内のすべてのアクセスを有しています。私はまた、ブラウザでhttps:// rdurl:8443/rundeckpro/api/14/project/Sandbox/jobs?authtoken = My_TOKENを使用して、ログイン後にすべてのジョブを見ることができるという問題を発見しました。 –

関連する問題