Skip to content

Commit bde5bcb

Browse files
committed
Removing arbitrary 5 second wait on server.
1 parent 8ea9a9b commit bde5bcb

File tree

3 files changed

+36
-54
lines changed

3 files changed

+36
-54
lines changed

INSTALL.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ o Trigger metadata update for previously uploaded dataset "mydata":
103103
./wmgr-client --url http://localhost:9001 --operation --sendEvent --eventName labcas-update --metaData --key Dataset mydata
104104

105105
Each metadata field contained in the file "DatasetMetadata.xml" will be updated, completely replacing all previous values for that field.
106-
To insert multiple values for the same field, simply specify multiple "<keyval>" elements. To completely remove all values for a field,
107-
leave the "<val>" empty.
106+
To insert multiple values for the same field, simply specify multiple "<val>" elements within a "<keyval>" element.
107+
To completely remove all values for a field, leave the "<val>" empty.
108108

109109
Example of DatasetMetadata.xml:
110110

@@ -117,9 +117,6 @@ Example of DatasetMetadata.xml:
117117
<keyval type="vector">
118118
<key>Institution</key>
119119
<val>Darthmouth</val>
120-
</keyval>
121-
<keyval type="vector">
122-
<key>Institution</key>
123120
<val>Children Hospital</val>
124121
</keyval>
125122
</cas:metadata>

common/src/main/java/gov/nasa/jpl/edrn/labcas/utils/FileManagerUtils.java

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,22 @@ public static void reload() throws Exception {
206206

207207
XmlRpcFileManagerClient client = new XmlRpcFileManagerClient(new URL(FILEMANAGER_URL));
208208

209+
LOG.info("Reloading the File Manager...");
209210
boolean status = client.refreshConfigAndPolicy();
210211

211-
// FIXME: sleep 5 seconds
212-
Thread.sleep(5000);
212+
// wait for the File Manager to come back online
213+
boolean isAlive = false;
214+
while (!isAlive) {
215+
try {
216+
isAlive = client.isAlive();
217+
} catch(Exception e) {
218+
LOG.warning(e.getMessage());
219+
LOG.info("Waiting for File Manager to reload...");
220+
Thread.sleep(1000); // wait 1 second
221+
}
222+
}
213223

214-
LOG.info("File Manager reoloaded, status="+status);
224+
LOG.info("File Manager reoloaded - status="+status);
215225

216226
}
217227

@@ -475,19 +485,21 @@ public static final void makeProductTypesXmlFile(File filepath, String productTy
475485
Element metadataElement = xmlDocument.createElement("metadata");
476486
typeElement.appendChild(metadataElement);
477487

478-
// loop over all metadata keys, values
488+
// loop over all metadata keys
479489
for (String key : metadata.getAllKeys()) {
490+
491+
// <keyval>
492+
Element keyvalElement = xmlDocument.createElement("keyval");
493+
metadataElement.appendChild(keyvalElement);
494+
495+
// <key>Dataset</key>
496+
Element keyElement = xmlDocument.createElement("key");
497+
keyElement.insertBefore(xmlDocument.createTextNode(key), keyElement.getLastChild());
498+
keyvalElement.appendChild(keyElement);
499+
500+
// loop over all values for that key
480501
for (String val : metadata.getAllMetadata(key)) {
481502

482-
// <keyval>
483-
Element keyvalElement = xmlDocument.createElement("keyval");
484-
metadataElement.appendChild(keyvalElement);
485-
486-
// <key>Dataset</key>
487-
Element keyElement = xmlDocument.createElement("key");
488-
keyElement.insertBefore(xmlDocument.createTextNode(key), keyElement.getLastChild());
489-
keyvalElement.appendChild(keyElement);
490-
491503
// <val>[Dataset]</val>
492504
Element valElement = xmlDocument.createElement("val");
493505
valElement.insertBefore(xmlDocument.createTextNode(val), valElement.getLastChild());
Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
11
#!/usr/bin/python
2-
# Example Python script for interacting with an OODT FileManager through its XML/RPC interface
3-
# Supported server methods are defined in file org.apache.oodt.cas.filemgr.system.XmlRpcFileManager:
4-
# o public Vector<Hashtable<String, Object>> getProductTypes()
5-
# o public String addProductType(Hashtable<String, Object> productTypeHash()
2+
# Example Python script for querying the OODT File Manager through its XML/RPC interface.
63

74
import xmlrpclib
8-
import time
9-
10-
def listProductTypes(server):
11-
12-
# list all supported product types
13-
print 'Listing product types in File Manager'
14-
productTypes = server.filemgr.getProductTypes()
15-
for ptMap in productTypes:
16-
print 'PRODUCT TYPE:'
17-
for key, value in ptMap.items():
18-
print '%s = %s' % (key, value)
195

6+
def printProductType(productTypeDict):
7+
print 'PRODUCT TYPE: %s' % productTypeDict['name']
8+
for key, value in productTypeDict.items():
9+
print '\t%s = %s' % (key, value)
2010

2111
if __name__ == '__main__':
2212

@@ -25,25 +15,8 @@ def listProductTypes(server):
2515
verbose=False
2616
server = xmlrpclib.ServerProxy('http://localhost:9000/', verbose=verbose)
2717

28-
listProductTypes(server)
18+
print "Server is alive: %s" % server.filemgr.isAlive()
2919

30-
# add new product type
31-
# will override if existing already
32-
'''
33-
ptHash = { 'id':"XYZ",
34-
'name': 'XYZ_Product_Type',
35-
'description': 'XYZ product type',
36-
'repositoryPath' : 'file:///usr/local/labcas_archive/labcas-upload',
37-
'versionerClass':"gov.nasa.jpl.edrn.labcas.versioning.LabcasProductVersioner",
38-
"typeExtractors": [{'className': 'org.apache.oodt.cas.filemgr.metadata.extractors.CoreMetExtractor',
39-
'config': {'elementNs': 'CAS', 'elements': 'ProductReceivedTime,ProductName,ProductId,ProductType', 'nsAware': 'true'}},
40-
{'className': 'org.apache.oodt.cas.filemgr.metadata.extractors.examples.MimeTypeExtractor',
41-
'config': {}}],
42-
"typeMetadata": {'Version': ['[Version]'], 'Dataset': ['[Dataset]']} }
43-
44-
ptName = server.filemgr.addProductType(ptHash)
45-
print 'Added product type: %s' % ptName
46-
47-
listProductTypes(server)
48-
'''
49-
20+
productTypes = server.filemgr.getProductTypes()
21+
for productTypeDict in productTypes:
22+
printProductType(productTypeDict)

0 commit comments

Comments
 (0)