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. cocos v3.10 下载地址

    官方给出的是在:http://www.cocos2d-x.org/filedown/CocosForWin-v3.10.exe如果下载不了,可以在这里下http://cdn.cocos2d-x.org ...

  2. 1.python虚拟环境的安装-用以同时使用py2,py3

    第一步:安装环境支持[linux下在前加sudo] http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl pip install virtualenv 第 ...

  3. ETL面试题集锦

    1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL项目组的作用是什么? 答 ...

  4. 20165215 预备作业3 Linux安装及学习

    Linux安装 根据老师的链接,我VirtualBox下载的是5.2.6的版本,下载Ubuntu时使用老师的链接总是出现404 Not found的页面,于是我采用其它方式下载了16.04.3的版本 ...

  5. Linux基础命令---调整程序优先级renice

    renice renice指令可以重新调整程序运行的优先级,可以通过进程id.用户id.组id来修改优先级.修改组的等级,影响组内所有用户的所有进程优先级:修改用户等级,影响该用户的所有进程优先级.除 ...

  6. 底层代码创建GUI

    %底层代码创建GUI hf = figure(... 'Units','Normalized',... 'Color','w',... 'Position',[0.1 0.1 0.8 0.8]); h ...

  7. 利用webpack手动构建vue工程

    一 创建一个文件夹,在文件夹中打开命令行执行:$npm install 创建一个package文件 ,可以先忽略作者等信息: 二 安装webpack依赖包(根据需要安装)     //全局安装     ...

  8. mysql 5.7多源复制(用于生产库多主库合并到一个查询从库)

    目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下. 这就涉及到多个主库数据 ...

  9. 批处理no.bat

    在公司每次我启动电脑, 网络连接需要一段时间, 而我想在这段小时间里面, 一旦网络连接成功就帮我启动微信和qq, 如果还没有连接成功就继续监测直到有网络了才会成功才会打开两个程序, 当打开程序后脚本自 ...

  10. oracle12c的日志查看

    查看GI日志:切换到grid用户 查看DB日志:切换到oracle的目录下 执行[oracle@swnode1 ~]$ adrci [oracle@swnode1 ~]$ adrci ADRCI: R ...