vmware api开发之快照管理

公司要自己开发私有云管理平台,我这边负责vmware部分的后台接口编写。

主要基于vmware官方的 python 接口 pyvmomi进行二次封装,

主要实现有虚拟机开关机注销;

虚拟机增删磁盘;

虚拟机快照增删还原;

虚拟机 html5的console界面

虚拟机网络管理

zabbix 监控 esxi的磁盘使用率

zabbix 接受转发esxi的报警信息

本文展示快照功能,快照其实是一个很小的功能,主要是让大家了解下vmware快照的接口,网上没有干过我这个事情,中间有个遍历的算法

先上图

1实际效果

2、实际的数据

代码如下

from pyVmomi import vim

from pyVim.connect import SmartConnect, Disconnect

import atexit

import argparse

import getpass

import ssl

import random

import cgi, cgitb

import sys

import json

def wait_for_task(task):

""" wait for a vCenter task to finish """

task_done = False

while not task_done:

if task.info.state == ‘success‘:

return task.info.result

if task.info.state == ‘error‘:

print ("there was an error")

task_done = True

form = cgi.FieldStorage()

vmnames= form.getvalue(‘IP‘)

si = None

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)

context.verify_mode = ssl.CERT_NONE

si = SmartConnect(host="10.20.11.3",

user="root",

pwd="vmware",

port=443,

sslContext=context)

atexit.register(Disconnect, si)

content = si.RetrieveContent()

container = content.viewManager.CreateContainerView(content.rootFolder, [vim.VirtualMachine], True)

for c in container.view:

if c.name == vmnames:

obj = c

break

try:

obj.name

except Exception as e:

res={‘status‘:‘failed‘,‘result‘:‘IP is not found‘}

body = json.dumps(res)

print ("Status: 200 OK")

print ("Content-Type: application/json")

print ("Content-Length: %d" % (len(body)))

print ("")

print (res)

sys.exit()

output=[]

#遍历快照的树状结构 注意要设置为全局变量

def showlist(snapshot):

global output

output.append({snapshot.snapshot:[snapshot.name,snapshot.createTime.timestamp()]})

for i in snapshot.childSnapshotList:

showlist(i)

时间: 2024-10-17 06:11:09

vmware api开发之快照管理的相关文章

vmware api开发之克隆虚拟机

公司要自己开发私有云管理平台,我这边负责vmware部分的后台接口编写. 主要基于vmware官方的 python 接口 pyvmomi进行二次封装, 主要实现有虚拟机开关机注销: 虚拟机增删磁盘: 虚拟机快照增删还原: 虚拟机 html5的console界面 虚拟机网络管理 zabbix 监控 esxi的磁盘使用率 zabbix 接受转发esxi的报警信息 我把 克隆虚拟机,虚拟机 html5的console界面,虚拟机快照管理 这几个代码的放出,水平有限,大神勿喷,并且有部分涉及隐私的地方做

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统.微信应用.微信小程序.APP等方面,都可以直接调用基于JSON数据格式的Web API接口,在我之前的几篇随笔中,对这方面都有一定的介绍,本篇继续这个主题,细致深入的阐述如何在接口和源码的基础上整合Web API.微信后台管理及前端微信小程序的应用方案. 1.基于Web API的微信开发框架 首先我们各个业务模块,都应该围绕着Web API进行展开,

[API 开发管理] 分享几个 eoLinker 实用操作技巧

一键离线导出项目,PDF.WORD等格式任你挑选 举例说明,如果我要将 "示例素材项目" 导出到本地,并且以 PDF 的格式保存. 首先找到该项目所在空间:演示空间,在左边一级菜单中选择 "API开发管理" ,找到 "示例素材项目" ,点击进入. 在项目概况页面中,点击 "导出项目"  按钮,选择需要导出的文件格式即可: 选择PDF ,再选择项目所在环境 "演示环境" ,点击 "导出"

[API 开发管理] EOLINKER 升级为多产品架构, AMS V4.5 版本常见问题汇总

自AMS4.5开始,eoLinker 全面升级为多产品架构,部分操作方式较以前有较大改变,本文针对改进部分做重点说明.在说明之前,我们先通过以下的图文看看AMSV4.5更新了哪些内容: Q:我可以创建多少个的工作空间?A:eoLinker升级后,用户可以无限制创建工作空间,并且每个工作空间可以由不同的产品组合而成,AMS为固定开通项. Q:一个工作空间最多支持多少个管理员?A:目前一个工作空间只能有一名管理员,但工作空间内可以无限制添加人员. Q:切换工作空间时,发现工作空间免费和付费标志都不见

vmware api开发之html的虚拟机console

公司要自己开发私有云管理平台,我这边负责vmware部分的后台接口编写. 主要基于vmware官方的 python 接口 pyvmomi进行二次封装, 主要实现有虚拟机开关机注销: 虚拟机增删磁盘: 虚拟机快照增删还原: 虚拟机 html5的console界面 虚拟机网络管理 zabbix 监控 esxi的磁盘使用率 zabbix 接受转发esxi的报警信息 我把 克隆虚拟机,虚拟机 html5的console界面,虚拟机快照管理 这几个代码的放出,水平有限,大神勿喷,并且有部分涉及隐私的地方做

循序渐进学.Net Core Web Api开发系列【1】:开发环境

系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.本篇概述 本篇不打算描述如何通过Visual Studio创建一个项目之类的话题,主要描述以下内容: 1.使用NuGet和Bower引入第三方库 2.Linux下安装运行环境 3.关于安装虚拟机时碰到的网络设置的问题 实验环境:Windows 10 ,Visual Studio 2017 ,VM 14 , Cent

构建你的长寿命的API第1部分:规范驱动的API开发

构建你的长寿命的API第1部分:规范驱动的API开发 这篇文章是由MuleSoft的Mike Stowe在nginx.conf 2016公布的演示文稿改编的.第一部分重点是规范驱动的API开发. 第二部分讨论的最佳实践.你能够查看完整的呈现的记录的v=G8p4g3yYLBw">YouTube.详细信息例如以下: 0:00 介绍 1:52 API正在改变世界 2:32 API正在连接一切 3:36 API应该是持久的 4:01 构建一个持久的API的5个步骤 4:38 从长计议 6:03 你

vue组件化开发-vuex状态管理库

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试.状态快照导入导出等高级调试功能. 以上是vuex的官方文档对vuex的介绍,官方文档对vuex的用法进行了详细的说明.这里就不再细讲vuex的各个用法,写这篇博客的目的只是帮助部分同学更快地理解并上手vuex.

深入浅出百度地图API开发系列(1):前言

百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能给想使用百度地图API的开发者带来一点帮助的话,那就太好了,也希望大家能够互相交流,共同学习. 写在前面的话:如果各位真的想深入了解地图的JSAPI,首先一些基础的GIS概念必不可少,GIS就是地理信息系统,可能很多程序猿没听过,简单地说,GIS就是通过计算机软件技术将地理信息进行可视化管理,地图就