本文整理匯總了Python中weblab.data.experiments.ExperimentUsage類的典型用法代碼示例。如果您正苦於以下問題:Python ExperimentUsage類的具體用法?Python ExperimentUsage怎麽用?Python ExperimentUsage使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了ExperimentUsage類的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_return_get_experiment_uses_by_id
def test_return_get_experiment_uses_by_id(self):
expected_sess_id = SessionId.SessionId("whatever")
expected_usage = ExperimentUsage(10, time.time(), time.time(), '127.0.0.1', ExperimentId("exp","cat"))
command_sent = CommandSent(Command.Command("request"), time.time(), Command.Command("response"), time.time())
expected_usage.append_command(command_sent)
loaded_file_sent = LoadedFileSent('content-of-the-file', time.time(), Command.Command("response"), time.time(), 'program')
expected_usage.append_file(loaded_file_sent)
expected_finished_result = FinishedReservationResult(expected_usage)
expected_alive_result = WaitingReservationResult()
expected_cancelled_result = CancelledReservationResult()
self.mock_ups.return_values['get_experiment_uses_by_id'] = (expected_finished_result, expected_alive_result, expected_cancelled_result)
results = self.rfm.get_experiment_uses_by_id(expected_sess_id, (SessionId.SessionId('reservation'), SessionId.SessionId('reservation2'), SessionId.SessionId('reservation3') ))
self.assertEquals(3, len(results))
self.assertEquals(expected_finished_result.status, results[0].status)
self.assertEquals(expected_alive_result.status, results[1].status)
self.assertEquals(expected_cancelled_result.status, results[2].status)
self.assertEquals(expected_usage, expected_finished_result.experiment_use)
示例2: _parse_experiment_result
def _parse_experiment_result(self, experiment_result):
if experiment_result['status'] == ReservationResult.ALIVE:
if experiment_result['running']:
return RunningReservationResult()
else:
return WaitingReservationResult()
elif experiment_result['status'] == ReservationResult.CANCELLED:
return CancelledReservationResult()
elif experiment_result['status'] == ReservationResult.FORBIDDEN:
return ForbiddenReservationResult()
experiment_use = experiment_result['experiment_use']
experiment_id = ExperimentId(experiment_use['experiment_id']['exp_name'], experiment_use['experiment_id']['cat_name'])
addr = experiment_use['coord_address']
if 'machine_id' in addr:
coord_address = CoordAddress(addr['machine_id'],addr['instance_id'],addr['server_id'])
else:
coord_address = CoordAddress(addr['host'],addr['process'],addr['component'])
use = ExperimentUsage(experiment_use['experiment_use_id'], experiment_use['start_date'], experiment_use['end_date'], experiment_use['from_ip'], experiment_id, experiment_use['reservation_id'], coord_address, experiment_use['request_info'])
for sent_file in experiment_use['sent_files']:
response = Command(sent_file['response']['commandstring']) if 'commandstring' in sent_file['response'] and sent_file['response'] is not None else NullCommand
if sent_file['file_info'] == {}:
file_info = None
else:
file_info = sent_file['file_info']
unserialized_sent_file = LoadedFileSent( sent_file['file_content'], sent_file['timestamp_before'], response, sent_file['timestamp_after'], file_info)
use.append_file(unserialized_sent_file)
for command in experiment_use['commands']:
request = Command(command['command']['commandstring']) if 'commandstring' in command['command'] and command['command'] is not None else NullCommand
response_command = command['response']['commandstring'] if 'commandstring' in command['response'] and command['response'] is not None else None
if response_command is None or response_command == {}:
response = NullCommand()
else:
response = Command(response_command)
if command['timestamp_after'] is None or command['timestamp_after'] == {}:
timestamp_after = None
else:
timestamp_after = command['timestamp_after']
unserialized_command = CommandSent(request, command['timestamp_before'], response, timestamp_after)
use.append_command(unserialized_command)
return FinishedReservationResult(use)
示例3: to_business_light
def to_business_light(self):
usage = ExperimentUsage()
usage.experiment_use_id = self.id
usage.start_date = _splitted_utc_datetime_to_timestamp(self.start_date, self.start_date_micro)
usage.end_date = _splitted_utc_datetime_to_timestamp(self.end_date, self.end_date_micro)
usage.from_ip = self.origin
usage.reservation_id = self.reservation_id
usage.experiment_id = ExperimentId(self.experiment.name, self.experiment.category.name)
usage.coord_address = CoordAddress.translate(self.coord_address)
request_info = {}
for prop in self.properties:
name = prop.property_name.name
value = prop.value
request_info[name] = value
usage.request_info = request_info
return usage
示例4: test_get_experiment_uses_by_id
def test_get_experiment_uses_by_id(self):
port = 15131
self.configurationManager._set_value(self.rfs.FACADE_JSON_PORT, port)
self.rfs.start()
try:
client = WebLabDeustoClient("http://localhost:%s/weblab/" % port)
expected_sess_id = SessionId.SessionId("whatever")
expected_usage = ExperimentUsage(10, time.time(), time.time(), '127.0.0.1', ExperimentId("exp","cat"), 'reser1', CoordAddress('machine','instance','server'))
command_sent = CommandSent(Command.Command("request"), time.time(), Command.Command("response"), time.time())
expected_usage.append_command(command_sent)
loaded_file_sent = LoadedFileSent('content-of-the-file', time.time(), Command.Command("response"), time.time(), 'program')
expected_usage.append_file(loaded_file_sent)
expected_finished_result = FinishedReservationResult(expected_usage)
expected_alive_result = RunningReservationResult()
expected_cancelled_result = CancelledReservationResult()
self.mock_server.return_values['get_experiment_uses_by_id'] = (expected_finished_result, expected_alive_result, expected_cancelled_result)
expected_reservations = (SessionId.SessionId('reservation'), SessionId.SessionId('reservation2'), SessionId.SessionId('reservation3') )
results = client.get_experiment_uses_by_id(expected_sess_id, expected_reservations)
self.assertEquals( expected_sess_id.id, self.mock_server.arguments['get_experiment_uses_by_id'][0])
self.assertEquals( expected_reservations, tuple(self.mock_server.arguments['get_experiment_uses_by_id'][1]))
self.assertEquals(3, len(results))
self.assertEquals(expected_finished_result.status, results[0].status)
self.assertEquals(expected_alive_result.status, results[1].status)
self.assertEquals(expected_cancelled_result.status, results[2].status)
self.assertEquals(expected_usage, results[0].experiment_use)
finally:
self.rfs.stop()
示例5: test_update_command
def test_update_command(self):
session = self.gateway.Session()
student1 = self.gateway._get_user(session, 'student1')
RESERVATION_ID1 = 'my_reservation_id1'
usage1 = ExperimentUsage()
usage1.start_date = time.time()
usage1.end_date = time.time()
usage1.from_ip = "130.206.138.16"
usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:[email protected]")
usage1.reservation_id = RESERVATION_ID1
usage1.request_info = {'facebook' : False}
self.gateway.store_experiment_usage(student1.login, usage1)
usages = self.gateway.list_usages_per_user(student1.login)
self.assertEquals(1, len(usages))
full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id)
self.assertEquals(0, len(full_usage.commands))
command1 = CommandSent( Command.Command("your command"), time.time() )
command_id = self.gateway.append_command( RESERVATION_ID1, command1 )
full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id)
self.assertEquals("your command", full_usage.commands[0].command.commandstring)
self.assertEquals(Command.NullCommand(), full_usage.commands[0].response)
self.gateway.update_command(command_id, Command.Command("the response"), time.time())
full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id)
self.assertEquals("your command", full_usage.commands[0].command.commandstring)
self.assertEquals("the response", full_usage.commands[0].response.commandstring)
示例6: test_update_file
def test_update_file(self):
session = self.gateway.Session()
student1 = self.gateway._get_user(session, 'student1')
RESERVATION_ID1 = 'my_reservation_id1'
RESERVATION_ID2 = 'my_reservation_id2'
usage1 = ExperimentUsage()
usage1.start_date = time.time()
usage1.end_date = time.time()
usage1.from_ip = "130.206.138.16"
usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:[email protected]")
usage1.reservation_id = RESERVATION_ID1
usage1.request_info = {'facebook' : False}
usage2 = ExperimentUsage()
usage2.start_date = time.time()
usage2.end_date = time.time()
usage2.from_ip = "130.206.138.17"
usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage2.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:[email protected]")
usage2.reservation_id = RESERVATION_ID2
usage2.request_info = {'facebook' : False}
self.gateway.store_experiment_usage(student1.login, usage1)
self.gateway.store_experiment_usage(student1.login, usage2)
file_sent1 = FileSent(
'path/to/file2',
'{sha}123456',
time.time(),
file_info = 'program'
)
usages = self.gateway.list_usages_per_user(student1.login)
self.assertEquals(2, len(usages))
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertEquals(0, len(full_usage1.commands))
self.assertEquals(0, len(full_usage2.commands))
self.assertEquals(0, len(full_usage1.sent_files))
self.assertEquals(0, len(full_usage2.sent_files))
file_sent_id = self.gateway.append_file(RESERVATION_ID1, file_sent1)
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertEquals(0, len(full_usage1.commands))
self.assertEquals(0, len(full_usage2.commands))
self.assertEquals(1, len(full_usage1.sent_files))
self.assertEquals(0, len(full_usage2.sent_files))
self.assertEquals(None, full_usage1.sent_files[0].response.commandstring)
self.gateway.update_file(file_sent_id, Command.Command("response"), time.time())
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertEquals(0, len(full_usage1.commands))
self.assertEquals(0, len(full_usage2.commands))
self.assertEquals(1, len(full_usage1.sent_files))
self.assertEquals(0, len(full_usage2.sent_files))
self.assertEquals("response", full_usage1.sent_files[0].response.commandstring)
示例7: create_usage
def create_usage(gateway, reservation_id = 'my_reservation_id'):
session = gateway.Session()
student1 = gateway._get_user(session, 'student1')
initial_usage = ExperimentUsage()
initial_usage.start_date = time.time()
initial_usage.end_date = time.time()
initial_usage.from_ip = "130.206.138.16"
initial_usage.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
initial_usage.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:[email protected]")
initial_usage.reservation_id = reservation_id
file1 = FileSent(
'path/to/file1',
'{sha}12345',
time.time()
)
file2 = FileSent(
'path/to/file2',
'{sha}123456',
time.time(),
Command.Command('response'),
time.time(),
file_info = 'program'
)
command1 = CommandSent(
Command.Command("your command1"),
time.time()
)
command2 = CommandSent(
Command.Command("your command2"),
time.time(),
Command.Command("your response2"),
time.time()
)
initial_usage.append_command(command1)
initial_usage.append_command(command2)
initial_usage.append_file(file1)
initial_usage.append_file(file2)
initial_usage.request_info = {'facebook' : False}
gateway.store_experiment_usage(student1.login, initial_usage)
return student1, initial_usage, command1, command2, file1, file2
示例8: test_finish_experiment_usage
def test_finish_experiment_usage(self):
session = self.gateway.Session()
student1 = self.gateway._get_user(session, 'student1')
RESERVATION_ID1 = 'my_reservation_id1'
RESERVATION_ID2 = 'my_reservation_id2'
usage1 = ExperimentUsage()
usage1.start_date = time.time()
usage1.from_ip = "130.206.138.16"
usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:[email protected]")
usage1.reservation_id = RESERVATION_ID1
command1 = CommandSent(
Command.Command("your command1"),
time.time(),
Command.Command("your response1"),
time.time()
)
usage1.append_command(command1)
usage1.request_info = {'facebook' : False}
usage2 = ExperimentUsage()
usage2.start_date = time.time()
usage2.from_ip = "130.206.138.17"
usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage2.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:[email protected]")
usage2.reservation_id = RESERVATION_ID2
command2 = CommandSent(
Command.Command("your command2"),
time.time(),
Command.Command("your response2"),
time.time()
)
usage2.append_command(command2)
usage2.request_info = {'facebook' : False}
self.gateway.store_experiment_usage(student1.login, usage1)
self.gateway.store_experiment_usage(student1.login, usage2)
finishing_command = CommandSent(
Command.Command("@@@[email protected]@@"),
time.time(),
Command.Command("finish"),
time.time()
)
usages = self.gateway.list_usages_per_user(student1.login)
self.assertEquals(2, len(usages))
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertEquals(None, full_usage1.end_date)
self.assertEquals(None, full_usage2.end_date)
self.assertEquals(1, len(full_usage1.commands))
self.assertEquals(1, len(full_usage2.commands))
result = self.gateway.finish_experiment_usage(RESERVATION_ID1, time.time(), finishing_command)
self.assertTrue(result)
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertNotEqual(None, full_usage1.end_date)
self.assertEquals(None, full_usage2.end_date)
self.assertEquals(2, len(full_usage1.commands))
self.assertEquals(1, len(full_usage2.commands))
self.assertEquals("@@@[email protected]@@", full_usage1.commands[1].command.commandstring)
self.assertEquals("finish", full_usage1.commands[1].response.commandstring)
示例9: iterate_initial
def iterate_initial(self):
initial_information = self.initial_store.get(timeout=self.timeout)
if initial_information is not None:
initial_timestamp = time.mktime(initial_information.initial_time.timetuple()) + initial_information.initial_time.microsecond / 1e6
end_timestamp = time.mktime(initial_information.end_time.timetuple()) + initial_information.end_time.microsecond / 1e6
request_info = initial_information.request_info
from_ip = request_info.pop('from_ip','<address not found>')
try:
username = request_info.pop('username')
except:
log.log( TemporalInformationRetriever, log.level.Critical, "Provided information did not contain some required fields (such as username or role). This usually means that the reservation has previously been expired. Provided request_info: %r; provided data: %r" % (request_info, initial_information), max_size = 10000)
log.log_exc( TemporalInformationRetriever, log.level.Critical )
return
usage = ExperimentUsage()
usage.start_date = initial_timestamp
usage.from_ip = from_ip
usage.experiment_id = initial_information.experiment_id
usage.reservation_id = initial_information.reservation_id
usage.coord_address = initial_information.exp_coordaddr
usage.request_info = initial_information.request_info
command_request = CommandSent(
Command.Command("@@@initial::[email protected]@@"), initial_timestamp,
Command.Command(str(initial_information.client_initial_data)), end_timestamp)
command_response = CommandSent(
Command.Command("@@@initial::[email protected]@@"), initial_timestamp,
Command.Command(str(initial_information.initial_configuration)), end_timestamp)
usage.append_command(command_request)
usage.append_command(command_response)
self.db_manager.store_experiment_usage(username, usage)
示例10: _store_two_reservations
def _store_two_reservations(self):
#
# Two users: student2, that started before "any" but finished after "any", and "any" then. Both use
# the same experiment.
#
db_gw = self.ups._db_manager
session = db_gw.Session()
try:
student1 = db_gw._get_user(session, 'student1')
student2 = db_gw._get_user(session, 'student2')
finally:
session.close()
reservation_id1 = SessionId.SessionId(u'5')
initial_usage1 = ExperimentUsage()
initial_usage1.start_date = time.time()
initial_usage1.end_date = time.time()
initial_usage1.from_ip = u"130.206.138.16"
initial_usage1.experiment_id = ExperimentId(u"ud-dummy",u"Dummy experiments")
initial_usage1.coord_address = CoordAddress(u"machine1",u"instance1",u"server1")
initial_usage1.reservation_id = reservation_id1.id
initial_usage1.request_info = { 'permission_scope' : 'user', 'permission_id' : student1.id }
valid_file_path = os.path.relpath(os.sep.join(('test','__init__.py')))
file1 = FileSent( valid_file_path, u'{sha}12345', time.time())
file2 = FileSent( valid_file_path, u'{sha}123456',
time.time(), Command(u'response'),
time.time(), file_info = u'program')
command1 = CommandSent( Command(u"your command1"), time.time())
command2 = CommandSent( Command(u"your command2"), time.time(),
Command(u"your response2"), time.time())
initial_usage1.append_command(command1)
initial_usage1.append_command(command2)
initial_usage1.append_file(file1)
initial_usage1.append_file(file2)
reservation_id2 = SessionId.SessionId(u'6')
initial_usage2 = ExperimentUsage()
initial_usage2.start_date = time.time()
initial_usage2.end_date = time.time()
initial_usage2.from_ip = u"130.206.138.16"
initial_usage2.experiment_id = ExperimentId(u"ud-dummy",u"Dummy experiments")
initial_usage2.coord_address = CoordAddress(u"machine1",u"instance1",u"server1")
initial_usage2.reservation_id = reservation_id2.id
initial_usage2.request_info = { 'permission_scope' : 'user', 'permission_id' : student2.id }
file1 = FileSent( valid_file_path, u'{sha}12345', time.time())
file2 = FileSent( valid_file_path, u'{sha}123456',
time.time(), Command(u'response'),
time.time(), file_info = u'program')
command1 = CommandSent( Command(u"your command1"), time.time())
command2 = CommandSent( Command(u"your command2"), time.time(),
Command(u"your response2"), time.time())
initial_usage2.append_command(command1)
initial_usage2.append_command(command2)
initial_usage2.append_file(file1)
initial_usage2.append_file(file2)
self.ups._db_manager.store_experiment_usage('student1', initial_usage1)
self.ups._db_manager.store_experiment_usage('student2', initial_usage2)
return (reservation_id1, reservation_id2), (initial_usage1, initial_usage2)
示例11: test_add_file
def test_add_file(self):
student1 = self.gateway._get_user(self.session, 'student1')
RESERVATION_ID1 = 'my_reservation_id1'
RESERVATION_ID2 = 'my_reservation_id2'
usage1 = ExperimentUsage()
usage1.start_date = time.time()
usage1.end_date = time.time()
usage1.from_ip = "130.206.138.16"
usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage1.coord_address = CoordAddress("machine1","instance1","server1")
usage1.reservation_id = RESERVATION_ID1
command1 = CommandSent(
Command.Command("your command1"),
time.time(),
Command.Command("your response1"),
time.time()
)
usage1.append_command(command1)
usage1.request_info = {'facebook' : False, 'permission_scope' : 'user', 'permission_id' : student1.id}
usage2 = ExperimentUsage()
usage2.start_date = time.time()
usage2.end_date = time.time()
usage2.from_ip = "130.206.138.17"
usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments")
usage2.coord_address = CoordAddress("machine1","instance1","server1")
usage2.reservation_id = RESERVATION_ID2
command2 = CommandSent(
Command.Command("your command2"),
time.time(),
Command.Command("your response2"),
time.time()
)
usage2.append_command(command2)
usage2.request_info = {'facebook' : False, 'permission_scope' : 'user', 'permission_id' : student1.id}
self.gateway.store_experiment_usage(student1.login, usage1)
self.gateway.store_experiment_usage(student1.login, usage2)
file_sent1 = FileSent(
'path/to/file2',
'{sha}123456',
time.time(),
Command.Command('response'),
time.time(),
file_info = 'program'
)
usages = self.gateway.list_usages_per_user(student1.login)
self.assertEquals(2, len(usages))
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertEquals(1, len(full_usage1.commands))
self.assertEquals(1, len(full_usage2.commands))
self.assertEquals(0, len(full_usage1.sent_files))
self.assertEquals(0, len(full_usage2.sent_files))
self.gateway.append_file(RESERVATION_ID1, file_sent1)
full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id)
full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id)
self.assertEquals(1, len(full_usage1.commands))
self.assertEquals(1, len(full_usage2.commands))
self.assertEquals(1, len(full_usage1.sent_files))
self.assertEquals(0, len(full_usage2.sent_files))
self.assertEquals("response", full_usage1.sent_files[0].response.commandstring)