olive2022


Nameolive2022 JSON
Version 0.1.7 PyPI version JSON
download
home_pagehttps://github.com/cmusatyalab/olive2022
SummaryEdge-native virtual desktop application
upload_time2023-07-13 04:03:18
maintainer
docs_urlNone
authorCarnegie Mellon University
requires_python>=3.7,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Olive 2022

Edge-native virtual desktop application that uses the
[Sinfonia](https://github.com/cmusatyalab/sinfonia) framework to discover a
nearby cloudlet to run the virtual machine.

Virtual machine images from [Olivearchive](https://olivearchive.org) are
converted from their original vmnetx package format to a containerDisk
that can be executed with KubeVirt. The containerDisk images can be pushed into
a private Docker registry.


## Installation

Olive2022 depends on an available VNC client. I've found that virt-viewer from
libvirt generally does a good job. On a Debian/Ubuntu system this can be
installed with.

```
sudo apt install virt-viewer
```

It is best to manage the installation of olive2022 in a separate virtualenv with
[pipx](https://pypa.github.io/pipx/installation/).

```
python3 -m pip install --user pipx
python3 -m pipx ensurepath
```

Once these dependencies are in place, installation should be fairly
straightforward, even specifying a python version should only be necessary if
the system default happens to be older than Python-3.7.

```
pipx install olive2022
```

If installation fails at any point, there are various troubleshooting tips at
the end of this document.


## Usage

`olive2022 install` creates a .desktop file to declare a handler for
vmnetx+https URLs.

When you then 'Launch' a virtual machine from the Olivearchive website, the
handler will execute `olive2022 launch` with the VMNetX URL for the virtual
machine image.


## Internals

`olive2022 launch` hashes the VMNetX URL to a Sinfonia UUID, and uses
`sinfonia-tier3` to request the relevant backend to be started on a nearby
cloudlet. When deployment has started, `sinfonia-tier3` will create a local
wireguard tunnel endpoint and runs `olive2022 stage2` which waits for the
deployment to complete by probing if the VNC endpoint has become accessible.
It will then try to run remote-viewer (from the virt-viewer package),
gvncviewer, or vncviewer.


## Converting VMNetX packages

`olive2022 convert` will take a VMNetX URL, download the vmnetx format package
file and convert it to a containerDisk image and associated Sinfonia recipe.
The Docker registry to push the containerDisk image to can be set with the
`OLIVE2022_REGISTRY` environment variable. If it is a private repository, the
necessary pull credentials to add to the recipe can be specified with
`OLIVE2022_CREDENTIALS=<username>:<access_token>`.


## Installation troubleshooting

#### `/usr/bin/python3: No module named pip`

Pip is not installed on your system. On Debian/Ubuntu systems, to reduce the
chance of interfering with packaged Python modules, the default Python
installation does not install pip and even disables the `python3 -m ensurepip`
way of installing a recent version of the pip package manager. You have to
install the python3-pip and python3-venv packages.

```
sudo apt install python3-pip python3-venv
```

#### `pipx: command not found`

`python3 -m pipx ensurepath` is only able to fix the PATH environment for
some (mostly bourne-like) shells. If you are using bash/sh/fish/zsh it may be
sufficient to restart your terminal to pick up the new path.

With csh/tcsh you will probably have to add the following to your `.login` or
`.cshrc` files and/or run `rehash` to pick up any new binaries.

```
set path = ( $path $HOME/.local/bin )
```

#### `ERROR: Could not find a version that satisfies the requirement olive2022 (from versions: none)`

Because Olive2022 depends on Python-3.7 or newer, installation fails with this
error when the default Python interpreter is older. On Ubuntu 18.04 you can
install a newer Python interpreter and explicitly specify it as an alternate
interpreter version when installing with pipx.

```
sudo apt install python3.8
pipx install --python python3.8 olive2022
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cmusatyalab/olive2022",
    "name": "olive2022",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Carnegie Mellon University",
    "author_email": "satya+group@cs.cmu.edu",
    "download_url": "https://files.pythonhosted.org/packages/47/13/e8d490ff4fed675d065a818eff1cfa70a08d3a06e6ccc04d3ea8432d2ad1/olive2022-0.1.7.tar.gz",
    "platform": null,
    "description": "# Olive 2022\n\nEdge-native virtual desktop application that uses the\n[Sinfonia](https://github.com/cmusatyalab/sinfonia) framework to discover a\nnearby cloudlet to run the virtual machine.\n\nVirtual machine images from [Olivearchive](https://olivearchive.org) are\nconverted from their original vmnetx package format to a containerDisk\nthat can be executed with KubeVirt. The containerDisk images can be pushed into\na private Docker registry.\n\n\n## Installation\n\nOlive2022 depends on an available VNC client. I've found that virt-viewer from\nlibvirt generally does a good job. On a Debian/Ubuntu system this can be\ninstalled with.\n\n```\nsudo apt install virt-viewer\n```\n\nIt is best to manage the installation of olive2022 in a separate virtualenv with\n[pipx](https://pypa.github.io/pipx/installation/).\n\n```\npython3 -m pip install --user pipx\npython3 -m pipx ensurepath\n```\n\nOnce these dependencies are in place, installation should be fairly\nstraightforward, even specifying a python version should only be necessary if\nthe system default happens to be older than Python-3.7.\n\n```\npipx install olive2022\n```\n\nIf installation fails at any point, there are various troubleshooting tips at\nthe end of this document.\n\n\n## Usage\n\n`olive2022 install` creates a .desktop file to declare a handler for\nvmnetx+https URLs.\n\nWhen you then 'Launch' a virtual machine from the Olivearchive website, the\nhandler will execute `olive2022 launch` with the VMNetX URL for the virtual\nmachine image.\n\n\n## Internals\n\n`olive2022 launch` hashes the VMNetX URL to a Sinfonia UUID, and uses\n`sinfonia-tier3` to request the relevant backend to be started on a nearby\ncloudlet. When deployment has started, `sinfonia-tier3` will create a local\nwireguard tunnel endpoint and runs `olive2022 stage2` which waits for the\ndeployment to complete by probing if the VNC endpoint has become accessible.\nIt will then try to run remote-viewer (from the virt-viewer package),\ngvncviewer, or vncviewer.\n\n\n## Converting VMNetX packages\n\n`olive2022 convert` will take a VMNetX URL, download the vmnetx format package\nfile and convert it to a containerDisk image and associated Sinfonia recipe.\nThe Docker registry to push the containerDisk image to can be set with the\n`OLIVE2022_REGISTRY` environment variable. If it is a private repository, the\nnecessary pull credentials to add to the recipe can be specified with\n`OLIVE2022_CREDENTIALS=<username>:<access_token>`.\n\n\n## Installation troubleshooting\n\n#### `/usr/bin/python3: No module named pip`\n\nPip is not installed on your system. On Debian/Ubuntu systems, to reduce the\nchance of interfering with packaged Python modules, the default Python\ninstallation does not install pip and even disables the `python3 -m ensurepip`\nway of installing a recent version of the pip package manager. You have to\ninstall the python3-pip and python3-venv packages.\n\n```\nsudo apt install python3-pip python3-venv\n```\n\n#### `pipx: command not found`\n\n`python3 -m pipx ensurepath` is only able to fix the PATH environment for\nsome (mostly bourne-like) shells. If you are using bash/sh/fish/zsh it may be\nsufficient to restart your terminal to pick up the new path.\n\nWith csh/tcsh you will probably have to add the following to your `.login` or\n`.cshrc` files and/or run `rehash` to pick up any new binaries.\n\n```\nset path = ( $path $HOME/.local/bin )\n```\n\n#### `ERROR: Could not find a version that satisfies the requirement olive2022 (from versions: none)`\n\nBecause Olive2022 depends on Python-3.7 or newer, installation fails with this\nerror when the default Python interpreter is older. On Ubuntu 18.04 you can\ninstall a newer Python interpreter and explicitly specify it as an alternate\ninterpreter version when installing with pipx.\n\n```\nsudo apt install python3.8\npipx install --python python3.8 olive2022\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Edge-native virtual desktop application",
    "version": "0.1.7",
    "project_urls": {
        "Homepage": "https://github.com/cmusatyalab/olive2022",
        "Repository": "https://github.com/cmusatyalab/olive2022"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "027e0fa7d0504e43867424734e486f2faf53715c58d7e3c22c7ad42930bdbb1d",
                "md5": "a57bae50928b5fdcc8d8f34b995d6796",
                "sha256": "d36263e7731cdb87d3043b7930fb4dc9d3fa7381eaf868b16da9f9b1ad47c914"
            },
            "downloads": -1,
            "filename": "olive2022-0.1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a57bae50928b5fdcc8d8f34b995d6796",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4.0",
            "size": 8705,
            "upload_time": "2023-07-13T04:03:17",
            "upload_time_iso_8601": "2023-07-13T04:03:17.132551Z",
            "url": "https://files.pythonhosted.org/packages/02/7e/0fa7d0504e43867424734e486f2faf53715c58d7e3c22c7ad42930bdbb1d/olive2022-0.1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4713e8d490ff4fed675d065a818eff1cfa70a08d3a06e6ccc04d3ea8432d2ad1",
                "md5": "6b5ae05e302c7a0c39153935dfcdae9b",
                "sha256": "538e4b12305e32710b94d212a54250417b5bee0558b544bc1b15fb3eecb6fb85"
            },
            "downloads": -1,
            "filename": "olive2022-0.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "6b5ae05e302c7a0c39153935dfcdae9b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4.0",
            "size": 8981,
            "upload_time": "2023-07-13T04:03:18",
            "upload_time_iso_8601": "2023-07-13T04:03:18.655569Z",
            "url": "https://files.pythonhosted.org/packages/47/13/e8d490ff4fed675d065a818eff1cfa70a08d3a06e6ccc04d3ea8432d2ad1/olive2022-0.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-13 04:03:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cmusatyalab",
    "github_project": "olive2022",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "olive2022"
}
        
Elapsed time: 0.09305s