vmwareapi开发之快照管理

author author     2022-07-30     336

关键词:

公司要自己开发私有云管理平台,我这边负责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)


当我从 Clearcase 资源管理器创建视图时,开发和集成视图都被创建为快照

】当我从Clearcase资源管理器创建视图时,开发和集成视图都被创建为快照【英文标题】:WhenIcreateviewsfromClearcaseexplorer,bothdevelopmentandtheintegrationviewsgetcreatedassnapshot【发布时间】:2009-03-1820:51:18【问题描述】:我根本无法选择快照... 查看详情

阿里笔记之数据模型(代码片段)

...务事实表分类多事务事实表两种事务事实表如何选择周期快照事实表特性用快照采样状态快照粒度密度与稀疏性半可加性快照事实表分类设计步骤单维度的每天快照事实表混合维度的每天快照事实表全量快照事实表累计快照事实... 查看详情

flinkflink源码之快照(代码片段)

1.概述转载:Flink源码之快照2.周期触发checkpoint的方法调用链JobMaster.triggerSavepointSchedulerBase.startCheckpointScheduler CheckpointCoordinator.startCheckpointScheduler CheckpointCoordinator.scheduleTriggerWithDelay 查看详情

0c#winform开发权限管理历程之权限管理概述

...构数据权限、角色数据权限、用户数据权限等。1C#WinForm开发权限管理历程之三层架构2C#WinForm开发权限管理历程之新建项目3C#WinForm开发权限管理历程之Form1完善4C#WinForm开发权限管理历程之主控窗体功能实现5C#WinForm开发权限管理... 查看详情

raft算法之快照篇

一、什么是快照快照(snapshot)是最简单的压缩方式。在快照中,全部的当前系统状态都被写入到快照中,存储到持久化的存储中,然后在那个时刻之前的全部日志都可以被丢弃。 打个比方,像Redis这样的KV系统,系统的当前... 查看详情

jnpf敏捷开发框架的开发运用之信息管理系统开发

JNPF敏捷开发框架的第四个重量级运用是信息管理系统的开发。如今这个时代,对于任何企事业单位来说,信息管理系统都是企业运营管理的标配。面对企业每天庞大的各类运营信息数据的管理处理,信息管理系统是尤为重要,... 查看详情

vsphere和vmware快照的不足之处

当快照创建时虚拟机执行一个读操作,hypervisor会检查快照VMDK,查看是否有被读取的区块存在。如果有,则从快照中为虚拟机提供这个区块,如果没有,虚拟机还需要去读取基础VMDK。如果只有一个快照,这并不是什么问题,只不... 查看详情

开发测试管理平台之功能架构

开发测试环境管理的难题环境搭建费时费力服务器环境复杂,部署难度很大。且涉及关联系统面广,自动化程度很低。缺乏有效的环境一致性管理办法,环境的配置变动无法有效管理,容易因环境不一致而增加项目测试成本。资... 查看详情

精通java事务编程-弱隔离级别之快照隔离和可重复读

...事务结果,并防止并发写的混乱。这点很关键!为我们的开发省去一大堆麻烦。但此隔离级别仍有很多地方可能产生并发错误。如图-6说明RC可能发生的问题。Alice在银行有1000存款,分为两个账户,每个500。现有一笔转账交易从... 查看详情

java之springboot+springsecurity+vue实现后台管理系统的开发三系统权限(代码片段)

Java之SpringBoot+SpringSecurity+Vue实现后台管理系统的开发【一、前端】跳转Java之SpringBoot+SpringSecurity+Vue实现后台管理系统的开发【二、后端】跳转Java之SpringBoot+SpringSecurity+Vue实现后台管理系统的开发【三、系统权限... 查看详情

嵌入式开发基础之任务管理(线程管理)(代码片段)

嵌入式开发基础之任务管理(线程管理)引言介绍多任务系统任务什么是任务?任务状态任务优先级任务控制块任务堆栈使用方法创建和删除任务创建线程动态创建静态创建删除线程挂起和恢复线程挂起线程恢复线程... 查看详情

嵌入式开发基础之任务管理(线程管理)(代码片段)

嵌入式开发基础之任务管理(线程管理)引言介绍多任务系统任务什么是任务?任务状态任务优先级任务控制块任务堆栈使用方法创建和删除任务创建线程动态创建静态创建删除线程挂起和恢复线程挂起线程恢复线程... 查看详情

逻辑卷管理(lvm)-快照

1、需要在逻辑卷相同的卷组中创建逻辑卷快照。-s:表示快照 -pr:表示只读 /dev/vg0/mysql为那个卷的快照2、查看快照卷信息。 3、快照恢复,必须先取消挂载,还原成功之后,快照会被系统自动删除。 4、手动删除快... 查看详情

java之springboot+springsecurity+vue实现后台管理系统的开发二后端(代码片段)

Java之SpringBoot+SpringSecurity+Vue实现后台管理系统的开发【一、前端】跳转Java之SpringBoot+SpringSecurity+Vue实现后台管理系统的开发【二、后端】跳转Java之SpringBoot+SpringSecurity+Vue实现后台管理系统的开发【三、系统权限... 查看详情

云成本管理方法论——云优化管理之管理措施

...IaaS平台问题,此处不做考虑,另外,“资源不足”和“快照或备份不足”属于性能及容灾优化而非成本优化的范畴,也不做考虑。所以全部的问题类型如下:闲置资源:1)[组合]无父资源;2)[聚合]父资 查看详情

app开发流程之源代码git管理

...前,我们需要考虑一下代码管理的事情了。不管是一个人开发还是一个团队开发,对源代码进行版本管理是必须的,任何人对代码的的任何操作都可以被管理,理由还不够充分么。以前使用过SVN,不过体验最好的,还是Git方式。... 查看详情

docker存储驱动之btrfs简介

...-disk-format也逐渐稳定了。不过,它的很多特性还仍然处于开发中。Docker的btrfs存储驱动利用了很多Btrfs特性来管理镜像和容器。这些特性中最重要的就是thinprovisioning(超配)、copy-on-write和快照。Btrf 查看详情

开发分支管理模型之阿里aoneflow

说到分支管理模型,令人最为熟悉的莫过于TrunkBased和GitFlow。TrunkBased模型是持续集成思想所崇尚的工作方式,它由单个master分支和许多release分支组成,每个release分支在特定版本的提交点上从master分支创建出来,用来进行上线部... 查看详情