CN109918147A - OpenStack下驱动的扩展方法、装置、电子设备 - Google Patents
OpenStack下驱动的扩展方法、装置、电子设备 Download PDFInfo
- Publication number
- CN109918147A CN109918147A CN201910126738.5A CN201910126738A CN109918147A CN 109918147 A CN109918147 A CN 109918147A CN 201910126738 A CN201910126738 A CN 201910126738A CN 109918147 A CN109918147 A CN 109918147A
- Authority
- CN
- China
- Prior art keywords
- driving
- external drive
- call request
- name
- plug
- 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.)
- Granted
Links
Landscapes
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种OpenStack下驱动的扩展方法、装置、电子设备及机器可读存储介质。在本申请中,加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,实现了基于配置文件灵活地对驱动进行扩展,提高了开发效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及OpenStack下驱动的扩展方法、装置、电子设备及机器可读存储介质。
背景技术
OpenStack是一个著名的开源云计算管理平台项目,其为NASA(NationalAeronautics and Space Administration,美国国家航空航天局)和Rackspace公司合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack支持包括公有云、私有云等几乎所有类型的云环境,作为可以提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台,OpenStack由控制节点、计算节点、网络节点等多种设备节点组成,可以为用户提供覆盖计算虚拟化、网络虚拟化、存储虚拟化等多个维度的IaaS(Infrastructure as a Service,基础设施即服务)解决方案。
发明内容
本申请提供一种OpenStack下驱动的扩展方法,所述方法应用于OpenStack网络节点,所述OpenStack网络节点至少包括驱动服务、与所述驱动服务对应的消息代理、与所述驱动服务对应的插件,所述方法包括:
加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;
基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;
若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
可选的,所述驱动调用请求至少包括驱动名、驱动调用函数名。
可选的,所述扩展驱动配置至少包括一个扩展驱动组,所述扩展驱动组至少包括驱动名、驱动调用函数名、使能状态、与所述驱动名对应的所述驱动服务的加载路径,其中,所述使能状态用于指示所述扩展驱动组是否有效,所述使能状态的可能取值为使能或不使能,默认为不使能。
可选的,所述若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,包括:
获取所述扩展驱动配置的多个扩展驱动组,遍历所述扩展驱动组;
若所述驱动调用请求的驱动名及驱动调用函数名与所述扩展驱动组的驱动名及驱动调用函数名匹配,并且所述扩展驱动组的使能状态为使能,则调用与所述驱动名对应的所述驱动服务,并将所述驱动调用函数名作为参数传递给所述驱动服务。
本申请还提供一种OpenStack下驱动的扩展装置,所述装置应用于OpenStack网络节点,所述OpenStack网络节点至少包括驱动服务、与所述驱动服务对应的消息代理、与所述驱动服务对应的插件,所述装置包括:
创建模块,用于加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;
获取模块,用于基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;
扩展模块,用于若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
可选的,所述驱动调用请求至少包括驱动名、驱动调用装置。
可选的,所述扩展驱动配置至少包括一个扩展驱动组,所述扩展驱动组至少包括驱动名、驱动调用函数名、使能状态、与所述驱动名对应的所述驱动服务的加载路径,其中,所述使能状态用于指示所述扩展驱动组是否有效,所述使能状态的可能取值为使能或不使能,默认为不使能。
可选的,所述若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,所述扩展模块进一步,包括:
获取所述扩展驱动配置的多个扩展驱动组,遍历所述扩展驱动组;
若所述驱动调用请求的驱动名及驱动调用函数名与所述扩展驱动组的驱动名及驱动调用函数名匹配,并且所述扩展驱动组的使能状态为使能,则调用与所述驱动名对应的所述驱动服务,并将所述驱动调用函数名作为参数传递给所述驱动服务。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,实现了基于配置文件灵活地对驱动进行扩展,提高了开发效率。
附图说明
图1是一示例性实施例提供的一种OpenStack下驱动的扩展方法的流程图。
图2是一示例性实施例提供的一种OpenStack下驱动的扩展处理的流程图。
图3是一示例性实施例提供的一种OpenStack下驱动的扩展装置的框图。
图4是一示例性实施例提供的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的OpenStack下的相关技术,进行简要说明。
在一些场景下,OpenStack作为云计算的框架,可以支持用户扩展自己的插件以及所述插件的定义模块,更具体来说,针对负责网络虚拟化的OpenStack网络节点,通常情况下,当用户需要新增接入一种网络设备,比如:防火墙时,需要在OpenStack网络节点的新增防火墙设备驱动涉及的业务进行代码修改从而实现驱动扩展,而实际上用户可能开发接入多款网络设备,若频繁进行上述代码修改来实现驱动扩展,一方面,导致开发效率低下且容易出错,另一方面,若有其它第三方用户基于上述扩展后的驱动进行二次开发,易用性不好,也会导致开发效率低下。
基于此,本申请提出一种OpenStack下驱动的扩展方案,该方案应用于OpenStack网络节点,加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种OpenStack下驱动的扩展方法,所述方法应用于OpenStack网络节点,上述方法执行以下步骤:
步骤102、加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求。
这里的OpenStack网络节点是指可以提供OpenStack网络虚拟化服务的设备,上述OpenStack网络节点可以是一个设备,也可以是多个设备,其角色类型可以是网络控制节点或网络虚拟化子节点,上述OpenStack网络虚拟化服务通常基于一个网络控制节点,多个网络虚拟化子节点构成。
上述OpenStack网络节点至少包括驱动服务、与上述驱动服务对应的消息代理、与上述驱动服务对应的插件。这里的驱动服务是指某一款作为OpenStack网络节点的网络设备所需的驱动程序,比如:一款防火墙作为OpenStack网络节点的驱动程序为防火墙驱动程序,上述防火墙驱动程序用于驱动真实的防火墙硬件执行具体业务;与上述驱动服务对应的插件是指上述防火墙驱动程序对应软件模拟程序,用于接收OpenStack网络节点的业务请求;与上述驱动服务对应的消息代理是指用于作为上述插件与上述驱动服务进行业务交互的中间代理进程,上述消息代理负责加载上述驱动服务对应的程序模块以及调用相关驱动接口,上述消息代理与上述插件是一一对应的关系,比如:一款防火墙的插件对应一款防火墙的消息代理,一款VPN的插件对应一款VPN的消息代理。
具体地,在示出的一种实施方式中,上述OpenStack网络节点加载一款防火墙插件,基于上述防火墙插件创建消息主题,比如:上述消息主题为上述防火墙的型号以及上述OpenStack网络节点的网络地址,当上述插件被调用时,后续上述防火墙插件可以基于上述消息主题与上述防火墙对应的消息代理进行消息交互,发布与所述插件对应驱动调用请求。
步骤104、基于所述消息代理订阅所述消息主题,获取所述驱动调用请求。
具体地,在示出的一种实施方式中,上述消息代理,也即上述防火墙对应的消息代理预先订阅上述消息主题,比如:上述消息代理所预设的订阅消息主题和上述消息主题一致,即都为上述防火墙的型号以及上述OpenStack网络节点的网络地址;上述消息代理基于上述消息主题,获取上述防火墙插件的上述防火墙的某一个驱动调用请求,上述驱动调用请求是指上述防火墙的一个具体业务操作,比如:上述防火墙的虚拟设备的创建、删除、配置及查询等,其中,上述驱动调用请求至少包括驱动名、驱动调用函数名,上述驱动名是指上述防火墙的设备大类的名字,比如:上述驱动名为firewall,上述驱动调用函数名指示上述防火墙的上述具体业务操作的函数名,上述驱动名可以对应多个上述驱动调用函数名,比如:上述驱动名为firewall,一个驱动调用函数名为firewall_create,即上述防火墙的虚拟设备的创建;再比如:上述驱动名为firewall,一个驱动调用函数名为firewall_delete,即上述防火墙的虚拟设备的删除。
步骤106、若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
上述扩展驱动配置可以是一个配置文件或数据库表,在本申请不作具体限定。以上述扩展驱动配置基于配置文件实现为例,上述扩展驱动配置,也即上述配置文件里至少包括一个扩展驱动组,上述扩展驱动组至少包括驱动名、驱动调用函数名、使能状态、与上述驱动名对应的上述驱动服务的加载路径,其中,上述使能状态用于指示上述扩展驱动组是否有效,上述使能状态的可能取值为使能或不使能,默认为不使能,上述扩展驱动配置所包括的一个扩展驱动组,请参见如下所示例:
[drivers]
driver_name=firewall
driver_path=“neutron/plugins/firewall/drivers”
driver_method=firewall_create,firewall_delete
enable=True
如上述所示例,具体地,上述驱动名为driver_name,其具体值为firewall;与上述驱动名对应的上述驱动服务的加载路径为driver_path,其具体值为“neutron/plugins/firewall/drivers”;上述驱动调用函数名为driver_method,其具体值为firewall_create(防火墙创建),firewall_delete(防火墙删除);上述使能状态的可能取值为使能(True)或不使能(False),这里的上述使能状态enable为True,其具体值为True,即为使能,指示上述扩展驱动组有效、以上仅仅是示例的一种可能,实际可能存在多种可能组合,比如:上述使能状态enable为False,指示上述扩展驱动组不生效,上述使能状态enable的默认值为False,即不使能;再比如:上述驱动调用函数名为driver_method,其具体值还可以包括防火墙配置及查询。上述仅为上述扩展驱动配置的一个扩展驱动组配置,也即上述扩展驱动组配置为一个扩展驱动对应的配置,上述扩展驱动配置可以包括多个如上述的扩展驱动组配置,也即可以包括多个扩展驱动对应的多个配置。
具体地,在示出的一种实施方式中,上述消息代理在启动后,加载预设的扩展驱动配置文件,其中,上述扩展驱动配置文件包括多个扩展驱动组,请参见如下所示例:
[drivers]
driver_name=firewall
driver_path=“neutron/plugins/firewall/drivers”
driver_method=firewall_create,firewall_delete
enable=True
driver_name=vpn
driver_path=“neutron/plugins/vpn/drivers”
driver_method=vpn_create,vpn_delete
enable=True
上述扩展驱动配置还包括一个VPN设备的扩展驱动组,具体参数含义请参见上述防火墙设备对应的描述,这里不再赘述。
上述消息代理获取上述插件的上述驱动调用请求,进行一次驱动扩展处理的过程,如图2所示例,执行如下步骤:
步骤202、获取所述扩展驱动配置的多个扩展驱动组,遍历查找是否存在与所述驱动调用请求匹配的扩展驱动组。
具体地,上述消息代理获取上述扩展驱动配置中的多个扩展驱动组,即防火墙扩展驱动组、VPN设备扩展驱动组
步骤204、基于查找匹配结果及所述扩展驱动组的配置,进一步执行扩展驱动调用。
若所述驱动调用请求的驱动名及驱动调用函数名与所述扩展驱动组的驱动名及驱动调用函数名匹配,并且所述扩展驱动组的使能状态为使能,则上述消息代理调用与所述驱动名对应的所述驱动服务,并将所述驱动调用函数名作为参数传递给所述驱动服务。
具体地,以上述示例的过程继续举例,上述消息代理以从上述驱动调用请求获取的上述驱动名为firewall,一个驱动调用函数名为firewall_create,在上述多个扩展驱动组中进行查询,具体的查询方法可以是先以上述驱动名为firewall与上述多个扩展驱动组的driver_name进行匹配查找,若找到,则继续以上述驱动调用函数名为firewall_create与上述多个扩展驱动组的driver_method继续进行匹配查找。比如:上述驱动调用请求的驱动调用函数名为firewall_create,则可以在上述扩展驱动配置中匹配到对应的防火墙扩展驱动组,即在上述防火墙扩展驱动组中找到driver_method也存在firewall_create,则上述消息代理继续检查上述防火墙扩展驱动组中的使能状态enable,若enable为使能,也即enable为True,则上述消息代理调用“neutron/plugins/firewall/drivers”路径下的防火墙的驱动服务,并将上述驱动调用函数名firewall_create作为参数传递给上述驱动服务。需要注意的是上述驱动调用请求的驱动调用函数名与上述扩展驱动配置中driver_method可以完全相同,也可以是被包含与包含的关系。上述过程仅为示例的一种可能,实际可能存在多种可能,比如:上述enable为False,即不使能,即使找到上述匹配项,上述消息代理不会调用上述“neutron/plugins/firewall/drivers”路径下的防火墙的驱动服务,再比如:若上述驱动调用请求的驱动调用函数名除了包括firewall_create,还包括防火墙配置,例如:firewall_config,而上述防火墙扩展驱动组中不存在firewall_config,又比如:若在上述扩展驱动配置中找不到driver_name为firewall的扩展驱动组,则上述消息代理可以给出对应告警提示或日志记录。上述驱动服务在获取上述驱动调用函数名firewall_create作为参数后,执行对应的驱动程序,具体过程类似已有设备驱动的过程,这里不再赘述。
至此,完成图1所示的流程,通过图1所示的流程可以看出,上述方法应用于OpenStack网络节点,所述OpenStack网络节点至少包括驱动服务、与所述驱动服务对应的消息代理、与所述驱动服务对应的插件,加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
应用本申请实施例,实现了基于配置文件灵活地对驱动进行扩展,无需每次新增驱动时,频繁修改OpenStack网络节点相关组件的代码,提高了开发效率。
图3是本申请一示例性实施例提供的一种OpenStack下驱动的扩展装置的框图。与上述方法实施例相对应,本申请还提供了一种OpenStack下驱动的扩展装置的实施例,所述装置应用于OpenStack网络节点,所述OpenStack网络节点至少包括驱动服务、与所述驱动服务对应的消息代理、与所述驱动服务对应的插件,请参考图3所示例的一种OpenStack下驱动的扩展装置30,所述装置包括:
创建模块,用于加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;
获取模块,用于基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;
扩展模块,用于若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
在本实施例中,所述驱动调用请求至少包括驱动名、驱动调用装置。
在本实施例中,所述扩展驱动配置至少包括一个扩展驱动组,所述扩展驱动组至少包括驱动名、驱动调用函数名、使能状态、与所述驱动名对应的所述驱动服务的加载路径,其中,所述使能状态用于指示所述扩展驱动组是否有效,所述使能状态的可能取值为使能或不使能,默认为不使能。
在本实施例中,所述若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,所述扩展模块进一步,包括:
获取所述扩展驱动配置的多个扩展驱动组,遍历所述扩展驱动组;
若所述驱动调用请求的驱动名及驱动调用函数名与所述扩展驱动组的驱动名及驱动调用函数名匹配,并且所述扩展驱动组的使能状态为使能,则调用与所述驱动名对应的所述驱动服务,并将所述驱动调用函数名作为参数传递给所述驱动服务。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本申请的OpenStack下驱动的扩展装置的实施例可以应用在图4所示的电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将机器可读存储介质中对应的计算机程序指令读取后运行形成的机器可执行指令。从硬件层面而言,如图4所示,为本申请的OpenStack下驱动的扩展装置所在电子设备的一种硬件结构图,除了图4所示的处理器、通信接口、总线以及机器可读存储介质之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
对应地,本申请实施例还提供了图3所示装置的一种电子设备的硬件结构,请参见图4,图4为本申请实施例提供的一种电子设备的硬件结构示意图。该设备包含:通信接口401、处理器402、机器可读存储介质403和总线404;其中,通信接口401、处理器402、机器可读存储介质403通过总线404完成相互间的通信。其中,通信接口401,用于进行网络通信。处理器402可以是一个中央处理器(CPU),处理器402可以执行机器可读存储介质403中存储的机器可读指令,以实现以上描述的方法。
本文中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
至此,完成图4所示的硬件结构描述。
此外,本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图4中的机器可读机器可读存储介质403,所述机器可执行指令可由数据处理装置中的处理器402执行以实现以上描述的数据处理方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种OpenStack下驱动的扩展方法,其特征在于,所述方法应用于OpenStack网络节点,所述OpenStack网络节点至少包括驱动服务、与所述驱动服务对应的消息代理、与所述驱动服务对应的插件,所述方法包括:
加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;
基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;
若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
2.根据权利要求1所述的方法,其特征在于,所述驱动调用请求至少包括驱动名、驱动调用函数名。
3.根据权利要求2所述的方法,其特征在于,所述扩展驱动配置至少包括一个扩展驱动组,所述扩展驱动组至少包括驱动名、驱动调用函数名、使能状态、与所述驱动名对应的所述驱动服务的加载路径,其中,所述使能状态用于指示所述扩展驱动组是否有效,所述使能状态的可能取值为使能或不使能,默认为不使能。
4.根据权利要求3所述的方法,其特征在于,所述若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,包括:
获取所述扩展驱动配置的多个扩展驱动组,遍历所述扩展驱动组;
若所述驱动调用请求的驱动名及驱动调用函数名与所述扩展驱动组的驱动名及驱动调用函数名匹配,并且所述扩展驱动组的使能状态为使能,则调用与所述驱动名对应的所述驱动服务,并将所述驱动调用函数名作为参数传递给所述驱动服务。
5.一种OpenStack下驱动的扩展装置,其特征在于,所述装置应用于OpenStack网络节点,所述OpenStack网络节点至少包括驱动服务、与所述驱动服务对应的消息代理、与所述驱动服务对应的插件,所述装置包括:
创建模块,用于加载所述插件,基于所述插件创建消息主题,其中,所述消息主题用于所述插件被调用时,发布与所述插件对应驱动调用请求;
获取模块,用于基于所述消息代理订阅所述消息主题,获取所述驱动调用请求;
扩展模块,用于若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务。
6.根据权利要求5所述的装置,其特征在于,所述驱动调用请求至少包括驱动名、驱动调用装置。
7.根据权利要求6所述的方法,其特征在于,所述扩展驱动配置至少包括一个扩展驱动组,所述扩展驱动组至少包括驱动名、驱动调用函数名、使能状态、与所述驱动名对应的所述驱动服务的加载路径,其中,所述使能状态用于指示所述扩展驱动组是否有效,所述使能状态的可能取值为使能或不使能,默认为不使能。
8.根据权利要求7所述的装置,其特征在于,所述若所述驱动调用请求匹配所述消息代理预设的扩展驱动配置,则调用与所述驱动调用请求对应的所述驱动服务,所述扩展模块进一步,包括:
获取所述扩展驱动配置的多个扩展驱动组,遍历所述扩展驱动组;
若所述驱动调用请求的驱动名及驱动调用函数名与所述扩展驱动组的驱动名及驱动调用函数名匹配,并且所述扩展驱动组的使能状态为使能,则调用与所述驱动名对应的所述驱动服务,并将所述驱动调用函数名作为参数传递给所述驱动服务。
9.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至4任一项所述的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910126738.5A CN109918147B (zh) | 2019-02-20 | 2019-02-20 | OpenStack下驱动的扩展方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910126738.5A CN109918147B (zh) | 2019-02-20 | 2019-02-20 | OpenStack下驱动的扩展方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918147A true CN109918147A (zh) | 2019-06-21 |
CN109918147B CN109918147B (zh) | 2022-03-25 |
Family
ID=66961837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910126738.5A Active CN109918147B (zh) | 2019-02-20 | 2019-02-20 | OpenStack下驱动的扩展方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918147B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202763A (zh) * | 2022-09-19 | 2022-10-18 | 大方智造(天津)科技有限公司 | 一种基于驱动的采集动态加载与调用方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050097193A1 (en) * | 2003-10-31 | 2005-05-05 | Rhoda Merlin A. | Extensible network agent method, system, and architecture |
US20140075032A1 (en) * | 2012-09-07 | 2014-03-13 | Oracle International Corporation | Declarative and extensible model for provisioning of cloud based services |
CN105119927A (zh) * | 2015-09-07 | 2015-12-02 | 北京百度网讯科技有限公司 | 消息发送、接收方法及终端和消息发送系统 |
CN105138389A (zh) * | 2015-07-30 | 2015-12-09 | 北京京东尚科信息技术有限公司 | 一种集群中虚拟设备的管理方法及系统 |
US20160048408A1 (en) * | 2014-08-13 | 2016-02-18 | OneCloud Labs, Inc. | Replication of virtualized infrastructure within distributed computing environments |
CN106775922A (zh) * | 2016-11-22 | 2017-05-31 | 山东浪潮云服务信息科技有限公司 | 一种基于插件机制的虚拟机迁移方法 |
CN107301022A (zh) * | 2017-06-27 | 2017-10-27 | 北京溢思得瑞智能科技研究院有限公司 | 一种基于容器技术的存储访问方法及系统 |
US20180241807A1 (en) * | 2017-02-22 | 2018-08-23 | International Business Machines Corporation | Deferential support of request driven cloud services |
US20180349236A1 (en) * | 2016-04-29 | 2018-12-06 | Huawei Technologies Co., Ltd. | Method for transmitting request message and apparatus |
-
2019
- 2019-02-20 CN CN201910126738.5A patent/CN109918147B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050097193A1 (en) * | 2003-10-31 | 2005-05-05 | Rhoda Merlin A. | Extensible network agent method, system, and architecture |
US20140075032A1 (en) * | 2012-09-07 | 2014-03-13 | Oracle International Corporation | Declarative and extensible model for provisioning of cloud based services |
US20160048408A1 (en) * | 2014-08-13 | 2016-02-18 | OneCloud Labs, Inc. | Replication of virtualized infrastructure within distributed computing environments |
CN105138389A (zh) * | 2015-07-30 | 2015-12-09 | 北京京东尚科信息技术有限公司 | 一种集群中虚拟设备的管理方法及系统 |
CN105119927A (zh) * | 2015-09-07 | 2015-12-02 | 北京百度网讯科技有限公司 | 消息发送、接收方法及终端和消息发送系统 |
US20180349236A1 (en) * | 2016-04-29 | 2018-12-06 | Huawei Technologies Co., Ltd. | Method for transmitting request message and apparatus |
CN106775922A (zh) * | 2016-11-22 | 2017-05-31 | 山东浪潮云服务信息科技有限公司 | 一种基于插件机制的虚拟机迁移方法 |
US20180241807A1 (en) * | 2017-02-22 | 2018-08-23 | International Business Machines Corporation | Deferential support of request driven cloud services |
CN107301022A (zh) * | 2017-06-27 | 2017-10-27 | 北京溢思得瑞智能科技研究院有限公司 | 一种基于容器技术的存储访问方法及系统 |
Non-Patent Citations (1)
Title |
---|
烟雨浮华: "OpenStack入门篇(十一)之neutron服务(控制节点)的部署与测试", 《HTTPS://WWW.CNBLOGS.COM/LINUXK/P/9454972.HTML》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202763A (zh) * | 2022-09-19 | 2022-10-18 | 大方智造(天津)科技有限公司 | 一种基于驱动的采集动态加载与调用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109918147B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10637796B2 (en) | Linking instances within a cloud computing environment | |
US9588797B2 (en) | Returning terminated virtual machines to a pool of available virtual machines to be reused thereby optimizing cloud resource usage and workload deployment time | |
KR102319172B1 (ko) | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 | |
JP6518346B2 (ja) | 分散型コンピューティング環境における仮想マシンインスタンス上のコマンドの実行 | |
WO2018063803A1 (en) | Generating an application programming interface | |
US9335989B2 (en) | Building a pattern to define a topology and application environment using software components and software updates/fixes from external repositories from multiple vendors | |
US11546431B2 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
CN107818104B (zh) | 一种数据库部署方法、数据库部署装置、控制设备及系统 | |
US11582285B2 (en) | Asynchronous workflow and task api for cloud based processing | |
CN104391657A (zh) | 一种安卓系统上挂载多分区存储设备的方法 | |
US11150926B2 (en) | Native code generation for cloud services | |
US11360789B2 (en) | Configuration of hardware devices | |
US9235854B1 (en) | Automatically generating a review rating the performance of a pattern based on pattern deployment, service history and operation of pattern | |
US9342527B2 (en) | Sharing electronic file metadata in a networked computing environment | |
CN114500549B (zh) | 在公共云中为用户部署k8s托管集群的方法、设备和介质 | |
JP2022520141A (ja) | DAppで要求する高いトランザクション処理量をブロックチェーンで効率的に処理するための方法およびシステム | |
US9465658B1 (en) | Task distribution over a heterogeneous environment through task and consumer categories | |
CN109918147A (zh) | OpenStack下驱动的扩展方法、装置、电子设备 | |
US10635467B1 (en) | Deployable console-based virtual application deployment and configuration systems and methods | |
US11720554B2 (en) | Iterative query expansion for document discovery | |
US10223463B2 (en) | Node controllers for hierarchical data structures | |
CN113296878A (zh) | 一种容器处理方法、装置、电子设备及系统 | |
US20200065093A1 (en) | Resilient Distributed Garbage Collection | |
CN112152988A (zh) | 用于异步nbmp请求处理的方法、系统以及计算机设备和介质 | |
CN112148935B (zh) | 用于多实例的nbmp功能执行的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |