openstack-nova源码分析(十)resize

本文深入分析了OpenStack Nova中resize功能的实现,从API入口、参数校验到关键代码解读,揭示了resize与冷迁移的相似与不同之处,重点关注了resize在api、conductor层面的操作。
摘要由CSDN通过智能技术生成

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值