温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何获得network的可用fixed_ip个数

发布时间:2021-12-23 18:11:24 来源:亿速云 阅读:147 作者:柒染 栏目:云计算

今天就跟大家聊聊有关 如何获得network的可用fixed_ip个数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

获得network的可用fixed_ip个数-openstackE版

about:blank

方法一:直接在nova底层增加fixed_ip_count字段:

如何获得network的可用fixed_ip个数


















方法二:直接从dashboard封装api到底层:


其中api发布为:

如何获得network的可用fixed_ip个数


如何获得network的可用fixed_ip个数


以下为详细信息:

1、dashboard页面:

dashboards/nova/zones_and_networks/views.py

            network_id = networks[0]['id']

            count = api.nova.get_available_count_ips(self.request, network_id)

如何获得network的可用fixed_ip个数

api/nova.py

def get_available_count_ips(request,network_id):

    return novaclient(request).networks.get_available_count_ips(network_id)

如何获得network的可用fixed_ip个数


2、novaclient层

v1_1/networks.py


    def get_available_count_ips(self, network_id):

        """

        Get a specific flavor.


        :param flavor: The ID of the :class:`Flavor` to get.

        :rtype: :class:`Flavor`

        """

        return self._list("/os-networks/get_available_count_ips/%s" % network_id, "count")

如何获得network的可用fixed_ip个数


3、nova层

api/openstack/compute/contrib/networks.py

    def get_available_count_ips(self, req, id):

        context = req.environ['nova.context']

        authorize(context)

        LOG.debug(_("Showing network_fixed_count with id %s") % id)

        try:

            count = self.network_api.get_available_count_ips(context, id)

        except exception.NetworkNotFound:

            raise exc.HTTPNotFound(_("Network not found"))

        return {'count': count}

如何获得network的可用fixed_ip个数


collection_actions = {'list_limit': 'POST','get_available_count_ips': 'POST'},

如何获得network的可用fixed_ip个数


vi network/api.py

    def get_available_count_ips(self, context,network_id):

        return rpc.call(context,

                        FLAGS.network_topic,

                        {'method': 'get_available_count_ips',

                         'args': {'network_id': network_id}})

如何获得network的可用fixed_ip个数



vi network/manager.py

    @wrap_check_policy

    def get_available_count_ips(self, context, network_id):

        count = db.network_available_count_ips(context, network_id)

        return count

如何获得network的可用fixed_ip个数



db/api.py

def network_available_count_ips(context, network_id):

    """Return the number of reserved ips in the network."""

    return IMPL.network_available_count_ips(context, network_id)

如何获得network的可用fixed_ip个数



db/sqlalchemy/api.py

@require_admin_context

def network_available_count_ips(context, network_id):

    return _network_ips_query(context, network_id).\

                    filter_by(reserved=False).\

                    filter_by(host='').\

                    filter_by(instance_id='').\

                    filter_by(allocated=False).\

                    count()

如何获得network的可用fixed_ip个数



注释:一定要跟到base.py里面看_list的传参方式:

如何获得network的可用fixed_ip个数


看完上述内容,你们对 如何获得network的可用fixed_ip个数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI