<Class>对象没有属性

2024-06-10 23:08:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力研究Luigi和Openstack。当我从主区呼叫全班时,我遇到了一些问题。我还在学习Python,但我没有真正理解错误。在

错误:AttributeError:“OpenstackHelper”对象没有属性“servers”

password = sys.argv[1]
auth_url = sys.argv[2]
username = sys.argv[3]
tenant_name = sys.argv[4]

class OpenstackHelper(luigi.Task):
    def requires(self):
        pass
    def run(self):
        self.keystone_auth = v2.Password(username=username, password=password, tenant_name=tenant_name,
                                         auth_url=auth_url)
        self.keystone_session = session.Session(auth=self.keystone_auth)

        self.cinder = cinder_client.Client(OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME, OS_AUTH_URL, service_type="volume")
        self.volumes = self.cinder.volumes.list()

        self.snapshots = self.cinder.volume_snapshots.list()

        self.nova = client.Client("2.1", session=self.keystone_session)
        self.servers = self.nova.servers.list()

        self.kwargs = {
            'auth_url': auth_url,
            'session': self.keystone_session,
            'auth': self.keystone_auth,
            'service_type': 'orchestration'}

    def output(self):
        if sys.argv[5] == 'servers':
            print(self.servers)
            return MockFile(self.servers, mirror_on_stderr=True)
        elif sys.argv[5] == 'volume':
            return MockFile(self.volumes, mirror_on_stderr=True)
        elif sys.argv[5] == 'cinder':
            return MockFile(self.cinder, mirror_on_stderr=True)

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

Tags: nameselfauthurlossessionkeystonesys
1条回答
网友
1楼 · 发布于 2024-06-10 23:08:39

你能告诉你错误所在的行号/堆栈跟踪吗?在

此错误意味着您的类没有定义为-“servers”的变量。 因此,您的output()函数(您正在打印的地方自助服务器)在排队前接到电话- 自助服务器= self.nova.服务器.list()在run()函数中。在

相关问题 更多 >