googlecloud 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.
Files changed (768) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +4 -0
  3. data/Makefile +4 -0
  4. data/Manifest +760 -1
  5. data/bin/gcloud +7 -0
  6. data/bin/{gcutil → gcutil.symlink} +0 -0
  7. data/bin/gsutil-symlink +377 -0
  8. data/googlecloud.gemspec +5 -5
  9. data/packages/gsutil/CHECKSUM +1 -0
  10. data/packages/gsutil/COPYING +202 -0
  11. data/packages/gsutil/LICENSE.third_party +295 -0
  12. data/packages/gsutil/MANIFEST.in +5 -0
  13. data/packages/gsutil/README +38 -0
  14. data/packages/gsutil/README.pkg +49 -0
  15. data/packages/gsutil/ReleaseNotes.txt +780 -0
  16. data/packages/gsutil/VERSION +1 -0
  17. data/packages/gsutil/boto/Changelog.rst +35 -0
  18. data/packages/gsutil/boto/LICENSE +18 -0
  19. data/packages/gsutil/boto/MANIFEST.in +12 -0
  20. data/packages/gsutil/boto/README.rst +163 -0
  21. data/packages/gsutil/boto/bin/asadmin +290 -0
  22. data/packages/gsutil/boto/bin/bundle_image +27 -0
  23. data/packages/gsutil/boto/bin/cfadmin +108 -0
  24. data/packages/gsutil/boto/bin/cq +89 -0
  25. data/packages/gsutil/boto/bin/cwutil +140 -0
  26. data/packages/gsutil/boto/bin/elbadmin +284 -0
  27. data/packages/gsutil/boto/bin/fetch_file +43 -0
  28. data/packages/gsutil/boto/bin/glacier +154 -0
  29. data/packages/gsutil/boto/bin/instance_events +145 -0
  30. data/packages/gsutil/boto/bin/kill_instance +35 -0
  31. data/packages/gsutil/boto/bin/launch_instance +252 -0
  32. data/packages/gsutil/boto/bin/list_instances +90 -0
  33. data/packages/gsutil/boto/bin/lss3 +77 -0
  34. data/packages/gsutil/boto/bin/mturk +465 -0
  35. data/packages/gsutil/boto/bin/pyami_sendmail +52 -0
  36. data/packages/gsutil/boto/bin/route53 +205 -0
  37. data/packages/gsutil/boto/bin/s3put +374 -0
  38. data/packages/gsutil/boto/bin/sdbadmin +194 -0
  39. data/packages/gsutil/boto/bin/taskadmin +116 -0
  40. data/packages/gsutil/boto/boto/__init__.py +793 -0
  41. data/packages/gsutil/boto/boto/__init__.pyc +0 -0
  42. data/packages/gsutil/boto/boto/auth.py +682 -0
  43. data/packages/gsutil/boto/boto/auth.pyc +0 -0
  44. data/packages/gsutil/boto/boto/auth_handler.py +58 -0
  45. data/packages/gsutil/boto/boto/auth_handler.pyc +0 -0
  46. data/packages/gsutil/boto/boto/beanstalk/__init__.py +65 -0
  47. data/packages/gsutil/boto/boto/beanstalk/exception.py +64 -0
  48. data/packages/gsutil/boto/boto/beanstalk/layer1.py +1153 -0
  49. data/packages/gsutil/boto/boto/beanstalk/response.py +703 -0
  50. data/packages/gsutil/boto/boto/beanstalk/wrapper.py +29 -0
  51. data/packages/gsutil/boto/boto/cacerts/__init__.py +22 -0
  52. data/packages/gsutil/boto/boto/cacerts/__init__.pyc +0 -0
  53. data/packages/gsutil/boto/boto/cacerts/cacerts.txt +633 -0
  54. data/packages/gsutil/boto/boto/cloudformation/__init__.py +68 -0
  55. data/packages/gsutil/boto/boto/cloudformation/connection.py +364 -0
  56. data/packages/gsutil/boto/boto/cloudformation/stack.py +360 -0
  57. data/packages/gsutil/boto/boto/cloudformation/template.py +43 -0
  58. data/packages/gsutil/boto/boto/cloudfront/__init__.py +324 -0
  59. data/packages/gsutil/boto/boto/cloudfront/distribution.py +745 -0
  60. data/packages/gsutil/boto/boto/cloudfront/exception.py +26 -0
  61. data/packages/gsutil/boto/boto/cloudfront/identity.py +122 -0
  62. data/packages/gsutil/boto/boto/cloudfront/invalidation.py +216 -0
  63. data/packages/gsutil/boto/boto/cloudfront/logging.py +38 -0
  64. data/packages/gsutil/boto/boto/cloudfront/object.py +48 -0
  65. data/packages/gsutil/boto/boto/cloudfront/origin.py +150 -0
  66. data/packages/gsutil/boto/boto/cloudfront/signers.py +60 -0
  67. data/packages/gsutil/boto/boto/cloudsearch/__init__.py +45 -0
  68. data/packages/gsutil/boto/boto/cloudsearch/document.py +265 -0
  69. data/packages/gsutil/boto/boto/cloudsearch/domain.py +394 -0
  70. data/packages/gsutil/boto/boto/cloudsearch/layer1.py +738 -0
  71. data/packages/gsutil/boto/boto/cloudsearch/layer2.py +67 -0
  72. data/packages/gsutil/boto/boto/cloudsearch/optionstatus.py +248 -0
  73. data/packages/gsutil/boto/boto/cloudsearch/search.py +365 -0
  74. data/packages/gsutil/boto/boto/cloudsearch/sourceattribute.py +75 -0
  75. data/packages/gsutil/boto/boto/compat.py +28 -0
  76. data/packages/gsutil/boto/boto/compat.pyc +0 -0
  77. data/packages/gsutil/boto/boto/connection.py +1081 -0
  78. data/packages/gsutil/boto/boto/connection.pyc +0 -0
  79. data/packages/gsutil/boto/boto/contrib/__init__.py +22 -0
  80. data/packages/gsutil/boto/boto/contrib/ymlmessage.py +52 -0
  81. data/packages/gsutil/boto/boto/core/README +58 -0
  82. data/packages/gsutil/boto/boto/core/__init__.py +23 -0
  83. data/packages/gsutil/boto/boto/core/auth.py +78 -0
  84. data/packages/gsutil/boto/boto/core/credentials.py +154 -0
  85. data/packages/gsutil/boto/boto/core/dictresponse.py +178 -0
  86. data/packages/gsutil/boto/boto/core/service.py +67 -0
  87. data/packages/gsutil/boto/boto/datapipeline/__init__.py +0 -0
  88. data/packages/gsutil/boto/boto/datapipeline/exceptions.py +42 -0
  89. data/packages/gsutil/boto/boto/datapipeline/layer1.py +546 -0
  90. data/packages/gsutil/boto/boto/dynamodb/__init__.py +66 -0
  91. data/packages/gsutil/boto/boto/dynamodb/batch.py +262 -0
  92. data/packages/gsutil/boto/boto/dynamodb/condition.py +170 -0
  93. data/packages/gsutil/boto/boto/dynamodb/exceptions.py +64 -0
  94. data/packages/gsutil/boto/boto/dynamodb/item.py +196 -0
  95. data/packages/gsutil/boto/boto/dynamodb/layer1.py +575 -0
  96. data/packages/gsutil/boto/boto/dynamodb/layer2.py +798 -0
  97. data/packages/gsutil/boto/boto/dynamodb/schema.py +112 -0
  98. data/packages/gsutil/boto/boto/dynamodb/table.py +540 -0
  99. data/packages/gsutil/boto/boto/dynamodb/types.py +326 -0
  100. data/packages/gsutil/boto/boto/ec2/__init__.py +96 -0
  101. data/packages/gsutil/boto/boto/ec2/address.py +103 -0
  102. data/packages/gsutil/boto/boto/ec2/autoscale/__init__.py +781 -0
  103. data/packages/gsutil/boto/boto/ec2/autoscale/activity.py +74 -0
  104. data/packages/gsutil/boto/boto/ec2/autoscale/group.py +337 -0
  105. data/packages/gsutil/boto/boto/ec2/autoscale/instance.py +60 -0
  106. data/packages/gsutil/boto/boto/ec2/autoscale/launchconfig.py +209 -0
  107. data/packages/gsutil/boto/boto/ec2/autoscale/policy.py +166 -0
  108. data/packages/gsutil/boto/boto/ec2/autoscale/request.py +38 -0
  109. data/packages/gsutil/boto/boto/ec2/autoscale/scheduled.py +60 -0
  110. data/packages/gsutil/boto/boto/ec2/autoscale/tag.py +84 -0
  111. data/packages/gsutil/boto/boto/ec2/blockdevicemapping.py +141 -0
  112. data/packages/gsutil/boto/boto/ec2/bundleinstance.py +78 -0
  113. data/packages/gsutil/boto/boto/ec2/buyreservation.py +84 -0
  114. data/packages/gsutil/boto/boto/ec2/cloudwatch/__init__.py +603 -0
  115. data/packages/gsutil/boto/boto/ec2/cloudwatch/alarm.py +316 -0
  116. data/packages/gsutil/boto/boto/ec2/cloudwatch/datapoint.py +40 -0
  117. data/packages/gsutil/boto/boto/ec2/cloudwatch/dimension.py +38 -0
  118. data/packages/gsutil/boto/boto/ec2/cloudwatch/listelement.py +31 -0
  119. data/packages/gsutil/boto/boto/ec2/cloudwatch/metric.py +175 -0
  120. data/packages/gsutil/boto/boto/ec2/connection.py +3409 -0
  121. data/packages/gsutil/boto/boto/ec2/ec2object.py +107 -0
  122. data/packages/gsutil/boto/boto/ec2/elb/__init__.py +553 -0
  123. data/packages/gsutil/boto/boto/ec2/elb/healthcheck.py +89 -0
  124. data/packages/gsutil/boto/boto/ec2/elb/instancestate.py +62 -0
  125. data/packages/gsutil/boto/boto/ec2/elb/listelement.py +36 -0
  126. data/packages/gsutil/boto/boto/ec2/elb/listener.py +75 -0
  127. data/packages/gsutil/boto/boto/ec2/elb/loadbalancer.py +324 -0
  128. data/packages/gsutil/boto/boto/ec2/elb/policies.py +89 -0
  129. data/packages/gsutil/boto/boto/ec2/elb/securitygroup.py +38 -0
  130. data/packages/gsutil/boto/boto/ec2/group.py +39 -0
  131. data/packages/gsutil/boto/boto/ec2/image.py +350 -0
  132. data/packages/gsutil/boto/boto/ec2/instance.py +661 -0
  133. data/packages/gsutil/boto/boto/ec2/instanceinfo.py +51 -0
  134. data/packages/gsutil/boto/boto/ec2/instancestatus.py +207 -0
  135. data/packages/gsutil/boto/boto/ec2/keypair.py +113 -0
  136. data/packages/gsutil/boto/boto/ec2/launchspecification.py +105 -0
  137. data/packages/gsutil/boto/boto/ec2/networkinterface.py +247 -0
  138. data/packages/gsutil/boto/boto/ec2/placementgroup.py +51 -0
  139. data/packages/gsutil/boto/boto/ec2/regioninfo.py +34 -0
  140. data/packages/gsutil/boto/boto/ec2/reservedinstance.py +227 -0
  141. data/packages/gsutil/boto/boto/ec2/securitygroup.py +357 -0
  142. data/packages/gsutil/boto/boto/ec2/snapshot.py +170 -0
  143. data/packages/gsutil/boto/boto/ec2/spotdatafeedsubscription.py +63 -0
  144. data/packages/gsutil/boto/boto/ec2/spotinstancerequest.py +188 -0
  145. data/packages/gsutil/boto/boto/ec2/spotpricehistory.py +55 -0
  146. data/packages/gsutil/boto/boto/ec2/tag.py +87 -0
  147. data/packages/gsutil/boto/boto/ec2/vmtype.py +58 -0
  148. data/packages/gsutil/boto/boto/ec2/volume.py +293 -0
  149. data/packages/gsutil/boto/boto/ec2/volumestatus.py +200 -0
  150. data/packages/gsutil/boto/boto/ec2/zone.py +80 -0
  151. data/packages/gsutil/boto/boto/ecs/__init__.py +90 -0
  152. data/packages/gsutil/boto/boto/ecs/item.py +153 -0
  153. data/packages/gsutil/boto/boto/elasticache/__init__.py +62 -0
  154. data/packages/gsutil/boto/boto/elasticache/layer1.py +1252 -0
  155. data/packages/gsutil/boto/boto/elastictranscoder/__init__.py +62 -0
  156. data/packages/gsutil/boto/boto/elastictranscoder/exceptions.py +46 -0
  157. data/packages/gsutil/boto/boto/elastictranscoder/layer1.py +509 -0
  158. data/packages/gsutil/boto/boto/emr/__init__.py +73 -0
  159. data/packages/gsutil/boto/boto/emr/bootstrap_action.py +44 -0
  160. data/packages/gsutil/boto/boto/emr/connection.py +531 -0
  161. data/packages/gsutil/boto/boto/emr/emrobject.py +176 -0
  162. data/packages/gsutil/boto/boto/emr/instance_group.py +43 -0
  163. data/packages/gsutil/boto/boto/emr/step.py +281 -0
  164. data/packages/gsutil/boto/boto/exception.py +476 -0
  165. data/packages/gsutil/boto/boto/exception.pyc +0 -0
  166. data/packages/gsutil/boto/boto/file/README +49 -0
  167. data/packages/gsutil/boto/boto/file/__init__.py +28 -0
  168. data/packages/gsutil/boto/boto/file/bucket.py +112 -0
  169. data/packages/gsutil/boto/boto/file/connection.py +33 -0
  170. data/packages/gsutil/boto/boto/file/key.py +199 -0
  171. data/packages/gsutil/boto/boto/file/simpleresultset.py +30 -0
  172. data/packages/gsutil/boto/boto/fps/__init__.py +21 -0
  173. data/packages/gsutil/boto/boto/fps/connection.py +369 -0
  174. data/packages/gsutil/boto/boto/fps/exception.py +344 -0
  175. data/packages/gsutil/boto/boto/fps/response.py +175 -0
  176. data/packages/gsutil/boto/boto/glacier/__init__.py +57 -0
  177. data/packages/gsutil/boto/boto/glacier/concurrent.py +409 -0
  178. data/packages/gsutil/boto/boto/glacier/exceptions.py +58 -0
  179. data/packages/gsutil/boto/boto/glacier/job.py +152 -0
  180. data/packages/gsutil/boto/boto/glacier/layer1.py +637 -0
  181. data/packages/gsutil/boto/boto/glacier/layer2.py +93 -0
  182. data/packages/gsutil/boto/boto/glacier/response.py +48 -0
  183. data/packages/gsutil/boto/boto/glacier/utils.py +163 -0
  184. data/packages/gsutil/boto/boto/glacier/vault.py +387 -0
  185. data/packages/gsutil/boto/boto/glacier/writer.py +242 -0
  186. data/packages/gsutil/boto/boto/gs/__init__.py +22 -0
  187. data/packages/gsutil/boto/boto/gs/__init__.pyc +0 -0
  188. data/packages/gsutil/boto/boto/gs/acl.py +304 -0
  189. data/packages/gsutil/boto/boto/gs/acl.pyc +0 -0
  190. data/packages/gsutil/boto/boto/gs/bucket.py +870 -0
  191. data/packages/gsutil/boto/boto/gs/bucket.pyc +0 -0
  192. data/packages/gsutil/boto/boto/gs/bucketlistresultset.py +64 -0
  193. data/packages/gsutil/boto/boto/gs/bucketlistresultset.pyc +0 -0
  194. data/packages/gsutil/boto/boto/gs/connection.py +103 -0
  195. data/packages/gsutil/boto/boto/gs/connection.pyc +0 -0
  196. data/packages/gsutil/boto/boto/gs/cors.py +169 -0
  197. data/packages/gsutil/boto/boto/gs/cors.pyc +0 -0
  198. data/packages/gsutil/boto/boto/gs/key.py +704 -0
  199. data/packages/gsutil/boto/boto/gs/key.pyc +0 -0
  200. data/packages/gsutil/boto/boto/gs/resumable_upload_handler.py +659 -0
  201. data/packages/gsutil/boto/boto/gs/resumable_upload_handler.pyc +0 -0
  202. data/packages/gsutil/boto/boto/gs/user.py +54 -0
  203. data/packages/gsutil/boto/boto/gs/user.pyc +0 -0
  204. data/packages/gsutil/boto/boto/handler.py +44 -0
  205. data/packages/gsutil/boto/boto/handler.pyc +0 -0
  206. data/packages/gsutil/boto/boto/https_connection.py +124 -0
  207. data/packages/gsutil/boto/boto/https_connection.pyc +0 -0
  208. data/packages/gsutil/boto/boto/iam/__init__.py +74 -0
  209. data/packages/gsutil/boto/boto/iam/connection.py +1317 -0
  210. data/packages/gsutil/boto/boto/iam/summarymap.py +42 -0
  211. data/packages/gsutil/boto/boto/jsonresponse.py +163 -0
  212. data/packages/gsutil/boto/boto/jsonresponse.pyc +0 -0
  213. data/packages/gsutil/boto/boto/manage/__init__.py +23 -0
  214. data/packages/gsutil/boto/boto/manage/cmdshell.py +241 -0
  215. data/packages/gsutil/boto/boto/manage/propget.py +64 -0
  216. data/packages/gsutil/boto/boto/manage/server.py +556 -0
  217. data/packages/gsutil/boto/boto/manage/task.py +175 -0
  218. data/packages/gsutil/boto/boto/manage/test_manage.py +34 -0
  219. data/packages/gsutil/boto/boto/manage/volume.py +420 -0
  220. data/packages/gsutil/boto/boto/mashups/__init__.py +23 -0
  221. data/packages/gsutil/boto/boto/mashups/interactive.py +97 -0
  222. data/packages/gsutil/boto/boto/mashups/iobject.py +115 -0
  223. data/packages/gsutil/boto/boto/mashups/order.py +211 -0
  224. data/packages/gsutil/boto/boto/mashups/server.py +395 -0
  225. data/packages/gsutil/boto/boto/mturk/__init__.py +23 -0
  226. data/packages/gsutil/boto/boto/mturk/connection.py +1027 -0
  227. data/packages/gsutil/boto/boto/mturk/layoutparam.py +55 -0
  228. data/packages/gsutil/boto/boto/mturk/notification.py +103 -0
  229. data/packages/gsutil/boto/boto/mturk/price.py +48 -0
  230. data/packages/gsutil/boto/boto/mturk/qualification.py +137 -0
  231. data/packages/gsutil/boto/boto/mturk/question.py +455 -0
  232. data/packages/gsutil/boto/boto/mws/__init__.py +21 -0
  233. data/packages/gsutil/boto/boto/mws/connection.py +813 -0
  234. data/packages/gsutil/boto/boto/mws/exception.py +75 -0
  235. data/packages/gsutil/boto/boto/mws/response.py +655 -0
  236. data/packages/gsutil/boto/boto/plugin.py +90 -0
  237. data/packages/gsutil/boto/boto/plugin.pyc +0 -0
  238. data/packages/gsutil/boto/boto/provider.py +337 -0
  239. data/packages/gsutil/boto/boto/provider.pyc +0 -0
  240. data/packages/gsutil/boto/boto/pyami/__init__.py +22 -0
  241. data/packages/gsutil/boto/boto/pyami/__init__.pyc +0 -0
  242. data/packages/gsutil/boto/boto/pyami/bootstrap.py +134 -0
  243. data/packages/gsutil/boto/boto/pyami/config.py +229 -0
  244. data/packages/gsutil/boto/boto/pyami/config.pyc +0 -0
  245. data/packages/gsutil/boto/boto/pyami/copybot.cfg +60 -0
  246. data/packages/gsutil/boto/boto/pyami/copybot.py +97 -0
  247. data/packages/gsutil/boto/boto/pyami/helloworld.py +28 -0
  248. data/packages/gsutil/boto/boto/pyami/installers/__init__.py +64 -0
  249. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/__init__.py +22 -0
  250. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/apache.py +43 -0
  251. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/ebs.py +238 -0
  252. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/installer.py +96 -0
  253. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/mysql.py +109 -0
  254. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/trac.py +139 -0
  255. data/packages/gsutil/boto/boto/pyami/launch_ami.py +178 -0
  256. data/packages/gsutil/boto/boto/pyami/scriptbase.py +44 -0
  257. data/packages/gsutil/boto/boto/pyami/startup.py +60 -0
  258. data/packages/gsutil/boto/boto/rds/__init__.py +1194 -0
  259. data/packages/gsutil/boto/boto/rds/dbinstance.py +357 -0
  260. data/packages/gsutil/boto/boto/rds/dbsecuritygroup.py +177 -0
  261. data/packages/gsutil/boto/boto/rds/dbsnapshot.py +108 -0
  262. data/packages/gsutil/boto/boto/rds/event.py +49 -0
  263. data/packages/gsutil/boto/boto/rds/parametergroup.py +201 -0
  264. data/packages/gsutil/boto/boto/rds/regioninfo.py +32 -0
  265. data/packages/gsutil/boto/boto/regioninfo.py +63 -0
  266. data/packages/gsutil/boto/boto/regioninfo.pyc +0 -0
  267. data/packages/gsutil/boto/boto/resultset.py +169 -0
  268. data/packages/gsutil/boto/boto/resultset.pyc +0 -0
  269. data/packages/gsutil/boto/boto/roboto/__init__.py +1 -0
  270. data/packages/gsutil/boto/boto/roboto/awsqueryrequest.py +504 -0
  271. data/packages/gsutil/boto/boto/roboto/awsqueryservice.py +121 -0
  272. data/packages/gsutil/boto/boto/roboto/param.py +147 -0
  273. data/packages/gsutil/boto/boto/route53/__init__.py +75 -0
  274. data/packages/gsutil/boto/boto/route53/connection.py +403 -0
  275. data/packages/gsutil/boto/boto/route53/exception.py +27 -0
  276. data/packages/gsutil/boto/boto/route53/hostedzone.py +56 -0
  277. data/packages/gsutil/boto/boto/route53/record.py +306 -0
  278. data/packages/gsutil/boto/boto/route53/status.py +42 -0
  279. data/packages/gsutil/boto/boto/route53/zone.py +412 -0
  280. data/packages/gsutil/boto/boto/s3/__init__.py +84 -0
  281. data/packages/gsutil/boto/boto/s3/__init__.pyc +0 -0
  282. data/packages/gsutil/boto/boto/s3/acl.py +164 -0
  283. data/packages/gsutil/boto/boto/s3/acl.pyc +0 -0
  284. data/packages/gsutil/boto/boto/s3/bucket.py +1634 -0
  285. data/packages/gsutil/boto/boto/s3/bucket.pyc +0 -0
  286. data/packages/gsutil/boto/boto/s3/bucketlistresultset.py +139 -0
  287. data/packages/gsutil/boto/boto/s3/bucketlistresultset.pyc +0 -0
  288. data/packages/gsutil/boto/boto/s3/bucketlogging.py +83 -0
  289. data/packages/gsutil/boto/boto/s3/bucketlogging.pyc +0 -0
  290. data/packages/gsutil/boto/boto/s3/connection.py +540 -0
  291. data/packages/gsutil/boto/boto/s3/connection.pyc +0 -0
  292. data/packages/gsutil/boto/boto/s3/cors.py +210 -0
  293. data/packages/gsutil/boto/boto/s3/cors.pyc +0 -0
  294. data/packages/gsutil/boto/boto/s3/deletemarker.py +55 -0
  295. data/packages/gsutil/boto/boto/s3/deletemarker.pyc +0 -0
  296. data/packages/gsutil/boto/boto/s3/key.py +1712 -0
  297. data/packages/gsutil/boto/boto/s3/key.pyc +0 -0
  298. data/packages/gsutil/boto/boto/s3/keyfile.py +134 -0
  299. data/packages/gsutil/boto/boto/s3/keyfile.pyc +0 -0
  300. data/packages/gsutil/boto/boto/s3/lifecycle.py +231 -0
  301. data/packages/gsutil/boto/boto/s3/lifecycle.pyc +0 -0
  302. data/packages/gsutil/boto/boto/s3/multidelete.py +138 -0
  303. data/packages/gsutil/boto/boto/s3/multidelete.pyc +0 -0
  304. data/packages/gsutil/boto/boto/s3/multipart.py +315 -0
  305. data/packages/gsutil/boto/boto/s3/multipart.pyc +0 -0
  306. data/packages/gsutil/boto/boto/s3/prefix.py +42 -0
  307. data/packages/gsutil/boto/boto/s3/prefix.pyc +0 -0
  308. data/packages/gsutil/boto/boto/s3/resumable_download_handler.py +339 -0
  309. data/packages/gsutil/boto/boto/s3/resumable_download_handler.pyc +0 -0
  310. data/packages/gsutil/boto/boto/s3/tagging.py +71 -0
  311. data/packages/gsutil/boto/boto/s3/tagging.pyc +0 -0
  312. data/packages/gsutil/boto/boto/s3/user.py +49 -0
  313. data/packages/gsutil/boto/boto/s3/user.pyc +0 -0
  314. data/packages/gsutil/boto/boto/s3/website.py +237 -0
  315. data/packages/gsutil/boto/boto/s3/website.pyc +0 -0
  316. data/packages/gsutil/boto/boto/sdb/__init__.py +67 -0
  317. data/packages/gsutil/boto/boto/sdb/connection.py +617 -0
  318. data/packages/gsutil/boto/boto/sdb/db/__init__.py +20 -0
  319. data/packages/gsutil/boto/boto/sdb/db/blob.py +75 -0
  320. data/packages/gsutil/boto/boto/sdb/db/key.py +59 -0
  321. data/packages/gsutil/boto/boto/sdb/db/manager/__init__.py +85 -0
  322. data/packages/gsutil/boto/boto/sdb/db/manager/sdbmanager.py +732 -0
  323. data/packages/gsutil/boto/boto/sdb/db/manager/xmlmanager.py +517 -0
  324. data/packages/gsutil/boto/boto/sdb/db/model.py +294 -0
  325. data/packages/gsutil/boto/boto/sdb/db/property.py +703 -0
  326. data/packages/gsutil/boto/boto/sdb/db/query.py +85 -0
  327. data/packages/gsutil/boto/boto/sdb/db/sequence.py +226 -0
  328. data/packages/gsutil/boto/boto/sdb/db/test_db.py +231 -0
  329. data/packages/gsutil/boto/boto/sdb/domain.py +377 -0
  330. data/packages/gsutil/boto/boto/sdb/item.py +181 -0
  331. data/packages/gsutil/boto/boto/sdb/queryresultset.py +92 -0
  332. data/packages/gsutil/boto/boto/sdb/regioninfo.py +32 -0
  333. data/packages/gsutil/boto/boto/services/__init__.py +23 -0
  334. data/packages/gsutil/boto/boto/services/bs.py +179 -0
  335. data/packages/gsutil/boto/boto/services/message.py +58 -0
  336. data/packages/gsutil/boto/boto/services/result.py +136 -0
  337. data/packages/gsutil/boto/boto/services/service.py +161 -0
  338. data/packages/gsutil/boto/boto/services/servicedef.py +91 -0
  339. data/packages/gsutil/boto/boto/services/sonofmmm.cfg +43 -0
  340. data/packages/gsutil/boto/boto/services/sonofmmm.py +81 -0
  341. data/packages/gsutil/boto/boto/services/submit.py +88 -0
  342. data/packages/gsutil/boto/boto/ses/__init__.py +54 -0
  343. data/packages/gsutil/boto/boto/ses/connection.py +521 -0
  344. data/packages/gsutil/boto/boto/ses/exceptions.py +77 -0
  345. data/packages/gsutil/boto/boto/sns/__init__.py +78 -0
  346. data/packages/gsutil/boto/boto/sns/connection.py +431 -0
  347. data/packages/gsutil/boto/boto/sqs/__init__.py +56 -0
  348. data/packages/gsutil/boto/boto/sqs/attributes.py +46 -0
  349. data/packages/gsutil/boto/boto/sqs/batchresults.py +95 -0
  350. data/packages/gsutil/boto/boto/sqs/connection.py +417 -0
  351. data/packages/gsutil/boto/boto/sqs/jsonmessage.py +43 -0
  352. data/packages/gsutil/boto/boto/sqs/message.py +253 -0
  353. data/packages/gsutil/boto/boto/sqs/queue.py +478 -0
  354. data/packages/gsutil/boto/boto/sqs/regioninfo.py +32 -0
  355. data/packages/gsutil/boto/boto/storage_uri.py +835 -0
  356. data/packages/gsutil/boto/boto/storage_uri.pyc +0 -0
  357. data/packages/gsutil/boto/boto/sts/__init__.py +55 -0
  358. data/packages/gsutil/boto/boto/sts/connection.py +207 -0
  359. data/packages/gsutil/boto/boto/sts/credentials.py +215 -0
  360. data/packages/gsutil/boto/boto/swf/__init__.py +60 -0
  361. data/packages/gsutil/boto/boto/swf/exceptions.py +44 -0
  362. data/packages/gsutil/boto/boto/swf/layer1.py +1512 -0
  363. data/packages/gsutil/boto/boto/swf/layer1_decisions.py +287 -0
  364. data/packages/gsutil/boto/boto/swf/layer2.py +342 -0
  365. data/packages/gsutil/boto/boto/utils.py +927 -0
  366. data/packages/gsutil/boto/boto/utils.pyc +0 -0
  367. data/packages/gsutil/boto/boto/vpc/__init__.py +910 -0
  368. data/packages/gsutil/boto/boto/vpc/customergateway.py +54 -0
  369. data/packages/gsutil/boto/boto/vpc/dhcpoptions.py +72 -0
  370. data/packages/gsutil/boto/boto/vpc/internetgateway.py +72 -0
  371. data/packages/gsutil/boto/boto/vpc/routetable.py +109 -0
  372. data/packages/gsutil/boto/boto/vpc/subnet.py +57 -0
  373. data/packages/gsutil/boto/boto/vpc/vpc.py +54 -0
  374. data/packages/gsutil/boto/boto/vpc/vpnconnection.py +60 -0
  375. data/packages/gsutil/boto/boto/vpc/vpngateway.py +83 -0
  376. data/packages/gsutil/boto/docs/BotoCheatSheet.pdf +0 -0
  377. data/packages/gsutil/boto/docs/Makefile +89 -0
  378. data/packages/gsutil/boto/docs/make.bat +113 -0
  379. data/packages/gsutil/boto/docs/source/_templates/layout.html +3 -0
  380. data/packages/gsutil/boto/docs/source/autoscale_tut.rst +220 -0
  381. data/packages/gsutil/boto/docs/source/boto_config_tut.rst +125 -0
  382. data/packages/gsutil/boto/docs/source/boto_theme/static/boto.css_t +239 -0
  383. data/packages/gsutil/boto/docs/source/boto_theme/static/pygments.css +61 -0
  384. data/packages/gsutil/boto/docs/source/boto_theme/theme.conf +3 -0
  385. data/packages/gsutil/boto/docs/source/cloudfront_tut.rst +196 -0
  386. data/packages/gsutil/boto/docs/source/cloudsearch_tut.rst +411 -0
  387. data/packages/gsutil/boto/docs/source/cloudwatch_tut.rst +116 -0
  388. data/packages/gsutil/boto/docs/source/conf.py +32 -0
  389. data/packages/gsutil/boto/docs/source/contributing.rst +204 -0
  390. data/packages/gsutil/boto/docs/source/documentation.rst +59 -0
  391. data/packages/gsutil/boto/docs/source/dynamodb_tut.rst +339 -0
  392. data/packages/gsutil/boto/docs/source/ec2_tut.rst +86 -0
  393. data/packages/gsutil/boto/docs/source/elb_tut.rst +257 -0
  394. data/packages/gsutil/boto/docs/source/emr_tut.rst +108 -0
  395. data/packages/gsutil/boto/docs/source/index.rst +146 -0
  396. data/packages/gsutil/boto/docs/source/rds_tut.rst +108 -0
  397. data/packages/gsutil/boto/docs/source/ref/autoscale.rst +62 -0
  398. data/packages/gsutil/boto/docs/source/ref/beanstalk.rst +26 -0
  399. data/packages/gsutil/boto/docs/source/ref/boto.rst +47 -0
  400. data/packages/gsutil/boto/docs/source/ref/cloudformation.rst +34 -0
  401. data/packages/gsutil/boto/docs/source/ref/cloudfront.rst +68 -0
  402. data/packages/gsutil/boto/docs/source/ref/cloudsearch.rst +59 -0
  403. data/packages/gsutil/boto/docs/source/ref/cloudwatch.rst +27 -0
  404. data/packages/gsutil/boto/docs/source/ref/contrib.rst +32 -0
  405. data/packages/gsutil/boto/docs/source/ref/datapipeline.rst +26 -0
  406. data/packages/gsutil/boto/docs/source/ref/dynamodb.rst +61 -0
  407. data/packages/gsutil/boto/docs/source/ref/ec2.rst +140 -0
  408. data/packages/gsutil/boto/docs/source/ref/ecs.rst +19 -0
  409. data/packages/gsutil/boto/docs/source/ref/elasticache.rst +19 -0
  410. data/packages/gsutil/boto/docs/source/ref/elastictranscoder.rst +26 -0
  411. data/packages/gsutil/boto/docs/source/ref/elb.rst +47 -0
  412. data/packages/gsutil/boto/docs/source/ref/emr.rst +34 -0
  413. data/packages/gsutil/boto/docs/source/ref/file.rst +34 -0
  414. data/packages/gsutil/boto/docs/source/ref/fps.rst +19 -0
  415. data/packages/gsutil/boto/docs/source/ref/glacier.rst +63 -0
  416. data/packages/gsutil/boto/docs/source/ref/gs.rst +72 -0
  417. data/packages/gsutil/boto/docs/source/ref/iam.rst +27 -0
  418. data/packages/gsutil/boto/docs/source/ref/index.rst +40 -0
  419. data/packages/gsutil/boto/docs/source/ref/manage.rst +47 -0
  420. data/packages/gsutil/boto/docs/source/ref/mturk.rst +54 -0
  421. data/packages/gsutil/boto/docs/source/ref/mws.rst +33 -0
  422. data/packages/gsutil/boto/docs/source/ref/pyami.rst +103 -0
  423. data/packages/gsutil/boto/docs/source/ref/rds.rst +47 -0
  424. data/packages/gsutil/boto/docs/source/ref/route53.rst +34 -0
  425. data/packages/gsutil/boto/docs/source/ref/s3.rst +111 -0
  426. data/packages/gsutil/boto/docs/source/ref/sdb.rst +45 -0
  427. data/packages/gsutil/boto/docs/source/ref/sdb_db.rst +83 -0
  428. data/packages/gsutil/boto/docs/source/ref/services.rst +61 -0
  429. data/packages/gsutil/boto/docs/source/ref/ses.rst +21 -0
  430. data/packages/gsutil/boto/docs/source/ref/sns.rst +17 -0
  431. data/packages/gsutil/boto/docs/source/ref/sqs.rst +61 -0
  432. data/packages/gsutil/boto/docs/source/ref/sts.rst +25 -0
  433. data/packages/gsutil/boto/docs/source/ref/swf.rst +22 -0
  434. data/packages/gsutil/boto/docs/source/ref/vpc.rst +54 -0
  435. data/packages/gsutil/boto/docs/source/s3_tut.rst +450 -0
  436. data/packages/gsutil/boto/docs/source/security_groups.rst +82 -0
  437. data/packages/gsutil/boto/docs/source/ses_tut.rst +171 -0
  438. data/packages/gsutil/boto/docs/source/simpledb_tut.rst +188 -0
  439. data/packages/gsutil/boto/docs/source/sqs_tut.rst +246 -0
  440. data/packages/gsutil/boto/docs/source/vpc_tut.rst +100 -0
  441. data/packages/gsutil/boto/pylintrc +305 -0
  442. data/packages/gsutil/boto/requirements.txt +10 -0
  443. data/packages/gsutil/boto/setup.py +89 -0
  444. data/packages/gsutil/boto/tests/__init__.py +20 -0
  445. data/packages/gsutil/boto/tests/db/test_lists.py +96 -0
  446. data/packages/gsutil/boto/tests/db/test_password.py +128 -0
  447. data/packages/gsutil/boto/tests/db/test_query.py +152 -0
  448. data/packages/gsutil/boto/tests/db/test_sequence.py +109 -0
  449. data/packages/gsutil/boto/tests/devpay/__init__.py +0 -0
  450. data/packages/gsutil/boto/tests/devpay/test_s3.py +181 -0
  451. data/packages/gsutil/boto/tests/fps/__init__.py +0 -0
  452. data/packages/gsutil/boto/tests/fps/test.py +100 -0
  453. data/packages/gsutil/boto/tests/fps/test_verify_signature.py +12 -0
  454. data/packages/gsutil/boto/tests/integration/__init__.py +0 -0
  455. data/packages/gsutil/boto/tests/integration/beanstalk/test_wrapper.py +209 -0
  456. data/packages/gsutil/boto/tests/integration/cloudformation/__init__.py +21 -0
  457. data/packages/gsutil/boto/tests/integration/cloudformation/test_cert_verification.py +40 -0
  458. data/packages/gsutil/boto/tests/integration/cloudformation/test_connection.py +110 -0
  459. data/packages/gsutil/boto/tests/integration/cloudsearch/__init__.py +21 -0
  460. data/packages/gsutil/boto/tests/integration/cloudsearch/test_cert_verification.py +40 -0
  461. data/packages/gsutil/boto/tests/integration/datapipeline/test_layer1.py +122 -0
  462. data/packages/gsutil/boto/tests/integration/dynamodb/__init__.py +20 -0
  463. data/packages/gsutil/boto/tests/integration/dynamodb/test_cert_verification.py +40 -0
  464. data/packages/gsutil/boto/tests/integration/dynamodb/test_layer1.py +266 -0
  465. data/packages/gsutil/boto/tests/integration/dynamodb/test_layer2.py +484 -0
  466. data/packages/gsutil/boto/tests/integration/dynamodb/test_table.py +84 -0
  467. data/packages/gsutil/boto/tests/integration/ec2/__init__.py +20 -0
  468. data/packages/gsutil/boto/tests/integration/ec2/autoscale/__init__.py +21 -0
  469. data/packages/gsutil/boto/tests/integration/ec2/autoscale/test_cert_verification.py +40 -0
  470. data/packages/gsutil/boto/tests/integration/ec2/autoscale/test_connection.py +167 -0
  471. data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/__init__.py +20 -0
  472. data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/test_cert_verification.py +40 -0
  473. data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/test_connection.py +277 -0
  474. data/packages/gsutil/boto/tests/integration/ec2/elb/__init__.py +20 -0
  475. data/packages/gsutil/boto/tests/integration/ec2/elb/test_cert_verification.py +40 -0
  476. data/packages/gsutil/boto/tests/integration/ec2/elb/test_connection.py +130 -0
  477. data/packages/gsutil/boto/tests/integration/ec2/test_cert_verification.py +40 -0
  478. data/packages/gsutil/boto/tests/integration/ec2/test_connection.py +192 -0
  479. data/packages/gsutil/boto/tests/integration/ec2/vpc/__init__.py +0 -0
  480. data/packages/gsutil/boto/tests/integration/ec2/vpc/test_connection.py +95 -0
  481. data/packages/gsutil/boto/tests/integration/elasticache/__init__.py +0 -0
  482. data/packages/gsutil/boto/tests/integration/elasticache/test_layer1.py +67 -0
  483. data/packages/gsutil/boto/tests/integration/elastictranscoder/__init__.py +0 -0
  484. data/packages/gsutil/boto/tests/integration/elastictranscoder/test_cert_verification.py +35 -0
  485. data/packages/gsutil/boto/tests/integration/elastictranscoder/test_layer1.py +115 -0
  486. data/packages/gsutil/boto/tests/integration/emr/__init__.py +20 -0
  487. data/packages/gsutil/boto/tests/integration/emr/test_cert_verification.py +40 -0
  488. data/packages/gsutil/boto/tests/integration/glacier/__init__.py +22 -0
  489. data/packages/gsutil/boto/tests/integration/glacier/test_cert_verification.py +40 -0
  490. data/packages/gsutil/boto/tests/integration/glacier/test_layer1.py +44 -0
  491. data/packages/gsutil/boto/tests/integration/glacier/test_layer2.py +45 -0
  492. data/packages/gsutil/boto/tests/integration/gs/__init__.py +0 -0
  493. data/packages/gsutil/boto/tests/integration/gs/cb_test_harness.py +71 -0
  494. data/packages/gsutil/boto/tests/integration/gs/test_basic.py +379 -0
  495. data/packages/gsutil/boto/tests/integration/gs/test_generation_conditionals.py +399 -0
  496. data/packages/gsutil/boto/tests/integration/gs/test_resumable_downloads.py +358 -0
  497. data/packages/gsutil/boto/tests/integration/gs/test_resumable_uploads.py +525 -0
  498. data/packages/gsutil/boto/tests/integration/gs/test_storage_uri.py +125 -0
  499. data/packages/gsutil/boto/tests/integration/gs/test_versioning.py +268 -0
  500. data/packages/gsutil/boto/tests/integration/gs/testcase.py +116 -0
  501. data/packages/gsutil/boto/tests/integration/gs/util.py +63 -0
  502. data/packages/gsutil/boto/tests/integration/iam/__init__.py +20 -0
  503. data/packages/gsutil/boto/tests/integration/iam/test_cert_verification.py +40 -0
  504. data/packages/gsutil/boto/tests/integration/mws/__init__.py +0 -0
  505. data/packages/gsutil/boto/tests/integration/mws/test.py +100 -0
  506. data/packages/gsutil/boto/tests/integration/rds/__init__.py +21 -0
  507. data/packages/gsutil/boto/tests/integration/rds/test_cert_verification.py +40 -0
  508. data/packages/gsutil/boto/tests/integration/route53/__init__.py +20 -0
  509. data/packages/gsutil/boto/tests/integration/route53/test_cert_verification.py +40 -0
  510. data/packages/gsutil/boto/tests/integration/route53/test_zone.py +132 -0
  511. data/packages/gsutil/boto/tests/integration/s3/__init__.py +20 -0
  512. data/packages/gsutil/boto/tests/integration/s3/mock_storage_service.py +589 -0
  513. data/packages/gsutil/boto/tests/integration/s3/other_cacerts.txt +70 -0
  514. data/packages/gsutil/boto/tests/integration/s3/test_bucket.py +263 -0
  515. data/packages/gsutil/boto/tests/integration/s3/test_cert_verification.py +40 -0
  516. data/packages/gsutil/boto/tests/integration/s3/test_connection.py +245 -0
  517. data/packages/gsutil/boto/tests/integration/s3/test_cors.py +78 -0
  518. data/packages/gsutil/boto/tests/integration/s3/test_encryption.py +115 -0
  519. data/packages/gsutil/boto/tests/integration/s3/test_https_cert_validation.py +141 -0
  520. data/packages/gsutil/boto/tests/integration/s3/test_key.py +375 -0
  521. data/packages/gsutil/boto/tests/integration/s3/test_mfa.py +95 -0
  522. data/packages/gsutil/boto/tests/integration/s3/test_multidelete.py +181 -0
  523. data/packages/gsutil/boto/tests/integration/s3/test_multipart.py +139 -0
  524. data/packages/gsutil/boto/tests/integration/s3/test_pool.py +246 -0
  525. data/packages/gsutil/boto/tests/integration/s3/test_versioning.py +158 -0
  526. data/packages/gsutil/boto/tests/integration/sdb/__init__.py +20 -0
  527. data/packages/gsutil/boto/tests/integration/sdb/test_cert_verification.py +40 -0
  528. data/packages/gsutil/boto/tests/integration/sdb/test_connection.py +119 -0
  529. data/packages/gsutil/boto/tests/integration/ses/__init__.py +0 -0
  530. data/packages/gsutil/boto/tests/integration/ses/test_cert_verification.py +40 -0
  531. data/packages/gsutil/boto/tests/integration/ses/test_connection.py +38 -0
  532. data/packages/gsutil/boto/tests/integration/sns/__init__.py +20 -0
  533. data/packages/gsutil/boto/tests/integration/sns/test_cert_verification.py +40 -0
  534. data/packages/gsutil/boto/tests/integration/sqs/__init__.py +20 -0
  535. data/packages/gsutil/boto/tests/integration/sqs/test_cert_verification.py +40 -0
  536. data/packages/gsutil/boto/tests/integration/sqs/test_connection.py +217 -0
  537. data/packages/gsutil/boto/tests/integration/sts/__init__.py +20 -0
  538. data/packages/gsutil/boto/tests/integration/sts/test_cert_verification.py +40 -0
  539. data/packages/gsutil/boto/tests/integration/sts/test_session_token.py +65 -0
  540. data/packages/gsutil/boto/tests/integration/swf/__init__.py +0 -0
  541. data/packages/gsutil/boto/tests/integration/swf/test_cert_verification.py +40 -0
  542. data/packages/gsutil/boto/tests/integration/swf/test_layer1.py +246 -0
  543. data/packages/gsutil/boto/tests/integration/swf/test_layer1_workflow_execution.py +173 -0
  544. data/packages/gsutil/boto/tests/mturk/__init__.py +0 -0
  545. data/packages/gsutil/boto/tests/mturk/_init_environment.py +28 -0
  546. data/packages/gsutil/boto/tests/mturk/all_tests.py +24 -0
  547. data/packages/gsutil/boto/tests/mturk/cleanup_tests.py +47 -0
  548. data/packages/gsutil/boto/tests/mturk/common.py +45 -0
  549. data/packages/gsutil/boto/tests/mturk/create_free_text_question_regex.doctest +100 -0
  550. data/packages/gsutil/boto/tests/mturk/create_hit.doctest +92 -0
  551. data/packages/gsutil/boto/tests/mturk/create_hit_binary.doctest +94 -0
  552. data/packages/gsutil/boto/tests/mturk/create_hit_external.py +21 -0
  553. data/packages/gsutil/boto/tests/mturk/create_hit_from_hit_type.doctest +103 -0
  554. data/packages/gsutil/boto/tests/mturk/create_hit_test.py +21 -0
  555. data/packages/gsutil/boto/tests/mturk/create_hit_with_qualifications.py +16 -0
  556. data/packages/gsutil/boto/tests/mturk/hit_persistence.py +27 -0
  557. data/packages/gsutil/boto/tests/mturk/mocks.py +11 -0
  558. data/packages/gsutil/boto/tests/mturk/reviewable_hits.doctest +129 -0
  559. data/packages/gsutil/boto/tests/mturk/run-doctest.py +13 -0
  560. data/packages/gsutil/boto/tests/mturk/search_hits.doctest +16 -0
  561. data/packages/gsutil/boto/tests/mturk/selenium_support.py +61 -0
  562. data/packages/gsutil/boto/tests/mturk/support.py +7 -0
  563. data/packages/gsutil/boto/tests/mturk/test_disable_hit.py +11 -0
  564. data/packages/gsutil/boto/tests/test.py +59 -0
  565. data/packages/gsutil/boto/tests/unit/__init__.py +79 -0
  566. data/packages/gsutil/boto/tests/unit/auth/__init__.py +0 -0
  567. data/packages/gsutil/boto/tests/unit/auth/test_sigv4.py +73 -0
  568. data/packages/gsutil/boto/tests/unit/beanstalk/__init__.py +0 -0
  569. data/packages/gsutil/boto/tests/unit/beanstalk/test_layer1.py +128 -0
  570. data/packages/gsutil/boto/tests/unit/cloudformation/__init__.py +0 -0
  571. data/packages/gsutil/boto/tests/unit/cloudformation/test_connection.py +605 -0
  572. data/packages/gsutil/boto/tests/unit/cloudformation/test_stack.py +63 -0
  573. data/packages/gsutil/boto/tests/unit/cloudfront/__init__.py +0 -0
  574. data/packages/gsutil/boto/tests/unit/cloudfront/test_invalidation_list.py +113 -0
  575. data/packages/gsutil/boto/tests/unit/cloudfront/test_signed_urls.py +354 -0
  576. data/packages/gsutil/boto/tests/unit/cloudsearch/__init__.py +1 -0
  577. data/packages/gsutil/boto/tests/unit/cloudsearch/test_connection.py +241 -0
  578. data/packages/gsutil/boto/tests/unit/cloudsearch/test_document.py +324 -0
  579. data/packages/gsutil/boto/tests/unit/cloudsearch/test_search.py +325 -0
  580. data/packages/gsutil/boto/tests/unit/dynamodb/__init__.py +0 -0
  581. data/packages/gsutil/boto/tests/unit/dynamodb/test_batch.py +103 -0
  582. data/packages/gsutil/boto/tests/unit/dynamodb/test_layer2.py +119 -0
  583. data/packages/gsutil/boto/tests/unit/dynamodb/test_types.py +82 -0
  584. data/packages/gsutil/boto/tests/unit/ec2/__init__.py +0 -0
  585. data/packages/gsutil/boto/tests/unit/ec2/autoscale/__init__.py +0 -0
  586. data/packages/gsutil/boto/tests/unit/ec2/autoscale/test_group.py +162 -0
  587. data/packages/gsutil/boto/tests/unit/ec2/test_address.py +39 -0
  588. data/packages/gsutil/boto/tests/unit/ec2/test_blockdevicemapping.py +79 -0
  589. data/packages/gsutil/boto/tests/unit/ec2/test_connection.py +480 -0
  590. data/packages/gsutil/boto/tests/unit/ec2/test_instance.py +243 -0
  591. data/packages/gsutil/boto/tests/unit/ec2/test_networkinterface.py +140 -0
  592. data/packages/gsutil/boto/tests/unit/ec2/test_volume.py +248 -0
  593. data/packages/gsutil/boto/tests/unit/emr/test_emr_responses.py +373 -0
  594. data/packages/gsutil/boto/tests/unit/glacier/__init__.py +0 -0
  595. data/packages/gsutil/boto/tests/unit/glacier/test_concurrent.py +120 -0
  596. data/packages/gsutil/boto/tests/unit/glacier/test_job.py +60 -0
  597. data/packages/gsutil/boto/tests/unit/glacier/test_layer1.py +98 -0
  598. data/packages/gsutil/boto/tests/unit/glacier/test_layer2.py +266 -0
  599. data/packages/gsutil/boto/tests/unit/glacier/test_utils.py +116 -0
  600. data/packages/gsutil/boto/tests/unit/glacier/test_vault.py +100 -0
  601. data/packages/gsutil/boto/tests/unit/glacier/test_writer.py +185 -0
  602. data/packages/gsutil/boto/tests/unit/provider/__init__.py +0 -0
  603. data/packages/gsutil/boto/tests/unit/provider/test_provider.py +176 -0
  604. data/packages/gsutil/boto/tests/unit/rds/__init__.py +0 -0
  605. data/packages/gsutil/boto/tests/unit/rds/test_connection.py +131 -0
  606. data/packages/gsutil/boto/tests/unit/s3/__init__.py +0 -0
  607. data/packages/gsutil/boto/tests/unit/s3/test_cors_configuration.py +77 -0
  608. data/packages/gsutil/boto/tests/unit/s3/test_key.py +75 -0
  609. data/packages/gsutil/boto/tests/unit/s3/test_keyfile.py +101 -0
  610. data/packages/gsutil/boto/tests/unit/s3/test_lifecycle.py +97 -0
  611. data/packages/gsutil/boto/tests/unit/s3/test_tagging.py +47 -0
  612. data/packages/gsutil/boto/tests/unit/s3/test_uri.py +257 -0
  613. data/packages/gsutil/boto/tests/unit/s3/test_website.py +188 -0
  614. data/packages/gsutil/boto/tests/unit/sns/__init__.py +0 -0
  615. data/packages/gsutil/boto/tests/unit/sns/test_connection.py +99 -0
  616. data/packages/gsutil/boto/tests/unit/sqs/__init__.py +0 -0
  617. data/packages/gsutil/boto/tests/unit/sqs/test_connection.py +98 -0
  618. data/packages/gsutil/boto/tests/unit/sqs/test_queue.py +40 -0
  619. data/packages/gsutil/boto/tests/unit/sts/test_connection.py +74 -0
  620. data/packages/gsutil/boto/tests/unit/test_connection.py +60 -0
  621. data/packages/gsutil/boto/tests/unit/utils/test_utils.py +109 -0
  622. data/packages/gsutil/boto/tox.ini +8 -0
  623. data/packages/gsutil/gslib/README +5 -0
  624. data/packages/gsutil/gslib/__init__.py +22 -0
  625. data/packages/gsutil/gslib/__init__.pyc +0 -0
  626. data/packages/gsutil/gslib/addlhelp/__init__.py +15 -0
  627. data/packages/gsutil/gslib/addlhelp/acls.py +234 -0
  628. data/packages/gsutil/gslib/addlhelp/anon.py +57 -0
  629. data/packages/gsutil/gslib/addlhelp/command_opts.py +116 -0
  630. data/packages/gsutil/gslib/addlhelp/dev.py +139 -0
  631. data/packages/gsutil/gslib/addlhelp/metadata.py +186 -0
  632. data/packages/gsutil/gslib/addlhelp/naming.py +173 -0
  633. data/packages/gsutil/gslib/addlhelp/prod.py +160 -0
  634. data/packages/gsutil/gslib/addlhelp/projects.py +130 -0
  635. data/packages/gsutil/gslib/addlhelp/subdirs.py +110 -0
  636. data/packages/gsutil/gslib/addlhelp/support.py +86 -0
  637. data/packages/gsutil/gslib/addlhelp/versioning.py +242 -0
  638. data/packages/gsutil/gslib/addlhelp/wildcards.py +170 -0
  639. data/packages/gsutil/gslib/bucket_listing_ref.py +175 -0
  640. data/packages/gsutil/gslib/bucket_listing_ref.pyc +0 -0
  641. data/packages/gsutil/gslib/command.py +722 -0
  642. data/packages/gsutil/gslib/command.pyc +0 -0
  643. data/packages/gsutil/gslib/command_runner.py +101 -0
  644. data/packages/gsutil/gslib/command_runner.pyc +0 -0
  645. data/packages/gsutil/gslib/commands/__init__.py +15 -0
  646. data/packages/gsutil/gslib/commands/__init__.pyc +0 -0
  647. data/packages/gsutil/gslib/commands/cat.py +131 -0
  648. data/packages/gsutil/gslib/commands/cat.pyc +0 -0
  649. data/packages/gsutil/gslib/commands/chacl.py +532 -0
  650. data/packages/gsutil/gslib/commands/chacl.pyc +0 -0
  651. data/packages/gsutil/gslib/commands/config.py +694 -0
  652. data/packages/gsutil/gslib/commands/config.pyc +0 -0
  653. data/packages/gsutil/gslib/commands/cp.py +1818 -0
  654. data/packages/gsutil/gslib/commands/cp.pyc +0 -0
  655. data/packages/gsutil/gslib/commands/disablelogging.py +101 -0
  656. data/packages/gsutil/gslib/commands/disablelogging.pyc +0 -0
  657. data/packages/gsutil/gslib/commands/enablelogging.py +149 -0
  658. data/packages/gsutil/gslib/commands/enablelogging.pyc +0 -0
  659. data/packages/gsutil/gslib/commands/getacl.py +82 -0
  660. data/packages/gsutil/gslib/commands/getacl.pyc +0 -0
  661. data/packages/gsutil/gslib/commands/getcors.py +121 -0
  662. data/packages/gsutil/gslib/commands/getcors.pyc +0 -0
  663. data/packages/gsutil/gslib/commands/getdefacl.py +86 -0
  664. data/packages/gsutil/gslib/commands/getdefacl.pyc +0 -0
  665. data/packages/gsutil/gslib/commands/getlogging.py +137 -0
  666. data/packages/gsutil/gslib/commands/getlogging.pyc +0 -0
  667. data/packages/gsutil/gslib/commands/getversioning.py +116 -0
  668. data/packages/gsutil/gslib/commands/getversioning.pyc +0 -0
  669. data/packages/gsutil/gslib/commands/getwebcfg.py +122 -0
  670. data/packages/gsutil/gslib/commands/getwebcfg.pyc +0 -0
  671. data/packages/gsutil/gslib/commands/help.py +218 -0
  672. data/packages/gsutil/gslib/commands/help.pyc +0 -0
  673. data/packages/gsutil/gslib/commands/ls.py +578 -0
  674. data/packages/gsutil/gslib/commands/ls.pyc +0 -0
  675. data/packages/gsutil/gslib/commands/mb.py +172 -0
  676. data/packages/gsutil/gslib/commands/mb.pyc +0 -0
  677. data/packages/gsutil/gslib/commands/mv.py +159 -0
  678. data/packages/gsutil/gslib/commands/mv.pyc +0 -0
  679. data/packages/gsutil/gslib/commands/perfdiag.py +903 -0
  680. data/packages/gsutil/gslib/commands/perfdiag.pyc +0 -0
  681. data/packages/gsutil/gslib/commands/rb.py +113 -0
  682. data/packages/gsutil/gslib/commands/rb.pyc +0 -0
  683. data/packages/gsutil/gslib/commands/rm.py +239 -0
  684. data/packages/gsutil/gslib/commands/rm.pyc +0 -0
  685. data/packages/gsutil/gslib/commands/setacl.py +138 -0
  686. data/packages/gsutil/gslib/commands/setacl.pyc +0 -0
  687. data/packages/gsutil/gslib/commands/setcors.py +145 -0
  688. data/packages/gsutil/gslib/commands/setcors.pyc +0 -0
  689. data/packages/gsutil/gslib/commands/setdefacl.py +105 -0
  690. data/packages/gsutil/gslib/commands/setdefacl.pyc +0 -0
  691. data/packages/gsutil/gslib/commands/setmeta.py +428 -0
  692. data/packages/gsutil/gslib/commands/setmeta.pyc +0 -0
  693. data/packages/gsutil/gslib/commands/setversioning.py +114 -0
  694. data/packages/gsutil/gslib/commands/setversioning.pyc +0 -0
  695. data/packages/gsutil/gslib/commands/setwebcfg.py +190 -0
  696. data/packages/gsutil/gslib/commands/setwebcfg.pyc +0 -0
  697. data/packages/gsutil/gslib/commands/test.py +228 -0
  698. data/packages/gsutil/gslib/commands/test.pyc +0 -0
  699. data/packages/gsutil/gslib/commands/update.py +305 -0
  700. data/packages/gsutil/gslib/commands/update.pyc +0 -0
  701. data/packages/gsutil/gslib/commands/version.py +150 -0
  702. data/packages/gsutil/gslib/commands/version.pyc +0 -0
  703. data/packages/gsutil/gslib/exception.py +76 -0
  704. data/packages/gsutil/gslib/exception.pyc +0 -0
  705. data/packages/gsutil/gslib/help_provider.py +81 -0
  706. data/packages/gsutil/gslib/help_provider.pyc +0 -0
  707. data/packages/gsutil/gslib/name_expansion.py +550 -0
  708. data/packages/gsutil/gslib/name_expansion.pyc +0 -0
  709. data/packages/gsutil/gslib/no_op_auth_plugin.py +30 -0
  710. data/packages/gsutil/gslib/plurality_checkable_iterator.py +56 -0
  711. data/packages/gsutil/gslib/plurality_checkable_iterator.pyc +0 -0
  712. data/packages/gsutil/gslib/project_id.py +67 -0
  713. data/packages/gsutil/gslib/project_id.pyc +0 -0
  714. data/packages/gsutil/gslib/storage_uri_builder.py +56 -0
  715. data/packages/gsutil/gslib/storage_uri_builder.pyc +0 -0
  716. data/packages/gsutil/gslib/tests/__init__.py +15 -0
  717. data/packages/gsutil/gslib/tests/__init__.pyc +0 -0
  718. data/packages/gsutil/gslib/tests/test_chacl.py +236 -0
  719. data/packages/gsutil/gslib/tests/test_cp.py +267 -0
  720. data/packages/gsutil/gslib/tests/test_data/test.gif +0 -0
  721. data/packages/gsutil/gslib/tests/test_data/test.mp3 +0 -0
  722. data/packages/gsutil/gslib/tests/test_ls.py +66 -0
  723. data/packages/gsutil/gslib/tests/test_mv.py +69 -0
  724. data/packages/gsutil/gslib/tests/test_naming.py +989 -0
  725. data/packages/gsutil/gslib/tests/test_perfdiag.py +41 -0
  726. data/packages/gsutil/gslib/tests/test_plurality_checkable_iterator.py +67 -0
  727. data/packages/gsutil/gslib/tests/test_rm.py +143 -0
  728. data/packages/gsutil/gslib/tests/test_setacl.py +152 -0
  729. data/packages/gsutil/gslib/tests/test_setcors.py +168 -0
  730. data/packages/gsutil/gslib/tests/test_setmeta.py +91 -0
  731. data/packages/gsutil/gslib/tests/test_setversioning.py +44 -0
  732. data/packages/gsutil/gslib/tests/test_setwebcfg.py +63 -0
  733. data/packages/gsutil/gslib/tests/test_thread_pool.py +92 -0
  734. data/packages/gsutil/gslib/tests/test_wildcard_iterator.py +364 -0
  735. data/packages/gsutil/gslib/tests/testcase/__init__.py +18 -0
  736. data/packages/gsutil/gslib/tests/testcase/base.py +89 -0
  737. data/packages/gsutil/gslib/tests/testcase/integration_testcase.py +197 -0
  738. data/packages/gsutil/gslib/tests/testcase/unit_testcase.py +230 -0
  739. data/packages/gsutil/gslib/tests/util.py +125 -0
  740. data/packages/gsutil/gslib/tests/util.pyc +0 -0
  741. data/packages/gsutil/gslib/thread_pool.py +79 -0
  742. data/packages/gsutil/gslib/thread_pool.pyc +0 -0
  743. data/packages/gsutil/gslib/util.py +151 -0
  744. data/packages/gsutil/gslib/util.pyc +0 -0
  745. data/packages/gsutil/gslib/wildcard_iterator.py +492 -0
  746. data/packages/gsutil/gslib/wildcard_iterator.pyc +0 -0
  747. data/packages/gsutil/gsutil +377 -0
  748. data/packages/gsutil/gsutil.spec.in +75 -0
  749. data/packages/gsutil/oauth2_plugin/__init__.py +22 -0
  750. data/packages/gsutil/oauth2_plugin/__init__.pyc +0 -0
  751. data/packages/gsutil/oauth2_plugin/oauth2_client.py +642 -0
  752. data/packages/gsutil/oauth2_plugin/oauth2_client.pyc +0 -0
  753. data/packages/gsutil/oauth2_plugin/oauth2_client_test.py +374 -0
  754. data/packages/gsutil/oauth2_plugin/oauth2_helper.py +110 -0
  755. data/packages/gsutil/oauth2_plugin/oauth2_helper.pyc +0 -0
  756. data/packages/gsutil/oauth2_plugin/oauth2_plugin.py +24 -0
  757. data/packages/gsutil/oauth2_plugin/oauth2_plugin.pyc +0 -0
  758. data/packages/gsutil/pkg_gen.sh +54 -0
  759. data/packages/gsutil/pkg_util.py +60 -0
  760. data/packages/gsutil/setup.py +141 -0
  761. data/packages/gsutil/third_party/__init__.py +0 -0
  762. data/packages/gsutil/third_party/__init__.pyc +0 -0
  763. data/packages/gsutil/third_party/fancy_urllib/README +21 -0
  764. data/packages/gsutil/third_party/fancy_urllib/__init__.py +398 -0
  765. data/packages/gsutil/third_party/fancy_urllib/__init__.pyc +0 -0
  766. data/tasks/rubygem.rake +3 -1
  767. metadata +770 -7
  768. metadata.gz.sig +0 -0
@@ -0,0 +1,295 @@
1
+ GOOGLE APP ENGINE SDK
2
+ **************************************************************************
3
+ Copyright 2008 Google Inc.
4
+ All rights reserved.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+
18
+
19
+ fancy_urllib
20
+ **************************************************************************
21
+
22
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software
23
+ # Foundation; All Rights Reserved
24
+
25
+
26
+ A. HISTORY OF THE SOFTWARE
27
+ ==========================
28
+
29
+ Python was created in the early 1990s by Guido van Rossum at Stichting
30
+ Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
31
+ as a successor of a language called ABC. Guido remains Python's
32
+ principal author, although it includes many contributions from others.
33
+
34
+ In 1995, Guido continued his work on Python at the Corporation for
35
+ National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
36
+ in Reston, Virginia where he released several versions of the
37
+ software.
38
+
39
+ In May 2000, Guido and the Python core development team moved to
40
+ BeOpen.com to form the BeOpen PythonLabs team. In October of the same
41
+ year, the PythonLabs team moved to Digital Creations (now Zope
42
+ Corporation, see http://www.zope.com). In 2001, the Python Software
43
+ Foundation (PSF, see http://www.python.org/psf/) was formed, a
44
+ non-profit organization created specifically to own Python-related
45
+ Intellectual Property. Zope Corporation is a sponsoring member of
46
+ the PSF.
47
+
48
+ All Python releases are Open Source (see http://www.opensource.org for
49
+ the Open Source Definition). Historically, most, but not all, Python
50
+ releases have also been GPL-compatible; the table below summarizes
51
+ the various releases.
52
+
53
+ Release Derived Year Owner GPL-
54
+ from compatible? (1)
55
+
56
+ 0.9.0 thru 1.2 1991-1995 CWI yes
57
+ 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
58
+ 1.6 1.5.2 2000 CNRI no
59
+ 2.0 1.6 2000 BeOpen.com no
60
+ 1.6.1 1.6 2001 CNRI yes (2)
61
+ 2.1 2.0+1.6.1 2001 PSF no
62
+ 2.0.1 2.0+1.6.1 2001 PSF yes
63
+ 2.1.1 2.1+2.0.1 2001 PSF yes
64
+ 2.2 2.1.1 2001 PSF yes
65
+ 2.1.2 2.1.1 2002 PSF yes
66
+ 2.1.3 2.1.2 2002 PSF yes
67
+ 2.2.1 2.2 2002 PSF yes
68
+ 2.2.2 2.2.1 2002 PSF yes
69
+ 2.2.3 2.2.2 2003 PSF yes
70
+ 2.3 2.2.2 2002-2003 PSF yes
71
+ 2.3.1 2.3 2002-2003 PSF yes
72
+ 2.3.2 2.3.1 2002-2003 PSF yes
73
+ 2.3.3 2.3.2 2002-2003 PSF yes
74
+ 2.3.4 2.3.3 2004 PSF yes
75
+ 2.3.5 2.3.4 2005 PSF yes
76
+ 2.4 2.3 2004 PSF yes
77
+ 2.4.1 2.4 2005 PSF yes
78
+ 2.4.2 2.4.1 2005 PSF yes
79
+ 2.4.3 2.4.2 2006 PSF yes
80
+ 2.5 2.4 2006 PSF yes
81
+ 2.5.1 2.5 2007 PSF yes
82
+
83
+ Footnotes:
84
+
85
+ (1) GPL-compatible doesn't mean that we're distributing Python under
86
+ the GPL. All Python licenses, unlike the GPL, let you distribute
87
+ a modified version without making your changes open source. The
88
+ GPL-compatible licenses make it possible to combine Python with
89
+ other software that is released under the GPL; the others don't.
90
+
91
+ (2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
92
+ because its license has a choice of law clause. According to
93
+ CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
94
+ is "not incompatible" with the GPL.
95
+
96
+ Thanks to the many outside volunteers who have worked under Guido's
97
+ direction to make these releases possible.
98
+
99
+
100
+ B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
101
+ ===============================================================
102
+
103
+ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
104
+ --------------------------------------------
105
+
106
+ 1. This LICENSE AGREEMENT is between the Python Software Foundation
107
+ ("PSF"), and the Individual or Organization ("Licensee") accessing and
108
+ otherwise using this software ("Python") in source or binary form and
109
+ its associated documentation.
110
+
111
+ 2. Subject to the terms and conditions of this License Agreement, PSF
112
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide
113
+ license to reproduce, analyze, test, perform and/or display publicly,
114
+ prepare derivative works, distribute, and otherwise use Python
115
+ alone or in any derivative version, provided, however, that PSF's
116
+ License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
117
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
118
+ All Rights Reserved" are retained in Python alone or in any derivative
119
+ version prepared by Licensee.
120
+
121
+ 3. In the event Licensee prepares a derivative work that is based on
122
+ or incorporates Python or any part thereof, and wants to make
123
+ the derivative work available to others as provided herein, then
124
+ Licensee hereby agrees to include in any such work a brief summary of
125
+ the changes made to Python.
126
+
127
+ 4. PSF is making Python available to Licensee on an "AS IS"
128
+ basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
129
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
130
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
131
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
132
+ INFRINGE ANY THIRD PARTY RIGHTS.
133
+
134
+ 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
135
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
136
+ A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
137
+ OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
138
+
139
+ 6. This License Agreement will automatically terminate upon a material
140
+ breach of its terms and conditions.
141
+
142
+ 7. Nothing in this License Agreement shall be deemed to create any
143
+ relationship of agency, partnership, or joint venture between PSF and
144
+ Licensee. This License Agreement does not grant permission to use PSF
145
+ trademarks or trade name in a trademark sense to endorse or promote
146
+ products or services of Licensee, or any third party.
147
+
148
+ 8. By copying, installing or otherwise using Python, Licensee
149
+ agrees to be bound by the terms and conditions of this License
150
+ Agreement.
151
+
152
+
153
+ BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
154
+ -------------------------------------------
155
+
156
+ BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
157
+
158
+ 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
159
+ office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
160
+ Individual or Organization ("Licensee") accessing and otherwise using
161
+ this software in source or binary form and its associated
162
+ documentation ("the Software").
163
+
164
+ 2. Subject to the terms and conditions of this BeOpen Python License
165
+ Agreement, BeOpen hereby grants Licensee a non-exclusive,
166
+ royalty-free, world-wide license to reproduce, analyze, test, perform
167
+ and/or display publicly, prepare derivative works, distribute, and
168
+ otherwise use the Software alone or in any derivative version,
169
+ provided, however, that the BeOpen Python License is retained in the
170
+ Software, alone or in any derivative version prepared by Licensee.
171
+
172
+ 3. BeOpen is making the Software available to Licensee on an "AS IS"
173
+ basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
174
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
175
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
176
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
177
+ INFRINGE ANY THIRD PARTY RIGHTS.
178
+
179
+ 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
180
+ SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
181
+ AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
182
+ DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
183
+
184
+ 5. This License Agreement will automatically terminate upon a material
185
+ breach of its terms and conditions.
186
+
187
+ 6. This License Agreement shall be governed by and interpreted in all
188
+ respects by the law of the State of California, excluding conflict of
189
+ law provisions. Nothing in this License Agreement shall be deemed to
190
+ create any relationship of agency, partnership, or joint venture
191
+ between BeOpen and Licensee. This License Agreement does not grant
192
+ permission to use BeOpen trademarks or trade names in a trademark
193
+ sense to endorse or promote products or services of Licensee, or any
194
+ third party. As an exception, the "BeOpen Python" logos available at
195
+ http://www.pythonlabs.com/logos.html may be used according to the
196
+ permissions granted on that web page.
197
+
198
+ 7. By copying, installing or otherwise using the software, Licensee
199
+ agrees to be bound by the terms and conditions of this License
200
+ Agreement.
201
+
202
+
203
+ CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
204
+ ---------------------------------------
205
+
206
+ 1. This LICENSE AGREEMENT is between the Corporation for National
207
+ Research Initiatives, having an office at 1895 Preston White Drive,
208
+ Reston, VA 20191 ("CNRI"), and the Individual or Organization
209
+ ("Licensee") accessing and otherwise using Python 1.6.1 software in
210
+ source or binary form and its associated documentation.
211
+
212
+ 2. Subject to the terms and conditions of this License Agreement, CNRI
213
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide
214
+ license to reproduce, analyze, test, perform and/or display publicly,
215
+ prepare derivative works, distribute, and otherwise use Python 1.6.1
216
+ alone or in any derivative version, provided, however, that CNRI's
217
+ License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
218
+ 1995-2001 Corporation for National Research Initiatives; All Rights
219
+ Reserved" are retained in Python 1.6.1 alone or in any derivative
220
+ version prepared by Licensee. Alternately, in lieu of CNRI's License
221
+ Agreement, Licensee may substitute the following text (omitting the
222
+ quotes): "Python 1.6.1 is made available subject to the terms and
223
+ conditions in CNRI's License Agreement. This Agreement together with
224
+ Python 1.6.1 may be located on the Internet using the following
225
+ unique, persistent identifier (known as a handle): 1895.22/1013. This
226
+ Agreement may also be obtained from a proxy server on the Internet
227
+ using the following URL: http://hdl.handle.net/1895.22/1013".
228
+
229
+ 3. In the event Licensee prepares a derivative work that is based on
230
+ or incorporates Python 1.6.1 or any part thereof, and wants to make
231
+ the derivative work available to others as provided herein, then
232
+ Licensee hereby agrees to include in any such work a brief summary of
233
+ the changes made to Python 1.6.1.
234
+
235
+ 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
236
+ basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
237
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
238
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
239
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
240
+ INFRINGE ANY THIRD PARTY RIGHTS.
241
+
242
+ 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
243
+ 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
244
+ A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
245
+ OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
246
+
247
+ 6. This License Agreement will automatically terminate upon a material
248
+ breach of its terms and conditions.
249
+
250
+ 7. This License Agreement shall be governed by the federal
251
+ intellectual property law of the United States, including without
252
+ limitation the federal copyright law, and, to the extent such
253
+ U.S. federal law does not apply, by the law of the Commonwealth of
254
+ Virginia, excluding Virginia's conflict of law provisions.
255
+ Notwithstanding the foregoing, with regard to derivative works based
256
+ on Python 1.6.1 that incorporate non-separable material that was
257
+ previously distributed under the GNU General Public License (GPL), the
258
+ law of the Commonwealth of Virginia shall govern this License
259
+ Agreement only as to issues arising under or with respect to
260
+ Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
261
+ License Agreement shall be deemed to create any relationship of
262
+ agency, partnership, or joint venture between CNRI and Licensee. This
263
+ License Agreement does not grant permission to use CNRI trademarks or
264
+ trade name in a trademark sense to endorse or promote products or
265
+ services of Licensee, or any third party.
266
+
267
+ 8. By clicking on the "ACCEPT" button where indicated, or by copying,
268
+ installing or otherwise using Python 1.6.1, Licensee agrees to be
269
+ bound by the terms and conditions of this License Agreement.
270
+
271
+ ACCEPT
272
+
273
+
274
+ CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
275
+ --------------------------------------------------
276
+
277
+ Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
278
+ The Netherlands. All rights reserved.
279
+
280
+ Permission to use, copy, modify, and distribute this software and its
281
+ documentation for any purpose and without fee is hereby granted,
282
+ provided that the above copyright notice appear in all copies and that
283
+ both that copyright notice and this permission notice appear in
284
+ supporting documentation, and that the name of Stichting Mathematisch
285
+ Centrum or CWI not be used in advertising or publicity pertaining to
286
+ distribution of the software without specific, written prior
287
+ permission.
288
+
289
+ STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
290
+ THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
291
+ FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
292
+ FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
293
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
294
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
295
+ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,5 @@
1
+ include gsutil COPYING VERSION LICENSE.third_party README setup.py pkg_util.py
2
+ recursive-include gslib *
3
+ recursive-include oauth2_plugin *
4
+ recursive-include third_party *
5
+ recursive-include boto *
@@ -0,0 +1,38 @@
1
+ This directory contains the Python command line tool gsutil, which Google
2
+ has released as open source, to demonstrate the Google Storage API and to
3
+ provide a tool for manipulating data in the system.
4
+
5
+ Prerequisites:
6
+
7
+ Gsutil requires Python 2.6 or later.
8
+
9
+ To install gsutil take the following steps:
10
+
11
+ 1. Pick a place where you want to install the software. You can
12
+ install the code wherever you prefer; for brevity the instructions below
13
+ assume you want to install in $HOME/gsutil.
14
+
15
+ 2. To install gsutil on Linux/Unix or MacOS, open a shell window, change
16
+ directories to where you downloaded the gsutil.tar.gz file, and do this:
17
+ % tar xfz gsutil.tar.gz -C $HOME
18
+
19
+ Then add the following line to your $HOME/.bashrc shell initialization
20
+ file:
21
+ export PATH=${PATH}:$HOME/gsutil
22
+
23
+ The next time you start a shell you should be able to run gsutil from
24
+ the command line.
25
+
26
+ 3. To install gsutil on Windows, install cygwin (http://www.cygwin.com/),
27
+ with at least version 2.6.5 of Python. Once you have that, start a shell
28
+ and follow the Linux instructions above for unpacking and installing gsutil.
29
+
30
+ 4. The first time you try to run gsutil, it will detect that you have no
31
+ configuration file containing your credentials, interactively prompt you,
32
+ and create the file.
33
+
34
+ After this you can use the tool. Running gsutil with with no arguments
35
+ will print a help summary.
36
+
37
+ For more information on installing and using gsutil, see
38
+ <http://code.google.com/apis/storage/docs/gsutil.html>.
@@ -0,0 +1,49 @@
1
+ Package Generation Notes for gsutil
2
+
3
+ Gsutil can be distributed in one of three ways:
4
+
5
+ 1. legacy mode - User unpacks archive file into a private directory tree
6
+ and maintains his/her own private copy of gsutil, boto, etc. This is the
7
+ only supported installation mode for Windows users.
8
+
9
+ 2. enterprise mode - User unpacks the gsutil archive file and runs
10
+ 'python setup.py install' (as root), which installs everything into
11
+ a shared directory tree (/usr/share/gsutil) with a symlink from
12
+ /usr/bin/gsutil to /usr/share/gsutil/gsutil to provide easy access to
13
+ the shared gsutil command. In enterprise mode, the software gets installed
14
+ in one shared location, which makes it easier to install, update and
15
+ manage gsutil for a community of users.
16
+
17
+ NOTE: Enterprise mode (installing gsutil via setup.py) is no longer
18
+ officially supported - unpacking the zip file into a directory is the
19
+ preferred method for installing gsutil for both shared and private
20
+ configurations.
21
+
22
+ 3. rpm mode - User installs the gsutil rpm package file on a Red Hat
23
+ Linux system using the rpm command. The resulting installation image
24
+ looks precisely the same as the results of installing with enterprise
25
+ mode, i.e. a shared directory tree (/usr/share/gsutil) with a symlink
26
+ from /usr/bin/gsutil. rpm mode is intended for enterprises that want
27
+ a stable release that does not necessarily contain the latest changes.
28
+
29
+ All three modes derive their inventory from a common text file called
30
+ MANIFEST.in. If you want to add one or more new files or directories,
31
+ you only need to edit that one file and all three installation modes
32
+ will automatically inherit the change(s).
33
+
34
+ GENERATING PACKAGE FILES
35
+
36
+ First update the VERSION file and the gsutil.spec files to reflect the
37
+ new version number.
38
+
39
+ Legacy mode and enterprise mode are both embodied in the same gsutil
40
+ archive file, the only difference being that the latter entails running
41
+ one additional command after unpacking the gsutil archive file. So the
42
+ same archive file we've always distributed for gsutil will be used for
43
+ both legacy and enterprise installation modes.
44
+
45
+ For rpm mode, there's a new tool call pkg_gen.sh, which when run with no
46
+ arguments creates an rpm file at this location:
47
+
48
+ $HOME/rpmbuild/RPMS/noarch/gsutil-2.0-1.noarch.rpm
49
+
@@ -0,0 +1,780 @@
1
+ Release 3.23 (release-date: 2013-02-16)
2
+
3
+
4
+ Bug Fixes
5
+ ---------
6
+
7
+ - Make version-specific URI parsing more robust. This fixes a bug where
8
+ listing buckets in certain cases would result in the error
9
+ 'BucketStorageUri' object has no attribute 'version_specific_uri'
10
+
11
+
12
+ ================================================================================
13
+
14
+
15
+ Release 3.22 (release-date: 2013-02-15)
16
+
17
+
18
+ New Features
19
+ ------------
20
+
21
+ - Implemented new chacl command, which makes it easy to add and remove bucket
22
+ and object ACL grants without having to edit XML (like the older setacl
23
+ command).
24
+
25
+ - Implemented new "daisy-chain" copying mode, which allows cross-provider
26
+ copies to run without buffering to local disk, and to use resumable uploads.
27
+ This copying mode also allows copying between locations and between storage
28
+ classes, using the new gsutil cp -D option. (Daisy-chain copying is the
29
+ default when copying between providers, but must be explicitly requested for
30
+ the other cases to keep costs and performance expectations clear.)
31
+
32
+ - Implemented new perfdiag command to run a diagnostic test against
33
+ a bucket, collect system information, and report results. Useful
34
+ when working with Google Cloud Storage team to resolve questions
35
+ about performance.
36
+
37
+ - Added SIGQUIT (^\) handler, to allow breakpointing a running gsutil.
38
+
39
+
40
+ Bug Fixes
41
+ ---------
42
+
43
+ - Fixed bug where gsutil setwebcfg signature didn't match with
44
+ HMAC authentication.
45
+
46
+ - Fixed ASCII codec decode error when constructing tracker filename
47
+ from non-7bit ASCII intput filename.
48
+
49
+ - Changed boto auth plugin framework to allow multiple plugins
50
+ supporting requested capability, which fixes gsutil exception
51
+ that used to happen where a GCE user had a service account
52
+ configured and then ran gsutil config.
53
+
54
+ - Changed Command.Apply method to be resilient to name expansion
55
+ exceptions. Before this change, if an exception was raised
56
+ during iteration of NameExpansionResult, the parent process
57
+ would immediately stop execution, causing the
58
+ _EOF_NAME_EXPANSION_RESULT to never be sent to child processes.
59
+ This resulted in the process hanging forever.
60
+
61
+ - Fixed various bugs for gsutil running on Windows:
62
+ - Fixed various places from a hard-coded '/' to os.sep.
63
+ - Fixed a bug in the cp command where it was using the destination
64
+ URI's .delim property instead of the source URI.
65
+ - Fixed a bug in the cp command's _SrcDstSame function by
66
+ simplifying it to use os.path.normpath.
67
+ - Fixed windows bug in tests/util.py _NormalizeURI function.
68
+ - Fixed ZeroDivisionError sometimes happening during unit tests
69
+ on Windows.
70
+
71
+ - Fixed gsutil rm bug that caused exit status 1 when encountered
72
+ non-existent URI.
73
+
74
+ - Fixed support for gsutil cp file -.
75
+
76
+ - Added preconditions and retry logic to setmeta command, to
77
+ enforce concurrency control.
78
+
79
+ - Fixed bug in copying subdirs to subdirs.
80
+
81
+ - Fixed cases where boto debug_level caused too much or too little
82
+ logging:
83
+ - resumable and one-shot uploads weren't showing response headers
84
+ when connection.debug > 0.
85
+ - payload was showing up in debug output when connection.debug
86
+ < 4 for streaming uploads.
87
+
88
+ - Removed XML parsing from setacl. The previous implementation
89
+ relied on loose XML handling, which could truncate what it sends
90
+ to the service, allowing invalid XML to be specified by the
91
+ user. Instead now the ACL XML is passed verbatim and we rely
92
+ on server-side schema enforcement.
93
+
94
+ - Added user-agent header to resumable uploads.
95
+
96
+ - Fixed reporting bits/s when it was really bytes/s.
97
+
98
+ - Changed so we now pass headers with API version & project ID
99
+ to create_bucket().
100
+
101
+ - Made "gsutil rm -r gs://bucket/folder" remove xyz_$folder$ object
102
+ (which is created by various GUI tools).
103
+
104
+ - Fixed bug where gsutil binary was shipped with protection 750
105
+ instead of 755.
106
+
107
+
108
+ Other Changes
109
+ ---------
110
+
111
+ - Reworked versioned object handling:
112
+ - Removed need for commands to specify -v option to parse
113
+ versions. Versioned URIs are now uniformly handled by all
114
+ commands.
115
+ - Refactored StorageUri parsing that had been split across
116
+ storage_uri and conveience; made versioned URIs render with
117
+ version string so StorageUri is round-trippable (boto change).
118
+ - Implemented gsutil cp -v option for printing the version-specific
119
+ URI that was just created.
120
+ - Added error detail for attempt to delete non-empty versioned
121
+ bucket. Also added versioning state to ls -L -b gs://bucket
122
+ output.
123
+ - Changed URI parsing to use pre-compiled regex's.
124
+ - Other bug fixes.
125
+
126
+ - Rewrote/deepened/improved various parts of built-in help:
127
+ - Updated 'gsutil help dev'.
128
+ - Fixed help command handling when terminal does not have the
129
+ number of rows set.
130
+ - Rewrote versioning help.
131
+ - Added gsutil help text for common 403 AccountProblem error.
132
+ - Added text to 'gsutil help dev' about legal agreement needed
133
+ with code submissions.
134
+ - Fixed various other typos.
135
+ - Updated doc for cp command regarding metadata not being
136
+ preserved when copying between providers.
137
+ - Fixed gsutil ls command documentation typo for the -L option.
138
+ - Added HTTP scheme to doc/examples for gsutil setcors command.
139
+ - Changed minimum version in documentation from 2.5 to 2.6 since
140
+ gsutil no longer works in Python 2.5.
141
+ - Cleaned up/clarify/deepen various other parts of gsutil
142
+ built-in documentation.
143
+
144
+ - Numerous improvements to testing infrastructure:
145
+ - Completely refactored infrastructure, allowing deeper testing
146
+ and more readable test code, and enabling better debugging
147
+ output when tests fail.
148
+ - Moved gslib/test_*.py unit tests to gslib/tests module.
149
+ - Made all tests (unit and integration, per-command and modules
150
+ (like naming) run from single gsutil test command.
151
+ - Moved TempDir functions from GsUtilIntegrationTestCase to
152
+ GsUtilTestCase.
153
+ - Made test runner message show the test function being run.
154
+ - Added file path support to ObjectToURI function.
155
+ - Disabled the test command if running on Python 2.6 and unittest2
156
+ is not available instead of breaking all of gsutil.
157
+ - Changed to pass GCS V2 API and project_id from boto config
158
+ if necessary in integration_testcase#CreateBucket().
159
+ - Fixed unit tests by using a GS-specific mocking class to
160
+ override the S3 provider.
161
+ - Added friendlier error message if test path munging fails.
162
+ - Fixed bug where gsutil test only cleaned up first few test files.
163
+ - Implemented setacl integration tests.
164
+ - Implemented StorageUri parsing unit tests.
165
+ - Implemented test for gsutil cp -D.
166
+ - Implemented setacl integration tests.
167
+ - Implemented tests for reading and seeking past end of file.
168
+ - Implemented and tests for it in new tests module.
169
+ - Changed cp tests that don't specify a Content-Type to check
170
+ for new binary/octet-stream default instead of server-detected
171
+ mime type.
172
+
173
+ - Changed gsutil mv to allow moving local files/dirs to the cloud.
174
+ Previously this was disallowed in the belief we should be
175
+ conservative about deleting data from local disk but there are
176
+ legitimate use cases for moving data from a local dir to the
177
+ cloud, it's clear to the user this would remove data from the
178
+ local disk, and allowing it makes the tool behavior more
179
+ consistent with what users would expect.
180
+
181
+ - Changed gsutil update command to insist on is_secure and
182
+ https_validate_certificates.
183
+
184
+ - Fixed release no longer to include extraneous boto dirs in
185
+ top-level of gsutil distribution (like bin/ and docs/).
186
+
187
+ - Changed resumable upload threshold from 1 MB to 2 MB.
188
+
189
+ - Removed leftover cloudauth and cloudreader dirs. Sample code
190
+ now lives at https://github.com/GoogleCloudPlatform.
191
+
192
+ - Updated copyright notice on code files.
193
+
194
+
195
+ ================================================================================
196
+
197
+
198
+ Release 3.21 (release-date: 2012-12-10)
199
+
200
+ New Features
201
+ ------------
202
+
203
+ - Added the ability for the cp command to continue even if there is an
204
+ error. This can be activated with the -c flag.
205
+
206
+ - Added support for specifying src args for gsutil cp on stdin (-I option)
207
+
208
+
209
+ Bug Fixes
210
+ ---------
211
+
212
+ - Fixed gsutil test cp, which assumed it was run from gsutil install dir.
213
+
214
+ - Mods so we send generation subresource only when user requested
215
+ version parsing (-v option for cp and cat commands).
216
+
217
+
218
+ Other Changes
219
+ -------------
220
+
221
+ - Updated docs about using setmeta with versioning enabled.
222
+
223
+ - Changed GCS endpoint in boto to storage.googleapis.com.
224
+
225
+
226
+ ================================================================================
227
+
228
+
229
+ Release 3.20 (release-date: 2012-11-30)
230
+
231
+ New Features
232
+ ------------
233
+
234
+ - Added a noclobber (-n) setting for the cp command. Existing objects/files
235
+ will not be overwritten when using this setting.
236
+
237
+
238
+ Bug Fixes
239
+ ---------
240
+
241
+ - Fixed off-by-one error when reporting bytes transferred.
242
+
243
+
244
+ Other Changes
245
+ -------------
246
+
247
+ - Improved versioning support for the remove command.
248
+
249
+ - Improved test runner support.
250
+
251
+
252
+ ================================================================================
253
+
254
+
255
+ Release 3.19 (release-date: 2012-11-26)
256
+
257
+ New Features
258
+ ------------
259
+ - Added support for object versions.
260
+
261
+ - Added support for storage classes (including Durable Reduced Availability).
262
+
263
+
264
+ Bug Fixes
265
+ ---------
266
+ - Fixed problem where cp -q prevented resumable uploads from being performed.
267
+
268
+ - Made setwebcfg and setcors tests robust wrt XML formatting variation.
269
+
270
+
271
+ Other Changes
272
+ -------------
273
+
274
+ - Incorporated vapier@ mods to make version command not fail if CHECKSUM file
275
+ missing.
276
+
277
+ - Refactored gsutil such that most functionality exists in boto.
278
+
279
+ - Updated gsutil help dev instructions for how to check out source.
280
+
281
+
282
+ ================================================================================
283
+
284
+
285
+ Release 3.18 (release-date: 2012-09-19)
286
+
287
+ Bug Fixes
288
+ ---------
289
+
290
+ - Fixed resumable upload boundary condition when handling POST request
291
+ when server already has complete file, which resulted in an infinite
292
+ loop that consumed 100% of the CPU.
293
+
294
+ - Fixed one more place that outputted progress info when gsutil cp -q
295
+ specified (during streaming uploads).
296
+
297
+
298
+ Other Changes
299
+ -------------
300
+
301
+ - Updated help text for "gsutil help setmeta" and "gsutil help metadata", to
302
+ clarify and deepen parts of the documentation.
303
+
304
+
305
+ ================================================================================
306
+
307
+
308
+ Release 3.17 (release-date: 2012-08-17)
309
+
310
+ Bug Fixes
311
+ ---------
312
+
313
+ - Fixed race condition when multiple threads attempt to get an OAuth2 refresh
314
+ token concurrently.
315
+
316
+
317
+ Other Changes
318
+ -------------
319
+
320
+ - Implemented simplified syntax for setmeta command. The old syntax still
321
+ works but is now deprecated.
322
+
323
+ - Added help to gsutil cp -z option, to describe how to change where temp
324
+ files are written.
325
+
326
+
327
+ ================================================================================
328
+
329
+
330
+ Release 3.16 (release-date: 2012-08-13)
331
+
332
+ Bug Fixes
333
+ ---------
334
+
335
+ - Added info to built-in help for setmeta command, to explain the syntax
336
+ needed when running from Windows.
337
+
338
+ ================================================================================
339
+
340
+
341
+ Release 3.15 (release-date: 2012-08-12)
342
+
343
+ New Features
344
+ ------------
345
+ - Implemented gsutil setmeta command.
346
+
347
+ - Made gsutil understand bucket subdir conventions used by various tools
348
+ (like GCS Manager and CloudBerry) so if you cp or mv to a subdir you
349
+ created with one of those tools it will work as expected.
350
+
351
+ - Added support for Windows drive letter-prefaced paths when using Storage
352
+ URIs.
353
+
354
+
355
+ Bug Fixes
356
+ ---------
357
+
358
+ - Fixed performance bug when downloading a large object with Content-
359
+ Encoding:gzip, where decompression attempted to load the entire object
360
+ in memory. Also added "Uncompressing" log output if file is larger than
361
+ 50M, to make it clear the download hasn't stalled.
362
+
363
+ - Fixed naming bug when performing gsutil mv from a bucket subdir to
364
+ and existing bucket subdir.
365
+
366
+ - Fixed bug that caused cross-provider copies into Google Cloud Storage to
367
+ fail.
368
+
369
+ - Made change needed to make resumable transfer progress messages not print
370
+ when running gsutil cp -q.
371
+
372
+ - Fixed copy/paste error in config file documentation for
373
+ https_validate_certificates option.
374
+
375
+ - Various typo fixes.
376
+
377
+ Other Changes
378
+ -------------
379
+
380
+ - Changed gsutil to unset http_proxy environment variable if it's set,
381
+ because it confuses boto. (Proxies should instead be configured via the
382
+ boto config file.)
383
+
384
+ ================================================================================
385
+
386
+
387
+ Release 3.14 (release-date: 2012-07-28)
388
+
389
+ New Features
390
+ ------------
391
+ - Added cp -q option, to support quiet operation from cron jobs.
392
+
393
+ - Made config command restore backed up file if there was a failure or user
394
+ hits ^C.
395
+
396
+ Bug Fixes
397
+ ---------
398
+
399
+ - Fixed bug where gsutil cp -R from a source directory didn't generate
400
+ correct destination path.
401
+
402
+ - Fixed file handle leak in gsutil cp -z
403
+
404
+ - Fixed bug that caused cp -a option not to work when copying in the cloud.
405
+
406
+ - Fixed bug that caused '/-' to be appended to object name for streaming
407
+ uploads.
408
+
409
+ - Revert incorrect line I changed in previous CL, that attempted to
410
+ get fp from src_key object. The real fix that's needed is described in
411
+ http://code.google.com/p/gsutil/issues/detail?id=73.
412
+
413
+ Other Changes
414
+ -------------
415
+
416
+ - Changed logging to print "Copying..." and Content-Type on same line;
417
+ refactored content type and log handling.
418
+
419
+
420
+ ================================================================================
421
+
422
+
423
+ Release 3.13 (release-date: 2012-07-19)
424
+
425
+ Bug Fixes
426
+ ---------
427
+
428
+ - Included the fix to make 'gsutil config' honor BOTO_CONFIG environment
429
+ variable (which was intended to be included in Release 3.12)
430
+
431
+
432
+ ================================================================================
433
+
434
+
435
+ Release 3.11 (release-date: 2012-06-28)
436
+
437
+ New Features
438
+ ------------
439
+
440
+ - Added support for configuring website buckets.
441
+
442
+ Bug Fixes
443
+ ---------
444
+
445
+ - Fixed bug that caused simultaneous resumable downloads of the same source
446
+ object to use the same tracker file.
447
+
448
+ - Changed language code spec pointer from Wikipedia to loc.gov (for
449
+ Content-Language header).
450
+
451
+
452
+ ================================================================================
453
+
454
+
455
+ Release 3.10 (release-date: 2012-06-19)
456
+
457
+ New Features
458
+ ------------
459
+
460
+ - Added support for setting and listing Content-Language header.
461
+
462
+
463
+ Bug Fixes
464
+ ---------
465
+
466
+ - Fixed bug that caused getacl/setacl commands to get a character encoding
467
+ exception when ACL content contained content not representable in ISO-8859-1
468
+ character set.
469
+
470
+ - Fixed gsutil update not to fail under Windows exclusive file locking.
471
+
472
+ - Fixed gsutil ls -L to continue past 403 errors.
473
+
474
+ - Updated gsutil tests and also help dev with instructions on how to run
475
+ boto tests, based on recent test refactoring done to in boto library.
476
+
477
+ - Cleaned up parts of cp help text.
478
+
479
+
480
+ ================================================================================
481
+
482
+
483
+ Release 3.9 (release-date: 2012-05-24)
484
+
485
+ Bug Fixes
486
+ ---------
487
+
488
+ - Fixed bug that caused extra "file:/" to be included in pathnames with
489
+ doing gsutil cp -R on Windows.
490
+
491
+
492
+ ================================================================================
493
+
494
+
495
+ Release 3.8 (release-date: 2012-05-20)
496
+
497
+ Bug Fixes
498
+ ---------
499
+
500
+ - Fixed problem with non-ASCII filename characters not setting encoding before
501
+ attempting to hash for generating resumable transfer filename.
502
+
503
+
504
+ ================================================================================
505
+
506
+
507
+ Release 3.7 (release-date: 2012-05-11)
508
+
509
+ Bug Fixes
510
+ ---------
511
+
512
+ - Fixed handling of HTTPS tunneling through a proxy.
513
+
514
+
515
+ ================================================================================
516
+
517
+
518
+ Release 3.6 (release-date: 2012-05-09)
519
+
520
+ Bug Fixes
521
+ ---------
522
+
523
+ - Fixed bug that caused wildcards spanning directories not to work.
524
+ - Fixed bug that gsutil cp -z not to find available tmp space correctly
525
+ under Windows.
526
+
527
+
528
+ ================================================================================
529
+
530
+
531
+ Release 3.5 (release-date: 2012-04-30)
532
+
533
+ Performance Improvement
534
+ -----------------------
535
+
536
+ - Change by Evan Worley to calculate MD5s incrementally during uploads and
537
+ downloads. This reduces overall transfer time substantially for large
538
+ objects.
539
+
540
+ Bug Fixes
541
+ ---------
542
+
543
+ - Fixed bug where uploading and moving multiple files to a bucket subdirectory
544
+ didn't work as intended.
545
+ (http://code.google.com/p/gsutil/issues/detail?id=93).
546
+ - Fixed bug where gsutil cp -r sourcedir didn't copy to specified subdir
547
+ if there is only one file in sourcedir.
548
+ - Fixed bug where tracker file included a timestamp that caused it not to
549
+ be recognized across sessions.
550
+ - Fixed bug where gs://bucket/*/dir wildcard matches too many objects.
551
+ - Fixed documentation errors in help associated with ACLs and projects.
552
+ - Changed GCS ACL parsing to be case-insensitive.
553
+ - Changed ls to print error and exit with non-0 status when wildcard matches
554
+ nothing, to be more consistent with UNIX shell behavior.
555
+
556
+
557
+ ================================================================================
558
+
559
+
560
+ Release 3.4 (release-date: 2012-04-06)
561
+
562
+ Bug Fixes
563
+ ---------
564
+
565
+ - Fixed problem where resumable uploads/downloads of objects with very long
566
+ names would generate tracking files with names that exceeded local file
567
+ system limits, making it impossible to complete resumable transfers for
568
+ those objects. Solution was to build the tracking file name from a fixed
569
+ prefix, SHA1 hash of the long filename, epoch timestamp and last 16
570
+ chars of the long filename, which is guarantee to be a predicable and
571
+ reasonable length.
572
+
573
+ - Fixed minor bug in output from 'gsutil help dev' which advised executing
574
+ an inconsequential test script (test_util.py).
575
+
576
+
577
+ ================================================================================
578
+
579
+
580
+ Release 3.3 (release-date: 2012-04-03)
581
+
582
+ Bug Fixes
583
+ ---------
584
+
585
+ - Fixed problem where gsutil ver and debug flags crashed when used
586
+ with newly generated boto config files.
587
+
588
+ - Fixed gsutil bug in windows path handling, and make checksumming work
589
+ across platforms.
590
+
591
+ - Fixed enablelogging to translate -b URI param to plain bucket name in REST
592
+ API request.
593
+
594
+
595
+ ================================================================================
596
+
597
+
598
+ Release 3.2 (release-date: 2012-03-30)
599
+
600
+ Bug Fixes
601
+ ---------
602
+
603
+ - Fixed problem where gsutil didn't convert between OS-specific directory
604
+ separators when copying individually-named files (issue 87).
605
+
606
+ - Fixed problem where gsutil ls -R didn't work right if there was a key
607
+ with a leading path (like /foo/bar/baz)
608
+
609
+
610
+ ================================================================================
611
+
612
+
613
+ Release 3.1 (release-date: 2012-03-20)
614
+
615
+ Bug Fixes
616
+ ---------
617
+
618
+ - Removed erroneous setting of Content-Encoding when a gzip file is uploaded
619
+ (vs running gsutil cp -z, when Content-Encoding should be set). This
620
+ error caused users to get gsutil.tar.gz file uncompressed by the user
621
+ agent (like wget) while downloading, making the file appear to be of the
622
+ wrong size/content.
623
+
624
+ - Fixed handling of gsutil help for Windows (previous code depended on
625
+ termios and fcntl libs, which are Linux/MacOS-specific).
626
+
627
+
628
+ ================================================================================
629
+
630
+
631
+ Release 3.0 (release-date: 2012-03-20)
632
+
633
+
634
+ Important Notes
635
+ ---------------
636
+
637
+ - Backwards-incompatible wildcard change
638
+
639
+ The '*' wildcard now only matches objects within a bucket directory. If
640
+ you have scripts that depend on being able to match spanning multiple
641
+ directories you need to use '**' instead. For example, the command:
642
+
643
+ gsutil cp gs://bucket/*.txt
644
+
645
+ will now only match .txt files in the top-level directory.
646
+
647
+ gsutil cp gs://bucket/**.txt
648
+
649
+ will match across all directories.
650
+
651
+ - gsutil ls now lists one directory at a time. If you want to list all objects
652
+ in a bucket, you can use:
653
+
654
+ gsutil ls gs://bucket/**
655
+
656
+ or:
657
+
658
+ gsutil ls -R gs://bucket
659
+
660
+
661
+ New Features
662
+ ------------
663
+
664
+ - Built-in help for all commands and many additional topics. Try
665
+ "gsutil help" for a list of available commands and topics.
666
+
667
+ - A new hierarchical file tree abstraction layer, which makes the flat bucket
668
+ name space look like a hierarchical file tree. This makes several things
669
+ possible:
670
+ - copying data to/from bucket sub-directories (see “gsutil help cp”).
671
+ - distributing large uploads/downloads across many machines
672
+ (see “gsutil help cp”)
673
+ - renaming bucket sub-directories (see “gsutil help mv”).
674
+ - listing individual bucket sub-directories and for listing directories
675
+ recursively (see “gsutil help ls”).
676
+ - setting ACLs for objects in a sub-directory (see “gsutil help setacl”).
677
+
678
+ - Support for per-directory (*) and recursive (**) wildcards. Essentially,
679
+ ** works the way * did in previous gsutil releases, and * now behaves
680
+ consistently with how it works in command interpreters (like bash). The
681
+ ability to specify directory-only wildcards also enables a number of use
682
+ cases, such as distributing large uploads/downloads by wildcarded name. See
683
+ "gsutil help wildcards" for details.
684
+
685
+ - Support for Cross-Origin Resource Sharing (CORS) configuration. See "gsutil
686
+ help cors" for details.
687
+
688
+ - Support for multi-threading and recursive operation for setacl command
689
+ (see “gsutil help setacl”).
690
+
691
+ - Ability to use the UNIX 'file' command to do content type recognition as
692
+ an alternative to filename extensions.
693
+
694
+ - Introduction of new end-to-end test suite.
695
+
696
+ - The gsutil version command now computes a checksum of the code, to detect
697
+ corruption and local modification when assisting with technical support.
698
+
699
+ - The gsutil update command is no longer beta/experimental, and now also
700
+ supports updating from named URIs (for early/test releases).
701
+
702
+ - Changed gsutil ls -L to also print Content-Disposition header.
703
+
704
+
705
+ Bug Fixes
706
+ ---------
707
+
708
+ - The gsutil cp -t option previously didn't work as documented, and instead
709
+ Content-Type was always detected based on filename extension. Content-Type
710
+ detection is now the default, the -t option is deprecated (to be removed in
711
+ the future), and specifying a -h Content-Type header now correctly overrides
712
+ the filename extension based handling. For details see "gsutil help
713
+ metadata".
714
+
715
+ - Fixed bug that caused multi-threaded mv command not to percolate failures
716
+ during the cp phase to the rm phase, which could under some circumstances
717
+ cause data that was not copied to be deleted.
718
+
719
+ - Fixed bug that caused gsutil to use GET for ls -L requests. It now uses HEAD
720
+ for ls -L requests, which is more efficient and faster.
721
+
722
+ - Fixed bug that caused gsutil not to preserve metadata during
723
+ copy-in-the-cloud.
724
+
725
+ - Fixed bug that prevented setacl command from allowing DisplayName's in ACLs.
726
+
727
+ - Fixed bug that caused gsutil/boto to suppress consecutive slashes in path
728
+ names.
729
+
730
+ - Fixed spec-non-compliant URI construction for resumable uploads.
731
+
732
+ - Fixed bug that caused rm -f not to work.
733
+
734
+ - Fixed UnicodeEncodeError that happened when redirecting gsutil ls output
735
+ to a file with non-ASCII object names.
736
+
737
+
738
+ Other Changes
739
+ -------------
740
+
741
+ - UserAgent sent in HTTP requests now includes gsutil version number and OS
742
+ name.
743
+
744
+ - Starting with this release users are able to get individual named releases
745
+ from version-named objects: gs://pub/gsutil_<version>.tar.gz
746
+ and gs://pub/gsutil_<version>.zip. The version-less counterparts
747
+ (gs://pub/gsutil.tar.gz and gs://pub/gsutil.zip) will contain the latest
748
+ release. Also, the gs://pub bucket is now publicly readable (so, anyone
749
+ can list its contents).
750
+
751
+
752
+ ================================================================================
753
+
754
+ Release 2.0 (release-date: 2012-01-13)
755
+
756
+
757
+ New Features
758
+ ------------
759
+
760
+ - Support for for two new installation modes: enterprise and RPM.
761
+ Customers can now install gsutil one of three ways:
762
+
763
+ - Individual user mode (previously the only available mode): unpacking from
764
+ a gzipped tarball (gs://pub/gsutil.tar.gz) or zip file
765
+ (gs://pub/gsutil.zip) and running the gsutil command in place in the
766
+ unpacked gsutil directory.
767
+
768
+ - Enterprise mode (new): unpacking as above, and then running the setup.py
769
+ script in the unpacked gsutil directory. This allows a systems
770
+ administrator to install gsutil in a central location, using the Python
771
+ distutils facility. This mode is supported only on Linux and MacOS.
772
+
773
+ - RPM mode (new). A RedHat RPM can be built from the gsutil.spec.in file
774
+ in the unpacked gsutil directory, allowing it to be installed as part of
775
+ a RedHat build.
776
+
777
+ - Note: v2.0 is the first numbered gsutil release. Previous releases
778
+ were given timestamps for versions. Numbered releases enable downstream
779
+ package builds (like RPMs) to define dependencies more easily.
780
+ This is also the first version where we began including release notes.