一种基于Neutron的新增REST插件方法

文档序号:9865221阅读:167来源:国知局
一种基于Neutron的新增REST插件方法
【技术领域】
[0001] 本发明设及云计算技术领域,特别是一种基于化utron的新增REST插件方法。
【背景技术】
[0002] REST和RESTful
[0003] RES巧旨的是一组架构约束条件和原则。满足运些约束条件和原则的应用程序或设 计就是RESTful。
[0004] Web应用程序最重要的REST原则是,客户端和服务器之间的交互在请求之间是无 状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在 请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可W由任何可用服务 器回答,运十分适合云计算之类的环境。客户端可W缓存数据W改进性能。
[0005] 另一个比较重要的原则则是在服务器端,应用程序状态和功能可W分为各种资 源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记 录、算法等等。每个资源都使用URI化niversal Resource Identifier)得到一个惟一的地 址。所有资源都共享统一的界面,W便在客户端和服务器之间传输状态。使用的是标准的 HTTP方法,比如GET、PUT、POST 和DELETE。
[0006] 化 utron 和 Openstack
[0007] OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成 具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩 展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即 服务(laaS)的解决方案,每个服务提供API W进行集成。Neutron则是化enstack云平台里面 用于实现虚拟机网络、子网、路由、安全组、防火墙W及负载均衡等所有虚拟网络功能。
[000引随着化enstack开源云平台应用越来越广泛,各家云平台都借助于其实现自己的 私有云平台,但是往往化enstack现有的功能并不能满足用户的特色需求,故需求对其进行 二次开发。本发明的方法则是提供了一种基于化utron组件的新增REST插件的方法。

【发明内容】

[0009] 本发明解决的技术问题在于提供一种基于化utron新增REST插件的方法,实现了 在化utron上进行快速的二次开发,编写满足自己云平台功能需求的REST插件。
[0010] 本发明解决上述技术问题的技术方案是:
[0011] 所述的方法包括:
[0012] (1 )、在扩展包中定义新增插件扩展描述类和插件基类;
[0013] (2)、在服务包中定义新增插件的具体实现资源操作类;
[0014] (3)、在数据包中定义新增插件数据库操作类;
[0015] (4)、接着在公共常量模块中设置新增插件的相关变量;
[0016] (5)、最后定义好新增插件需要使用的相关配置。
[0017]所述的插件是基于neutron而开发的支持REST规范的软件程序。
[0018] 所述的包是指python程序中包含一个_;[]1;[1:_.97文件的目录;
[0019] 所述的扩展包是指化utron组件中的extensions目录;
[0020] 所述的服务包是指化utron组件中的services目录;
[0021] 所述的服务包是指化utron组件中的化目录。
[0022] 所述的插件扩展描述类是指继承了extensions .ExtensionDescriptor描述基类 的python类,主要用于抽象的描述插件资源的url和action等;
[0023] 所述的插件基类是指继承了 se;rvice_base . ServicePluginBase服务基类的 python类,主要用于描述插件要实现的资源操作;
[0024] 所述的插件资源操作类则是继承了所述插件基类的python类,主要是实现基类里 的资源操作方法,并调用插件数据库操作类;
[0025] 所述的插件数据库操作类则是继承了化utron中数据库操作基类的python类,负 责完成资源数据的保存和读取。
[0026] 所述的模块是指python语言中一个.py文件,而所述的公共常量模块则是 cons化nts. py文件;所述的常量是指新增插件被化utron成功集成所必须的一些宏定义等;
[0027] 所述的配置包括在neutron.conf配置文件中增加新插件的相关配置等。
[0028] 本发明方案的有益效果如下:
[0029] 1、提供一种在Neutron上进行快速的二次开发,编写满足自己云平台功能需求 REST插件的方法。
[0030] 2、本发明方法自定义的新插件不影响化utron组件本身的虚拟网络功能,可W弹 性伸缩。
【附图说明】
[0031 ]下面结合附图对本发明进一步说明:
[0032] 图1为本发明的流程图。
【具体实施方式】
[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在化enstack其他组件的基础上新增插件的类似 方法实施例,都属于本发明保护的范围。
[0034] 请参见图1,为本发明实施例提供的一种基于化utron新增REST插件的方法的流程 示意图,本实施类W增加自定义插件gcloucLnat为例进行描述,所述方法包括:
[0035] 在扩展包中定义新增插件扩展描述类和插件基类。具体的是在Neutron的 extension包里增加一个模块gcloud_nat.py,并在该模块下面创建与模块名一致的插件描 述类Gcloud_natW及插件基类GcloudNa1:PluginBase。如下所示:
[0036]
[0038]插件描述类主要包括get_resources方法,将插件中的实体W资源的形式返回,W 便REST接口方式调用。
[0039]
[0040] pass
[0041 ] 插件基类Gcloud化巧luginBase则定义标准的REST接口方法,即P0ST、PUT、GET、 DELETE 接口 对应的 cr eat e_gcloud_nat、update_gcloud_nat、get_gcloud_nat、del te_ gcloud_nat抽象方法。
[0042] 接着在服务包中定义新增插件的具体实现资源操作类。即在化utron的services 包中新建gcloud_nat_plugin. py文件并定义Gcloud化巧luginV2操作类,主要目的实现插 件基类的RES巧由象接口,进行具体的业务实现,然后调用数据库操作类操作数据库。
[0043] 在数据包中定义新增插件数据库操作类。即在化utron的化包中新增gcloud_nat_ 化.py文件并定义插件数据库操作类Gclou抓atMixin和插件数据库实体类GcloudNat类,通 过运两个类实现插件对数据库的新增、修改、删除、查询等功能。
[0044] 接着在公共常量模块中设置新增插件的相关变量。即在Neutron的plugins/ common/cons化nts. py模块中增加新插件相关的宏变量,如:
[0045] GCLOUD_NAT="gcloud nat"
[0046] ......
[0047] 最后定义好新增插件需要使用的相关配置。如在Neutron的配置文件 neutron, con 帥亲if 增名称为 gcloud_nat 的 service-plugin。
[0048] W上所掲露的仅为本发明其中一个实施例而已,当然不能W此来限定本发明之权 利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1. 一种基于Neutron新增REST插件的方法,其特征在于,所述的方法包括: (1 )、在扩展包中定义新增插件扩展描述类和插件基类; (2)、在服务包中定义新增插件的具体实现资源操作类; (3 )、在数据包中定义新增插件数据库操作类; (4) 、接着在公共常量模块中设置新增插件的相关变量; (5) 、最后定义好新增插件需要使用的相关配置。2. 根据权利要求1所述的方法,其特征在于,所述的插件是基于neutron而开发的支持 REST规范的软件程序。3. 根据权利要求1所述的方法,其特征在于,所述的包是指python程序中包含一个__ init_.py文件的目录; 所述的扩展包是指Neutron组件中的extensions目录; 所述的服务包是指Neutron组件中的services目录; 所述的服务包是指Neutron组件中的db目录。4. 根据权利要求2所述的方法,其特征在于,所述的包是指python程序中包含一个__ init_.py文件的目录; 所述的扩展包是指Neutron组件中的extensions目录; 所述的服务包是指Neutron组件中的services目录; 所述的服务包是指Neutron组件中的db目录。5. 根据权利要求1至4任一项所述的方法,其特征在于,所述的插件扩展描述类是指继 承了 extensions .ExtensionDescriptor描述基类的python类,主要用于抽象的描述插件资 源的url和act ion等; 所述的插件基类是指继承了service_base. ServicePluginBase服务基类的python类, 主要用于描述插件要实现的资源操作; 所述的插件资源操作类则是继承了所述插件基类的python类,主要是实现基类里的资 源操作方法,并调用插件数据库操作类; 所述的插件数据库操作类则是继承了Neutron中数据库操作基类的python类,负责完 成资源数据的保存和读取。 所述的模块是指python语言中一个.py文件,而所述的公共常量模块则是 constants. py文件;所述的常量是指新增插件被Neutron成功集成所必须的一些宏定义等; 所述的配置包括在neutron, conf配置文件中增加新插件的相关配置等。
【专利摘要】本发明涉及云计算技术领域,特别是一种基于Neutron的新增REST插件方法。本发明所述方法包括:在扩展包中定义新增插件扩展描述类和插件基类;在服务包中定义新增插件的具体实现资源操作类;在数据包中定义新增插件数据库操作类;接着在公共常量模块中设置新增插件的相关变量;最后定义好新增插件需要使用的相关配置。本发明可在Neutron上进行快速的二次开发,编写满足自己云平台功能需求的REST插件;可以用于云平台功能需求的新增REST插件上。
【IPC分类】G06F9/44
【公开号】CN105630496
【申请号】CN201510981288
【发明人】熊梦, 杨松, 季统凯
【申请人】国云科技股份有限公司
【公开日】2016年6月1日
【申请日】2015年12月22日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1