{ "info": { "author": "Mirantis Inc.", "author_email": "workloadmobility@mirantis.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: OpenStack", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "\ufeffCloudFerry\n==========\n\n[![Build Status](https://travis-ci.org/Mirantis/CloudFerry.svg?branch=master)](https://travis-ci.org/Mirantis/CloudFerry)\n[![Coverage Status](https://coveralls.io/repos/github/Mirantis/CloudFerry/badge.svg?branch=master)](https://coveralls.io/github/Mirantis/CloudFerry?branch=master)\n[![PyPI version](https://badge.fury.io/py/CloudFerry.svg)](https://badge.fury.io/py/CloudFerry)\n\n# Overview\n\nCloudFerry is a tool for resources and workloads migration between two \nOpenStack clouds. \n\n\n# Supported OpenStack Releases\n\n - Grizzly\n - Icehouse\n - Juno\n\n\n# Objects Supported for Migration\n\n## Keystone\n\n - Tenants\n - User roles\n\n## Neutron\n\n - Networks\n * Private\n * Public\n * Shared\n - Subnets\n - Ports\n - Floating IPs\n - Security groups\n - Routers\n - LBaaS objects\n - Quotas\n\n## Glance\n\n - Images\n\n## Cinder\n\n - Volumes\n - Quotas\n\n## Nova\n\n - VMs\n - VM's ephemeral storage\n - Flavors\n - User quotas\n - Tenant quotas\n - Key pairs\n\n# User documentation\n\nEnd-user documentation is available in `docs` folder, to compile in HTML run:\n\n```\nsphinx-build docs/ sphinx-build\n```\n\n# Requirements\n\n - Connection to source and destination clouds through external (public) \n network from host with CloudFerry.\n - Valid private ssh-key for both clouds which will be using by CloudFerry for\n data transferring.\n - Admin keystone access (typically admin access point lives on 35357 port).\n - sudo/root access on compute and controller nodes.\n - Openstack MySQL DB write access.\n - Credentials of global cloud admin for both clouds.\n - All the Python requirements are listed in requirements.txt.\n\n\n# Installation\n\nCloudFerry can be installed as docker container or it can be installed as a\npython package by pip.\n\n## Installation with pip\n\n1. Make sure you have non-python packages installed in your system\n(following for Ubuntu):\n ```\n sudo apt-get install libffi-dev libssl-dev libxml2-dev \\\n libxslt1-dev python-pip python-dev git -y\n ```\n\n2. Install virtualenv version 15.0.3\n ```\n sudo pip install virtualenv==15.0.3\n ```\n\n3. Install cloudferry with pip:\n ```\n virtualenv .venv\n source .venv/bin/activate\n pip install git+git://github.com/Mirantis/CloudFerry.git\n ```\n\n## Installation with docker\n\n### Building the docker container\n```\ndocker build --build-arg cf_commit_or_branch=origin/master -t /cf-in-docker .\n```\n\n### Start container\n```\ndocker run -it /cf-in-docker\n```\n\n### Saving and loading the container files\n```\ndocker save --output=/path/to/save/CloudFerry.img /cf-in-docker\ndocker load --input=/path/to/save/CloudFerry.img\n```\n\n# Usage\n\n## Overview\n\nCloudFerry tool is used by running python `cloudferry` executable from the \ncommand line.\n\nAll available commands can be viewed with:\n```\n# see list of available commands\ncloudferry list\n```\n\n## Configuration\n\nSample config can be generated with\n```\noslo-config-generator --namespace cloudferry\n```\n\nConfiguration process is quite complex and mostly manual try-and-see-if-works\nprocess.\n\n## Whole cloud migration\n\nMake sure you have `migrate_whole_cloud` option in `migrate` section of config\nis set to `True`.\n\nUse `migrate` command with config file specified:\n\n```\ncloudferry migrate \n```\n\n## Migrating specific instances\n\nIn order to migrate specific VMs, one should use filters. This is done through\nmodifying filters file (`configs/filter.yaml` by default).\n\nEdit `configs/filter.yaml`:\n\n```\ninstances:\n id:\n - 7c53a6ab-0149-4232-80b3-b2d7ce02995a\n - f0fea76a-0a7d-4c25-ab9e-f048dbc7365d\n```\n\nRun migration as usual:\n```\ncloudferry migrate configuration.ini --debug\n```\n\n## Playground\n\nSee QUICKSTART.md for the quickest way of running your first successful migration.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Mirantis/CloudFerry", "keywords": "", "license": "Apache-2", "maintainer": "", "maintainer_email": "", "name": "CloudFerry", "package_url": "https://pypi.org/project/CloudFerry/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/CloudFerry/", "project_urls": { "Homepage": "https://github.com/Mirantis/CloudFerry" }, "release_url": "https://pypi.org/project/CloudFerry/1.55.3/", "requires_dist": [ "pika (==0.9.14)", "colorlog (==2.6.1)", "fabric (==1.10.2)", "ipaddr (==2.1.11)", "PyMySQL (==0.6.7)", "oslo.config (==3.9.0)", "oslo.utils (==3.15.0)", "pycrypto (==2.6.1)", "python-cinderclient (==1.3.1)", "python-glanceclient (==1.1.0)", "python-keystoneclient (==1.6.0)", "python-neutronclient (==2.6.0)", "python-novaclient (==2.25.0)", "python-swiftclient (==2.3.1)", "pyyaml (==3.11)", "pywbem (==0.7.0)", "redis (==2.10.5)", "sqlalchemy (==1.0.12)", "marshmallow (==2.4.2)", "jmespath (==0.9.0)", "pyOpenSSL (==16.2.0)", "paramiko (==1.16.0)", "taskflow (==1.30.0)", "alembic (==0.8.5)", "SQLAlchemy-Utils (==0.32.1)", "cliff (==2.0.0)", "oslo.serialization (==2.7.0)" ], "requires_python": "", "summary": "Openstack cloud workload migration tool", "version": "1.55.3" }, "last_serial": 2794605, "releases": { "1.41.0": [ { "comment_text": "", "digests": { "md5": "6948a35deb6515248430eb063e91f95f", "sha256": "14d18c031b5b0ab7fe7badd119da07d389d2cbd09a9669f01d91f61b8610535b" }, "downloads": -1, "filename": "CloudFerry-1.41.0-py2-none-any.whl", "has_sig": false, "md5_digest": "6948a35deb6515248430eb063e91f95f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 365136, "upload_time": "2016-05-10T14:35:38", "url": "https://files.pythonhosted.org/packages/4a/e2/752dd8b5d8df5898fbd36372fe838992f6f516ea801d4dac7f384a6147fd/CloudFerry-1.41.0-py2-none-any.whl" } ], "1.42.0": [ { "comment_text": "", "digests": { "md5": "a4bf17ae7aa5b7e5d938a766c44ac0c9", "sha256": "3bf9a14091b03a6c0c1902fe2423187c390b686a655df37092bc0df587c52300" }, "downloads": -1, "filename": "CloudFerry-1.42.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a4bf17ae7aa5b7e5d938a766c44ac0c9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 329000, "upload_time": "2016-06-09T07:32:42", "url": "https://files.pythonhosted.org/packages/44/3f/0099b8ff01b4979c44ccbb81f0c7eb5026877b5bae3611c277c9cce4d0cf/CloudFerry-1.42.0-py2-none-any.whl" } ], "1.44.0": [ { "comment_text": "", "digests": { "md5": "a638a752135d8bc3a873900476398282", "sha256": "ade91b79655de203a55307fb5b65644be8a2ba8b54a8dee05e37272e3a702913" }, "downloads": -1, "filename": "CloudFerry-1.44.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a638a752135d8bc3a873900476398282", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 331638, "upload_time": "2016-07-01T00:46:16", "url": "https://files.pythonhosted.org/packages/83/0e/6f381928bf5ff549e602cbc17510f4adb2945e8d80dd4812701f57010d14/CloudFerry-1.44.0-py2-none-any.whl" } ], "1.45.0": [ { "comment_text": "", "digests": { "md5": "bc3736f28222a7bc52b606760a85ea91", "sha256": "724be13d64752303738299067ffd037cfe6c861343c15514618a756d330ed357" }, "downloads": -1, "filename": "CloudFerry-1.45.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bc3736f28222a7bc52b606760a85ea91", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 332486, "upload_time": "2016-07-07T09:33:19", "url": "https://files.pythonhosted.org/packages/21/07/4390bbbe293754d4b03867bf5f0cd90a22fa6c11b58a5efffa06e5c8ecdf/CloudFerry-1.45.0-py2-none-any.whl" } ], "1.46.0": [ { "comment_text": "", "digests": { "md5": "fcd60e510d7d150eda36c2340bd6e72d", "sha256": "3feb209b9dd9c03ccfbd5df119f8c7a7a48aec731367926ea7d18da4707b6be9" }, "downloads": -1, "filename": "CloudFerry-1.46.0-py2-none-any.whl", "has_sig": false, "md5_digest": "fcd60e510d7d150eda36c2340bd6e72d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 332742, "upload_time": "2016-07-11T08:57:47", "url": "https://files.pythonhosted.org/packages/e3/be/c0a05d0079e033fb47e56363bad212e2b2b9221391974ba7d3d44c363c19/CloudFerry-1.46.0-py2-none-any.whl" } ], "1.47.0": [ { "comment_text": "", "digests": { "md5": "2b303a64135f44620cf89e2db633a83b", "sha256": "16efab55cd788bb9774120c492a58ce9c1740e12208d643afe5106640a186ecd" }, "downloads": -1, "filename": "CloudFerry-1.47.0-py2-none-any.whl", "has_sig": false, "md5_digest": "2b303a64135f44620cf89e2db633a83b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 333823, "upload_time": "2016-07-25T09:25:58", "url": "https://files.pythonhosted.org/packages/01/9d/faeeb4394cd14debdf46c9f50d065746c427223fb2ba124597c3803e04c2/CloudFerry-1.47.0-py2-none-any.whl" } ], "1.48.0": [ { "comment_text": "", "digests": { "md5": "5eb97cd028a0df490b8e8eb426b22c5a", "sha256": "0c4f66ce1b441bc6b62a29b7dfada4f58b8d3783d9bbecdd35608c12634d9a2c" }, "downloads": -1, "filename": "CloudFerry-1.48.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5eb97cd028a0df490b8e8eb426b22c5a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 333824, "upload_time": "2016-07-28T08:59:48", "url": "https://files.pythonhosted.org/packages/ff/8e/89f4d1200db92966ef98fc02b682d756b436d0d64dba13185f4c3f74b4c4/CloudFerry-1.48.0-py2-none-any.whl" } ], "1.49.0": [ { "comment_text": "", "digests": { "md5": "c8ea18d03809367af7eaa7eb1a483dfc", "sha256": "c7f86b7a78b55edf13f04382a95d3e3db8ad5b742ab5f8a097a030c5c063e081" }, "downloads": -1, "filename": "CloudFerry-1.49.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c8ea18d03809367af7eaa7eb1a483dfc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 334858, "upload_time": "2016-08-01T08:58:49", "url": "https://files.pythonhosted.org/packages/93/8e/314ce45c1d874df40a27fc76de8b75f1a23e1a01cf5861bd00d6c1199032/CloudFerry-1.49.0-py2-none-any.whl" } ], "1.50.0": [ { "comment_text": "", "digests": { "md5": "18ddb1ba60b55fd5f9c568447c04e4f2", "sha256": "baee0c40d803676d9ebf4cee99866fb955ce27af8c6b10723615a5a93861674a" }, "downloads": -1, "filename": "CloudFerry-1.50.0-py2-none-any.whl", "has_sig": false, "md5_digest": "18ddb1ba60b55fd5f9c568447c04e4f2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 334955, "upload_time": "2016-08-04T08:57:35", "url": "https://files.pythonhosted.org/packages/36/4f/fe19b83d0e1601abcd1d1ea92f7198889e240134b6f0f90b4fa55e6df007/CloudFerry-1.50.0-py2-none-any.whl" } ], "1.51.0": [ { "comment_text": "", "digests": { "md5": "86ffc8705c1f9994199d5ef40ce96667", "sha256": "987036e215a99f4750eb62b32924740999254dd3c0de8e71f9f0cf4a054a89e9" }, "downloads": -1, "filename": "CloudFerry-1.51.0-py2-none-any.whl", "has_sig": false, "md5_digest": "86ffc8705c1f9994199d5ef40ce96667", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 334983, "upload_time": "2016-08-08T09:05:51", "url": "https://files.pythonhosted.org/packages/2e/ca/f02d33cbb6815a2923fe57e11817065c07c90057e367ada62f3aba06c289/CloudFerry-1.51.0-py2-none-any.whl" } ], "1.52.0": [ { "comment_text": "", "digests": { "md5": "cf2c1c4390297977cfe666379a2e09c3", "sha256": "2c00fbfa9a074da116c49404aae0bd484aea78fccc80d85626b633882dc8d46a" }, "downloads": -1, "filename": "CloudFerry-1.52.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cf2c1c4390297977cfe666379a2e09c3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 334982, "upload_time": "2016-08-11T09:29:32", "url": "https://files.pythonhosted.org/packages/47/95/0da74c1148050a1585bcfc4de8c91fb7e88ded9c7f466f9126c835f1eec2/CloudFerry-1.52.0-py2-none-any.whl" } ], "1.53.0": [ { "comment_text": "", "digests": { "md5": "aa5eb1bde8a2807a91426e7fe4d6d0b5", "sha256": "bbcf82871fccc597aade67521c0492043285a3558e2e9c486e1268eefb261c45" }, "downloads": -1, "filename": "CloudFerry-1.53.0-py2-none-any.whl", "has_sig": false, "md5_digest": "aa5eb1bde8a2807a91426e7fe4d6d0b5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 335065, "upload_time": "2016-08-17T11:12:47", "url": "https://files.pythonhosted.org/packages/ee/84/bd3d5bca5c620ca289b6ae7b052122524920eab2d0479725e63c4efa9c07/CloudFerry-1.53.0-py2-none-any.whl" } ], "1.54.0": [ { "comment_text": "", "digests": { "md5": "d6b5a3b1683a0ad9f5995ac64084fa19", "sha256": "efe4f0a35be00f4bb4a5dd62357ef5200b3ba770940c4823aacefa345183ff46" }, "downloads": -1, "filename": "CloudFerry-1.54.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d6b5a3b1683a0ad9f5995ac64084fa19", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 335165, "upload_time": "2016-09-08T09:38:48", "url": "https://files.pythonhosted.org/packages/02/5a/b6a4ebb2925cab808191e9aa336ce22bcb3b9c526c9178fe0afdb68b2c13/CloudFerry-1.54.0-py2-none-any.whl" } ], "1.55.1": [ { "comment_text": "", "digests": { "md5": "53c83a612789d2fe9cb73b6d63d18a96", "sha256": "afc2e7f54c4c8763b4da77eb4e82e741dbc23fb726d275eba874650d6a9cc650" }, "downloads": -1, "filename": "CloudFerry-1.55.1-py2-none-any.whl", "has_sig": false, "md5_digest": "53c83a612789d2fe9cb73b6d63d18a96", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22499699, "upload_time": "2017-04-09T06:35:35", "url": "https://files.pythonhosted.org/packages/c5/cf/d84c61907df9298ab401a41197cc6c0d0c70a3ec73f9e0333c5fe1d6f284/CloudFerry-1.55.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "613facef57599dfec8d6f33fd7c3ec9e", "sha256": "0063842b5a07f40322038960d39f2bf8122ce3c83e3766056c810884ebe0ac33" }, "downloads": -1, "filename": "CloudFerry-1.55.1.tar.gz", "has_sig": false, "md5_digest": "613facef57599dfec8d6f33fd7c3ec9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22870858, "upload_time": "2017-04-09T06:35:41", "url": "https://files.pythonhosted.org/packages/78/a7/f48763a3339856a0a7bdd204741d1359a6736a6081049f3ab92cdd3bc2b1/CloudFerry-1.55.1.tar.gz" } ], "1.55.2": [ { "comment_text": "", "digests": { "md5": "c650ea1c09dfd421afc2e169e1c28c4f", "sha256": "dd96ecc923e817e53cc3b9985231e2e06c0a3057f27e7eb7a2c3fa15bbadc2e1" }, "downloads": -1, "filename": "CloudFerry-1.55.2-py2-none-any.whl", "has_sig": false, "md5_digest": "c650ea1c09dfd421afc2e169e1c28c4f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22499691, "upload_time": "2017-04-09T06:41:53", "url": "https://files.pythonhosted.org/packages/b6/aa/cdd0b05df829f94995da0c1a0acc66dbbd03f8ffb4932667b255ebf12966/CloudFerry-1.55.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50305b5667ee37114475fde531061595", "sha256": "73f2b6409ce008f85031c7b3d19ecacdd311c6567b3041e36dd3925eb56454a2" }, "downloads": -1, "filename": "CloudFerry-1.55.2.tar.gz", "has_sig": false, "md5_digest": "50305b5667ee37114475fde531061595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22870617, "upload_time": "2017-04-09T06:41:58", "url": "https://files.pythonhosted.org/packages/b0/83/f2d258be2ce6e1ebd6c2ca8a4b4c57fb3645fae3093670870e0d1a82ae5c/CloudFerry-1.55.2.tar.gz" } ], "1.55.3": [] }, "urls": [] }