diff --git a/beat/web/backend/management/commands/qsetup.py b/beat/web/backend/management/commands/qsetup.py index 837d93ce7ce3d618576b7fcfd0bf99f11f4255a8..48c4d3d474f7a31bf1303f0648ac8275490eb972 100755 --- a/beat/web/backend/management/commands/qsetup.py +++ b/beat/web/backend/management/commands/qsetup.py @@ -42,7 +42,7 @@ import socket CORES = psutil.cpu_count() RAM = psutil.virtual_memory().total/(1024*1024) -ENVIRONMENT = {'name': 'environment', 'version': '1'} +ENVIRONMENT = {'name': 'Python 2.7', 'version': '1.1.0'} CXX_ENVIRONMENT = {'name': 'Cxx backend', 'version': '1.0.0'} ENVKEY = '%(name)s (%(version)s)' % ENVIRONMENT CXX_ENVKEY = '%(name)s (%(version)s)' % CXX_ENVIRONMENT diff --git a/beat/web/backend/tests.py b/beat/web/backend/tests.py index 263eb10294628aca81a40ab302787c5c750afe8d..aa4e82f74e83bab45e7df1c248d141a45d62cfda 100755 --- a/beat/web/backend/tests.py +++ b/beat/web/backend/tests.py @@ -75,7 +75,7 @@ QUEUES_WITHOUT_PRIORITY = { "time-limit": 180, #3 hours "cores-per-slot": 1, "max-slots-per-user": 4, - "environments": ['environment (1)'], + "environments": ['Python 2.7 (1.1.0)'], "groups": [ "Default", ], @@ -92,7 +92,7 @@ QUEUES_WITHOUT_PRIORITY = { "time-limit": 360, #6 hours "cores-per-slot": 2, "max-slots-per-user": 2, - "environments": ['environment (1)'], + "environments": ['Python 2.7 (1.1.0)'], "groups": [ "Default", ], @@ -109,7 +109,7 @@ QUEUES_WITHOUT_PRIORITY = { "time-limit": 720, #12 hours "cores-per-slot": 4, "max-slots-per-user": 1, - "environments": ['environment (1)'], + "environments": ['Python 2.7 (1.1.0)'], "groups": [ "Default", ], @@ -129,9 +129,9 @@ QUEUES_WITHOUT_PRIORITY = { } }, "environments": { - 'environment (1)': { - "name": 'environment', - "version": '1', + 'Python 2.7 (1.1.0)': { + "name": 'Python 2.7', + "version": '1.1.0', "short_description": "Test", "description": "Test environment", "languages": "python", @@ -147,7 +147,7 @@ PRIORITY_QUEUES = { "time-limit": 180, #3 hours "cores-per-slot": 1, "max-slots-per-user": 2, - "environments": ['environment (1)'], + "environments": ['Python 2.7 (1.1.0)'], "groups": [ "Default", ], @@ -168,7 +168,7 @@ PRIORITY_QUEUES = { "time-limit": 360, #6 hours "cores-per-slot": 2, "max-slots-per-user": 1, - "environments": ['environment (1)'], + "environments": ['Python 2.7 (1.1.0)'], "groups": [ "Default", ], @@ -189,7 +189,7 @@ PRIORITY_QUEUES = { "time-limit": 180, #3 hours "cores-per-slot": 1, "max-slots-per-user": 8, - "environments": ['environment (1)'], + "environments": ['Python 2.7 (1.1.0)'], "groups": [ "Default", ], @@ -219,9 +219,9 @@ PRIORITY_QUEUES = { ) ]), "environments": { - 'environment (1)': { - "name": 'environment', - "version": '1', + 'Python 2.7 (1.1.0)': { + "name": 'Python 2.7', + "version": '1.1.0', "short_description": "Test", "description": "Test environment", "languages": "python", @@ -383,7 +383,7 @@ class BaseBackendTestCase(TestCase): setup_backend(qsetup.DEFAULT_CONFIGURATION) Worker.objects.update(active=True) - env = Environment.objects.get(name='environment') + env = Environment.objects.get(name='Python 2.7') queue = Queue.objects.first() template_data = dict( @@ -420,7 +420,7 @@ class BaseBackendTestCase(TestCase): self.assertEqual(b0.job.parent, None) self.assertEqual(b0.job.child_, None) self.assertEqual(b0.queue.name, 'queue') - self.assertEqual(b0.environment.name, 'environment') + self.assertEqual(b0.environment.name, 'Python 2.7') self.assertEqual(b0.required_slots, 1) self.assertEqual(b0.inputs.count(), 1) self.assertEqual(b0.outputs.count(), 1) @@ -441,7 +441,7 @@ class BaseBackendTestCase(TestCase): self.assertEqual(b1.job.parent, None) self.assertEqual(b1.job.child_, None) self.assertEqual(b1.queue.name, 'queue') - self.assertEqual(b1.environment.name, 'environment') + self.assertEqual(b1.environment.name, 'Python 2.7') self.assertEqual(b1.required_slots, 1) self.assertEqual(b1.inputs.count(), 1) self.assertEqual(b1.outputs.count(), 1) @@ -527,8 +527,8 @@ class BackendSetup(BaseBackendTestCase): env = q1.environments.first() - self.assertEqual(env.name, 'environment') - self.assertEqual(env.version, '1') + self.assertEqual(env.name, 'Python 2.7') + self.assertEqual(env.version, '1.1.0') self.assertEqual(q1.slots.count(), 1) self.assertEqual(q2.slots.count(), 1) @@ -636,8 +636,8 @@ class BackendSetup(BaseBackendTestCase): env = q1.environments.first() - self.assertEqual(env.name, 'environment') - self.assertEqual(env.version, '1') + self.assertEqual(env.name, 'Python 2.7') + self.assertEqual(env.version, '1.1.0') self.assertEqual(q1.slots.count(), 2) self.assertEqual(q1_special.slots.count(), 2) @@ -1962,7 +1962,7 @@ class SchedulingPriority(BaseBackendTestCase): q1 = Queue.objects.get(name='q1') q2 = Queue.objects.get(name='q2') - env = Environment.objects.get(name='environment') + env = Environment.objects.get(name='Python 2.7') # reset queue and environment to new backend configuration self.set_globals(xp, q1, env) @@ -2009,7 +2009,7 @@ class SchedulingPriority(BaseBackendTestCase): q1 = Queue.objects.get(name='q1') q4 = Queue.objects.get(name='q4') - env = Environment.objects.get(name='environment') + env = Environment.objects.get(name='Python 2.7') # reset queue and environment to new backend configuration self.set_globals(xp, q1, env) @@ -2049,7 +2049,7 @@ class SchedulingPriority(BaseBackendTestCase): Worker.objects.update(active=True) q1 = Queue.objects.get(name='q1') - env = Environment.objects.get(name='environment') + env = Environment.objects.get(name='Python 2.7') fullname = 'user/user/single/1/single' xp = Experiment.objects.get(name=fullname.split(os.sep)[-1]) @@ -2560,7 +2560,7 @@ class WorkingExternally(TransactionTestCase): setup_backend(qsetup.DEFAULT_CONFIGURATION) Worker.objects.update(active=True) - env = Environment.objects.get(name='environment') + env = Environment.objects.get(name='Python 2.7') queue = Queue.objects.first() template_data = dict( diff --git a/beat/web/experiments/models.py b/beat/web/experiments/models.py index 392382b9f6c2efb0acbe52e1c9dc26223fbe013d..9f9843b5ca02a69cdf6c22440e0f1409869aa59a 100755 --- a/beat/web/experiments/models.py +++ b/beat/web/experiments/models.py @@ -1169,16 +1169,23 @@ class Block(models.Model): info = dict( cpu_time = statistics.cpu['user'] + statistics.cpu['system'], max_memory = statistics.memory['rss'], - data_read_size = statistics.data['volume']['read'], - data_read_nb_blocks = statistics.data['blocks']['read'], - data_read_time = statistics.data['time']['read'], - data_written_size = statistics.data['volume']['write'], - data_written_nb_blocks = statistics.data['blocks']['write'], - data_written_time = statistics.data['time']['write'], stdout = result_stdout, stderr = result_stderr, error_report = self.job.result.usrerr, - ) + ) + + if 'volume' in statistics.data: + info['data_read_size'] = statistics.data['volume'].get('read', 0) + info['data_written_size'] = statistics.data['volume'].get('write', 0) + + if 'blocks' in statistics.data: + info['data_read_nb_blocks'] = statistics.data['blocks'].get('read', 0) + info['data_written_nb_blocks'] = statistics.data['blocks'].get('write', 0) + + if 'time' in statistics.data: + info['data_read_time'] = statistics.data['time'].get('read', 0) + info['data_written_time'] = statistics.data['time'].get('write', 0) + if timings: info.update(dict( diff --git a/beat/web/settings/test.py b/beat/web/settings/test.py old mode 100644 new mode 100755 index 4d45a26d9a48141bf8e2b1b6ae0d3f95ce8662a3..779aaa939479272aa3f501c5c5f3705e6f95f31d --- a/beat/web/settings/test.py +++ b/beat/web/settings/test.py @@ -48,6 +48,7 @@ if 'beat.cmdline' in sys.argv: LOGGING['handlers']['console']['level'] = 'DEBUG' LOGGING['loggers']['beat.core']['handlers'] = ['discard'] +LOGGING['loggers']['beat.web']['handlers'] = ['discard'] LOGGING['loggers']['beat.web.utils.management.commands']['handlers'] = ['discard'] PREFIX = os.environ.get('BEAT_TEST_PREFIX', os.path.realpath('./test_prefix')) diff --git a/beat/web/statistics/utils.py b/beat/web/statistics/utils.py old mode 100644 new mode 100755 index bfca56829bccab0ec1ed66546842b6f5fb55f575..9a205a9bede1dcd2a9daddef0795c1ff7fefe81b --- a/beat/web/statistics/utils.py +++ b/beat/web/statistics/utils.py @@ -58,11 +58,17 @@ def updateStatistics(stats, date=None): # Modify the obj entry obj.cpu_time += stats.cpu['user'] + stats.cpu['system'] obj.max_memory += stats.memory['rss'] - obj.data_read_size += stats.data['volume']['read'] - obj.data_read_nb_blocks += stats.data['blocks']['read'] - obj.data_read_time += stats.data['time']['read'] - obj.data_written_size += stats.data['volume']['write'] - obj.data_written_nb_blocks += stats.data['blocks']['write'] - obj.data_written_time += stats.data['time']['write'] + + if 'volume' in stats.data: + obj.data_read_size += stats.data['volume'].get('read', 0) + obj.data_written_size += stats.data['volume'].get('write', 0) + + if 'blocks' in stats.data: + obj.data_read_nb_blocks += stats.data['blocks'].get('read', 0) + obj.data_written_nb_blocks += stats.data['blocks'].get('write', 0) + + if 'time' in stats.data: + obj.data_read_time += stats.data['time'].get('read', 0) + obj.data_written_time += stats.data['time'].get('write', 0) obj.save()