Skip to content
Tags give the ability to mark specific points in history as being important
  • 0.7.4
    36d7fa5d · Updated changelog. ·
    Release: 0.7.4
    v.0.7.4
    Added error count for Memory Error and RabbitMQ.
    Fixed issue #6 Network Interfaces not disappearing after the Docker Contained and it's virtual network is gone.
    
    v.0.7.3
    Fixed bug #4 in osutils.py that does not catch exception if /proc/1/cgroup does not exist.
    Fixes bug #5 Percentage of Memory Free was calculated in GB. If your system was using less than 1 GB, then
    Memory Free was displayed as 0%.
    Added Memory Read Error to the list of errors.
    Detected and Displayed if VM is OpenStack.
    Fixed paths for tests with pytest.
    Increased Code Coverage of DateTime class to 100%.
    
    v.0.7.2
    Added Changelog file.
    Increased functionality in FileUtils Class.
    Added Full code coverage tests for FileUtils.
    Closes #3. Space disaligned when a Network Interface has lots of traffic.
    Added more space for more GiB transmitted.
    Added separators for fields.
    Added errors in Logs: Errors in Kernel.
  • 0.7.6 Release: 0.7.6
    v.0.7.6
    Implemented -h --help
    Implemented -n --iterations for doing a number of iterations and then leaving. For automation.
    Implemented -s --sleep for waiting seconds.
    Impremented -b --blackandwait support.
    Fixed #9 Black and Color mode displays blue or yellow colors
    Implemented method to search for hard drive errors of the type: blk_update_request: I/O error
    
    v.0.7.5
    Fixed RuntimeError: dictionary changed size during iteration when making disappear a Network, by disconnecting a VPN or
    shutting down a Docker Container, or removing virtual interfaces.
    Added support for RabbitMQ Error: AMQP server xxxx:5672 closed the connection. Check login credentials: Socket closed: IOError: Socket closed
    Added support for parameters.
    Added support for -v or --version to display version message.
  • 0.7.7 Release: 0.7.7
    v.0.7.7
    Getter for logerrorscheckerutils.i_errors_hard_drive
    Logs are loaded and joined before searching for errors.
    Implemented -x --columns. When passed minimum fixed screen will be 130.
    Implemented -y --rows. When passed minimum fixed screen will be 50.
    Special fix to make it work in Docker.
    The Width and Height at which the screen is rendered is displayed on the Bottom.
  • 0.7.8
    Fixes #21 - Adds compatibility with Python 3.5.0.
  • 0.7.8c
    525f8ec3 · Screenshot v.0.7.8 ·
    Release: 0.7.8c
    v.0.7.8c
    Commented annotations and type hinting, to make CTOP compatible with Python 3.5.0.
    Added Available RAM.
    Added Google GCP detection.
    Inform if it doesn't have permissions to decode DMI.
    Print the userId (numeric) and the User (string), like: 1000 carles or 0 root.
    Logic for swappiness <= 10 Ok, >10 and <= 30 warning, >30 red (alert).
    Reduced digits for swap to 2, to avoid confusions.
  • v.0.7.9 Release: v.0.7.9
    v.0.7.9
    Added plugin system. Plugins can be written and added to CTOP for different tasks.
    Added detection for Raspberry Pi CPUs. Fixes #24. https://gitlab.com/carles.mateo/ctop/-/issues/24
    No longer reported unable to Decode DMI when in Raspberry Pi systems, as they don't have it and the file does not exists in /proc.
    When seconds to sleep is > 1 i_seconds_since_data_fetch is still increased by one. Fixes #25. https://gitlab.com/carles.mateo/ctop/-/issues/25
    Created a hook to register methods to be executed when exiting CTOP. That's handy to turn off the LEDs of the Raspberry Pi off.
  • 0.8.0 Release: 0.8.0
    Compatible with Python 2.
  • 0.8.1
    5850a5d3 · v.0.8.1 Changelog update. ·
    Release: 0.8.1
    v.0.8.1
    
    Fixed:
    Bug: Python 2 - As division is Integer in Python 2: Free Mem, Avail are shown as 0%
    Bug: Python 2 - Size of root is rounded and Free inodes displayed as 0% due to Python 2 integer's division
    
    RELEASE NOTES:
    Still those bugs pending for Python 2:
    
    - https://gitlab.com/carles.mateo/ctop/-/issues/29
    Bug: Python 2 - Unable to decode DMI
    
    - https://gitlab.com/carles.mateo/ctop/-/issues/31
    Bug: Python 2 - The list of processes (left) is not sorted
  • 0.8.2 Release: 0.8.2
    v.0.8.2 - Tag: 0.8.2 Released 2021-04-01
    
    Bug: Units for MB and KB displaying rounded as .MB
    We were getting GB as 62.00GB when we had 62.50GB, or 9.00GiB instead of 9.56GiB.
    Fixes #32
    
    Added support for PB in memory/sizes as best unit. Before max was TB.
    
    Fixed bug that if Swap Free or Swap in Use was in order of TB, would display same value as Swap Total.
    
    Fixed bug: Swap in use is missing the Units at the end
    Fixes #35
    
    Extending Unit Testing for fileutils.py to more cases and fixing test_string.
    FileUtils.strings method now uses read_binary instead of opening the file and doing all the job itself.
    
    RELEASE NOTES:
    Still those bugs pending for Python 2:
    
    - https://gitlab.com/carles.mateo/ctop/-/issues/29
    Bug: Python 2 - Unable to decode DMI
    
    - https://gitlab.com/carles.mateo/ctop/-/issues/31
    Bug: Python 2 - The list of processes (left) is not sorted
  • 0.8.3 Release: 0.8.3
    v.0.8.3 - Tag: 0.8.3 Released 2021-04-04
    
    Bug: Memory usage is not updated after initial load
    https://gitlab.com/carles.mateo/ctop/-/issues/38
    Fixes #38
  • 0.8.4 Release: 0.8.4
    v.0.8.4 - Tag: 0.8.4 Released 2021-05-17
    
    Implemented ProcessesUtils.get_process_fds(PID)
    
    Added Operstate, to display is Network Interface is Up or Down.
    
    Added basic Unit Test for CTOP with iterations mode 3, 2 and 1.
    
    Updated library fileutils and test_fileutils. Update is to methods not used by CTOP. Maintenance update.
    
    Added library PythonUtils to detect Python version.
    
    Now CTOP shows Python Version in execution.
    
    New functionality so if a unit is greater or equal to 1,000, decimals can be removed.
    
    Changed "GiB" display units to "GB"
    
    Fixed bug in Python2 with decimals, changes ins StringUtils and NetworkUtils:
    Fixes #39
    
    Fixed bug when there were "memory read errors" but not "memory errors"
    Fixes #40
  • 0.8.5 Release: 0.8.5
    v.0.8.5 - Tag: 0.8.4 Released 2021-05-22
    
    Added File Descriptors in use (sum of all the processes) / Maximum.
    Fixes #26
    After, modified to read from Kernel at /proc/sys/fs/file-nr
    
    Fixed bug: Swap total of the system is displayed as 0GB even when it's not.
    Fixed #42
    
    Fixed some bugs in StringUtils.convert_to_multiple_units.
    Added some Unit Testing for StringUtils. 67% Code Coverage.
  • 0.8.6
    f16319be · Fixes #33 ·
    Release: 0.8.6
    Fixed Google Cloud Instances not being identified as them.
    Fixes #44
    
    Update from clib Carles' libraries, to read text files by default as utf-8.
    
    Simplified the process of sorting the processes. Code much more concise and small using lambdas.
    
    Implemented Feature Request: Mark in color when a NIC is up or down
    Closes #43
    
    Look for lowercase too when trying to detect which time of Cloud or Virtual platform it is.
  • 0.8.7 Release: 0.8.7
    v.0.8.7
    
    Solved a typo in a comment in ctop.py.
    
    Fixed a overindented instructions (keyboard mess I guess) in screenutils.py
    
    Fixed bug for parameter rows being ignored for rendering the list of processes.
    Fixes #47
    
    Fixed bug for hostanme and Kernel version breaking the maximum width of the line.
    Fixes #48
    
    Pending related bug for the next line. Related #49
    
    Refactor to extract wide functionality, plus adding 3 tests into test_renderblocks.py.
    Current Code Coverage of renderblocks.py is 9%.
    
    When the ports are wider than the screen width, the list is cut and ".." is added at the end.
    Fixes #49
    
    Added additional test cases for test_renderblocks.py
    
    Fixed wide specified doesn't show part of the platform, having enough space
    Fixes #50
  • 0.8.8
    28fc96b7 · Screenshot from v. 0.8.8. ·
    Release: 0.8.8
    v.0.8.8
    
    Added to Dockerfile:
    # This will make sure printing in the Screen when running in detached mode
    ENV PYTHONUNBUFFERED=1
    
    Added packages to sample Dockerfile:
    pytest
    
    Added Code Coverage for case in StringUtils where o_stringutils.convert_string_to_integer("") is sent an empty string.
    
    Refactor StringUtils.convert_to_gb() to convert_kb_to_gb().
    
    Added Unit Testing for convert_kb_to_gb().
    Code Coverage from StringUtils raised to 83%.
    
    Added Unit Testing for StringUtils convert_bytes_to_best_size()
    
    Covering all the cases for StringUtils.convert_to_multiple_units()
    
    Added Code Coverage StringUtils.get_dict_value() raising Code Coverage in the class to 88%.
    
    Added Code Coverage StringUtils.get_bytes_per_second() raising Code Coverage to 89%.
    
    Added Code Coverage StringUtils.get_percent() and added special case for division by 0. Code Coverage is 95%.
    
    If StringUtils.get_bytes_per_second() if passed 0 as seconds, this is considered 1 second.
    We avoid a Division by Zero error, and in most of cases, you want to know the allowed bandwidth, so considered that it took 1 second
    will be correct.
    
    OsUtils.update_is_in_vbox_or_amazon_or_gcp() now transforms to lowercase first, before searching.
    OsUtils.update_is_in_openstack() now transforms to lowercase first, before searching.
  • 0.8.9 Release: 0.8.9
    v.0.8.9
    Fixed detection of Docker
    Fixes #51
    
    You can test it running something similar to:
    sudo docker run -it -exec --mount type=bind,source=/home/carles/Desktop/code/ctop_pro/src/ctop/,target=/ctop python /ctop/ctop.py
    
    Or
    sudo docker run -it -exec --mount type=bind,source=/home/carles/Desktop/code/ctop_pro/src/ctop/,target=/ctop ubuntu /bin/bash
    And installing python3 and runnint /ctop/ctop.py
    
    Changed import in test_ctop.py that was causing the test to not find the package.
    
    Added some tests for OsUtils class.
    
    Modified OsUtils.get_total_and_free_space_in_gib() to return float instead of Integer.
    
    Added OsUtils test_get_inodes_in_use_and_free().
    
    Memory line adapts to the width available in the Terminal.
    Closes #52
    
    Added more tests to OsUtils class achieving 72% code coverage.
    
    Fixed test for OsUtils.get_uptime()
    
    Added 100% Test Code Coverage to DateTimeUtils class.
    
    Added 100% Test Code Coverage to SystemUtils class.
    
    Added Test file for PythonUtils class.
    Increase Code Coverage for PythonUtils class.
    
    Added test_memutils Unit Testing.
    
    Added test_memutils.test_update_meminfo_with_empty_results() and test_memutils.test_update_meminfo_with_proc_meminfo_results()
    Added more cove coverage to memutils up to 100%.
    
    Fixed a bug in get_swapinuse.
    
    Refactor to renderblock to use MemUtils.get_swapinuse_in_kb().
    Added optional parameter to MemUtils.get_swapinuse_in_kb() to return kB units or not.
    
    Refactor to extract reading file from MemUtils.update_meminfo()
    
    Change in osutils.get_total_and_free_space_in_gib() to get the space from round(f_total_gb ,2) instead of "%.2f" % f_total_gb
    
    Fixed imports in test_osutils.py test_pythonutils.py test_renderblocks.py test_systemutils.py so automated tests from Jenkins work.