forked from schaap/p2p-testframework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
44 lines (40 loc) · 5.23 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
This document describes API changes for the framework for each version (incrementally). Changes are documented here for sure, additions may be left out. Also, parameter changes are not documented here as they generate warnings as they come. Only changes in the python code are given.
== 2.4.0 vs 2.3.0 ==
- core.execution.execution.getMetaFileDirList(...) is deprecated because it returned treacherous results, use getMetaFileList(...) instead
- core.execution.execution.getDataDirList(...) is highly discouraged in use, use a combination of getDataDirTree() and getDataFileTree() instead, or even better let core.client.client handle it by padding a correct linkDataIn parameer to its prepareExecution(...)
- core.file.file.rootHash is deprecated in favor of core.file.file.rootHashes
== 2.3.0 vs 2.2.0 ==
- core.execution.execution.fileName is now core.execution.execution.fileNames, None for no files or a possibly empty list of filenames (possibly including selector arguments) to be included in the execution
- core.execution.execution.file is now core.execution.execution.files, None for no files or a possibly empty list of file objects
- core.client.client, core.host.host and core.file.file now have a getByArguments(...) method, which allows for selecting specific instances from a group of objects. Example: a host:das4 object called nodes with 3 nodes can return a random note by giving nodes@? as the host parameter (@ is the selection character, ? the selector argument); by default no selectors are supported
- core.client.client now has a isSideService() method, which can tell the framework to ignore that client for purposes such as log processing or client running checks; useful for e.g. tracker utility programs such as client:opentracker
- core.execution.execution has several new functions to help dealing with the multi-file capabilities, namely getDataDirList() and getMetaFileDirList()
- core.file.file and core.host.host now have doPreprocessing() methods, which will be run before any object runs resolveNames; its purpose is to allow changing the objects in the scenario before all crossreferencing happens
- core.file.file now has a getMetaFileDir(...) method
- All modules have been adjusted to work with multiple files
- client:utorrent now requires python on the node side
- host:das4 and file:fakedata have had big internal changes
- ScenarioRunner objects, the self.scenario of each module, now supports the addObject(obj) and resolveObjectName(moduleType, name) to facilitate easier object management; the first will register an object with the scenario (type and name are found using the object's methods, as long as it's a subclass of core.coreObject.coreObject) and the second will return one specific object resolving the name (possibly with argument selector) for the given moduleType
- The fakedata utility now has an extra optional argument to pass an initial offset to the counter
== 2.2.0 vs 2.1.0 ==
- Changed core.host.host to include a new setupNewCleanupConnection(...), which by default refers to setupNewConnection(...)
== 2.1.0 vs 2.0.0 ==
- Changed core.client.client.parser to core.client.client.parsers and made it a list that can be None
- Every extension module that can have parameters now has a resolveNames method
- Changed core.client.client.start heavily: it is now an internal generator that uses asynchronous calls to speed up starting the client
- Implementations of core.client.client should now also call their parent .retrieveLogs() instead of completely reimplementing it
- changed core.execution.execution.parser and core.execution.execution.parserName to core.execution.parsers and core.execution.parserNames and made them lists
- core.execution.execution now keeps track of 2 extra connections for client execution: one for execution, one for querying
- core.file.file now has the getDataDir() function for finding the location of the data files, please use that instead of hardcoding e.g. /files/ in your code
- core.host connection objects and their children now support asynchronous operation
- core.host.host.sendCommand should no longer be implemented by subclasses: it calls the new .sendCommandAsyncStart(...) and .sendCommandAsyncEnd(...) methods in that order
- core.host.host subclasses should implement .sendCommandAsyncStart(...) and .sendCommandAsyncEnd(...) instead of .sendCommand(...), which introduce support for asynchronous command execution (i.e. write the command at first (Start) and read the output later (End))
- The new core.workload.workload extension module parent class has been added, along with an implementation
- A client runner for a small libTorrent client was added
- The fakedata utility has been changed to get a kbyte size argument instead of a byte size argument; file:fakedata has been changed accordingly
- The new file:remote file handler can help out with big files
- host:ssh handles unknown host keys more intelligently
- parser:cpulog was added to support the new profile parameter to client objects
- processor:savetimeout gives insight into the timeout field of an execution and hence the way a workload module ran
- Scenarios can have the parallel=no parameter to be handled sequentially; this handling has been optimized a lot
- Logs will now be salvaged and an attempt will be made at parsing and processing when a scenario fails