Package: cloudmesh-volume
Cloudmesh Volume ManagementAbstractA simple abstraction layer to manage Cloud Volumes for AWS, Azure, Google, Openstack and MultipassIn this project we will be developing features related to completing and simplifying the volume management interface to an existing cloud. We will also benchmark the clouds while comparing the volume management functions that are deployed on different clouds.Team membersPeter McCandless sp20-516-222Xin Gu sp20-516-227Ashley Thornton sp20-516-230Ashok Singam sp20-516-232Volume Management functionsVolume create - Create new volume - Ashokvolume create [name]
                  [--size <size>]
                  [--type <volume-type>]
                  [--image <image> | --snapshot <snapshot> | --source <volume>]
                  [--description <description>]Volume delete - Delete volume - Ashokvolume delete [volume]Volume list - List volumes - XinList volume of vm in specified region and provider. List all the volumes in certain region or provider.volume list [--vm=VM NAME]
                [--region=REGION]
                [--cloud=CLOUD]
                [--refresh]Volume migrate - Migrate volume to a new host - XinMigrate volume from one vm to another vm within the same region, service or provider. Migrate volume from one vm to another vm between different regions, services or providers.volume migrate NAME FVM TVM
                    [--fregion=FROM REGION]
                    [--tregion=TO REGION]
                    [--fservice=FROM SERVICE]
                    [--tservice=TO SERVICE]
                    [--fcloud=FROM CLOUD]
                    [--tcloud=TO CLOUD]
                    [--cloud=CLOUD]
                    [--region=REGION]
                    [--service=SERVICE]volume sync - PeterVolume sync alows for data to shared bewteen two volumes.  Sync can be used to backup data to or from file services or other block volumes.volume sync [VOLUME NAME A] [VOLUME NAME B]
                    [--region=REGION]
                    [--cloud=CLOUD]Volume set - Set volume properties - AshleyVolume set ties a group of storage blocks together. While the data spans multiple drives, volume set sees them as continious.volume set [VOLUME NAME]
                    [--name <name>]
                    [--size <size>]
                    [--description <description>]
                    [--no-property]
                    [--property <key=value> [...] ]
                    [--image-property <key=value> [...] ]
                    [--state <state>]
                    [--type <volume-type>]
                    [--retype-policy <retype-policy>]
                    [--bootable | --non-bootable]
                    [--read-only | --read-write]Volume show - Show volume details - AshleyVolume show provides information about all volumes, including the name, state, type, size, and percentage of space used.volume show [VOLUME NAME]Volume unset - Unset volume properties - PeterVolume unset separates a volume from a grouping of block volumes.volume unset [VOLUME NAME]
                    [--property <key>]
                    [--image-property <key>]volume costMulticloud enhanced function including cost estimates and the actual cost accured - AllVolume Providers:AWS:python api:https://boto3.amazonaws.com/v1/documentation/api/latest/index.htmlREST api:https://docs.aws.amazon.com/apigateway/api-reference/Documentation about volume cost:https://aws.amazon.com/ebs/pricing/https://medium.com/@stefanroman/calculate-price-of-ebs-volumes-with-python-76687bb24530manual:https://docs.aws.amazon.com/Google:python api:https://cloud.google.com/sdkhttps://cloud.google.com/sdk/gcloud/reference/compute/disksREST api:https://cloud.google.com/apis/docs/overviewDocumentation about volume cost:https://cloud.google.com/compute/disks-image-pricingmanual:https://cloud.google.com/docsAzure:OpenStackhttps://docs.openstack.org/python-openstackclient/pike/cli/command-objects/volume.htmlDocumentation on how to move volumes from one provider to the next:from Amazon S3Migrating from Amazon S3 to Cloud Storagehttps://cloud.google.com/storage/docs/migrating#storage-list-buckets-s3-pythonhttps://github.com/adzerk/s3-to-google-cloud-storage-connectorMigrating from Amazon S3 to Azure Blob Storagehttps://github.com/Azure-for-Startups/Amazon-S3-to-Azure-Storage-demo/blob/master/README.mdMigrating from Amazon S3 to OpenStackfrom Cloud StorageMigrating from Cloud Storage to Amazon S3https://www.quora.com/How-can-I-migrate-data-from-Google-cloud-storage-into-AWS-S3-bucketsMigrating from Cloud Storage to Azure Blob Storagehttps://blog.bitscry.com/2019/12/30/data-transfer-google-cloud-storage-to-azure-blob-storage/Migrating from Cloud Storage to OpenStackfrom Azure Blob StorageMigrating from Azure Blob Storage to Amazon S3Migrating from Azure Blob Storage to Cloud StorageMigrating from Azure Blob Storage to OpenStackfrom OpenStackTest casesWrite test cases in the form of reproducable pytestsDistribution of clouds between team memebersAzure - Ashley & XinAWS - Ashley & XinGoogle - Peter & XinOracle - Ashok & PeterOpenstack - Peter & AshokMultipass - Ashok & AshleyAzureAzure CLI:https://docs.microsoft.com/en-us/cli/azure/netappfiles/volume?view=azure-cli-latest#az-netappfiles-volume-createREST:https://docs.microsoft.com/en-us/rest/api/netapp/volumesAWSAWS CLI:https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.htmlAmazon EBS:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.htmlGoogleGcloud container clusters:https://cloud.google.com/sdk/gcloud/reference/container/clustersGoogle books API:https://developers.google.com/books/docs/v1/reference/volumesOracleAPI:https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/20160918/Volume/OCI CLI:https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/2.9.3/oci_cli_docs/cmdref/bv/volume.htmlOpenstackpython:https://docs.openstack.org/python-cinderclient/latest/REST:https://docs.openstack.org/api-ref/block-storage/Multipasshttps://freshbrewed.science/ubuntu-multipass-part-deux/index.htmlhttps://cloudmesh.github.io/cloudmesh-manual/