Skip to content

Commit 7ce8ea7

Browse files
author
pchronz
committed
Merge branch 'feature/component_timereport' into 'master'
Feature/component timereport See merge request scotty/scotty.py!29
2 parents 08b8154 + 85cf979 commit 7ce8ea7

File tree

8 files changed

+24
-2
lines changed

8 files changed

+24
-2
lines changed

samples/components/experiment/parallel_workload/experiment.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ description: |
88
- workloads"
99
tags:
1010
- sample
11+
resultstores:
12+
- name: demo_resultstore
13+
generator: file:resultstore/demo
1114
resources:
1215
- name: demo_resource
1316
generator: file:resource/demo
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../resultstore

samples/components/experiment/single_workload/experiment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ workloads:
2525
params:
2626
greeting: 'Hallo(1)'
2727
sleep: 1
28-
iteration: 2
28+
iterations: 2

samples/components/resultstore/demo/resultstore.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,12 @@
66

77
def submit(context):
88
resultstore = context.v1.resultstore
9+
experiment_helper = utils.ExperimentHelper(context)
10+
workloads = experiment_helper.get_workloads()
11+
experiment_starttime = experiment_helper.get_experiment_starttime()
912
logger.info('Hey there,')
1013
logger.info('I\'m resultstore {}'.format(resultstore.name))
14+
logger.info('Experiment starttime: {}'.format(experiment_starttime))
15+
for workload in workloads.itervalues():
16+
logger.info('Workload {} starttime: {}'.format(workload.name, workload.starttime))
17+

scotty/core/components.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@ class Component(object):
2828
def __init__(self):
2929
self.config = None
3030
self.workspace = None
31+
self.starttime = None
32+
self.endtime = None
3133
self._setaccess('config')
3234
self._setaccess('name')
35+
self._setaccess('starttime')
36+
self._setaccess('endtime')
3337

3438
def _setaccess(self, parameter):
3539
ContextAccessible(self.__class__.__name__).setaccess(parameter)

scotty/core/executor.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
from datetime import datetime
23

34
from concurrent.futures import ThreadPoolExecutor, as_completed
45
from concurrent.futures import wait as futures_wait
@@ -42,7 +43,9 @@ def _get_function(self, component, interface_):
4243
def _exec_function(self, component, function_, context):
4344
try:
4445
component.state = CommonComponentState.ACTIVE
46+
component.starttime = datetime.now()
4547
result = function_(context)
48+
component.endtime = datetime.now()
4649
component.state = CommonComponentState.COMPLETED
4750
return result
4851
except:

scotty/utils.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ def get_resource(self, resource_name):
3333
def get_workloads(self):
3434
workloads = self.__experiment.components['workload']
3535
return workloads
36+
37+
def get_experiment_starttime(self):
38+
return self.__experiment.starttime

scotty/workflows/experiment.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import logging
2-
2+
from datetime import datetime
33
import shutil
44

55
from scotty.workflows.base import Workflow
@@ -26,6 +26,7 @@ def _prepare(self):
2626
def _prepare_experiment(self):
2727
logger.info('Prepare experiment')
2828
self.experiment = ExperimentFactory.build(self._options)
29+
self.experiment.starttime = datetime.now()
2930

3031
def _prepare_resources(self):
3132
logger.info('Prepare resources')

0 commit comments

Comments
 (0)