CN105630496A - 一种基于Neutron的新增REST插件方法 - Google Patents
一种基于Neutron的新增REST插件方法 Download PDFInfo
- Publication number
- CN105630496A CN105630496A CN201510981288.XA CN201510981288A CN105630496A CN 105630496 A CN105630496 A CN 105630496A CN 201510981288 A CN201510981288 A CN 201510981288A CN 105630496 A CN105630496 A CN 105630496A
- Authority
- CN
- China
- Prior art keywords
- plug
- class
- neutron
- unit
- refers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及云计算技术领域,特别是一种基于Neutron的新增REST插件方法。本发明所述方法包括:在扩展包中定义新增插件扩展描述类和插件基类;在服务包中定义新增插件的具体实现资源操作类;在数据包中定义新增插件数据库操作类;接着在公共常量模块中设置新增插件的相关变量;最后定义好新增插件需要使用的相关配置。本发明可在Neutron上进行快速的二次开发,编写满足自己云平台功能需求的REST插件;可以用于云平台功能需求的新增REST插件上。
Description
技术领域
本发明涉及云计算技术领域,特别是一种基于Neutron的新增REST插件方法。
背景技术
REST和RESTful
REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。
Web应用程序最重要的REST原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
另一个比较重要的原则则是在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用URI(UniversalResourceIdentifier)得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的HTTP方法,比如GET、PUT、POST和DELETE。
Neutron和Openstack
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。Neutron则是Openstack云平台里面用于实现虚拟机网络、子网、路由、安全组、防火墙以及负载均衡等所有虚拟网络功能。
随着Openstack开源云平台应用越来越广泛,各家云平台都借助于其实现自己的私有云平台,但是往往Openstack现有的功能并不能满足用户的特色需求,故需求对其进行二次开发。本发明的方法则是提供了一种基于Neutron组件的新增REST插件的方法。
发明内容
本发明解决的技术问题在于提供一种基于Neutron新增REST插件的方法,实现了在Neutron上进行快速的二次开发,编写满足自己云平台功能需求的REST插件。
本发明解决上述技术问题的技术方案是:
所述的方法包括:
(1)、在扩展包中定义新增插件扩展描述类和插件基类;
(2)、在服务包中定义新增插件的具体实现资源操作类;
(3)、在数据包中定义新增插件数据库操作类;
(4)、接着在公共常量模块中设置新增插件的相关变量;
(5)、最后定义好新增插件需要使用的相关配置。
所述的插件是基于neutron而开发的支持REST规范的软件程序。
所述的包是指python程序中包含一个_init_.py文件的目录;
所述的扩展包是指Neutron组件中的extensions目录;
所述的服务包是指Neutron组件中的services目录;
所述的服务包是指Neutron组件中的db目录。
所述的插件扩展描述类是指继承了extensions.ExtensionDescriptor描述基类的python类,主要用于抽象的描述插件资源的url和action等;
所述的插件基类是指继承了service_base.ServicePluginBase服务基类的python类,主要用于描述插件要实现的资源操作;
所述的插件资源操作类则是继承了所述插件基类的python类,主要是实现基类里的资源操作方法,并调用插件数据库操作类;
所述的插件数据库操作类则是继承了Neutron中数据库操作基类的python类,负责完成资源数据的保存和读取。
所述的模块是指python语言中一个.py文件,而所述的公共常量模块则是constants.py文件;所述的常量是指新增插件被Neutron成功集成所必须的一些宏定义等;
所述的配置包括在neutron.conf配置文件中增加新插件的相关配置等。
本发明方案的有益效果如下:
1、提供一种在Neutron上进行快速的二次开发,编写满足自己云平台功能需求REST插件的方法。
2、本发明方法自定义的新插件不影响Neutron组件本身的虚拟网络功能,可以弹性伸缩。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在Openstack其他组件的基础上新增插件的类似方法实施例,都属于本发明保护的范围。
请参见图1,为本发明实施例提供的一种基于Neutron新增REST插件的方法的流程示意图,本实施类以增加自定义插件gcloud_nat为例进行描述,所述方法包括:
在扩展包中定义新增插件扩展描述类和插件基类。具体的是在Neutron的extension包里增加一个模块gcloud_nat.py,并在该模块下面创建与模块名一致的插件描述类Gcloud_nat以及插件基类GcloudNatPluginBase。如下所示:
插件描述类主要包括get_resources方法,将插件中的实体以资源的形式返回,以便REST接口方式调用。
插件基类GcloudNatPluginBase则定义标准的REST接口方法,即POST、PUT、GET、DELETE接口对应的create_gcloud_nat、update_gcloud_nat、get_gcloud_nat、delte_gcloud_nat抽象方法。
接着在服务包中定义新增插件的具体实现资源操作类。即在Neutron的services包中新建gcloud_nat_plugin.py文件并定义GcloudNatPluginV2操作类,主要目的实现插件基类的REST抽象接口,进行具体的业务实现,然后调用数据库操作类操作数据库。
在数据包中定义新增插件数据库操作类。即在Neutron的db包中新增gcloud_nat_db.py文件并定义插件数据库操作类GcloudNatMixin和插件数据库实体类GcloudNat类,通过这两个类实现插件对数据库的新增、修改、删除、查询等功能。
接着在公共常量模块中设置新增插件的相关变量。即在Neutron的plugins/common/constants.py模块中增加新插件相关的宏变量,如:
GCLOUD_NAT=″gcloudnat″
......
最后定义好新增插件需要使用的相关配置。如在Neutron的配置文件neutron.conf中新增名称为gcloud_nat的service_plugin。
以上所揭露的仅为本发明其中一个实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (5)
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和action等;
所述的插件基类是指继承了service_base.ServicePluginBase服务基类的python类,主要用于描述插件要实现的资源操作;
所述的插件资源操作类则是继承了所述插件基类的python类,主要是实现基类里的资源操作方法,并调用插件数据库操作类;
所述的插件数据库操作类则是继承了Neutron中数据库操作基类的python类,负责完成资源数据的保存和读取。
所述的模块是指python语言中一个.py文件,而所述的公共常量模块则是constants.py文件;所述的常量是指新增插件被Neutron成功集成所必须的一些宏定义等;
所述的配置包括在neutron.conf配置文件中增加新插件的相关配置等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981288.XA CN105630496A (zh) | 2015-12-22 | 2015-12-22 | 一种基于Neutron的新增REST插件方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981288.XA CN105630496A (zh) | 2015-12-22 | 2015-12-22 | 一种基于Neutron的新增REST插件方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105630496A true CN105630496A (zh) | 2016-06-01 |
Family
ID=56045486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510981288.XA Withdrawn CN105630496A (zh) | 2015-12-22 | 2015-12-22 | 一种基于Neutron的新增REST插件方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630496A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825954A (zh) * | 2014-03-10 | 2014-05-28 | 中国联合网络通信集团有限公司 | 一种OpenFlow控制方法及相应插件、平台和网络 |
CN104092565A (zh) * | 2014-06-24 | 2014-10-08 | 复旦大学 | 一种面向云数据中心的多租户策略驱动型软件定义网络方法 |
US20150063166A1 (en) * | 2013-08-27 | 2015-03-05 | Futurewei Technologies, Inc. | System and Method for Mobile Network Function Virtualization |
CN104539743A (zh) * | 2015-01-26 | 2015-04-22 | 中国联合网络通信集团有限公司 | 一种云计算系统及其控制方法 |
US20150295844A1 (en) * | 2012-12-03 | 2015-10-15 | Hewlett-Packard Development Company, L.P. | Asynchronous framework for management of iaas |
-
2015
- 2015-12-22 CN CN201510981288.XA patent/CN105630496A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150295844A1 (en) * | 2012-12-03 | 2015-10-15 | Hewlett-Packard Development Company, L.P. | Asynchronous framework for management of iaas |
US20150063166A1 (en) * | 2013-08-27 | 2015-03-05 | Futurewei Technologies, Inc. | System and Method for Mobile Network Function Virtualization |
CN103825954A (zh) * | 2014-03-10 | 2014-05-28 | 中国联合网络通信集团有限公司 | 一种OpenFlow控制方法及相应插件、平台和网络 |
CN104092565A (zh) * | 2014-06-24 | 2014-10-08 | 复旦大学 | 一种面向云数据中心的多租户策略驱动型软件定义网络方法 |
CN104539743A (zh) * | 2015-01-26 | 2015-04-22 | 中国联合网络通信集团有限公司 | 一种云计算系统及其控制方法 |
Non-Patent Citations (1)
Title |
---|
戢友: "《OpenStack开源云王者归来 云计算、虚拟化、Nova、Swift、Quantum与Hadoop》", 31 August 2014 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101873941B1 (ko) | 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스 | |
US10567364B2 (en) | Preserving LDAP hierarchy in a SCIM directory using special marker groups | |
US10644929B2 (en) | Defining configurable characteristics of a product and associating configuration with enterprise resources | |
JP2018088293A (ja) | 単一テナント及び複数テナント環境を提供するデータベースシステム | |
CN105138592B (zh) | 一种基于分布式架构的日志数据存储和检索方法 | |
US11218421B1 (en) | Methods and systems for migrating virtual private cloud (VPC) resources across public cloud environments | |
WO2020162988A1 (en) | Replication of resource type and schema metadata for a multi-tenant identity cloud service | |
US20130232470A1 (en) | Launching an application stack on a cloud platform environment | |
CN204695386U (zh) | 面向多租户的管理信息系统 | |
US11005957B2 (en) | Distributed generation of live feed updates in a social networking system | |
CN102523308B (zh) | 一种应用开发方法和运行该方法所开发应用的平台系统 | |
CN104135507A (zh) | 一种防盗链的方法和装置 | |
CN104866976A (zh) | 面向多租户的管理信息系统 | |
CN110502560A (zh) | 一种数据库连接参数封装的方法及服务器 | |
US11533337B2 (en) | MULP: a multi-layer approach to ACL pruning | |
US10135728B2 (en) | Partial switching of network traffic | |
CN105630496A (zh) | 一种基于Neutron的新增REST插件方法 | |
US10148766B2 (en) | Methods, systems, and computer readable media for subscriber binding repository reconfiguration | |
CN112910796B (zh) | 流量管理方法、装置、设备、存储介质以及程序产品 | |
Beloudane et al. | Towards an Efficient Management of Mobile Cloud Computing Services based on Multi Agent Systems | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
US11240107B1 (en) | Validation and governance of a cloud computing platform based datacenter | |
CN115037572B (zh) | 一种应用请求的识别方法和装置 | |
US10943031B2 (en) | Adaptive data sanitation system for endpoints | |
CN114116847A (zh) | 多区域服务的集中管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20160601 |