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示例的更多相关文章

  1. python 示例代码1

    第一章 python基础一 ​在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...

  2. [原创]Zabbix3.4_API的python示例

    说明: 1.python版本为:python2.7 2.zabbix版本为:zabbix3.4 3.通过python脚本调用zabbix的api接口可以实现批量增删改查主机的信息. 示例如下: #-* ...

  3. python 示例代码3

    示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...

  4. 安装zeromq以及zeromq的python示例

    下载ZeroMq: wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz 解压: ...

  5. C++调Python示例(转载)

    C++调Python,代码粘贴如下: #include <iostream> #include <Python.h> using namespace std; void Hel ...

  6. Python示例项目学习

    原文地址:http://www.360doc.com/showweb/0/0/874025604.aspx 「 Python3 实现火车票查询工具 」   相信很多人学Python都是冲着它强大的爬虫 ...

  7. python 示例代码5

    示例5:用户输入和格式化输出2(用户输入demo1)

  8. python 示例代码4

    示例:用户输入和格式化输出(用户输入demo1)

  9. python 示例代码2

    示例2:变量赋值,打印拼接(var.py) 变量定义的规则: 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名 ['and', 'as', 'asse ...

随机推荐

  1. 大数据权限管理工具 Apache Ranger 初识

    资料参考: Apache Ranger – Introduction http://ranger.apache.org/ 阿里云 Ranger简介 Apache Ranger初识 - 阿里云 大数据权 ...

  2. linux常用命令:more 命令

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

  3. 关于js闭包之小问题大错误

    闭包是 JavaScript 开发的一个关键方面:匿名函数可以访问父级作用域的变量. 如果闭包的作用域中保存着一个 HTML 元素,则该元素无法被销毁.(下面代码来自高程) 刚看到一个关于闭包自己没注 ...

  4. Numpy 矩阵

    矩阵定义在NumPy中,矩阵是ndarray的子类,可以由专用的字符串格式来创建 1. 创建矩阵mat函数创建矩阵(mat函数创建矩阵时,若输入已为matrix或ndarray对象,则不会为它们创建副 ...

  5. Java 多线程并发编程面试笔录一览

    知识体系图: 1.线程是什么? 线程是进程中独立运行的子任务. 2.创建线程的方式 方式一:将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法 方式二:声明实现 Runn ...

  6. OLED屏幕那些次像素有趣的排列方式

    http://www.dzsc.com/data/2016-6-2/109856.html 我们今天的重点内容为倒数第二列内容的上半部分,也就是RGB排列和Pentile排列.在介绍OLED屏幕时候我 ...

  7. mysql备份与还原-mysqldump备份、mysql与source还原

    以下都以在linux操作系统上的mysql为例 mysqldump备份 mysqldump实际就是将数据库中的数据转化为建库.建表和插入记录的sql语句 1.备份一个数据库 [或其中几个表],不指定表 ...

  8. centos6二进制安装mysql5.5

    centos 6.5,安装mysql 5.5.60 所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz.ncurses-devel-5.7-4.200902 ...

  9. P2044 [NOI2012]随机数生成器

    洛咕原题 正常的矩乘题. 但是,计算过程中会爆long long. 所以,我们要用快速(龟速)乘来解决. 快速乘,也就是把快速幂稍作修改.乘法被分成若干个加法,以时间为代价解决精度问题. #inclu ...

  10. jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解

    jackson/fastjson序列化/反序列化: 默认情况下,jackson/fastjson将java Date/Timestamp类型序列化为时间戳,也就是1970年1月1日0点以来的毫秒数.如 ...