Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AttributeError:type object';ManagerWithFind';没有属性';客户';_Python_Openstack_Openstack Nova_Bare Metal - Fatal编程技术网

Python AttributeError:type object';ManagerWithFind';没有属性';客户';

Python AttributeError:type object';ManagerWithFind';没有属性';客户';,python,openstack,openstack-nova,bare-metal,Python,Openstack,Openstack Nova,Bare Metal,我是python和openstack的新手,所以请不要失去冷静:) 这里我尝试实例化BareMetalNodeManager类对象(来自np_orchestration.py) np\u编排.py from baremetal import BareMetalNodeManager from novaclient import base class np_orchestration: def provisionNodes(self): obj = BareMetalNo

我是python和openstack的新手,所以请不要失去冷静:)

这里我尝试实例化BareMetalNodeManager类对象(来自np_orchestration.py)

np\u编排.py

from baremetal import BareMetalNodeManager
from novaclient import base

class np_orchestration:
    def provisionNodes(self):
        obj = BareMetalNodeManager(base.ManagerWithFind);
        var =        obj.create(self,"192.168.XXX.XXX",1,514,1,"00:0C:29:XX:XX:XX","192.168.XXX.XXX","XXXX","XXXX")
        print var

obj = np_orchestration()
obj.provisionNodes()
class BareMetalNodeManager(base.ManagerWithFind):
"""
Manage :class:`BareMetalNode` resources.
"""
resource_class = BareMetalNode

def create(self,
           service_host,
           cpus,
           memory_mb,
           local_gb,
           prov_mac_address,
           pm_address=None,
           pm_user=None,
           pm_password=None,
           terminal_port=None):
    """
    Create a baremetal node.

    :param service_host: Name of controlling compute host
    :param cpus: Number of CPUs in the node
    :param memory_mb: Megabytes of RAM in the node
    :param local_gb: Gigabytes of local storage in the node
    :param pm_address: Power management IP for the node
    :param pm_user: Username for the node's power management
    :param pm_password: Password for the node's power management
    :param prov_mac_address: MAC address to provision the node
    :param terminal_port: ShellInABox port
    :rtype: :class:`BareMetalNode`
    """
    body = {'node': {'service_host': service_host,
                    'cpus': cpus,
                    'memory_mb': memory_mb,
                    'local_gb': local_gb,
                    'pm_address': pm_address,
                    'pm_user': pm_user,
                    'pm_password': pm_password,
                    'prov_mac_address': prov_mac_address,
                    'terminal_port': terminal_port}}

    return self._create('/os-baremetal-nodes', body, 'node')
此类(位于baremetal.py中)需要base.ManagerWithFind作为参数(这是一个抽象类)

裸金属.py

from baremetal import BareMetalNodeManager
from novaclient import base

class np_orchestration:
    def provisionNodes(self):
        obj = BareMetalNodeManager(base.ManagerWithFind);
        var =        obj.create(self,"192.168.XXX.XXX",1,514,1,"00:0C:29:XX:XX:XX","192.168.XXX.XXX","XXXX","XXXX")
        print var

obj = np_orchestration()
obj.provisionNodes()
class BareMetalNodeManager(base.ManagerWithFind):
"""
Manage :class:`BareMetalNode` resources.
"""
resource_class = BareMetalNode

def create(self,
           service_host,
           cpus,
           memory_mb,
           local_gb,
           prov_mac_address,
           pm_address=None,
           pm_user=None,
           pm_password=None,
           terminal_port=None):
    """
    Create a baremetal node.

    :param service_host: Name of controlling compute host
    :param cpus: Number of CPUs in the node
    :param memory_mb: Megabytes of RAM in the node
    :param local_gb: Gigabytes of local storage in the node
    :param pm_address: Power management IP for the node
    :param pm_user: Username for the node's power management
    :param pm_password: Password for the node's power management
    :param prov_mac_address: MAC address to provision the node
    :param terminal_port: ShellInABox port
    :rtype: :class:`BareMetalNode`
    """
    body = {'node': {'service_host': service_host,
                    'cpus': cpus,
                    'memory_mb': memory_mb,
                    'local_gb': local_gb,
                    'pm_address': pm_address,
                    'pm_user': pm_user,
                    'pm_password': pm_password,
                    'prov_mac_address': prov_mac_address,
                    'terminal_port': terminal_port}}

    return self._create('/os-baremetal-nodes', body, 'node')
当我尝试执行此操作时,会出现以下错误:

farooqui@ubuntu:/projects/kenobi$ python np_orchestration.py
Traceback (most recent call last):
File "np_orchestration.py", line 15, in <module>
obj.provisionNodes()
File "np_orchestration.py", line 11, in provisionNodes
var = obj.create(self,"192.168.42.134",1,514,1,"00:0C:29:CF:E6:D9","192.168.42.225","admin","abc")
File "/projects/kenobi/baremetal.py", line 82, in create
return self._create('/os-baremetal-nodes', body, 'node')
File "/opt/stack/python-novaclient/novaclient/base.py", line 100, in _create
_resp, body = self.api.client.post(url, body=body)
AttributeError: type object 'ManagerWithFind' has no attribute 'client'
farooqui@ubuntu:/projects/kenobi$ 
farooqui@ubuntu:/projects/kenobi$python np_orchestration.py
回溯(最近一次呼叫最后一次):
文件“np_orchestration.py”,第15行,在
obj.provisionNodes()
provisionNodes中第11行的文件“np_orchestration.py”
var=obj.create(self,“192.168.42.134”,1514,1,“00:0C:29:CF:E6:D9”,“192.168.42.225”,“admin”,“abc”)
文件“/projects/kenobi/baremetal.py”,第82行,创建
返回self.\u创建('/os baremetal nodes',body',node'))
文件“/opt/stack/python novaclient/novaclient/base.py”,第100行,在创建
_resp,body=self.api.client.post(url,body=body)
AttributeError:类型对象“ManagerWithFind”没有属性“client”
farooqui@ubuntu:/projects/kenobi$
baremetal.py的完整版本可在以下位置找到:

谢谢。作为将来的参考,最新的novaclient需要client.HTTPClient而不是_construct_http_client(),还需要将project_id=None作为projectd=None传递