一种vmware的ovf模板的存储方法与流程

文档序号:12068340阅读:3445来源:国知局

本发明涉及云计算和虚拟化技术领域,具体提供一种vmware的ovf模板的存储方法。



背景技术:

计算机具有存储信息量大、使用者获取信息方便快捷、获取信息安全可靠等优点,使用领域越来越广泛。随着经济及社会的进一步发展,使用者对计算机的各项性能要求越来越高,其中对计算机的计算性能提出了更高的要求。云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态扩展且经常是虚拟化的资源。云计算是通过使计算分别在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似,这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。在云计算技术日益成熟的背景下,各行各业都在逐步把自己的业务应用上云。在此过程中,因业务应用本身的需要或者各大厂商的引导,不同的业务可能要运行在不同种类的云环境中,每种环境下用户需要自己定制相关的镜像,其中,vmware环境的镜像的创建需要ovf模板,而ovf模板对应的vmdk地址需要指定,而用户自定义上传镜像时是没有vmdk地址的,导致vmware环境的镜像的创建过程较繁琐,有待改进。



技术实现要素:

本发明的技术任务是针对上述存在的问题,提供一种能简化用户的镜像上传操作,简化vmware环境的镜像创建步骤的vmware的ovf模板的存储方法。

为实现上述目的,本发明提供了如下技术方案:

一种vmware的ovf模板的存储方法,上传镜像时选择包含vmdk文件和ovf模板文件的压缩包,解压后保存vmdk文件并得到保存地址,将得到的保存地址写入到ovf模板文件并保存ovf模板文件,调用vmware sdk时使用ovf模板文件的保存路径进行镜像的创建。

通过上传压缩包的形式,用户上传后后台进行解压并相应处理从而解决vmdk文件地址引用的问题,简化vmware环境的镜像创建步骤。

作为优选,所述存储方法具体包括以下步骤:

S1:保存镜像文件压缩包到本地并解压;

S2:保存vmdk文件并将保存地址写入ovf模板文件;

S3:保存ovf模板文件供创建镜像时vmware sdk调用。

作为优选,步骤S1中,本地保存上传的镜像文件压缩包,指定解压目录并解压,查找解压文件中的vmdk文件和ovf模板文件,若缺少vmdk文件、ovf模板文件的任意一个则程序报错并提示用户。

作为优选,步骤S2中,保存vmdk文件并得到保存地址,将得到的保存地址写入到ovf模板文件中。

ovf模板文件为xml文件,标签File中有个ovf:href的属性需要指定vmdk文件的保存地址。通过xml文件解析将File节点的ovf:href属性设置为得到的vmdk文件保存地址。该步骤的重点是ovf模板文件的解析。

作为优选,步骤S3中,保存处理好的ovf模板文件,得到的保存路径供创建镜像时vmware sdk调用。

该步骤中产生的本地存储的缓存需要清理干净,避免多次上传时造成本地磁盘占满而无法操作。

与现有技术相比,本发明的vmware的ovf模板的存储方法具有以下突出的有益效果:该vmware的ovf模板的存储方法可以实现vmware下的ovf模板的存储,简化用户的镜像上传操作,只需要上传一个压缩包即可,不需考虑ovf模板中的vmdk保存地址的问题,具有很好的推广应用价值。

附图说明

图1是本发明所述vmware的ovf模板的存储方法的操作流程图。

具体实施方式

下面将结合附图和实施例,对本发明的vmware的ovf模板的存储方法作进一步详细说明。

实施例

如图1所示,本发明的vmware的ovf模板的存储方法,在页面上传镜像时选择包含vmdk文件和ovf模板文件的压缩包,解压后保存vmdk文件并得到保存地址,将得到的保存地址写入到ovf模板文件并保存ovf模板文件,调用vmware sdk时使用ovf模板文件的保存路径进行镜像的创建。ovf模板文件为xml文件,标签File中有个ovf:href的属性需要指定vmdk文件的保存地址。

本发明的vmware的ovf模板的存储方法具体包括以下步骤:

S1:保存镜像文件压缩包到本地并解压。

本地保存上传的镜像文件压缩包,指定解压目录并解压,查找解压文件中的vmdk文件和ovf模板文件,若缺少vmdk文件、ovf模板文件的任意一个则程序报错并提示用户。

该步骤的操作代码为:

//本地保存上传的镜像文件压缩包

String uuid = localFileStore.save(ins,IMAGE_PATH);

//解压镜像文件压缩包到指定目录

ZipUtils.unzip(tempFileName, unzipDir);

//得到所有解压后的文件

List<File> files = findFile(new File(unzipDir));

//从解压后的文件中得到相应的ovf文件和vmdk文件

ovfFile = findOvfFile(files);

vmdkFile = findVmdkFile(files)。

S2:保存vmdk文件并将保存地址写入ovf模板文件。

保存vmdk文件到保存地址,并通过xml文件解析将File节点的ovf:href属性设置为得到的vmdk文件保存地址。

xml文件的解析工具方法为:

//将xml文件中指定内容替换为其它内容

// path 文件路径,tag 标签,attr 属性,value 替换内容

void replace(String path, String tag, String attr, String value) {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

Document doc = db.parse(path);

NodeList list = doc.getElementsByTagName(tagName);

for (int i = 0; i < list.getLength(); i++) {

Element ele = (Element) list.item(i);

ele.setAttribute(attribute, value);

}

TransformerFactory factory = TransformerFactory.newInstance();

Transformer transformer = factory.newTransformer();

DOMSource domSource = new DOMSource(doc);

transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

StreamResult result = new StreamResult(new FileOutputStream(path));

transformer.transform(domSource, result);

}

S3:保存ovf模板文件供创建镜像时vmware sdk调用。

保存处理好的ovf模板文件,得到的保存路径供创建镜像时vmware sdk调用。

该步骤中产生的本地存储的缓存需要清理干净,避免多次上传时造成本地磁盘占满而无法操作。

以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1