CN115081395B - 基于Kubernetes的可视化表单和YAML双向转换的方法及装置 - Google Patents

基于Kubernetes的可视化表单和YAML双向转换的方法及装置 Download PDF

Info

Publication number
CN115081395B
CN115081395B CN202210999207.9A CN202210999207A CN115081395B CN 115081395 B CN115081395 B CN 115081395B CN 202210999207 A CN202210999207 A CN 202210999207A CN 115081395 B CN115081395 B CN 115081395B
Authority
CN
China
Prior art keywords
yaml
supported
visual form
visual
structure body
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.)
Active
Application number
CN202210999207.9A
Other languages
English (en)
Other versions
CN115081395A (zh
Inventor
花磊
姚家麟
崔骥
赵安全
王亮
马云浩
张秋峰
李志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Boyun Technology Co ltd
Original Assignee
Jiangsu Boyun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Boyun Technology Co ltd filed Critical Jiangsu Boyun Technology Co ltd
Priority to CN202210999207.9A priority Critical patent/CN115081395B/zh
Publication of CN115081395A publication Critical patent/CN115081395A/zh
Application granted granted Critical
Publication of CN115081395B publication Critical patent/CN115081395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请涉及一种基于Kubernetes的可视化表单和YAML双向转换的方法及装置,属于云计算技术领域,该方法包括:基于使用第一YAML对象生成的第一可视化表单接收配置信息得到第二可视化表单;基于第一切换请求将第一YAML对象中可视化表单支持的键值删除;将第二可视化表单构建为YAML结构的数据结构体,将数据结构体与剔除键值后的YAML对象结构体合并得到第二YAML对象;基于第二切换请求使用第二YAML对象中可视化表单支持的键值生成表单结构体,并在第二YAML对象中将该键值删除;将剔除键值后的YAML对象结构体与表单结构体合并;可以解决无法兼顾资源配置效率和复杂项目的资源配置的问题;提高灵活性。

Description

基于Kubernetes的可视化表单和YAML双向转换的方法及装置
技术领域
本申请涉及一种基于Kubernetes的可视化表单和YAML双向转换的方法及装置,属于云计算技术领域。
背景技术
目前,企业和开发者通常使用Kubernetes来承载应用与服务。但是,从业务量、用户量、业务场景等方面来说,绝大部分使用方式都是直接使用YAML发布。
使用YAML发布资源的方式通常为:开发者编辑YAML配置文件,以进行资源发布。
然而,对于不了解代码开发的使用者,YAML的学习成本和试错成本较高,而且直接使用YAML在一些特殊的场景(比如:生产环境并且配置比较多的环境)使用灵活性较差,会导致一些发布隐患和风险。
发明内容
本申请提供了一种基于Kubernetes的可视化表单和YAML双向转换的方法,可以解决仅通过YAML进行资源配置或者仅通过可视化表单进行资源配置时,无法兼顾配置效率和复杂项目的配置、灵活性较差的问题。基于此,本申请提供如下技术方案:
一方面,提供一种基于Kubernetes的可视化表单和YAML双向转换的方法,所述方法包括:
在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象,所述资源创建请求用于请求使用可视化表单进行目标资源的配置;
使用所述第一YAML对象生成并显示第一可视化表单,并将所述第一YAML对象的唯一标识与所述第一可视化表单关联;
接收用户基于所述第一可视化表单输入的配置信息,得到第二可视化表单;
在获取到第一切换请求的情况下,将所述第一YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,所述第一切换请求用于请求从可视化表单切换至YAML对象进行所述目标资源的配置;
将所述第二可视化表单构建为YAML结构的数据结构体,将所述数据结构体与所述YAML对象结构体合并,得到第二YAML对象;
在获取到第二切换请求的情况下,使用所述第二YAML对象中可视化表单支持的键值生成表单结构体,并在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体;所述第二切换请求用于请求从YAML对象切换至可视化表单进行所述目标资源的配置;
将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体。
可选地,将所述第一YAML对象中可视化表单支持的键值删除,或者将所述第二YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,包括:
在所述第一YAML对象或所述第二YAML对象中,确定与所述支持的键值关联的层级、键、和索引项;
将所述支持的键值、所述关联的层级、键、和索引项删除。
可选地,所述在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,包括:
对于所述第二YAML对象中可视化表单支持的每个键值,通过递归的方式在第三可视化表单中回填所述键值成功后,将所述键值删除。
可选地,在获取到第二切换请求的情况下,所述方法还包括:
使用所述第二YAML对象对应的表单结构体对所述第三可视化表单进行页面渲染;
通过回调的方式监听所述第二YAML对象转换至所述第三可视化表单是否完毕;
在完毕的情况下停止页面渲染。
可选地,所述将所述数据结构体与所述YAML对象结构体合并,包括:
将所述数据结构体挂载至所述YAML对象结构体中对应的配置项下。
可选地,所述将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,包括:
将所述剔除所述支持的键值后的YAML对象结构体挂载至所述表单结构体对应的配置项下。
可选地,所述将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体之后,还包括:
响应于对目标资源的发布请求,在所述目标资源对应的YAML对象中,将与发布表单关联的YAML对象转换为发布表单;将未与所述发布表单关联的YAML对象保留在的所述YAML对象的YAML字符串中。
可选地,所述第一YAML对象包括批处理YAML结构体中目标键值的设置方式,所述使用所述第一YAML对象生成并显示第一可视化表单,包括:
按照所述设置方式将所述目标键值转换至所述第一可视化表单中的多个配置项。
可选地,所述在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象之前,还包括:
在闭包环境中声明Kubernetes中各类资源的初始化YAML对象,所述初始化YAML对象包括所述目标资源对应的可视化表单对应的第一YAML对象。
另一方面,提供一种基于Kubernetes的可视化表单和YAML双向转换的装置,所述装置包括:
对象获取模块,用于在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象,所述资源创建请求用于请求使用可视化表单进行目标资源的配置;
表单显示模块,用于使用所述第一YAML对象生成并显示第一可视化表单,并将所述第一YAML对象的唯一标识与所述第一可视化表单关联;
信息接收模块,用于接收用户基于所述第一可视化表单输入的配置信息,得到第二可视化表单;
第一切换模块,用于在获取到第一切换请求的情况下,将所述第一YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,所述第一切换请求用于请求从可视化表单切换至YAML对象进行所述目标资源的配置;
第一构建模块,用于将所述第二可视化表单构建为YAML结构的数据结构体,将所述数据结构体与所述YAML对象结构体合并,得到第二YAML对象;
第二切换模块,用于在获取到第二切换请求的情况下,使用所述第二YAML对象中可视化表单支持的键值生成表单结构体,并在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体;所述第二切换请求用于请求从YAML对象切换至可视化表单进行所述目标资源的配置;
第二构建模块,用于将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体。
本申请的有益效果至少包括:通过可视化表单和YAML对象之间的双向转换,可以解决仅通过YAML进行资源配置或者仅通过可视化表单进行资源配置时,无法兼顾配置效率和复杂项目的配置的问题;由于用户可以按照配置需求灵活地在可视化表单和YAML对象之间双向转换,因此,可以提高资源配置的效率、实现复杂项目的配置,同时可以提高资源配置的灵活性。
另外,切换至YAML后,在YAML中添加可视化表单不支持的配置项,再切换回表单后,仍能保存额外的配置项,可以保证双向切换过程中数据的一致性。
另外,通过递归的方式将所有成功回填的键值从第二YAML对象的YAML结构体中去除,可以保证这些键值在表单中被修改后同步的一致性。
另外,通过直接读取第一YAML对象来初始化可视化表单,可以不在可视化表单中填写任何内容。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的基于Kubernetes的可视化表单和YAML双向转换的方法的流程图;
图2是本申请一个实施例提供的基于Kubernetes的可视化表单和YAML双向转换的装置的框图。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
首先,对于本申请涉及的若干名词进行介绍。
容器调度服务(Kubernetes/k8s):负责管理及调度容器服务,是目前云计算领域进行容器调度及管理的事实标准。
YAML:是一个可读性高,用来表达数据序列化的格式。YAML是一种标记语言,常用作配置文件。YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。YAML适合用来表达或编辑数据结构、各种配置文件。YAML的配置文件后缀为.yml或.yaml。
可视化表单:包含多种类型的输入框、选择框、复选框等可视化用户界面(UserInterface,UI)组件的集合。
传统的基于Kubernetes的资源配置方式中,用户可以通过可视化表单进行配置。但是,仅能实现可视化表单向YAML的单向转换。此时,由于可视化表单所支持配置项内容有限,因此,会导致初次转化后YAML涵盖的配置项也有限的问题。
同时,单向转换的情况下,若用户在YAML中添加部分配置后,无法转回可视化表单,因此,无法通过可视化表单操作一些复杂的配置。
同时,当配置项较多时,表单往往会通过分步骤处理,此时在表单尚未完全填完的情况下,向YAML转换后无法再现表单内容填充情况,体验不友好。
同时,无论是单独使用YAML进行资源配置的方式,还是使用可视化表单进行资源配置的方式,单场景都无法达到兼顾灵活性和简化性的效果。
基于上述技术问题,本申请提供一种基于Kubernetes的可视化表单和YAML双向转换的方法,使用该转换方式可以实现可视化表单与YAML之间的双向转换,并且平台***的更新迭代往往没有k8s本身的迭代速度快,可视化表单无法涵盖全部的配置项,且有些高度复杂的配置项并不易于可视化渲染,本申请中的双向转换可以保证用户在YAML中输入表单不包含的配置项后,转换回表单不丢失此类配置,使用过程较为灵活方便,兼顾灵活和简化易用的双重体验,降低了使用的学习成本,同时也可以加速学习k8s与YAML的流程与实现。
下面,对本申请提供的基于Kubernetes的可视化表单和YAML双向转换的方法进行详细介绍。下述实施例以该方法用于电子设备中为例进行说明,该电子设备具有显示功能并支持Kubernetes中各个资源的配置,该电子设备包括但不限于:计算机、平板电脑、笔记本电脑等,本实施例不对电子设备的实现方式作限定。
图1是本申请一个实施例提供的基于Kubernetes的可视化表单和YAML双向转换的方法的流程图。该方法至少包括如下几个步骤:
步骤101,在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象,该资源创建请求用于请求使用可视化表单进行目标资源的配置。
第一YAML对象包括初始化可视化表单创建时所需的配置项。第一YAML对象是预先在Kubernetes中声明得到的。具体地,在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象之前,在闭包环境中声明Kubernetes中各类资源的初始化YAML对象,初始化YAML对象包括目标资源对应的可视化表单对应的第一YAML对象。换言之,第一YAML对象为初始化YAML对象的子集。
其中,各类资源还包括但不限于:Kubernetes中的服务(service)资源、容器(pod)资源等,本实施例不对各类资源的类型作限定。
示意性地,第一YAML对象包括但不限于以下几种配置信息:对应资源的YAML结构体、唯一标识(用于与可视化表单关联,通过defineProperty设置为只读属性)、批处理YAML结构体中特定键值的设置方式。
其中,defineProperty为JavaScript中设置只读属性的方法。
具体地,获取可视化表单对应的第一YAML对象,包括:在创建可视化表单时,通过分发器同步获取第一YAML对象。
步骤102,使用第一YAML对象生成并显示第一可视化表单,并将第一YAML对象的唯一标识与第一可视化表单关联。
第一可视化表单为对目标资源进行配置时的初始化表单。即,第一次对目标资源进行配置时显示的可视化表单。本申请中,可视化表单包括多个配置项和每个配置项对应的配置框,配置框用于供用户输入配置项对应的配置信息,该配置框包括但不限于:下拉框、复选框、输入框等,本实施例不对配置框的类型作限定。
在第一可视化表单初始化完成后,将第一YAML对象的唯一标识赋值给第一可视化表单,以将第一YAML对象的唯一标识与第一可视化表单关联。
可选地,在第一YAML对象包括批处理YAML结构体中目标键值的设置方式的情况下,使用第一YAML对象生成并显示第一可视化表单,包括:按照设置方式将目标键值转换至第一可视化表单中的多个配置项。
步骤103,接收用户基于第一可视化表单输入的配置信息,得到第二可视化表单。
第二可视化表单为具有配置信息的第一可视化表单。换言之,第二可视化表单和第一可视化表单具有相同的唯一标识。
步骤104,在获取到第一切换请求的情况下,将第一YAML对象中可视化表单支持的键值删除,得到剔除支持的键值后的YAML对象结构体。
第一切换请求用于请求从可视化表单切换至YAML对象进行目标资源的配置。第一切换请求可以在用户操作第一可视化表单的过程中或者操作完成时由用户触发生成。示意性地,第一可视化表单的显示页面中设置有切换控件,在接收到作用于该切换控件的触发操作的情况下生成第一切换请求。
具体地,将第一YAML对象中可视化表单支持的键值删除,得到剔除支持的键值后的YAML对象结构体,包括:在第一YAML对象中,确定与支持的键值关联的层级、键、和索引项;将支持的键值、关联的层级、键、和索引项删除。
步骤105,将第二可视化表单构建为YAML结构的数据结构体,将数据结构体与YAML对象结构体合并,得到第二YAML对象。
具体地,电子设备中预先存储有可视化表单的表单结构体与YAML结构的数据结构体之间的转换关系,电子设备使用该转换关系将第二可视化表单构建为YAML结构的数据结构体。
本实施例中,不使用构建第一可视化表单的第一YAML对象生成第二YAML对象,而是使用第二可视化表单重新构建YAML结构的数据结构体,对于无法转换成第一可视化表单的键值直接与该数据结构体合并,可以保证YAML结构与可视化表单之间的一致性。比如:第一可视化表单的表单对象中挂载了用户在YAML中自定义的配置,而第一可视化表单不支持该配置,则将该自定义配置与重新生成的数据结构体进行合并。
具体地,将数据结构体与YAML对象结构体合并,包括:将数据结构体挂载至YAML对象结构体中对应的配置项下。
第二YAML对象的唯一标识即为第一YAML对象的唯一标识。
步骤106,在获取到第二切换请求的情况下,使用第二YAML对象中可视化表单支持的键值生成表单结构体,并在第二YAML对象中将可视化表单支持的键值删除,得到剔除支持的键值后的YAML对象结构体。
第二切换请求用于请求从YAML对象切换至可视化表单进行目标资源的配置。第二切换请求可以在用户通过YAML进行资源配置的过程中或者配置完成时由用户触发生成。示意性地,YAML的配置页面中设置有切换控件,在接收到作用于该切换控件的触发操作的情况下生成第二切换请求。
在第二YAML对象中将可视化表单支持的键值删除,包括:在第二YAML对象中,确定与支持的键值关联的层级、键、和索引项;将支持的键值、关联的层级、键、和索引项删除。
具体地,在第二YAML对象中将可视化表单支持的键值删除,得到剔除支持的键值后的YAML对象结构体,包括:对于第二YAML对象中可视化表单支持的每个键值,通过递归的方式在第三可视化表单中回填键值成功后,将键值删除。这样,通过递归的方式将所有成功回填的键值从第二YAML对象的YAML结构体中去除,可以保证这些键值在表单中被修改后同步的一致性。
此时,在获取到第二切换请求的情况下,使用第二YAML对象对应的表单结构体对第三可视化表单进行页面渲染;渲染过程中,在第三可视化表单中回填可视化表单支持的键值。之后,通过回调的方式监听第二YAML对象转换至第三可视化表单是否完毕;在完毕的情况下停止页面渲染。
第三可视化表单由第二YAML对象转换而来,第三可视化表单的唯一标识即为第二YAML对象的唯一标识。
步骤107,将剔除支持的键值后的YAML对象结构体与表单结构体合并,得到第三可视化表单对应的表单结构体。
将剔除支持的键值后的YAML对象结构体与表单结构体合并,包括:将剔除支持的键值后的YAML对象结构体挂载至表单结构体对应的配置项下。这样,若剔除后存在表单不支持的用户自定义的键值,则将其完整结构保留并挂载到表单结构体下。在表单向YAML转换的过程中,如果存在这些额外的配置项,则将这些配置项与表单内容生成的表单结构体递归合并,确保其在YAML中配置结构的正确性。
可选地,将剔除支持的键值后的YAML对象结构体与表单结构体合并,得到第三可视化表单对应的表单结构体之后,还包括:
响应于对目标资源的发布请求,在目标资源对应的YAML对象中,将与发布表单关联的YAML对象转换为发布表单;将未与发布表单关联的YAML对象保留在的YAML对象的YAML字符串中。此时,当用户在YAML中准备发布多个不同类型的资源时,将与表单关联的YAML对象向表单转换,不关联的YAML对象标记索引后保留在YAML字符串中,可以表单配置的信息和YAML配置的信息的一致性。
综上所述,本实施例提供的基于Kubernetes的可视化表单和YAML双向转换的方法,通过可视化表单和YAML对象之间的双向转换,可以解决仅通过YAML进行资源配置或者仅通过可视化表单进行资源配置时,无法兼顾配置效率和复杂项目的配置的问题;由于用户可以按照配置需求灵活地在可视化表单和YAML对象之间双向转换,因此,可以提高资源配置的效率、实现复杂项目的配置,同时可以提高资源配置的灵活性。
同时,使用双向转换方式,可以使得可视化表单与YAML之间来回转换,并且平台***的更新迭代往往没有k8s本身的迭代速度快,可视化表单无法涵盖全部的配置项,且有些高度复杂的配置项并不易于可视化渲染,此种双向转换可以保证用户在YAML中输入表单不包含的配置项后,转换回表单不丢失此类配置,使用过程较为灵活方便,兼顾灵活和简化易用的双重体验,大大降低了使用的学习成本,同时该项技术也是一种加速学习k8s与YAML的流程与实现。
另外,切换至YAML后,在YAML中添加可视化表单不支持的配置项,再切换回表单后,仍能保存额外的配置项,可以保证双向切换过程中数据的一致性。
另外,通过递归的方式将所有成功回填的键值从第二YAML对象的YAML结构体中去除,可以保证这些键值在表单中被修改后同步的一致性。
另外,通过直接读取第一YAML对象来初始化可视化表单,可以不在可视化表单中填写任何内容。
图2是本申请一个实施例提供的基于Kubernetes的可视化表单和YAML双向转换的装置的框图。该装置至少包括以下几个模块:对象获取模块210、表单显示模块220、信息接收模块230、第一切换模块240、第一构建模块250、第二切换模块260和第二构建模块270。
对象获取模块210,用于在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象,所述资源创建请求用于请求使用可视化表单进行目标资源的配置;
表单显示模块220,用于使用所述第一YAML对象生成并显示第一可视化表单,并将所述第一YAML对象的唯一标识与所述第一可视化表单关联;
信息接收模块230,用于接收用户基于所述第一可视化表单输入的配置信息,得到第二可视化表单;
第一切换模块240,用于在获取到第一切换请求的情况下,将所述第一YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,所述第一切换请求用于请求从可视化表单切换至YAML对象进行所述目标资源的配置;
第一构建模块250,用于将所述第二可视化表单构建为YAML结构的数据结构体,将所述数据结构体与所述YAML对象结构体合并,得到第二YAML对象;
第二切换模块260,用于在获取到第二切换请求的情况下,使用所述第二YAML对象中可视化表单支持的键值生成表单结构体,并在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体;所述第二切换请求用于请求从YAML对象切换至可视化表单进行所述目标资源的配置;
第二构建模块270,用于将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体。
相关细节参考上述实施例。
需要说明的是:上述实施例中提供的基于Kubernetes的可视化表单和YAML双向转换的装置在进行基于Kubernetes的可视化表单和YAML双向转换的时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将基于Kubernetes的可视化表单和YAML双向转换的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于Kubernetes的可视化表单和YAML双向转换的装置与基于Kubernetes的可视化表单和YAML双向转换的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
可选地,本申请还提供有计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的基于Kubernetes的可视化表单和YAML双向转换的方法。
可选地,本申请还提供有计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的基于Kubernetes的可视化表单和YAML双向转换的方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于Kubernetes的可视化表单和YAML双向转换的方法,其特征在于,所述方法包括:
在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象,所述资源创建请求用于请求使用可视化表单进行目标资源的配置;
使用所述第一YAML对象生成并显示第一可视化表单,并将所述第一YAML对象的唯一标识与所述第一可视化表单关联;
接收用户基于所述第一可视化表单输入的配置信息,得到第二可视化表单;
在获取到第一切换请求的情况下,将所述第一YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,所述第一切换请求用于请求从可视化表单切换至YAML对象进行所述目标资源的配置;
将所述第二可视化表单构建为YAML结构的数据结构体,将所述数据结构体与所述YAML对象结构体合并,得到第二YAML对象;
在获取到第二切换请求的情况下,使用所述第二YAML对象中可视化表单支持的键值生成表单结构体,并在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体;所述第二切换请求用于请求从YAML对象切换至可视化表单进行所述目标资源的配置;
将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体。
2.根据权利要求1所述的方法,其特征在于,将所述第一YAML对象中可视化表单支持的键值删除,或者将所述第二YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,包括:
在所述第一YAML对象或所述第二YAML对象中,确定与所述支持的键值关联的层级、键、和索引项;
将所述支持的键值、所述关联的层级、键、和索引项删除。
3.根据权利要求1所述的方法,其特征在于,所述在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,包括:
对于所述第二YAML对象中可视化表单支持的每个键值,通过递归的方式在第三可视化表单中回填所述键值成功后,将所述键值删除。
4.根据权利要求3所述的方法,其特征在于,在获取到第二切换请求的情况下,所述方法还包括:
使用所述第二YAML对象对应的表单结构体对所述第三可视化表单进行页面渲染;
通过回调的方式监听所述第二YAML对象转换至所述第三可视化表单是否完毕;
在完毕的情况下停止页面渲染。
5.根据权利要求1所述的方法,其特征在于,所述将所述数据结构体与所述YAML对象结构体合并,包括:
将所述数据结构体挂载至所述YAML对象结构体中对应的配置项下。
6.根据权利要求1所述的方法,其特征在于,所述将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,包括:
将所述剔除所述支持的键值后的YAML对象结构体挂载至所述表单结构体对应的配置项下。
7.根据权利要求1所述的方法,其特征在于,所述将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体之后,还包括:
响应于对目标资源的发布请求,在所述目标资源对应的YAML对象中,将与发布表单关联的YAML对象转换为发布表单;将未与所述发布表单关联的YAML对象保留在的所述YAML对象的YAML字符串中。
8.根据权利要求1所述的方法,其特征在于,所述第一YAML对象包括批处理YAML结构体中目标键值的设置方式,所述使用所述第一YAML对象生成并显示第一可视化表单,包括:
按照所述设置方式将所述目标键值转换至所述第一可视化表单中的多个配置项。
9.根据权利要求1至8任一所述的方法,其特征在于,所述在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象之前,还包括:
在闭包环境中声明Kubernetes中各类资源的初始化YAML对象,所述初始化YAML对象包括所述目标资源对应的可视化表单对应的第一YAML对象。
10.一种基于Kubernetes的可视化表单和YAML双向转换的装置,其特征在于,所述装置包括:
对象获取模块,用于在获取到资源创建请求的情况下,获取可视化表单对应的第一YAML对象,所述资源创建请求用于请求使用可视化表单进行目标资源的配置;
表单显示模块,用于使用所述第一YAML对象生成并显示第一可视化表单,并将所述第一YAML对象的唯一标识与所述第一可视化表单关联;
信息接收模块,用于接收用户基于所述第一可视化表单输入的配置信息,得到第二可视化表单;
第一切换模块,用于在获取到第一切换请求的情况下,将所述第一YAML对象中可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体,所述第一切换请求用于请求从可视化表单切换至YAML对象进行所述目标资源的配置;
第一构建模块,用于将所述第二可视化表单构建为YAML结构的数据结构体,将所述数据结构体与所述YAML对象结构体合并,得到第二YAML对象;
第二切换模块,用于在获取到第二切换请求的情况下,使用所述第二YAML对象中可视化表单支持的键值生成表单结构体,并在所述第二YAML对象中将可视化表单支持的键值删除,得到剔除所述支持的键值后的YAML对象结构体;所述第二切换请求用于请求从YAML对象切换至可视化表单进行所述目标资源的配置;
第二构建模块,用于将剔除所述支持的键值后的YAML对象结构体与所述表单结构体合并,得到第三可视化表单对应的表单结构体。
CN202210999207.9A 2022-08-19 2022-08-19 基于Kubernetes的可视化表单和YAML双向转换的方法及装置 Active CN115081395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210999207.9A CN115081395B (zh) 2022-08-19 2022-08-19 基于Kubernetes的可视化表单和YAML双向转换的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210999207.9A CN115081395B (zh) 2022-08-19 2022-08-19 基于Kubernetes的可视化表单和YAML双向转换的方法及装置

Publications (2)

Publication Number Publication Date
CN115081395A CN115081395A (zh) 2022-09-20
CN115081395B true CN115081395B (zh) 2022-11-01

Family

ID=83245087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210999207.9A Active CN115081395B (zh) 2022-08-19 2022-08-19 基于Kubernetes的可视化表单和YAML双向转换的方法及装置

Country Status (1)

Country Link
CN (1) CN115081395B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131184A (zh) * 2020-09-18 2020-12-25 四创科技有限公司 一种实现模型及其接口标准化输入输出的方法
CN112181648A (zh) * 2020-09-22 2021-01-05 中国科学院软件研究所 一种配置驱动的轻量级混合基础设施平台及数据处理方法
US20210064644A1 (en) * 2019-08-30 2021-03-04 Google Llc Yaml configuration modeling

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904801B2 (en) * 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210064644A1 (en) * 2019-08-30 2021-03-04 Google Llc Yaml configuration modeling
CN112131184A (zh) * 2020-09-18 2020-12-25 四创科技有限公司 一种实现模型及其接口标准化输入输出的方法
CN112181648A (zh) * 2020-09-22 2021-01-05 中国科学院软件研究所 一种配置驱动的轻量级混合基础设施平台及数据处理方法

Also Published As

Publication number Publication date
CN115081395A (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
CN106708480B (zh) 管理平台实现方法和装置
CN111639287A (zh) 一种页面处理方法、装置、终端设备及可读存储介质
CN101699393B (zh) 一种面向网络的智能化软件界面动态生成方法
CN109634490B (zh) 一种列表显示方法、装置、设备及存储介质
CN111666526A (zh) 页面生成方法、装置、设备及存储介质
CN108279882B (zh) 框架生成方法、装置、设备及计算机可读介质
CN108563431B (zh) 软件开发方法、装置、计算机可读存储介质以及电子设备
CN112395117B (zh) 一种数据处理方法、***和存储介质
CN114064024A (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
CN104750472A (zh) 一种终端应用的资源包管理方法和装置
WO2023051125A1 (zh) 结构化数据的版本管理方法、装置及相关设备
CN106371869B (zh) 一种智能变电站间隔层设备的iec61850配置软件实现方法
CN113268260A (zh) 用于web前端的路由方法及装置
CN115081395B (zh) 基于Kubernetes的可视化表单和YAML双向转换的方法及装置
CN114816170A (zh) 规则方案生成方法、装置、介质及电子设备
CN109614592B (zh) 文本的处理方法、装置、存储介质和电子设备
Fujima Building a meme media platform with a JavaScript MVC framework and HTML5
CN115964042A (zh) 菜单的生成方法及装置、存储介质、电子设备
CN113918254B (zh) 语言文本管理方法、装置、存储介质及电子设备
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN114237824A (zh) 故障定位方法、装置、计算机可读介质及电子设备
CN115202643A (zh) 图标资源的删除方法、装置、电子设备及介质
CN112199075B (zh) 一种基于微服务智能信息处理方法及框架***
CN116775174A (zh) 一种基于用户界面框架的处理方法、装置、设备及介质
CN118051687B (zh) 页面响应方法、装置、电子设备及存储介质

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