| OLD | NEW |
| 1 # Copyright 2010 Google Inc. | 1 # Copyright 2010 Google Inc. |
| 2 # Copyright (c) 2011, Nexenta Systems Inc. | 2 # Copyright (c) 2011, Nexenta Systems Inc. |
| 3 # | 3 # |
| 4 # Permission is hereby granted, free of charge, to any person obtaining a | 4 # Permission is hereby granted, free of charge, to any person obtaining a |
| 5 # copy of this software and associated documentation files (the | 5 # copy of this software and associated documentation files (the |
| 6 # "Software"), to deal in the Software without restriction, including | 6 # "Software"), to deal in the Software without restriction, including |
| 7 # without limitation the rights to use, copy, modify, merge, publish, dis- | 7 # without limitation the rights to use, copy, modify, merge, publish, dis- |
| 8 # tribute, sublicense, and/or sell copies of the Software, and to permit | 8 # tribute, sublicense, and/or sell copies of the Software, and to permit |
| 9 # persons to whom the Software is furnished to do so, subject to the fol- | 9 # persons to whom the Software is furnished to do so, subject to the fol- |
| 10 # lowing conditions: | 10 # lowing conditions: |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 @type new_name: string | 216 @type new_name: string |
| 217 @param new_name: new object name | 217 @param new_name: new object name |
| 218 """ | 218 """ |
| 219 if not self.bucket_name: | 219 if not self.bucket_name: |
| 220 raise InvalidUriError('clone_replace_name() on bucket-less URI %s' % | 220 raise InvalidUriError('clone_replace_name() on bucket-less URI %s' % |
| 221 self.uri) | 221 self.uri) |
| 222 return BucketStorageUri(self.scheme, self.bucket_name, new_name, | 222 return BucketStorageUri(self.scheme, self.bucket_name, new_name, |
| 223 self.debug) | 223 self.debug) |
| 224 | 224 |
| 225 def get_acl(self, validate=True, headers=None, version_id=None): | 225 def get_acl(self, validate=True, headers=None, version_id=None): |
| 226 """returns a bucket's acl""" |
| 226 if not self.bucket_name: | 227 if not self.bucket_name: |
| 227 raise InvalidUriError('get_acl on bucket-less URI (%s)' % self.uri) | 228 raise InvalidUriError('get_acl on bucket-less URI (%s)' % self.uri) |
| 228 bucket = self.get_bucket(validate, headers) | 229 bucket = self.get_bucket(validate, headers) |
| 229 # This works for both bucket- and object- level ACLs (former passes | 230 # This works for both bucket- and object- level ACLs (former passes |
| 230 # key_name=None): | 231 # key_name=None): |
| 231 acl = bucket.get_acl(self.object_name, headers, version_id) | 232 acl = bucket.get_acl(self.object_name, headers, version_id) |
| 232 self.check_response(acl, 'acl', self.uri) | 233 self.check_response(acl, 'acl', self.uri) |
| 233 return acl | 234 return acl |
| 234 | 235 |
| 236 def get_def_acl(self, validate=True, headers=None): |
| 237 """returns a bucket's default object acl""" |
| 238 if not self.bucket_name: |
| 239 raise InvalidUriError('get_acl on bucket-less URI (%s)' % self.uri) |
| 240 bucket = self.get_bucket(validate, headers) |
| 241 # This works for both bucket- and object- level ACLs (former passes |
| 242 # key_name=None): |
| 243 acl = bucket.get_def_acl(self.object_name, headers) |
| 244 self.check_response(acl, 'acl', self.uri) |
| 245 return acl |
| 246 |
| 235 def get_location(self, validate=True, headers=None): | 247 def get_location(self, validate=True, headers=None): |
| 236 if not self.bucket_name: | 248 if not self.bucket_name: |
| 237 raise InvalidUriError('get_location on bucket-less URI (%s)' % | 249 raise InvalidUriError('get_location on bucket-less URI (%s)' % |
| 238 self.uri) | 250 self.uri) |
| 239 bucket = self.get_bucket(validate, headers) | 251 bucket = self.get_bucket(validate, headers) |
| 240 return bucket.get_location() | 252 return bucket.get_location() |
| 241 | 253 |
| 242 def get_subresource(self, subresource, validate=True, headers=None, | 254 def get_subresource(self, subresource, validate=True, headers=None, |
| 243 version_id=None): | 255 version_id=None): |
| 244 if not self.bucket_name: | 256 if not self.bucket_name: |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 return conn.get_all_buckets(headers) | 349 return conn.get_all_buckets(headers) |
| 338 | 350 |
| 339 def get_provider(self): | 351 def get_provider(self): |
| 340 conn = self.connect() | 352 conn = self.connect() |
| 341 provider = conn.provider | 353 provider = conn.provider |
| 342 self.check_response(provider, 'provider', self.uri) | 354 self.check_response(provider, 'provider', self.uri) |
| 343 return provider | 355 return provider |
| 344 | 356 |
| 345 def set_acl(self, acl_or_str, key_name='', validate=True, headers=None, | 357 def set_acl(self, acl_or_str, key_name='', validate=True, headers=None, |
| 346 version_id=None): | 358 version_id=None): |
| 359 """sets or updates a bucket's acl""" |
| 347 if not self.bucket_name: | 360 if not self.bucket_name: |
| 348 raise InvalidUriError('set_acl on bucket-less URI (%s)' % | 361 raise InvalidUriError('set_acl on bucket-less URI (%s)' % |
| 349 self.uri) | 362 self.uri) |
| 350 self.get_bucket(validate, headers).set_acl(acl_or_str, key_name, | 363 self.get_bucket(validate, headers).set_acl(acl_or_str, key_name, |
| 351 headers, version_id) | 364 headers, version_id) |
| 352 | 365 |
| 366 def set_def_acl(self, acl_or_str, key_name='', validate=True, headers=None, |
| 367 version_id=None): |
| 368 """sets or updates a bucket's default object acl""" |
| 369 if not self.bucket_name: |
| 370 raise InvalidUriError('set_acl on bucket-less URI (%s)' % |
| 371 self.uri) |
| 372 self.get_bucket(validate, headers).set_def_acl(acl_or_str, key_name, |
| 373 headers) |
| 374 |
| 353 def set_canned_acl(self, acl_str, validate=True, headers=None, | 375 def set_canned_acl(self, acl_str, validate=True, headers=None, |
| 354 version_id=None): | 376 version_id=None): |
| 377 """sets or updates a bucket's acl to a predefined (canned) value""" |
| 355 if not self.object_name: | 378 if not self.object_name: |
| 356 raise InvalidUriError('set_canned_acl on object-less URI (%s)' % | 379 raise InvalidUriError('set_canned_acl on object-less URI (%s)' % |
| 357 self.uri) | 380 self.uri) |
| 358 key = self.get_key(validate, headers) | 381 key = self.get_key(validate, headers) |
| 359 self.check_response(key, 'key', self.uri) | 382 self.check_response(key, 'key', self.uri) |
| 360 key.set_canned_acl(acl_str, headers, version_id) | 383 key.set_canned_acl(acl_str, headers, version_id) |
| 361 | 384 |
| 385 def set_def_canned_acl(self, acl_str, validate=True, headers=None, |
| 386 version_id=None): |
| 387 """sets or updates a bucket's default object acl to a predefined |
| 388 (canned) value""" |
| 389 if not self.object_name: |
| 390 raise InvalidUriError('set_canned_acl on object-less URI (%s)' % |
| 391 self.uri) |
| 392 key = self.get_key(validate, headers) |
| 393 self.check_response(key, 'key', self.uri) |
| 394 key.set_def_canned_acl(acl_str, headers, version_id) |
| 395 |
| 362 def set_subresource(self, subresource, value, validate=True, headers=None, | 396 def set_subresource(self, subresource, value, validate=True, headers=None, |
| 363 version_id=None): | 397 version_id=None): |
| 364 if not self.bucket_name: | 398 if not self.bucket_name: |
| 365 raise InvalidUriError( | 399 raise InvalidUriError( |
| 366 'set_subresource on bucket-less URI (%s)' % self.uri) | 400 'set_subresource on bucket-less URI (%s)' % self.uri) |
| 367 bucket = self.get_bucket(validate, headers) | 401 bucket = self.get_bucket(validate, headers) |
| 368 bucket.set_subresource(subresource, value, self.object_name, headers, | 402 bucket.set_subresource(subresource, value, self.object_name, headers, |
| 369 version_id) | 403 version_id) |
| 370 | 404 |
| 371 def set_contents_from_string(self, s, headers=None, replace=True, | 405 def set_contents_from_string(self, s, headers=None, replace=True, |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 def is_file_uri(self): | 486 def is_file_uri(self): |
| 453 return True | 487 return True |
| 454 | 488 |
| 455 def is_cloud_uri(self): | 489 def is_cloud_uri(self): |
| 456 return False | 490 return False |
| 457 | 491 |
| 458 def is_stream(self): | 492 def is_stream(self): |
| 459 """Retruns True if this URI represents input/output stream. | 493 """Retruns True if this URI represents input/output stream. |
| 460 """ | 494 """ |
| 461 return self.stream | 495 return self.stream |
| OLD | NEW |