<div dir="ltr"><div><font size="4">Hi, everyone:<br></font></div><font size="4">        I'm trying to use Tuskar-ui to deploy an overcloud baremetal. But when I comfirmed and click the "deploy" buttom, it always got the following error. I really appreciate any help for this.</font><br><div>   <br>DEBUG:tuskar_ui.api.tuskar:tuskarclient connection created using token "c814a946a77c11be3f1fcd79d0a9bcd5" and url "<a href="http://192.0.2.19:8585/">http://192.0.2.19:8585/</a>"<br>DEBUG:tuskarclient.common.http:curl -i -X GET -H 'X-Auth-Token: c814a946a77c11be3f1fcd79d0a9bcd5' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' <a href="http://192.0.2.19:8585//v2/plans/8edb6d86-04d2-4792-906e-9677655477b8/templates">http://192.0.2.19:8585//v2/plans/8edb6d86-04d2-4792-906e-9677655477b8/templates</a><br>DEBUG:tuskarclient.common.http:<br>HTTP/1.0 200 OK<br>date: Mon, 15 Sep 2014 06:15:14 GMT<br>content-length: 2014<br>content-type: application/json; charset=UTF-8<br>server: WSGIServer/0.1 Python/2.7.6<br><br>{"plan.yaml": "description: overcloud\nheat_template_version: '2014-10-16'\noutputs:\n  controller-1::ip:\n    value:\n      get_attr:\n      - controller-1-resource-servers\n      - ip\nparameters:\n  controller-1::count:\n    constraints:\n    - range:\n        min: '1'\n    type: number\n  controller-1::image_id:\n    description: ID of the image to use\n    type: string\n  controller-1::instance_type:\n    constraints:\n    - allowed_values:\n      - baremetal\n      - m1.large\n      description: instance_type must be one of baremetal, m1.large\n    default: baremetal\n    description: Instance type\n    type: string\nresources:\n  controller-1-resource-servers:\n    properties:\n      count:\n        get_param:\n        - controller-1::count\n      resource_def:\n        properties:\n          image_id:\n            get_param:\n            - controller-1::image_id\n          instance_type:\n            get_param:\n            - controller-1::instance_type\n        type: Tuskar::controller-1\n    type: OS::Heat::ResourceGroup\n", "environment.yaml": "parameters:\n  controller-1::count: '1'\n  controller-1::image_id: ''\n  controller-1::instance_type: baremetal\nresource_registry:\n  Tuskar::controller-1: provider-controller-1.yaml\n", "provider-controller-1.yaml": "description: 'Creates a controller server\n\n  '\nheat_template_version: 2013-05-23\noutputs:\n  ip:\n    description: IP of the created instance\n    value:\n      get_attr:\n      - controller_server\n      - first_address\nparameters:\n  image_id:\n    description: ID of the image to use\n    type: string\n  instance_type:\n    constraints:\n    - allowed_values:\n      - baremetal\n      - m1.large\n      description: instance_type must be one of baremetal, m1.large\n    default: baremetal\n    description: Instance type\n    type: string\nresources:\n  controller_server:\n    properties:\n      flavor:\n        get_param: instance_type\n      image:\n        get_param: image_id\n    type: OS::Nova::Server\n"}<br><br>ERROR:tuskar_ui.infrastructure.overview.forms:roles<br>Traceback (most recent call last):<br>  File "/home/stack/tuskar-ui/tuskar_ui/infrastructure/overview/forms.py", line 90, in handle<br>    plan.master_template,<br>  File "/home/stack/horizon/openstack_dashboard/api/base.py", line 81, in __getattribute__<br>    return object.__getattribute__(self, attr)<br>  File "/home/stack/tuskar-ui/tuskar_ui/cached_property.py", line 60, in __get__<br>    res = instance.__dict__[self.func.__name__] = self.func(instance)<br>  File "/home/stack/tuskar-ui/tuskar_ui/api/tuskar.py", line 174, in master_template<br>    return self.templates.get(MASTER_TEMPLATE_NAME, '')<br>  File "/home/stack/horizon/openstack_dashboard/api/base.py", line 81, in __getattribute__<br>    return object.__getattribute__(self, attr)<br>  File "/home/stack/tuskar-ui/tuskar_ui/cached_property.py", line 60, in __get__<br>    res = instance.__dict__[self.func.__name__] = self.func(instance)<br>  File "/home/stack/tuskar-ui/tuskar_ui/api/tuskar.py", line 170, in templates<br>    return tuskarclient(self._request).plans.templates(self.uuid)<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/v2/plans.py", line 159, in templates<br>    return self._get(self._templates_path(plan_uuid)).to_dict()<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/common/base.py", line 78, in _get<br>    return self._list(url, **kwargs)[0]<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/common/base.py", line 98, in _list<br>    return [obj_class(self, res, loaded=True) for res in data if res]<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/v2/plans.py", line 28, in __init__<br>    self.roles = [roles.Role(None, role) for role in self.roles]<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/openstack/common/apiclient/base.py", line 464, in __getattr__<br>    raise AttributeError(k)<br>AttributeError: roles<br>Internal Server Error: /infrastructure/deploy-confirmation<br>Traceback (most recent call last):<br>  File "/home/stack/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response<br>    response = wrapped_callback(request, *callback_args, **callback_kwargs)<br>  File "/home/stack/horizon/horizon/decorators.py", line 36, in dec<br>    return view_func(request, *args, **kwargs)<br>  File "/home/stack/horizon/horizon/decorators.py", line 84, in dec<br>    return view_func(request, *args, **kwargs)<br>  File "/home/stack/horizon/horizon/decorators.py", line 52, in dec<br>    return view_func(request, *args, **kwargs)<br>  File "/home/stack/horizon/horizon/decorators.py", line 36, in dec<br>    return view_func(request, *args, **kwargs)<br>  File "/home/stack/horizon/.venv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view<br>    return self.dispatch(request, *args, **kwargs)<br>  File "/home/stack/horizon/.venv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 87, in dispatch<br>    return handler(request, *args, **kwargs)<br>  File "/home/stack/horizon/.venv/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 171, in post<br>    return self.form_valid(form)<br>  File "/home/stack/horizon/horizon/forms/views.py", line 87, in form_valid<br>    exceptions.handle(self.request)<br>  File "/home/stack/horizon/horizon/exceptions.py", line 334, in handle<br>    six.reraise(exc_type, exc_value, exc_traceback)<br>  File "/home/stack/horizon/horizon/forms/views.py", line 84, in form_valid<br>    handled = form.handle(self.request, form.cleaned_data)<br>  File "/home/stack/tuskar-ui/tuskar_ui/infrastructure/overview/forms.py", line 96, in handle<br>    _("Unable to deploy overcloud."))<br>  File "/home/stack/horizon/horizon/exceptions.py", line 334, in handle<br>    six.reraise(exc_type, exc_value, exc_traceback)<br>  File "/home/stack/tuskar-ui/tuskar_ui/infrastructure/overview/forms.py", line 90, in handle<br>    plan.master_template,<br>  File "/home/stack/horizon/openstack_dashboard/api/base.py", line 81, in __getattribute__<br>    return object.__getattribute__(self, attr)<br>  File "/home/stack/tuskar-ui/tuskar_ui/cached_property.py", line 60, in __get__<br>    res = instance.__dict__[self.func.__name__] = self.func(instance)<br>  File "/home/stack/tuskar-ui/tuskar_ui/api/tuskar.py", line 174, in master_template<br>    return self.templates.get(MASTER_TEMPLATE_NAME, '')<br>  File "/home/stack/horizon/openstack_dashboard/api/base.py", line 81, in __getattribute__<br>    return object.__getattribute__(self, attr)<br>  File "/home/stack/tuskar-ui/tuskar_ui/cached_property.py", line 60, in __get__<br>    res = instance.__dict__[self.func.__name__] = self.func(instance)<br>  File "/home/stack/tuskar-ui/tuskar_ui/api/tuskar.py", line 170, in templates<br>    return tuskarclient(self._request).plans.templates(self.uuid)<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/v2/plans.py", line 159, in templates<br>    return self._get(self._templates_path(plan_uuid)).to_dict()<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/common/base.py", line 78, in _get<br>    return self._list(url, **kwargs)[0]<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/common/base.py", line 98, in _list<br>    return [obj_class(self, res, loaded=True) for res in data if res]<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/v2/plans.py", line 28, in __init__<br>    self.roles = [roles.Role(None, role) for role in self.roles]<br>  File "/home/stack/horizon/.venv/src/python-tuskarclient/tuskarclient/openstack/common/apiclient/base.py", line 464, in __getattr__<br>    raise AttributeError(k)<br>AttributeError: roles<br>[15/Sep/2014 06:15:14] "POST /infrastructure/deploy-confirmation HTTP/1.1" 500 28635<br><img alt="内嵌图片 2" src="cid:ii_14877ff5f4b4f95f" height="256" width="455"><br><div><br clear="all"><div><div dir="ltr"><div><font face="comic sans ms, sans-serif" size="4"><b><i>Best Regards!</i></b></font></div><font face="comic sans ms, sans-serif" size="4"><b><i>Chao Yan<br><font>--------------<br></font></i></b></font><font face="comic sans ms, sans-serif" size="4"><b><i><font>My twitter:Andy Yan <a href="https://twitter.com/yanchao727" target="_blank">@yanchao727</a></font></i></b></font><br><font face="comic sans ms, sans-serif" size="4"><b><i><font>My Weibo:<a href="http://weibo.com/herewearenow" target="_blank">http://weibo.com/herewearenow</a><br>--------------</font><br></i></b></font></div></div>
</div></div></div>