簡體   English   中英

如何利用luigi進行Openstack任務

[英]How can I leverage luigi for Openstack tasks

我想使用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())

對此的一般方法是編寫python代碼以使用OpenStack API執行您想要的任務。 https://docs.openstack.org/user-guide/sdk.html看起來你得到的錯誤是在OpenStack網站上解決的。 https://ask.openstack.org/en/question/90071/glanceclientexchttpnotfound-the-resource-could-not-be-found-http-404/

然后,您可以根據需要將此代碼包裝在luigi Tasks中 - 除了您必須定義luigi任務的output()以匹配指示任務已完成的output()之外,使用此OpenStack沒有什么特別之處。 現在看起來工作是在output()方法中完成的,它應該在run()方法中,輸出方法應該只是尋找指示run()方法完成所以它不會如果已經完成,則在另一個任務需要時運行()。

如果不了解工作流程的更多細節,真的不可能多說。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM