CN110308950A - 工控机的出厂初始化配置方法及装置、存储介质 - Google Patents
工控机的出厂初始化配置方法及装置、存储介质 Download PDFInfo
- Publication number
- CN110308950A CN110308950A CN201910577147.XA CN201910577147A CN110308950A CN 110308950 A CN110308950 A CN 110308950A CN 201910577147 A CN201910577147 A CN 201910577147A CN 110308950 A CN110308950 A CN 110308950A
- Authority
- CN
- China
- Prior art keywords
- industrial personal
- personal computer
- factory
- configuration
- script
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种工控机的出厂初始化配置方法及装置、存储介质。该方法包括在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;定义一个或多个工控机中的身份文件,其中所述ID文件是指IP地址和对主机名称,所述工控机是指已出厂需要二次配置的;执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。本申请解决了工控机出厂配置较为繁琐的技术问题。通过本申请可用简单直观的方法实现批量***环境,软件环境定制的方案。
Description
技术领域
本申请涉及通信领域,具体而言,涉及一种工控机的出厂初始化配置方法及装置、存储介质。
背景技术
在工控机的初始化完成并出厂后,会被直接随机器人发送到各个场景使用。
发明人发现,随着需求的增加以及软件的不断更新,软件、账户变更需求越来越多,进而需要频繁地进行***操作。进一步,如果工控机数量较大,工作量会非常繁琐。
针对相关技术中工控机出厂配置较为繁琐的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种工控机的出厂初始化配置方法及装置,以解决工控机出厂配置较为繁琐的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种工控机的出厂初始化配置方法,用于通过管理机控制待更新的一个或多个工控机。
根据本申请的工控机的出厂初始化配置方法包括:在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;定义一个或多个工控机中的身份文件,其中所述ID文件是指IP地址和对主机名称,所述工控机是指已出厂需要二次配置的;执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。
进一步地,执行预先配置的脚本,按照预设函数调用接口包括:根据所述身份文件获取工控机列表。
进一步地,执行预先配置的脚本,按照预设函数调用接口包括:获取所述工控机列表中数据生成字典,其中数据生成字典涵盖待更新的一个或多个工控机IP地址。
进一步地,执行预先配置的脚本,按照预设函数调用接口包括:确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发。
进一步地,运行所述预先配置的脚本时,用于集中控制所述工控机,并在所述工控机上执行软件初始化,其中软件初始化至少包括:账户环境、配置环境或软件环境。
为了实现上述目的,根据本申请的另一方面,提供了一种工控机的出厂初始化配置装置,用于通过管理机控制待更新的一个或多个工控机。
根据本申请的工控机的出厂初始化配置装置包括:初始化模块,用于在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;定义模块,用于定义一个或多个工控机中的身份文件,其中所述ID文件是指IP地址和对主机名称;脚本执行模块,用于执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。
进一步地,所述脚本执行模块用于,根据所述身份文件获取工控机列表。
进一步地,脚本执行模块用于,获取所述工控机列表中数据生成字典,其中数据生成字典涵盖待更新的一个或多个工控机IP地址。
进一步地,脚本执行模块,还用于确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发。
为了实现上述目的,根据本申请的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的工控机的出厂初始化配置方法的步骤。
在本申请实施例中工控机的出厂初始化配置方法及装置,采用在管理机上配置Python模块的方式,通过定义一个或多个工控机中的身份文件,达到了执行预先配置的脚本,按照预设函数调用接口的目的,从而实现了过管理机控制待更新的一个或多个工控机的技术效果,进而解决了工控机出厂配置较为繁琐的技术问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的工控机的出厂初始化配置方法流程示意图;
图2是根据本申请实施例的工控机的出厂初始化配置装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,该方法包括如下的步骤S102至步骤S106:
步骤S102,在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;
本申请中的工控机的出厂初始化配置方法可以基于管理机对多个工控机进行初始化配置。所述工控机在出厂初始化后会直接随机器人发送到各个场景使用,为了满足不同的用户需求需要更改账户、更新软件。
具体地,采用在管理机上配置Python模块可以对工控机实现批量化的***环境、软件环境的定制。比如,利用python fabirc模块来对工控机进行二次更新、固定软件环境、配置环境、以及账户环境。
步骤S104,定义一个或多个工控机中的身份文件,
所述ID文件是指IP地址和对主机名称,所述工控机是指已出厂需要二次配置的。
具体地,在管理机上集中控制待更新的工控机,并且在***环境中安装python模块。比如,#pip install fabric。
然后,继续定义工控机文件用于在下述配置步骤中引用。
具体地,身份文件的格式为:IP对应主机名。比如,
#cat hosts.info
192.168.56.14 TN-DEV01
192.168.56.15 TN-DEV02
步骤S106,执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。
执行预先配置的脚本时可进行日志查看。具体地,执行过程是交互式的,可以方便查看整个交互过程是否正常,结果会记录在定义好的history.log文件中。
具体地,执行脚本时还包括初始化的步骤:
import os,sys,tarfile ###加载需要的模块;
import tempfile,random,string,os
import getopt,optparse,json
from fabric.api import*
from fabric.contrib.console import confirm
from fabric.contrib.files import exists
from fabric.network import ssh
env.hosts=_listHost()
env.user='youraccount' ##原有出厂sudo账户;
env.password='yourpassword' ##出厂密码;
ssh.util.log_to_file("history.log",10) ##记录执行日志;
通过执行预先编写的批量配置的脚本文件,并按照预设函数接口进行调用,可以包括:定义如何安装,定义工控机列表,测试执行。同时,通过一次定制要更新的内容,然后批量下发到所有工控机上,节省时间和人力。
从以上的描述中,可以看出,本申请实现了如下技术效果:
在本申请实施例中,采用在管理机上配置Python模块的方式,通过定义一个或多个工控机中的身份文件,达到了执行预先配置的脚本,按照预设函数调用接口的目的,从而实现了过管理机控制待更新的一个或多个工控机的技术效果,进而解决了工控机出厂配置较为繁琐的技术问题。
根据本申请实施例,作为本实施例中的优选,执行预先配置的脚本,按照预设函数调用接口包括:根据所述身份文件获取工控机列表。
具体地根据所述身份文件获取工控机列表包括如下操作:
def_listHost():##函数1;引用步骤2文件hosts.info作为工控机列表;
根据本申请实施例,作为本实施例中的优选,执行预先配置的脚本,按照预设函数调用接口包括:获取所述工控机列表中数据生成字典,其中数据生成字典涵盖待更新的一个或多个工控机IP地址。
具体地获取所述工控机列表中数据生成字典包括如下操作:
根据本申请实施例,作为本实施例中的优选,执行预先配置的脚本,按照预设函数调用接口包括:确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发。
具体地确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发包括如下操作:
def init_salt(vm=False,master='172.17.16.13'):#函数3,执行软件变更,配置分发部分;
根据本申请实施例,作为本实施例中的优选,运行所述预先配置的脚本时,用于集中控制所述工控机,并在所述工控机上执行软件初始化,其中软件初始化至少包括:账户环境、配置环境或软件环境。
利用python fabric模块来实现批量***环境、软件环境定制。
具体地,通过python fabric模块,可用简单直观的方法实现批量***环境,软件环境定制的方案。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述方法的工控机的出厂初始化配置装置,如图2所示,该装置包括:初始化模块10,用于在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;定义模块20,用于定义一个或多个工控机中的身份文件,其中所述ID文件是指IP地址和对主机名称;脚本执行模块30,用于执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。
本实施例的初始化模块10中的工控机的出厂初始化配置方法可以基于管理机对多个工控机进行初始化配置。所述工控机在出厂初始化后会直接随机器人发送到各个场景使用,为了满足不同的用户需求需要更改账户、更新软件。
具体地,采用在管理机上配置Python模块可以对工控机实现批量化的***环境、软件环境的定制。比如,利用python fabirc模块来对工控机进行二次更新、固定软件环境、配置环境、以及账户环境。
本实施例的定义模块20中所述ID文件是指IP地址和对主机名称,所述工控机是指已出厂需要二次配置的。
具体地,在管理机上集中控制待更新的工控机,并且在***环境中安装python模块。比如,#pip install fabric。
然后,继续定义工控机文件用于在下述配置步骤中引用。
具体地,身份文件的格式为:IP对应主机名。比如,
#cat hosts.info
192.168.56.14 TN-DEV01
192.168.56.15 TN-DEV02
本实施例的脚本执行模块30中执行预先配置的脚本时可进行日志查看。具体地,执行过程是交互式的,可以方便查看整个交互过程是否正常,结果会记录在定义好的history.log文件中。
通过执行预先编写的批量配置的脚本文件,并按照预设函数接口进行调用,可以包括:定义如何安装,定义工控机列表,测试执行。同时,通过一次定制要更新的内容,然后批量下发到所有工控机上,节省时间和人力。
根据本申请实施例,作为本实施例中的优选,所述脚本执行模块用于,根据所述身份文件获取工控机列表。
根据本申请实施例,作为本实施例中的优选,脚本执行模块用于,获取所述工控机列表中数据生成字典,其中数据生成字典涵盖待更新的一个或多个工控机IP地址。
根据本申请实施例,作为本实施例中的优选,脚本执行模块,还用于确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种工控机的出厂初始化配置方法,其特征在于,用于通过管理机控制待更新的一个或多个工控机,所述方法包括:
在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;
定义一个或多个工控机中的身份文件,其中所述ID文件是指IP地址和对主机名称,所述工控机是指已出厂需要二次配置的;
执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。
2.根据权利要求1所述工控机的出厂初始化配置方法,其特征在于,执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置包括:
根据所述身份文件获取工控机列表。
3.根据权利要求2所述工控机的出厂初始化配置方法,其特征在于,执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置包括:
获取所述工控机列表中数据生成字典,其中数据生成字典涵盖待更新的一个或多个工控机IP地址。
4.根据权利要求2所述工控机的出厂初始化配置方法,其特征在于,执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置包括:
确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发。
5.根据权利要求1所述工控机的出厂初始化配置方法,其特征在于,运行所述预先配置的脚本时,用于集中控制所述工控机,并在所述工控机上执行软件初始化,其中软件初始化至少包括:账户环境、配置环境或软件环境。
6.一种工控机的出厂初始化配置装置,其特征在于,用于通过管理机控制待更新的一个或多个工控机,所述装置包括:
初始化模块,用于在管理机上配置Python模块,其中所述Python模块用于批量***环境、软件环境的定制;
定义模块,用于定义一个或多个工控机中的身份文件,其中所述ID文件是指IP地址和对主机名称;
脚本执行模块,用于执行预先配置的脚本,按照预设函数调用接口完成出厂初始化配置,其中执行预先配置的脚本时可进行日志查看。
7.根据权利要求6所述的工控机的出厂初始化配置装置,其特征在于,所述脚本执行模块用于,
根据所述身份文件获取工控机列表。
8.根据权利要求7所述的工控机的出厂初始化配置装置,其特征在于,脚本执行模块用于,
获取所述工控机列表中数据生成字典,其中数据生成字典涵盖待更新的一个或多个工控机IP地址。
9.根据权利要求7所述的工控机的出厂初始化配置装置,其特征在于,脚本执行模块,还用于
确定所述工控机列表中的一个或多个工控机,并对所示工控机执行软件变更批量操作和配置批量分发。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述的工控机的出厂初始化配置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577147.XA CN110308950A (zh) | 2019-06-28 | 2019-06-28 | 工控机的出厂初始化配置方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577147.XA CN110308950A (zh) | 2019-06-28 | 2019-06-28 | 工控机的出厂初始化配置方法及装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110308950A true CN110308950A (zh) | 2019-10-08 |
Family
ID=68079306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910577147.XA Pending CN110308950A (zh) | 2019-06-28 | 2019-06-28 | 工控机的出厂初始化配置方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110308950A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770212A (zh) * | 2020-07-16 | 2020-10-13 | 广州视源电子科技股份有限公司 | 网络接入方法和装置、计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317617A (zh) * | 2014-10-23 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种批量刷新BMC Firmware的方法 |
CN105867975A (zh) * | 2016-04-01 | 2016-08-17 | 浪潮电子信息产业股份有限公司 | 一种基于linux平台的批量刷新bmc的方法 |
CN107168753A (zh) * | 2017-06-21 | 2017-09-15 | 山东超越数控电子有限公司 | 一种基于中标麒麟***远程部署lamp的实现方法 |
CN107943636A (zh) * | 2017-12-07 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种基于Linux下多台机器批量执行测试的方法 |
CN108073402A (zh) * | 2017-11-30 | 2018-05-25 | 山东鲁能软件技术有限公司 | 基于Linux***的kafka集群自动部署方法和装置 |
-
2019
- 2019-06-28 CN CN201910577147.XA patent/CN110308950A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317617A (zh) * | 2014-10-23 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种批量刷新BMC Firmware的方法 |
CN105867975A (zh) * | 2016-04-01 | 2016-08-17 | 浪潮电子信息产业股份有限公司 | 一种基于linux平台的批量刷新bmc的方法 |
CN107168753A (zh) * | 2017-06-21 | 2017-09-15 | 山东超越数控电子有限公司 | 一种基于中标麒麟***远程部署lamp的实现方法 |
CN108073402A (zh) * | 2017-11-30 | 2018-05-25 | 山东鲁能软件技术有限公司 | 基于Linux***的kafka集群自动部署方法和装置 |
CN107943636A (zh) * | 2017-12-07 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种基于Linux下多台机器批量执行测试的方法 |
Non-Patent Citations (1)
Title |
---|
囍。: "python使用Fabric模块实现自动化运维", 《HTTPS://WWW.CNBLOGS.COM/ASLONGAS/P/5961144.HTML》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770212A (zh) * | 2020-07-16 | 2020-10-13 | 广州视源电子科技股份有限公司 | 网络接入方法和装置、计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190052476A1 (en) | Smart appliance control method and smart appliance | |
US8290998B2 (en) | Systems and methods for generating cloud computing landscapes | |
US10313871B2 (en) | Transferring information to a mobile device | |
CN107580083A (zh) | 一种容器ip地址分配的方法和*** | |
CN105979009A (zh) | 一种针对云应用容器的增加负载自动均衡方法 | |
CN109314713B (zh) | 支持多个虚拟容器的移动设备管理的***、设备和方法 | |
CN105338011A (zh) | 一种基于云服务的***配置方法、装置及云服务器 | |
CN107526618A (zh) | ***安装方法及装置 | |
CN103729234B (zh) | 一种虚拟机集群化管理方法和装置 | |
CN102647456A (zh) | 构建桌面云的方法及*** | |
CN109526249A (zh) | 用于管理通信设备的通信接口的设备和方法 | |
CN114374602B (zh) | 主控设备配置方法、装置、云服务器及存储介质 | |
CN112968929B (zh) | 一种服务器管理方法和*** | |
CN109857464B (zh) | 用于平台部署与操作移动操作***的***及其方法 | |
Andreetto et al. | Merging openstack-based private clouds: the case of cloudveneto. it | |
CN109117241A (zh) | 一种显示方向控制方法、***及移动终端 | |
CN104092747B (zh) | 虚拟化环境下usb动态连接方法及装置 | |
US20160124403A1 (en) | Method and server of customizing scenario mode for smart devices | |
CN110308950A (zh) | 工控机的出厂初始化配置方法及装置、存储介质 | |
CN106201182A (zh) | 应用分栏展示的方法及装置 | |
CN107786367B (zh) | 一种虚拟网元的配置方法和装置 | |
CN109254780A (zh) | 一种批量刷新服务器节点固件的方法、装置及受控终端 | |
WO2020078424A1 (zh) | 网络访问控制方法及装置 | |
CN107197345A (zh) | 遥控界面配置方法及装置 | |
CN108206784B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 702, 7th floor, NO.67, Beisihuan West Road, Haidian District, Beijing 100089 Applicant after: Beijing Yunji Technology Co.,Ltd. Address before: Room 702, 7th floor, NO.67, Beisihuan West Road, Haidian District, Beijing 100089 Applicant before: BEIJING YUNJI TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191008 |