diff options
Diffstat (limited to 'docs/scripts/update_publications.py')
-rw-r--r-- | docs/scripts/update_publications.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/docs/scripts/update_publications.py b/docs/scripts/update_publications.py new file mode 100644 index 00000000..20aa3458 --- /dev/null +++ b/docs/scripts/update_publications.py @@ -0,0 +1,74 @@ +import requests, json +from requests.auth import HTTPBasicAuth +import os.path as path +import time + +def list_pubs(manual): + pub_params={} + user = "to_complete@mageia.org" + pw = "to_complete" + site = "http://mageia.calenco.com:8284/workspaces/" + ws = "Mga7" + #storsrv = "storageservers/STOR0504658793a605a18f558fcea37f7931" + storsrv = "storageservers/Default" + headers = {'content-type': 'application/json'} + if manual != '': + pub_params['file'] = manual + pub_params['input']= '/workspaces/%s/publications'.format(ws) + print("Wait to get the list of publications...\n") + resp = requests.get(site+ws+'/publications', + auth=HTTPBasicAuth(user, pw), + data=json.dumps(pub_params)) + if int(resp.status_code) != 200: + # This means something went wrong. + print('GET /workspaces/ {}'.format(resp.status_code)) + exit() + print("Writing liste.csv") + with open("listeMga7.csv",'w') as f: + f.write("Name\thref\tInput\tOutput\tupdated\tStatus\tAutomatic\n") + for item in resp.json(): + print(item) + if item['output']['method'] in ('FTP','SFTP'): + serv=item['output']['storsrv'] + f.write("{name}\t{href}\t{input}\t{output}\t{updated}\t{status}\t{automatic}\t{server}\t{path}\n".format(name=item["name"],href=item["href"],updated=item["updated"], + output=item['output']['name'],status=item["status"],automatic=item["automatic"], input=item['input']['href'], server = serv, path=item['output']['path'])) + else: + serv='' + exit() + # Set a new storage server + for item in resp.json(): + # Point to prestored server + if item['output']['method'] in ('FTP','SFTP'): + print('{site}{ws}/publications/{name}'.format(site=site, ws=ws,name=item['name'])) + print(item['output']['path'], item['output']['storsrv']) + item['output']['rs-path']=item['output']['path'] + if not item['output']['zip'] : + item['output']['rs-multifile']='multifile' + item['output']['storsrv']= '/workspaces/{ws}/strorageservers/{storsrv}'.format (ws=ws, storsrv=storsrv) + resp2 = requests.put('{site}{ws}/publications/{name}'.format(site=site, ws=ws,name=item['name']), + auth=HTTPBasicAuth(user, pw), + data=json.dumps(item), + headers=headers) + if int(resp2.status_code) != 200: + # This means something went wrong. + print('PUT /workspaces/ {}: {}'.format(resp2.status_code, resp2.text)) + time.sleep(15) + exit() + # renew each publication + for item in resp.json(): + if item['name'].find('WebHelp') != -1: + pub_params = {} + pub_params['name']= item['name'] + print(item['name'], pub_params) + resp2 = requests.post('{site}{ws}/pubsqueue'.format(site=site, ws=ws), + auth=HTTPBasicAuth(user, pw), + data=json.dumps(pub_params), + headers=headers) + if int(resp2.status_code) != 202: + # This means something went wrong. + print('GET /workspaces/ {}'.format(resp2.status_code)) + exit() + # Add delay of 30 seconds between each publication + time.sleep(30) + +list_pubs('') |