Eduardo Ramos Testillano (eramedu) [Wed, 13 May 2020 16:32:39 +0000 (18:32 +0200)]
Add error condition when building image
Exit if any fail happens.
Eduardo Ramos Testillano (eramedu) [Wed, 13 May 2020 00:11:59 +0000 (02:11 +0200)]
Add portability fixes
Eduardo Ramos Testillano (eramedu) [Tue, 12 May 2020 00:14:37 +0000 (02:14 +0200)]
Add fourth work package for REST API implementation
Implementation completed with last FSM testing use cases
Eduardo Ramos Testillano (eramedu) [Mon, 11 May 2020 17:03:12 +0000 (19:03 +0200)]
Avoid service overhead about checking netstat ports
CT script procedure starts the service and then check for
availability. This check was being hard (no sleep between
retries). Now, 1 second is lapsed in every check.
Eduardo Ramos Testillano (eramedu) [Mon, 11 May 2020 17:01:17 +0000 (19:01 +0200)]
Dump output and hide from non-tty, the ADML stdout/stderr
Modify start script to dump output to file (ADML.output).
This output gather (for example) procedure outputs from
step-command threads.
Eduardo Ramos Testillano (eramedu) [Mon, 11 May 2020 16:53:32 +0000 (18:53 +0200)]
Solve legacy problem with clear operation (coredump with running threads)
Modified the clear operation. Now is 'conditional', so, when is unsafe,
it will be ignored. A message on http interface advice about trying
later because some running threads could be ongoing (check test
summary to confirm). Sometimes, it could be due to stuck external
procedures. The user is responsible to kill those stuck procedures
or guarantee they are timedout (it is recommended to wrap procedures
into safe containers (subshells) if you don't trust too much those
procedures).
Normally, step commands are not so usual. ADML FSM (finite state
machine) is better used through REST API from other controllers
with their own FSM and interface endpoints (no need for ADML
dedicated command-step threads).
Eduardo Ramos Testillano (eramedu) [Mon, 11 May 2020 10:23:11 +0000 (12:23 +0200)]
Add ct automation
Services including AF and local diameter server is now skipped as pytest test.
Another one was added as dummy services (stack 0 already loaded).
New ct script (CT automation) which needs 'netstat' tool in the ADML HTTP image.
This script:
* ask for re-build service image
* restart service container
* configure real services
* monitor service available
* ask for pytest global execution
New resources and examples needed are included.
Also fixed visilibity operation at SIGUSR2 interface: was returning
without updating response information.
Eduardo Ramos Testillano (eramedu) [Mon, 11 May 2020 03:10:31 +0000 (05:10 +0200)]
Add third work package for REST API implementation
Start with FSM Testing
Eduardo Ramos Testillano (eramedu) [Sun, 10 May 2020 20:18:42 +0000 (22:18 +0200)]
Add second work package for REST API implementation
Complete flow operations
Add updateOperatedOriginHostWithMessage and getOriginHost to
work with datablocks.
This improve also legacy code (sigusr2 interface is gaining
with this feature when managing operation which uses hexadecimal
messages
Codec engine implementation adds also a createMessage version
working with xml representation, not only with xml file.
Eduardo Ramos Testillano (eramedu) [Sun, 10 May 2020 10:44:09 +0000 (12:44 +0200)]
Add pytest cache to gitignore
Eduardo Ramos Testillano (eramedu) [Sun, 10 May 2020 02:46:17 +0000 (04:46 +0200)]
Add first work package for REST API implementation
INSTALL_ADML_HTTP.md documentation about:
* New tools to generate ADML-HTTP deployment, which is an
ADML with HTTP endpoint configured.
* Docker image generation for ADML HTTP deployment together
with an nginx configured as reverse proxy in order to
offer an HTTP2 server. The HTTP2 requests will be proxied
to native HTTP11 http server provided by ADML.
* Instructions to start the docker container and execute
the pytest component test
EventOperation classes which will centralize event operation
from Launcher.cpp and also from HTTP handler.
New XML dump operations from string (not only from file) at
Launcher.cpp.
Modify all deployment to remove legacy operation script for curl.
All of them will be based (specially "burst" dedicated deployment)
on signal USR2 management.
HELP.md for complete REST API documentation
Pytest component test structure, pending FSM testing and flow operations
New library (json to xml converter) is used to transform REST
operations into native xml language.
Eduardo Ramos Testillano (eramedu) [Fri, 8 May 2020 23:20:52 +0000 (01:20 +0200)]
Add automation for ADML HTTP image creation
Also improve stuff to centralize build image procedure
and fix the shift issue for parameters passing.
New INSTALL_ADML_HTTP.md help for ADML HTTP deployment and
image creation/running.
Eduardo Ramos Testillano (eramedu) [Fri, 8 May 2020 13:05:44 +0000 (15:05 +0200)]
Fix another two bugs in json to xml convert library
The first one: the third nested child in 'test.json' was being
considered 'grandchild', that is to say, stack pop was not
correctly managed. The problem arised when poping after a
nested previous array. Fixed with new control booleans.
Also, a problem to finish a parent node xml tag arised when
we had two consecutive nested levels. This is ensured and
tested with new 'test2.json'.
Eduardo Ramos Testillano (eramedu) [Mon, 4 May 2020 17:38:50 +0000 (19:38 +0200)]
Improve dtd for ADML services
As ADML services loader is retrieving stacks and then nodes,
there is no need to fix strict order for those elements.
Dtd must be relaxed to accept nodes and then stacks.
This is necessary because some json to xml converters could
add xml elements in alphabetical order (and then, stacks is
after node).
Eduardo Ramos Testillano (eramedu) [Mon, 4 May 2020 17:36:17 +0000 (19:36 +0200)]
Fix bug in json to xml convert library
Bad management for node-names stack (FIFO).
Both object and array shall push keys and also shall pop them
when entering/finishing the callbacks.
Also, new member key_ will store the key (and it won't be
pushed when detected, only when starting object/array).
Eduardo Ramos Testillano (eramedu) [Sun, 3 May 2020 00:15:48 +0000 (02:15 +0200)]
Ensures normalization on waitfe/fc-xml operations
Normalize the xml representation for loaded messages,
and also the regular expression is adapted as usual,
regarding hop-by-hop, end-to-end and Origin-State-Id.
isLike is fixed to do there the full normalization,
including the removing of newlines.
isLike docygen documentation is also improved.
Also, move getContentFromFile to core::functions.
Eduardo Ramos Testillano (eramedu) [Sat, 2 May 2020 19:39:53 +0000 (21:39 +0200)]
Allow diameter message & avp to normalize their xml representation
The method `asXMLString` for Message and Avp classes has now an
optional bool "sortAttributes" which defaults to `false` (previous
behaviour).
So, you could normalize by mean sorting attribute names for nodes
within xml. This does not affect to the structure because the
method asXMLString just generates the representations on-demand.
The new parameter is set to true when programming regexps and during
TestCondition comply for diameter messages received.
Eduardo Ramos Testillano (eramedu) [Sat, 2 May 2020 19:30:42 +0000 (21:30 +0200)]
Normalize xml processing
Centralize indentation spaces for xml representation with
define macro 'ANNA_XML_INDENTATION_SPACES' which is 3.
Add new working mode for xml Compiler: Sort. This one will
sort attribute names within nodes. This eases normalization
to match regexps based on xml diameter messages representation.
As this mode is based on bit mask, must be power of 2 and the
next free is 8.
Eduardo Ramos Testillano (eramedu) [Sat, 2 May 2020 12:17:00 +0000 (14:17 +0200)]
Add sax converter from json to xml
This source is also published at github as:
https://github.com/testillano/json2xml
Eduardo Ramos Testillano (eramedu) [Sat, 2 May 2020 11:30:12 +0000 (13:30 +0200)]
Exclude nlohmann json header from doxygen documentation
It is causing docygen to crash.
Eduardo Ramos Testillano (eramedu) [Sat, 2 May 2020 10:46:49 +0000 (12:46 +0200)]
Open the suite from gpl3 to MIT license
This allows to create propietary (no open) software
based in this suite.
Eduardo Ramos Testillano (eramedu) [Wed, 29 Apr 2020 16:57:09 +0000 (18:57 +0200)]
Fix start.sh script due to bad pid calculated
The .pid was having the eval process PID instead
of ADML's one.
We must to evaluate first, and then pass arguments
expanded to the ADML executable.
Eduardo Ramos Testillano (eramedu) [Wed, 29 Apr 2020 00:30:03 +0000 (02:30 +0200)]
Add base64 encoder/decoder at anna core functions
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 22:42:56 +0000 (00:42 +0200)]
Fix AOTS launcher menu: run operation added
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 22:36:41 +0000 (00:36 +0200)]
Add new operation 'run' to test a specific test case
Not only updates iterator but also executes the case to
avoid that another operation changes the pointer.
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 19:14:17 +0000 (21:14 +0200)]
Share http server endpoint to improve REST API performance
Add --httpServerShared to the executable arguments for ft and st.
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 19:11:42 +0000 (21:11 +0200)]
Ease the ADML help for command line
Just ./start.sh help
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 14:20:15 +0000 (16:20 +0200)]
Remove operation help.
Created a new version in file: HELP.md
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 09:26:57 +0000 (11:26 +0200)]
Add nlohmann/json parser
New EventOperation class ready to translate json into piped string
for event operation.
Bug: Fix legacy loadXML to loadXMLFile
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 09:21:48 +0000 (11:21 +0200)]
Improve xml parsing on diameter codec
loadXML is renamed to loadXMLFile to be more explicit.
Added loadXMLString to load an xml representation.
This will allow to interpret directly json values as base64 xml
encodings.
Eduardo Ramos Testillano (eramedu) [Tue, 28 Apr 2020 09:04:22 +0000 (11:04 +0200)]
Enable xml parsing for DocumentMemory
Eduardo Ramos Testillano (eramedu) [Mon, 27 Apr 2020 01:54:56 +0000 (03:54 +0200)]
ADML is not really an AOTS deployment but an simple ADML one
It has http support
Eduardo Ramos Testillano (eramedu) [Mon, 27 Apr 2020 00:37:13 +0000 (02:37 +0200)]
Add instructions to deploy ADML AOTS Agent
Eduardo Ramos Testillano (eramedu) [Mon, 27 Apr 2020 00:13:57 +0000 (02:13 +0200)]
Add deployment for ADML agent with http interface
Reuse ADML agent for aots-setup through symlink.
Centralize stacks with stacks examples. Some modifications
needed in legacy scripts to reference new dictionary names.
Eval is needed in new start script in order to integrate
the httpServer calculation.
* Upgrade compiler to C++14 (to use std::quoted from iomanip)
* Improve HTTP handler to answer a json body with result (true/false)
and data (description for the operation):
{
"result": "true",
"data": "Success"
}
* Fix core dump due to uninitialized 'sessionBasedModelsTypeEnum'
* New 'state' operation to now the state in real time for a test id.
Eduardo Ramos Testillano (eramedu) [Tue, 14 Apr 2020 18:52:07 +0000 (20:52 +0200)]
Fix absolute path for build directory
Eduardo Ramos Testillano (eramedu) [Tue, 14 Apr 2020 17:24:04 +0000 (19:24 +0200)]
Allow provide variant to builder with docker
Release by default, and also Debug are supported.
Eduardo Ramos Testillano (eramedu) [Tue, 14 Apr 2020 15:07:24 +0000 (17:07 +0200)]
Speed up docker building procedure
Comment doxygen generation at entrypoint.
You could do natively (make doc), but the important
thing is the source build, not the documentation.
Eduardo Ramos Testillano (eramedu) [Mon, 13 Apr 2020 12:29:19 +0000 (14:29 +0200)]
Remove hint which has no sense
Ignore flags is not commandline configured now.
eramos [Mon, 13 Apr 2020 01:35:59 +0000 (03:35 +0200)]
Changes to migrate to 32 bit arch (armv7l)
Eduardo Ramos Testillano (eramedu) [Mon, 13 Apr 2020 00:55:02 +0000 (02:55 +0200)]
Build source with docker technology
Eduardo Ramos Testillano (eramedu) [Sun, 12 Apr 2020 17:04:35 +0000 (19:04 +0200)]
Skip oracle and database build by mean cmake variable
You could avoid database resources compilation to ease the add of requirements:
> cmake -DSKIP_DATABASE_BUILD=1 .
Eduardo Ramos Testillano [Sat, 11 Apr 2020 23:49:21 +0000 (01:49 +0200)]
Improvements from anna fork
* Rename steps that are diameter-specific
Diameter steps should be renamed to clarify the real context of use.
* Change ADML point of generation for launcher.traces
Change from the physical executable location to the
execution point (current working directory)
* Improve final detection algorithm
Improves resolution to detect the end of the
testing.
Uses the number of finished test cases
(success + failed) instead the initialized
ones (which is less safer because initial
conditions).
* Add dynamic ip-limit control
Add the possibility to control de ip-limit from
test case by mean a new generic action: ip_limit
* Manage terminate signal from ADML application
* Improve counters
Implement signalTermination handler and force counter records.
If counters dumps are disabled (--cntRecordPeriod 0) the file
won't be created anyway.
Also, improve the mask for counters file creation instead of
modifying it on close (avoid possible stop problems). We set
644 for counters.
* Implement junit report generation
Add new methods and implement new asXML getter for junit report.
* AOTS (Agents-Oriented Testing Setup): evolution from original
idea of diameter agents but extended to any kind of resource.
Change-Id: I4dc3ac41b86709439ffa2aa98aa011d956d8df2f
eramos [Mon, 6 Apr 2020 00:12:44 +0000 (02:12 +0200)]
Fix README about oracle integration
eramos [Fri, 20 Mar 2020 21:26:45 +0000 (22:26 +0100)]
Update tshark DNS resolution due to deprecated asynchronous flag 'C'
As tshark has been updated, the resolving flag 'C' for DNS (-N)
option has been deprecated. We will use 'd' and 'v' instead.
eramos [Fri, 20 Mar 2020 01:49:02 +0000 (02:49 +0100)]
Update date in Doxyfile
Eduardo Ramos Testillano [Thu, 9 Jan 2020 01:08:40 +0000 (02:08 +0100)]
test
Eduardo Ramos Testillano [Sun, 7 Jul 2019 02:24:46 +0000 (04:24 +0200)]
Revert "Remove mysql and oracle resources for anna-ericsson project"
This reverts commit
a3b95648bd76140ef55e0b5941d423eee6c3856f.
Eduardo Ramos Testillano (eramedu) [Fri, 5 Jul 2019 22:14:37 +0000 (00:14 +0200)]
Remove mysql and oracle resources for anna-ericsson project
Eduardo Ramos Testillano (eramedu) [Wed, 3 Jul 2019 19:13:34 +0000 (21:13 +0200)]
Add no-deprecated to warnings due to dynamic exceptions.
Also change clock monotonic constant.
Eduardo Ramos Testillano (eramedu) [Tue, 2 Jul 2019 08:32:07 +0000 (10:32 +0200)]
Abstract testing a little more
Eduardo Ramos Testillano (eramedu) [Sun, 9 Jun 2019 03:25:43 +0000 (05:25 +0200)]
New rxSimpleTest example
API-implemented example for RX simple test
Eduardo Ramos Testillano (eramedu) [Sun, 9 Jun 2019 03:23:05 +0000 (05:23 +0200)]
Miss logic for wait for request data reference
When sending to client, the wait for request step
information was being ignored.
Eduardo Ramos Testillano (eramedu) [Sun, 9 Jun 2019 03:21:25 +0000 (05:21 +0200)]
Fix answer condition from message
Answer was wrongly calculated from message, then
always answer was true when request, and false
when answer.
Also adds a trace to get the wait for request value.
Eduardo Ramos Testillano [Mon, 27 Nov 2017 03:19:59 +0000 (04:19 +0100)]
Fix compilation error
Eduardo Ramos Testillano [Mon, 27 Nov 2017 03:14:16 +0000 (04:14 +0100)]
Get an absolute path for traces in order to bypass possible change-dir operation
Eduardo Ramos Testillano [Mon, 23 Oct 2017 20:57:50 +0000 (22:57 +0200)]
Fix registration bug
Eduardo Ramos Testillano [Wed, 18 Oct 2017 09:53:47 +0000 (11:53 +0200)]
Fix ad-hoc cmake for install
Eduardo Ramos Testillano [Wed, 11 Oct 2017 12:08:01 +0000 (14:08 +0200)]
Convert to warning
Allow to test special cases
Eduardo Ramos Testillano [Fri, 29 Sep 2017 16:55:13 +0000 (18:55 +0200)]
Support for Multiple Peer deployments. Support for coexisting several ADMLS instances directories. Fix division by 0.
Eduardo Ramos Testillano [Thu, 28 Sep 2017 20:26:53 +0000 (22:26 +0200)]
Help to check CEA received after run.sh
Eduardo Ramos Testillano [Tue, 1 Aug 2017 21:23:15 +0000 (23:23 +0200)]
Improve flags uncertainty. Warning when provided with name attribute
Eduardo Ramos Testillano [Sun, 16 Jul 2017 12:19:19 +0000 (14:19 +0200)]
Improve help
Eduardo Ramos Testillano [Sun, 16 Jul 2017 11:57:18 +0000 (13:57 +0200)]
Minor fixes
Eduardo Ramos Testillano [Tue, 11 Jul 2017 08:00:43 +0000 (10:00 +0200)]
Clarify
Eduardo Ramos Testillano [Thu, 6 Jul 2017 10:51:25 +0000 (12:51 +0200)]
Core creation
Eduardo Ramos Testillano [Fri, 30 Jun 2017 13:09:05 +0000 (15:09 +0200)]
Fix offset
Eduardo Ramos Testillano [Fri, 30 Jun 2017 01:06:24 +0000 (03:06 +0200)]
Fixes and improvements
* Allow zeroed cntRecordPeriod as special case (no counters dump)
instead of throwing exception for invalid time measure.
* Remove symlink to services_example in st client deployment and
improve help to guide to correct configuration of services.
* Alert about restarting ADML processes when dynamic library has
been updated/selected.
* Fixed ApplicationMessageOamModule key (eventId now includes
%s_%s instead of %s%s to avoid possible ambiguity in a key
definition from to values.
* Hide exception for non Result-Code in diameter answer,
because this AVP is optional even in some answers.
* Initialize resultCode to -1 instead of 0 to avoid having a
ResultCode0 as counter prefixes.
* Remove warning from OriginHostManager::getOriginHost when
item is not found, because this is used also to discard
redefinitions when something already exists in the map.
* CodecEngine getter has been fixed to cover the monostack
case where the stack id does not correspond to the app id
in the requests but the value of 0 (normally).
* Clarify MessageDeque warnings when answer is analyzed
during configured from original request: this seems to
be missing warnings from request message findings but
that are coming from answer !
Eduardo Ramos Testillano [Tue, 27 Jun 2017 20:14:57 +0000 (22:14 +0200)]
Niceness set to 5 for ADML
Eduardo Ramos Testillano [Tue, 27 Jun 2017 17:45:09 +0000 (19:45 +0200)]
Auto-reset hard/soft for further cycles
If no timeout is configured for a TC, it could happen that next
cycle reach the same TC still in progress. Auto-reset is soft by
default, but you could configure for this kind of scenarios.
Then, auto-reset will hard reset the TC dumping a Failed report
(hint is about hard reset of in-progress TC) and then will be
initialized and started again.
Eduardo Ramos Testillano [Mon, 26 Jun 2017 12:04:55 +0000 (14:04 +0200)]
App counters including message name and result code if proceed
Eduardo Ramos Testillano [Mon, 26 Jun 2017 10:21:17 +0000 (12:21 +0200)]
OriginHostManager to abstract Procedure (dyamic) from knowing the OriginHost node
Eduardo Ramos Testillano [Sun, 25 Jun 2017 19:28:20 +0000 (21:28 +0200)]
RPATH skipped. Added testing so library. Improve support for default CCR configuration in st client
Eduardo Ramos Testillano [Sun, 25 Jun 2017 19:28:20 +0000 (21:28 +0200)]
RPATH skipped. Added testing so library. Improve support for default CCR configuration in st client
Eduardo Ramos Testillano [Sun, 25 Jun 2017 16:19:51 +0000 (18:19 +0200)]
Remove warnings
Eduardo Ramos Testillano [Thu, 22 Jun 2017 15:36:11 +0000 (17:36 +0200)]
typo
Eduardo Ramos Testillano [Thu, 22 Jun 2017 09:41:46 +0000 (11:41 +0200)]
Improvements for missing gtest resources and other stuff
Eduardo Ramos Testillano [Thu, 22 Jun 2017 07:23:06 +0000 (09:23 +0200)]
Fix symlinks
Eduardo Ramos Testillano [Mon, 19 Jun 2017 09:41:53 +0000 (11:41 +0200)]
Add anna_ to libraries and examples
Eduardo Ramos Testillano [Mon, 19 Jun 2017 03:05:49 +0000 (05:05 +0200)]
Fixes
st client: kill -9 to save time (ensure Re-start in time)
st client: program repeats common to dynamic and normal tests
deploy.sh: fix script with new build tree
Eduardo Ramos Testillano [Tue, 6 Jun 2017 22:25:10 +0000 (00:25 +0200)]
More info about change compiler
Eduardo Ramos Testillano [Tue, 6 Jun 2017 22:18:42 +0000 (00:18 +0200)]
Fixes
Eduardo Ramos Testillano [Tue, 6 Jun 2017 21:52:50 +0000 (23:52 +0200)]
Remove scons files. Update README, gitignore and install targets.
Eduardo Ramos Testillano [Tue, 6 Jun 2017 19:08:03 +0000 (21:08 +0200)]
Migrate boost unit test to google test with cmake (ctest)
Eduardo Ramos Testillano [Tue, 6 Jun 2017 16:40:57 +0000 (18:40 +0200)]
First cmake commit. Still coexisting with scons.
Eduardo Ramos Testillano [Thu, 20 Apr 2017 00:04:02 +0000 (02:04 +0200)]
Avoid use of static attribute in functions
Dynamic libraries could share the objects doing double free corruption on app stop.
Eduardo Ramos Testillano [Mon, 17 Apr 2017 17:33:09 +0000 (19:33 +0200)]
Centralize ADML deployment
Eduardo Ramos Testillano [Sat, 15 Apr 2017 22:34:46 +0000 (00:34 +0200)]
Force static link for stackManagement and batchConverter
Still having double free in app stop (kill ADML)
Eduardo Ramos Testillano [Sat, 15 Apr 2017 14:18:16 +0000 (16:18 +0200)]
Make absolute
Eduardo Ramos Testillano [Sat, 15 Apr 2017 14:16:30 +0000 (16:16 +0200)]
Fix timeout order in procedure dynamic operation and program for ST
Eduardo Ramos Testillano [Sat, 8 Apr 2017 17:07:10 +0000 (19:07 +0200)]
Partial translation
Eduardo Ramos Testillano [Sat, 8 Apr 2017 16:10:16 +0000 (18:10 +0200)]
Make testing library dynamic. Refactor DEPLOY.sh
Eduardo Ramos Testillano [Sat, 8 Apr 2017 12:26:59 +0000 (14:26 +0200)]
Fix broken link to w3 URL. Add alternative xpath resources (courtesy of whom we realized the problem)
Eduardo Ramos Testillano [Tue, 4 Apr 2017 21:17:00 +0000 (23:17 +0200)]
Bypass Origin-State-Id for regexp xml content in wait steps
Eduardo Ramos Testillano [Tue, 4 Apr 2017 14:13:34 +0000 (16:13 +0200)]
Allow strict mode (regexp against xml content)
Eduardo Ramos Testillano [Tue, 4 Apr 2017 00:35:50 +0000 (02:35 +0200)]
Fix bug with position values after replace
Eduardo Ramos Testillano [Tue, 4 Apr 2017 00:08:41 +0000 (02:08 +0200)]
regex is not working until gcc 4.9.0, then this is an alternative
Eduardo Ramos Testillano [Mon, 3 Apr 2017 17:14:46 +0000 (19:14 +0200)]
Trace regex exception
Eduardo Ramos Testillano [Sun, 2 Apr 2017 18:29:35 +0000 (20:29 +0200)]
Fix type: end-to-end instead of end-by-end
Eduardo Ramos Testillano [Sun, 2 Apr 2017 18:29:06 +0000 (20:29 +0200)]
Improved wait for regexp operations
Eduardo Ramos Testillano [Sun, 19 Mar 2017 20:53:53 +0000 (21:53 +0100)]
Fix trace