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 ...
随机推荐
- Hive中如何快速的复制一张分区表(包括数据)
Hive中有时候会遇到复制表的需求,复制表指的是复制表结构和数据. 如果是针对非分区表,那很简单,可以使用CREATE TABLE new_table AS SELECT * FROM old_tab ...
- flask请求钩子、HTTP响应、响应报文、重定向、手动返回错误码、修改MIME类型、jsonify()方法
请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数.这些请求钩子使用装饰器实现,通过程序实例app调用,以 b ...
- php获得可靠的精准的当前时间 ( 通过授时服务器 )
有一种情形是这样子的,比如机票业务中的订票流程,我们需要一个非常可靠的当前时间来支持,尽管大多数服务器的时间是非常准确的,我们使用time()来获取的时间是可靠的,但未免会有不确切的情况,也有的服务器 ...
- Autel Maxisys MS908CV Description
The new Autel MaxiSys CV Heavy Duty Diagnostic is built on the powerful MaxiSys 908 platform and pro ...
- scala 操作hdfs
获取hdfs文件下所有文件getAllFiles 遍历 spark读取 1 package com.spark.demo import java.io.IOException import java. ...
- Jquery 插件 图片验证码
摘自:https://www.cnblogs.com/lusufei/p/7746465.html !(function(window, document) { var size = 5;//设置验证 ...
- Eclipse Luna在线安装Maven时报错:Java heap space
问题描述: 在线安装Maven插件时发生了:Java heap space 问题截图:
- Failed to load ApplicationContext
java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.conte ...
- php 把秒数转换为时长(h:i:s格式)
/** * 把秒数转换为时分秒的格式 * @param Int $times 时间,单位 秒 * @return String */ function secToTime($times){ $resu ...
- glibc 2.x release note
glibc 2.x release note,参见: https://sourceware.org/glibc/wiki/Glibc%20Timeline https://www.gnu.org/so ...