|
5 | 5 | import time |
6 | 6 | import os.path |
7 | 7 | from collections import Counter |
| 8 | +from datetime import datetime |
| 9 | + |
| 10 | +secretsVersion = raw_input('To edit production server, enter the name of the secrets file: ') |
| 11 | +if secretsVersion != '': |
| 12 | + try: |
| 13 | + secrets = __import__(secretsVersion) |
| 14 | + print 'Editing Production' |
| 15 | + except ImportError: |
| 16 | + print 'Editing Stage' |
8 | 17 |
|
9 | 18 | baseURL = secrets.baseURL |
10 | 19 | email = secrets.email |
11 | 20 | password = secrets.password |
12 | 21 | filePath = secrets.filePath |
| 22 | +verify = secrets.verify |
| 23 | + |
| 24 | +requests.packages.urllib3.disable_warnings() |
13 | 25 |
|
14 | | -filePathComplete = filePath+'completeValueLists/' |
15 | | -filePathUnique = filePath+'uniqueValueLists/' |
| 26 | +filePathComplete = filePath+'completeValueLists'+datetime.now().strftime('%Y-%m-%d %H.%M.%S')+'/' |
| 27 | +filePathUnique = filePath+'uniqueValueLists'+datetime.now().strftime('%Y-%m-%d %H.%M.%S')+'/' |
16 | 28 |
|
17 | 29 | startTime = time.time() |
18 | 30 | data = json.dumps({'email':email,'password':password}) |
19 | 31 | header = {'content-type':'application/json','accept':'application/json'} |
20 | | -session = requests.post(baseURL+'/rest/login', headers=header, data=data).content |
| 32 | +session = requests.post(baseURL+'/rest/login', headers=header, verify=verify, data=data).content |
21 | 33 | headerAuth = {'content-type':'application/json','accept':'application/json', 'rest-dspace-token':session} |
22 | 34 | print 'authenticated' |
23 | 35 |
|
24 | 36 | itemList = [] |
25 | 37 | endpoint = baseURL+'/rest/communities' |
26 | | -communities = requests.get(endpoint, headers=headerAuth).json() |
| 38 | +communities = requests.get(endpoint, headers=headerAuth, verify=verify).json() |
27 | 39 | for i in range (0, len (communities)): |
28 | 40 | communityID = communities[i]['id'] |
29 | | - collections = requests.get(baseURL+'/rest/communities/'+str(communityID)+'/collections', headers=headerAuth).json() |
| 41 | + collections = requests.get(baseURL+'/rest/communities/'+str(communityID)+'/collections', headers=headerAuth, verify=verify).json() |
30 | 42 | for j in range (0, len (collections)): |
31 | 43 | collectionID = collections[j]['id'] |
32 | 44 | if collectionID != 24: |
33 | 45 | offset = 0 |
34 | 46 | items = '' |
35 | 47 | while items != []: |
36 | | - items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=1000&offset='+str(offset), headers=headerAuth) |
| 48 | + items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=1000&offset='+str(offset), headers=headerAuth, verify=verify) |
37 | 49 | while items.status_code != 200: |
38 | 50 | time.sleep(5) |
39 | | - items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=1000&offset='+str(offset), headers=headerAuth) |
| 51 | + items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=1000&offset='+str(offset), headers=headerAuth, verify=verify) |
40 | 52 | items = items.json() |
41 | 53 | for k in range (0, len (items)): |
42 | 54 | itemID = items[k]['id'] |
|
47 | 59 | h, m = divmod(m, 60) |
48 | 60 | print 'Item list creation time: ','%d:%02d:%02d' % (h, m, s) |
49 | 61 |
|
| 62 | +os.mkdir(filePathComplete) |
| 63 | +os.mkdir(filePathUnique) |
50 | 64 | for number, itemID in enumerate(itemList): |
51 | 65 | itemsRemaining = len(itemList) - number |
52 | 66 | print 'Items remaining: ', itemsRemaining, 'ItemID: ', itemID |
53 | | - metadata = requests.get(baseURL+'/rest/items/'+str(itemID)+'/metadata', headers=headerAuth).json() |
| 67 | + metadata = requests.get(baseURL+'/rest/items/'+str(itemID)+'/metadata', headers=headerAuth, verify=verify).json() |
54 | 68 | for l in range (0, len (metadata)): |
55 | 69 | if metadata[l]['key'] != 'dc.description.provenance': |
56 | 70 | key = metadata[l]['key'] |
|
79 | 93 | for key, value in valueListCount.items(): |
80 | 94 | f.writerow([key]+[str(value).zfill(6)]) |
81 | 95 |
|
82 | | -logout = requests.post(baseURL+'/rest/logout', headers=headerAuth) |
| 96 | +logout = requests.post(baseURL+'/rest/logout', headers=headerAuth, verify=verify) |
83 | 97 |
|
84 | 98 | elapsedTime = time.time() - startTime |
85 | 99 | m, s = divmod(elapsedTime, 60) |
|
0 commit comments