- 博客(61)
- 资源 (1)
- 收藏
- 关注

原创 Django signal 信号机制的使用
背景:如果这个任务(定时或者立即)执行完毕,然后把一些执行情况生成pdf,通过邮件发送给客户。现象:我通过celery周期查看任务的执行状态,如果任务执行完毕,异步更改任务状态,然后执行发送邮件。但是时不时会出现重复发送邮件,原因异步任务重复进入celery任务队列,导致有的任务会重复发送邮件。解决方案:通过django的signal信号机制来监测任务状态表数据的变更,一旦任务状态变成完成,触发signal信号,然后执行发送邮件逻辑代码。(但是需要注意不要在周期之中反复更改这个状态)要监控的表结构:
2021-01-22 14:46:13
616
1

原创 python生成PDF的方式对比总结
根据我调研的生成pdf的方式(python)有reportlab、pdfkit、xhtml2pdf、django-easy-pdf.一、reportlab可自己绘制各种图表,只是依赖于这个reportlab库,其次字体问题,可以引入字体文件进行解决。二、pdfkit可根据url、html、字符串生成pdf文件,确实很好用,但是也有缺陷,也存在字体问题以及样式问题,字体需要在环境中设置字体,过于复杂或者高级的css样式不支持。三、xhtml2pdf以及django-easy-pdf都是走的模板渲染方式、
2020-12-15 14:53:30
6895

原创 python pyvmomi操作VMware(九):正确获取克隆的虚拟机IP所有信息
背景: 克隆出来的虚拟机遇到了一个很奇怪的现象,克隆配置的IP和显示的第一IP地址不符合,如下图,当我去检查配置的IP,机器上的IP也配置成功了,但获取IP却是192.168.122.1。目的: 获取克隆出来的虚拟机对象的IP是192.168.30.222。原获取IP的代码:vm = self._get_obj([vim.VirtualMachine], vm_name)if not vm: return {'info': {}, 'status': False}summary = vm
2020-09-18 10:17:23
4108
3

原创 python pyvmomi操作VMware(八):根据模板克隆虚拟机(类型是Windows)配置密码
一、需求:1.克隆的虚拟机是Windows类型2.克隆的虚拟机要能指定IP、主机名等信息(上一节已经实现)二、文档调研:现在出现一个非常棘手的问题,计算机的新管理员密码。要指定密码应设置为空(即没有密码),请将密码值设置为NULL。由于加密,“”不是有效值。如果XML文件是由VirtualCenter自定义向导生成的,则密码将加密。否则,客户机应该将明文属性设置为true,这样定制过程就不会试图解密字符串。很明显可以看出来value字段是字符串类型,那么就是最后密码的设置字段。三、思路:
2020-09-18 10:04:27
2547
2

原创 Python F5创建vs时,可以选择类型,也可以设置persist为cookie(三)
经过需求确认、文档和客户端操作的调研,若设置persist为cookie,则HTTP Profile需要选择一个值,如/Common/http,但是vs的类型是standard,经过文档的挖掘,变相实现了类型的选择,可惜的是只能选择Standard和Performance (Layer 4)。在此,创建VS的时候加入了一些字段,类型、sourceAddressTranslation、persist、profiles。 def create_vs(self, vs
2020-09-18 09:26:34
621

原创 python pyvmomi操作VMware(六):操作集群的Drs开启、关闭状态
这一节主要介绍关于集群drs的开启、关闭操作。一般更新对象属性逻辑:获取到这个对象,然后找到这个这个对象对应的属性,对这个属性进行赋值更改。问题:经过研究官方文档,发现更改状态或者其它信息,这样做是行不通的,需要通过执行任务的方式才能进行更改相关信息。思路:由于我们只需要更改其中某一个属性,其它的属性不变,所以Drs相关配置信息,除了要更改的字段,其它配置信息都取原对象的配置信息,保持对象属性的一致性。代码如下: def update_cluster_drs(self, cluster_objs_
2020-08-26 17:45:13
1688

原创 python pyvmomi操作VMware(七):根据模板克隆虚拟机(类型是Windows)指定IP、主机名等信息
背景:当客户克隆的虚拟机是Windows类型,并且还要指定IP、主机名等信息。问题:根据之前的克隆方法、发现模板是Windows类型时,怎么指定主机名都失败,报错信息:指定的参数不正确: spec.identity过程:经过研究官方的文档,发现一个比较有趣的事情,就是克隆指定一些配置信息,windows和Linux是区分开的,当模板是Windows时,identity采用Sysprep的配置;模板是Linux等系统时,identity采用LinuxPrep的配置。Sysprep的配置信息如下:这里
2020-08-26 17:28:55
4298
14

原创 Python F5创建monitor、pool、node以及vs(二)
一、环境依赖对f5进行操作,我们需要下载f5-sdk的依赖包。f5-sdk==3.0.21urllib3==1.25.7# 安装命令:pip install f5-sdk==3.0.21 urllib3==1.25.7二、有关官方的样例介绍f5-sdk网址在开发的时候,由于导入的依赖是sdk,意味着我们可以直接使用里面的代码来为自己服务。三、创建monitor、pool、vs# -*- coding: utf-8 -*-import jsonfrom common.log im
2020-08-22 09:51:01
2287

原创 python pyvmomi操作VMware(五):在克隆虚拟机的时候配置IP和vlan网段
克隆虚拟机的时候配置了IP、网关等信息,没有指定网络段,之前的思路是:克隆完虚拟机,再进行指定网络段,再进行关机、开机操作,正常情况下这样就能完成网络段的修改,并且网络也是通的。最近遇到一个问题:批量克隆的时候,很多都无法完成IP、网关的指定,但是网络段是配置正常的。有两种猜想:①我使用的pyvim依赖包版本太低升级版本之后,发现并没有起作用。②克隆虚拟机完成(存在这个机器,正在开机过程中),在开机过程中,指定了它的IP等信息,但是还没有等它指定完成,就进行了修改网络段操作,继而进行了关机操作,这
2020-07-25 09:35:06
2631
2

原创 Nexus创建仓库、上传文件、查看列表
Ⅰ.通过仓库名获取文件列表import requestsimport json# 文件列表 参数 仓库名称 返回code 200# 请求方式: GETurl = '192.168.1.111:8081'auth = ("admin", "admin123")res = requests.get( url='http://{0}/service/rest/v1/components'.format(url), params={"repository": "test"},
2020-06-24 17:09:41
2250

原创 python 将nmon文件解析成带图的excel
源文件:通过nmon命令生成的nmon数据文件。目标文件:使用python代码解析成带图的excel。
2020-05-11 11:45:32
1257

原创 从nmon安装到csv数据的读取
一、nmon获取到.nmon数据文件(环境centos6)1.安装nmon执行命令:wget https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz第二步:解压到一个指定的目录nmon16d_x86(先创建好)第三步:对nmon_x86_64_centos6文件加入执行权限,再把该程序文件加入环境变量运行目录...
2020-04-27 18:08:04
804

原创 Django admin后台数据导出excel
admin.py文件内容# -*- coding: utf-8 -*-# Author : heyang# @Time : 2019/7/18 14:20# @File : admin.pyimport xlwt as xlwtfrom django.contrib import adminfrom django.http import HttpResponsefrom mo...
2020-04-22 16:40:07
1197
2

原创 表结构变更部署失败案例及解决方案
现象:导入的数据及结构在升级版本时,结构发生变更,不识别django_migrations表数据(内容不匹配),从而导致部署时,migrate失败报错,部署失败。前提:数据结构变动不大,新版本的表字段只能多,不能少,字段类型能够适应老版本的数据。目标:数据要保留,数据不能发生变更,但是数据结构要用最新的数据结构。解决方案(思路):举个例子:项目内有个home_application内mi...
2020-03-04 20:21:50
841

原创 Django and Celery, AppRegistryNotReady: Apps aren't loaded yet.
django版本升级导致celery启动报错,主要原因:django升级后的版本和celery版本不兼容。我的案例:# 升级前django==1.8.11celery==3.1.18django-celery==3.2.1# 升级后django==1.11.24celery==3.1.25django-celery==3.2.2报错信息:[2019-12-20 14:44:...
2019-12-20 15:02:39
628

原创 python、Django、djangorestframework升级遇到的坑(一)
具体环境升级介绍python2.7升级到python3.6Django1.8.11升级到Django 3.0djangorestframework3.6.3升级到djangorestframework3.10.31.安装包python3不支持的安装包:sudspython3 需要多安装/替代的依赖包:anyjsonsuds-jurko其余自动安装默认最新的2.pytho...
2019-12-10 10:43:35
1443
1

原创 python F5创建pool和创建member(一)
一、环境依赖对f5进行操作,我们需要下载f5-sdk的依赖包。f5-sdk==3.0.21urllib3==1.25.7# 安装命令:pip install f5-sdk==3.0.21 urllib3==1.25.7二、有关官方的样例介绍f5-sdk网址在开发的时候,由于导入的依赖是sdk,意味着我们可以直接使用里面的代码来为自己服务。三、创建memberfrom f5....
2019-11-20 14:15:55
2564

原创 在Pypi上发布自己的Python包
在这里我自己写了一个样例:把计算从1加到n的和封成一个python包。账号准备工作:https://pypi.org/account/register/注意: 记得进行邮件验证,防止邮件不验证,发送包无法上传的情况。包内容准备工作:# -*- coding: utf-8 -*-def add_sum(a): ''' 计算从1+到a :param a: ...
2019-10-16 18:00:00
1125

原创 itsm项目导入流程失败案例
itsm项目现象:流程设计导出后,再把导出的文件进行导入时失败。产生原因:当删除的节点存在依赖关系时,其他有关数据节点并没有进行相应的变更,直接进行保存,导致依赖的节点中的“打回至”字段值异常,进一步导致导出的流程数据存在数据污染。案例:这里以“基础环境信息”和“分配IP地址”两个节点为样例,我将“基础环境信息”节点删除后,不对“分配IP地址”节点的“打回至”字段值进行修改,直接进行下一步...
2019-10-15 16:15:28
351

原创 xml格式数据转成json
如何将xml代码转成json格式的代码?在这里,我才用的是引入xmltodict依赖包,用xmltodict来解决这个问题。首先,安装xmltodict:pip install xmltodict==0.12.0其次,样例xml解析成json演示:# -*- coding: utf-8 -*-import xmltodictimport jsona = '''<Logon...
2019-10-11 15:41:37
1635

原创 gitlab使用CI/CD
第一步:找一台机器,如果没有curl命令,执行安装命令:sudo apt-get install curl第二步:在机器上安装gitlab的runner,执行命令:sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binarie...
2019-09-29 14:44:56
448

原创 ESB接口编写到部署(包括ESB通道文档代码)
内容一:ESB接口编写目录结构testxw包下:clone_vmware.py: ESB自定义接口编写文件toolkit文件夹:ESB的配置文件和公共方法的文件toolkit文件夹下:configs.py:配置文件tools.py:引用的依赖等公共方法注意:1.SYSTEM_NAME代表系统名,ESB包名称也就是ESB的系统名的小写形式。 2.HOST代表系统环境的域名地址,也...
2019-09-16 18:17:01
5477
1

原创 python pyvmomi操作VMware(三):获取数据中心下有多少集群、主机、目录(只获取数据中心当层数据)
获取数据中心下有多少集群、主机、目录(只获取数据中心当层数据,不进一步对集群、目录下的数据进行深层获取)# -*- coding: utf-8 -*-import tracebackfrom pyVim.connect import SmartConnectNoSSL, Disconnectfrom pyVmomi import vim, vmodlclass VmManage(ob.........
2019-09-10 17:16:38
3980
1

原创 HMC postman测试登录连接中的坑
HMC API 文档,请点击这里要对HMC进行登录获取到session,就需要用到HMC中的登录API接口:HMC登录接口需要什么?第一: PUT请求第二: content type 类型第三: type 类型(经过验证,可有可无)第四: XML登录输入(XML代码)postman测试HMC登录获取session:1.headers信息2.body信息开始发送PUT请求...
2019-09-09 15:57:02
333

原创 python pyvmomi操作VMware(二):获取数据中心、集群、宿主机、虚拟机的数据和对象的具体属性字段
首先使用pyVim连接vcenter获取到vcenter可操作对象:# -*- coding: utf-8 -*-from pyVim.connect import SmartConnectNoSSLclass VmManage(object): def __init__(self, host, user, password, port, ssl): self....
2019-09-09 15:00:01
10641
4

原创 python pyvmomi操作VMware(一):对vsphere登录后vcenter的理解
pyvmomi连接vsphere获取vcenter操作对象:# -*- coding: utf-8 -*-from pyVim.connect import SmartConnectNoSSLclass VmManage(object): def __init__(self, host, user, password, port, ssl): self.host...
2019-09-05 11:03:25
13102
8

原创 python pyvmomi操作VMware(四):克隆虚拟机并配置IP和更改vlan网段
准备环境安装包:pyVim==0.0.21 pyvmomi==6.7.1命令:pip install pyVim==0.0.21 pyvmomi==6.7.1代码# -*- coding: utf-8 -*-import tracebackfrom pyVim.connect import SmartConnectNoSSL, Disconnectfrom pyVmomi i...
2019-09-03 09:04:57
9921
58

原创 python pyecharts生成图表
使用pyecharts生成柱状图attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]chart = Bar("柱状图-数据堆叠", **style.init_style)chart.add("商家A", attr, v1, is_stack=True)chart.add("商家B", attr, v2, is_stack=True, is_more_utils=True)在这里主要是对属性的介绍字段用处title标题title_pos。...
2019-08-20 14:18:30
9849
4

原创 python pdfkit wkhtmltopdf生成pdf
pdfkit生成pdf文件的方式:① pdfkit.from_string() # 将字符串转成pdf文件,如果字符串是html代码,pdf也是识别的② pdfkit.from_file() # 将文件转成pdf文件③ pdfkit.from_url() # 将网址的整个内容转成pdf文件生成pdf代码样例: # info 代表文件路径 # e_file_path 代表生成的p......
2019-08-19 17:13:42
3236
1

原创 解决docker内wkhtmltopdf生成pdf的一系列问题
由于docker环境和主机环境隔离,想要在docker内用wkhtmltopdf生成pdf有两种解决方案。第一种:做映射。第二种:在docker内安装wkhtmltopdf,拿到wkhtmltopdf的路径,在代码里引用。在这里主要介绍第二种。第一步:获取当前项目docker的iddocker ps -a 获取所有docker的信息,自己匹配需要的第二步:将主机的wkhtm......
2019-08-19 16:19:14
6010

原创 pycharm打开.vue文件由于ESLint语法检查代码出现红色波浪线
在这里有两种解决方案:①设置不使用 ESLint 语法检查②通过ESLint中的fix eslint problems对.vue文件语法进行自动修复选中要修复的,vue文件,也可以选中整个文件夹进行修复(修复时间受修复的文件数量影响,如果文件数量比较大,不建议修复,可以设置ESLint不验证语法)。...
2019-06-05 18:05:17
5114
原创 django tastypie基本使用
1. Tastypie RESTful API请求处理的基本流程描述Tastypie 是一个基于Python在Django平台上用来创建RESTFul API 框架, 在创建RESTful API 方面提供了强大的功能, 同时在使用上可以很方便地利用Django 自身的Model作为数据源, 也可以很方便地使用非ORM数据源来提供API数据。除了提供基本的数据功能之外, Tastypie 还提供了 登录验证, 权限控制, 数据验证, 数据缓存, 请求控制, 数据分页, 数据序列与反序列化等功能选项, 来
2021-06-28 16:17:22
2223
原创 django 使用mongodb数据库 celery并发自增字段
通过MySQL数据库的id自增特性来完成task_id在并发时的唯一def init_index_func(): from apps.celery.models import TaskIndex if not TaskIndex.objects.filter(id=1): task_queryset = cc_ReportTask.objects.all() task_id_list = [int(i.task_id) for i in task_quer
2021-04-30 14:41:45
500
2
原创 django部署(Nginx)
1.python3基础环境安装tar xzvf Python-3.6.8.tgz cd Python-3.6.8 ./configure --prefix=/usr/local/python3 make && make install ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip32.python3安装虚
2021-03-23 16:53:12
387
原创 celery调度backend使用mongdb数据存储定时异步等信息
由于backends的引擎不含有mongodb,所以不能像mysql或者Oracle那样直接将celery的一些数据直接存入数据库。根据源码研究celery本身是支持mongodb存储定时异步等信息的,我查了django-celery的源码,是支持MySQL、Oracle等数据库的,但是不支持mongodb数据库,我的看法:可能与数据库的model设计差异有关,所以直接找有没有像django-celery一样的支持mongodb的依赖库。结果:Celery Beat Scheduler ,将任务表本身
2021-02-20 14:27:39
1305
1
原创 python 操作Oracle数据库
根据查询:python如果要操作Oracle数据库,需要依赖包来达到连接的Oracle的效果第一步:安装依赖pip install cx-Oracle==8.0.1第二步:进行连接import cx_Oracledef connection_oracle(connect_str, oracle_sql): """ Oracle连接执行sql并返回数据 :param connect_str: 连接字符串 :param oracle_sql: Oracle的sql
2021-01-22 14:21:32
746
原创 前端vue报错:ERROR in ./node_modules/css-loader!./node_modules/sass-loader/
前端vue在执行npm run dev的时候 报错:ERROR in ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/components/loading背景:在执行完npm install按照前端依赖环境后,安装依赖一切正常,没有报错。现象:在运行前端代码时,报错如下:根据查阅:报错的原因其实就是在进行依赖引入的时候,对应电脑的配置不同,导致的报错,只需要重新安装这个依赖就行。解决方案:执行命令
2021-01-22 14:04:31
15573
nmon analyser v46.xlsm
2020-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人