Skip to main content

The HackerLab 9000 Controller Library.

Project description

Lib-Hal9k

The HackerLab 9000 controller library.

(Note: This project is unaffiliated with the Android Mod which goes by the name Hal9k.)

Lingo

This library is designed to provide the simplest possible API for controlling VirtualBox VMs, without any of the fancy stuff. There are only three actions we care about:

  • Starting the VM.
  • Stopping the VM.
  • Reverting the VM to the most recent snapshot.

This functionality is similar to that of a basic music player, which provides a familiar metaphor. In the language of this library, a VM is a "Track," which you can "play," "rewind," or "stop."

The Meta controller can list and retrieve tracks.

Demo

>>> from hal9k import Meta
>>> # Instantiate a Meta controller.
>>> meta = Meta()
>>> # Retrieve a track listing.
>>> meta.get_tracks()
['Debian 9.12 x64', 'MSEdge - Win10', 'Kali 2020.2 x64']
>>> # Instantiate a Track controller.
>>> track = meta.fetch('Debian 9.12 x64')
>>> # Start the track.
>>> track.play()
>>> # Check that it's running.
>>> track.status()
1
>>> # Stop the track.
>>> track.stop()
>>> # Check that it's stopped.
>>> track.status()
0
>>> # Rewind the track.
>>> track.rewind()

How it Works

The Meta.get_tracks function returns a list of the names of all VMs which have a PRODUCTION snapshot defined. The Track.rewind function restores the track's PRODUCTION snapshot. There can be only one PRODUCTION shapshot for each VM. If you decide to make a new PRODUCTION snapshot, be sure to delete the one previous. Any VMs lacking a PRODUCTION snapshot will be invisible to hal9k.

A hal9k.track.TrackException exception will be raised for Track.play and Track.rewind if the track is already playing. Likewise for Track.stop if the track is already stopped. Tracks must be stopped before using Track.play or Track.rewind, and tracks must be playing before using Track.stop.

Changelog

  • 0.7.0 :: Added hal9k.track.TrackException error handling.
  • 0.6.2 :: Updated names and language.
  • 0.6.1 :: Updated Meta.get_tracks function to list only production-ready VMs.
  • 0.6.0 :: Added rewind function to Track class.
  • 0.5.0 :: Added status function to Track class.
  • 0.4.0 :: Added stop function to Track class.
  • 0.3.0 :: Added Track class with play function.
  • 0.2.0 :: Added fetch function to Meta class.
  • 0.1.0 :: Added Meta class with get_tracks function.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Lib-HaL9k-0.7.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

Lib_HaL9k-0.7.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file Lib-HaL9k-0.7.0.tar.gz.

File metadata

  • Download URL: Lib-HaL9k-0.7.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.2

File hashes

Hashes for Lib-HaL9k-0.7.0.tar.gz
Algorithm Hash digest
SHA256 016c5673b9a6272b7febbf70cfe01c7f48ea7ef2e6c8302fae2fbe4119a6b77a
MD5 e6ce211d61bb80474e27bcba02c01842
BLAKE2b-256 3d1a262ea19c7e56420444cd8740aa664cfa9df8178b7a5b4194fe2b3b5621a9

See more details on using hashes here.

File details

Details for the file Lib_HaL9k-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: Lib_HaL9k-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.2

File hashes

Hashes for Lib_HaL9k-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e15ff9164d211b5bceb4cada0eaf3566a6b4c938d6c5fd171ac61fb226faceb7
MD5 1e9df1466942b553f3a706e7b1501193
BLAKE2b-256 57a95320bd2213c324ab7361ecdadee44c3e61a4deeb959817dd06f8aee8eae8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page