Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/boto/__init__.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
| author | shellac |
|---|---|
| date | Sat, 02 May 2020 07:14:21 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:26e78fe6e8c4 |
|---|---|
| 1 # Copyright (c) 2006-2012 Mitch Garnaat http://garnaat.org/ | |
| 2 # Copyright (c) 2010-2011, Eucalyptus Systems, Inc. | |
| 3 # Copyright (c) 2011, Nexenta Systems Inc. | |
| 4 # Copyright (c) 2012 Amazon.com, Inc. or its affiliates. | |
| 5 # Copyright (c) 2010, Google, Inc. | |
| 6 # All rights reserved. | |
| 7 # | |
| 8 # Permission is hereby granted, free of charge, to any person obtaining a | |
| 9 # copy of this software and associated documentation files (the | |
| 10 # "Software"), to deal in the Software without restriction, including | |
| 11 # without limitation the rights to use, copy, modify, merge, publish, dis- | |
| 12 # tribute, sublicense, and/or sell copies of the Software, and to permit | |
| 13 # persons to whom the Software is furnished to do so, subject to the fol- | |
| 14 # lowing conditions: | |
| 15 # | |
| 16 # The above copyright notice and this permission notice shall be included | |
| 17 # in all copies or substantial portions of the Software. | |
| 18 # | |
| 19 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
| 20 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- | |
| 21 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | |
| 22 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
| 23 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 24 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
| 25 # IN THE SOFTWARE. | |
| 26 # | |
| 27 from boto.pyami.config import Config, BotoConfigLocations | |
| 28 from boto.storage_uri import BucketStorageUri, FileStorageUri | |
| 29 import boto.plugin | |
| 30 import datetime | |
| 31 import os | |
| 32 import platform | |
| 33 import re | |
| 34 import sys | |
| 35 import logging | |
| 36 import logging.config | |
| 37 | |
| 38 from boto.compat import urlparse | |
| 39 from boto.exception import InvalidUriError | |
| 40 | |
| 41 __version__ = '2.49.0' | |
| 42 Version = __version__ # for backware compatibility | |
| 43 | |
| 44 # http://bugs.python.org/issue7980 | |
| 45 datetime.datetime.strptime('', '') | |
| 46 | |
| 47 UserAgent = 'Boto/%s Python/%s %s/%s' % ( | |
| 48 __version__, | |
| 49 platform.python_version(), | |
| 50 platform.system(), | |
| 51 platform.release() | |
| 52 ) | |
| 53 config = Config() | |
| 54 | |
| 55 # Regex to disallow buckets violating charset or not [3..255] chars total. | |
| 56 BUCKET_NAME_RE = re.compile(r'^[a-zA-Z0-9][a-zA-Z0-9\._-]{1,253}[a-zA-Z0-9]$') | |
| 57 # Regex to disallow buckets with individual DNS labels longer than 63. | |
| 58 TOO_LONG_DNS_NAME_COMP = re.compile(r'[-_a-z0-9]{64}') | |
| 59 GENERATION_RE = re.compile(r'(?P<versionless_uri_str>.+)' | |
| 60 r'#(?P<generation>[0-9]+)$') | |
| 61 VERSION_RE = re.compile('(?P<versionless_uri_str>.+)#(?P<version_id>.+)$') | |
| 62 ENDPOINTS_PATH = os.path.join(os.path.dirname(__file__), 'endpoints.json') | |
| 63 | |
| 64 | |
| 65 def init_logging(): | |
| 66 for file in BotoConfigLocations: | |
| 67 try: | |
| 68 logging.config.fileConfig(os.path.expanduser(file)) | |
| 69 except: | |
| 70 pass | |
| 71 | |
| 72 | |
| 73 class NullHandler(logging.Handler): | |
| 74 def emit(self, record): | |
| 75 pass | |
| 76 | |
| 77 log = logging.getLogger('boto') | |
| 78 perflog = logging.getLogger('boto.perf') | |
| 79 log.addHandler(NullHandler()) | |
| 80 perflog.addHandler(NullHandler()) | |
| 81 init_logging() | |
| 82 | |
| 83 # convenience function to set logging to a particular file | |
| 84 | |
| 85 | |
| 86 def set_file_logger(name, filepath, level=logging.INFO, format_string=None): | |
| 87 global log | |
| 88 if not format_string: | |
| 89 format_string = "%(asctime)s %(name)s [%(levelname)s]:%(message)s" | |
| 90 logger = logging.getLogger(name) | |
| 91 logger.setLevel(level) | |
| 92 fh = logging.FileHandler(filepath) | |
| 93 fh.setLevel(level) | |
| 94 formatter = logging.Formatter(format_string) | |
| 95 fh.setFormatter(formatter) | |
| 96 logger.addHandler(fh) | |
| 97 log = logger | |
| 98 | |
| 99 | |
| 100 def set_stream_logger(name, level=logging.DEBUG, format_string=None): | |
| 101 global log | |
| 102 if not format_string: | |
| 103 format_string = "%(asctime)s %(name)s [%(levelname)s]:%(message)s" | |
| 104 logger = logging.getLogger(name) | |
| 105 logger.setLevel(level) | |
| 106 fh = logging.StreamHandler() | |
| 107 fh.setLevel(level) | |
| 108 formatter = logging.Formatter(format_string) | |
| 109 fh.setFormatter(formatter) | |
| 110 logger.addHandler(fh) | |
| 111 log = logger | |
| 112 | |
| 113 | |
| 114 def connect_sqs(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 115 """ | |
| 116 :type aws_access_key_id: string | |
| 117 :param aws_access_key_id: Your AWS Access Key ID | |
| 118 | |
| 119 :type aws_secret_access_key: string | |
| 120 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 121 | |
| 122 :rtype: :class:`boto.sqs.connection.SQSConnection` | |
| 123 :return: A connection to Amazon's SQS | |
| 124 """ | |
| 125 from boto.sqs.connection import SQSConnection | |
| 126 return SQSConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 127 | |
| 128 | |
| 129 def connect_s3(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 130 """ | |
| 131 :type aws_access_key_id: string | |
| 132 :param aws_access_key_id: Your AWS Access Key ID | |
| 133 | |
| 134 :type aws_secret_access_key: string | |
| 135 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 136 | |
| 137 :rtype: :class:`boto.s3.connection.S3Connection` | |
| 138 :return: A connection to Amazon's S3 | |
| 139 """ | |
| 140 from boto.s3.connection import S3Connection | |
| 141 return S3Connection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 142 | |
| 143 | |
| 144 def connect_gs(gs_access_key_id=None, gs_secret_access_key=None, **kwargs): | |
| 145 """ | |
| 146 @type gs_access_key_id: string | |
| 147 @param gs_access_key_id: Your Google Cloud Storage Access Key ID | |
| 148 | |
| 149 @type gs_secret_access_key: string | |
| 150 @param gs_secret_access_key: Your Google Cloud Storage Secret Access Key | |
| 151 | |
| 152 @rtype: L{GSConnection<boto.gs.connection.GSConnection>} | |
| 153 @return: A connection to Google's Storage service | |
| 154 """ | |
| 155 from boto.gs.connection import GSConnection | |
| 156 return GSConnection(gs_access_key_id, gs_secret_access_key, **kwargs) | |
| 157 | |
| 158 | |
| 159 def connect_ec2(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 160 """ | |
| 161 :type aws_access_key_id: string | |
| 162 :param aws_access_key_id: Your AWS Access Key ID | |
| 163 | |
| 164 :type aws_secret_access_key: string | |
| 165 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 166 | |
| 167 :rtype: :class:`boto.ec2.connection.EC2Connection` | |
| 168 :return: A connection to Amazon's EC2 | |
| 169 """ | |
| 170 from boto.ec2.connection import EC2Connection | |
| 171 return EC2Connection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 172 | |
| 173 | |
| 174 def connect_elb(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 175 """ | |
| 176 :type aws_access_key_id: string | |
| 177 :param aws_access_key_id: Your AWS Access Key ID | |
| 178 | |
| 179 :type aws_secret_access_key: string | |
| 180 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 181 | |
| 182 :rtype: :class:`boto.ec2.elb.ELBConnection` | |
| 183 :return: A connection to Amazon's Load Balancing Service | |
| 184 """ | |
| 185 from boto.ec2.elb import ELBConnection | |
| 186 return ELBConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 187 | |
| 188 | |
| 189 def connect_autoscale(aws_access_key_id=None, aws_secret_access_key=None, | |
| 190 **kwargs): | |
| 191 """ | |
| 192 :type aws_access_key_id: string | |
| 193 :param aws_access_key_id: Your AWS Access Key ID | |
| 194 | |
| 195 :type aws_secret_access_key: string | |
| 196 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 197 | |
| 198 :rtype: :class:`boto.ec2.autoscale.AutoScaleConnection` | |
| 199 :return: A connection to Amazon's Auto Scaling Service | |
| 200 | |
| 201 :type use_block_device_types bool | |
| 202 :param use_block_device_types: Specifies whether to return described Launch Configs with block device mappings containing | |
| 203 block device types, or a list of old style block device mappings (deprecated). This defaults to false for compatability | |
| 204 with the old incorrect style. | |
| 205 """ | |
| 206 from boto.ec2.autoscale import AutoScaleConnection | |
| 207 return AutoScaleConnection(aws_access_key_id, aws_secret_access_key, | |
| 208 **kwargs) | |
| 209 | |
| 210 | |
| 211 def connect_cloudwatch(aws_access_key_id=None, aws_secret_access_key=None, | |
| 212 **kwargs): | |
| 213 """ | |
| 214 :type aws_access_key_id: string | |
| 215 :param aws_access_key_id: Your AWS Access Key ID | |
| 216 | |
| 217 :type aws_secret_access_key: string | |
| 218 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 219 | |
| 220 :rtype: :class:`boto.ec2.cloudwatch.CloudWatchConnection` | |
| 221 :return: A connection to Amazon's EC2 Monitoring service | |
| 222 """ | |
| 223 from boto.ec2.cloudwatch import CloudWatchConnection | |
| 224 return CloudWatchConnection(aws_access_key_id, aws_secret_access_key, | |
| 225 **kwargs) | |
| 226 | |
| 227 | |
| 228 def connect_sdb(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 229 """ | |
| 230 :type aws_access_key_id: string | |
| 231 :param aws_access_key_id: Your AWS Access Key ID | |
| 232 | |
| 233 :type aws_secret_access_key: string | |
| 234 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 235 | |
| 236 :rtype: :class:`boto.sdb.connection.SDBConnection` | |
| 237 :return: A connection to Amazon's SDB | |
| 238 """ | |
| 239 from boto.sdb.connection import SDBConnection | |
| 240 return SDBConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 241 | |
| 242 | |
| 243 def connect_fps(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 244 """ | |
| 245 :type aws_access_key_id: string | |
| 246 :param aws_access_key_id: Your AWS Access Key ID | |
| 247 | |
| 248 :type aws_secret_access_key: string | |
| 249 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 250 | |
| 251 :rtype: :class:`boto.fps.connection.FPSConnection` | |
| 252 :return: A connection to FPS | |
| 253 """ | |
| 254 from boto.fps.connection import FPSConnection | |
| 255 return FPSConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 256 | |
| 257 | |
| 258 def connect_mturk(aws_access_key_id=None, aws_secret_access_key=None, | |
| 259 **kwargs): | |
| 260 """ | |
| 261 :type aws_access_key_id: string | |
| 262 :param aws_access_key_id: Your AWS Access Key ID | |
| 263 | |
| 264 :type aws_secret_access_key: string | |
| 265 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 266 | |
| 267 :rtype: :class:`boto.mturk.connection.MTurkConnection` | |
| 268 :return: A connection to MTurk | |
| 269 """ | |
| 270 from boto.mturk.connection import MTurkConnection | |
| 271 return MTurkConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 272 | |
| 273 | |
| 274 def connect_cloudfront(aws_access_key_id=None, aws_secret_access_key=None, | |
| 275 **kwargs): | |
| 276 """ | |
| 277 :type aws_access_key_id: string | |
| 278 :param aws_access_key_id: Your AWS Access Key ID | |
| 279 | |
| 280 :type aws_secret_access_key: string | |
| 281 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 282 | |
| 283 :rtype: :class:`boto.fps.connection.FPSConnection` | |
| 284 :return: A connection to FPS | |
| 285 """ | |
| 286 from boto.cloudfront import CloudFrontConnection | |
| 287 return CloudFrontConnection(aws_access_key_id, aws_secret_access_key, | |
| 288 **kwargs) | |
| 289 | |
| 290 | |
| 291 def connect_vpc(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 292 """ | |
| 293 :type aws_access_key_id: string | |
| 294 :param aws_access_key_id: Your AWS Access Key ID | |
| 295 | |
| 296 :type aws_secret_access_key: string | |
| 297 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 298 | |
| 299 :rtype: :class:`boto.vpc.VPCConnection` | |
| 300 :return: A connection to VPC | |
| 301 """ | |
| 302 from boto.vpc import VPCConnection | |
| 303 return VPCConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 304 | |
| 305 | |
| 306 def connect_rds(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 307 """ | |
| 308 :type aws_access_key_id: string | |
| 309 :param aws_access_key_id: Your AWS Access Key ID | |
| 310 | |
| 311 :type aws_secret_access_key: string | |
| 312 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 313 | |
| 314 :rtype: :class:`boto.rds.RDSConnection` | |
| 315 :return: A connection to RDS | |
| 316 """ | |
| 317 from boto.rds import RDSConnection | |
| 318 return RDSConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 319 | |
| 320 | |
| 321 def connect_rds2(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 322 """ | |
| 323 :type aws_access_key_id: string | |
| 324 :param aws_access_key_id: Your AWS Access Key ID | |
| 325 | |
| 326 :type aws_secret_access_key: string | |
| 327 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 328 | |
| 329 :rtype: :class:`boto.rds2.layer1.RDSConnection` | |
| 330 :return: A connection to RDS | |
| 331 """ | |
| 332 from boto.rds2.layer1 import RDSConnection | |
| 333 return RDSConnection( | |
| 334 aws_access_key_id=aws_access_key_id, | |
| 335 aws_secret_access_key=aws_secret_access_key, | |
| 336 **kwargs | |
| 337 ) | |
| 338 | |
| 339 | |
| 340 def connect_emr(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 341 """ | |
| 342 :type aws_access_key_id: string | |
| 343 :param aws_access_key_id: Your AWS Access Key ID | |
| 344 | |
| 345 :type aws_secret_access_key: string | |
| 346 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 347 | |
| 348 :rtype: :class:`boto.emr.EmrConnection` | |
| 349 :return: A connection to Elastic mapreduce | |
| 350 """ | |
| 351 from boto.emr import EmrConnection | |
| 352 return EmrConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 353 | |
| 354 | |
| 355 def connect_sns(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 356 """ | |
| 357 :type aws_access_key_id: string | |
| 358 :param aws_access_key_id: Your AWS Access Key ID | |
| 359 | |
| 360 :type aws_secret_access_key: string | |
| 361 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 362 | |
| 363 :rtype: :class:`boto.sns.SNSConnection` | |
| 364 :return: A connection to Amazon's SNS | |
| 365 """ | |
| 366 from boto.sns import SNSConnection | |
| 367 return SNSConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 368 | |
| 369 | |
| 370 def connect_iam(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 371 """ | |
| 372 :type aws_access_key_id: string | |
| 373 :param aws_access_key_id: Your AWS Access Key ID | |
| 374 | |
| 375 :type aws_secret_access_key: string | |
| 376 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 377 | |
| 378 :rtype: :class:`boto.iam.IAMConnection` | |
| 379 :return: A connection to Amazon's IAM | |
| 380 """ | |
| 381 from boto.iam import IAMConnection | |
| 382 return IAMConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 383 | |
| 384 | |
| 385 def connect_route53(aws_access_key_id=None, aws_secret_access_key=None, | |
| 386 **kwargs): | |
| 387 """ | |
| 388 :type aws_access_key_id: string | |
| 389 :param aws_access_key_id: Your AWS Access Key ID | |
| 390 | |
| 391 :type aws_secret_access_key: string | |
| 392 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 393 | |
| 394 :rtype: :class:`boto.dns.Route53Connection` | |
| 395 :return: A connection to Amazon's Route53 DNS Service | |
| 396 """ | |
| 397 from boto.route53 import Route53Connection | |
| 398 return Route53Connection(aws_access_key_id, aws_secret_access_key, | |
| 399 **kwargs) | |
| 400 | |
| 401 | |
| 402 def connect_cloudformation(aws_access_key_id=None, aws_secret_access_key=None, | |
| 403 **kwargs): | |
| 404 """ | |
| 405 :type aws_access_key_id: string | |
| 406 :param aws_access_key_id: Your AWS Access Key ID | |
| 407 | |
| 408 :type aws_secret_access_key: string | |
| 409 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 410 | |
| 411 :rtype: :class:`boto.cloudformation.CloudFormationConnection` | |
| 412 :return: A connection to Amazon's CloudFormation Service | |
| 413 """ | |
| 414 from boto.cloudformation import CloudFormationConnection | |
| 415 return CloudFormationConnection(aws_access_key_id, aws_secret_access_key, | |
| 416 **kwargs) | |
| 417 | |
| 418 | |
| 419 def connect_euca(host=None, aws_access_key_id=None, aws_secret_access_key=None, | |
| 420 port=8773, path='/services/Eucalyptus', is_secure=False, | |
| 421 **kwargs): | |
| 422 """ | |
| 423 Connect to a Eucalyptus service. | |
| 424 | |
| 425 :type host: string | |
| 426 :param host: the host name or ip address of the Eucalyptus server | |
| 427 | |
| 428 :type aws_access_key_id: string | |
| 429 :param aws_access_key_id: Your AWS Access Key ID | |
| 430 | |
| 431 :type aws_secret_access_key: string | |
| 432 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 433 | |
| 434 :rtype: :class:`boto.ec2.connection.EC2Connection` | |
| 435 :return: A connection to Eucalyptus server | |
| 436 """ | |
| 437 from boto.ec2 import EC2Connection | |
| 438 from boto.ec2.regioninfo import RegionInfo | |
| 439 | |
| 440 # Check for values in boto config, if not supplied as args | |
| 441 if not aws_access_key_id: | |
| 442 aws_access_key_id = config.get('Credentials', | |
| 443 'euca_access_key_id', | |
| 444 None) | |
| 445 if not aws_secret_access_key: | |
| 446 aws_secret_access_key = config.get('Credentials', | |
| 447 'euca_secret_access_key', | |
| 448 None) | |
| 449 if not host: | |
| 450 host = config.get('Boto', 'eucalyptus_host', None) | |
| 451 | |
| 452 reg = RegionInfo(name='eucalyptus', endpoint=host) | |
| 453 return EC2Connection(aws_access_key_id, aws_secret_access_key, | |
| 454 region=reg, port=port, path=path, | |
| 455 is_secure=is_secure, **kwargs) | |
| 456 | |
| 457 | |
| 458 def connect_glacier(aws_access_key_id=None, aws_secret_access_key=None, | |
| 459 **kwargs): | |
| 460 """ | |
| 461 :type aws_access_key_id: string | |
| 462 :param aws_access_key_id: Your AWS Access Key ID | |
| 463 | |
| 464 :type aws_secret_access_key: string | |
| 465 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 466 | |
| 467 :rtype: :class:`boto.glacier.layer2.Layer2` | |
| 468 :return: A connection to Amazon's Glacier Service | |
| 469 """ | |
| 470 from boto.glacier.layer2 import Layer2 | |
| 471 return Layer2(aws_access_key_id, aws_secret_access_key, | |
| 472 **kwargs) | |
| 473 | |
| 474 | |
| 475 def connect_ec2_endpoint(url, aws_access_key_id=None, | |
| 476 aws_secret_access_key=None, | |
| 477 **kwargs): | |
| 478 """ | |
| 479 Connect to an EC2 Api endpoint. Additional arguments are passed | |
| 480 through to connect_ec2. | |
| 481 | |
| 482 :type url: string | |
| 483 :param url: A url for the ec2 api endpoint to connect to | |
| 484 | |
| 485 :type aws_access_key_id: string | |
| 486 :param aws_access_key_id: Your AWS Access Key ID | |
| 487 | |
| 488 :type aws_secret_access_key: string | |
| 489 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 490 | |
| 491 :rtype: :class:`boto.ec2.connection.EC2Connection` | |
| 492 :return: A connection to Eucalyptus server | |
| 493 """ | |
| 494 from boto.ec2.regioninfo import RegionInfo | |
| 495 | |
| 496 purl = urlparse(url) | |
| 497 kwargs['port'] = purl.port | |
| 498 kwargs['host'] = purl.hostname | |
| 499 kwargs['path'] = purl.path | |
| 500 if not 'is_secure' in kwargs: | |
| 501 kwargs['is_secure'] = (purl.scheme == "https") | |
| 502 | |
| 503 kwargs['region'] = RegionInfo(name=purl.hostname, | |
| 504 endpoint=purl.hostname) | |
| 505 kwargs['aws_access_key_id'] = aws_access_key_id | |
| 506 kwargs['aws_secret_access_key'] = aws_secret_access_key | |
| 507 | |
| 508 return(connect_ec2(**kwargs)) | |
| 509 | |
| 510 | |
| 511 def connect_walrus(host=None, aws_access_key_id=None, | |
| 512 aws_secret_access_key=None, | |
| 513 port=8773, path='/services/Walrus', is_secure=False, | |
| 514 **kwargs): | |
| 515 """ | |
| 516 Connect to a Walrus service. | |
| 517 | |
| 518 :type host: string | |
| 519 :param host: the host name or ip address of the Walrus server | |
| 520 | |
| 521 :type aws_access_key_id: string | |
| 522 :param aws_access_key_id: Your AWS Access Key ID | |
| 523 | |
| 524 :type aws_secret_access_key: string | |
| 525 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 526 | |
| 527 :rtype: :class:`boto.s3.connection.S3Connection` | |
| 528 :return: A connection to Walrus | |
| 529 """ | |
| 530 from boto.s3.connection import S3Connection | |
| 531 from boto.s3.connection import OrdinaryCallingFormat | |
| 532 | |
| 533 # Check for values in boto config, if not supplied as args | |
| 534 if not aws_access_key_id: | |
| 535 aws_access_key_id = config.get('Credentials', | |
| 536 'euca_access_key_id', | |
| 537 None) | |
| 538 if not aws_secret_access_key: | |
| 539 aws_secret_access_key = config.get('Credentials', | |
| 540 'euca_secret_access_key', | |
| 541 None) | |
| 542 if not host: | |
| 543 host = config.get('Boto', 'walrus_host', None) | |
| 544 | |
| 545 return S3Connection(aws_access_key_id, aws_secret_access_key, | |
| 546 host=host, port=port, path=path, | |
| 547 calling_format=OrdinaryCallingFormat(), | |
| 548 is_secure=is_secure, **kwargs) | |
| 549 | |
| 550 | |
| 551 def connect_ses(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 552 """ | |
| 553 :type aws_access_key_id: string | |
| 554 :param aws_access_key_id: Your AWS Access Key ID | |
| 555 | |
| 556 :type aws_secret_access_key: string | |
| 557 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 558 | |
| 559 :rtype: :class:`boto.ses.SESConnection` | |
| 560 :return: A connection to Amazon's SES | |
| 561 """ | |
| 562 from boto.ses import SESConnection | |
| 563 return SESConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 564 | |
| 565 | |
| 566 def connect_sts(aws_access_key_id=None, aws_secret_access_key=None, **kwargs): | |
| 567 """ | |
| 568 :type aws_access_key_id: string | |
| 569 :param aws_access_key_id: Your AWS Access Key ID | |
| 570 | |
| 571 :type aws_secret_access_key: string | |
| 572 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 573 | |
| 574 :rtype: :class:`boto.sts.STSConnection` | |
| 575 :return: A connection to Amazon's STS | |
| 576 """ | |
| 577 from boto.sts import STSConnection | |
| 578 return STSConnection(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 579 | |
| 580 | |
| 581 def connect_ia(ia_access_key_id=None, ia_secret_access_key=None, | |
| 582 is_secure=False, **kwargs): | |
| 583 """ | |
| 584 Connect to the Internet Archive via their S3-like API. | |
| 585 | |
| 586 :type ia_access_key_id: string | |
| 587 :param ia_access_key_id: Your IA Access Key ID. This will also look | |
| 588 in your boto config file for an entry in the Credentials | |
| 589 section called "ia_access_key_id" | |
| 590 | |
| 591 :type ia_secret_access_key: string | |
| 592 :param ia_secret_access_key: Your IA Secret Access Key. This will also | |
| 593 look in your boto config file for an entry in the Credentials | |
| 594 section called "ia_secret_access_key" | |
| 595 | |
| 596 :rtype: :class:`boto.s3.connection.S3Connection` | |
| 597 :return: A connection to the Internet Archive | |
| 598 """ | |
| 599 from boto.s3.connection import S3Connection | |
| 600 from boto.s3.connection import OrdinaryCallingFormat | |
| 601 | |
| 602 access_key = config.get('Credentials', 'ia_access_key_id', | |
| 603 ia_access_key_id) | |
| 604 secret_key = config.get('Credentials', 'ia_secret_access_key', | |
| 605 ia_secret_access_key) | |
| 606 | |
| 607 return S3Connection(access_key, secret_key, | |
| 608 host='s3.us.archive.org', | |
| 609 calling_format=OrdinaryCallingFormat(), | |
| 610 is_secure=is_secure, **kwargs) | |
| 611 | |
| 612 | |
| 613 def connect_dynamodb(aws_access_key_id=None, | |
| 614 aws_secret_access_key=None, | |
| 615 **kwargs): | |
| 616 """ | |
| 617 :type aws_access_key_id: string | |
| 618 :param aws_access_key_id: Your AWS Access Key ID | |
| 619 | |
| 620 :type aws_secret_access_key: string | |
| 621 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 622 | |
| 623 :rtype: :class:`boto.dynamodb.layer2.Layer2` | |
| 624 :return: A connection to the Layer2 interface for DynamoDB. | |
| 625 """ | |
| 626 from boto.dynamodb.layer2 import Layer2 | |
| 627 return Layer2(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 628 | |
| 629 | |
| 630 def connect_swf(aws_access_key_id=None, | |
| 631 aws_secret_access_key=None, | |
| 632 **kwargs): | |
| 633 """ | |
| 634 :type aws_access_key_id: string | |
| 635 :param aws_access_key_id: Your AWS Access Key ID | |
| 636 | |
| 637 :type aws_secret_access_key: string | |
| 638 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 639 | |
| 640 :rtype: :class:`boto.swf.layer1.Layer1` | |
| 641 :return: A connection to the Layer1 interface for SWF. | |
| 642 """ | |
| 643 from boto.swf.layer1 import Layer1 | |
| 644 return Layer1(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 645 | |
| 646 | |
| 647 def connect_cloudsearch(aws_access_key_id=None, | |
| 648 aws_secret_access_key=None, | |
| 649 **kwargs): | |
| 650 """ | |
| 651 :type aws_access_key_id: string | |
| 652 :param aws_access_key_id: Your AWS Access Key ID | |
| 653 | |
| 654 :type aws_secret_access_key: string | |
| 655 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 656 | |
| 657 :rtype: :class:`boto.cloudsearch.layer2.Layer2` | |
| 658 :return: A connection to Amazon's CloudSearch service | |
| 659 """ | |
| 660 from boto.cloudsearch.layer2 import Layer2 | |
| 661 return Layer2(aws_access_key_id, aws_secret_access_key, | |
| 662 **kwargs) | |
| 663 | |
| 664 | |
| 665 def connect_cloudsearch2(aws_access_key_id=None, | |
| 666 aws_secret_access_key=None, | |
| 667 sign_request=False, | |
| 668 **kwargs): | |
| 669 """ | |
| 670 :type aws_access_key_id: string | |
| 671 :param aws_access_key_id: Your AWS Access Key ID | |
| 672 | |
| 673 :type aws_secret_access_key: string | |
| 674 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 675 | |
| 676 :type sign_request: bool | |
| 677 :param sign_request: whether or not to sign search and | |
| 678 upload requests | |
| 679 | |
| 680 :rtype: :class:`boto.cloudsearch2.layer2.Layer2` | |
| 681 :return: A connection to Amazon's CloudSearch2 service | |
| 682 """ | |
| 683 from boto.cloudsearch2.layer2 import Layer2 | |
| 684 return Layer2(aws_access_key_id, aws_secret_access_key, | |
| 685 sign_request=sign_request, | |
| 686 **kwargs) | |
| 687 | |
| 688 | |
| 689 def connect_cloudsearchdomain(aws_access_key_id=None, | |
| 690 aws_secret_access_key=None, | |
| 691 **kwargs): | |
| 692 """ | |
| 693 :type aws_access_key_id: string | |
| 694 :param aws_access_key_id: Your AWS Access Key ID | |
| 695 | |
| 696 :type aws_secret_access_key: string | |
| 697 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 698 | |
| 699 :rtype: :class:`boto.cloudsearchdomain.layer1.CloudSearchDomainConnection` | |
| 700 :return: A connection to Amazon's CloudSearch Domain service | |
| 701 """ | |
| 702 from boto.cloudsearchdomain.layer1 import CloudSearchDomainConnection | |
| 703 return CloudSearchDomainConnection(aws_access_key_id, | |
| 704 aws_secret_access_key, **kwargs) | |
| 705 | |
| 706 | |
| 707 def connect_beanstalk(aws_access_key_id=None, | |
| 708 aws_secret_access_key=None, | |
| 709 **kwargs): | |
| 710 """ | |
| 711 :type aws_access_key_id: string | |
| 712 :param aws_access_key_id: Your AWS Access Key ID | |
| 713 | |
| 714 :type aws_secret_access_key: string | |
| 715 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 716 | |
| 717 :rtype: :class:`boto.beanstalk.layer1.Layer1` | |
| 718 :return: A connection to Amazon's Elastic Beanstalk service | |
| 719 """ | |
| 720 from boto.beanstalk.layer1 import Layer1 | |
| 721 return Layer1(aws_access_key_id, aws_secret_access_key, **kwargs) | |
| 722 | |
| 723 | |
| 724 def connect_elastictranscoder(aws_access_key_id=None, | |
| 725 aws_secret_access_key=None, | |
| 726 **kwargs): | |
| 727 """ | |
| 728 :type aws_access_key_id: string | |
| 729 :param aws_access_key_id: Your AWS Access Key ID | |
| 730 | |
| 731 :type aws_secret_access_key: string | |
| 732 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 733 | |
| 734 :rtype: :class:`boto.ets.layer1.ElasticTranscoderConnection` | |
| 735 :return: A connection to Amazon's Elastic Transcoder service | |
| 736 """ | |
| 737 from boto.elastictranscoder.layer1 import ElasticTranscoderConnection | |
| 738 return ElasticTranscoderConnection( | |
| 739 aws_access_key_id=aws_access_key_id, | |
| 740 aws_secret_access_key=aws_secret_access_key, | |
| 741 **kwargs) | |
| 742 | |
| 743 | |
| 744 def connect_opsworks(aws_access_key_id=None, | |
| 745 aws_secret_access_key=None, | |
| 746 **kwargs): | |
| 747 from boto.opsworks.layer1 import OpsWorksConnection | |
| 748 return OpsWorksConnection( | |
| 749 aws_access_key_id=aws_access_key_id, | |
| 750 aws_secret_access_key=aws_secret_access_key, | |
| 751 **kwargs) | |
| 752 | |
| 753 | |
| 754 def connect_redshift(aws_access_key_id=None, | |
| 755 aws_secret_access_key=None, | |
| 756 **kwargs): | |
| 757 """ | |
| 758 :type aws_access_key_id: string | |
| 759 :param aws_access_key_id: Your AWS Access Key ID | |
| 760 | |
| 761 :type aws_secret_access_key: string | |
| 762 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 763 | |
| 764 :rtype: :class:`boto.redshift.layer1.RedshiftConnection` | |
| 765 :return: A connection to Amazon's Redshift service | |
| 766 """ | |
| 767 from boto.redshift.layer1 import RedshiftConnection | |
| 768 return RedshiftConnection( | |
| 769 aws_access_key_id=aws_access_key_id, | |
| 770 aws_secret_access_key=aws_secret_access_key, | |
| 771 **kwargs | |
| 772 ) | |
| 773 | |
| 774 | |
| 775 def connect_support(aws_access_key_id=None, | |
| 776 aws_secret_access_key=None, | |
| 777 **kwargs): | |
| 778 """ | |
| 779 :type aws_access_key_id: string | |
| 780 :param aws_access_key_id: Your AWS Access Key ID | |
| 781 | |
| 782 :type aws_secret_access_key: string | |
| 783 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 784 | |
| 785 :rtype: :class:`boto.support.layer1.SupportConnection` | |
| 786 :return: A connection to Amazon's Support service | |
| 787 """ | |
| 788 from boto.support.layer1 import SupportConnection | |
| 789 return SupportConnection( | |
| 790 aws_access_key_id=aws_access_key_id, | |
| 791 aws_secret_access_key=aws_secret_access_key, | |
| 792 **kwargs | |
| 793 ) | |
| 794 | |
| 795 | |
| 796 def connect_cloudtrail(aws_access_key_id=None, | |
| 797 aws_secret_access_key=None, | |
| 798 **kwargs): | |
| 799 """ | |
| 800 Connect to AWS CloudTrail | |
| 801 | |
| 802 :type aws_access_key_id: string | |
| 803 :param aws_access_key_id: Your AWS Access Key ID | |
| 804 | |
| 805 :type aws_secret_access_key: string | |
| 806 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 807 | |
| 808 :rtype: :class:`boto.cloudtrail.layer1.CloudtrailConnection` | |
| 809 :return: A connection to the AWS Cloudtrail service | |
| 810 """ | |
| 811 from boto.cloudtrail.layer1 import CloudTrailConnection | |
| 812 return CloudTrailConnection( | |
| 813 aws_access_key_id=aws_access_key_id, | |
| 814 aws_secret_access_key=aws_secret_access_key, | |
| 815 **kwargs | |
| 816 ) | |
| 817 | |
| 818 | |
| 819 def connect_directconnect(aws_access_key_id=None, | |
| 820 aws_secret_access_key=None, | |
| 821 **kwargs): | |
| 822 """ | |
| 823 Connect to AWS DirectConnect | |
| 824 | |
| 825 :type aws_access_key_id: string | |
| 826 :param aws_access_key_id: Your AWS Access Key ID | |
| 827 | |
| 828 :type aws_secret_access_key: string | |
| 829 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 830 | |
| 831 :rtype: :class:`boto.directconnect.layer1.DirectConnectConnection` | |
| 832 :return: A connection to the AWS DirectConnect service | |
| 833 """ | |
| 834 from boto.directconnect.layer1 import DirectConnectConnection | |
| 835 return DirectConnectConnection( | |
| 836 aws_access_key_id=aws_access_key_id, | |
| 837 aws_secret_access_key=aws_secret_access_key, | |
| 838 **kwargs | |
| 839 ) | |
| 840 | |
| 841 def connect_kinesis(aws_access_key_id=None, | |
| 842 aws_secret_access_key=None, | |
| 843 **kwargs): | |
| 844 """ | |
| 845 Connect to Amazon Kinesis | |
| 846 | |
| 847 :type aws_access_key_id: string | |
| 848 :param aws_access_key_id: Your AWS Access Key ID | |
| 849 | |
| 850 :type aws_secret_access_key: string | |
| 851 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 852 | |
| 853 rtype: :class:`boto.kinesis.layer1.KinesisConnection` | |
| 854 :return: A connection to the Amazon Kinesis service | |
| 855 """ | |
| 856 from boto.kinesis.layer1 import KinesisConnection | |
| 857 return KinesisConnection( | |
| 858 aws_access_key_id=aws_access_key_id, | |
| 859 aws_secret_access_key=aws_secret_access_key, | |
| 860 **kwargs | |
| 861 ) | |
| 862 | |
| 863 def connect_logs(aws_access_key_id=None, | |
| 864 aws_secret_access_key=None, | |
| 865 **kwargs): | |
| 866 """ | |
| 867 Connect to Amazon CloudWatch Logs | |
| 868 | |
| 869 :type aws_access_key_id: string | |
| 870 :param aws_access_key_id: Your AWS Access Key ID | |
| 871 | |
| 872 :type aws_secret_access_key: string | |
| 873 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 874 | |
| 875 rtype: :class:`boto.kinesis.layer1.CloudWatchLogsConnection` | |
| 876 :return: A connection to the Amazon CloudWatch Logs service | |
| 877 """ | |
| 878 from boto.logs.layer1 import CloudWatchLogsConnection | |
| 879 return CloudWatchLogsConnection( | |
| 880 aws_access_key_id=aws_access_key_id, | |
| 881 aws_secret_access_key=aws_secret_access_key, | |
| 882 **kwargs | |
| 883 ) | |
| 884 | |
| 885 | |
| 886 def connect_route53domains(aws_access_key_id=None, | |
| 887 aws_secret_access_key=None, | |
| 888 **kwargs): | |
| 889 """ | |
| 890 Connect to Amazon Route 53 Domains | |
| 891 | |
| 892 :type aws_access_key_id: string | |
| 893 :param aws_access_key_id: Your AWS Access Key ID | |
| 894 | |
| 895 :type aws_secret_access_key: string | |
| 896 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 897 | |
| 898 rtype: :class:`boto.route53.domains.layer1.Route53DomainsConnection` | |
| 899 :return: A connection to the Amazon Route 53 Domains service | |
| 900 """ | |
| 901 from boto.route53.domains.layer1 import Route53DomainsConnection | |
| 902 return Route53DomainsConnection( | |
| 903 aws_access_key_id=aws_access_key_id, | |
| 904 aws_secret_access_key=aws_secret_access_key, | |
| 905 **kwargs | |
| 906 ) | |
| 907 | |
| 908 | |
| 909 def connect_cognito_identity(aws_access_key_id=None, | |
| 910 aws_secret_access_key=None, | |
| 911 **kwargs): | |
| 912 """ | |
| 913 Connect to Amazon Cognito Identity | |
| 914 | |
| 915 :type aws_access_key_id: string | |
| 916 :param aws_access_key_id: Your AWS Access Key ID | |
| 917 | |
| 918 :type aws_secret_access_key: string | |
| 919 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 920 | |
| 921 rtype: :class:`boto.cognito.identity.layer1.CognitoIdentityConnection` | |
| 922 :return: A connection to the Amazon Cognito Identity service | |
| 923 """ | |
| 924 from boto.cognito.identity.layer1 import CognitoIdentityConnection | |
| 925 return CognitoIdentityConnection( | |
| 926 aws_access_key_id=aws_access_key_id, | |
| 927 aws_secret_access_key=aws_secret_access_key, | |
| 928 **kwargs | |
| 929 ) | |
| 930 | |
| 931 | |
| 932 def connect_cognito_sync(aws_access_key_id=None, | |
| 933 aws_secret_access_key=None, | |
| 934 **kwargs): | |
| 935 """ | |
| 936 Connect to Amazon Cognito Sync | |
| 937 | |
| 938 :type aws_access_key_id: string | |
| 939 :param aws_access_key_id: Your AWS Access Key ID | |
| 940 | |
| 941 :type aws_secret_access_key: string | |
| 942 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 943 | |
| 944 rtype: :class:`boto.cognito.sync.layer1.CognitoSyncConnection` | |
| 945 :return: A connection to the Amazon Cognito Sync service | |
| 946 """ | |
| 947 from boto.cognito.sync.layer1 import CognitoSyncConnection | |
| 948 return CognitoSyncConnection( | |
| 949 aws_access_key_id=aws_access_key_id, | |
| 950 aws_secret_access_key=aws_secret_access_key, | |
| 951 **kwargs | |
| 952 ) | |
| 953 | |
| 954 | |
| 955 def connect_kms(aws_access_key_id=None, | |
| 956 aws_secret_access_key=None, | |
| 957 **kwargs): | |
| 958 """ | |
| 959 Connect to AWS Key Management Service | |
| 960 | |
| 961 :type aws_access_key_id: string | |
| 962 :param aws_access_key_id: Your AWS Access Key ID | |
| 963 | |
| 964 :type aws_secret_access_key: string | |
| 965 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 966 | |
| 967 rtype: :class:`boto.kms.layer1.KMSConnection` | |
| 968 :return: A connection to the AWS Key Management Service | |
| 969 """ | |
| 970 from boto.kms.layer1 import KMSConnection | |
| 971 return KMSConnection( | |
| 972 aws_access_key_id=aws_access_key_id, | |
| 973 aws_secret_access_key=aws_secret_access_key, | |
| 974 **kwargs | |
| 975 ) | |
| 976 | |
| 977 | |
| 978 def connect_awslambda(aws_access_key_id=None, | |
| 979 aws_secret_access_key=None, | |
| 980 **kwargs): | |
| 981 """ | |
| 982 Connect to AWS Lambda | |
| 983 | |
| 984 :type aws_access_key_id: string | |
| 985 :param aws_access_key_id: Your AWS Access Key ID | |
| 986 | |
| 987 :type aws_secret_access_key: string | |
| 988 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 989 | |
| 990 rtype: :class:`boto.awslambda.layer1.AWSLambdaConnection` | |
| 991 :return: A connection to the AWS Lambda service | |
| 992 """ | |
| 993 from boto.awslambda.layer1 import AWSLambdaConnection | |
| 994 return AWSLambdaConnection( | |
| 995 aws_access_key_id=aws_access_key_id, | |
| 996 aws_secret_access_key=aws_secret_access_key, | |
| 997 **kwargs | |
| 998 ) | |
| 999 | |
| 1000 | |
| 1001 def connect_codedeploy(aws_access_key_id=None, | |
| 1002 aws_secret_access_key=None, | |
| 1003 **kwargs): | |
| 1004 """ | |
| 1005 Connect to AWS CodeDeploy | |
| 1006 | |
| 1007 :type aws_access_key_id: string | |
| 1008 :param aws_access_key_id: Your AWS Access Key ID | |
| 1009 | |
| 1010 :type aws_secret_access_key: string | |
| 1011 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 1012 | |
| 1013 rtype: :class:`boto.cognito.sync.layer1.CodeDeployConnection` | |
| 1014 :return: A connection to the AWS CodeDeploy service | |
| 1015 """ | |
| 1016 from boto.codedeploy.layer1 import CodeDeployConnection | |
| 1017 return CodeDeployConnection( | |
| 1018 aws_access_key_id=aws_access_key_id, | |
| 1019 aws_secret_access_key=aws_secret_access_key, | |
| 1020 **kwargs | |
| 1021 ) | |
| 1022 | |
| 1023 | |
| 1024 def connect_configservice(aws_access_key_id=None, | |
| 1025 aws_secret_access_key=None, | |
| 1026 **kwargs): | |
| 1027 """ | |
| 1028 Connect to AWS Config | |
| 1029 | |
| 1030 :type aws_access_key_id: string | |
| 1031 :param aws_access_key_id: Your AWS Access Key ID | |
| 1032 | |
| 1033 :type aws_secret_access_key: string | |
| 1034 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 1035 | |
| 1036 rtype: :class:`boto.kms.layer1.ConfigServiceConnection` | |
| 1037 :return: A connection to the AWS Config service | |
| 1038 """ | |
| 1039 from boto.configservice.layer1 import ConfigServiceConnection | |
| 1040 return ConfigServiceConnection( | |
| 1041 aws_access_key_id=aws_access_key_id, | |
| 1042 aws_secret_access_key=aws_secret_access_key, | |
| 1043 **kwargs | |
| 1044 ) | |
| 1045 | |
| 1046 | |
| 1047 def connect_cloudhsm(aws_access_key_id=None, | |
| 1048 aws_secret_access_key=None, | |
| 1049 **kwargs): | |
| 1050 """ | |
| 1051 Connect to AWS CloudHSM | |
| 1052 | |
| 1053 :type aws_access_key_id: string | |
| 1054 :param aws_access_key_id: Your AWS Access Key ID | |
| 1055 | |
| 1056 :type aws_secret_access_key: string | |
| 1057 :param aws_secret_access_key: Your AWS Secret Access Key | |
| 1058 | |
| 1059 rtype: :class:`boto.cloudhsm.layer1.CloudHSMConnection` | |
| 1060 :return: A connection to the AWS CloudHSM service | |
| 1061 """ | |
| 1062 from boto.cloudhsm.layer1 import CloudHSMConnection | |
| 1063 return CloudHSMConnection( | |
| 1064 aws_access_key_id=aws_access_key_id, | |
| 1065 aws_secret_access_key=aws_secret_access_key, | |
| 1066 **kwargs | |
| 1067 ) | |
| 1068 | |
| 1069 | |
| 1070 def connect_ec2containerservice(aws_access_key_id=None, | |
| 1071 aws_secret_access_key=None, | |
| 1072 **kwargs): | |
| 1073 """ | |
| 1074 Connect to Amazon EC2 Container Service | |
| 1075 rtype: :class:`boto.ec2containerservice.layer1.EC2ContainerServiceConnection` | |
| 1076 :return: A connection to the Amazon EC2 Container Service | |
| 1077 """ | |
| 1078 from boto.ec2containerservice.layer1 import EC2ContainerServiceConnection | |
| 1079 return EC2ContainerServiceConnection( | |
| 1080 aws_access_key_id=aws_access_key_id, | |
| 1081 aws_secret_access_key=aws_secret_access_key, | |
| 1082 **kwargs | |
| 1083 ) | |
| 1084 | |
| 1085 | |
| 1086 def connect_machinelearning(aws_access_key_id=None, | |
| 1087 aws_secret_access_key=None, | |
| 1088 **kwargs): | |
| 1089 """ | |
| 1090 Connect to Amazon Machine Learning service | |
| 1091 rtype: :class:`boto.machinelearning.layer1.MachineLearningConnection` | |
| 1092 :return: A connection to the Amazon Machine Learning service | |
| 1093 """ | |
| 1094 from boto.machinelearning.layer1 import MachineLearningConnection | |
| 1095 return MachineLearningConnection( | |
| 1096 aws_access_key_id=aws_access_key_id, | |
| 1097 aws_secret_access_key=aws_secret_access_key, | |
| 1098 **kwargs | |
| 1099 ) | |
| 1100 | |
| 1101 | |
| 1102 def storage_uri(uri_str, default_scheme='file', debug=0, validate=True, | |
| 1103 bucket_storage_uri_class=BucketStorageUri, | |
| 1104 suppress_consec_slashes=True, is_latest=False): | |
| 1105 """ | |
| 1106 Instantiate a StorageUri from a URI string. | |
| 1107 | |
| 1108 :type uri_str: string | |
| 1109 :param uri_str: URI naming bucket + optional object. | |
| 1110 :type default_scheme: string | |
| 1111 :param default_scheme: default scheme for scheme-less URIs. | |
| 1112 :type debug: int | |
| 1113 :param debug: debug level to pass in to boto connection (range 0..2). | |
| 1114 :type validate: bool | |
| 1115 :param validate: whether to check for bucket name validity. | |
| 1116 :type bucket_storage_uri_class: BucketStorageUri interface. | |
| 1117 :param bucket_storage_uri_class: Allows mocking for unit tests. | |
| 1118 :param suppress_consec_slashes: If provided, controls whether | |
| 1119 consecutive slashes will be suppressed in key paths. | |
| 1120 :type is_latest: bool | |
| 1121 :param is_latest: whether this versioned object represents the | |
| 1122 current version. | |
| 1123 | |
| 1124 We allow validate to be disabled to allow caller | |
| 1125 to implement bucket-level wildcarding (outside the boto library; | |
| 1126 see gsutil). | |
| 1127 | |
| 1128 :rtype: :class:`boto.StorageUri` subclass | |
| 1129 :return: StorageUri subclass for given URI. | |
| 1130 | |
| 1131 ``uri_str`` must be one of the following formats: | |
| 1132 | |
| 1133 * gs://bucket/name | |
| 1134 * gs://bucket/name#ver | |
| 1135 * s3://bucket/name | |
| 1136 * gs://bucket | |
| 1137 * s3://bucket | |
| 1138 * filename (which could be a Unix path like /a/b/c or a Windows path like | |
| 1139 C:\a\b\c) | |
| 1140 | |
| 1141 The last example uses the default scheme ('file', unless overridden). | |
| 1142 """ | |
| 1143 version_id = None | |
| 1144 generation = None | |
| 1145 | |
| 1146 # Manually parse URI components instead of using urlparse because | |
| 1147 # what we're calling URIs don't really fit the standard syntax for URIs | |
| 1148 # (the latter includes an optional host/net location part). | |
| 1149 end_scheme_idx = uri_str.find('://') | |
| 1150 if end_scheme_idx == -1: | |
| 1151 scheme = default_scheme.lower() | |
| 1152 path = uri_str | |
| 1153 else: | |
| 1154 scheme = uri_str[0:end_scheme_idx].lower() | |
| 1155 path = uri_str[end_scheme_idx + 3:] | |
| 1156 | |
| 1157 if scheme not in ['file', 's3', 'gs']: | |
| 1158 raise InvalidUriError('Unrecognized scheme "%s"' % scheme) | |
| 1159 if scheme == 'file': | |
| 1160 # For file URIs we have no bucket name, and use the complete path | |
| 1161 # (minus 'file://') as the object name. | |
| 1162 is_stream = False | |
| 1163 if path == '-': | |
| 1164 is_stream = True | |
| 1165 return FileStorageUri(path, debug, is_stream) | |
| 1166 else: | |
| 1167 path_parts = path.split('/', 1) | |
| 1168 bucket_name = path_parts[0] | |
| 1169 object_name = '' | |
| 1170 # If validate enabled, ensure the bucket name is valid, to avoid | |
| 1171 # possibly confusing other parts of the code. (For example if we didn't | |
| 1172 # catch bucket names containing ':', when a user tried to connect to | |
| 1173 # the server with that name they might get a confusing error about | |
| 1174 # non-integer port numbers.) | |
| 1175 if (validate and bucket_name and | |
| 1176 (not BUCKET_NAME_RE.match(bucket_name) | |
| 1177 or TOO_LONG_DNS_NAME_COMP.search(bucket_name))): | |
| 1178 raise InvalidUriError('Invalid bucket name in URI "%s"' % uri_str) | |
| 1179 if scheme == 'gs': | |
| 1180 match = GENERATION_RE.search(path) | |
| 1181 if match: | |
| 1182 md = match.groupdict() | |
| 1183 versionless_uri_str = md['versionless_uri_str'] | |
| 1184 path_parts = versionless_uri_str.split('/', 1) | |
| 1185 generation = int(md['generation']) | |
| 1186 elif scheme == 's3': | |
| 1187 match = VERSION_RE.search(path) | |
| 1188 if match: | |
| 1189 md = match.groupdict() | |
| 1190 versionless_uri_str = md['versionless_uri_str'] | |
| 1191 path_parts = versionless_uri_str.split('/', 1) | |
| 1192 version_id = md['version_id'] | |
| 1193 else: | |
| 1194 raise InvalidUriError('Unrecognized scheme "%s"' % scheme) | |
| 1195 if len(path_parts) > 1: | |
| 1196 object_name = path_parts[1] | |
| 1197 return bucket_storage_uri_class( | |
| 1198 scheme, bucket_name, object_name, debug, | |
| 1199 suppress_consec_slashes=suppress_consec_slashes, | |
| 1200 version_id=version_id, generation=generation, is_latest=is_latest) | |
| 1201 | |
| 1202 | |
| 1203 def storage_uri_for_key(key): | |
| 1204 """Returns a StorageUri for the given key. | |
| 1205 | |
| 1206 :type key: :class:`boto.s3.key.Key` or subclass | |
| 1207 :param key: URI naming bucket + optional object. | |
| 1208 """ | |
| 1209 if not isinstance(key, boto.s3.key.Key): | |
| 1210 raise InvalidUriError('Requested key (%s) is not a subclass of ' | |
| 1211 'boto.s3.key.Key' % str(type(key))) | |
| 1212 prov_name = key.bucket.connection.provider.get_provider_name() | |
| 1213 uri_str = '%s://%s/%s' % (prov_name, key.bucket.name, key.name) | |
| 1214 return storage_uri(uri_str) | |
| 1215 | |
| 1216 boto.plugin.load_plugins(config) |
