diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 31e623a3..76fc8986 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,24 @@ # Release Notes for pyrax +###2014.06.04 - Version 1.8.2 + + - General + - Changed copyright notices to match the standard by Rackspace Legal. + - Clear old api_key values when re-authenticating. GitHub #383 + + - Cloud Files + - Fixes issue with non-CDN containers. GitHub #254 + - Fixed the subdir listing for Cloud Files. GitHub #342 + - Added a method to fetch DLOs from object storage. + - Added option for specifying headers. GitHub #374 + + - Cloud Monitoring + - Updated the code to use the pyrax.http module. + + - Cloud Networks + - Added special handling for RAX networks. GitHub #381 + + ###2014.05.13 - Version 1.8.1 - General - Restored module-level regions and services attributes. GitHub #371 diff --git a/docs/html/____init_____8py.html b/docs/html/____init_____8py.html index ddcab268..9df88fc0 100644 --- a/docs/html/____init_____8py.html +++ b/docs/html/____init_____8py.html @@ -121,8 +121,6 @@  Use the password stored within the keyring to authenticate.
def authenticate  Generally you will not need to call this directly; passing in your credentials via set_credentials() and set_credential_file() will call authenticate() on the identity object by default.
-def plug_hole_in_swiftclient_auth - This is necessary because swiftclient has an issue when a token expires and it needs to re-authenticate against Rackspace auth.
def clear_credentials  De-authenticate by clearing all the names back to None.
def connect_to_services @@ -203,7 +201,7 @@ diff --git a/docs/html/cf__wrapper_2client_8py.html b/docs/html/cf__wrapper_2client_8py.html index b02c5442..7f7a6b45 100644 --- a/docs/html/cf__wrapper_2client_8py.html +++ b/docs/html/cf__wrapper_2client_8py.html @@ -100,6 +100,8 @@ namespace  pyrax::cf_wrapper::client

Functions

+def plug_hole_in_swiftclient_auth + This is necessary because swiftclient has an issue when a token expires and it needs to re-authenticate against Rackspace auth.
def handle_swiftclient_exception def ensure_cdn

@@ -112,6 +114,7 @@ int CONNECTION_RETRIES = 5 int AUTH_ATTEMPTS = 2 int MAX_BULK_DELETE = 10000 +int DEFAULT_CHUNKSIZE = 65536 tuple no_such_container_pattern tuple no_such_object_pattern = re.compile(r"Object (?:GET|HEAD) failed: .+/(.+) 404") string etag_fail_pat = r"Object PUT failed: .+/([^/]+)/(\S+) 422 Unprocessable Entity" @@ -135,7 +138,7 @@ diff --git a/docs/html/classpyrax_1_1base__identity_1_1BaseIdentity.html b/docs/html/classpyrax_1_1base__identity_1_1BaseIdentity.html index 1e5bd391..58bd122e 100644 --- a/docs/html/classpyrax_1_1base__identity_1_1BaseIdentity.html +++ b/docs/html/classpyrax_1_1base__identity_1_1BaseIdentity.html @@ -880,7 +880,13 @@   - cached = True  + cached = True, + + + + +   + client_class = None  @@ -2127,7 +2133,7 @@ diff --git a/docs/html/classpyrax_1_1cf__wrapper_1_1client_1_1CFClient-members.html b/docs/html/classpyrax_1_1cf__wrapper_1_1client_1_1CFClient-members.html index addb48d4..efeb2d63 100644 --- a/docs/html/classpyrax_1_1cf__wrapper_1_1client_1_1CFClient-members.html +++ b/docs/html/classpyrax_1_1cf__wrapper_1_1client_1_1CFClient-members.html @@ -109,9 +109,11 @@ delete_objectCFClient delete_object_in_secondsCFClient download_objectCFClient + fetch_dloCFClient fetch_objectCFClient fetch_partialCFClient folder_upload_statusCFClient [static] + genCFClient getCFClient [static] get_account_metadataCFClient get_all_containersCFClient [static] @@ -130,6 +132,7 @@ get_temp_url_keyCFClient get_uploadedCFClient http_log_debugCFClient [static] + intervalCFClient listCFClient list_container_namesCFClient [static] list_container_object_namesCFClient [static] @@ -143,6 +146,7 @@ max_file_sizeCFClient [static] move_objectCFClient object_meta_prefixCFClient + processedCFClient purge_cdn_objectCFClient remove_container_from_cacheCFClient remove_container_metadata_keyCFClient @@ -160,6 +164,7 @@ upload_fileCFClient upload_folderCFClient user_agentCFClient [static] + verboseCFClient

 connection  cdn_connectiongenverboseprocessedinterval

Static Public Attributes

 cdn_enabled = False @@ -780,6 +786,50 @@

The directory must exist before calling this method.

If the object name represents a nested folder structure, such as "foo/bar/baz.txt", that folder structure will be created in the target directory by default. If you do not want the nested folders to be created, pass `structure=False` in the parameters.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def fetch_dlo ( self,
 cont,
 name,
 chunk_size = None 
)
+
+
+ +

Returns a list of 2-tuples in the form of (object_name, fetch_generator) representing the components of a multi-part DLO (Dynamic Large Object).

+

Each fetch_generator object can be interated to retrieve its contents.

+

This is useful when transferring a DLO from one object storage system to another. Examples would be copying DLOs from one region of a provider to another, or copying a DLO from one provider to another.

+

Class that takes the generator objects returned by a chunked fetch_object() call and wraps them to behave as file-like objects for uploading.

+
@@ -1541,8 +1591,8 @@
-

Return a list of StorageObjects representing the pseudo-subdirectories in the specified container.

-

You can use the marker and limit params to handle pagination, and the prefix and delimiter params to filter the objects returned.

+

Returns a list of StorageObjects representing the pseudo-subdirectories in the specified container.

+

You can use the marker and limit params to handle pagination, and the prefix param to filter the objects returned. The 'delimiter' parameter is ignored, as the only meaningful value is '/'.

@@ -2357,6 +2407,12 @@   chunk_size = None, + + + +   + headers = None, + @@ -2375,6 +2431,7 @@

Creates a new object in the specified container, and populates it with the given data.

A StorageObject reference to the uploaded file will be returned, unless 'return_none' is set to True.

'chunk_size' represents the number of bytes of data to write; it defaults to 65536. It is used only if the the 'data' parameter is an object with a 'read' method; otherwise, it is ignored.

+

If you wish to specify additional headers to be passed to the PUT request, pass them as a dict in the 'headers' parameter. It is the developer's responsibility to ensure that any headers are valid; pyrax does no checking.

'extra_info' is an optional dictionary which will be populated with 'status', 'reason', and 'headers' keys from the underlying swiftclient call.

@@ -2523,7 +2580,13 @@   - content_length = None  + content_length = None, + + + + +   + headers = None  @@ -2538,6 +2601,7 @@

If no name is supplied, the file's name will be used. Either a file path or an open file-like object may be supplied. A StorageObject reference to the uploaded file will be returned, unless 'return_none' is set to True.

You may optionally set the `content_type` and `content_encoding` parameters; pyrax will create the appropriate headers when the object is stored.

If the size of the file is known, it can be passed as `content_length`.

+

If you wish to specify additional headers to be passed to the PUT request, pass them as a dict in the 'headers' parameter. It is the developer's responsibility to ensure that any headers are valid; pyrax does no checking.

If you wish for the object to be temporary, specify the time it should be stored in seconds in the `ttl` parameter. If this is specified, the object will be deleted after that number of seconds. Returns the size of a file-like object.

@@ -2672,6 +2736,19 @@
+
+ + +
+
+ + + + +
gen
+
+
+
@@ -2698,6 +2775,19 @@
+
+ + +
+
+ + + + +
interval
+
+
+
@@ -2750,6 +2840,32 @@
+
+ + +
+
+ + + + +
processed
+
+
+ +
+
+ +
+
+ + + + +
verbose
+
+
+

Property Documentation

@@ -2803,7 +2919,7 @@ diff --git a/docs/html/classpyrax_1_1fakes_1_1FakeImageClient-members.html b/docs/html/classpyrax_1_1fakes_1_1FakeImageClient-members.html index d8611d37..32ebfd99 100644 --- a/docs/html/classpyrax_1_1fakes_1_1FakeImageClient-members.html +++ b/docs/html/classpyrax_1_1fakes_1_1FakeImageClient-members.html @@ -96,7 +96,8 @@ add_image_tagImageClient authenticateBaseClient change_image_nameImageClient - createBaseClient + createImageClient + pyrax::client::BaseClient.createBaseClient deleteBaseClient delete_image_memberImageClient delete_image_tagImageClient @@ -163,7 +164,7 @@ diff --git a/docs/html/classpyrax_1_1fakes_1_1FakeImageManager-members.html b/docs/html/classpyrax_1_1fakes_1_1FakeImageManager-members.html index e6d45d00..985476f4 100644 --- a/docs/html/classpyrax_1_1fakes_1_1FakeImageManager-members.html +++ b/docs/html/classpyrax_1_1fakes_1_1FakeImageManager-members.html @@ -95,7 +95,8 @@ actionBaseManager add_hookBaseManager apiBaseManager - createBaseManager + createImageManager + pyrax::manager::BaseManager.createBaseManager deleteBaseManager findBaseManager findallBaseManager @@ -130,7 +131,7 @@ diff --git a/docs/html/classpyrax_1_1fakes_1_1FakeRaxIdentity-members.html b/docs/html/classpyrax_1_1fakes_1_1FakeRaxIdentity-members.html index fae0df65..af426516 100644 --- a/docs/html/classpyrax_1_1fakes_1_1FakeRaxIdentity-members.html +++ b/docs/html/classpyrax_1_1fakes_1_1FakeRaxIdentity-members.html @@ -90,15 +90,18 @@
This is the complete list of members for FakeRaxIdentity, including all inherited members. + + +
api_keyRaxIdentity
auth_with_tokenRaxIdentity
authenticateRaxIdentity
authenticatedRaxIdentity
find_user_by_emailRaxIdentity
find_user_by_idRaxIdentity
find_user_by_nameRaxIdentity
get_clientRaxIdentity
get_userRaxIdentity
passwordRaxIdentity
reset_api_keyRaxIdentity
set_credentialsRaxIdentity
update_userRaxIdentity
usernameRaxIdentity
@@ -119,7 +122,7 @@ diff --git a/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity-members.html b/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity-members.html index b930b0a6..e8e57aca 100644 --- a/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity-members.html +++ b/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity-members.html @@ -91,15 +91,18 @@
This is the complete list of members for RaxIdentity, including all inherited members. + + +
api_keyRaxIdentity
auth_with_tokenRaxIdentity
authenticateRaxIdentity
authenticatedRaxIdentity
find_user_by_emailRaxIdentity
find_user_by_idRaxIdentity
find_user_by_nameRaxIdentity
get_clientRaxIdentity
get_userRaxIdentity
passwordRaxIdentity
reset_api_keyRaxIdentity
set_credentialsRaxIdentity
update_userRaxIdentity
usernameRaxIdentity
@@ -120,7 +123,7 @@ diff --git a/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html b/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html index 9f3d577f..96063659 100644 --- a/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html +++ b/docs/html/classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html @@ -124,10 +124,14 @@ + + + + @@ -144,6 +148,7 @@ Public Attributes +

Public Member Functions

def set_credentials
 Sets the username and password directly.
def authenticate
 If the user's credentials include an API key, the default behavior will work.
def auth_with_token
 If a valid token is already known, this call will use it to generate the service catalog.
def get_client
 Returns the client object for the specified service and region.
def find_user_by_name
 Returns a User object by searching for the supplied user name.
def find_user_by_email
 username
 password
 api_key
 authenticated

Detailed Description

@@ -326,6 +331,55 @@

Returns a User object by searching for the supplied user name.

Returns None if there is no match for the given name.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def get_client ( self,
 service,
 region,
 public = True,
 cached = True 
)
+
+
+ +

Returns the client object for the specified service and region.

+

By default the public endpoint is used. If you wish to work with a services internal endpoints, specify `public=False`.

+

By default, if a client has already been created for the given service, region, and public values, that will be returned. To force a new client to be created, pass 'cached=False'.

+
@@ -400,6 +454,60 @@

Returns the newly-created API key.

Resetting an API key does not invalidate any authenticated sessions, nor does it revoke any tokens.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def set_credentials ( self,
 username,
 password = None,
 region = None,
 tenant_id = None,
 authenticate = False 
)
+
+
+ +

Sets the username and password directly.

+

Because Rackspace auth uses the api_key, make sure that any old values are cleared.

+
@@ -462,6 +570,19 @@

Member Data Documentation

+ +
+
+ + + + +
api_key
+
+
+ +
+
@@ -522,7 +643,7 @@ diff --git a/docs/html/classpyrax_1_1image_1_1ImageClient-members.html b/docs/html/classpyrax_1_1image_1_1ImageClient-members.html index 9a1a9e78..840f4078 100644 --- a/docs/html/classpyrax_1_1image_1_1ImageClient-members.html +++ b/docs/html/classpyrax_1_1image_1_1ImageClient-members.html @@ -95,7 +95,8 @@ add_image_tagImageClient authenticateBaseClient change_image_nameImageClient - createBaseClient + createImageClient + pyrax::client::BaseClient.createBaseClient deleteBaseClient delete_image_memberImageClient delete_image_tagImageClient @@ -162,7 +163,7 @@ diff --git a/docs/html/classpyrax_1_1image_1_1ImageClient.html b/docs/html/classpyrax_1_1image_1_1ImageClient.html index 1b2be4e6..d3d6b61c 100644 --- a/docs/html/classpyrax_1_1image_1_1ImageClient.html +++ b/docs/html/classpyrax_1_1image_1_1ImageClient.html @@ -130,6 +130,8 @@  Returns all of the images in one call, rather than in paginated batches.
def update  Accepts an image reference (object or ID) and dictionary of key/value pairs, where the key is an attribute of the image, and the value is the desired new value for that image.
+def create + Creates a new image with the specified name.
def change_image_name  Image name can be changed via the update() method.
def list_image_members @@ -277,6 +279,66 @@

Image name can be changed via the update() method.

This is simply a convenience method.

+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def create ( self,
 name,
 img_format = None,
 data = None,
 container = None,
 obj = None,
 metadata = None 
)
+
+
+ +

Creates a new image with the specified name.

+

The image data can either be supplied directly in the 'data' parameter, or it can be an image stored in the object storage service. In the case of the latter, you can either supply the container and object names, or simply a StorageObject reference.

+
@@ -952,7 +1014,7 @@ diff --git a/docs/html/classpyrax_1_1image_1_1ImageManager-members.html b/docs/html/classpyrax_1_1image_1_1ImageManager-members.html index 76a78902..d85eaffa 100644 --- a/docs/html/classpyrax_1_1image_1_1ImageManager-members.html +++ b/docs/html/classpyrax_1_1image_1_1ImageManager-members.html @@ -94,7 +94,8 @@ actionBaseManager add_hookBaseManager apiBaseManager - createBaseManager + createImageManager + pyrax::manager::BaseManager.createBaseManager deleteBaseManager findBaseManager findallBaseManager @@ -128,7 +129,7 @@ diff --git a/docs/html/classpyrax_1_1image_1_1ImageManager.html b/docs/html/classpyrax_1_1image_1_1ImageManager.html index ebcb1186..7b136d3a 100644 --- a/docs/html/classpyrax_1_1image_1_1ImageManager.html +++ b/docs/html/classpyrax_1_1image_1_1ImageManager.html @@ -127,6 +127,8 @@  Returns a list of resource objects.
def list_all  Returns all of the images in one call, rather than in paginated batches.
+def create + Creates a new image with the specified name.
def update  Accepts an image reference (object or ID) and dictionary of key/value pairs, where the key is an attribute of the image, and the value is the desired new value for that image.
def update_image_member @@ -135,6 +137,74 @@

Detailed Description

Manager class for an Image.


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def create ( self,
 name,
 img_format = None,
 img_container_format = None,
 data = None,
 container = None,
 obj = None,
 metadata = None 
)
+
+
+ +

Creates a new image with the specified name.

+

The image data can either be supplied directly in the 'data' parameter, or it can be an image stored in the object storage service. In the case of the latter, you can either supply the container and object names, or simply a StorageObject reference.

+

You may specify the image and image container formats; if unspecified, the default of "vhd" for image format and "bare" for image container format will be used.

+

NOTE: This is blocking, and may take a while to complete.

+ +
+
@@ -415,7 +485,7 @@ diff --git a/docs/html/functions_0x61.html b/docs/html/functions_0x61.html index 31b3b443..aa306592 100644 --- a/docs/html/functions_0x61.html +++ b/docs/html/functions_0x61.html @@ -198,10 +198,10 @@

- a -

@@ -278,7 +279,7 @@

- a -

@@ -358,7 +360,7 @@

- c -