OpenStack resize 调整虚拟机配置
resize调整配置的步骤与冷迁移的步骤大致一致,只是在api以及conductor处理上由一些不同
该部分源码分析, 分析不同的部分的关键代码, 相同部分的源码可以参考冷迁移的源码分析
一.API入口
api 入口定义在nova/api/openstack/compute/servers.py
@wsgi.action('resize')
// 校验 resize输入参数合法性
@validation.schema(schema_server_resize)
def _action_resize(self, req, id, body):
"""Resizes a given instance to the flavor size requested."""
resize_dict = body['resize']
// 获取调整的flavor配置
flavor_ref = str(resize_dict["flavorRef"])
kwargs = {}
helpers.translate_attributes(helpers.RESIZE, resize_dict, kwargs)
self._resize(req, id, flavor_ref, **kwargs)
附 resize的参数校验配置
base_resize = {
'type': 'object',
'properties': {
'resize': {
'type': 'object',
'properties': {
'flavorRef': parameter_types.flavor_ref,
'OS-DCF:diskConfig': parameter_types.disk_config,
},
'required': ['flavorRef'],
'additionalProperties': False,
},
},
'required': ['resize'],
'additionalProperties': False,
}
api resize 实际使用_resize
进行处理
_resize 定义如下:
def _resize(self, req, instance_id, flavor_id, **kwargs):
"""Begin the