gcloud 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/CHANGELOG +4 -0
- data/Makefile +4 -0
- data/Manifest +760 -1
- data/bin/gcloud +7 -0
- data/bin/{gcutil → gcutil.symlink} +0 -0
- data/bin/gsutil-symlink +377 -0
- data/gcloud.gemspec +5 -5
- data/packages/gsutil/CHECKSUM +1 -0
- data/packages/gsutil/COPYING +202 -0
- data/packages/gsutil/LICENSE.third_party +295 -0
- data/packages/gsutil/MANIFEST.in +5 -0
- data/packages/gsutil/README +38 -0
- data/packages/gsutil/README.pkg +49 -0
- data/packages/gsutil/ReleaseNotes.txt +780 -0
- data/packages/gsutil/VERSION +1 -0
- data/packages/gsutil/boto/Changelog.rst +35 -0
- data/packages/gsutil/boto/LICENSE +18 -0
- data/packages/gsutil/boto/MANIFEST.in +12 -0
- data/packages/gsutil/boto/README.rst +163 -0
- data/packages/gsutil/boto/bin/asadmin +290 -0
- data/packages/gsutil/boto/bin/bundle_image +27 -0
- data/packages/gsutil/boto/bin/cfadmin +108 -0
- data/packages/gsutil/boto/bin/cq +89 -0
- data/packages/gsutil/boto/bin/cwutil +140 -0
- data/packages/gsutil/boto/bin/elbadmin +284 -0
- data/packages/gsutil/boto/bin/fetch_file +43 -0
- data/packages/gsutil/boto/bin/glacier +154 -0
- data/packages/gsutil/boto/bin/instance_events +145 -0
- data/packages/gsutil/boto/bin/kill_instance +35 -0
- data/packages/gsutil/boto/bin/launch_instance +252 -0
- data/packages/gsutil/boto/bin/list_instances +90 -0
- data/packages/gsutil/boto/bin/lss3 +77 -0
- data/packages/gsutil/boto/bin/mturk +465 -0
- data/packages/gsutil/boto/bin/pyami_sendmail +52 -0
- data/packages/gsutil/boto/bin/route53 +205 -0
- data/packages/gsutil/boto/bin/s3put +374 -0
- data/packages/gsutil/boto/bin/sdbadmin +194 -0
- data/packages/gsutil/boto/bin/taskadmin +116 -0
- data/packages/gsutil/boto/boto/__init__.py +793 -0
- data/packages/gsutil/boto/boto/__init__.pyc +0 -0
- data/packages/gsutil/boto/boto/auth.py +682 -0
- data/packages/gsutil/boto/boto/auth.pyc +0 -0
- data/packages/gsutil/boto/boto/auth_handler.py +58 -0
- data/packages/gsutil/boto/boto/auth_handler.pyc +0 -0
- data/packages/gsutil/boto/boto/beanstalk/__init__.py +65 -0
- data/packages/gsutil/boto/boto/beanstalk/exception.py +64 -0
- data/packages/gsutil/boto/boto/beanstalk/layer1.py +1153 -0
- data/packages/gsutil/boto/boto/beanstalk/response.py +703 -0
- data/packages/gsutil/boto/boto/beanstalk/wrapper.py +29 -0
- data/packages/gsutil/boto/boto/cacerts/__init__.py +22 -0
- data/packages/gsutil/boto/boto/cacerts/__init__.pyc +0 -0
- data/packages/gsutil/boto/boto/cacerts/cacerts.txt +633 -0
- data/packages/gsutil/boto/boto/cloudformation/__init__.py +68 -0
- data/packages/gsutil/boto/boto/cloudformation/connection.py +364 -0
- data/packages/gsutil/boto/boto/cloudformation/stack.py +360 -0
- data/packages/gsutil/boto/boto/cloudformation/template.py +43 -0
- data/packages/gsutil/boto/boto/cloudfront/__init__.py +324 -0
- data/packages/gsutil/boto/boto/cloudfront/distribution.py +745 -0
- data/packages/gsutil/boto/boto/cloudfront/exception.py +26 -0
- data/packages/gsutil/boto/boto/cloudfront/identity.py +122 -0
- data/packages/gsutil/boto/boto/cloudfront/invalidation.py +216 -0
- data/packages/gsutil/boto/boto/cloudfront/logging.py +38 -0
- data/packages/gsutil/boto/boto/cloudfront/object.py +48 -0
- data/packages/gsutil/boto/boto/cloudfront/origin.py +150 -0
- data/packages/gsutil/boto/boto/cloudfront/signers.py +60 -0
- data/packages/gsutil/boto/boto/cloudsearch/__init__.py +45 -0
- data/packages/gsutil/boto/boto/cloudsearch/document.py +265 -0
- data/packages/gsutil/boto/boto/cloudsearch/domain.py +394 -0
- data/packages/gsutil/boto/boto/cloudsearch/layer1.py +738 -0
- data/packages/gsutil/boto/boto/cloudsearch/layer2.py +67 -0
- data/packages/gsutil/boto/boto/cloudsearch/optionstatus.py +248 -0
- data/packages/gsutil/boto/boto/cloudsearch/search.py +365 -0
- data/packages/gsutil/boto/boto/cloudsearch/sourceattribute.py +75 -0
- data/packages/gsutil/boto/boto/compat.py +28 -0
- data/packages/gsutil/boto/boto/compat.pyc +0 -0
- data/packages/gsutil/boto/boto/connection.py +1081 -0
- data/packages/gsutil/boto/boto/connection.pyc +0 -0
- data/packages/gsutil/boto/boto/contrib/__init__.py +22 -0
- data/packages/gsutil/boto/boto/contrib/ymlmessage.py +52 -0
- data/packages/gsutil/boto/boto/core/README +58 -0
- data/packages/gsutil/boto/boto/core/__init__.py +23 -0
- data/packages/gsutil/boto/boto/core/auth.py +78 -0
- data/packages/gsutil/boto/boto/core/credentials.py +154 -0
- data/packages/gsutil/boto/boto/core/dictresponse.py +178 -0
- data/packages/gsutil/boto/boto/core/service.py +67 -0
- data/packages/gsutil/boto/boto/datapipeline/__init__.py +0 -0
- data/packages/gsutil/boto/boto/datapipeline/exceptions.py +42 -0
- data/packages/gsutil/boto/boto/datapipeline/layer1.py +546 -0
- data/packages/gsutil/boto/boto/dynamodb/__init__.py +66 -0
- data/packages/gsutil/boto/boto/dynamodb/batch.py +262 -0
- data/packages/gsutil/boto/boto/dynamodb/condition.py +170 -0
- data/packages/gsutil/boto/boto/dynamodb/exceptions.py +64 -0
- data/packages/gsutil/boto/boto/dynamodb/item.py +196 -0
- data/packages/gsutil/boto/boto/dynamodb/layer1.py +575 -0
- data/packages/gsutil/boto/boto/dynamodb/layer2.py +798 -0
- data/packages/gsutil/boto/boto/dynamodb/schema.py +112 -0
- data/packages/gsutil/boto/boto/dynamodb/table.py +540 -0
- data/packages/gsutil/boto/boto/dynamodb/types.py +326 -0
- data/packages/gsutil/boto/boto/ec2/__init__.py +96 -0
- data/packages/gsutil/boto/boto/ec2/address.py +103 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/__init__.py +781 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/activity.py +74 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/group.py +337 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/instance.py +60 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/launchconfig.py +209 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/policy.py +166 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/request.py +38 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/scheduled.py +60 -0
- data/packages/gsutil/boto/boto/ec2/autoscale/tag.py +84 -0
- data/packages/gsutil/boto/boto/ec2/blockdevicemapping.py +141 -0
- data/packages/gsutil/boto/boto/ec2/bundleinstance.py +78 -0
- data/packages/gsutil/boto/boto/ec2/buyreservation.py +84 -0
- data/packages/gsutil/boto/boto/ec2/cloudwatch/__init__.py +603 -0
- data/packages/gsutil/boto/boto/ec2/cloudwatch/alarm.py +316 -0
- data/packages/gsutil/boto/boto/ec2/cloudwatch/datapoint.py +40 -0
- data/packages/gsutil/boto/boto/ec2/cloudwatch/dimension.py +38 -0
- data/packages/gsutil/boto/boto/ec2/cloudwatch/listelement.py +31 -0
- data/packages/gsutil/boto/boto/ec2/cloudwatch/metric.py +175 -0
- data/packages/gsutil/boto/boto/ec2/connection.py +3409 -0
- data/packages/gsutil/boto/boto/ec2/ec2object.py +107 -0
- data/packages/gsutil/boto/boto/ec2/elb/__init__.py +553 -0
- data/packages/gsutil/boto/boto/ec2/elb/healthcheck.py +89 -0
- data/packages/gsutil/boto/boto/ec2/elb/instancestate.py +62 -0
- data/packages/gsutil/boto/boto/ec2/elb/listelement.py +36 -0
- data/packages/gsutil/boto/boto/ec2/elb/listener.py +75 -0
- data/packages/gsutil/boto/boto/ec2/elb/loadbalancer.py +324 -0
- data/packages/gsutil/boto/boto/ec2/elb/policies.py +89 -0
- data/packages/gsutil/boto/boto/ec2/elb/securitygroup.py +38 -0
- data/packages/gsutil/boto/boto/ec2/group.py +39 -0
- data/packages/gsutil/boto/boto/ec2/image.py +350 -0
- data/packages/gsutil/boto/boto/ec2/instance.py +661 -0
- data/packages/gsutil/boto/boto/ec2/instanceinfo.py +51 -0
- data/packages/gsutil/boto/boto/ec2/instancestatus.py +207 -0
- data/packages/gsutil/boto/boto/ec2/keypair.py +113 -0
- data/packages/gsutil/boto/boto/ec2/launchspecification.py +105 -0
- data/packages/gsutil/boto/boto/ec2/networkinterface.py +247 -0
- data/packages/gsutil/boto/boto/ec2/placementgroup.py +51 -0
- data/packages/gsutil/boto/boto/ec2/regioninfo.py +34 -0
- data/packages/gsutil/boto/boto/ec2/reservedinstance.py +227 -0
- data/packages/gsutil/boto/boto/ec2/securitygroup.py +357 -0
- data/packages/gsutil/boto/boto/ec2/snapshot.py +170 -0
- data/packages/gsutil/boto/boto/ec2/spotdatafeedsubscription.py +63 -0
- data/packages/gsutil/boto/boto/ec2/spotinstancerequest.py +188 -0
- data/packages/gsutil/boto/boto/ec2/spotpricehistory.py +55 -0
- data/packages/gsutil/boto/boto/ec2/tag.py +87 -0
- data/packages/gsutil/boto/boto/ec2/vmtype.py +58 -0
- data/packages/gsutil/boto/boto/ec2/volume.py +293 -0
- data/packages/gsutil/boto/boto/ec2/volumestatus.py +200 -0
- data/packages/gsutil/boto/boto/ec2/zone.py +80 -0
- data/packages/gsutil/boto/boto/ecs/__init__.py +90 -0
- data/packages/gsutil/boto/boto/ecs/item.py +153 -0
- data/packages/gsutil/boto/boto/elasticache/__init__.py +62 -0
- data/packages/gsutil/boto/boto/elasticache/layer1.py +1252 -0
- data/packages/gsutil/boto/boto/elastictranscoder/__init__.py +62 -0
- data/packages/gsutil/boto/boto/elastictranscoder/exceptions.py +46 -0
- data/packages/gsutil/boto/boto/elastictranscoder/layer1.py +509 -0
- data/packages/gsutil/boto/boto/emr/__init__.py +73 -0
- data/packages/gsutil/boto/boto/emr/bootstrap_action.py +44 -0
- data/packages/gsutil/boto/boto/emr/connection.py +531 -0
- data/packages/gsutil/boto/boto/emr/emrobject.py +176 -0
- data/packages/gsutil/boto/boto/emr/instance_group.py +43 -0
- data/packages/gsutil/boto/boto/emr/step.py +281 -0
- data/packages/gsutil/boto/boto/exception.py +476 -0
- data/packages/gsutil/boto/boto/exception.pyc +0 -0
- data/packages/gsutil/boto/boto/file/README +49 -0
- data/packages/gsutil/boto/boto/file/__init__.py +28 -0
- data/packages/gsutil/boto/boto/file/bucket.py +112 -0
- data/packages/gsutil/boto/boto/file/connection.py +33 -0
- data/packages/gsutil/boto/boto/file/key.py +199 -0
- data/packages/gsutil/boto/boto/file/simpleresultset.py +30 -0
- data/packages/gsutil/boto/boto/fps/__init__.py +21 -0
- data/packages/gsutil/boto/boto/fps/connection.py +369 -0
- data/packages/gsutil/boto/boto/fps/exception.py +344 -0
- data/packages/gsutil/boto/boto/fps/response.py +175 -0
- data/packages/gsutil/boto/boto/glacier/__init__.py +57 -0
- data/packages/gsutil/boto/boto/glacier/concurrent.py +409 -0
- data/packages/gsutil/boto/boto/glacier/exceptions.py +58 -0
- data/packages/gsutil/boto/boto/glacier/job.py +152 -0
- data/packages/gsutil/boto/boto/glacier/layer1.py +637 -0
- data/packages/gsutil/boto/boto/glacier/layer2.py +93 -0
- data/packages/gsutil/boto/boto/glacier/response.py +48 -0
- data/packages/gsutil/boto/boto/glacier/utils.py +163 -0
- data/packages/gsutil/boto/boto/glacier/vault.py +387 -0
- data/packages/gsutil/boto/boto/glacier/writer.py +242 -0
- data/packages/gsutil/boto/boto/gs/__init__.py +22 -0
- data/packages/gsutil/boto/boto/gs/__init__.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/acl.py +304 -0
- data/packages/gsutil/boto/boto/gs/acl.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/bucket.py +870 -0
- data/packages/gsutil/boto/boto/gs/bucket.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/bucketlistresultset.py +64 -0
- data/packages/gsutil/boto/boto/gs/bucketlistresultset.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/connection.py +103 -0
- data/packages/gsutil/boto/boto/gs/connection.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/cors.py +169 -0
- data/packages/gsutil/boto/boto/gs/cors.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/key.py +704 -0
- data/packages/gsutil/boto/boto/gs/key.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/resumable_upload_handler.py +659 -0
- data/packages/gsutil/boto/boto/gs/resumable_upload_handler.pyc +0 -0
- data/packages/gsutil/boto/boto/gs/user.py +54 -0
- data/packages/gsutil/boto/boto/gs/user.pyc +0 -0
- data/packages/gsutil/boto/boto/handler.py +44 -0
- data/packages/gsutil/boto/boto/handler.pyc +0 -0
- data/packages/gsutil/boto/boto/https_connection.py +124 -0
- data/packages/gsutil/boto/boto/https_connection.pyc +0 -0
- data/packages/gsutil/boto/boto/iam/__init__.py +74 -0
- data/packages/gsutil/boto/boto/iam/connection.py +1317 -0
- data/packages/gsutil/boto/boto/iam/summarymap.py +42 -0
- data/packages/gsutil/boto/boto/jsonresponse.py +163 -0
- data/packages/gsutil/boto/boto/jsonresponse.pyc +0 -0
- data/packages/gsutil/boto/boto/manage/__init__.py +23 -0
- data/packages/gsutil/boto/boto/manage/cmdshell.py +241 -0
- data/packages/gsutil/boto/boto/manage/propget.py +64 -0
- data/packages/gsutil/boto/boto/manage/server.py +556 -0
- data/packages/gsutil/boto/boto/manage/task.py +175 -0
- data/packages/gsutil/boto/boto/manage/test_manage.py +34 -0
- data/packages/gsutil/boto/boto/manage/volume.py +420 -0
- data/packages/gsutil/boto/boto/mashups/__init__.py +23 -0
- data/packages/gsutil/boto/boto/mashups/interactive.py +97 -0
- data/packages/gsutil/boto/boto/mashups/iobject.py +115 -0
- data/packages/gsutil/boto/boto/mashups/order.py +211 -0
- data/packages/gsutil/boto/boto/mashups/server.py +395 -0
- data/packages/gsutil/boto/boto/mturk/__init__.py +23 -0
- data/packages/gsutil/boto/boto/mturk/connection.py +1027 -0
- data/packages/gsutil/boto/boto/mturk/layoutparam.py +55 -0
- data/packages/gsutil/boto/boto/mturk/notification.py +103 -0
- data/packages/gsutil/boto/boto/mturk/price.py +48 -0
- data/packages/gsutil/boto/boto/mturk/qualification.py +137 -0
- data/packages/gsutil/boto/boto/mturk/question.py +455 -0
- data/packages/gsutil/boto/boto/mws/__init__.py +21 -0
- data/packages/gsutil/boto/boto/mws/connection.py +813 -0
- data/packages/gsutil/boto/boto/mws/exception.py +75 -0
- data/packages/gsutil/boto/boto/mws/response.py +655 -0
- data/packages/gsutil/boto/boto/plugin.py +90 -0
- data/packages/gsutil/boto/boto/plugin.pyc +0 -0
- data/packages/gsutil/boto/boto/provider.py +337 -0
- data/packages/gsutil/boto/boto/provider.pyc +0 -0
- data/packages/gsutil/boto/boto/pyami/__init__.py +22 -0
- data/packages/gsutil/boto/boto/pyami/__init__.pyc +0 -0
- data/packages/gsutil/boto/boto/pyami/bootstrap.py +134 -0
- data/packages/gsutil/boto/boto/pyami/config.py +229 -0
- data/packages/gsutil/boto/boto/pyami/config.pyc +0 -0
- data/packages/gsutil/boto/boto/pyami/copybot.cfg +60 -0
- data/packages/gsutil/boto/boto/pyami/copybot.py +97 -0
- data/packages/gsutil/boto/boto/pyami/helloworld.py +28 -0
- data/packages/gsutil/boto/boto/pyami/installers/__init__.py +64 -0
- data/packages/gsutil/boto/boto/pyami/installers/ubuntu/__init__.py +22 -0
- data/packages/gsutil/boto/boto/pyami/installers/ubuntu/apache.py +43 -0
- data/packages/gsutil/boto/boto/pyami/installers/ubuntu/ebs.py +238 -0
- data/packages/gsutil/boto/boto/pyami/installers/ubuntu/installer.py +96 -0
- data/packages/gsutil/boto/boto/pyami/installers/ubuntu/mysql.py +109 -0
- data/packages/gsutil/boto/boto/pyami/installers/ubuntu/trac.py +139 -0
- data/packages/gsutil/boto/boto/pyami/launch_ami.py +178 -0
- data/packages/gsutil/boto/boto/pyami/scriptbase.py +44 -0
- data/packages/gsutil/boto/boto/pyami/startup.py +60 -0
- data/packages/gsutil/boto/boto/rds/__init__.py +1194 -0
- data/packages/gsutil/boto/boto/rds/dbinstance.py +357 -0
- data/packages/gsutil/boto/boto/rds/dbsecuritygroup.py +177 -0
- data/packages/gsutil/boto/boto/rds/dbsnapshot.py +108 -0
- data/packages/gsutil/boto/boto/rds/event.py +49 -0
- data/packages/gsutil/boto/boto/rds/parametergroup.py +201 -0
- data/packages/gsutil/boto/boto/rds/regioninfo.py +32 -0
- data/packages/gsutil/boto/boto/regioninfo.py +63 -0
- data/packages/gsutil/boto/boto/regioninfo.pyc +0 -0
- data/packages/gsutil/boto/boto/resultset.py +169 -0
- data/packages/gsutil/boto/boto/resultset.pyc +0 -0
- data/packages/gsutil/boto/boto/roboto/__init__.py +1 -0
- data/packages/gsutil/boto/boto/roboto/awsqueryrequest.py +504 -0
- data/packages/gsutil/boto/boto/roboto/awsqueryservice.py +121 -0
- data/packages/gsutil/boto/boto/roboto/param.py +147 -0
- data/packages/gsutil/boto/boto/route53/__init__.py +75 -0
- data/packages/gsutil/boto/boto/route53/connection.py +403 -0
- data/packages/gsutil/boto/boto/route53/exception.py +27 -0
- data/packages/gsutil/boto/boto/route53/hostedzone.py +56 -0
- data/packages/gsutil/boto/boto/route53/record.py +306 -0
- data/packages/gsutil/boto/boto/route53/status.py +42 -0
- data/packages/gsutil/boto/boto/route53/zone.py +412 -0
- data/packages/gsutil/boto/boto/s3/__init__.py +84 -0
- data/packages/gsutil/boto/boto/s3/__init__.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/acl.py +164 -0
- data/packages/gsutil/boto/boto/s3/acl.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/bucket.py +1634 -0
- data/packages/gsutil/boto/boto/s3/bucket.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/bucketlistresultset.py +139 -0
- data/packages/gsutil/boto/boto/s3/bucketlistresultset.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/bucketlogging.py +83 -0
- data/packages/gsutil/boto/boto/s3/bucketlogging.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/connection.py +540 -0
- data/packages/gsutil/boto/boto/s3/connection.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/cors.py +210 -0
- data/packages/gsutil/boto/boto/s3/cors.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/deletemarker.py +55 -0
- data/packages/gsutil/boto/boto/s3/deletemarker.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/key.py +1712 -0
- data/packages/gsutil/boto/boto/s3/key.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/keyfile.py +134 -0
- data/packages/gsutil/boto/boto/s3/keyfile.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/lifecycle.py +231 -0
- data/packages/gsutil/boto/boto/s3/lifecycle.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/multidelete.py +138 -0
- data/packages/gsutil/boto/boto/s3/multidelete.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/multipart.py +315 -0
- data/packages/gsutil/boto/boto/s3/multipart.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/prefix.py +42 -0
- data/packages/gsutil/boto/boto/s3/prefix.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/resumable_download_handler.py +339 -0
- data/packages/gsutil/boto/boto/s3/resumable_download_handler.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/tagging.py +71 -0
- data/packages/gsutil/boto/boto/s3/tagging.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/user.py +49 -0
- data/packages/gsutil/boto/boto/s3/user.pyc +0 -0
- data/packages/gsutil/boto/boto/s3/website.py +237 -0
- data/packages/gsutil/boto/boto/s3/website.pyc +0 -0
- data/packages/gsutil/boto/boto/sdb/__init__.py +67 -0
- data/packages/gsutil/boto/boto/sdb/connection.py +617 -0
- data/packages/gsutil/boto/boto/sdb/db/__init__.py +20 -0
- data/packages/gsutil/boto/boto/sdb/db/blob.py +75 -0
- data/packages/gsutil/boto/boto/sdb/db/key.py +59 -0
- data/packages/gsutil/boto/boto/sdb/db/manager/__init__.py +85 -0
- data/packages/gsutil/boto/boto/sdb/db/manager/sdbmanager.py +732 -0
- data/packages/gsutil/boto/boto/sdb/db/manager/xmlmanager.py +517 -0
- data/packages/gsutil/boto/boto/sdb/db/model.py +294 -0
- data/packages/gsutil/boto/boto/sdb/db/property.py +703 -0
- data/packages/gsutil/boto/boto/sdb/db/query.py +85 -0
- data/packages/gsutil/boto/boto/sdb/db/sequence.py +226 -0
- data/packages/gsutil/boto/boto/sdb/db/test_db.py +231 -0
- data/packages/gsutil/boto/boto/sdb/domain.py +377 -0
- data/packages/gsutil/boto/boto/sdb/item.py +181 -0
- data/packages/gsutil/boto/boto/sdb/queryresultset.py +92 -0
- data/packages/gsutil/boto/boto/sdb/regioninfo.py +32 -0
- data/packages/gsutil/boto/boto/services/__init__.py +23 -0
- data/packages/gsutil/boto/boto/services/bs.py +179 -0
- data/packages/gsutil/boto/boto/services/message.py +58 -0
- data/packages/gsutil/boto/boto/services/result.py +136 -0
- data/packages/gsutil/boto/boto/services/service.py +161 -0
- data/packages/gsutil/boto/boto/services/servicedef.py +91 -0
- data/packages/gsutil/boto/boto/services/sonofmmm.cfg +43 -0
- data/packages/gsutil/boto/boto/services/sonofmmm.py +81 -0
- data/packages/gsutil/boto/boto/services/submit.py +88 -0
- data/packages/gsutil/boto/boto/ses/__init__.py +54 -0
- data/packages/gsutil/boto/boto/ses/connection.py +521 -0
- data/packages/gsutil/boto/boto/ses/exceptions.py +77 -0
- data/packages/gsutil/boto/boto/sns/__init__.py +78 -0
- data/packages/gsutil/boto/boto/sns/connection.py +431 -0
- data/packages/gsutil/boto/boto/sqs/__init__.py +56 -0
- data/packages/gsutil/boto/boto/sqs/attributes.py +46 -0
- data/packages/gsutil/boto/boto/sqs/batchresults.py +95 -0
- data/packages/gsutil/boto/boto/sqs/connection.py +417 -0
- data/packages/gsutil/boto/boto/sqs/jsonmessage.py +43 -0
- data/packages/gsutil/boto/boto/sqs/message.py +253 -0
- data/packages/gsutil/boto/boto/sqs/queue.py +478 -0
- data/packages/gsutil/boto/boto/sqs/regioninfo.py +32 -0
- data/packages/gsutil/boto/boto/storage_uri.py +835 -0
- data/packages/gsutil/boto/boto/storage_uri.pyc +0 -0
- data/packages/gsutil/boto/boto/sts/__init__.py +55 -0
- data/packages/gsutil/boto/boto/sts/connection.py +207 -0
- data/packages/gsutil/boto/boto/sts/credentials.py +215 -0
- data/packages/gsutil/boto/boto/swf/__init__.py +60 -0
- data/packages/gsutil/boto/boto/swf/exceptions.py +44 -0
- data/packages/gsutil/boto/boto/swf/layer1.py +1512 -0
- data/packages/gsutil/boto/boto/swf/layer1_decisions.py +287 -0
- data/packages/gsutil/boto/boto/swf/layer2.py +342 -0
- data/packages/gsutil/boto/boto/utils.py +927 -0
- data/packages/gsutil/boto/boto/utils.pyc +0 -0
- data/packages/gsutil/boto/boto/vpc/__init__.py +910 -0
- data/packages/gsutil/boto/boto/vpc/customergateway.py +54 -0
- data/packages/gsutil/boto/boto/vpc/dhcpoptions.py +72 -0
- data/packages/gsutil/boto/boto/vpc/internetgateway.py +72 -0
- data/packages/gsutil/boto/boto/vpc/routetable.py +109 -0
- data/packages/gsutil/boto/boto/vpc/subnet.py +57 -0
- data/packages/gsutil/boto/boto/vpc/vpc.py +54 -0
- data/packages/gsutil/boto/boto/vpc/vpnconnection.py +60 -0
- data/packages/gsutil/boto/boto/vpc/vpngateway.py +83 -0
- data/packages/gsutil/boto/docs/BotoCheatSheet.pdf +0 -0
- data/packages/gsutil/boto/docs/Makefile +89 -0
- data/packages/gsutil/boto/docs/make.bat +113 -0
- data/packages/gsutil/boto/docs/source/_templates/layout.html +3 -0
- data/packages/gsutil/boto/docs/source/autoscale_tut.rst +220 -0
- data/packages/gsutil/boto/docs/source/boto_config_tut.rst +125 -0
- data/packages/gsutil/boto/docs/source/boto_theme/static/boto.css_t +239 -0
- data/packages/gsutil/boto/docs/source/boto_theme/static/pygments.css +61 -0
- data/packages/gsutil/boto/docs/source/boto_theme/theme.conf +3 -0
- data/packages/gsutil/boto/docs/source/cloudfront_tut.rst +196 -0
- data/packages/gsutil/boto/docs/source/cloudsearch_tut.rst +411 -0
- data/packages/gsutil/boto/docs/source/cloudwatch_tut.rst +116 -0
- data/packages/gsutil/boto/docs/source/conf.py +32 -0
- data/packages/gsutil/boto/docs/source/contributing.rst +204 -0
- data/packages/gsutil/boto/docs/source/documentation.rst +59 -0
- data/packages/gsutil/boto/docs/source/dynamodb_tut.rst +339 -0
- data/packages/gsutil/boto/docs/source/ec2_tut.rst +86 -0
- data/packages/gsutil/boto/docs/source/elb_tut.rst +257 -0
- data/packages/gsutil/boto/docs/source/emr_tut.rst +108 -0
- data/packages/gsutil/boto/docs/source/index.rst +146 -0
- data/packages/gsutil/boto/docs/source/rds_tut.rst +108 -0
- data/packages/gsutil/boto/docs/source/ref/autoscale.rst +62 -0
- data/packages/gsutil/boto/docs/source/ref/beanstalk.rst +26 -0
- data/packages/gsutil/boto/docs/source/ref/boto.rst +47 -0
- data/packages/gsutil/boto/docs/source/ref/cloudformation.rst +34 -0
- data/packages/gsutil/boto/docs/source/ref/cloudfront.rst +68 -0
- data/packages/gsutil/boto/docs/source/ref/cloudsearch.rst +59 -0
- data/packages/gsutil/boto/docs/source/ref/cloudwatch.rst +27 -0
- data/packages/gsutil/boto/docs/source/ref/contrib.rst +32 -0
- data/packages/gsutil/boto/docs/source/ref/datapipeline.rst +26 -0
- data/packages/gsutil/boto/docs/source/ref/dynamodb.rst +61 -0
- data/packages/gsutil/boto/docs/source/ref/ec2.rst +140 -0
- data/packages/gsutil/boto/docs/source/ref/ecs.rst +19 -0
- data/packages/gsutil/boto/docs/source/ref/elasticache.rst +19 -0
- data/packages/gsutil/boto/docs/source/ref/elastictranscoder.rst +26 -0
- data/packages/gsutil/boto/docs/source/ref/elb.rst +47 -0
- data/packages/gsutil/boto/docs/source/ref/emr.rst +34 -0
- data/packages/gsutil/boto/docs/source/ref/file.rst +34 -0
- data/packages/gsutil/boto/docs/source/ref/fps.rst +19 -0
- data/packages/gsutil/boto/docs/source/ref/glacier.rst +63 -0
- data/packages/gsutil/boto/docs/source/ref/gs.rst +72 -0
- data/packages/gsutil/boto/docs/source/ref/iam.rst +27 -0
- data/packages/gsutil/boto/docs/source/ref/index.rst +40 -0
- data/packages/gsutil/boto/docs/source/ref/manage.rst +47 -0
- data/packages/gsutil/boto/docs/source/ref/mturk.rst +54 -0
- data/packages/gsutil/boto/docs/source/ref/mws.rst +33 -0
- data/packages/gsutil/boto/docs/source/ref/pyami.rst +103 -0
- data/packages/gsutil/boto/docs/source/ref/rds.rst +47 -0
- data/packages/gsutil/boto/docs/source/ref/route53.rst +34 -0
- data/packages/gsutil/boto/docs/source/ref/s3.rst +111 -0
- data/packages/gsutil/boto/docs/source/ref/sdb.rst +45 -0
- data/packages/gsutil/boto/docs/source/ref/sdb_db.rst +83 -0
- data/packages/gsutil/boto/docs/source/ref/services.rst +61 -0
- data/packages/gsutil/boto/docs/source/ref/ses.rst +21 -0
- data/packages/gsutil/boto/docs/source/ref/sns.rst +17 -0
- data/packages/gsutil/boto/docs/source/ref/sqs.rst +61 -0
- data/packages/gsutil/boto/docs/source/ref/sts.rst +25 -0
- data/packages/gsutil/boto/docs/source/ref/swf.rst +22 -0
- data/packages/gsutil/boto/docs/source/ref/vpc.rst +54 -0
- data/packages/gsutil/boto/docs/source/s3_tut.rst +450 -0
- data/packages/gsutil/boto/docs/source/security_groups.rst +82 -0
- data/packages/gsutil/boto/docs/source/ses_tut.rst +171 -0
- data/packages/gsutil/boto/docs/source/simpledb_tut.rst +188 -0
- data/packages/gsutil/boto/docs/source/sqs_tut.rst +246 -0
- data/packages/gsutil/boto/docs/source/vpc_tut.rst +100 -0
- data/packages/gsutil/boto/pylintrc +305 -0
- data/packages/gsutil/boto/requirements.txt +10 -0
- data/packages/gsutil/boto/setup.py +89 -0
- data/packages/gsutil/boto/tests/__init__.py +20 -0
- data/packages/gsutil/boto/tests/db/test_lists.py +96 -0
- data/packages/gsutil/boto/tests/db/test_password.py +128 -0
- data/packages/gsutil/boto/tests/db/test_query.py +152 -0
- data/packages/gsutil/boto/tests/db/test_sequence.py +109 -0
- data/packages/gsutil/boto/tests/devpay/__init__.py +0 -0
- data/packages/gsutil/boto/tests/devpay/test_s3.py +181 -0
- data/packages/gsutil/boto/tests/fps/__init__.py +0 -0
- data/packages/gsutil/boto/tests/fps/test.py +100 -0
- data/packages/gsutil/boto/tests/fps/test_verify_signature.py +12 -0
- data/packages/gsutil/boto/tests/integration/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/beanstalk/test_wrapper.py +209 -0
- data/packages/gsutil/boto/tests/integration/cloudformation/__init__.py +21 -0
- data/packages/gsutil/boto/tests/integration/cloudformation/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/cloudformation/test_connection.py +110 -0
- data/packages/gsutil/boto/tests/integration/cloudsearch/__init__.py +21 -0
- data/packages/gsutil/boto/tests/integration/cloudsearch/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/datapipeline/test_layer1.py +122 -0
- data/packages/gsutil/boto/tests/integration/dynamodb/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/dynamodb/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/dynamodb/test_layer1.py +266 -0
- data/packages/gsutil/boto/tests/integration/dynamodb/test_layer2.py +484 -0
- data/packages/gsutil/boto/tests/integration/dynamodb/test_table.py +84 -0
- data/packages/gsutil/boto/tests/integration/ec2/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/ec2/autoscale/__init__.py +21 -0
- data/packages/gsutil/boto/tests/integration/ec2/autoscale/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/ec2/autoscale/test_connection.py +167 -0
- data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/test_connection.py +277 -0
- data/packages/gsutil/boto/tests/integration/ec2/elb/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/ec2/elb/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/ec2/elb/test_connection.py +130 -0
- data/packages/gsutil/boto/tests/integration/ec2/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/ec2/test_connection.py +192 -0
- data/packages/gsutil/boto/tests/integration/ec2/vpc/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/ec2/vpc/test_connection.py +95 -0
- data/packages/gsutil/boto/tests/integration/elasticache/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/elasticache/test_layer1.py +67 -0
- data/packages/gsutil/boto/tests/integration/elastictranscoder/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/elastictranscoder/test_cert_verification.py +35 -0
- data/packages/gsutil/boto/tests/integration/elastictranscoder/test_layer1.py +115 -0
- data/packages/gsutil/boto/tests/integration/emr/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/emr/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/glacier/__init__.py +22 -0
- data/packages/gsutil/boto/tests/integration/glacier/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/glacier/test_layer1.py +44 -0
- data/packages/gsutil/boto/tests/integration/glacier/test_layer2.py +45 -0
- data/packages/gsutil/boto/tests/integration/gs/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/gs/cb_test_harness.py +71 -0
- data/packages/gsutil/boto/tests/integration/gs/test_basic.py +379 -0
- data/packages/gsutil/boto/tests/integration/gs/test_generation_conditionals.py +399 -0
- data/packages/gsutil/boto/tests/integration/gs/test_resumable_downloads.py +358 -0
- data/packages/gsutil/boto/tests/integration/gs/test_resumable_uploads.py +525 -0
- data/packages/gsutil/boto/tests/integration/gs/test_storage_uri.py +125 -0
- data/packages/gsutil/boto/tests/integration/gs/test_versioning.py +268 -0
- data/packages/gsutil/boto/tests/integration/gs/testcase.py +116 -0
- data/packages/gsutil/boto/tests/integration/gs/util.py +63 -0
- data/packages/gsutil/boto/tests/integration/iam/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/iam/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/mws/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/mws/test.py +100 -0
- data/packages/gsutil/boto/tests/integration/rds/__init__.py +21 -0
- data/packages/gsutil/boto/tests/integration/rds/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/route53/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/route53/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/route53/test_zone.py +132 -0
- data/packages/gsutil/boto/tests/integration/s3/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/s3/mock_storage_service.py +589 -0
- data/packages/gsutil/boto/tests/integration/s3/other_cacerts.txt +70 -0
- data/packages/gsutil/boto/tests/integration/s3/test_bucket.py +263 -0
- data/packages/gsutil/boto/tests/integration/s3/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/s3/test_connection.py +245 -0
- data/packages/gsutil/boto/tests/integration/s3/test_cors.py +78 -0
- data/packages/gsutil/boto/tests/integration/s3/test_encryption.py +115 -0
- data/packages/gsutil/boto/tests/integration/s3/test_https_cert_validation.py +141 -0
- data/packages/gsutil/boto/tests/integration/s3/test_key.py +375 -0
- data/packages/gsutil/boto/tests/integration/s3/test_mfa.py +95 -0
- data/packages/gsutil/boto/tests/integration/s3/test_multidelete.py +181 -0
- data/packages/gsutil/boto/tests/integration/s3/test_multipart.py +139 -0
- data/packages/gsutil/boto/tests/integration/s3/test_pool.py +246 -0
- data/packages/gsutil/boto/tests/integration/s3/test_versioning.py +158 -0
- data/packages/gsutil/boto/tests/integration/sdb/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/sdb/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/sdb/test_connection.py +119 -0
- data/packages/gsutil/boto/tests/integration/ses/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/ses/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/ses/test_connection.py +38 -0
- data/packages/gsutil/boto/tests/integration/sns/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/sns/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/sqs/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/sqs/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/sqs/test_connection.py +217 -0
- data/packages/gsutil/boto/tests/integration/sts/__init__.py +20 -0
- data/packages/gsutil/boto/tests/integration/sts/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/sts/test_session_token.py +65 -0
- data/packages/gsutil/boto/tests/integration/swf/__init__.py +0 -0
- data/packages/gsutil/boto/tests/integration/swf/test_cert_verification.py +40 -0
- data/packages/gsutil/boto/tests/integration/swf/test_layer1.py +246 -0
- data/packages/gsutil/boto/tests/integration/swf/test_layer1_workflow_execution.py +173 -0
- data/packages/gsutil/boto/tests/mturk/__init__.py +0 -0
- data/packages/gsutil/boto/tests/mturk/_init_environment.py +28 -0
- data/packages/gsutil/boto/tests/mturk/all_tests.py +24 -0
- data/packages/gsutil/boto/tests/mturk/cleanup_tests.py +47 -0
- data/packages/gsutil/boto/tests/mturk/common.py +45 -0
- data/packages/gsutil/boto/tests/mturk/create_free_text_question_regex.doctest +100 -0
- data/packages/gsutil/boto/tests/mturk/create_hit.doctest +92 -0
- data/packages/gsutil/boto/tests/mturk/create_hit_binary.doctest +94 -0
- data/packages/gsutil/boto/tests/mturk/create_hit_external.py +21 -0
- data/packages/gsutil/boto/tests/mturk/create_hit_from_hit_type.doctest +103 -0
- data/packages/gsutil/boto/tests/mturk/create_hit_test.py +21 -0
- data/packages/gsutil/boto/tests/mturk/create_hit_with_qualifications.py +16 -0
- data/packages/gsutil/boto/tests/mturk/hit_persistence.py +27 -0
- data/packages/gsutil/boto/tests/mturk/mocks.py +11 -0
- data/packages/gsutil/boto/tests/mturk/reviewable_hits.doctest +129 -0
- data/packages/gsutil/boto/tests/mturk/run-doctest.py +13 -0
- data/packages/gsutil/boto/tests/mturk/search_hits.doctest +16 -0
- data/packages/gsutil/boto/tests/mturk/selenium_support.py +61 -0
- data/packages/gsutil/boto/tests/mturk/support.py +7 -0
- data/packages/gsutil/boto/tests/mturk/test_disable_hit.py +11 -0
- data/packages/gsutil/boto/tests/test.py +59 -0
- data/packages/gsutil/boto/tests/unit/__init__.py +79 -0
- data/packages/gsutil/boto/tests/unit/auth/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/auth/test_sigv4.py +73 -0
- data/packages/gsutil/boto/tests/unit/beanstalk/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/beanstalk/test_layer1.py +128 -0
- data/packages/gsutil/boto/tests/unit/cloudformation/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/cloudformation/test_connection.py +605 -0
- data/packages/gsutil/boto/tests/unit/cloudformation/test_stack.py +63 -0
- data/packages/gsutil/boto/tests/unit/cloudfront/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/cloudfront/test_invalidation_list.py +113 -0
- data/packages/gsutil/boto/tests/unit/cloudfront/test_signed_urls.py +354 -0
- data/packages/gsutil/boto/tests/unit/cloudsearch/__init__.py +1 -0
- data/packages/gsutil/boto/tests/unit/cloudsearch/test_connection.py +241 -0
- data/packages/gsutil/boto/tests/unit/cloudsearch/test_document.py +324 -0
- data/packages/gsutil/boto/tests/unit/cloudsearch/test_search.py +325 -0
- data/packages/gsutil/boto/tests/unit/dynamodb/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/dynamodb/test_batch.py +103 -0
- data/packages/gsutil/boto/tests/unit/dynamodb/test_layer2.py +119 -0
- data/packages/gsutil/boto/tests/unit/dynamodb/test_types.py +82 -0
- data/packages/gsutil/boto/tests/unit/ec2/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/ec2/autoscale/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/ec2/autoscale/test_group.py +162 -0
- data/packages/gsutil/boto/tests/unit/ec2/test_address.py +39 -0
- data/packages/gsutil/boto/tests/unit/ec2/test_blockdevicemapping.py +79 -0
- data/packages/gsutil/boto/tests/unit/ec2/test_connection.py +480 -0
- data/packages/gsutil/boto/tests/unit/ec2/test_instance.py +243 -0
- data/packages/gsutil/boto/tests/unit/ec2/test_networkinterface.py +140 -0
- data/packages/gsutil/boto/tests/unit/ec2/test_volume.py +248 -0
- data/packages/gsutil/boto/tests/unit/emr/test_emr_responses.py +373 -0
- data/packages/gsutil/boto/tests/unit/glacier/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_concurrent.py +120 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_job.py +60 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_layer1.py +98 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_layer2.py +266 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_utils.py +116 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_vault.py +100 -0
- data/packages/gsutil/boto/tests/unit/glacier/test_writer.py +185 -0
- data/packages/gsutil/boto/tests/unit/provider/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/provider/test_provider.py +176 -0
- data/packages/gsutil/boto/tests/unit/rds/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/rds/test_connection.py +131 -0
- data/packages/gsutil/boto/tests/unit/s3/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/s3/test_cors_configuration.py +77 -0
- data/packages/gsutil/boto/tests/unit/s3/test_key.py +75 -0
- data/packages/gsutil/boto/tests/unit/s3/test_keyfile.py +101 -0
- data/packages/gsutil/boto/tests/unit/s3/test_lifecycle.py +97 -0
- data/packages/gsutil/boto/tests/unit/s3/test_tagging.py +47 -0
- data/packages/gsutil/boto/tests/unit/s3/test_uri.py +257 -0
- data/packages/gsutil/boto/tests/unit/s3/test_website.py +188 -0
- data/packages/gsutil/boto/tests/unit/sns/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/sns/test_connection.py +99 -0
- data/packages/gsutil/boto/tests/unit/sqs/__init__.py +0 -0
- data/packages/gsutil/boto/tests/unit/sqs/test_connection.py +98 -0
- data/packages/gsutil/boto/tests/unit/sqs/test_queue.py +40 -0
- data/packages/gsutil/boto/tests/unit/sts/test_connection.py +74 -0
- data/packages/gsutil/boto/tests/unit/test_connection.py +60 -0
- data/packages/gsutil/boto/tests/unit/utils/test_utils.py +109 -0
- data/packages/gsutil/boto/tox.ini +8 -0
- data/packages/gsutil/gslib/README +5 -0
- data/packages/gsutil/gslib/__init__.py +22 -0
- data/packages/gsutil/gslib/__init__.pyc +0 -0
- data/packages/gsutil/gslib/addlhelp/__init__.py +15 -0
- data/packages/gsutil/gslib/addlhelp/acls.py +234 -0
- data/packages/gsutil/gslib/addlhelp/anon.py +57 -0
- data/packages/gsutil/gslib/addlhelp/command_opts.py +116 -0
- data/packages/gsutil/gslib/addlhelp/dev.py +139 -0
- data/packages/gsutil/gslib/addlhelp/metadata.py +186 -0
- data/packages/gsutil/gslib/addlhelp/naming.py +173 -0
- data/packages/gsutil/gslib/addlhelp/prod.py +160 -0
- data/packages/gsutil/gslib/addlhelp/projects.py +130 -0
- data/packages/gsutil/gslib/addlhelp/subdirs.py +110 -0
- data/packages/gsutil/gslib/addlhelp/support.py +86 -0
- data/packages/gsutil/gslib/addlhelp/versioning.py +242 -0
- data/packages/gsutil/gslib/addlhelp/wildcards.py +170 -0
- data/packages/gsutil/gslib/bucket_listing_ref.py +175 -0
- data/packages/gsutil/gslib/bucket_listing_ref.pyc +0 -0
- data/packages/gsutil/gslib/command.py +722 -0
- data/packages/gsutil/gslib/command.pyc +0 -0
- data/packages/gsutil/gslib/command_runner.py +101 -0
- data/packages/gsutil/gslib/command_runner.pyc +0 -0
- data/packages/gsutil/gslib/commands/__init__.py +15 -0
- data/packages/gsutil/gslib/commands/__init__.pyc +0 -0
- data/packages/gsutil/gslib/commands/cat.py +131 -0
- data/packages/gsutil/gslib/commands/cat.pyc +0 -0
- data/packages/gsutil/gslib/commands/chacl.py +532 -0
- data/packages/gsutil/gslib/commands/chacl.pyc +0 -0
- data/packages/gsutil/gslib/commands/config.py +694 -0
- data/packages/gsutil/gslib/commands/config.pyc +0 -0
- data/packages/gsutil/gslib/commands/cp.py +1818 -0
- data/packages/gsutil/gslib/commands/cp.pyc +0 -0
- data/packages/gsutil/gslib/commands/disablelogging.py +101 -0
- data/packages/gsutil/gslib/commands/disablelogging.pyc +0 -0
- data/packages/gsutil/gslib/commands/enablelogging.py +149 -0
- data/packages/gsutil/gslib/commands/enablelogging.pyc +0 -0
- data/packages/gsutil/gslib/commands/getacl.py +82 -0
- data/packages/gsutil/gslib/commands/getacl.pyc +0 -0
- data/packages/gsutil/gslib/commands/getcors.py +121 -0
- data/packages/gsutil/gslib/commands/getcors.pyc +0 -0
- data/packages/gsutil/gslib/commands/getdefacl.py +86 -0
- data/packages/gsutil/gslib/commands/getdefacl.pyc +0 -0
- data/packages/gsutil/gslib/commands/getlogging.py +137 -0
- data/packages/gsutil/gslib/commands/getlogging.pyc +0 -0
- data/packages/gsutil/gslib/commands/getversioning.py +116 -0
- data/packages/gsutil/gslib/commands/getversioning.pyc +0 -0
- data/packages/gsutil/gslib/commands/getwebcfg.py +122 -0
- data/packages/gsutil/gslib/commands/getwebcfg.pyc +0 -0
- data/packages/gsutil/gslib/commands/help.py +218 -0
- data/packages/gsutil/gslib/commands/help.pyc +0 -0
- data/packages/gsutil/gslib/commands/ls.py +578 -0
- data/packages/gsutil/gslib/commands/ls.pyc +0 -0
- data/packages/gsutil/gslib/commands/mb.py +172 -0
- data/packages/gsutil/gslib/commands/mb.pyc +0 -0
- data/packages/gsutil/gslib/commands/mv.py +159 -0
- data/packages/gsutil/gslib/commands/mv.pyc +0 -0
- data/packages/gsutil/gslib/commands/perfdiag.py +903 -0
- data/packages/gsutil/gslib/commands/perfdiag.pyc +0 -0
- data/packages/gsutil/gslib/commands/rb.py +113 -0
- data/packages/gsutil/gslib/commands/rb.pyc +0 -0
- data/packages/gsutil/gslib/commands/rm.py +239 -0
- data/packages/gsutil/gslib/commands/rm.pyc +0 -0
- data/packages/gsutil/gslib/commands/setacl.py +138 -0
- data/packages/gsutil/gslib/commands/setacl.pyc +0 -0
- data/packages/gsutil/gslib/commands/setcors.py +145 -0
- data/packages/gsutil/gslib/commands/setcors.pyc +0 -0
- data/packages/gsutil/gslib/commands/setdefacl.py +105 -0
- data/packages/gsutil/gslib/commands/setdefacl.pyc +0 -0
- data/packages/gsutil/gslib/commands/setmeta.py +428 -0
- data/packages/gsutil/gslib/commands/setmeta.pyc +0 -0
- data/packages/gsutil/gslib/commands/setversioning.py +114 -0
- data/packages/gsutil/gslib/commands/setversioning.pyc +0 -0
- data/packages/gsutil/gslib/commands/setwebcfg.py +190 -0
- data/packages/gsutil/gslib/commands/setwebcfg.pyc +0 -0
- data/packages/gsutil/gslib/commands/test.py +228 -0
- data/packages/gsutil/gslib/commands/test.pyc +0 -0
- data/packages/gsutil/gslib/commands/update.py +305 -0
- data/packages/gsutil/gslib/commands/update.pyc +0 -0
- data/packages/gsutil/gslib/commands/version.py +150 -0
- data/packages/gsutil/gslib/commands/version.pyc +0 -0
- data/packages/gsutil/gslib/exception.py +76 -0
- data/packages/gsutil/gslib/exception.pyc +0 -0
- data/packages/gsutil/gslib/help_provider.py +81 -0
- data/packages/gsutil/gslib/help_provider.pyc +0 -0
- data/packages/gsutil/gslib/name_expansion.py +550 -0
- data/packages/gsutil/gslib/name_expansion.pyc +0 -0
- data/packages/gsutil/gslib/no_op_auth_plugin.py +30 -0
- data/packages/gsutil/gslib/plurality_checkable_iterator.py +56 -0
- data/packages/gsutil/gslib/plurality_checkable_iterator.pyc +0 -0
- data/packages/gsutil/gslib/project_id.py +67 -0
- data/packages/gsutil/gslib/project_id.pyc +0 -0
- data/packages/gsutil/gslib/storage_uri_builder.py +56 -0
- data/packages/gsutil/gslib/storage_uri_builder.pyc +0 -0
- data/packages/gsutil/gslib/tests/__init__.py +15 -0
- data/packages/gsutil/gslib/tests/__init__.pyc +0 -0
- data/packages/gsutil/gslib/tests/test_chacl.py +236 -0
- data/packages/gsutil/gslib/tests/test_cp.py +267 -0
- data/packages/gsutil/gslib/tests/test_data/test.gif +0 -0
- data/packages/gsutil/gslib/tests/test_data/test.mp3 +0 -0
- data/packages/gsutil/gslib/tests/test_ls.py +66 -0
- data/packages/gsutil/gslib/tests/test_mv.py +69 -0
- data/packages/gsutil/gslib/tests/test_naming.py +989 -0
- data/packages/gsutil/gslib/tests/test_perfdiag.py +41 -0
- data/packages/gsutil/gslib/tests/test_plurality_checkable_iterator.py +67 -0
- data/packages/gsutil/gslib/tests/test_rm.py +143 -0
- data/packages/gsutil/gslib/tests/test_setacl.py +152 -0
- data/packages/gsutil/gslib/tests/test_setcors.py +168 -0
- data/packages/gsutil/gslib/tests/test_setmeta.py +91 -0
- data/packages/gsutil/gslib/tests/test_setversioning.py +44 -0
- data/packages/gsutil/gslib/tests/test_setwebcfg.py +63 -0
- data/packages/gsutil/gslib/tests/test_thread_pool.py +92 -0
- data/packages/gsutil/gslib/tests/test_wildcard_iterator.py +364 -0
- data/packages/gsutil/gslib/tests/testcase/__init__.py +18 -0
- data/packages/gsutil/gslib/tests/testcase/base.py +89 -0
- data/packages/gsutil/gslib/tests/testcase/integration_testcase.py +197 -0
- data/packages/gsutil/gslib/tests/testcase/unit_testcase.py +230 -0
- data/packages/gsutil/gslib/tests/util.py +125 -0
- data/packages/gsutil/gslib/tests/util.pyc +0 -0
- data/packages/gsutil/gslib/thread_pool.py +79 -0
- data/packages/gsutil/gslib/thread_pool.pyc +0 -0
- data/packages/gsutil/gslib/util.py +151 -0
- data/packages/gsutil/gslib/util.pyc +0 -0
- data/packages/gsutil/gslib/wildcard_iterator.py +492 -0
- data/packages/gsutil/gslib/wildcard_iterator.pyc +0 -0
- data/packages/gsutil/gsutil +377 -0
- data/packages/gsutil/gsutil.spec.in +75 -0
- data/packages/gsutil/oauth2_plugin/__init__.py +22 -0
- data/packages/gsutil/oauth2_plugin/__init__.pyc +0 -0
- data/packages/gsutil/oauth2_plugin/oauth2_client.py +642 -0
- data/packages/gsutil/oauth2_plugin/oauth2_client.pyc +0 -0
- data/packages/gsutil/oauth2_plugin/oauth2_client_test.py +374 -0
- data/packages/gsutil/oauth2_plugin/oauth2_helper.py +110 -0
- data/packages/gsutil/oauth2_plugin/oauth2_helper.pyc +0 -0
- data/packages/gsutil/oauth2_plugin/oauth2_plugin.py +24 -0
- data/packages/gsutil/oauth2_plugin/oauth2_plugin.pyc +0 -0
- data/packages/gsutil/pkg_gen.sh +54 -0
- data/packages/gsutil/pkg_util.py +60 -0
- data/packages/gsutil/setup.py +141 -0
- data/packages/gsutil/third_party/__init__.py +0 -0
- data/packages/gsutil/third_party/__init__.pyc +0 -0
- data/packages/gsutil/third_party/fancy_urllib/README +21 -0
- data/packages/gsutil/third_party/fancy_urllib/__init__.py +398 -0
- data/packages/gsutil/third_party/fancy_urllib/__init__.pyc +0 -0
- data/tasks/rubygem.rake +3 -1
- metadata +770 -7
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Copyright 2012 Google Inc. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from gslib.help_provider import HELP_NAME
|
|
16
|
+
from gslib.help_provider import HELP_NAME_ALIASES
|
|
17
|
+
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
|
18
|
+
from gslib.help_provider import HelpProvider
|
|
19
|
+
from gslib.help_provider import HELP_TEXT
|
|
20
|
+
from gslib.help_provider import HelpType
|
|
21
|
+
from gslib.help_provider import HELP_TYPE
|
|
22
|
+
|
|
23
|
+
_detailed_help_text = ("""
|
|
24
|
+
<B>OVERVIEW</B>
|
|
25
|
+
We're open to incorporating gsutil code changes authored by users. Here
|
|
26
|
+
are some guidelines:
|
|
27
|
+
|
|
28
|
+
1. Before we can accept code submissions, we have to jump a couple of legal
|
|
29
|
+
hurdles. Please fill out either the individual or corporate Contributor
|
|
30
|
+
License Agreement:
|
|
31
|
+
- If you are an individual writing original source code and you're
|
|
32
|
+
sure you own the intellectual property,
|
|
33
|
+
then you'll need to sign an individual CLA
|
|
34
|
+
(http://code.google.com/legal/individual-cla-v1.0.html).
|
|
35
|
+
- If you work for a company that wants to allow you to contribute your
|
|
36
|
+
work to gsutil, then you'll need to sign a corporate CLA
|
|
37
|
+
(http://code.google.com/legal/corporate-cla-v1.0.html)
|
|
38
|
+
|
|
39
|
+
Follow either of the two links above to access the appropriate CLA and
|
|
40
|
+
instructions for how to sign and return it. Once we receive it, we'll
|
|
41
|
+
add you to the official list of contributors and be able to accept
|
|
42
|
+
your patches.
|
|
43
|
+
|
|
44
|
+
2. If you found a bug or have an idea for a feature enhancement, we suggest
|
|
45
|
+
you check http://code.google.com/p/gsutil/issues/list to see if it has
|
|
46
|
+
already been reported by another user. From there you can also add yourself
|
|
47
|
+
to the Cc list for an issue, so you will find out about any developments.
|
|
48
|
+
|
|
49
|
+
3. It's usually worthwhile to send email to gs-team@google.com about your
|
|
50
|
+
idea before sending actual code. Often we can discuss the idea and help
|
|
51
|
+
propose things that could save you later revision work.
|
|
52
|
+
|
|
53
|
+
4. We tend to avoid adding command line options that are of use to only
|
|
54
|
+
a very small fraction of users, especially if there's some other way
|
|
55
|
+
to accommodate such needs. Adding such options complicates the code and
|
|
56
|
+
also adds overhead to users having to read through an "alphabet soup"
|
|
57
|
+
list of option documentation.
|
|
58
|
+
|
|
59
|
+
5. While gsutil has a number of features specific to Google Cloud Storage,
|
|
60
|
+
it can also be used with other cloud storage providers. We're open to
|
|
61
|
+
including changes for making gsutil support features specific to other
|
|
62
|
+
providers, as long as those changes don't make gsutil work worse for Google
|
|
63
|
+
Cloud Storage. If you do make such changes we recommend including someone
|
|
64
|
+
with knowledge of the specific provider as a code reviewer (see below).
|
|
65
|
+
|
|
66
|
+
6. You can check out the gsutil code from svn - see
|
|
67
|
+
http://code.google.com/p/gsutil/source/checkout. Then change directories
|
|
68
|
+
into gsutil/src, and check out the boto code from github:
|
|
69
|
+
|
|
70
|
+
git clone git://github.com/boto/boto.git
|
|
71
|
+
|
|
72
|
+
7. Please make sure to run all tests against your modified code. To
|
|
73
|
+
do this, change directories into the gsutil top-level directory and run:
|
|
74
|
+
|
|
75
|
+
./gsutil test
|
|
76
|
+
|
|
77
|
+
The above tests take a long time to run because they send many requests to
|
|
78
|
+
the production service. The gsutil test command has a -u argument that will
|
|
79
|
+
only run unit tests. These run quickly, as they are executed with an
|
|
80
|
+
in-memory mock storage service implementation. To run only the unit tests,
|
|
81
|
+
run:
|
|
82
|
+
|
|
83
|
+
./gsutil test -u
|
|
84
|
+
|
|
85
|
+
If you made mods to boto please run the boto tests. For these tests you
|
|
86
|
+
need to use HMAC credentials (from gsutil config -a), because the current
|
|
87
|
+
boto test suite doesn't import the OAuth2 handler. You'll also need to
|
|
88
|
+
install some python modules: change directories into the top-level gsutil
|
|
89
|
+
directory and run:
|
|
90
|
+
|
|
91
|
+
pip install -qr boto/requirements.txt
|
|
92
|
+
|
|
93
|
+
(You probably need to run this commad using sudo.)
|
|
94
|
+
Make sure each of the individual installations succeeded. If they don't
|
|
95
|
+
you may need to run individual ones again, e.g.,
|
|
96
|
+
|
|
97
|
+
pip install unittest2
|
|
98
|
+
|
|
99
|
+
Then ensure your .boto file has HMAC credentials defined (the boto tests
|
|
100
|
+
don't load the OAUTH2 plugin), and then change directories into boto/tests
|
|
101
|
+
and run:
|
|
102
|
+
|
|
103
|
+
python test.py unit
|
|
104
|
+
python test.py -t s3 -t gs -t ssl
|
|
105
|
+
|
|
106
|
+
8. Please consider contributing test code for your change, especially if the
|
|
107
|
+
change impacts any of the core gsutil code (like the gsutil cp command).
|
|
108
|
+
|
|
109
|
+
9. When it's time to send us code, please use the Rietveld code review tool
|
|
110
|
+
rather than simply sending us a code patch. Do this as follows:
|
|
111
|
+
- check out the gsutil code from at
|
|
112
|
+
http://code.google.com/p/gsutil/source/checkout and apply your changes
|
|
113
|
+
in the checked out directory.
|
|
114
|
+
- download the "upload.py" script from
|
|
115
|
+
http://code.google.com/p/rietveld/wiki/UploadPyUsage
|
|
116
|
+
- run upload.py from the above gsutil svn directory.
|
|
117
|
+
- click the codereview.appspot.com link it generates, click "Edit Issue",
|
|
118
|
+
and add mfschwartz@google.com as a reviewer, and Cc gs-team@google.com.
|
|
119
|
+
- click Publish+Mail Comments.
|
|
120
|
+
""")
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class CommandOptions(HelpProvider):
|
|
125
|
+
"""Additional help about Access Control Lists."""
|
|
126
|
+
|
|
127
|
+
help_spec = {
|
|
128
|
+
# Name of command or auxiliary help info for which this help applies.
|
|
129
|
+
HELP_NAME : 'dev',
|
|
130
|
+
# List of help name aliases.
|
|
131
|
+
HELP_NAME_ALIASES : ['development', 'developer', 'code', 'mods',
|
|
132
|
+
'software'],
|
|
133
|
+
# Type of help:
|
|
134
|
+
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
|
135
|
+
# One line summary of this help.
|
|
136
|
+
HELP_ONE_LINE_SUMMARY : 'Making modifications to gsutil',
|
|
137
|
+
# The full help text.
|
|
138
|
+
HELP_TEXT : _detailed_help_text,
|
|
139
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Copyright 2012 Google Inc. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from gslib.help_provider import HELP_NAME
|
|
16
|
+
from gslib.help_provider import HELP_NAME_ALIASES
|
|
17
|
+
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
|
18
|
+
from gslib.help_provider import HelpProvider
|
|
19
|
+
from gslib.help_provider import HELP_TEXT
|
|
20
|
+
from gslib.help_provider import HelpType
|
|
21
|
+
from gslib.help_provider import HELP_TYPE
|
|
22
|
+
|
|
23
|
+
_detailed_help_text = ("""
|
|
24
|
+
<B>OVERVIEW OF METADATA</B>
|
|
25
|
+
Objects can have associated metadata, which control aspects of how
|
|
26
|
+
GET requests are handled, including Content-Type, Cache-Control,
|
|
27
|
+
Content-Disposition, and Content-Encoding (discussed in more detail in
|
|
28
|
+
the subsections below). In addition, you can set custom metadata that
|
|
29
|
+
can be used by applications (e.g., tagging that particular objects possess
|
|
30
|
+
some property).
|
|
31
|
+
|
|
32
|
+
There are two ways to set metadata on objects:
|
|
33
|
+
|
|
34
|
+
- at upload time you can specify one or more headers to associate with
|
|
35
|
+
objects, using the gsutil -h option. For example, the following command
|
|
36
|
+
would cause gsutil to set the Content-Type and Cache-Control for each
|
|
37
|
+
of the files being uploaded:
|
|
38
|
+
|
|
39
|
+
gsutil -h "Content-Type:text/html" -h "Cache-Control:public, max-age=3600" cp -r images gs://bucket/images
|
|
40
|
+
|
|
41
|
+
Note that -h is an option on the gsutil command, not the cp sub-command.
|
|
42
|
+
|
|
43
|
+
- You can set or remove metadata fields from already uploaded objects using
|
|
44
|
+
the gsutil setmeta command. See "gsutil help setmeta".
|
|
45
|
+
|
|
46
|
+
More details about specific pieces of metadata are discussed below.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<B>CONTENT TYPE</B>
|
|
50
|
+
The most commonly set metadata is Content-Type (also known as MIME type),
|
|
51
|
+
which allows browsers to render the object properly.
|
|
52
|
+
gsutil sets the Content-Type
|
|
53
|
+
automatically at upload time, based on each filename extension. For
|
|
54
|
+
example, uploading files with names ending in .txt will set Content-Type
|
|
55
|
+
to text/plain. If you're running gsutil on Linux or MacOS and would prefer
|
|
56
|
+
to have content type set based on naming plus content examination, see the
|
|
57
|
+
use_magicfile configuration variable in the gsutil/boto configuration file
|
|
58
|
+
(See also "gsutil help config"). In general, using use_magicfile is more
|
|
59
|
+
robust and configurable, but is not available on Windows.
|
|
60
|
+
|
|
61
|
+
If you specify a -h header when uploading content (like the example gsutil
|
|
62
|
+
command given in the previous section), it overrides the Content-Type that
|
|
63
|
+
would have been set based on filename extension or content. This can be
|
|
64
|
+
useful if the Content-Type detection algorithm doesn't work as desired
|
|
65
|
+
for some of your files.
|
|
66
|
+
|
|
67
|
+
You can also completely suppress content type detection in gsutil, by
|
|
68
|
+
specifying an empty string on the Content-Type header:
|
|
69
|
+
|
|
70
|
+
gsutil -h 'Content-Type:' cp -r images gs://bucket/images
|
|
71
|
+
|
|
72
|
+
In this case, the Google Cloud Storage service will attempt to detect
|
|
73
|
+
the content type. In general this approach will work better than using
|
|
74
|
+
filename extension-based content detection in gsutil, because the list of
|
|
75
|
+
filename extensions is kept more current in the server-side content detection
|
|
76
|
+
system than in the Python library upon which gsutil content type detection
|
|
77
|
+
depends. (For example, at the time of writing this, the filename extension
|
|
78
|
+
".webp" was recognized by the server-side content detection system, but
|
|
79
|
+
not by gsutil.)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
<B>CACHE-CONTROL</B>
|
|
83
|
+
Another commonly set piece of metadata is Cache-Control, which allows
|
|
84
|
+
you to control whether and for how long browser and Internet caches are
|
|
85
|
+
allowed to cache your objects. Cache-Control only applies to objects with
|
|
86
|
+
a public-read ACL. Non-public data are not cacheable.
|
|
87
|
+
|
|
88
|
+
Here's an example of uploading an object set to allow caching:
|
|
89
|
+
|
|
90
|
+
gsutil -h "Cache-Control:public,max-age=3600" cp -a public-read -r html gs://bucket/html
|
|
91
|
+
|
|
92
|
+
This command would upload all files in the html directory (and subdirectories)
|
|
93
|
+
and make them publicly readable and cacheable, with cache expiration of
|
|
94
|
+
one hour.
|
|
95
|
+
|
|
96
|
+
Note that if you allow caching, at download time you may see older versions
|
|
97
|
+
of objects after uploading a newer replacement object. Note also that because
|
|
98
|
+
objects can be cached at various places on the Internet there is no way to
|
|
99
|
+
force a cached object to expire globally (unlike the way you can force your
|
|
100
|
+
browser to refresh its cache).
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<B>CONTENT-ENCODING</B>
|
|
104
|
+
You could specify Content-Encoding to indicate that an object is compressed,
|
|
105
|
+
using a command like:
|
|
106
|
+
|
|
107
|
+
gsutil -h "Content-Encoding:gzip" cp *.gz gs://bucket/compressed
|
|
108
|
+
|
|
109
|
+
Note that Google Cloud Storage does not compress or decompress objects. If
|
|
110
|
+
you use this header to specify a compression type or compression algorithm
|
|
111
|
+
(for example, deflate), Google Cloud Storage preserves the header but does
|
|
112
|
+
not compress or decompress the object. Instead, you need to ensure that
|
|
113
|
+
the files have been compressed using the specified Content-Encoding before
|
|
114
|
+
using gsutil to upload them.
|
|
115
|
+
|
|
116
|
+
For compressible content, using Content-Encoding:gzip saves network and
|
|
117
|
+
storage costs, and improves content serving performance (since most browsers
|
|
118
|
+
are able to decompress objects served this way).
|
|
119
|
+
|
|
120
|
+
Note also that gsutil provides an easy way to cause content to be compressed
|
|
121
|
+
and stored with Content-Encoding:gzip: see the -z option in "gsutil help cp".
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
<B>CONTENT-DISPOSITION</B>
|
|
125
|
+
You can set Content-Disposition on your objects, to specify presentation
|
|
126
|
+
information about the data being transmitted. Here's an example:
|
|
127
|
+
|
|
128
|
+
gsutil -h 'Content-Disposition:attachment; filename=filename.ext' \\
|
|
129
|
+
cp -r attachments gs://bucket/attachments
|
|
130
|
+
|
|
131
|
+
Setting the Content-Disposition allows you to control presentation style
|
|
132
|
+
of the content, for example determining whether an attachment should be
|
|
133
|
+
automatically displayed vs should require some form of action from the user to
|
|
134
|
+
open it. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
|
|
135
|
+
for more details about the meaning of Content-Disposition.
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
<B>CUSTOM METADATA</B>
|
|
139
|
+
You can add your own custom metadata (e.g,. for use by your application)
|
|
140
|
+
to an object by setting a header that starts with "x-goog-meta", for example:
|
|
141
|
+
|
|
142
|
+
gsutil -h x-goog-meta-reviewer:jane cp mycode.java gs://bucket/reviews
|
|
143
|
+
|
|
144
|
+
You can add multiple differently named custom metadata fields to each object.
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
<B>SETTABLE FIELDS; FIELD VALUES</B>
|
|
148
|
+
You can't set some metadata fields, such as ETag and Content-Length. The
|
|
149
|
+
fields you can set are:
|
|
150
|
+
- Cache-Control
|
|
151
|
+
- Content-Disposition
|
|
152
|
+
- Content-Encoding
|
|
153
|
+
- Content-Language
|
|
154
|
+
- Content-MD5
|
|
155
|
+
- Content-Type
|
|
156
|
+
- Any field starting with X-GOOG-META- (i.e., custom metadata).
|
|
157
|
+
|
|
158
|
+
Header names are case-insensitive.
|
|
159
|
+
|
|
160
|
+
X-GOOG-META- fields can have data set to arbitrary Unicode values. All
|
|
161
|
+
other fields must have ASCII values.
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
<B>VIEWING CURRENTLY SET METADATA</B>
|
|
165
|
+
You can see what metadata is currently set on an object by using:
|
|
166
|
+
|
|
167
|
+
gsutil ls -L gs://the_bucket/the_object
|
|
168
|
+
""")
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class CommandOptions(HelpProvider):
|
|
172
|
+
"""Additional help about object metadata."""
|
|
173
|
+
|
|
174
|
+
help_spec = {
|
|
175
|
+
# Name of command or auxiliary help info for which this help applies.
|
|
176
|
+
HELP_NAME : 'metadata',
|
|
177
|
+
# List of help name aliases.
|
|
178
|
+
HELP_NAME_ALIASES : ['cache-control', 'caching', 'content type',
|
|
179
|
+
'mime type', 'mime', 'type'],
|
|
180
|
+
# Type of help:
|
|
181
|
+
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
|
182
|
+
# One line summary of this help.
|
|
183
|
+
HELP_ONE_LINE_SUMMARY : 'Working with object metadata',
|
|
184
|
+
# The full help text.
|
|
185
|
+
HELP_TEXT : _detailed_help_text,
|
|
186
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Copyright 2012 Google Inc. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from gslib.help_provider import HELP_NAME
|
|
16
|
+
from gslib.help_provider import HELP_NAME_ALIASES
|
|
17
|
+
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
|
18
|
+
from gslib.help_provider import HelpProvider
|
|
19
|
+
from gslib.help_provider import HELP_TEXT
|
|
20
|
+
from gslib.help_provider import HelpType
|
|
21
|
+
from gslib.help_provider import HELP_TYPE
|
|
22
|
+
|
|
23
|
+
_detailed_help_text = ("""
|
|
24
|
+
<B>BUCKET NAME REQUIREMENTS</B>
|
|
25
|
+
Google Cloud Storage has a single namespace, so you will not be allowed
|
|
26
|
+
to create a bucket with a name already in use by another user. You can,
|
|
27
|
+
however, carve out parts of the bucket name space corresponding to your
|
|
28
|
+
company's domain name (see "DOMAIN NAMED BUCKETS").
|
|
29
|
+
|
|
30
|
+
Bucket names must conform to standard DNS naming conventions. This is
|
|
31
|
+
because a bucket name can appear in a DNS record as part of a CNAME
|
|
32
|
+
redirect. In addition to meeting DNS naming requirements, Google Cloud
|
|
33
|
+
Storage imposes other requirements on bucket naming. At a minimum, your
|
|
34
|
+
bucket names must meet the following requirements:
|
|
35
|
+
|
|
36
|
+
- Bucket names must contain only lowercase letters, numbers, dashes (-), and
|
|
37
|
+
dots (.).
|
|
38
|
+
|
|
39
|
+
- Bucket names must start and end with a number or letter.
|
|
40
|
+
|
|
41
|
+
- Bucket names must contain 3 to 63 characters. Names containing dots can
|
|
42
|
+
contain up to 222 characters, but each dot-separated component can be
|
|
43
|
+
no longer than 63 characters.
|
|
44
|
+
|
|
45
|
+
- Bucket names cannot be represented as an IPv4 address in dotted-decimal
|
|
46
|
+
notation (for example, 192.168.5.4).
|
|
47
|
+
|
|
48
|
+
- Bucket names cannot begin with the "goog" prefix.
|
|
49
|
+
|
|
50
|
+
- For DNS compliance, you should not have a period adjacent to another
|
|
51
|
+
period or dash. For example, ".." or "-." or ".-" are not acceptable.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
<B>OBJECT NAME REQUIREMENTS</B>
|
|
55
|
+
Object names can contain any sequence of Unicode characters, of length 1-1024
|
|
56
|
+
bytes when UTF-8 encoded. Object names must not contain CarriageReturn,
|
|
57
|
+
CarriageReturnLineFeed, or the XML-disallowed surrogate blocks (xFFFE
|
|
58
|
+
or xFFFF).
|
|
59
|
+
|
|
60
|
+
We highly recommend that you avoid using control characters that are illegal
|
|
61
|
+
in XML 1.0 in your object names. These characters will cause XML listing
|
|
62
|
+
issues when you try to list your objects.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
<B>DOMAIN NAMED BUCKETS</B>
|
|
66
|
+
You can carve out parts of the Google Cloud Storage bucket name space
|
|
67
|
+
by creating buckets with domain names (like "example.com").
|
|
68
|
+
|
|
69
|
+
Before you can create a bucket name containing one or more '.' characters,
|
|
70
|
+
the following rules apply:
|
|
71
|
+
- If the name is a syntactically valid DNS name ending with a
|
|
72
|
+
currently-recognized top-level domain (such as .com), you will be required
|
|
73
|
+
to verify domain ownership.
|
|
74
|
+
- Otherwise you will be disallowed from creating the bucket.
|
|
75
|
+
|
|
76
|
+
If your project needs to use a domain-named bucket, you need to have
|
|
77
|
+
a team member both verify the domain and create the bucket. This is
|
|
78
|
+
because Google Cloud Storage checks for domain ownership against the
|
|
79
|
+
user who creates the bucket, so the user who creates the bucket must
|
|
80
|
+
also be verified as an owner or manager of the domain.
|
|
81
|
+
|
|
82
|
+
To verify as the owner or manager of a domain, use the Google Webmaster
|
|
83
|
+
Tools verification process. The Webmaster Tools verification process
|
|
84
|
+
provides three methods for verifying an owner or manager of a domain:
|
|
85
|
+
|
|
86
|
+
1. Adding a special Meta tag to a site's homepage.
|
|
87
|
+
2. Uploading a special HTML file to a site.
|
|
88
|
+
3. Adding a DNS TXT record to a domain's DNS configuration.
|
|
89
|
+
|
|
90
|
+
Meta tag verification and HTML file verification are easier to perform and
|
|
91
|
+
are probably adequate for most situations. DNS TXT record verification is
|
|
92
|
+
a domain-based verification method that is useful in situations where a
|
|
93
|
+
site wants to tightly control who can create domain-named buckets. Once
|
|
94
|
+
a site creates a DNS TXT record to verify ownership of a domain, it takes
|
|
95
|
+
precedence over meta tag and HTML file verification. For example, you might
|
|
96
|
+
have two IT staff members who are responsible for managing your site, called
|
|
97
|
+
"example.com." If they complete the DNS TXT record verification, only they
|
|
98
|
+
would be able to create buckets called "example.com", "reports.example.com",
|
|
99
|
+
"downloads.example.com", and other domain-named buckets.
|
|
100
|
+
|
|
101
|
+
Site-Based Verification
|
|
102
|
+
|
|
103
|
+
If you have administrative control over the HTML files that make up a site,
|
|
104
|
+
you can use one of the site-based verification methods to verify that you
|
|
105
|
+
control or own a site. When you do this, Google Cloud Storage lets you
|
|
106
|
+
create buckets representing the verified site and any sub-sites - provided
|
|
107
|
+
nobody has used the DNS TXT record method to verify domain ownership of a
|
|
108
|
+
parent of the site.
|
|
109
|
+
|
|
110
|
+
As an example, assume that nobody has used the DNS TXT record method to verify
|
|
111
|
+
ownership of the following domains: abc.def.example.com, def.example.com,
|
|
112
|
+
and example.com. In this case, Google Cloud Storage lets you create a bucket
|
|
113
|
+
named abc.def.example.com if you verify that you own or control any of the
|
|
114
|
+
following sites:
|
|
115
|
+
|
|
116
|
+
http://abc.def.example.com
|
|
117
|
+
http://def.example.com
|
|
118
|
+
http://example.com
|
|
119
|
+
|
|
120
|
+
Domain-Based Verification
|
|
121
|
+
|
|
122
|
+
If you have administrative control over a domain's DNS configuration, you can
|
|
123
|
+
use the DNS TXT record verification method to verify that you own or control a
|
|
124
|
+
domain. When you use the domain-based verification method to verify that you
|
|
125
|
+
own or control a domain, Google Cloud Storage lets you create buckets that
|
|
126
|
+
represent any subdomain under the verified domain. Furthermore, Google Cloud
|
|
127
|
+
Storage prevents anybody else from creating buckets under that domain unless
|
|
128
|
+
you add their name to the list of verified domain owners or they have verified
|
|
129
|
+
their domain ownership by using the DNS TXT record verification method.
|
|
130
|
+
|
|
131
|
+
For example, if you use the DNS TXT record verification method to verify your
|
|
132
|
+
ownership of the domain example.com, Google Cloud Storage will let you create
|
|
133
|
+
bucket names that represent any subdomain under the example.com domain, such
|
|
134
|
+
as abc.def.example.com, example.com/music/jazz, or abc.example.com/music/jazz.
|
|
135
|
+
|
|
136
|
+
Using the DNS TXT record method to verify domain ownership supersedes
|
|
137
|
+
verification by site-based verification methods. For example, if you
|
|
138
|
+
use the Meta tag method or HTML file method to verify domain ownership
|
|
139
|
+
of http://example.com, but someone else uses the DNS TXT record method
|
|
140
|
+
to verify ownership of the example.com domain, Google Cloud Storage will
|
|
141
|
+
not allow you to create a bucket named example.com. To create the bucket
|
|
142
|
+
example.com, the domain owner who used the DNS TXT method to verify domain
|
|
143
|
+
ownership must add you to the list of verified domain owners for example.com.
|
|
144
|
+
|
|
145
|
+
The DNS TXT record verification method is particularly useful if you manage
|
|
146
|
+
a domain for a large organization that has numerous subdomains because it
|
|
147
|
+
lets you control who can create buckets representing those domain names.
|
|
148
|
+
|
|
149
|
+
Note: If you use the DNS TXT record verification method to verify ownership of
|
|
150
|
+
a domain, you cannot create a CNAME record for that domain. RFC 1034 disallows
|
|
151
|
+
inclusion of any other resource records if there is a CNAME resource record
|
|
152
|
+
present. If you want to create a CNAME resource record for a domain, you must
|
|
153
|
+
use the Meta tag verification method or the HTML file verification method.
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
""")
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
class CommandOptions(HelpProvider):
|
|
160
|
+
"""Additional help about gsutil object and bucket naming."""
|
|
161
|
+
|
|
162
|
+
help_spec = {
|
|
163
|
+
# Name of command or auxiliary help info for which this help applies.
|
|
164
|
+
HELP_NAME : 'naming',
|
|
165
|
+
# List of help name aliases.
|
|
166
|
+
HELP_NAME_ALIASES : ['domain', 'limits', 'name', 'names'],
|
|
167
|
+
# Type of help:
|
|
168
|
+
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
|
169
|
+
# One line summary of this help.
|
|
170
|
+
HELP_ONE_LINE_SUMMARY : 'Object and bucket naming',
|
|
171
|
+
# The full help text.
|
|
172
|
+
HELP_TEXT : _detailed_help_text,
|
|
173
|
+
}
|