Skip to content

Instantly share code, notes, and snippets.

@wyukawa
Created September 11, 2014 07:52
Show Gist options
  • Select an option

  • Save wyukawa/248745b088fa3b60a26e to your computer and use it in GitHub Desktop.

Select an option

Save wyukawa/248745b088fa3b60a26e to your computer and use it in GitHub Desktop.
import sys
import requests
import os.path
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-u", "--url", dest="url", help="azkaban url")
parser.add_option("-s", "--username", dest="username", help="azkaban username")
parser.add_option("-p", "--password", dest="password", help="azkaban password")
parser.add_option("-r", "--project", dest="project", help="azkaban project")
parser.add_option("-f", "--file", dest="file", help="azkaban job zip file", metavar="FILE")
(options, args) = parser.parse_args()
url = options.url
username = options.username
password = options.password
project = options.project
zip = options.file
params = {"action":"login"}
params["username"] = username
params["password"] = password
print "login..."
r = requests.post(url, params=params)
jc = r.json()
if jc.get("status") is None:
print "login failed"
print "error=%s" % (jc["error"])
exit(1)
print "login successful"
session_id = jc["session.id"]
print "sessind.id=%s" % (session_id)
print "upload jobs..."
data = {"ajax":"upload"}
data["session.id"] = session_id
data["project"] = project
files = {'file': (os.path.basename(zip), open(zip), 'application/zip')}
r = requests.post(url + "/manager", data=data, files=files)
jc = r.json()
print "projectId=%s" % (jc.get("projectId"))
print "version=%s" % (jc.get("version"))
if jc.get("error") is None:
print "upload successful"
else:
print "upload failed"
print "error=%s" % (jc.get("error"))
exit(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment