一种基于Openstack系统的创建项目资源的方法和装置

文档序号:1601349 发布日期:2020-01-07 浏览:17次 >En<

阅读说明:本技术 一种基于Openstack系统的创建项目资源的方法和装置 (Method and device for creating project resources based on Openstack system ) 是由 马豹 苏广峰 轩艳东 于 2019-09-17 设计创作,主要内容包括:本发明公开了一种基于Openstack系统的创建项目资源的方法,该方法包括:在管理员在Openstack系统中下发项目资源分配请求后,根据截获的所述项目资源分配请求生成第一上下文信息;利用所述第一上下文信息更新已有的上下文信息;根据更新后的上下文信息和所述项目资源分配请求创建项目资源。本发明还公开了一种基于Openstack系统的创建项目资源的装置。本发明提供的方法和装置解决管理员在当前原生架构下不能进行项目资源创建的问题。(The invention discloses a method for creating project resources based on an Openstack system, which comprises the following steps: after an administrator issues a project resource allocation request in an Openstack system, generating first context information according to the intercepted project resource allocation request; updating existing context information with the first context information; and creating project resources according to the updated context information and the project resource allocation request. The invention also discloses a device for creating project resources based on the Openstack system. The method and the device provided by the invention solve the problem that an administrator cannot create project resources under the current native architecture.)

一种基于Openstack系统的创建项目资源的方法和装置

技术领域

本发明涉及Openstack技术领域,尤其Openstack技术领域中一种基于Openstack系统的创建项目资源的方法。

背景技术

Openstack是一项开源的云平台技术,包含了部署和运行云平台操作系统的工具集。主要是为云服务提供商构建并提供虚拟计算服务、存储服务和网络服务的云平台,并且拥有可靠的云部署方案和良好的扩展性。

Openstack的用户是指拥有用户名、密码、邮箱等帐号信息的自然人。Openstack的项目是可以理解为一个团队或组织。创建用户后必须指定一个相应的项目才可以申请Openstack服务。Openstack的角色是特定的项目中的用户操作权限。

Openstack系统中用户主要分为两类:管理员和普通用户。管理员指的是具有admin角色的用户,拥有Openstack系统中最高的权限。普通用户指的是具有_member_角色的用户,能够在已绑定的项目中对项目拥有的资源进行生命周期的管理。在原生框架下,创建项目资源使用普通用户完成,具体流程是:第一,用户成功登录所属项目的界面,生成上下文(context)信息,其中包括用户id、所属项目id和认证(token)等信息;第二,根据订单的信息提取出分配资源所必备参数(context,资源大小、资源名称和资源描述等);第三,根据分配资源所必备参数下发分配请求,完成分配任务,其中流程中包括用户权限的校验、数据库的更新和底层资源的分配等。

Openstack系统中所有的项目资源都是归属于某一个项目,当前原生实现逻辑是:

1普通用户在已绑定的项目下,能够进行本项目下资源的分配(创建)、删除和相关管理操作。

2管理员能够看到系统中所有项目的资源,但仅能对资源进行删除和管理,不能进行资源的分配(创建)。

关于管理员不能进行项目资源(虚拟机、卷、快照、备份等)的创建这一问题,一直是使用云平台客户的痛点(管理员具有最大权限,却不能创建实体资源,例如:不能创建虚拟机、卷、快照、备份等),因为使用云平台系统的组织和部门的管理员希望自己拥有给不同部门的用户创建资源的权限,并且还要保证已创建的资源确实归属于用户所在的部门。因此,实现管理员能够指定用户和项目进行资源的创建是一个需要迫切解决的问题。

发明内容

本发明要解决的技术问题是提供一种基于Openstack系统的创建项目资源的方法,解决管理员在当前原生架构下不能进行项目资源创建的问题。

为了解决上述技术问题,本发明实施例提供了一种基于Openstack系统的创建项目资源的方法,包括:

在管理员在Openstack系统中下发项目资源分配请求后,根据截获的所述项目资源分配请求生成第一上下文信息;

利用所述第一上下文信息更新已有的上下文信息;

根据更新后的上下文信息和所述项目资源分配请求创建项目资源。

一种示例性的实施例中,上述方法还具有下面特点:

在管理员在Openstack系统中下发项目资源分配请求之前,包括:

在所述管理员接收到用户请求并登录Openstack系统后,根据所述用户请求创建项目资源的参数;

根据所述项目资源的参数下发资源分配请求。

一种示例性的实施例中,上述方法还具有下面特点:

所述根据截获的所述项目资源分配请求生成第一上下文信息,包括:

截获所述项目资源分配请求,从所述项目资源分配请求中提取出目标用户标识ID和目标项目标识ID,根据所述目标用户ID和目标项目ID生成第一上下文信息。

一种示例性的实施例中,上述方法还具有下面特点:

所述根据所述目标用户ID和目标项目ID生成第一上下文信息,包括:

调用所述Openstack系统的认证模块,根据所述目标用户ID和目标项目ID生成第一上下文信息。

一种示例性的实施例中,上述方法还具有下面特点:

所述项目资源的参数包括目标用户ID和目标项目ID;

所述第一上下文信息至少包括目标用户ID、目标项目ID、认证信息和目标用户权限信息。

为了解决上述问题,本发明还提供了一种基于Openstack系统的创建项目资源的装置,包括:存储器和处理器;

所述存储器,用于保存用于基于Openstack系统的创建项目资源的程序;

所述处理器,用于读取执行所述用于基于Openstack系统的创建项目资源的程序,执行如下操作:

在管理员在Openstack系统中下发项目资源分配请求后,根据截获的所述项目资源分配请求生成第一上下文信息;

利用所述第一上下文信息更新已有的上下文信息;

根据更新后的上下文信息和所述项目资源分配请求创建项目资源。

一种示例性的实施例中,上述装置还具有下面特点:

所述处理器,读取执行所述用于基于云管理平台的云主机管理的程序,还执行如下操作:

在所述管理员接收到用户请求并登录Openstack系统后,根据所述用户请求创建项目资源的参数;

根据所述项目资源的参数下发资源分配请求。

一种示例性的实施例中,上述装置还具有下面特点:

所述根据截获的所述项目资源分配请求生成第一上下文信息,包括:

截获所述项目资源分配请求,从所述项目资源分配请求中提取出目标用户标识ID和目标项目标识ID,根据所述目标用户ID和目标项目ID生成第一上下文信息。

一种示例性的实施例中,上述装置还具有下面特点:

根据所述目标用户ID和目标项目ID生成第一上下文信息,包括:

调用所述Openstack系统的认证模块,根据所述目标用户ID和目标项目ID生成第一上下文信息。

一种示例性的实施例中,上述装置还具有下面特点:

所述项目资源的参数至少包括目标用户ID和目标项目ID;

所述第一上下文信息至少包括目标用户ID、目标项目ID、认证信息和目标用户权限信息。

综上,本发明实施例提供一种基于Openstack系统的创建项目资源的方法,根据指定的目标用户ID和目标项目ID调用Openstack系统中的认证模块keystone生成新的上下文的信息(即上文中的第一上下文信息)进行用户权限校验和数据库信息的更新,保证创建资源的归属是符合要求的,能够有效解决管理员在当前原生架构下不能进行项目资源创建的问题,扩大了管理员的操作范围,满足使用云平台客户的要求。

附图说明

图1为根据本发明实施例的基于Openstack系统的创建项目资源的方法的示意图。

图2为根据本发明实施例的基于Openstack系统的创建项目资源的方法的流程图。

图3为根据本发明实施例的基于Openstack系统的创建项目资源的装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本发明实施例的基于Openstack系统的创建项目资源的方法的示意图,如图1所示,本实施例的方法包括:

S11、在管理员在Openstack系统中下发项目资源分配请求后,根据截获的所述项目资源分配请求生成第一上下文信息;

一种示例性的实施例中,在管理员在Openstack系统中下发项目资源分配请求之前,可以包括:

在所述管理员接收到用户请求并登录Openstack系统后,生成第二上下文信息,根据所述用户请求创建项目资源的参数;根据所述项目资源的参数下发资源分配请求。

其中,用户请求可以为请求管理员为其创建项目资源的请求。可以包括目标用户ID、目标项目ID、资源大小、资源名称和资源描述等。也可以不包括目标用户ID、目标项目ID,而由管理员指定。

一种示例性的实施例中,所述根据截获的所述项目资源分配请求生成第一上下文信息,可以包括:

截获所述项目资源分配请求,从所述项目资源分配请求中提取出目标用户标识ID和目标项目标识ID,根据所述目标用户ID和目标项目ID生成第一上下文信息。

其中,所述项目资源的参数可以包括目标用户ID和目标项目ID。

其中,上述第二上下文信息至少包括管理员ID。

其中,管理员可以为具有Openstack系统管理员权限的人员。

其中,所述项目资源可以包括虚拟机、卷、快照、备份等。

一种示例性的实施例中,可以调用所述Openstack系统的认证模块,根据所述目标用户ID和目标项目ID生成第一上下文信息。

其中,上述第一上下文信息可以至少包括目标用户ID、目标项目ID、认证信息和目标用户权限信息。认证信息即token,token存在有效期(默认为1小时),超过有效期后,该用户就没权限执行了。目标用户权限信息指目标用户的角色,这里目标用户的角色为_member_,即Openstack系统中的普通用户权限。

S12、利用所述第一上下文信息更新已有的上下文信息。

一种示例性的实施例中,可以利用上述第一上下文信息更新上述第二上下文信息。

S13、根据更新后的上下文信息和所述项目资源分配请求创建项目资源。

一种示例性的实施例中,创建项目资源可以包括用户权限的校验,数据库的更新和底层资源的分配等。

本发明根据制定的目标用户ID和目标项目ID调用Openstack系统中的认证模块keystone生成新的上下文的信息(即上文中的第一上下文信息)进行用户权限校验和数据库信息的更新,保证创建资源的归属是符合要求的,能够有效解决管理员在当前原生架构下不能进行项目资源创建的问题,扩大了管理员的操作范围,满足使用云平台客户的要求。

图2为本发明实施例的基于Openstack系统的创建项目资源的方法的流程图。如图2所示,包括步骤如下:

步骤201:管理员在接收用户请求并登录Openstack系统所属默认项目的界面后,生成上下文信息。

其中,这里的上下文信息即为上述的第二上下文信息,可以包括管理员ID、所属默认项目ID、认证信息(token)等信息。

其中,用户请求可以为请求管理员为其创建项目资源的请求。可以包括目标用户ID、目标项目ID、资源大小、资源名称和资源描述等。也可以不包括目标用户ID、目标项目ID,而由管理员指定。

步骤202:根据用户请求创建项目资源的参数。

该项目资源的参数至少包括目标用户ID、目标项目ID,还可以包括资源大小、资源名称和资源描述等。

步骤203:根据项目资源的参数下发资源分配请求。

其中,资源分配请求中至少包括目标用户ID、目标项目ID,还可以资源大小、资源名称和资源描述等。

步骤204:在下发资源分配请求后,截获所述项目资源分配请求,根据提取出的目标用户标识ID和目标项目标识ID生成第一上下文信息。

资源分配请求可以采用post消息下发,post消息中带有body体,截获资源分配请求后,从body体中提取目标用户ID和目标项目ID。其中,可以由Openstack自带的模块(该模块并不存在于原管理员的资源创建流程中)截获资源分配请求。根据提取截获的资源分配请求中的目标用户ID和目标项目ID,根据目标用户ID和目标项目ID调用认证模块keystone生成新的上下文信息,其中包括使用目标用户ID和目标项目ID执行后续流程必备的认证信息(token)和_member_角色等信息,然后使用新生成的上下文信息new_context和资源分配请求执行创建资源流程。

步骤205:利用所述第一上下文信息更新已有的上下文信息,根据更新后的上下文信息和资源分配请求创建项目资源。

这里已有的上下文信息就是管理员登录Openstack系统时,系统自动生成的上下文信息。

需要说明的是:必须使用创建资源时指定的目标用户id和目标项目id重新生成新的上下文(主要包含token和_member_角色信息),否则创建的资源所归属的项目是不符合用户要求的。本发明根据指定的目标用户id和目标项目id调用认证模块keystone生成新的上下文的信息进行用户权限校验和数据库信息的更新,保证创建资源的归属是符合要求的,能够有效解决本发明的问题。

图3为本发明实施例的基于Openstack系统的创建项目资源的装置的示意图,如图3所示,本实施例的性能测试装置包括:存储器和处理器;

所述存储器,用于保存用于基于Openstack系统的创建项目资源的程序;

所述处理器,用于读取执行所述用于基于Openstack系统的创建项目资源的程序,执行如下操作:

在管理员在Openstack系统中下发项目资源分配请求后,根据截获的所述项目资源分配请求生成第一上下文信息;

利用所述第一上下文信息更新已有的上下文信息;

根据更新后的上下文信息和所述项目资源分配请求创建项目资源。

一种示例性的实施例中,所述处理器,读取执行所述用于基于云管理平台的云主机管理的程序,还执行如下操作:

在所述管理员接收到用户请求并登录Openstack系统后,根据所述用户请求创建项目资源的参数;

根据所述项目资源的参数下发资源分配请求。

一种示例性的实施例中,所述根据截获的所述项目资源分配请求生成第一上下文信息,包括:

截获所述项目资源分配请求,从所述项目资源分配请求中提取出目标用户标识ID和目标项目标识ID,根据所述目标用户ID和目标项目ID生成第一上下文信息。

一种示例性的实施例中,根据所述目标用户ID和目标项目ID生成第一上下文信息,包括:

调用所述Openstack系统的认证模块,根据所述目标用户ID和目标项目ID生成第一上下文信息。

一种示例性的实施例中,所述项目资源的参数至少包括目标用户ID和目标项目ID;

所述第一上下文信息至少包括目标用户ID、目标项目ID、认证信息和目标用户权限信息。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种网络交换设备管理方法、装置、服务器和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!