Skip to content
Snippets Groups Projects
Commit 60f9572e authored by Barbara B. Frosik's avatar Barbara B. Frosik
Browse files

modified storage service python code to include start/end dates when adding experiment

parent 0402f850
No related branches found
No related tags found
No related merge requests found
...@@ -221,3 +221,4 @@ $PG_CONTROL_SCRIPT restart ...@@ -221,3 +221,4 @@ $PG_CONTROL_SCRIPT restart
echo "Database $DM_DB_NAME created successfully" echo "Database $DM_DB_NAME created successfully"
echo echo
...@@ -61,7 +61,7 @@ class ExperimentRestApi(DsRestApi): ...@@ -61,7 +61,7 @@ class ExperimentRestApi(DsRestApi):
return Experiment(responseDict) return Experiment(responseDict)
@DsRestApi.execute @DsRestApi.execute
def addExperiment(self, name, experimentTypeId, description): def addExperiment(self, name, experimentTypeId, description, startDate, endDate):
url = '%s/experiments' % (self.getContextRoot()) url = '%s/experiments' % (self.getContextRoot())
if name is None or not len(name): if name is None or not len(name):
raise InvalidRequest('Experiment name must be provided.') raise InvalidRequest('Experiment name must be provided.')
...@@ -71,6 +71,10 @@ class ExperimentRestApi(DsRestApi): ...@@ -71,6 +71,10 @@ class ExperimentRestApi(DsRestApi):
url += '&experimentTypeId=%s' % experimentTypeId url += '&experimentTypeId=%s' % experimentTypeId
if description is not None: if description is not None:
url += '&description=%s' % Encoder.encode(description) url += '&description=%s' % Encoder.encode(description)
if startDate is not None:
url += '&startDate=%s' % Encoder.encode(startDate)
if endDate is not None:
url += '&endDate=%s' % Encoder.encode(endDate)
responseDict = self.sendSessionRequest(url=url, method='POST') responseDict = self.sendSessionRequest(url=url, method='POST')
return Experiment(responseDict) return Experiment(responseDict)
......
...@@ -10,6 +10,8 @@ class AddExperimentCli(DsWebServiceSessionCli): ...@@ -10,6 +10,8 @@ class AddExperimentCli(DsWebServiceSessionCli):
self.addOption('', '--name', dest='name', help='Experiment name.') self.addOption('', '--name', dest='name', help='Experiment name.')
self.addOption('', '--type-id', dest='typeId', help='Experiment type id.') self.addOption('', '--type-id', dest='typeId', help='Experiment type id.')
self.addOption('', '--description', dest='description', help='Experiment description.') self.addOption('', '--description', dest='description', help='Experiment description.')
self.addOption('', '--startDate', dest='startDate', help='Experiment start date in format (15-AUG-15).')
self.addOption('', '--endDate', dest='endDate', help='Experiment end date in format (15-AUG-15).')
def checkArgs(self): def checkArgs(self):
if self.options.name is None: if self.options.name is None:
...@@ -27,17 +29,23 @@ class AddExperimentCli(DsWebServiceSessionCli): ...@@ -27,17 +29,23 @@ class AddExperimentCli(DsWebServiceSessionCli):
def getDescription(self): def getDescription(self):
return self.options.description return self.options.description
def getStartDate(self):
return self.options.startDate
def getEndDate(self):
return self.options.endDate
def runCommand(self): def runCommand(self):
self.parseArgs(usage=""" self.parseArgs(usage="""
dm-add-experiment --name=NAME --type-id=TYPEID dm-add-experiment --name=NAME --type-id=TYPEID
[--description=DESCRIPTION] [--description=DESCRIPTION] [--startDate=STARTDATE] [--endDate=ENDDATE]
Description: Description:
Add new experiment to the DM database. Add new experiment to the DM database.
""") """)
self.checkArgs() self.checkArgs()
api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol()) api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
experiment = api.addExperiment(self.getName(), self.getTypeId(), self.getDescription()) experiment = api.addExperiment(self.getName(), self.getTypeId(), self.getDescription(), self.getStartDate(), self.getEndDate())
print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat()) print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat())
####################################################################### #######################################################################
......
...@@ -57,7 +57,13 @@ class ExperimentSessionController(DmSessionController): ...@@ -57,7 +57,13 @@ class ExperimentSessionController(DmSessionController):
description = kwargs.get('description') description = kwargs.get('description')
if description is not None: if description is not None:
description = Encoder.decode(description) description = Encoder.decode(description)
response = self.experimentSessionControllerImpl.addExperiment(name, experimentTypeId, description).getFullJsonRep() startDate = kwargs.get('startDate')
if startDate is not None:
startDate = Encoder.decode(startDate)
endDate = kwargs.get('endDate')
if endDate is not None:
endDate = Encoder.decode(endDate)
response = self.experimentSessionControllerImpl.addExperiment(name, experimentTypeId, description, startDate, endDate).getFullJsonRep()
self.logger.debug('Returning: %s' % response) self.logger.debug('Returning: %s' % response)
return response return response
......
...@@ -37,22 +37,22 @@ class ExperimentSessionControllerImpl(DmObjectManager): ...@@ -37,22 +37,22 @@ class ExperimentSessionControllerImpl(DmObjectManager):
ExperimentManager.getInstance().updateExperimentWithStorageDataDirectory(experiment) ExperimentManager.getInstance().updateExperimentWithStorageDataDirectory(experiment)
return experiment return experiment
def addExperiment(self, name, experimentTypeId, description): def addExperiment(self, name, experimentTypeId, description, startDate, endDate):
experiment = self.experimentDbApi.addExperiment(name, experimentTypeId, description) experiment = self.experimentDbApi.addExperiment(name, experimentTypeId, description, startDate, endDate)
return experiment return experiment
def startExperiment(self, name): def startExperiment(self, name):
experiment = self.experimentDbApi.getExperimentWithUsers(name) experiment = self.experimentDbApi.getExperimentWithUsers(name)
if experiment.get('startDate') is None: #if experiment.get('startDate') is None:
experiment2 = self.experimentDbApi.setExperimentStartDateToNow(name) # experiment2 = self.experimentDbApi.setExperimentStartDateToNow(name)
experiment['startDate'] = experiment2['startDate'] # experiment['startDate'] = experiment2['startDate']
ExperimentManager.getInstance().createExperimentDataDirectory(experiment) ExperimentManager.getInstance().createExperimentDataDirectory(experiment)
return experiment return experiment
def stopExperiment(self, name): def stopExperiment(self, name):
experiment = self.experimentDbApi.getExperimentByName(name) experiment = self.experimentDbApi.getExperimentByName(name)
if experiment.get('endDate') is None: #if experiment.get('endDate') is None:
experiment = self.experimentDbApi.setExperimentEndDateToNow(name) # experiment = self.experimentDbApi.setExperimentEndDateToNow(name)
ExperimentManager.getInstance().updateExperimentWithStorageDataDirectory(experiment) ExperimentManager.getInstance().updateExperimentWithStorageDataDirectory(experiment)
return experiment return experiment
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment