Python示例
http request:put
# 定义函数:refresh segement
# curl -X PUT -s --user "****:*****" -H 'Content-Type: application/json' -d '{"startTime":1515283200000, "endTime":1515369600000, "buildType":"REFRESH"}' "*****/kylin/api/cubes/*****/rebuild" || { log "ERROR" "$project" "Build cube failed"; exit 1;} def refreshOneSegment( kylinBaseUrl,cubeName,userName,pwd,startTimestamp,endTimestamp):
urlTemp=kylinBaseUrl+"/api/cubes/"+cubeName+"/rebuild"
dataTemp ={"startTime":startTimestamp, "endTime":endTimestamp, "buildType":"REFRESH"}
base64stringT = base64.encodestring('%s:%s' % (userName, pwd)).replace('\n', '')
requestTemp=urllib2.Request(urlTemp)
requestTemp.add_header("Authorization", "Basic %s" % base64stringT)
requestTemp.add_header("Content-Type", "application/json;charset=UTF-8")
requestTemp.add_data(json.dumps(dataTemp))
request2.get_method = lambda: 'PUT' # or 'DELETE'
response2 = urllib2.urlopen(request2)
data2 = response2.read()
return data2;
外部传参
import urllib
import urllib2
import json
import base64
import datetime
import time
import sys username="*****"
password="*****"
kylinbaseurl='*******'
startLimitDate=sys.argv[1]
endLimitDate=sys.argv[2]
cubeName=sys.argv[3]
外部调用
python Refresh_Kylin_Segments "2018-01-07" "2018-1-10" "******"
http request :get
# 定义函数:get segements
# curl -X GET --user "****:*****" -H 'Content-Type: application/json' "*****/kylin/api/cubes/*****"
def getSegmentsBetweenTimeRange(kylinBaseUrl,cubeName,userName,pwd):
urlTemp=kylinBaseUrl+"/api/cubes/"+cubeName
base64stringT = base64.encodestring('%s:%s' % (userName, pwd)).replace('\n', '')
requestTemp=urllib2.Request(urlTemp)
requestTemp.add_header("Authorization", "Basic %s" % base64stringT)
requestTemp.add_header("Content-Type", "application/json")
responseTemp = urllib2.urlopen(requestTemp)
dataTemp = responseTemp.read()
return dataTemp;
json data :
# 定义函数:get Segments Between Time Range
def getSegmentsBetweenTimeRange(jsonCubeData,minStartDate,maxEndDate):
listResult = [];
decodejsonT = json.loads(jsonCubeData)
segmentsT=decodejsonT['segments']
for i in range(0, len(segmentsT)):
startTimestampT=segmentsT[i]['date_range_start']
endTimestampT=segmentsT[i]['date_range_end']
startDateT=datetime.datetime.utcfromtimestamp(startTimestampT/1000)
endDateT=datetime.datetime.utcfromtimestamp(endTimestampT/1000)
if ( minStartDate < endDateT and minStartDate >= startDateT):
listResult.append({"startTimestamp":startTimestampT,"endTimestamp":endTimestampT});
elif( maxEndDate < endDateT and maxEndDate >= startDateT):
listResult.append({"startTimestamp":startTimestampT,"endTimestamp":endTimestampT});
return listResult;
list
# main process
def main(kylinBaseUrl,cubeName,userName,pwd,startTimestamp,endTimestamp):
listResult = [];
jsonCubeDataOne=getCubeInfo(kylinBaseUrl,cubeName,userName,pwd)
print jsonCubeDataOne
minStartDate=datetime.datetime.strptime(startLimitDate, "%Y-%m-%d")
maxEndDate=datetime.datetime.strptime(endLimitDate, "%Y-%m-%d")
needRefreshSegmentList=getSegmentsBetweenTimeRange(jsonCubeDataOne,minStartDate,maxEndDate)
print needRefreshSegmentList
for i in range(0, len(needRefreshSegmentList)):
startTimestampT=needRefreshSegmentList[i]['startTimestamp']
endTimestampT=needRefreshSegmentList[i]['endTimestamp']
oneResult=refreshOneSegment(kylinBaseUrl,cubeName,userName,pwd,startTimestampT,endTimestampT)
listResult.append(oneResult)
return listResult
Python示例的更多相关文章
- python 示例代码1
第一章 python基础一 在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...
- [原创]Zabbix3.4_API的python示例
说明: 1.python版本为:python2.7 2.zabbix版本为:zabbix3.4 3.通过python脚本调用zabbix的api接口可以实现批量增删改查主机的信息. 示例如下: #-* ...
- python 示例代码3
示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...
- 安装zeromq以及zeromq的python示例
下载ZeroMq: wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz 解压: ...
- C++调Python示例(转载)
C++调Python,代码粘贴如下: #include <iostream> #include <Python.h> using namespace std; void Hel ...
- Python示例项目学习
原文地址:http://www.360doc.com/showweb/0/0/874025604.aspx 「 Python3 实现火车票查询工具 」 相信很多人学Python都是冲着它强大的爬虫 ...
- python 示例代码5
示例5:用户输入和格式化输出2(用户输入demo1)
- python 示例代码4
示例:用户输入和格式化输出(用户输入demo1)
- python 示例代码2
示例2:变量赋值,打印拼接(var.py) 变量定义的规则: 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名 ['and', 'as', 'asse ...
随机推荐
- JVM调优总结 -Xms
转载自:http://unixboy.iteye.com/blog/174173/ 设置eclipse : -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPer ...
- 禁用HTTP.sys,导致80端口被禁用和IIS服务无法启动解决办法
由于端口被占用,使用 win+r 运行 cmd 输入netstat -ano 可以看到端口被PIF 4占用,可以找到对应的进程NT kernel& System 该进程是Http.sys,是h ...
- SQL 语法速记
----------------------------------DML(数据操作语言)---------------------------------- -- 一.INSERT VALUES语句 ...
- RN与android原生开发混合后的环境报错问题
RN与android原生开发混合后的环境报错问题 需要先安装nodejs$ yarn --version1.12.1更新当前版本yarn upgrade --latest安装 | Yarnhttps: ...
- Java学习路线教程之JDBC基本操作
为了帮助大家熟练应用JDBC编程,接下来,在本节将通过一个综合案例来讲解JDBC的基本操作,确保大家能够深刻理解JDBC的增.删.改.查,灵活利用JDBC完成对数据库的各项操作. 1. 创建一个Jav ...
- JOBDU 题目1131:合唱队形
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4546 解决:1445 题目描述: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形. ...
- mxnet设置动态学习率(learning rate)
https://blog.csdn.net/xiaotao_1/article/details/78874336 如果learning rate很大,算法会在局部最优点附近来回跳动,不会收敛: 如果l ...
- Sort aborted Error in MySQL Error Log
现象 [ERROR] lines containing "Sort aborted" are present in the MySQL error log file. [Warni ...
- 细数php里的那些“坑”
Part 1 Grammer 尽管PHP的语法已经很松散,写起来很“爽”.但是对于学过 Java 的“完全面向对象程序员“来说,PHP程序设计语言里,还是有一些的坑的.下面请让我来盘点一下. Pars ...
- linux command line send email
https://www.tecmint.com/send-email-attachment-from-linux-commandline/ https://stackoverflow.com/ques ...