plan-create failed with errors about parameter
Create a plan with a parameter about the resource using the following cmd. The parameter field in restore RESTAPI is not correct.
karbor --debug plan-create 'OS Server protection plan.' 'cf56bd3e-97a7-4078-b6d5-f36246333fd9' 'ead08bf4-59f2-4d27-823a-1ebdd479cb6d'='OS::Nova::Server'='serverbootfromvolume' --parameters 'resource_type'='OS::Nova::Server','resource_id'='ead08bf4-59f2-4d27-823a-1ebdd479cb6d',backup_name="server_backup"
REQ: curl -g -i -X POST http://10.229.43.237:8799/v1/0a9fc5d2238042bd8b21f63a88cb4d72/plans -H "User-Agent: python-karborclient" -H "Content-Type: application/json" -H "X-Auth-Token: {SHA1}2823cf0844f1c91da7bbda21b2417d94284ee764" -d '{"plan": {"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9", "parameters": {"backup_name": "server_backup", "OS::Nova::Server#ead08bf4-59f2-4d27-823a-1ebdd479cb6d": {}, "resource_type": "OS::Nova::Server", "resource_id": "ead08bf4-59f2-4d27-823a-1ebdd479cb6d"}, "name": "OS Server protection plan.", "resources": [{"type": "OS::Nova::Server", "id": "ead08bf4-59f2-4d27-823a-1ebdd479cb6d", "name": "serverbootfromvolume"}], "description": null}}'
http://10.229.43.237:8799 "POST /v1/0a9fc5d2238042bd8b21f63a88cb4d72/plans HTTP/1.1" 500 114
{
"plan": {
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
"parameters": {
"backup_name": "server_backup",
"OS::Nova::Server#ead08bf4-59f2-4d27-823a-1ebdd479cb6d": {},
"resource_type": "OS::Nova::Server",
"resource_id": "ead08bf4-59f2-4d27-823a-1ebdd479cb6d"
},
"name": "OS Server protection plan.",
"resources": [
{
"type": "OS::Nova::Server",
"id": "ead08bf4-59f2-4d27-823a-1ebdd479cb6d",
"name": "serverbootfromvolume"
}
],
"description": null
}
}
error log about protection service.
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors plan = objects.Plan(context=context, **plan_properties)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/opt/stack/karbor/karbor/objects/plan.py", line 50, in __init__
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors super(Plan, self).__init__(*args, **kwargs)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 307, in __init__
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors setattr(self, key, kwargs[key])
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 72, in setter
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors field_value = field.coerce(self, name, value)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 195, in coerce
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors return self._type.coerce(obj, attr, value)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 665, in coerce
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors coerced_dict.update(value)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 1292, in update
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors super(CoercedDict, self).update(self._coerce_dict(other),
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 1270, in _coerce_dict
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors res[key] = self._coerce_item(key, element)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 1282, in _coerce_item
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors return self._element_type.coerce(self._obj, att_name, item)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 195, in coerce
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors return self._type.coerce(obj, attr, value)
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 662, in coerce
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors {'attr': attr, 'type': type(value).__name__})
2017-02-20 18:55:05.445 TRACE oslo_middleware.catch_errors ValueError: A dict is required in field parameters[backup_name], not a unicode
{u'plan': {u'provider_id': u'cf56bd3e- 97a7-4078- b6d5-f36246333f d9', u'resources': [{u'type': u'OS::Nova: :Server' , u'id': u'ead08bf4- 59f2-4d27- 823a-1ebdd479cb 6d', u'name': u'serverbootfro mvolume' }], u'name': u'OS Server protection plan.', u'parameters': {u'OS:: Nova::Server# ead08bf4- 59f2-4d27- 823a-1ebdd479cb 6d': {u'backup_name': u'server_backup'}}, u'description': None}}