Merge "Replace server fault_info with fault"

This commit is contained in:
Jenkins 2017-08-22 06:44:07 +00:00 committed by Gerrit Code Review
commit db41f26426
5 changed files with 13 additions and 10 deletions

View File

@ -24,7 +24,7 @@
"power_state": "power on",
"project_id": "c18e8a1a870d4c08a0b51ced6e0b6459",
"status": "error",
"fault_info": {
"fault": {
"code": 500,
"message": "fault message",
"detail": "fault detail"

View File

@ -263,7 +263,7 @@ Response
- uuid: server_uuid
- status: server_status
- power_state: server_power_state
- fault_info: server_fault
- fault: server_fault
- project_id: project_id_body
- user_id: user_id_body
- updated_at: updated_at

View File

@ -445,8 +445,8 @@ class Server(base.APIBase):
metadata = {wtypes.text: types.jsontype}
"""The meta data of the server"""
fault_info = {wtypes.text: types.jsontype}
"""The fault info of the server"""
fault = {wtypes.text: types.jsontype}
"""The fault of the server"""
node_uuid = types.uuid
"""The node UUID of the server"""
@ -461,11 +461,9 @@ class Server(base.APIBase):
setattr(self, field, nics)
continue
if field == 'fault':
if kwargs.get('status', None) == 'error':
fault_info = kwargs.get(field, None)
if fault_info is not None:
fault_info = fault_info.return_dict()
setattr(self, 'fault_info', fault_info)
if kwargs.get('status') != 'error':
setattr(self, field, wtypes.Unset)
continue
if field == 'node_uuid':
if not pecan.request.context.is_admin:
setattr(self, field, wtypes.Unset)

View File

@ -121,6 +121,11 @@ class Server(base.MoganObject, object_base.VersionedObjectDictCompat):
data = dict(self.items())
if 'nics' in data:
data.update(nics=data['nics'].as_list_of_dict())
if 'fault' in data:
if data['fault'] is not None:
data.update(fault=data['fault'].as_fault_dict())
else:
data.update(fault={})
return data
@classmethod

View File

@ -40,7 +40,7 @@ class ServerFault(base.MoganObject, object_base.VersionedObjectDictCompat):
'detail': object_fields.StringField(nullable=True),
}
def return_dict(self):
def as_fault_dict(self):
return dict((k, getattr(self, k))
for k in ['code', 'message', 'detail']
if hasattr(self, k))