2017-05-16 4 views
1

Openstack에서 루이지를 사용하여 워크 플로우를 관리하고 싶습니다. 나는 루이지를 처음 보았습니다. 초보자를 위해 Openstack을 인증하고 Luigi를 사용하여 이미지 목록, 맛 목록 등을 가져오고 싶습니다. 도움이 될 것입니다.Openstack 작업에 luigi를 어떻게 활용할 수 있습니까?

저는 파이썬에는 좋지 않지만 아래 코드를 시도했습니다. 이미지를 나열 할 수도 없습니다. 오류 : 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를 사용하여 원하는 작업을 수행하기 위해 파이썬 코드를 작성되고 이에 대한 일반적인 접근. 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

나는 (편집 내용에 추가 된) 코드를 사용해 보았습니다. 나는 파이썬도 좋지 않지만, 코드를 즉석으로 만드는 제안이 도움이 될 것이다. –