2017-05-16 9 views
1

Openstackでワークフローを管理するためにLuigiを使用したいと考えています。私はルイージには初めてです。スターターのために、私はOpenstackに自分自身を認証してから、Luigiを使ってイメージリストやフレーバーリストなどを取得したいと思う。どんな助けにも感謝します。Openstackタスクにluigiをどのように活用できますか

私はPythonにはうまくいかず、以下のコードを試しました。私も画像を一覧表示できません。エラー:glanceclient.exc.HTTPNotFound:リソースが見つかりませんでした。 (HTTP 404)

import luigi 
import os_client_config 
import glanceclient.v2.client as glclient 
from luigi.mock import MockFile 
import sys 
import os 

def get_credentials(): 
    d = {} 
    d['username'] = 'X' 
    d['password'] = 'X' 
    d['auth_url'] = 'X' 
    d['tenant_name'] = 'X' 
    d['endpoint'] = 'X' 
    return d 

class LookupOpenstack(luigi.Task): 
    d =[] 

    def requires(self): 
     pass 
    def output(self): 
     gc = glclient.Client(**get_credentials()) 
     images = gc.images.list() 
     print("images", images) 
     for i in images: 
      print(i) 

     return MockFile("images", mirror_on_stderr=True) 

    def run(self): 
     pass 

if __name__ == '__main__': 
    luigi.run(["--local-scheduler"], LookupOpenstack()) 

答えて

0

一般的なアプローチは、OpenStack APIを使用して必要なタスクを実行するためのPythonコードを書くことです。 https://docs.openstack.org/user-guide/sdk.htmlあなたは、OpenStackサイトで対処しているエラーのようです。タスクを示す出力と一致するためにあなたのルイジ・タスクのoutput()を定義しなければならないことを除いて、このOpenStackのでことについて何も特別なことが行われている、ありませんappropriate-としてhttps://ask.openstack.org/en/question/90071/glanceclientexchttpnotfound-the-resource-could-not-be-found-http-404/

それからちょうどルイージTasksでこのコードをラップでしょう。 今はrun()メソッド内にあるoutput()メソッドで作業が行われているようですが、出力メソッドはrun()メソッドが完了したことを示すために探すべきものですすでに完了していれば、別のタスクで必要なときには実行されません()。

あなたのワークフローの詳細を理解することなく、もっと言い表すのは本当に不可能です。

+0

私はコードを編集しようとしました。私はPythonもうまくいきませんが、コードを即興にするための提案は参考になります。 –

関連する問題