stubo Change History

Changelog

Added:

Changed:

Fixed:

Deprecated:

Removed:

0.8.16

Added: - Adding ability to parse XML response elements

0.8.15

Fixed: - Fixed yaml export for stubs with multiple responses

0.8.14

Added: - Adding ability to filter results by session id

0.8.13

Fixed: - Updated Mirage readthedocs.org documentation URL

0.8.12

Fixed: - Enabled SSL verification for HTTPS URLs.

0.8.11

Fixed: - Fixed tracker page not opening in IE

0.8.10

Changed: - Changed Stubo to respond with return header Content-Type if provided in the request

0.8.9

Changed: - Changed stubo-ba-ext to introduce ability to roll 8 digit dates

0.8.8

Added: - Added ability to delay the pulling stubo response into mememroy until after the set delay

0.8.7

Fixed: - Fixed a bug with unable to access tracker page in IE

0.8.6

Added:

  • Fixed a bug with exporting scenarios not working for stubs with multiple responses
  • Updated travis build URL for IAG Mirage repos.

0.8.5

Added:

  • Added ability to explicitely format dates, for date rolling purposes
  • Fixed a bug with multiple templated matches not evaluating propertly
  • Fixed a bug with exporting not working correctly with external modules
  • Fixed the documentation

0.8.4

Added:

0.8.3 (2016-02-03)

Added: - Tutum configuration - Fixed bug when new external modules were added even though the source didn’t change (https://github.com/SpectoLabs/mirage/pull/81)

0.8.2 (2015-11-05)

Added: - Displaying applied delays in event log (tracker) page if there was one. Users can now filter based on added delays

by adding “d:200” to display all 200 ms delays, operators like >, <, >=, <= are also available.

0.8.1 (2015-11-04)

Added: - Database authentication. Now you can specify MongoDB user (mongo.user) and password (mongo.password) in the .ini file. - Now looking for environment variables for database connection setup:

  • export MONGO_URI=mongodb://<dbuser>:<dbpassword>@mongo_host:mongo_port/database
  • export MONGO_DB=stubodb
  • Cache (Redis) connection info can now be supplied through environment variables: + export REDIS_ADDRESS=new_hostname_or_ip + export REDIS_PORT=6379 + export REDIS_PASSWORD=very_secret More information can be found here: https://github.com/SpectoLabs/mirage/wiki/Configuration

Changed:

Fixed: - Track all hosts not showing information for all hostnames due to bug when loading initial cookie.

0.8.0 (2015-10-27)

Added: - Documentation for Tracker API and how to create useful queries. Also, created documentation for Tracker record details.

Changed: - Disabled certificate verification when importing scenarios (executing commands) - Changed all REST API (v2) URL paths: removed “/stubo/” from URL since it doesn’t hold any information and there is no

point in providing application former name inside url.
  • Updated documentation, tests to accommodate URL changes.

0.7.2 (2015-10-26)

Added: - Direct upload API (addresses https://github.com/SpectoLabs/mirage/issues/10). Now users can upload exported .zip files

directly into Mirage. There were also few modifications how Mirage parses .yaml configuration files such as now it only reads scenario and session names. All archived .json files will be treated as stubs and will be imported under the same scenario. This will make it easier to generate initial test data since you don’t have to updated .yaml configuration file with each created stub file. Multiple PRs.

Changed: - Changed how Mirage exports scenarios to ”.yaml” files. Now it doesn’t add some non compatible tags like {{values}} to yaml file since

readers couldn’t parse that information. Those lines were added to export files so it would be possible to change values during import but it is a lot easier to do that with standard “yaml” libraries.

Fixed: - Fixed bug when you could have deleted scenario which had active sessions. PR: https://github.com/SpectoLabs/mirage/pull/49

Removed: - Documentation cleanup in https://github.com/SpectoLabs/mirage/pull/62, https://github.com/SpectoLabs/mirage/pull/61. A lot

of content added to project wiki https://github.com/SpectoLabs/mirage/wiki. Since it is a lot easier to maintain wiki than sphinx docs - only essential, tightly coupled information like API reference and few other things were left in traditional docs.

0.7.1 (2015-10-20):

Added: - Added button to create scenario where users can also specify a session name and Mirage will start recording. - “End all sessions” button now instead of being disabled for dormant sessions - switches either to “begin playback”

or “start recording” based on current stub count.
  • Added new API for getting information about found response (similar to get stub response) although instead of Mirage just using that information to create the original response - it now provides data about desired headers, body and status code. This enables proxy to store encoded data inside Mirage with required headers for decoding and then recreating original response without tampering with it. Original design was limited to plain text only.
  • Users can now override session and scenario by supplying any hostname. So a user that is accessing Mirage through the hostname A - can also create scenario, start session and end it for host B. This was needed for running Mirage in container environment where communication between proxy and Mirage was established via DNS aliases (or links).
  • Added all javascript libraries to source control to make development and management easier.

Changed: - By default user is now tracking all hosts (you can still choose to see only your host and that value will be saved in a cookie).

This was needed due to the fact that while running Mirage in a container - it’ fairly difficult to know on which hostname Mirage is accessible through the container network or any other SDN.
  • Date rolling by default now expects YYYY/MM/DD instead of YYYY/DD/MM.

Deprecated:

Removed: - Old design templates - Old web UI handlers, utilities (in service/api.py) - Old web UI javascript files and CSS styles

Fixed: - Fixed bug when due to websocket being blocked - tracker page failed to load new pages and filter. Now if it’s available

in browser but terminated upon creation (i.e. firewall blocks it) - it will fall back to HTTP calls.
  • When ensuring tracker indexes during startup - Mirage now reuses initial MongoDB connection, this solves some bugs when running in a container environment.
  • Fixed problem when during startup Mirage also tried to import some functions from testing packages that required testing dependencies.

0.7 (2015-10-02)

Added: - REST API for Mirage management. This API currently covers most of the management commands

although it may slightly change (for example current “get response stub” request body is likely to be changed) This new API also has new functionality that was not available in the previous JSON API such as Tracker collection record filtering and pagination through REST. It also provides WebSocket supported filtering to speed up search in Tracker.
  • Moved from Tornado template engine to React.js.
  • New UI based on React.js framework. All web UI has been restructured, old /manage page was removed and its functionality split into “management” side menu where users can directly access scenario, module, delay policies or direct command execution pages. All of the data to this front-end is supplied by the new REST APIv2 and almost nothing is rendered on the server side (except for showing current Mirage version, however that may also change in future releases)
  • Webpack configuration for compiling .jsx files to .js, this creates javascript bundles that can be easily imported in the separate pages and decreases loading time.
  • Dockerfile for building Mirage Docker image and separate docker-compose script to launch dockerized Mirage environment that interconnects through container network.
  • Syntax highlighting for

Changed: - Deployment and application startup has been changed. Now, instead of executing setup.py, copying configuration to

virtualenv and then from there launching Mirage by calling “stubo” command (that was far from standard approach at launching Python application) - it was changed to installing requirements from requirements.txt file with pip and then executing “python run.py” in the project root.
  • Tracker collection is now being checked during each application startup. Mirage now checks whether it exists and can create a capped collection if it’ not there. Then it ensures indexes.

Deprecated: - Current web UI is currently deprecated, although not removed. - Current handlers, handlers_mt, api functionality for serving and legacy UI is deprecated.

Fixed:

  • Multiple open connections to MongoDB during tests
  • Performance degradation due to indexing fixed
  • Fault in multi-date rolling (BA issue)

0.6.6 (2015-08-10)

  • Fixed bug when due to variable imports from testing packages startup failed
  • Imports refactored, modules are now more independent

0.6.5 (2015-07-24)

  • Correctly showing weighted delays in /manage page #77
  • Moving python package requirements into separate requirements file, added production and development requirement files to avoid installing unnecessary testing packages in production. #78

0.6.4 (2015-07-16)

  • Added indexes to database, optimized queries to database - /manage page is loading quickly now even when there are tens of thousands of stubs and tracker collection larger than > 100 000 records. #75
  • Switched to mongo aggregation framework functionality when querying scenarios for their sizes and record dates. #68
  • Added API call to rename scenario (should improve automated testing as it is a solution to several GitHub issues raised by BA). #71
  • Optimised stub insertion #69
  • Brought back export to .commands file, new YAML format files are exported in separate directory #64
  • Fixed several bugs that could have been causing memory overflow in Stubo instances. #61 #62
  • Parameter overrides when uploading stubs
  • “worst latency” chart

0.6.3 (2015-06-30)

  • YAML config (#12)
  • Fix to support repeating elements within XMLMangler (#55)
  • New weighted delay (#45)

0.6.2

  • Rest support
  • Parameterize session on get/export and exec/cmds calls (#39)

0.6.1 (2015-05-11)

  • Return the http status code of exec/cmds requests (#28)
  • Added tracker scenario filter (#23)
  • Added stub priority
  • Export runnable scenarios

0.6 (2015-03-25)

  • Initial cut of open source version