From f658f30c3a4d8e1522ebd419c6f5d67e817aead7 Mon Sep 17 00:00:00 2001 From: Francis Devereux Date: Fri, 25 Oct 2013 14:53:21 +0100 Subject: [PATCH 01/30] upload_file(): Use basename when deriving the name from a file object --- pyrax/cf_wrapper/client.py | 2 +- tests/unit/test_cf_client.py | 27 ++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/pyrax/cf_wrapper/client.py b/pyrax/cf_wrapper/client.py index b77ac46f..397eee3b 100644 --- a/pyrax/cf_wrapper/client.py +++ b/pyrax/cf_wrapper/client.py @@ -795,7 +795,7 @@ def upload(fileobj, content_type, etag, headers): fname = os.path.basename(file_or_path) else: try: - fname = file_or_path.name + fname = os.path.basename(file_or_path.name) except AttributeError: fname = None if not obj_name: diff --git a/tests/unit/test_cf_client.py b/tests/unit/test_cf_client.py index 9ed02246..37beb93d 100644 --- a/tests/unit/test_cf_client.py +++ b/tests/unit/test_cf_client.py @@ -7,7 +7,7 @@ import unittest import uuid -from mock import ANY, patch +from mock import ANY, call, patch from mock import MagicMock as Mock import pyrax @@ -541,8 +541,21 @@ def test_upload_file(self): client.get_object = gobj - @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) def test_upload_large_file(self): + def call_upload_file(client, cont, tmpname, content_type_type): + client.upload_file(cont, tmpname, content_type=content_type_type) + + self._test_upload_large_file(call_upload_file) + + def test_upload_large_file_from_file_object(self): + def call_upload_file(client, cont, tmpname, content_type_type): + with open(tmpname, "rb") as tmp: + client.upload_file(cont, tmp, content_type=content_type_type) + + self._test_upload_large_file(call_upload_file) + + @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) + def _test_upload_large_file(self, call_upload_file): client = self.client client.connection.head_container = Mock() client.connection.put_object = Mock() @@ -556,10 +569,18 @@ def test_upload_large_file(self): tmp.write(small_file_contents) fname = os.path.basename(tmpname) fake_type = "test/test" - client.upload_file(cont, tmpname, content_type=fake_type) + call_upload_file(client, cont, tmpname, fake_type) # Large files require 1 call for manifest, plus one for each # segment. This should be a 2-segment file upload. self.assertEqual(client.connection.put_object.call_count, 3) + put_calls = client.connection.put_object.mock_calls + self.assertEqual(put_calls[0][1][1], '%s.1' % fname) + self.assertEqual(put_calls[1][1][1], '%s.2' % fname) + self.assertEqual(put_calls[2][1][1], fname) + + # get_object() should be called with the same name that was passed + # to the final put_object() call (to get the object to return) + client.get_object.assert_called_once_with(cont, fname) client.get_object = gobj @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) From f78c025f7939c40e6e46a98cc823445a159d310a Mon Sep 17 00:00:00 2001 From: Francis Devereux Date: Fri, 25 Oct 2013 15:41:34 +0100 Subject: [PATCH 02/30] Fix #231: upload_file() fails when file_or_path is open file larger than 5GB and obj_name is specified The file name (`fname`) was being used as the object name passed to put_object, instead of the object name, `obj_name`. This caused 2 problems: 1) the object name of the uploaded file was not the one the caller asked for 2) the get_object() call at the end of the method failed because it was (correctly) using `obj_name` as the name of the object to get. --- pyrax/cf_wrapper/client.py | 6 +++--- tests/unit/test_cf_client.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/pyrax/cf_wrapper/client.py b/pyrax/cf_wrapper/client.py index 397eee3b..7f83a37b 100644 --- a/pyrax/cf_wrapper/client.py +++ b/pyrax/cf_wrapper/client.py @@ -769,7 +769,7 @@ def upload(fileobj, content_type, etag, headers): # async design. for segment in xrange(num_segments): sequence = str(segment + 1).zfill(digits) - seg_name = "%s.%s" % (fname, sequence) + seg_name = "%s.%s" % (obj_name, sequence) with utils.SelfDeletingTempfile() as tmpname: with open(tmpname, "wb") as tmp: tmp.write(fileobj.read(self.max_file_size)) @@ -781,8 +781,8 @@ def upload(fileobj, content_type, etag, headers): etag=etag, headers=headers, response_dict=extra_info) # Upload the manifest - headers["X-Object-Meta-Manifest"] = "%s." % fname - return self.connection.put_object(cont.name, fname, + headers["X-Object-Meta-Manifest"] = "%s." % obj_name + return self.connection.put_object(cont.name, obj_name, contents=None, headers=headers, response_dict=extra_info) diff --git a/tests/unit/test_cf_client.py b/tests/unit/test_cf_client.py index 37beb93d..1f53ea96 100644 --- a/tests/unit/test_cf_client.py +++ b/tests/unit/test_cf_client.py @@ -583,6 +583,40 @@ def _test_upload_large_file(self, call_upload_file): client.get_object.assert_called_once_with(cont, fname) client.get_object = gobj + @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) + def test_upload_large_file_from_file_object_with_obj_name(self): + client = self.client + client.connection.head_container = Mock() + client.connection.put_object = Mock() + cont = client.get_container(self.cont_name) + gobj = client.get_object + client.get_object = Mock(return_value=self.fake_object) + with utils.SelfDeletingTempfile() as tmpname: + small_file_contents = "Test Value " * 25 + client.max_file_size = len(small_file_contents) - 1 + with open(tmpname, "wb") as tmp: + tmp.write(small_file_contents) + fname = os.path.basename(tmpname) + fake_type = "test/test" + obj_name = 'not the same as filename' + with open(tmpname, "rb") as tmp: + client.upload_file(cont, tmp, + obj_name=obj_name, content_type=fake_type) + # Large files require 1 call for manifest, plus one for each + # segment. This should be a 2-segment file upload. + self.assertEqual(client.connection.put_object.call_count, 3) + put_calls = client.connection.put_object.mock_calls + self.assertEqual(put_calls[0][1][1], '%s.1' % obj_name) + self.assertEqual(put_calls[1][1][1], '%s.2' % obj_name) + self.assertEqual(put_calls[2][1][1], obj_name) + self.assertEqual(put_calls[2][2]["headers"]["X-Object-Meta-Manifest"], + obj_name + ".") + + # get_object() should be called with the same name that was passed + # to the final put_object() call (to get the object to return) + client.get_object.assert_called_once_with(cont, obj_name) + client.get_object = gobj + @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) def test_upload_folder_bad_folder(self): self.assertRaises(exc.FolderNotFound, self.client.upload_folder, From bf162b946e4338b889998eb2646c12b5be5799e5 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Fri, 25 Oct 2013 11:42:39 -0500 Subject: [PATCH 03/30] Removed the default for TTL when posting a message. --- docs/queues.md | 6 +++--- pyrax/queueing.py | 9 +++------ tests/unit/test_queues.py | 5 +++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/queues.md b/docs/queues.md index c0209e2f..72b1689a 100644 --- a/docs/queues.md +++ b/docs/queues.md @@ -56,11 +56,11 @@ Messages can be any type of data, as long as they do not exceed 256 KB in length You need to specify the queue you wish to post to. This can be either the name of the queue, or a `Queue` object. If you already have a `Queue` object reference, you can call its `post_message()` method directly. The call is: - msg = pq.post_message(queue, body[, ttl]) + msg = pq.post_message(queue, body, ttl) # or - msg = queue.post_message(body[, ttl]) + msg = queue.post_message(body, ttl) -Note that there is an optional `ttl` parameter, for specifying the **TTL**, or **Time To Live** for the message. If specified, the value of ttl must be between 60 and 1209600 seconds (14 days). If not specified, a default of 14 days is used. +You must supply both a body and a value for `ttl`. The value of `ttl` must be between 60 and 1209600 seconds (one minute to 14 days). ## Listing Messages in a Queue diff --git a/pyrax/queueing.py b/pyrax/queueing.py index d5c87f30..b8d49aed 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -30,8 +30,6 @@ from pyrax.resource import BaseResource import pyrax.utils as utils -# The default for TTL for messages is 14 days, in seconds. -DAYS_14 = 1209600 # The hard-coded maximum number of messages returned in a single call. MSG_LIMIT = 10 # Pattern for extracting the marker value from an href link. @@ -281,14 +279,13 @@ class QueueMessageManager(BaseQueueManager): """ Manager class for a Queue Message. """ - def _create_body(self, msg, ttl=None): + def _create_body(self, msg, ttl): """ Used to create the dict required to create a new message. """ - if ttl is None: - ttl = DAYS_14 - body = [{"ttl": ttl, + body = [{ "body": msg, + "ttl": ttl, }] return body diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index 4eefed03..c75f9a25 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -282,13 +282,14 @@ def test_queue_msg_mgr_create_body(self): q = self.queue mgr = q._message_manager msg = utils.random_unicode() - ret = mgr._create_body(msg) + ttl = utils.random_unicode() + ret = mgr._create_body(msg, ttl) self.assertTrue(isinstance(ret, list)) self.assertEqual(len(ret), 1) dct = ret[0] self.assertTrue(isinstance(dct, dict)) self.assertEqual(dct["body"], msg) - self.assertEqual(dct["ttl"], pyrax.queueing.DAYS_14) + self.assertEqual(dct["ttl"], ttl) def test_queue_msg_mgr_list(self): q = self.queue From ed0c0cac78d26b518a65dd8f729fddeaeb52b2b5 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Fri, 25 Oct 2013 11:42:39 -0500 Subject: [PATCH 04/30] Removed the default for TTL when posting a message. GitHub #234 --- docs/queues.md | 6 +++--- pyrax/queueing.py | 9 +++------ tests/unit/test_queues.py | 5 +++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/queues.md b/docs/queues.md index c0209e2f..72b1689a 100644 --- a/docs/queues.md +++ b/docs/queues.md @@ -56,11 +56,11 @@ Messages can be any type of data, as long as they do not exceed 256 KB in length You need to specify the queue you wish to post to. This can be either the name of the queue, or a `Queue` object. If you already have a `Queue` object reference, you can call its `post_message()` method directly. The call is: - msg = pq.post_message(queue, body[, ttl]) + msg = pq.post_message(queue, body, ttl) # or - msg = queue.post_message(body[, ttl]) + msg = queue.post_message(body, ttl) -Note that there is an optional `ttl` parameter, for specifying the **TTL**, or **Time To Live** for the message. If specified, the value of ttl must be between 60 and 1209600 seconds (14 days). If not specified, a default of 14 days is used. +You must supply both a body and a value for `ttl`. The value of `ttl` must be between 60 and 1209600 seconds (one minute to 14 days). ## Listing Messages in a Queue diff --git a/pyrax/queueing.py b/pyrax/queueing.py index d5c87f30..b8d49aed 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -30,8 +30,6 @@ from pyrax.resource import BaseResource import pyrax.utils as utils -# The default for TTL for messages is 14 days, in seconds. -DAYS_14 = 1209600 # The hard-coded maximum number of messages returned in a single call. MSG_LIMIT = 10 # Pattern for extracting the marker value from an href link. @@ -281,14 +279,13 @@ class QueueMessageManager(BaseQueueManager): """ Manager class for a Queue Message. """ - def _create_body(self, msg, ttl=None): + def _create_body(self, msg, ttl): """ Used to create the dict required to create a new message. """ - if ttl is None: - ttl = DAYS_14 - body = [{"ttl": ttl, + body = [{ "body": msg, + "ttl": ttl, }] return body diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index 4eefed03..c75f9a25 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -282,13 +282,14 @@ def test_queue_msg_mgr_create_body(self): q = self.queue mgr = q._message_manager msg = utils.random_unicode() - ret = mgr._create_body(msg) + ttl = utils.random_unicode() + ret = mgr._create_body(msg, ttl) self.assertTrue(isinstance(ret, list)) self.assertEqual(len(ret), 1) dct = ret[0] self.assertTrue(isinstance(dct, dict)) self.assertEqual(dct["body"], msg) - self.assertEqual(dct["ttl"], pyrax.queueing.DAYS_14) + self.assertEqual(dct["ttl"], ttl) def test_queue_msg_mgr_list(self): q = self.queue From bd0c9c05809a893aa9de9eedd054620a53f3ade9 Mon Sep 17 00:00:00 2001 From: Francis Devereux Date: Fri, 25 Oct 2013 14:53:21 +0100 Subject: [PATCH 05/30] upload_file(): Use basename when deriving the name from a file object --- pyrax/cf_wrapper/client.py | 2 +- tests/unit/test_cf_client.py | 27 ++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/pyrax/cf_wrapper/client.py b/pyrax/cf_wrapper/client.py index b77ac46f..397eee3b 100644 --- a/pyrax/cf_wrapper/client.py +++ b/pyrax/cf_wrapper/client.py @@ -795,7 +795,7 @@ def upload(fileobj, content_type, etag, headers): fname = os.path.basename(file_or_path) else: try: - fname = file_or_path.name + fname = os.path.basename(file_or_path.name) except AttributeError: fname = None if not obj_name: diff --git a/tests/unit/test_cf_client.py b/tests/unit/test_cf_client.py index 9ed02246..37beb93d 100644 --- a/tests/unit/test_cf_client.py +++ b/tests/unit/test_cf_client.py @@ -7,7 +7,7 @@ import unittest import uuid -from mock import ANY, patch +from mock import ANY, call, patch from mock import MagicMock as Mock import pyrax @@ -541,8 +541,21 @@ def test_upload_file(self): client.get_object = gobj - @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) def test_upload_large_file(self): + def call_upload_file(client, cont, tmpname, content_type_type): + client.upload_file(cont, tmpname, content_type=content_type_type) + + self._test_upload_large_file(call_upload_file) + + def test_upload_large_file_from_file_object(self): + def call_upload_file(client, cont, tmpname, content_type_type): + with open(tmpname, "rb") as tmp: + client.upload_file(cont, tmp, content_type=content_type_type) + + self._test_upload_large_file(call_upload_file) + + @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) + def _test_upload_large_file(self, call_upload_file): client = self.client client.connection.head_container = Mock() client.connection.put_object = Mock() @@ -556,10 +569,18 @@ def test_upload_large_file(self): tmp.write(small_file_contents) fname = os.path.basename(tmpname) fake_type = "test/test" - client.upload_file(cont, tmpname, content_type=fake_type) + call_upload_file(client, cont, tmpname, fake_type) # Large files require 1 call for manifest, plus one for each # segment. This should be a 2-segment file upload. self.assertEqual(client.connection.put_object.call_count, 3) + put_calls = client.connection.put_object.mock_calls + self.assertEqual(put_calls[0][1][1], '%s.1' % fname) + self.assertEqual(put_calls[1][1][1], '%s.2' % fname) + self.assertEqual(put_calls[2][1][1], fname) + + # get_object() should be called with the same name that was passed + # to the final put_object() call (to get the object to return) + client.get_object.assert_called_once_with(cont, fname) client.get_object = gobj @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) From c37d36cf0448281371fcc62089db90c400ccfd63 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 30 Oct 2013 12:30:08 -0500 Subject: [PATCH 06/30] Added support for recent Cloud Databases features. GitHub #216 and #229 --- docs/cloud_databases.md | 64 +++++- pyrax/clouddatabases.py | 189 ++++++++++++++++- pyrax/exceptions.py | 10 +- pyrax/utils.py | 21 +- tests/unit/fakes.py | 8 +- tests/unit/test_cloud_databases.py | 329 +++++++++++++++++++++++++++-- tests/unit/test_utils.py | 31 +++ 7 files changed, 615 insertions(+), 37 deletions(-) diff --git a/docs/cloud_databases.md b/docs/cloud_databases.md index bac8255f..73b96f98 100644 --- a/docs/cloud_databases.md +++ b/docs/cloud_databases.md @@ -25,7 +25,7 @@ To get a list of all your instances, just run: This returns a list of `CloudDatabaseInstance` objects. Assuming that you are just starting out and have not yet created any instances, you get back an empty list. A good first step, then, would be to create an instance. -## Create the Instance +## Create an Instance To create an instance, you need to specify the flavor and volume size for that instance. 'Flavor' refers to the amount of RAM allocated to your instance. Volume size is the disk space available to your instance for storing its data. The volume size is in GB, and must be a whole number between 1 and 50. @@ -131,6 +131,68 @@ which outputs: User: +## Backups +You can create a backup of your instance that can be used to re-create that instance at a later date. The backup is created asynchronously. During the backup process, database writes on MyISAM Databases will be disabled. InnoDB Databases will continue to allow all operations. + +While the instance is being backed up you will not be able to add/delete databases, add/delete users, or delete/stop/reboot the instance. Users can only run one backup at a time. Duplicate requests will receive a 422 error. + +Backups are not deleted when the instance is deleted. You must remove any backups created if you no longer wish to retain them. See the section below on [Deleting a Backup](#deleting-a-backup). + +During backup the files will be streamed to your Cloud Files account. The process creates a container called z_CLOUDDB_BACKUPS and places all the files in it. In order for the restore and deletion of backups to work properly, you should not move, rename, or delete any of the files from this container. You will be charged the normal Cloud Files rate for storage of these files. + +In the unlikely event that the backup fails to perform correctly and is in the state FAILED, there may be some files that were placed in the container. Deleting the failed backup will remove any such files. See the section below on [Deleting a Backup](#deleting-a-backup). + +### Create a Backup +To create a backup, you must specify the instance and a name for the backup. You may optionally supply a text description. The name is limited to 64 characters. If you have a `CloudDatabaseInstance` object, you can make the call directly to its `create_backup()` method. The calls are: + + backup = cdb.create_backup(instance, name[, description=None]) + # - or - + backup = instance.create_backup(name[, description=None]) + +Both of these calls return a `CloudDatabaseBackup` object that represents the backup. You can query its status attribute to determine its progress: + +Status | Description +---- | ---- +NEW | A new backup task was created. +RUNNING | The backup task is currently running. +COMPLETED | The backup task was successfully completed. +FAILED | The backup task failed to complete successfully. + +Like other objects that take time to finish being created, you can also use the `utils.wait_for_build(backup)` method call to either block until the build completes, or pass a callback to be triggered upon completion. + + +## List Backups +There are two ways to list backups: you can either list all the backups, or list just those backups for a particular instance. To get a list of all your backups, call: + + cdb.list_backups() + +To only list the backups for a particular instance, call: + + cdb.list_backups(instance) + +If you have a `CloudDatabaseInstance` object, you can also call its `list_backups()` method to get a listing of all backups for that instance: + + instance.list_backups() + + +## Deleting a Backup +If you no longer wish to keep a backup, you can delete it. This will remove it from your list of available backups, and remove the files from your Cloud Files account. You will need either the backup's ID or the `CloudDatabaseBackup` object for the backup you wish to delete. The call is: + + cdb.delete_backup(backup) + # - or - + backup.delete() + + +## Restoring From a Backup +If you need to create a new instance from one of your backups, you can call the `restore_backup()` method. The call is: + + cdb.restore_backup(backup, name, flavor, volume) + +The parameters are the same as the call to `create()`, with the exception of the `backup` parameter, which must be either a `CloudDatabaseBackup` object, or the ID of one of your backups. See the [Create an Instance](#create-an-instance) section above for the specifics of the other parameters. + +All users/passwords/access that were on the instance at the time of the backup will be restored along with the databases. You can create new users or databases if you want, but they cannot be the same as the ones from the instance that was backed up. + + ## Working with `CloudDatabaseDatabase` and `CloudDatabaseUser` Objects These objects are essentially read-only representations of the underlying MySQL database running in your instance. You cannot update the attributes of these objects and expect them to change anything in the instance. They are useful mostly to determine the state of your database. The one method they have is `delete()`, which causes them to be deleted from their instance. diff --git a/pyrax/clouddatabases.py b/pyrax/clouddatabases.py index efe25aa9..96fe2621 100644 --- a/pyrax/clouddatabases.py +++ b/pyrax/clouddatabases.py @@ -96,6 +96,54 @@ def _create_body(self, name, flavor=None, volume=None, databases=None, return body + def create_backup(self, instance, name, description=None): + """ + Creates a backup of the specified instance, giving it the specified + name along with an optional description. + """ + body = {"backup": { + "instance": utils.get_id(instance), + "name": name, + }} + if description is not None: + body["backup"]["description"] = description + uri = "/backups" + resp, resp_body = self.api.method_post(uri, body=body) + mgr = self.api._backup_manager + return CloudDatabaseBackup(mgr, body.get("backup")) + + + def restore_backup(self, backup, name, flavor, volume): + """ + Restores a backup to a new database instance. You must supply a backup + (either the ID or a CloudDatabaseBackup object), a name for the new + instance, as well as a flavor and volume size (in GB) for the instance. + """ + flavor_ref = self.api._get_flavor_ref(flavor) + body = {"instance": { + "name": name, + "flavorRef": flavor_ref, + "volume": {"size": volume}, + "restorePoint": {"backupRef": utils.get_id(backup)}, + }} + uri = "/%s" % self.uri_base + resp, resp_body = self.api.method_post(uri, body=body) + return CloudDatabaseInstance(self, resp_body.get("instance", {})) + + + def list_backups(self, instance=None): + return self.api._backup_manager.list(instance=instance) + + + def _list_backups_for_instance(self, instance): + uri = "/%s/%s/backups" % (self.uri_base, utils.get_id(instance)) + resp, resp_body = self.api.method_get(uri) + mgr = self.api._backup_manager + return [CloudDatabaseBackup(mgr, backup) + for backup in resp_body.get("backups")] + + + class CloudDatabaseDatabaseManager(BaseManager): """ This class manages communication with databases on Cloud Database instances. @@ -115,12 +163,14 @@ class CloudDatabaseUserManager(BaseManager): This class handles operations on the users in a database on a Cloud Database instance. """ - def _create_body(self, name, password, databases=None, database_names=None): + def _create_body(self, name, password, databases=None, database_names=None, + host=None): db_dicts = [{"name": db} for db in database_names] body = {"users": [ {"name": name, "password": password, "databases": db_dicts, + "host": host, }]} return body @@ -152,13 +202,34 @@ def change_user_password(self, user, new_pass): Returns None upon success; raises PasswordChangeFailed if the call does not complete successfully. """ - user = utils.get_name(user) - body = {"users": [{"name": user, "password": new_pass}]} - uri = "/%s" % self.uri_base + return self.update(user, password=new_pass) + + + def update(self, user, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + if not any((name, password, host)): + raise exc.MissingDBUserParameters("You must supply at least one of " + "the following: new username, new password, or new host " + "specification.") + if not isinstance(user, CloudDatabaseUser): + # Must be the ID/name + user = self.get(user) + dct = {} + if name and (name != user.name): + dct["name"] = name + if host and (host != user.host): + dct["host"] = host + if password: + dct["password"] = password + if not dct: + raise exc.DBUpdateUnchanged("You must supply at least one changed " + "value when updating a user.") + uri = "/%s/%s" % (self.uri_base, user.name) + body = {"user": dct} resp, resp_body = self.api.method_put(uri, body=body) - if resp.status > 299: - raise exc.PasswordChangeFailed("Password for '%s' was not changed" - % user) return None @@ -212,6 +283,27 @@ def revoke_user_access(self, user, db_names, strict=True): +class CloudDatabaseBackupManager(BaseManager): + """ + This class handles operations on backups for a Cloud Database instance. + """ + def _create_body(self, name, instance, description=None): + body = {"backup": { + "instance": utils.get_id(instance), + "name": name, + }} + if description is not None: + body["backup"]["description"] = description + return body + + + def list(self, instance=None): + if instance is None: + return super(CloudDatabaseBackupManager, self).list() + return self.api._manager._list_backups_for_instance(instance) + + + class CloudDatabaseInstance(BaseResource): """ This class represents a MySQL instance in the cloud. @@ -335,6 +427,15 @@ def change_user_password(self, user, new_pass): return self._user_manager.change_user_password(user, new_pass) + def update_user(self, user, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + return self._user_manager.update(user, name=name, password=password, + host=host) + + def list_user_access(self, user): """ Returns a list of all database names for which the specified user @@ -412,6 +513,21 @@ def resize_volume(self, size): self.manager.action(self, "resize", body=body) + def list_backups(self): + """ + Return a list of all backups for this instance. + """ + return self.manager._list_backups_for_instance(self) + + + def create_backup(self, name, description=None): + """ + Creates a backup of this instance, giving it the specified name along + with an optional description. + """ + return self.manager.create_backup(self, name, description=description) + + def _get_flavor(self): try: ret = self._flavor @@ -451,6 +567,8 @@ class CloudDatabaseUser(BaseResource): for instances. """ get_details = False + name = None + host = None def delete(self): """This class doesn't have an 'id', so pass the name.""" @@ -467,6 +585,15 @@ def change_password(self, new_pass): self.manager.change_user_password(self, new_pass) + def update(self, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + return self.manager.update(self, name=name, password=password, + host=host) + + def list_user_access(self): """ Returns a list of all database names for which the specified user @@ -501,6 +628,15 @@ class CloudDatabaseFlavor(BaseResource): +class CloudDatabaseBackup(BaseResource): + """ + This class represents a database backup. + """ + get_details = True + _non_display = ["locationRef"] + + + class CloudDatabaseClient(BaseClient): """ This is the primary class for interacting with Cloud Databases. @@ -518,6 +654,9 @@ def _configure_manager(self): self._flavor_manager = BaseManager(self, resource_class=CloudDatabaseFlavor, response_key="flavor", uri_base="flavors") + self._backup_manager = CloudDatabaseBackupManager(self, + resource_class=CloudDatabaseBackup, response_key="backup", + uri_base="backups") @assure_instance @@ -594,6 +733,16 @@ def change_user_password(self, instance, user, new_pass): return instance.change_user_password(user, new_pass) + @assure_instance + def update_user(self, instance, user, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + return instance.update_user(user, name=name, password=password, + host=host) + + @assure_instance def list_user_access(self, instance, user): """ @@ -699,3 +848,29 @@ def _get_flavor_ref(self, flavor): href = [link["href"] for link in flavor_obj.links if link["rel"] == "self"][0] return href + + + def list_backups(self, instance=None): + return self._backup_manager.list(instance=instance) + + + def get_backup(self, backup): + return self._backup_manager.get(backup) + + + def delete_backup(self, backup): + return self._backup_manager.delete(backup) + + + @assure_instance + def create_backup(self, instance, name, description=None): + return instance.create_backup(name, description=description) + + + def restore_backup(self, backup, name, flavor, volume): + """ + Restores a backup to a new database instance. You must supply a backup + (either the ID or a CloudDatabaseBackup object), a name for the new + instance, as well as a flavor and size (in GB) for the instance. + """ + return self._manager.restore_backup(backup, name, flavor, volume) diff --git a/pyrax/exceptions.py b/pyrax/exceptions.py index 13235f90..a739548b 100644 --- a/pyrax/exceptions.py +++ b/pyrax/exceptions.py @@ -41,6 +41,9 @@ class AuthSystemNotFound(PyraxException): class CDNFailed(PyraxException): pass +class DBUpdateUnchanged(PyraxException): + pass + class DNSCallTimedOut(PyraxException): pass @@ -182,6 +185,9 @@ class MissingAuthSettings(PyraxException): class MissingClaimParameters(PyraxException): pass +class MissingDBUserParameters(PyraxException): + pass + class MissingDNSSettings(PyraxException): pass @@ -324,7 +330,7 @@ class ClientException(PyraxException): """ def __init__(self, code, message=None, details=None, request_id=None): self.code = code - self.message = message or self.__class__.message + self.message = message or "-no error message returned-" self.details = details self.request_id = request_id @@ -332,9 +338,9 @@ def __str__(self): formatted_string = "%s (HTTP %s)" % (self.message, self.code) if self.request_id: formatted_string += " (Request-ID: %s)" % self.request_id - return formatted_string + class BadRequest(ClientException): """ HTTP 400 - Bad request: you sent some malformed data. diff --git a/pyrax/utils.py b/pyrax/utils.py index e81e6d40..2307f846 100644 --- a/pyrax/utils.py +++ b/pyrax/utils.py @@ -329,21 +329,16 @@ def _wait_until(obj, att, desired, callback, interval, attempts, verbose, start = time.time() while infinite or (attempt < attempts): try: - obj.reload() + # For servers: + obj.get() except AttributeError: - # This will happen with cloudservers and cloudfiles, which - # use different client/resource classes. try: - # For servers: - obj.get() + # For other objects that don't support .get() + obj = obj.manager.get(obj.id) except AttributeError: - try: - # For other objects that don't support .get() or .reload() - obj = obj.manager.get(obj.id) - except AttributeError: - # punt - raise exc.NoReloadError("The 'wait_until' method is not " - "supported for '%s' objects." % obj.__class__) + # punt + raise exc.NoReloadError("The 'wait_until' method is not " + "supported for '%s' objects." % obj.__class__) attval = getattr(obj, att) if verbose: elapsed = time.time() - start @@ -370,7 +365,7 @@ def wait_for_build(obj, att=None, desired=None, callback=None, interval=None, to avoid excess polling. """ att = att or "status" - desired = desired or ["ACTIVE", "ERROR", "available"] + desired = desired or ["ACTIVE", "ERROR", "available", "COMPLETED"] interval = interval or 20 attempts = attempts or 0 verbose_atts = verbose_atts or "progress" diff --git a/tests/unit/fakes.py b/tests/unit/fakes.py index df4a3abb..caa72682 100644 --- a/tests/unit/fakes.py +++ b/tests/unit/fakes.py @@ -258,6 +258,9 @@ def __init__(self, *args, **kwargs): def get(self, *args, **kwargs): pass + def list(self, *args, **kwargs): + pass + class FakeDatabaseUser(CloudDatabaseUser): pass @@ -273,7 +276,7 @@ def __init__(self, instance, *args, **kwargs): class FakeDatabaseInstance(CloudDatabaseInstance): def __init__(self, *args, **kwargs): self.id = utils.random_unicode() - self.manager = FakeManager() + self.manager = FakeDatabaseManager() self.manager.api = FakeDatabaseClient() self._database_manager = CloudDatabaseDatabaseManager( FakeDatabaseClient()) @@ -281,11 +284,12 @@ def __init__(self, *args, **kwargs): self.volume = FakeDatabaseVolume(self) -class FakeDatabaseManager(CloudDNSManager): +class FakeDatabaseManager(CloudDatabaseManager): def __init__(self, api=None, *args, **kwargs): if api is None: api = FakeDatabaseClient() super(FakeDatabaseManager, self).__init__(api, *args, **kwargs) + self.uri_base = "instances" class FakeDatabaseClient(CloudDatabaseClient): diff --git a/tests/unit/test_cloud_databases.py b/tests/unit/test_cloud_databases.py index 2f945b6e..d805be48 100644 --- a/tests/unit/test_cloud_databases.py +++ b/tests/unit/test_cloud_databases.py @@ -6,14 +6,15 @@ from mock import patch from mock import MagicMock as Mock -from pyrax.clouddatabases import CloudDatabaseClient +from pyrax.clouddatabases import CloudDatabaseBackupManager from pyrax.clouddatabases import CloudDatabaseDatabase from pyrax.clouddatabases import CloudDatabaseFlavor from pyrax.clouddatabases import CloudDatabaseInstance from pyrax.clouddatabases import CloudDatabaseUser +from pyrax.clouddatabases import CloudDatabaseVolume from pyrax.clouddatabases import assure_instance -from pyrax.clouddatabases import CloudDatabaseUserManager import pyrax.exceptions as exc +from pyrax.resource import BaseResource import pyrax.utils as utils import fakes @@ -99,6 +100,63 @@ def test_get_database_bad(self): self.assertRaises(exc.NoSuchDatabase, inst.get_database, "z") inst.list_databases = sav + def test_dbmgr_get(self): + mgr = fakes.FakeDatabaseManager() + rsrc = fakes.FakeDatabaseInstance() + rsrc.volume = {} + mgr._get = Mock(return_value=rsrc) + ret = mgr.get("fake") + self.assertTrue(isinstance(ret, CloudDatabaseInstance)) + self.assertTrue(isinstance(ret.volume, CloudDatabaseVolume)) + + def test_dbmgr_create_backup(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + description = utils.random_unicode() + mgr.api.method_post = Mock(return_value=(None, {"backup": {}})) + expected_uri = "/backups" + expected_body = {"backup": {"instance": inst.id, "name": name, + "description": description}} + mgr.create_backup(inst, name, description=description) + mgr.api.method_post.assert_called_once_with(expected_uri, + body=expected_body) + + @patch('pyrax.clouddatabases.CloudDatabaseInstance', + new=fakes.FakeDatabaseInstance) + def test_mgr_restore_backup(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + flavor = utils.random_unicode() + fref = utils.random_unicode() + volume = utils.random_unicode() + backup = utils.random_unicode() + mgr.api.method_post = Mock(return_value=(None, {"instance": {}})) + mgr.api._get_flavor_ref = Mock(return_value=fref) + expected_uri = "/%s" % mgr.uri_base + expected_body = {"instance": {"name": name, "flavorRef": fref, + "volume": {"size": volume}, "restorePoint": + {"backupRef": backup}}} + mgr.restore_backup(backup, name, flavor, volume) + mgr.api.method_post.assert_called_once_with(expected_uri, + body=expected_body) + + def test_mgr_list_backups(self): + inst = self.instance + mgr = inst.manager + mgr.api._backup_manager.list = Mock(return_value=(None, None)) + mgr.list_backups(inst) + mgr.api._backup_manager.list.assert_called_once_with(instance=inst) + + def test_mgr_list_backups_for_instance(self): + inst = self.instance + mgr = inst.manager + mgr.api.method_get = Mock(return_value=(None, {"backups": []})) + expected_uri = "/%s/%s/backups" % (mgr.uri_base, inst.id) + mgr._list_backups_for_instance(inst) + mgr.api.method_get.assert_called_once_with(expected_uri) + def test_create_database(self): inst = self.instance sav = inst._database_manager.create @@ -138,6 +196,24 @@ def test_delete_user(self): inst._user_manager.delete.assert_called_once_with("username") inst._user_manager.delete = sav + def test_delete_database_direct(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + db = CloudDatabaseDatabase(mgr, info={"name": name}) + mgr.delete = Mock() + db.delete() + mgr.delete.assert_called_once_with(name) + + def test_delete_user_direct(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + user = CloudDatabaseUser(mgr, info={"name": name}) + mgr.delete = Mock() + user.delete() + mgr.delete.assert_called_once_with(name) + def test_enable_root_user(self): inst = self.instance pw = utils.random_unicode() @@ -208,6 +284,23 @@ def test_volume_get_fail(self): vol = inst.volume self.assertRaises(AttributeError, vol.get, "fake") + def test_inst_list_backups(self): + inst = self.instance + mgr = inst.manager + mgr._list_backups_for_instance = Mock() + inst.list_backups() + mgr._list_backups_for_instance.assert_called_once_with(inst) + + def test_inst_create_backup(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + description = utils.random_unicode() + mgr.create_backup = Mock() + inst.create_backup(name, description=description) + mgr.create_backup.assert_called_once_with(inst, name, + description=description) + def test_get_flavor_property(self): inst = self.instance inst._loaded = True @@ -350,7 +443,7 @@ def test_get_user(self): def test_get_user_fail(self): inst = self.instance bad_name = utils.random_unicode() - inst._user_manager.get = Mock(side_effect=exc.NoSuchDatabaseUser()) + inst._user_manager.get = Mock(side_effect=exc.NotFound("")) self.assertRaises(exc.NoSuchDatabaseUser, inst.get_user, bad_name) def test_get_db_names(self): @@ -390,14 +483,59 @@ def test_get_db_names_fail(self): def test_change_user_password(self): inst = self.instance - fakeuser = utils.random_unicode() - newpass = utils.random_unicode() + fakename = utils.random_ascii() + newpass = utils.random_ascii() resp = fakes.FakeResponse() resp.status = 202 inst._user_manager.api.method_put = Mock(return_value=(resp, {})) - inst.change_user_password(fakeuser, newpass) - inst._user_manager.api.method_put.assert_called_once_with("/None", - body={"users": [{"password": newpass, "name": fakeuser}]}) + fakeuser = fakes.FakeDatabaseUser(inst._user_manager, {"name": fakename}) + inst._user_manager.get = Mock(return_value=fakeuser) + inst.change_user_password(fakename, newpass) + inst._user_manager.api.method_put.assert_called_once_with( + "/None/%s" % fakename, body={"user": {"password": newpass}}) + + def test_update_user(self): + inst = self.instance + mgr = inst._user_manager + user = utils.random_unicode() + name = utils.random_unicode() + password = utils.random_unicode() + host = utils.random_unicode() + mgr.update = Mock() + inst.update_user(user, name=name, password=password, host=host) + mgr.update.assert_called_once_with(user, name=name, password=password, + host=host) + + def test_user_manager_update(self): + inst = self.instance + mgr = inst._user_manager + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + name = utils.random_unicode() + host = utils.random_unicode() + password = utils.random_unicode() + mgr.api.method_put = Mock(return_value=(None, None)) + expected_uri = "/%s/%s" % (mgr.uri_base, username) + expected_body = {"user": {"name": name, "host": host, + "password": password}} + mgr.update(user, name=name, host=host, password=password) + mgr.api.method_put.assert_called_once_with(expected_uri, + body=expected_body) + + def test_user_manager_update_missing(self): + inst = self.instance + mgr = inst._user_manager + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + self.assertRaises(exc.MissingDBUserParameters, mgr.update, user) + + def test_user_manager_update_unchanged(self): + inst = self.instance + mgr = inst._user_manager + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + self.assertRaises(exc.DBUpdateUnchanged, mgr.update, user, + name=username) def test_list_user_access(self): inst = self.instance @@ -409,6 +547,14 @@ def test_list_user_access(self): self.assertEqual(len(db_list), 2) self.assertTrue(db_list[0].name in (dbname1, dbname2)) + def test_list_user_access_not_found(self): + inst = self.instance + mgr = inst._user_manager + mgr.api.method_get = Mock(side_effect=exc.NotFound("")) + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + self.assertRaises(exc.NoSuchDatabaseUser, mgr.list_user_access, user) + def test_grant_user_access(self): inst = self.instance fakeuser = utils.random_ascii() @@ -419,6 +565,17 @@ def test_grant_user_access(self): "/None/%s/databases" % fakeuser, body={"databases": [{"name": dbname1}]}) + def test_grant_user_access_not_found(self): + inst = self.instance + mgr = inst._user_manager + mgr.api.method_put = Mock(side_effect=exc.NotFound("")) + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + db_names = utils.random_unicode() + mgr._get_db_names = Mock(return_value=[]) + self.assertRaises(exc.NoSuchDatabaseUser, mgr.grant_user_access, user, + db_names) + def test_revoke_user_access(self): inst = self.instance fakeuser = utils.random_ascii() @@ -428,6 +585,35 @@ def test_revoke_user_access(self): inst._user_manager.api.method_delete.assert_called_once_with( "/None/%s/databases/%s" % (fakeuser, dbname1)) + def test_backup_mgr_create_body(self): + inst = self.instance + mgr = inst.manager + bu_mgr = mgr.api._backup_manager + name = utils.random_unicode() + description = utils.random_unicode() + expected_body = {"backup": {"instance": inst.id, "name": name, + "description": description}} + ret = bu_mgr._create_body(name, inst, description=description) + self.assertEqual(ret, expected_body) + + def test_backup_mgr_list(self): + inst = self.instance + mgr = inst.manager + bu_mgr = mgr.api._backup_manager + fake_val = utils.random_unicode() + bu_mgr._list = Mock(return_value=fake_val) + ret = bu_mgr.list() + self.assertEqual(ret, fake_val) + + def test_backup_mgr_list_instance(self): + inst = self.instance + mgr = inst.manager + bu_mgr = mgr.api._backup_manager + db_mgr = mgr.api._manager + db_mgr._list_backups_for_instance = Mock() + bu_mgr.list(instance=inst) + db_mgr._list_backups_for_instance.assert_called_once_with(inst) + def test_clt_change_user_password(self): clt = self.client inst = self.instance @@ -437,6 +623,39 @@ def test_clt_change_user_password(self): clt.change_user_password(inst, user, pw) inst.change_user_password.assert_called_once_with(user, pw) + def test_user_change_password(self): + inst = self.instance + mgr = inst.manager + password = utils.random_unicode() + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + mgr.change_user_password = Mock() + user.change_password(password) + mgr.change_user_password.assert_called_once_with(user, password) + + def test_clt_update_user(self): + clt = self.client + inst = self.instance + inst.update_user = Mock() + user = utils.random_unicode() + name = utils.random_unicode() + password = utils.random_unicode() + host = utils.random_unicode() + clt.update_user(inst, user, name=name, password=password, host=host) + inst.update_user.assert_called_once_with(user, name=name, + password=password, host=host) + + def test_user_update(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + password = utils.random_unicode() + host = utils.random_unicode() + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + mgr.update = Mock() + user.update(name=name, password=password, host=host) + mgr.update.assert_called_once_with(user, name=name, password=password, + host=host) + def test_clt_list_user_access(self): clt = self.client inst = self.instance @@ -445,6 +664,14 @@ def test_clt_list_user_access(self): clt.list_user_access(inst, user) inst.list_user_access.assert_called_once_with(user) + def test_user_list_user_access(self): + inst = self.instance + mgr = inst.manager + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + mgr.list_user_access = Mock() + user.list_user_access() + mgr.list_user_access.assert_called_once_with(user) + def test_clt_grant_user_access(self): clt = self.client inst = self.instance @@ -455,6 +682,17 @@ def test_clt_grant_user_access(self): inst.grant_user_access.assert_called_once_with(user, db_names, strict=True) + def test_user_grant_user_access(self): + inst = self.instance + mgr = inst.manager + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + db_names = utils.random_unicode() + strict = utils.random_unicode() + mgr.grant_user_access = Mock() + user.grant_user_access(db_names, strict=strict) + mgr.grant_user_access.assert_called_once_with(user, db_names, + strict=strict) + def test_clt_revoke_user_access(self): clt = self.client inst = self.instance @@ -465,6 +703,17 @@ def test_clt_revoke_user_access(self): inst.revoke_user_access.assert_called_once_with(user, db_names, strict=True) + def test_user_revoke_user_access(self): + inst = self.instance + mgr = inst.manager + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + db_names = utils.random_unicode() + strict = utils.random_unicode() + mgr.revoke_user_access = Mock() + user.revoke_user_access(db_names, strict=strict) + mgr.revoke_user_access.assert_called_once_with(user, db_names, + strict=strict) + def test_clt_restart(self): clt = self.client inst = self.instance @@ -474,7 +723,7 @@ def test_clt_restart(self): @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) - def test_resize_for_instance(self): + def test_inst_resize(self): clt = self.client inst = self.instance sav = inst.resize @@ -552,7 +801,7 @@ def test_get_flavor_ref_for_name(self): clt.list_flavors = sav_list @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) - def test_get_flavor_ref_for_name(self): + def test_get_flavor_ref_for_ram(self): clt = self.client info = {"id": 1, "name": "test_flavor", @@ -588,6 +837,58 @@ def test_get_flavor_ref_not_found(self): clt.get_flavor = sav_get clt.list_flavors = sav_list + def test_clt_list_backups(self): + clt = self.client + mgr = clt._backup_manager + mgr.list = Mock() + clt.list_backups() + mgr.list.assert_called_once_with(instance=None) + + def test_clt_list_backups_for_instance(self): + clt = self.client + mgr = clt._backup_manager + mgr.list = Mock() + inst = utils.random_unicode() + clt.list_backups(instance=inst) + mgr.list.assert_called_once_with(instance=inst) + + def test_clt_get_backup(self): + clt = self.client + mgr = clt._backup_manager + mgr.get = Mock() + backup = utils.random_unicode() + clt.get_backup(backup) + mgr.get.assert_called_once_with(backup) + + def test_clt_delete_backup(self): + clt = self.client + mgr = clt._backup_manager + mgr.delete = Mock() + backup = utils.random_unicode() + clt.delete_backup(backup) + mgr.delete.assert_called_once_with(backup) + + def test_clt_create_backup(self): + clt = self.client + inst = self.instance + name = utils.random_unicode() + description = utils.random_unicode() + inst.create_backup = Mock() + clt.create_backup(inst, name, description=description) + inst.create_backup.assert_called_once_with(name, + description=description) + + def test_clt_restore_backup(self): + clt = self.client + mgr = clt._manager + backup = utils.random_unicode() + name = utils.random_unicode() + flavor = utils.random_unicode() + volume = utils.random_unicode() + mgr.restore_backup = Mock() + clt.restore_backup(backup, name, flavor, volume) + mgr.restore_backup.assert_called_once_with(backup, name, flavor, volume) + @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_create_body_db(self): mgr = self.instance._database_manager @@ -604,12 +905,16 @@ def test_create_body_user(self): inst = self.instance mgr = inst._user_manager nm = utils.random_unicode() + host = utils.random_unicode() pw = utils.random_unicode() - ret = mgr._create_body(nm, password=pw, database_names=[]) + dbnames = [utils.random_unicode(), utils.random_unicode()] + ret = mgr._create_body(nm, host=host, password=pw, + database_names=dbnames) expected = {"users": [ {"name": nm, "password": pw, - "databases": []}]} + "host": host, + "databases": [{"name": dbnames[0]}, {"name": dbnames[1]}]}]} self.assertEqual(ret, expected) @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index fc2ca8a0..6f72209f 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -310,6 +310,22 @@ def utcoffset(self, dt): self.assertEqual(utils.iso_time_string(dt, show_tzinfo=False), "1999-12-31T23:59:59") + def test_rfc2822_format(self): + now = datetime.datetime.now() + now_year = str(now.year) + fmtd = utils.rfc2822_format(now) + self.assertTrue(now_year in fmtd) + + def test_rfc2822_format_str(self): + now = str(datetime.datetime.now()) + fmtd = utils.rfc2822_format(now) + self.assertEqual(fmtd, now) + + def test_rfc2822_format_fail(self): + now = {} + fmtd = utils.rfc2822_format(now) + self.assertEqual(fmtd, now) + def test_match_pattern(self): ignore_pat = "*.bad" self.assertTrue(utils.match_pattern("some.bad", ignore_pat)) @@ -338,6 +354,21 @@ class ObjWithName(object): self.assertEqual(utils.get_name(obj.name), nm) self.assertRaises(exc.MissingName, utils.get_name, object()) + def test_params_to_dict(self): + dct = {} + k1 = utils.random_unicode() + k2 = utils.random_unicode() + k3 = utils.random_unicode() + k4 = utils.random_unicode() + v1 = utils.random_unicode() + v2 = utils.random_unicode() + v3 = utils.random_unicode() + local = {k1: v1, k2: v2, k3: v3} + params = [k2, k3, k4] + expected = {k2: v2, k3: v3} + utils.params_to_dict(params, dct, local) + self.assertEqual(dct, expected) + def test_import_class(self): cls_string = "tests.unit.fakes.FakeManager" ret = utils.import_class(cls_string) From 03b732b9b3b5ece3dd0bec10c22c36154279a30a Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Thu, 31 Oct 2013 10:40:48 -0500 Subject: [PATCH 07/30] Added some missing docstrings. --- pyrax/clouddatabases.py | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/pyrax/clouddatabases.py b/pyrax/clouddatabases.py index 96fe2621..4533f832 100644 --- a/pyrax/clouddatabases.py +++ b/pyrax/clouddatabases.py @@ -47,12 +47,19 @@ def __init__(self, instance, info): for key, val in info.items(): setattr(self, key, val) + def resize(self, size): + """ + Resize the volume to the specified size (in GB). + """ self.instance.resize_volume(size) self.size = size + def get(self, att): - # For backwards compatibility + """ + For compatibility with regular resource objects. + """ return getattr(self, att) @@ -132,10 +139,18 @@ def restore_backup(self, backup, name, flavor, volume): def list_backups(self, instance=None): + """ + Returns a list of all backups by default, or just for a particular + instance. + """ return self.api._backup_manager.list(instance=instance) def _list_backups_for_instance(self, instance): + """ + Instance-specific backups are handled through the instance manager, + not the backup manager. + """ uri = "/%s/%s/backups" % (self.uri_base, utils.get_id(instance)) resp, resp_body = self.api.method_get(uri) mgr = self.api._backup_manager @@ -298,6 +313,10 @@ def _create_body(self, name, instance, description=None): def list(self, instance=None): + """ + Return a list of all backups by default, or just for a particular + instance. + """ if instance is None: return super(CloudDatabaseBackupManager, self).list() return self.api._manager._list_backups_for_instance(instance) @@ -515,7 +534,7 @@ def resize_volume(self, size): def list_backups(self): """ - Return a list of all backups for this instance. + Returns a list of all backups for this instance. """ return self.manager._list_backups_for_instance(self) @@ -851,19 +870,33 @@ def _get_flavor_ref(self, flavor): def list_backups(self, instance=None): + """ + Returns a list of all backups by default, or just for a particular + instance. + """ return self._backup_manager.list(instance=instance) def get_backup(self, backup): + """ + Returns the CloudDatabaseBackup instance for a given ID. + """ return self._backup_manager.get(backup) def delete_backup(self, backup): + """ + Deletes the CloudDatabaseBackup instance for a given ID. + """ return self._backup_manager.delete(backup) @assure_instance def create_backup(self, instance, name, description=None): + """ + Creates a backup of the specified instance, giving it the specified + name along with an optional description. + """ return instance.create_backup(name, description=description) From 7d93e00e0ce6f8b3642b8cab2adf3d596404d5bc Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Thu, 31 Oct 2013 10:41:22 -0500 Subject: [PATCH 08/30] Updated version and release notes. --- RELEASENOTES.md | 11 +++++++++++ pyrax/version.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 458848ee..2aa6a889 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,16 @@ # Release Notes for pyrax +###2013.10.31 - Version 1.6.1 + - Cloud Databases: + - Added support for Backups. GitHub #216 + - Added ability to specify 'host' parameter for users. GitHub #229 + - Added ability to update users. + - Queues: + - Removed default TTL for messages. GitHub #234 + - Cloud Files: + - Fixed large file upload bug. GitHub #231 + - Fixed file naming bug. GitHub #232 + ###2013.10.24 - Version 1.6.0 - New: - Added support for **Cloud Queues** (Marconi). diff --git a/pyrax/version.py b/pyrax/version.py index 3b166917..5fde3200 100644 --- a/pyrax/version.py +++ b/pyrax/version.py @@ -1,4 +1,4 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -version = "1.6.0" +version = "1.6.1" From 55550117c7dcedec98089ddf30eee61cd462921f Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Thu, 31 Oct 2013 10:48:28 -0500 Subject: [PATCH 09/30] Updated the class docs --- docs/html/annotated.html | 6 +- docs/html/classes.html | 106 ++++---- ...abases_1_1CloudDatabaseBackup-members.html | 131 ++++++++++ ...clouddatabases_1_1CloudDatabaseBackup.html | 172 +++++++++++++ ...1clouddatabases_1_1CloudDatabaseBackup.png | Bin 0 -> 494 bytes ...1_1CloudDatabaseBackupManager-members.html | 134 ++++++++++ ...tabases_1_1CloudDatabaseBackupManager.html | 187 ++++++++++++++ ...atabases_1_1CloudDatabaseBackupManager.png | Bin 0 -> 600 bytes ...abases_1_1CloudDatabaseClient-members.html | 8 +- ...clouddatabases_1_1CloudDatabaseClient.html | 243 +++++++++++++++++- ...ases_1_1CloudDatabaseInstance-members.html | 5 +- ...ouddatabases_1_1CloudDatabaseInstance.html | 109 +++++++- ...bases_1_1CloudDatabaseManager-members.html | 5 +- ...louddatabases_1_1CloudDatabaseManager.html | 126 ++++++++- ...atabases_1_1CloudDatabaseUser-members.html | 5 +- ..._1clouddatabases_1_1CloudDatabaseUser.html | 73 +++++- ...s_1_1CloudDatabaseUserManager-members.html | 3 +- ...databases_1_1CloudDatabaseUserManager.html | 51 +++- ...clouddatabases_1_1CloudDatabaseVolume.html | 8 +- ...ax_1_1exceptions_1_1DBUpdateUnchanged.html | 142 ++++++++++ ...rax_1_1exceptions_1_1DBUpdateUnchanged.png | Bin 0 -> 494 bytes ...exceptions_1_1MissingDBUserParameters.html | 142 ++++++++++ ...1exceptions_1_1MissingDBUserParameters.png | Bin 0 -> 562 bytes ...pyrax_1_1exceptions_1_1PyraxException.html | 182 ++++++------- ...spyrax_1_1exceptions_1_1PyraxException.png | Bin 27726 -> 28318 bytes .../classpyrax_1_1manager_1_1BaseManager.html | 23 +- .../classpyrax_1_1manager_1_1BaseManager.png | Bin 4687 -> 5055 bytes ...lasspyrax_1_1resource_1_1BaseResource.html | 43 ++-- ...classpyrax_1_1resource_1_1BaseResource.png | Bin 7183 -> 7467 bytes docs/html/clouddatabases_8py.html | 6 +- docs/html/exceptions_8py.html | 4 +- docs/html/functions_0x63.html | 39 +-- docs/html/functions_0x64.html | 41 +-- docs/html/functions_0x67.html | 52 ++-- docs/html/functions_0x68.html | 29 ++- docs/html/functions_0x6c.html | 50 ++-- docs/html/functions_0x6e.html | 15 +- docs/html/functions_0x72.html | 22 +- docs/html/functions_0x75.html | 59 +++-- docs/html/functions_func_0x63.html | 23 +- docs/html/functions_func_0x64.html | 47 ++-- docs/html/functions_func_0x67.html | 69 ++--- docs/html/functions_func_0x6c.html | 48 ++-- docs/html/functions_func_0x72.html | 14 +- docs/html/functions_func_0x75.html | 66 ++--- docs/html/functions_vars_0x67.html | 3 +- docs/html/functions_vars_0x68.html | 19 +- docs/html/functions_vars_0x6e.html | 9 +- docs/html/hierarchy.html | 6 +- docs/html/namespacemembers.html | 5 +- docs/html/namespacemembers_vars.html | 5 +- .../namespacepyrax_1_1clouddatabases.html | 6 +- docs/html/namespacepyrax_1_1exceptions.html | 4 +- docs/html/namespacepyrax_1_1queueing.html | 16 +- docs/html/namespacepyrax_1_1version.html | 6 +- docs/html/queueing_8py.html | 3 +- docs/html/search/all_63.js | 7 +- docs/html/search/all_64.js | 3 +- docs/html/search/all_67.js | 3 +- docs/html/search/all_68.js | 1 + docs/html/search/all_6c.js | 3 +- docs/html/search/all_6d.js | 1 + docs/html/search/all_6e.js | 2 +- docs/html/search/all_72.js | 1 + docs/html/search/all_75.js | 4 +- docs/html/search/classes_63.js | 2 + docs/html/search/classes_64.js | 1 + docs/html/search/classes_6d.js | 1 + docs/html/search/functions_63.js | 1 + docs/html/search/functions_64.js | 1 + docs/html/search/functions_67.js | 1 + docs/html/search/functions_6c.js | 3 +- docs/html/search/functions_72.js | 1 + docs/html/search/functions_75.js | 4 +- docs/html/search/variables_64.js | 1 - docs/html/search/variables_67.js | 2 +- docs/html/search/variables_68.js | 1 + docs/html/search/variables_6e.js | 2 +- docs/html/version_8py.html | 4 +- 79 files changed, 2112 insertions(+), 508 deletions(-) create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.png create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager-members.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.png create mode 100644 docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html create mode 100644 docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.png create mode 100644 docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html create mode 100644 docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.png diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 6d780430..a7c7f300 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -108,6 +108,8 @@ CloudBlockStorageSnapshotManagerManager class for Cloud Block Storage CloudBlockStorageVolumeThis class represents a Block Storage volume CloudBlockStorageVolumeTypeThis class represents a Block Storage Volume Type + CloudDatabaseBackupThis class represents a database backup + CloudDatabaseBackupManagerThis class handles operations on backups for a Cloud Database instance CloudDatabaseClientThis is the primary class for interacting with Cloud Databases CloudDatabaseDatabaseThis class represents a database on a CloudDatabaseInstance CloudDatabaseDatabaseManagerThis class manages communication with databases on Cloud Database instances @@ -142,6 +144,7 @@ CloudNetworkManagerDoes nothing special, but is used in testing ConnectionThis class wraps the swiftclient connection, adding support for CDN ContainerRepresents a CloudFiles container + DBUpdateUnchanged DNSCallTimedOut DomainCreationFailed DomainDeletionFailed @@ -195,6 +198,7 @@ KeystoneIdentityImplements the Keystone-specific behaviors for Identity MissingAuthSettings MissingClaimParameters + MissingDBUserParameters MissingDNSSettings MissingHealthMonitorSettings MissingLoadBalancerParameters @@ -283,7 +287,7 @@ diff --git a/docs/html/classes.html b/docs/html/classes.html index 8f6fa13b..7280c816 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -85,70 +85,70 @@
A | B | C | D | E | F | H | I | K | M | N | O | P | Q | R | S | T | U | V | _
- - + + + + + + - - - + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + - - - + + - - - + + - - - + + - - - - - + + + + - - - - - - - + +
  A  
-
CloudLoadBalancerClient (pyrax.cloudloadbalancers)   Forbidden (pyrax.exceptions)   MissingMonitoringCheckGranularity (pyrax.exceptions)   QueueMessage (pyrax.queueing)   
CloudLoadBalancerManager (pyrax.cloudloadbalancers)   
  H  
-
MissingName (pyrax.exceptions)   QueueMessageManager (pyrax.queueing)   
AccessListIDNotFound (pyrax.exceptions)   CloudMonitorAlarm (pyrax.cloudmonitoring)   MissingTemporaryURLKey (pyrax.exceptions)   
  R  
+
CloudDNSRecord (pyrax.clouddns)   FlavorNotFound (pyrax.exceptions)   MissingDNSSettings (pyrax.exceptions)   QueueClaimManager (pyrax.queueing)   
CloudLoadBalancer (pyrax.cloudloadbalancers)   FolderNotFound (pyrax.exceptions)   MissingHealthMonitorSettings (pyrax.exceptions)   QueueClient (pyrax.queueing)   
AccessListIDNotFound (pyrax.exceptions)   CloudLoadBalancerClient (pyrax.cloudloadbalancers)   FolderUploader (pyrax.cf_wrapper.client)   MissingLoadBalancerParameters (pyrax.exceptions)   QueueClientIDNotDefined (pyrax.exceptions)   
AmbiguousEndpoints (pyrax.exceptions)   CloudLoadBalancerManager (pyrax.cloudloadbalancers)   Forbidden (pyrax.exceptions)   MissingMonitoringCheckDetails (pyrax.exceptions)   QueueManager (pyrax.queueing)   
AuthenticationFailed (pyrax.exceptions)   CloudMonitorAlarm (pyrax.cloudmonitoring)   
  H  
+
MissingMonitoringCheckGranularity (pyrax.exceptions)   QueueMessage (pyrax.queueing)   
AuthorizationFailure (pyrax.exceptions)   CloudMonitorCheck (pyrax.cloudmonitoring)   MissingName (pyrax.exceptions)   QueueMessageManager (pyrax.queueing)   
AuthSystemNotFound (pyrax.exceptions)   CloudMonitorCheckType (pyrax.cloudmonitoring)   HTTPNotImplemented (pyrax.exceptions)   MissingTemporaryURLKey (pyrax.exceptions)   
  R  
AmbiguousEndpoints (pyrax.exceptions)   CloudMonitorCheck (pyrax.cloudmonitoring)   HTTPNotImplemented (pyrax.exceptions)   MonitoringCheckTargetNotSpecified (pyrax.exceptions)   
AuthenticationFailed (pyrax.exceptions)   CloudMonitorCheckType (pyrax.cloudmonitoring)   
  I  
-
MonitoringZonesPollMissing (pyrax.exceptions)   RaxIdentity (pyrax.identity.rax_identity)   
AuthorizationFailure (pyrax.exceptions)   CloudMonitorClient (pyrax.cloudmonitoring)   
  N  
+
AutoScaleClient (pyrax.autoscale)   CloudMonitorClient (pyrax.cloudmonitoring)   
  I  
+
MonitoringCheckTargetNotSpecified (pyrax.exceptions)   
AutoScalePolicy (pyrax.autoscale)   CloudMonitorEntity (pyrax.cloudmonitoring)   MonitoringZonesPollMissing (pyrax.exceptions)   RaxIdentity (pyrax.identity.rax_identity)   
AutoScaleWebhook (pyrax.autoscale)   CloudMonitorEntityManager (pyrax.cloudmonitoring)   IdentityClassNotDefined (pyrax.exceptions)   
  N  
RecordResultsIterator (pyrax.clouddns)   
AuthSystemNotFound (pyrax.exceptions)   CloudMonitorEntity (pyrax.cloudmonitoring)   IdentityClassNotDefined (pyrax.exceptions)   ResultsIterator (pyrax.clouddns)   
AutoScaleClient (pyrax.autoscale)   CloudMonitorEntityManager (pyrax.cloudmonitoring)   InvalidCDNMetadata (pyrax.exceptions)   NetworkCIDRInvalid (pyrax.exceptions)   
  S  
-
AutoScalePolicy (pyrax.autoscale)   CloudMonitorNotification (pyrax.cloudmonitoring)   InvalidConfigurationFile (pyrax.exceptions)   NetworkCIDRMalformed (pyrax.exceptions)   
AutoScaleWebhook (pyrax.autoscale)   CloudMonitorNotificationManager (pyrax.cloudmonitoring)   InvalidCredentialFile (pyrax.exceptions)   NetworkCountExceeded (pyrax.exceptions)   ScalingGroup (pyrax.autoscale)   
  B  
-
CloudMonitorNotificationPlan (pyrax.cloudmonitoring)   InvalidDateTimeString (pyrax.exceptions)   NetworkInUse (pyrax.exceptions)   ScalingGroupManager (pyrax.autoscale)   
CloudMonitorNotificationPlanManager (pyrax.cloudmonitoring)   InvalidDeviceType (pyrax.exceptions)   NetworkLabelNotUnique (pyrax.exceptions)   SelfDeletingTempDirectory (pyrax.utils)   
BadRequest (pyrax.exceptions)   CloudMonitorNotificationType (pyrax.cloudmonitoring)   InvalidEmail (pyrax.exceptions)   NetworkNotFound (pyrax.exceptions)   SelfDeletingTempfile (pyrax.utils)   
BaseAuth (pyrax.base_identity)   CloudMonitorZone (pyrax.cloudmonitoring)   InvalidLoadBalancer (pyrax.exceptions)   Node (pyrax.cloudloadbalancers)   ServiceCatalog (pyrax.service_catalog)   
BaseClient (pyrax.client)   CloudNetwork (pyrax.cloudnetworks)   InvalidLoadBalancerParameters (pyrax.exceptions)   NoMoreResults (pyrax.exceptions)   ServiceNotAvailable (pyrax.exceptions)   
BaseManager (pyrax.manager)   CloudNetworkClient (pyrax.cloudnetworks)   InvalidMonitoringCheckDetails (pyrax.exceptions)   NoReloadError (pyrax.exceptions)   Settings (pyrax)   
BaseQueueManager (pyrax.queueing)   CloudNetworkManager (pyrax.cloudnetworks)   InvalidMonitoringCheckUpdate (pyrax.exceptions)   NoSSLTerminationConfiguration (pyrax.exceptions)   SnapshotNotAvailable (pyrax.exceptions)   
BaseResource (pyrax.resource)   Connection (pyrax.cf_wrapper.client)   InvalidMonitoringMetricsRequest (pyrax.exceptions)   NoSuchContainer (pyrax.exceptions)   StorageObject (pyrax::cf_wrapper::storage_object)   
BulkDeleter (pyrax.cf_wrapper.client)   Container (pyrax.cf_wrapper.container)   InvalidMonitoringMetricsResolution (pyrax.exceptions)   NoSuchDatabase (pyrax.exceptions)   SubdomainResultsIterator (pyrax.clouddns)   
CloudMonitorNotification (pyrax.cloudmonitoring)   InvalidCDNMetadata (pyrax.exceptions)   ResultsIterator (pyrax.clouddns)   
CloudMonitorNotificationManager (pyrax.cloudmonitoring)   InvalidConfigurationFile (pyrax.exceptions)   NetworkCIDRInvalid (pyrax.exceptions)   
  S  
+
BadRequest (pyrax.exceptions)   CloudMonitorNotificationPlan (pyrax.cloudmonitoring)   InvalidCredentialFile (pyrax.exceptions)   NetworkCIDRMalformed (pyrax.exceptions)   
BaseAuth (pyrax.base_identity)   CloudMonitorNotificationPlanManager (pyrax.cloudmonitoring)   InvalidDateTimeString (pyrax.exceptions)   NetworkCountExceeded (pyrax.exceptions)   ScalingGroup (pyrax.autoscale)   
BaseClient (pyrax.client)   CloudMonitorNotificationType (pyrax.cloudmonitoring)   InvalidDeviceType (pyrax.exceptions)   NetworkInUse (pyrax.exceptions)   ScalingGroupManager (pyrax.autoscale)   
BaseManager (pyrax.manager)   CloudMonitorZone (pyrax.cloudmonitoring)   InvalidEmail (pyrax.exceptions)   NetworkLabelNotUnique (pyrax.exceptions)   SelfDeletingTempDirectory (pyrax.utils)   
BaseQueueManager (pyrax.queueing)   CloudNetwork (pyrax.cloudnetworks)   InvalidLoadBalancer (pyrax.exceptions)   NetworkNotFound (pyrax.exceptions)   SelfDeletingTempfile (pyrax.utils)   
BaseResource (pyrax.resource)   CloudNetworkClient (pyrax.cloudnetworks)   InvalidLoadBalancerParameters (pyrax.exceptions)   Node (pyrax.cloudloadbalancers)   ServiceCatalog (pyrax.service_catalog)   
BulkDeleter (pyrax.cf_wrapper.client)   CloudNetworkManager (pyrax.cloudnetworks)   InvalidMonitoringCheckDetails (pyrax.exceptions)   NoMoreResults (pyrax.exceptions)   ServiceNotAvailable (pyrax.exceptions)   
  C  
-
  D  
-
InvalidNodeCondition (pyrax.exceptions)   NoSuchDatabaseUser (pyrax.exceptions)   
  T  
+
Connection (pyrax.cf_wrapper.client)   InvalidMonitoringCheckUpdate (pyrax.exceptions)   NoReloadError (pyrax.exceptions)   Settings (pyrax)   
Container (pyrax.cf_wrapper.container)   InvalidMonitoringMetricsRequest (pyrax.exceptions)   NoSSLTerminationConfiguration (pyrax.exceptions)   SnapshotNotAvailable (pyrax.exceptions)   
CDNFailed (pyrax.exceptions)   
  D  
+
InvalidMonitoringMetricsResolution (pyrax.exceptions)   NoSuchContainer (pyrax.exceptions)   StorageObject (pyrax::cf_wrapper::storage_object)   
CFClient (pyrax.cf_wrapper.client)   InvalidNodeCondition (pyrax.exceptions)   NoSuchDatabase (pyrax.exceptions)   SubdomainResultsIterator (pyrax.clouddns)   
ClientException (pyrax.exceptions)   DBUpdateUnchanged (pyrax.exceptions)   InvalidNodeParameters (pyrax.exceptions)   NoSuchDatabaseUser (pyrax.exceptions)   
  T  
InvalidNodeParameters (pyrax.exceptions)   NoSuchObject (pyrax.exceptions)   
CDNFailed (pyrax.exceptions)   DNSCallTimedOut (pyrax.exceptions)   InvalidPTRRecord (pyrax.exceptions)   NotAuthenticated (pyrax.exceptions)   Tenant (pyrax.base_identity)   
CFClient (pyrax.cf_wrapper.client)   DomainCreationFailed (pyrax.exceptions)   InvalidQueueName (pyrax.exceptions)   NotCDNEnabled (pyrax.exceptions)   TenantNotFound (pyrax.exceptions)   
ClientException (pyrax.exceptions)   DomainDeletionFailed (pyrax.exceptions)   InvalidSessionPersistenceType (pyrax.exceptions)   NotFound (pyrax.exceptions)   
  U  
+
CloudBlockStorageClient (pyrax.cloudblockstorage)   DNSCallTimedOut (pyrax.exceptions)   InvalidPTRRecord (pyrax.exceptions)   NoSuchObject (pyrax.exceptions)   
CloudBlockStorageManager (pyrax.cloudblockstorage)   DomainCreationFailed (pyrax.exceptions)   InvalidQueueName (pyrax.exceptions)   NotAuthenticated (pyrax.exceptions)   Tenant (pyrax.base_identity)   
CloudBlockStorageSnapshot (pyrax.cloudblockstorage)   DomainDeletionFailed (pyrax.exceptions)   InvalidSessionPersistenceType (pyrax.exceptions)   NotCDNEnabled (pyrax.exceptions)   TenantNotFound (pyrax.exceptions)   
CloudBlockStorageSnapshotManager (pyrax.cloudblockstorage)   DomainRecordAdditionFailed (pyrax.exceptions)   InvalidSetting (pyrax.exceptions)   NotFound (pyrax.exceptions)   
  U  
CloudBlockStorageClient (pyrax.cloudblockstorage)   DomainRecordAdditionFailed (pyrax.exceptions)   InvalidSetting (pyrax.exceptions)   NoTokenLookupException (pyrax.exceptions)   
CloudBlockStorageManager (pyrax.cloudblockstorage)   DomainRecordDeletionFailed (pyrax.exceptions)   InvalidSize (pyrax.exceptions)   NoUniqueMatch (pyrax.exceptions)   UnattachedNode (pyrax.exceptions)   
CloudBlockStorageSnapshot (pyrax.cloudblockstorage)   DomainRecordNotFound (pyrax.exceptions)   InvalidTemporaryURLMethod (pyrax.exceptions)   
  O  
+
CloudBlockStorageVolume (pyrax.cloudblockstorage)   DomainRecordDeletionFailed (pyrax.exceptions)   InvalidSize (pyrax.exceptions)   NoTokenLookupException (pyrax.exceptions)   
CloudBlockStorageVolumeType (pyrax.cloudblockstorage)   DomainRecordNotFound (pyrax.exceptions)   InvalidTemporaryURLMethod (pyrax.exceptions)   NoUniqueMatch (pyrax.exceptions)   UnattachedNode (pyrax.exceptions)   
CloudDatabaseBackup (pyrax.clouddatabases)   DomainRecordNotUnique (pyrax.exceptions)   InvalidUploadID (pyrax.exceptions)   
  O  
UnattachedVirtualIP (pyrax.exceptions)   
CloudBlockStorageSnapshotManager (pyrax.cloudblockstorage)   DomainRecordNotUnique (pyrax.exceptions)   InvalidUploadID (pyrax.exceptions)   Unauthorized (pyrax.exceptions)   
CloudBlockStorageVolume (pyrax.cloudblockstorage)   DomainRecordUpdateFailed (pyrax.exceptions)   InvalidVirtualIPType (pyrax.exceptions)   OverLimit (pyrax.exceptions)   UnicodePathError (pyrax.exceptions)   
CloudBlockStorageVolumeType (pyrax.cloudblockstorage)   DomainResultsIterator (pyrax.clouddns)   InvalidVirtualIPVersion (pyrax.exceptions)   
  P  
+
CloudDatabaseBackupManager (pyrax.clouddatabases)   DomainRecordUpdateFailed (pyrax.exceptions)   InvalidVirtualIPType (pyrax.exceptions)   Unauthorized (pyrax.exceptions)   
CloudDatabaseClient (pyrax.clouddatabases)   DomainResultsIterator (pyrax.clouddns)   InvalidVirtualIPVersion (pyrax.exceptions)   OverLimit (pyrax.exceptions)   UnicodePathError (pyrax.exceptions)   
CloudDatabaseDatabase (pyrax.clouddatabases)   DomainUpdateFailed (pyrax.exceptions)   InvalidVolumeResize (pyrax.exceptions)   
  P  
UploadFailed (pyrax.exceptions)   
CloudDatabaseClient (pyrax.clouddatabases)   DomainUpdateFailed (pyrax.exceptions)   InvalidVolumeResize (pyrax.exceptions)   User (pyrax.base_identity)   
CloudDatabaseDatabase (pyrax.clouddatabases)   DuplicateQueue (pyrax.exceptions)   
  K  
-
PasswordChangeFailed (pyrax.exceptions)   UserNotFound (pyrax.exceptions)   
CloudDatabaseDatabaseManager (pyrax.clouddatabases)   DuplicateUser (pyrax.exceptions)   ProtocolMismatch (pyrax.exceptions)   
  V  
+
CloudDatabaseDatabaseManager (pyrax.clouddatabases)   DuplicateQueue (pyrax.exceptions)   
  K  
+
User (pyrax.base_identity)   
CloudDatabaseFlavor (pyrax.clouddatabases)   DuplicateUser (pyrax.exceptions)   PasswordChangeFailed (pyrax.exceptions)   UserNotFound (pyrax.exceptions)   
CloudDatabaseInstance (pyrax.clouddatabases)   
  E  
+
KeyringModuleNotInstalled (pyrax.exceptions)   ProtocolMismatch (pyrax.exceptions)   
  V  
CloudDatabaseFlavor (pyrax.clouddatabases)   
  E  
-
KeyringModuleNotInstalled (pyrax.exceptions)   PTRRecordCreationFailed (pyrax.exceptions)   
CloudDatabaseInstance (pyrax.clouddatabases)   KeyringPasswordNotFound (pyrax.exceptions)   PTRRecordDeletionFailed (pyrax.exceptions)   VirtualIP (pyrax.cloudloadbalancers)   
CloudDatabaseManager (pyrax.clouddatabases)   EndpointNotDefined (pyrax.exceptions)   KeyringUsernameMissing (pyrax.exceptions)   PTRRecordUpdateFailed (pyrax.exceptions)   VolumeAttachmentFailed (pyrax.exceptions)   
CloudDatabaseUser (pyrax.clouddatabases)   EndpointNotFound (pyrax.exceptions)   KeystoneIdentity (pyrax.identity.keystone_identity)   PyraxException (pyrax.exceptions)   VolumeDetachmentFailed (pyrax.exceptions)   
CloudDatabaseUserManager (pyrax.clouddatabases)   EnvironmentNotFound (pyrax.exceptions)   
  M  
+
CloudDatabaseManager (pyrax.clouddatabases)   KeyringPasswordNotFound (pyrax.exceptions)   PTRRecordCreationFailed (pyrax.exceptions)   
CloudDatabaseUser (pyrax.clouddatabases)   EndpointNotDefined (pyrax.exceptions)   KeyringUsernameMissing (pyrax.exceptions)   PTRRecordDeletionFailed (pyrax.exceptions)   VirtualIP (pyrax.cloudloadbalancers)   
CloudDatabaseUserManager (pyrax.clouddatabases)   EndpointNotFound (pyrax.exceptions)   KeystoneIdentity (pyrax.identity.keystone_identity)   PTRRecordUpdateFailed (pyrax.exceptions)   VolumeAttachmentFailed (pyrax.exceptions)   
CloudDatabaseVolume (pyrax.clouddatabases)   EnvironmentNotFound (pyrax.exceptions)   
  M  
+
PyraxException (pyrax.exceptions)   VolumeDetachmentFailed (pyrax.exceptions)   
CloudDNSClient (pyrax.clouddns)   
  F  
  Q  
VolumeNotAvailable (pyrax.exceptions)   
CloudDatabaseVolume (pyrax.clouddatabases)   
  F  
-
  _  
+
CloudDNSDomain (pyrax.clouddns)   MissingAuthSettings (pyrax.exceptions)   
  _  
CloudDNSClient (pyrax.clouddns)   MissingAuthSettings (pyrax.exceptions)   Queue (pyrax.queueing)   
CloudDNSDomain (pyrax.clouddns)   Fault (pyrax.cf_wrapper.container)   MissingClaimParameters (pyrax.exceptions)   QueueClaim (pyrax.queueing)   _WaitThread (pyrax.utils)   
CloudDNSManager (pyrax.clouddns)   FileNotFound (pyrax.exceptions)   MissingDNSSettings (pyrax.exceptions)   QueueClaimManager (pyrax.queueing)   
CloudDNSPTRRecord (pyrax.clouddns)   FlavorNotFound (pyrax.exceptions)   MissingHealthMonitorSettings (pyrax.exceptions)   QueueClient (pyrax.queueing)   
CloudDNSRecord (pyrax.clouddns)   FolderNotFound (pyrax.exceptions)   MissingLoadBalancerParameters (pyrax.exceptions)   QueueClientIDNotDefined (pyrax.exceptions)   
CloudLoadBalancer (pyrax.cloudloadbalancers)   FolderUploader (pyrax.cf_wrapper.client)   MissingMonitoringCheckDetails (pyrax.exceptions)   QueueManager (pyrax.queueing)   
CloudDNSManager (pyrax.clouddns)   Fault (pyrax.cf_wrapper.container)   MissingClaimParameters (pyrax.exceptions)   Queue (pyrax.queueing)   
CloudDNSPTRRecord (pyrax.clouddns)   FileNotFound (pyrax.exceptions)   MissingDBUserParameters (pyrax.exceptions)   QueueClaim (pyrax.queueing)   _WaitThread (pyrax.utils)   
A | B | C | D | E | F | H | I | K | M | N | O | P | Q | R | S | T | U | V | _
@@ -170,7 +170,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html new file mode 100644 index 00000000..cb12f395 --- /dev/null +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html @@ -0,0 +1,131 @@ + + + + + +pyrax: Member List + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+
pyrax + +
+
Python Bindings for the Rackspace Cloud
+
+
+ + + + + + +
+
+
+
CloudDatabaseBackup Member List
+
+ + + + + +
+ +
+ + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html new file mode 100644 index 00000000..8c6a02e5 --- /dev/null +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html @@ -0,0 +1,172 @@ + + + + + +pyrax: CloudDatabaseBackup Class Reference + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+
pyrax + +
+
Python Bindings for the Rackspace Cloud
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
CloudDatabaseBackup Class Reference
+
+
+ +

This class represents a database backup. + More...

+
+Inheritance diagram for CloudDatabaseBackup:
+
+
+ + +BaseResource + +
+ +

List of all members.

+ + + +

+Static Public Attributes

 get_details = True
+

Detailed Description

+

This class represents a database backup.

+

Member Data Documentation

+ +
+
+ + + + +
get_details = True [static]
+
+
+ +

Reimplemented from BaseResource.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + +
+ +
+ + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.png b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.png new file mode 100644 index 0000000000000000000000000000000000000000..33c4f894c17ba9990491db301b71e071c6c29c18 GIT binary patch literal 494 zcmeAS@N?(olHy`uVBq!ia0vp^JwP15!3-q-Jj#s#QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;^_Fw5>SgY8?>%D)6<)`DfPu|`(V$c6=oXoZG}m&2 z<};FKF4b`^W?UsbNlx(Uul2&aLgkNyl;3Ykh_~|DzV)KoiC24@1KB@rHrRYe!Omli z$l18i-vY + + + + +pyrax: Member List + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+
pyrax + +
+
Python Bindings for the Rackspace Cloud
+
+
+ + + + + + +
+
+
+
CloudDatabaseBackupManager Member List
+
+ + + + + +
+ +
+ + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html new file mode 100644 index 00000000..fc716ca4 --- /dev/null +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html @@ -0,0 +1,187 @@ + + + + + +pyrax: CloudDatabaseBackupManager Class Reference + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+
pyrax + +
+
Python Bindings for the Rackspace Cloud
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
CloudDatabaseBackupManager Class Reference
+
+
+ +

This class handles operations on backups for a Cloud Database instance. + More...

+
+Inheritance diagram for CloudDatabaseBackupManager:
+
+
+ + +BaseManager + +
+ +

List of all members.

+ + + + +

+Public Member Functions

def list
 Return a list of all backups by default, or just for a particular instance.
+

Detailed Description

+

This class handles operations on backups for a Cloud Database instance.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
def list ( self,
 instance = None 
)
+
+
+ +

Return a list of all backups by default, or just for a particular instance.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + +
+ +
+ + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.png b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.png new file mode 100644 index 0000000000000000000000000000000000000000..2117188a8a01eea346315534dadcdc574f146d30 GIT binary patch literal 600 zcmeAS@N?(olHy`uVBq!ia0vp^`++!sgBeKHtA!*3DTx4|5ZC|z{{xvX-h3_XKQsZz z0^=bkQ(Ar*{o=icl)tia=1sQvW6{Z4)f z{e%~jTsp6Ir%6pq=o8P2J8fL9ect^UTiu7||I6K6TsCigSLywaRl(Zq>-(@jbK1T| zFP}0${m!rE6S;pa1KB@>Tm4w};=)(JWhb@H!1ZuDQ~xBCC~2YQ;*U)hHm7XC{9-}%Ju#`L-WRQ~*v`;@z* zqdxxP9ff~ddo6$VXFXv5KmYUdyr)mL&8=nlG5tq$9{Z%v`9N~hXXp9@{6J^Q|9QY} z|KlJM^Z)ZdQ+A7b&5Z*|D!D8@@=xIPl=)Is8+W)~TUH$37W{K%;kh5yujhYkf2~+Q zmuJu4p7_fFhp$y#UG_tD^{?O#|EB@B8$XX0_cH^L6_dX0iS8 k{nxfX4*tLXXXkD1h##8TgmdKI;Vst0Qp8RG5`Po literal 0 HcmV?d00001 diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html index a1d41eef..f2b7cbd0 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html @@ -94,9 +94,11 @@ authenticateBaseClient change_user_passwordCloudDatabaseClient createBaseClient + create_backupCloudDatabaseClient create_databaseCloudDatabaseClient create_userCloudDatabaseClient deleteBaseClient + delete_backupCloudDatabaseClient delete_databaseCloudDatabaseClient delete_userCloudDatabaseClient disable_ssl_certificate_validationBaseClient @@ -106,6 +108,7 @@ findallBaseClient force_exception_to_status_codeBaseClient getBaseClient + get_backupCloudDatabaseClient get_databaseCloudDatabaseClient get_flavorCloudDatabaseClient get_limitsCloudDatabaseClient @@ -116,6 +119,7 @@ http_log_reqBaseClient http_log_respBaseClient listBaseClient + list_backupsCloudDatabaseClient list_databasesCloudDatabaseClient list_flavorsCloudDatabaseClient list_user_accessCloudDatabaseClient @@ -134,6 +138,7 @@ reset_timingsBaseClient resizeCloudDatabaseClient restartCloudDatabaseClient + restore_backupCloudDatabaseClient revoke_user_accessCloudDatabaseClient root_user_statusCloudDatabaseClient service_nameBaseClient @@ -141,6 +146,7 @@ timesBaseClient timingsBaseClient unauthenticateBaseClient + update_userCloudDatabaseClient user_agentBaseClient [static] verify_sslBaseClient versionBaseClient @@ -162,7 +168,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html index 4bccb115..62ab2680 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html @@ -141,6 +141,8 @@  Deletes the user by name on the given instance.
def change_user_password  Changes the password for the user of the specified instance to the supplied value.
+def update_user + Allows you to change one or more of the user's username, password, or host.
def list_user_access  Returns a list of all database names for which the specified user has access rights on the specified instance.
def grant_user_access @@ -161,6 +163,16 @@  Returns a list of all available Flavors.
def get_flavor  Returns a specific Flavor object by ID.
+def list_backups + Returns a list of all backups by default, or just for a particular instance.
+def get_backup + Returns the CloudDatabaseBackup instance for a given ID.
+def delete_backup + Deletes the CloudDatabaseBackup instance for a given ID.
+def create_backup + Creates a backup of the specified instance, giving it the specified name along with an optional description.
+def restore_backup + Restores a backup to a new database instance.

Static Public Attributes

string name = "Cloud Databases" @@ -208,6 +220,47 @@

Changes the password for the user of the specified instance to the supplied value.

Returns None upon success; raises PasswordChangeFailed if the call does not complete successfully.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def create_backup ( self,
 instance,
 name,
 description = None 
)
+
+
+ +

Creates a backup of the specified instance, giving it the specified name along with an optional description.

+
@@ -302,6 +355,35 @@

Creates a user with the specified name and password, and gives that user access to the specified database(s).

+ + + +
+
+ + + + + + + + + + + + + + + + + + +
def delete_backup ( self,
 backup 
)
+
+
+ +

Deletes the CloudDatabaseBackup instance for a given ID.

+
@@ -401,6 +483,35 @@

This enables login from any host for the root user and provides the user with a generated root password.

+ + + +
+
+ + + + + + + + + + + + + + + + + + +
def get_backup ( self,
 backup 
)
+
+
+ +

Returns the CloudDatabaseBackup instance for a given ID.

+
@@ -570,6 +681,35 @@

Gives access to the databases listed in `db_names` to the user on the specified instance.

+ + + +
+
+ + + + + + + + + + + + + + + + + + +
def list_backups ( self,
 instance = None 
)
+
+
+ +

Returns a list of all backups by default, or just for a particular instance.

+
@@ -786,6 +926,54 @@

Restarts the instance.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def restore_backup ( self,
 backup,
 name,
 flavor,
 volume 
)
+
+
+ +

Restores a backup to a new database instance.

+

You must supply a backup (either the ID or a CloudDatabaseBackup object), a name for the new instance, as well as a flavor and size (in GB) for the instance.

+
@@ -862,6 +1050,59 @@

Returns True if the given instance is root-enabled.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def update_user ( self,
 instance,
 user,
 name = None,
 password = None,
 host = None 
)
+
+
+ +

Allows you to change one or more of the user's username, password, or host.

+

Member Data Documentation

@@ -901,7 +1142,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html index 5fec083c..ba2a2981 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html @@ -96,6 +96,7 @@ pyrax::resource::BaseResource.__init__BaseResource __repr__BaseResource change_user_passwordCloudDatabaseInstance + create_backupCloudDatabaseInstance create_databaseCloudDatabaseInstance create_userCloudDatabaseInstance deleteBaseResource @@ -111,6 +112,7 @@ human_idBaseResource HUMAN_IDBaseResource [static] idBaseResource + list_backupsCloudDatabaseInstance list_databasesCloudDatabaseInstance list_user_accessCloudDatabaseInstance list_usersCloudDatabaseInstance @@ -123,6 +125,7 @@ restartCloudDatabaseInstance revoke_user_accessCloudDatabaseInstance root_user_statusCloudDatabaseInstance + update_userCloudDatabaseInstance volumeCloudDatabaseInstance @@ -142,7 +145,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html index d85a1a9a..95ae35dc 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html @@ -143,6 +143,8 @@  Deletes the specified database.
def change_user_password  Changes the password for the user to the supplied value.
+def update_user + Allows you to change one or more of the user's username, password, or host.
def list_user_access  Returns a list of all database names for which the specified user has access rights.
def grant_user_access @@ -161,6 +163,10 @@  Set the size of this instance to a different flavor.
def resize_volume  Changes the size of the volume for this instance.
+def list_backups + Returns a list of all backups for this instance.
+def create_backup + Creates a backup of this instance, giving it the specified name along with an optional description.

Public Attributes

 volume @@ -239,6 +245,41 @@

Changes the password for the user to the supplied value.

Returns None upon success; raises PasswordChangeFailed if the call does not complete successfully.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
def create_backup ( self,
 name,
 description = None 
)
+
+
+ +

Creates a backup of this instance, giving it the specified name along with an optional description.

+
@@ -524,6 +565,25 @@

Gives access to the databases listed in `db_names` to the user.

+ + + +
+
+ + + + + + + + +
def list_backups ( self)
+
+
+ +

Returns a list of all backups for this instance.

+
@@ -760,6 +820,53 @@

Returns True or False, depending on whether the root user for this instance has been enabled.

+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def update_user ( self,
 user,
 name = None,
 password = None,
 host = None 
)
+
+
+ +

Allows you to change one or more of the user's username, password, or host.

+

Member Data Documentation

@@ -811,7 +918,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html index 4b517cbe..f5a4d645 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html @@ -95,15 +95,18 @@ add_hookBaseManager apiBaseManager createBaseManager + create_backupCloudDatabaseManager deleteBaseManager findBaseManager findallBaseManager getCloudDatabaseManager headBaseManager listBaseManager + list_backupsCloudDatabaseManager plural_response_keyBaseManager [static] resource_classBaseManager [static] response_keyBaseManager [static] + restore_backupCloudDatabaseManager run_hooksBaseManager uri_baseBaseManager [static] @@ -124,7 +127,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html index 1e285ebe..460db77e 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html @@ -124,10 +124,57 @@ Public Member Functions def get  This additional code is necessary to properly return the 'volume' attribute of the instance as a CloudDatabaseVolume object instead of a raw dict.
+def create_backup + Creates a backup of the specified instance, giving it the specified name along with an optional description.
+def restore_backup + Restores a backup to a new database instance.
+def list_backups + Returns a list of all backups by default, or just for a particular instance.

Detailed Description

This class manages communication with Cloud Database instances.


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def create_backup ( self,
 instance,
 name,
 description = None 
)
+
+
+ +

Creates a backup of the specified instance, giving it the specified name along with an optional description.

+ +
+
@@ -157,6 +204,83 @@

Reimplemented from BaseManager.

+
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
def list_backups ( self,
 instance = None 
)
+
+
+ +

Returns a list of all backups by default, or just for a particular instance.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def restore_backup ( self,
 backup,
 name,
 flavor,
 volume 
)
+
+
+ +

Restores a backup to a new database instance.

+

You must supply a backup (either the ID or a CloudDatabaseBackup object), a name for the new instance, as well as a flavor and volume size (in GB) for the instance.

+

The documentation for this class was generated from the following file:
    @@ -180,7 +304,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html index 508607a9..fa9f8906 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html @@ -99,15 +99,18 @@ getBaseResource get_detailsCloudDatabaseUser [static] grant_user_accessCloudDatabaseUser + hostCloudDatabaseUser [static] human_idBaseResource HUMAN_IDBaseResource [static] idBaseResource list_user_accessCloudDatabaseUser loadedBaseResource [static] managerBaseResource + nameCloudDatabaseUser [static] NAME_ATTRBaseResource [static] reloadBaseResource [static] revoke_user_accessCloudDatabaseUser + updateCloudDatabaseUser + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def update ( self,
     name = None,
     password = None,
     host = None 
    )
    +
    +
    + +

    Allows you to change one or more of the user's username, password, or host.

    +

    Member Data Documentation

    @@ -295,6 +340,32 @@

    Reimplemented from BaseResource.

    + + + +
    +
    + + + + +
    host = None [static]
    +
    +
    + +
    +
    + +
    +
    + + + + +
    name = None [static]
    +
    +
    +

    The documentation for this class was generated from the following file:
      @@ -318,7 +389,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html index f35b6a64..e1062d85 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html @@ -109,6 +109,7 @@ response_keyBaseManager [static] revoke_user_accessCloudDatabaseUserManager run_hooksBaseManager + updateCloudDatabaseUserManager uri_baseBaseManager [static] @@ -128,7 +129,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html index a0fd8b9c..df190cf7 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html @@ -124,6 +124,8 @@ Public Member Functions def change_user_password  Changes the password for the user to the supplied value.
      +def update + Allows you to change one or more of the user's username, password, or host.
      def list_user_access  Returns a list of all database names for which the specified user has access rights.
      def grant_user_access @@ -282,6 +284,53 @@

      Revokes access to the databases listed in `db_names` for the user.

      If any of the databases do not exist, a NoSuchDatabase exception will be raised, unless you specify `strict=False` in the call.

      + + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      def update ( self,
       user,
       name = None,
       password = None,
       host = None 
      )
      +
      +
      + +

      Allows you to change one or more of the user's username, password, or host.

      +

      The documentation for this class was generated from the following file:
        @@ -305,7 +354,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html index 7df63738..172fe8fa 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html @@ -113,7 +113,9 @@ Public Member Functions def __init__ def resize + Resize the volume to the specified size (in GB).
        def get + For compatibility with regular resource objects.

        Static Public Attributes

         instance = None @@ -180,6 +182,8 @@
        +

        For compatibility with regular resource objects.

        +
        @@ -207,6 +211,8 @@
        +

        Resize the volume to the specified size (in GB).

        +

        Member Data Documentation

        @@ -270,7 +276,7 @@ diff --git a/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html b/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html new file mode 100644 index 00000000..7d38ed7e --- /dev/null +++ b/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html @@ -0,0 +1,142 @@ + + + + + +pyrax: DBUpdateUnchanged Class Reference + + + + + + + + + + + +
        + + +
        + + + + + + + + + + + +
        +
        pyrax + +
        +
        Python Bindings for the Rackspace Cloud
        +
        +
        + + + + + + + + + +
        + +
        + + +
        +
        +
        +
        DBUpdateUnchanged Class Reference
        +
        +
        +
        +Inheritance diagram for DBUpdateUnchanged:
        +
        +
        + + +PyraxException + +
        +
        The documentation for this class was generated from the following file: +
        + + + + +
        + +
        + + + + + + + diff --git a/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.png b/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.png new file mode 100644 index 0000000000000000000000000000000000000000..f153161437df3fcdc5435ad3a344a980c81ec293 GIT binary patch literal 494 zcmeAS@N?(olHy`uVBq!ia0vp^EkGQ=!3-qdo9eCsQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;&_i-j;p87ABo8~oLGEi=gL_d>Kh+RA3c1hOh-gTxnSnf#bOicSp#*?IQZ^qJQ20>?;X}4;koZT)>+SUwt4^U zr)qKsXWLT&W1iQ_jsBJj-yCEVu2=6AfAdjY;oWbBE@3dKtZ+fLfq_MVfsw-j=vXjQ zP}Isn@0Prm1H&TDgP~a>W^;<2e}7dts6Kgf=t=RwZH_k%mrmg@RGzpu4&KGHKD_UgITe-pc}lr9XF*t;_{+XPef?@nzrEY8JI>I$!LC?&AY4S? eKkpI7Pt2=k%FJ|NOZNmu4uhwwpUXO@geCwT=F@!u literal 0 HcmV?d00001 diff --git a/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html b/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html new file mode 100644 index 00000000..a856e124 --- /dev/null +++ b/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html @@ -0,0 +1,142 @@ + + + + + +pyrax: MissingDBUserParameters Class Reference + + + + + + + + + + + +
        + + +
        + + + + + + + + + + + +
        +
        pyrax + +
        +
        Python Bindings for the Rackspace Cloud
        +
        +
        + + + + + + + + + +
        + +
        + + +
        +
        +
        +
        MissingDBUserParameters Class Reference
        +
        +
        +
        +Inheritance diagram for MissingDBUserParameters:
        +
        +
        + + +PyraxException + +
        +
        The documentation for this class was generated from the following file: +
        + + + + +
        + +
        + + + + + + + diff --git a/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.png b/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.png new file mode 100644 index 0000000000000000000000000000000000000000..acc3ba3ca207a610ec62ccb5de7a705cda6e3f2a GIT binary patch literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^i-0(QgBeJ!EsL`TQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;RSS%IgOckai(@|F4q z`_C$6|Mg7wKNfa?VZJ5jJ-zjxw(W^3WL6T`&pWZBqfE9 zwZ6Sk%8w2Ryw|U@UG&$jcbg(t@^q!FXuZYD>|X6T7*P;5$t_$RcOS>OoU;->d%xve(@&nHC_Ukw6|#@6O{%)9HNChn;G%BGmzy2(bMx5w zk1XzR-?m%)de8XOV0{R-oCXcSh{fDCwKQm3uH%`MXhUh^X7Id)e$4o6jiiVpep~ z{TCy0KmFG1m+F)6Zz*t;e*Q>a;PTAmBQY80-dE^t>e;wx?}c?uwLzY}FV48U__=xC w7xoL`QD^hNe7XL{@`yW6hl5T_#JxI(*LRg(POGn942)m~Pgg&ebxsLQ082^wf&c&j literal 0 HcmV?d00001 diff --git a/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html b/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html index 8565e2a5..ca084cf5 100644 --- a/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html +++ b/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html @@ -116,95 +116,97 @@ AuthSystemNotFound CDNFailed ClientException -DNSCallTimedOut -DomainCreationFailed -DomainDeletionFailed -DomainRecordAdditionFailed -DomainRecordDeletionFailed -DomainRecordNotFound -DomainRecordNotUnique -DomainRecordUpdateFailed -DomainUpdateFailed -DuplicateQueue -DuplicateUser -EndpointNotDefined -EndpointNotFound -EnvironmentNotFound -FileNotFound -FlavorNotFound -FolderNotFound -IdentityClassNotDefined -InvalidCDNMetadata -InvalidConfigurationFile -InvalidCredentialFile -InvalidDateTimeString -InvalidDeviceType -InvalidEmail -InvalidLoadBalancer -InvalidLoadBalancerParameters -InvalidMonitoringCheckDetails -InvalidMonitoringCheckUpdate -InvalidMonitoringMetricsRequest -InvalidMonitoringMetricsResolution -InvalidNodeCondition -InvalidNodeParameters -InvalidPTRRecord -InvalidQueueName -InvalidSessionPersistenceType -InvalidSetting -InvalidSize -InvalidTemporaryURLMethod -InvalidUploadID -InvalidVirtualIPType -InvalidVirtualIPVersion -InvalidVolumeResize -KeyringModuleNotInstalled -KeyringPasswordNotFound -KeyringUsernameMissing -MissingAuthSettings -MissingClaimParameters -MissingDNSSettings -MissingHealthMonitorSettings -MissingLoadBalancerParameters -MissingMonitoringCheckDetails -MissingMonitoringCheckGranularity -MissingName -MissingTemporaryURLKey -MonitoringCheckTargetNotSpecified -MonitoringZonesPollMissing -NetworkCIDRInvalid -NetworkCIDRMalformed -NetworkCountExceeded -NetworkInUse -NetworkLabelNotUnique -NetworkNotFound -NoMoreResults -NoReloadError -NoSSLTerminationConfiguration -NoSuchContainer -NoSuchDatabase -NoSuchDatabaseUser -NoSuchObject -NotAuthenticated -NotCDNEnabled -NoTokenLookupException -PasswordChangeFailed -ProtocolMismatch -PTRRecordCreationFailed -PTRRecordDeletionFailed -PTRRecordUpdateFailed -QueueClientIDNotDefined -ServiceNotAvailable -SnapshotNotAvailable -TenantNotFound -UnattachedNode -UnattachedVirtualIP -UnicodePathError -UploadFailed -UserNotFound -VolumeAttachmentFailed -VolumeDetachmentFailed -VolumeNotAvailable +DBUpdateUnchanged +DNSCallTimedOut +DomainCreationFailed +DomainDeletionFailed +DomainRecordAdditionFailed +DomainRecordDeletionFailed +DomainRecordNotFound +DomainRecordNotUnique +DomainRecordUpdateFailed +DomainUpdateFailed +DuplicateQueue +DuplicateUser +EndpointNotDefined +EndpointNotFound +EnvironmentNotFound +FileNotFound +FlavorNotFound +FolderNotFound +IdentityClassNotDefined +InvalidCDNMetadata +InvalidConfigurationFile +InvalidCredentialFile +InvalidDateTimeString +InvalidDeviceType +InvalidEmail +InvalidLoadBalancer +InvalidLoadBalancerParameters +InvalidMonitoringCheckDetails +InvalidMonitoringCheckUpdate +InvalidMonitoringMetricsRequest +InvalidMonitoringMetricsResolution +InvalidNodeCondition +InvalidNodeParameters +InvalidPTRRecord +InvalidQueueName +InvalidSessionPersistenceType +InvalidSetting +InvalidSize +InvalidTemporaryURLMethod +InvalidUploadID +InvalidVirtualIPType +InvalidVirtualIPVersion +InvalidVolumeResize +KeyringModuleNotInstalled +KeyringPasswordNotFound +KeyringUsernameMissing +MissingAuthSettings +MissingClaimParameters +MissingDBUserParameters +MissingDNSSettings +MissingHealthMonitorSettings +MissingLoadBalancerParameters +MissingMonitoringCheckDetails +MissingMonitoringCheckGranularity +MissingName +MissingTemporaryURLKey +MonitoringCheckTargetNotSpecified +MonitoringZonesPollMissing +NetworkCIDRInvalid +NetworkCIDRMalformed +NetworkCountExceeded +NetworkInUse +NetworkLabelNotUnique +NetworkNotFound +NoMoreResults +NoReloadError +NoSSLTerminationConfiguration +NoSuchContainer +NoSuchDatabase +NoSuchDatabaseUser +NoSuchObject +NotAuthenticated +NotCDNEnabled +NoTokenLookupException +PasswordChangeFailed +ProtocolMismatch +PTRRecordCreationFailed +PTRRecordDeletionFailed +PTRRecordUpdateFailed +QueueClientIDNotDefined +ServiceNotAvailable +SnapshotNotAvailable +TenantNotFound +UnattachedNode +UnattachedVirtualIP +UnicodePathError +UploadFailed +UserNotFound +VolumeAttachmentFailed +VolumeDetachmentFailed +VolumeNotAvailable
        The documentation for this class was generated from the following file:
          @@ -228,7 +230,7 @@ diff --git a/docs/html/classpyrax_1_1exceptions_1_1PyraxException.png b/docs/html/classpyrax_1_1exceptions_1_1PyraxException.png index 5cf53f1383a906726d9cb55ed713dce27f25aa81..73bcc2682426981a901b766ed76121244a3a1b34 100644 GIT binary patch literal 28318 zcmcfpdpMN&{|AoOw$*NhwH>5!*i~Cejg(Bz6;gyEfq%m~ZkmD+haz2;C z2r;>tQL8B9Fk_s@P1b1+%_w3phVQMm_j});>v#RW|JZNW)pV!KxF7fP@OV5Aulr{$ zO{F&M*syBVDyh?_jICF#S`DsRwKd|0HSkv+Zoo9de{4T{=Df+$(h_{h`7n)(`|}U@ z>dWt!FJG>`->(e+^#{P((qpO$}hHl07TY8CdtY2)MPZ>$zTP$2)w&+A@#%{Y!r zl;@m3#_ekK`_L25OL_fZ)sX)A9oVI)hhue9%fq~ zkT7%^-lNguqOXz2+Y_2~+S96tdCj2yAbgT7PAlX`xfoPk*oaoTE!@oEJ=Hot$PBBt z59S!$C+o#tnBzuONJGA?#2V0TO!BGji6`=EjMH|DW`vWLDZj`R zKg<@(LeHKgUIL>HZOURwc0!+dvsVf-fK($MW&UzajV=h>Gty z-=}37?fLeqsB;{?{_?tv+a3<%-B#{mnx=iGdBLV-aNsu*W&>s77tfVycgSkQ_1AVI zgpYrQ@FTPfVsU5P4MoVCqhjLHe=1&G^$jE0np~Py>Yjk_+c^C+`khp~Awxe3d%0<2 zMrD�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 literal 27726 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

          -gR|lnE>_9@SQR)GB3Xf964*x1 zdfF|F{ev|-_}bmd)B>DB_rfUd0%-+0TsJsJMM8IjjDb)E0o3*vU{n^-x!{+n# CloudBlockStorageManager CloudBlockStorageSnapshotManager -CloudDatabaseDatabaseManager -CloudDatabaseManager -CloudDatabaseUserManager -CloudDNSManager -CloudLoadBalancerManager -CloudMonitorEntityManager -CloudMonitorNotificationManager -CloudMonitorNotificationPlanManager -CloudNetworkManager -BaseQueueManager +CloudDatabaseBackupManager +CloudDatabaseDatabaseManager +CloudDatabaseManager +CloudDatabaseUserManager +CloudDNSManager +CloudLoadBalancerManager +CloudMonitorEntityManager +CloudMonitorNotificationManager +CloudMonitorNotificationPlanManager +CloudNetworkManager +BaseQueueManager @@ -663,7 +664,7 @@

          diff --git a/docs/html/classpyrax_1_1manager_1_1BaseManager.png b/docs/html/classpyrax_1_1manager_1_1BaseManager.png index dc62f5736b4565d30b7c8f55c716d4371795d732..ab894686389c076898e764421da8f4dc78351dd0 100644 GIT binary patch delta 3068 zcmai$e>~Is9>-^lOt@r5n42QU8m9=ykD2`Hhv+0f8s?;2^J9L6Wm+??>LiqfQt_4O z$Bt3hvN5NeQ@14F5SbsVWaf8=&5j9oI-Ps}xaaY>|9n4xd_RA^KF{a-{p#A*w*8X6 zhO*@bWe5baci27g@)jrPCcg*aaWL8(ZmSualou5-IlC-a9=pgE@iTWw>tm@UQdtu28 z(&@9I(r^y@9HE@5&E0-2tHwMCo!(aJLzcCE}>Zd~6(ln*L9eXKboU7p*56l*L%z+b;{4D3DBw!FIrLsp}l zT4ra%Tk(}E4MLO9;}2ZlZJa4JwFoORexWbk4RVjya5CavW{Q)Hy?@a++{&KkH*&ol z?k!4_nzt>-Nf*Nr{ZW|ZLRE>CI4{Nbr0@_>p+w23fXOouc>B{pqLy3?fx-1G4*@v( z2$ZsV8p-I=*uo&GYcuxh=+R`^-k$M;`W^h~;98o3*M=q<*}7p{eD7F@n3ub_+dGANH79rRKVMNY3ts$cf;N z0m3b{8SB!{Q?yq5T_18E*GhZ#t5R&lA(icYL&+~ky}|a!u6Hpq1aO%>_**#X%}P_B z;u@_fe$Zk~1lYW6z{x^q!!iR_2nH@c)$TDpS~+nHWt=44IJ5ZFs0(DShd?zZ4)5$4 zOf~1oNjs(9*?Z@@t*?iMAHQOivmC_pT4{w)^~B714=-S@KwaXCz_XKq@qrY&B84v@ zRA{WjaTkIBaIp0+RF5&Jf%p$7g-ZG7-?A|!)O)-S0eG z3k6fte$R(c|4yXVe~Cl8^{ZS(=tl~~)*S+DhPTEAMG-$i8(w=h!xHzjIYSg?xx`>VLFBb8A(Y82ga z4DyRZint{2f$=Ufok53NDsb6A!)i!`OAArJ;DGWUI6-0Zc<}sr(qQC3DR*mI7wwK= z$2D983}3J1ZZw)|9&Txa6Dl{xe(Xli6&=YfAmw#`k8V)L*fvlyCW1N_=&M_ZY9)k7 zb-ejPZo>X@b|`QiCdmZ?a??Ba55VghLTeXzRr=xp9FNrSDWRmmAn!q(S1c8!7%v=P z$#dFWJ9^QF1z*X7n`G29)Rk8@J&~h_2^7h$D;UsCsdM@GfK>xNR_go@^qXVe4h=W% zRln(*5Ghlg!~qLv1tI6w2`Q7|f$f6-60)ZImzJ0+f3-x5Rmykagg2kzm|lcYw25Ka zJXNReA(b*!X`3=os8XwKfA~QOd7_dGH0w`wKm-S0&egomIMG~A(0ZCa6@O1jf(0*j z6K>H_vi#r&(DG$Td-C+{rOZb#j&GkkJf>hQmdpDSFIM!@2sM@m@Au$r$0oJElx|7=3 zX5h1I)VGrH(U9(mjW^Y%gE!L>AGNHId@!IhjwuQR&&aU$n8i_>O7tLmq0L;uhy~DO zUl?3QIO|`thjzGfqS@p|ln25UDk=Mz>H(0mL@TU#>csv8jMnql=$T81WG9cF&lha# zdUy6$uH1o8OvMo&EpC`oN%9p)NvZnv=u1P#dwXXp-0Aqitb*`L;mv@?qwWQQy^ zP4QM)i3Z))A{`x$FF$F!!mj+P@laNDP2k!_e4i5pTRtF+%-9Zavit6o#@_3VW&X6f zvvgIiJ0{RyYD=g*e>Z3HBR`JtN$f|OtOqB9l^WGLjc3e{e)Ji1N{MzmWgw`l4@naS z;-8T>V-NARf)#Wc%0-m>{PKIpxJPfQo%2nJOTYDney3R3Opzwg@EK+I0(E-AkJQUY z+>>GztQchxM)I}i8s$-U!NA;_@sy+>&A=2RqT9I0HkDI~di7w80P9>nIv{wsFLve^ z!M_$yFWiuy=g~)@QNO*tH5^$N;{4(o9zVJb@BvJVtF_F)u3uFsHSo?%47iEJc%piQ zR+05(*D|AZzi?r6wlOcm^A`-GNA2jDqV_^as?uhkE>2jNFLTwf@uxJ%X_tlh?adOM zEI&ZHr5bOA=(b|g%BtJ=p3Q8p)w)nivq`|Ic}{?N8=NLgmgoq|+D+z5p=A}ZnfvsY z)Y%0?1KOywi|8Fe!{nwuciOYxd9g%GxlriziN(+YJV_S#FU4tn|^xk`daZy=BoSY#9WpiE8ROk zl9RP~G6CyRmqTFOz)m>ih)B%o9|pEHrALxZWM0hhqZSSSoa{({cq;yN!p>t-jVo0r zWje7w3HeN_tN6Rag$4RR#l=7E8rNFyD(h=WjQRhA*7)n74Q6ph#vV~xC8&I;JQXx} zrw>H^Oaj_9z&5p7f9(3;*=NqiaML$RZ{TARP)=DTmot1bCT6c7)#Tg2TSp>psnyzO zHdfWu$~k2=NYW{IVA35*%*(g)nAt`h=zhK!x zTg#E%-6XQA9p#}jnjfa$+#q=j(8`_l=zLoX&^C}b5=Sp5cKli0pj51w5u(1ArekMj zX1z!VKSqJc@!$b{q_Yua4Jrx8oy3&1y|&z{ZNMVeYBfq^%y^x4%~?zo;0Ep7D^=_^ z8H=zhlDDg_$mT>aLLMAV+}(mqy+8g&yj+L}+(uI3l%mEeV*{!+`{S6!(Ly)&3!CvO zT*Os1QuE0ezswjO7V#+|l}X_Ddbz1ciZh-X3X12Fv}W=B+s-|N$sMAJp7$FBmaQ4G z9oLE6p{BDm9jWh3>GU|1Y9$taOi-+qAHNij#l-dEVftQOa-tmPFZy~ckra=;rZlxu W;<+0Jv?)qHWS^IxCu`3S+5ZN|-Ur73 delta 2718 zcmZvee>l@?AIBLpKg!a{gm9`;Iw8+_EIBkyNYN=J)MlKLV}471M9tR-b^O?27gFIX z`Q6s9*_xSMr=pXQZ>7YBI>MJVtFzTI#xr%!bv@VhJpbJHANT#w{k~uC_xmHT?f>pK zj1l6!zK)ib)~ZJXl_l$45hkOzNij%(51N>W*j;xVQ@7{u+{8EJ1H$-I*42#c`O%CMbII%KVX}+$17HZ5q1uYDBF}m^YFpk_4pcH3*@YRayEA*_Tx%{ zE(jn9HtE+-ILKD}}FBnnd6Bu zYE~(A)W|gmzO_AVo&27OA~6viEuw_9n%W=1d%f?p->?>Pagk6x09k}`K>l6LRzoFne>>EN!-sb`Sux)C7cWzTwCAs zy7NW+A;1xDgH*LF_?y7Ia0D(Ow>)kgoX!pbHIGFauGs=jWmoSSLvF<*xA<#o)+Q|^ z{Wqiw5RTutfgM*65jHbBKRiEC$dr(~V(8RGL)OlDPiXqX5(Z1M%G`*z(I?o%F3a%D z^Cr~BQ4ejn`_^#Q(lmM9p~mYKbrFQIatpjnr*DmPQwB7fG*qY@eSnZH;*A+Aa?`(s zGlf-lu}x#@E_22E)aPqVRdmCuV%~?fmIYE}BphE~V9Rk(ZiCvx8#vRxL)&a!JoK7cZ4xP5R>yx?CW;F@ zCnwR}SFWdv4bgPYYE!@xyWxb0ee_fP>>o1uSX6h?W+<47x#0s^oObS6-Tp!9-phdQralRz`tly*270?Np}yk z?@QhVNfu_Ckg7FMyvV+zeq;BEcZ3o`4N7%?!GY{Yf^$IKDa z8|?JwhgWx!DiMm~ASpNXQEbA~C(v;?BfdU1cW{UipZQ=LV5~?3FW!<}Va}?qoaMJ$ zxb?kj=&;e4f(&_&B?(9RtX{fU@UArP2106aJ+o_hODk~VUHQKJb4j8k8KRF!8v6LG zOl;vScvf-KIFj5>$SXUYbcwZlq=;ds49Hqsp-?B0Okkh?D@ML{4m}IG7pVKk2E0y* zOx0d?jpV13_bFo&NYgFae!yv;mDK=N>3dg)e`_`5Lw(t3+5E7Fr+8}%JqruF79u)P zz|{5gv7npn3~6STVAg-nb9|1)==?=-VD_o zA!o#+B8U9FX3#JHgcbbRYnRfSLSFhlYZRq2 z;~Gr)=ukTaQ+@OH5W2a)V-P`Ea!^KTYxqZfF#sP)$La3{WXPfmuh1gC`=F7uvX>vK^3Vgb z`ie*pK+)2VC!KV8ViBJ*ePA3#$n5wSWUSEBD5C@03s6OOP+{!>mTd{%(R{Rq6FsmZ zZTx{7Bh!3qa$xN=ciq)M&oZ&za6fl$#fY>%|8y)j*h8Kf#Ae5q65MV(-@%RTY;^xK z{`Eclv7Kx(=at>d;-rT1mo5gdhLVV8YkkG(AE?#MyXB!q3NPZeFVbj20^W%4uaP0> zw-M{3IvF=MZD1Wz*lWux}eh7yO1y+1p(1o6G8%srhC4rsE-IT*;CI^XmoI zrUSFQRHILUBWdd>=h>5q`3v<~la0fnK&f|THe+Mjr=0v+wP8V^lEg@XPA!<^9UOKy zgp6pJO03ytpSpXM`s$T_NCFOi*LYCX2d4Xpwz?g4-p8mq zYB^*bUL8<#az|naXm3qq5%(WeBPL)m<@|67aXdNhIhwlQ7bLWQIEOed@B@t+0CckYw{jOZYuPA@h*XY0G(Z_+nfE)5;Uq7TbZ=@7wg}3<;F>98Z%|ffpxAGE zSxEqGhm*cmvIeXgG+m~*7dWU}bm2k)KREbOD76!#DDCQck~b>QqL@J;1rrI_oJF1|1)tdt?EX41E-7V9uD zjUy)DkEJ&aABlSKaX5NnNJ(S-C7jy=nN4~SXG1PO4;^M6M0O;LS}Gh CloudBlockStorageVolume CloudBlockStorageVolumeType -CloudDatabaseDatabase -CloudDatabaseFlavor -CloudDatabaseInstance -CloudDatabaseUser -CloudDNSDomain -CloudDNSRecord -CloudLoadBalancer -CloudMonitorAlarm -CloudMonitorCheck -CloudMonitorCheckType -CloudMonitorEntity -CloudMonitorNotification -CloudMonitorNotificationPlan -CloudMonitorNotificationType -CloudMonitorZone -CloudNetwork -Queue -QueueClaim -QueueMessage +CloudDatabaseBackup +CloudDatabaseDatabase +CloudDatabaseFlavor +CloudDatabaseInstance +CloudDatabaseUser +CloudDNSDomain +CloudDNSRecord +CloudLoadBalancer +CloudMonitorAlarm +CloudMonitorCheck +CloudMonitorCheckType +CloudMonitorEntity +CloudMonitorNotification +CloudMonitorNotificationPlan +CloudMonitorNotificationType +CloudMonitorZone +CloudNetwork +Queue +QueueClaim +QueueMessage @@ -379,7 +380,7 @@ @@ -487,7 +488,7 @@ diff --git a/docs/html/classpyrax_1_1resource_1_1BaseResource.png b/docs/html/classpyrax_1_1resource_1_1BaseResource.png index e36457e75c4f72f4f80419e7bdb2c911da530f5d..58ef4a3899f5f2f423b23c32e249c7dd770f4039 100644 GIT binary patch delta 4501 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 delta 4187 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 S_77phhNDhyj%7avUi}|Wvq*dZ diff --git a/docs/html/clouddatabases_8py.html b/docs/html/clouddatabases_8py.html index 98240dd9..1ef93667 100644 --- a/docs/html/clouddatabases_8py.html +++ b/docs/html/clouddatabases_8py.html @@ -93,6 +93,8 @@  This class manages communication with databases on Cloud Database instances. More...
          class  CloudDatabaseUserManager  This class handles operations on the users in a database on a Cloud Database instance. More...
          +class  CloudDatabaseBackupManager + This class handles operations on backups for a Cloud Database instance. More...
          class  CloudDatabaseInstance  This class represents a MySQL instance in the cloud. More...
          class  CloudDatabaseDatabase @@ -101,6 +103,8 @@  This class represents a user on a CloudDatabaseInstance. More...
          class  CloudDatabaseFlavor  This class represents the available instance configurations, or 'flavors', which you use to define the memory and CPU size of your instance. More...
          +class  CloudDatabaseBackup + This class represents a database backup. More...
          class  CloudDatabaseClient  This is the primary class for interacting with Cloud Databases. More...

          @@ -128,7 +132,7 @@ diff --git a/docs/html/exceptions_8py.html b/docs/html/exceptions_8py.html index dccbcfa4..a840221c 100644 --- a/docs/html/exceptions_8py.html +++ b/docs/html/exceptions_8py.html @@ -93,6 +93,7 @@ class  AuthorizationFailure class  AuthSystemNotFound class  CDNFailed +class  DBUpdateUnchanged class  DNSCallTimedOut class  DomainCreationFailed class  DomainDeletionFailed @@ -140,6 +141,7 @@ class  InvalidVolumeResize class  MissingAuthSettings class  MissingClaimParameters +class  MissingDBUserParameters class  MissingDNSSettings class  MissingHealthMonitorSettings class  MissingLoadBalancerParameters @@ -231,7 +233,7 @@ diff --git a/docs/html/functions_0x63.html b/docs/html/functions_0x63.html index 55f556df..9c5ff3be 100644 --- a/docs/html/functions_0x63.html +++ b/docs/html/functions_0x63.html @@ -253,33 +253,38 @@

          - c -

            , Container
          • create() -: CloudMonitorClient +: BaseClient +, CloudMonitorClient +, CloudMonitorNotificationManager , CloudNetworkClient , BaseManager -, QueueClient -, CloudMonitorNotificationManager -, QueueManager , CloudBlockStorageClient +, QueueManager +, QueueClient , CloudMonitorNotificationPlanManager -, BaseClient , CloudBlockStorageSnapshotManager
          • create_alarm() -: CloudMonitorClient -, CloudMonitorCheck +: CloudMonitorEntity +, CloudMonitorClient , CloudMonitorEntityManager -, CloudMonitorEntity +, CloudMonitorCheck +
          • +
          • create_backup() +: CloudDatabaseClient +, CloudDatabaseManager +, CloudDatabaseInstance
          • create_check() -: CloudMonitorClient -, CloudMonitorEntityManager +: CloudMonitorEntityManager +, CloudMonitorClient
          • create_container() : CFClient
          • create_database() -: CloudDatabaseClient -, CloudDatabaseInstance +: CloudDatabaseInstance +, CloudDatabaseClient
          • create_entity() : CloudMonitorClient @@ -291,16 +296,16 @@

            - c -

            @@ -322,7 +327,7 @@

            - c -

              diff --git a/docs/html/functions_0x64.html b/docs/html/functions_0x64.html index 869f7ab1..b602087d 100644 --- a/docs/html/functions_0x64.html +++ b/docs/html/functions_0x64.html @@ -167,6 +167,9 @@

              - d -

              • delete_all_snapshots() : CloudBlockStorageVolume
              • +
              • delete_backup() +: CloudDatabaseClient +
              • delete_by_ids() : Queue , QueueMessageManager @@ -207,18 +210,18 @@

                - d -

                  : QueueClient
                • delete_metadata() -: CloudLoadBalancerClient -, CloudLoadBalancer +: CloudLoadBalancer , CloudLoadBalancerManager , Node +, CloudLoadBalancerClient
                • delete_metadata_for_node() : CloudLoadBalancer , CloudLoadBalancerClient
                • delete_node() -: CloudLoadBalancerClient -, CloudLoadBalancerManager +: CloudLoadBalancerManager +, CloudLoadBalancerClient , CloudLoadBalancer
                • delete_notification() @@ -236,18 +239,18 @@

                  - d -

                    , Container
                  • delete_policy() -: ScalingGroupManager +: ScalingGroup +, ScalingGroupManager , AutoScaleClient -, ScalingGroup
                  • delete_ptr_records() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                  • delete_record() : CloudDNSDomain -, CloudDNSManager , CloudDNSClient +, CloudDNSManager
                  • delete_session_persistence() : CloudLoadBalancerManager @@ -256,31 +259,31 @@

                    - d -

                      : CloudBlockStorageClient
                    • delete_ssl_termination() -: CloudLoadBalancerManager -, CloudLoadBalancer +: CloudLoadBalancer , CloudLoadBalancerClient +, CloudLoadBalancerManager
                    • delete_tenant() : BaseAuth
                    • delete_user() -: BaseAuth +: CloudDatabaseClient +, BaseAuth , CloudDatabaseInstance -, CloudDatabaseClient
                    • delete_virtualip() -: CloudLoadBalancer +: CloudLoadBalancerManager +, CloudLoadBalancer , CloudLoadBalancerClient -, CloudLoadBalancerManager
                    • delete_volume() : CloudBlockStorageClient
                    • delete_webhook() -: AutoScalePolicy -, ScalingGroup +: ScalingGroupManager , AutoScaleClient -, ScalingGroupManager +, AutoScalePolicy +, ScalingGroup
                    • description : CloudBlockStorageVolume @@ -342,7 +345,7 @@

                      - d -

                        diff --git a/docs/html/functions_0x67.html b/docs/html/functions_0x67.html index 90d896f6..9657e36a 100644 --- a/docs/html/functions_0x67.html +++ b/docs/html/functions_0x67.html @@ -158,6 +158,9 @@

                        - g -

                        • get_audits() : CloudMonitorClient
                        • +
                        • get_backup() +: CloudDatabaseClient +
                        • get_check() : CloudMonitorEntityManager , CloudMonitorClient @@ -166,8 +169,8 @@

                          - g -

                            : CloudMonitorClient
                          • get_claim() -: QueueClient -, Queue +: Queue +, QueueClient
                          • get_configuration() : ScalingGroup @@ -219,6 +222,7 @@

                            - g -

                              : CloudDatabaseDatabase , CloudDatabaseUser , CloudDatabaseFlavor +, CloudDatabaseBackup , BaseResource
                            • GET_DETAILS @@ -234,9 +238,9 @@

                              - g -

                                : CloudMonitorClient
                              • get_error_page() -: CloudLoadBalancer -, CloudLoadBalancerManager +: CloudLoadBalancerManager , CloudLoadBalancerClient +, CloudLoadBalancer
                              • get_extensions() : BaseAuth @@ -265,18 +269,18 @@

                                - g -

                                  , CloudDatabaseClient
                                • get_message() -: Queue -, QueueClient +: QueueClient +, Queue
                                • get_metadata() -: StorageObject +: QueueClient , Container +, StorageObject , CloudLoadBalancer , CloudLoadBalancerManager , Node , CloudLoadBalancerClient , QueueManager -, QueueClient
                                • get_metadata_for_node() : CloudLoadBalancer @@ -284,9 +288,9 @@

                                  - g -

                                  • get_metric_data_points() : CloudMonitorEntity -, CloudMonitorEntityManager , CloudMonitorCheck , CloudMonitorClient +, CloudMonitorEntityManager
                                  • get_monitoring_zone() : CloudMonitorClient @@ -330,8 +334,8 @@

                                    - g -

                                      : CloudDNSClient
                                    • get_server_networks() -: CloudNetworkClient -, CloudNetwork +: CloudNetwork +, CloudNetworkClient
                                    • get_session_persistence() : CloudLoadBalancerManager @@ -339,25 +343,25 @@

                                      - g -

                                      • get_ssl_termination() : CloudLoadBalancerClient -, CloudLoadBalancerManager , CloudLoadBalancer +, CloudLoadBalancerManager
                                      • get_state() -: ScalingGroupManager +: ScalingGroup +, ScalingGroupManager , AutoScaleClient -, ScalingGroup
                                      • get_stats() : QueueClient -, CloudLoadBalancerManager , QueueManager +, CloudLoadBalancerManager
                                      • get_subdomain_iterator() : CloudDNSClient
                                      • get_temp_url() -: CFClient -, StorageObject +: StorageObject +, CFClient , Container
                                      • get_temp_url_key() @@ -384,26 +388,26 @@

                                        - g -

                                        @@ -424,7 +428,7 @@

                                        - g -

                                          diff --git a/docs/html/functions_0x68.html b/docs/html/functions_0x68.html index 0f7a35e4..fdc653ad 100644 --- a/docs/html/functions_0x68.html +++ b/docs/html/functions_0x68.html @@ -118,15 +118,18 @@

                                          - h -

                                          • head() : BaseManager
                                          • +
                                          • host +: CloudDatabaseUser +
                                          • href -: QueueMessage -, QueueClaim +: QueueClaim +, QueueMessage
                                          • http_log_debug -: BaseAuth +: BaseClient +, BaseAuth , CFClient , Connection -, BaseClient
                                          • http_log_req() : BaseClient @@ -135,20 +138,20 @@

                                            - h -

                                            @@ -168,7 +171,7 @@

                                            - h -

                                              diff --git a/docs/html/functions_0x6c.html b/docs/html/functions_0x6c.html index 643c0fbb..2b1a57fb 100644 --- a/docs/html/functions_0x6c.html +++ b/docs/html/functions_0x6c.html @@ -123,25 +123,31 @@

                                              - l -

                                              • list() : BaseClient +, CloudMonitorClient , BaseManager +, CloudDatabaseBackupManager , Queue -, CloudDNSManager , QueueMessageManager , CFClient +, CloudDNSManager , CloudDNSClient -, CloudMonitorClient
                                              • list_alarms() : CloudMonitorEntity , CloudMonitorEntityManager , CloudMonitorClient
                                              • +
                                              • list_backups() +: CloudDatabaseInstance +, CloudDatabaseClient +, CloudDatabaseManager +
                                              • list_by_claim() : Queue
                                              • list_by_ids() -: QueueMessageManager -, Queue +: Queue +, QueueMessageManager
                                              • list_check_types() : CloudMonitorClient @@ -210,17 +216,17 @@

                                                - l -

                                                  : CloudMonitorClient
                                                • list_policies() -: AutoScaleClient -, ScalingGroup +: ScalingGroup , ScalingGroupManager +, AutoScaleClient
                                                • list_previous_page() : CloudDNSManager , CloudDNSClient
                                                • list_ptr_records() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                • list_public_containers() : CFClient @@ -242,25 +248,25 @@

                                                  - l -

                                                    : BaseAuth
                                                  • list_snapshots() -: CloudBlockStorageManager +: CloudBlockStorageVolume +, CloudBlockStorageManager , CloudBlockStorageClient -, CloudBlockStorageVolume
                                                  • list_subdirs() : Container
                                                  • list_subdomains() -: CloudDNSDomain +: CloudDNSClient +, CloudDNSDomain , CloudDNSManager -, CloudDNSClient
                                                  • list_subdomains_next_page() : CloudDNSManager , CloudDNSClient
                                                  • list_subdomains_previous_page() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                  • list_tenants() : BaseAuth @@ -273,21 +279,21 @@

                                                    - l -

                                                      , CloudBlockStorageClient
                                                    • list_user_access() -: CloudDatabaseUserManager -, CloudDatabaseInstance +: CloudDatabaseInstance +, CloudDatabaseUserManager , CloudDatabaseUser , CloudDatabaseClient
                                                    • list_users() -: CloudDatabaseInstance -, CloudDatabaseClient +: CloudDatabaseClient , BaseAuth +, CloudDatabaseInstance
                                                    • list_webhooks() -: ScalingGroupManager -, ScalingGroup -, AutoScaleClient +: ScalingGroup , AutoScalePolicy +, ScalingGroupManager +, AutoScaleClient
                                                    • loaded : BaseResource @@ -311,7 +317,7 @@

                                                      - l -

                                                        diff --git a/docs/html/functions_0x6e.html b/docs/html/functions_0x6e.html index 935dff8e..29fbb2bd 100644 --- a/docs/html/functions_0x6e.html +++ b/docs/html/functions_0x6e.html @@ -119,8 +119,8 @@

                                                        - n -

                                                          : AutoScaleClient , Container , BaseClient -, CloudDatabaseClient -, Queue +, CloudDatabaseUser +, CloudNetworkClient , CloudMonitorAlarm , CloudMonitorNotificationPlan , CloudMonitorNotificationType @@ -130,16 +130,17 @@

                                                          - n -

                                                            , CloudMonitorEntity , ScalingGroup , SelfDeletingTempDirectory -, QueueClient -, CloudDNSRecord , SelfDeletingTempfile -, CloudNetworkClient +, Queue +, CloudDatabaseClient +, QueueClient , CloudNetwork , CloudMonitorClient , CloudLoadBalancerClient , CloudDNSClient -, CloudBlockStorageSnapshot , CloudDNSPTRRecord +, CloudBlockStorageSnapshot +, CloudDNSRecord , StorageObject , CloudBlockStorageClient , CloudBlockStorageVolume @@ -175,7 +176,7 @@

                                                            - n -

                                                              diff --git a/docs/html/functions_0x72.html b/docs/html/functions_0x72.html index 1fb9d926..1d12313b 100644 --- a/docs/html/functions_0x72.html +++ b/docs/html/functions_0x72.html @@ -200,32 +200,36 @@

                                                              - r -

                                                                : CloudDatabaseInstance , CloudDatabaseClient +
                                                              • restore_backup() +: CloudDatabaseClient +, CloudDatabaseManager +
                                                              • results : BulkDeleter , ResultsIterator
                                                              • resume() -: AutoScaleClient -, ScalingGroup +: ScalingGroup +, AutoScaleClient , ScalingGroupManager
                                                              • revoke_user_access() -: CloudDatabaseUser +: CloudDatabaseClient +, CloudDatabaseUser , CloudDatabaseInstance , CloudDatabaseUserManager -, CloudDatabaseClient
                                                              • root_folder : FolderUploader
                                                              • root_user_status() -: CloudDatabaseClient -, CloudDatabaseInstance +: CloudDatabaseInstance +, CloudDatabaseClient
                                                              • run() -: _WaitThread -, BulkDeleter +: BulkDeleter , FolderUploader +, _WaitThread
                                                              • run_hooks() : BaseManager @@ -249,7 +253,7 @@

                                                                - r -

                                                                  diff --git a/docs/html/functions_0x75.html b/docs/html/functions_0x75.html index ca508e3b..05e36837 100644 --- a/docs/html/functions_0x75.html +++ b/docs/html/functions_0x75.html @@ -121,21 +121,23 @@

                                                                  - u -

                                                                  • update() : ScalingGroupManager -, CloudDNSRecord +, CloudDatabaseUserManager +, CloudMonitorEntity +, CloudMonitorCheck +, CloudDatabaseUser , CloudMonitorNotification , CloudMonitorAlarm -, CloudDNSDomain -, QueueClaimManager , AutoScalePolicy -, CloudLoadBalancer -, CloudLoadBalancerManager +, CloudDNSRecord +, QueueClaimManager +, CloudDNSDomain , ScalingGroup , AutoScaleWebhook +, CloudLoadBalancer +, CloudLoadBalancerManager +, AutoScaleClient , Node , CloudLoadBalancerClient -, AutoScaleClient -, CloudMonitorEntity -, CloudMonitorCheck
                                                                  • update_alarm() : CloudMonitorEntity @@ -159,9 +161,9 @@

                                                                    - u -

                                                                      , CloudMonitorClient
                                                                    • update_launch_config() -: AutoScaleClient -, ScalingGroup +: ScalingGroup , ScalingGroupManager +, AutoScaleClient
                                                                    • update_launch_metadata() : ScalingGroup @@ -192,42 +194,44 @@

                                                                      - u -

                                                                        , CloudMonitorClient
                                                                      • update_policy() -: ScalingGroup +: AutoScaleClient +, ScalingGroup , ScalingGroupManager -, AutoScaleClient
                                                                      • update_ptr_record() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                      • update_record() -: CloudDNSDomain -, CloudDNSManager +: CloudDNSManager +, CloudDNSDomain , CloudDNSClient
                                                                      • update_ssl_termination() -: CloudLoadBalancer +: CloudLoadBalancerClient +, CloudLoadBalancer , CloudLoadBalancerManager -, CloudLoadBalancerClient
                                                                      • update_tenant() : BaseAuth
                                                                      • update_user() -: RaxIdentity -, BaseAuth +: BaseAuth +, CloudDatabaseInstance +, RaxIdentity +, CloudDatabaseClient
                                                                      • update_webhook() -: ScalingGroup -, ScalingGroupManager +: ScalingGroupManager , AutoScaleClient , AutoScalePolicy +, ScalingGroup
                                                                      • update_webhook_metadata() : AutoScaleClient -, ScalingGroupManager , AutoScalePolicy , ScalingGroup +, ScalingGroupManager
                                                                      • upload_file() : Container @@ -262,12 +266,13 @@

                                                                        - u -

                                                                        @@ -289,7 +294,7 @@

                                                                        - u -

                                                                          diff --git a/docs/html/functions_func_0x63.html b/docs/html/functions_func_0x63.html index 5297b449..041b641c 100644 --- a/docs/html/functions_func_0x63.html +++ b/docs/html/functions_func_0x63.html @@ -170,9 +170,9 @@

                                                                          - c -

                                                                          • create() : CloudNetworkClient , BaseManager +, CloudMonitorClient , QueueManager , QueueClient -, CloudMonitorClient , BaseClient , CloudBlockStorageSnapshotManager , CloudBlockStorageClient @@ -180,10 +180,15 @@

                                                                            - c -

                                                                              , CloudMonitorNotificationPlanManager
                                                                            • create_alarm() -: CloudMonitorClient -, CloudMonitorEntity -, CloudMonitorCheck +: CloudMonitorEntity , CloudMonitorEntityManager +, CloudMonitorCheck +, CloudMonitorClient +
                                                                            • +
                                                                            • create_backup() +: CloudDatabaseInstance +, CloudDatabaseClient +, CloudDatabaseManager
                                                                            • create_check() : CloudMonitorEntityManager @@ -206,17 +211,17 @@

                                                                              - c -

                                                                              @@ -237,7 +242,7 @@

                                                                              - c -

                                                                                diff --git a/docs/html/functions_func_0x64.html b/docs/html/functions_func_0x64.html index bf1f02b5..ff964562 100644 --- a/docs/html/functions_func_0x64.html +++ b/docs/html/functions_func_0x64.html @@ -158,6 +158,9 @@

                                                                                - d -

                                                                                • delete_all_snapshots() : CloudBlockStorageVolume
                                                                                • +
                                                                                • delete_backup() +: CloudDatabaseClient +
                                                                                • delete_by_ids() : Queue , QueueMessageManager @@ -198,14 +201,14 @@

                                                                                  - d -

                                                                                    : QueueClient
                                                                                  • delete_metadata() -: Node +: CloudLoadBalancerManager , CloudLoadBalancer -, CloudLoadBalancerManager +, Node , CloudLoadBalancerClient
                                                                                  • delete_metadata_for_node() -: CloudLoadBalancer -, CloudLoadBalancerClient +: CloudLoadBalancerClient +, CloudLoadBalancer
                                                                                  • delete_node() : CloudLoadBalancer @@ -227,18 +230,18 @@

                                                                                    - d -

                                                                                      , Container
                                                                                    • delete_policy() -: ScalingGroup +: ScalingGroupManager , AutoScaleClient -, ScalingGroupManager +, ScalingGroup
                                                                                    • delete_ptr_records() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                                    • delete_record() -: CloudDNSManager +: CloudDNSDomain , CloudDNSClient -, CloudDNSDomain +, CloudDNSManager
                                                                                    • delete_session_persistence() : CloudLoadBalancerManager @@ -247,31 +250,31 @@

                                                                                      - d -

                                                                                        : CloudBlockStorageClient
                                                                                      • delete_ssl_termination() -: CloudLoadBalancerClient +: CloudLoadBalancerManager , CloudLoadBalancer -, CloudLoadBalancerManager +, CloudLoadBalancerClient
                                                                                      • delete_tenant() : BaseAuth
                                                                                      • delete_user() -: BaseAuth -, CloudDatabaseInstance +: CloudDatabaseInstance , CloudDatabaseClient +, BaseAuth
                                                                                      • delete_virtualip() -: CloudLoadBalancerClient -, CloudLoadBalancerManager +: CloudLoadBalancerManager , CloudLoadBalancer +, CloudLoadBalancerClient
                                                                                      • delete_volume() : CloudBlockStorageClient
                                                                                      • delete_webhook() -: AutoScalePolicy -, ScalingGroupManager -, ScalingGroup +: ScalingGroup +, AutoScalePolicy , AutoScaleClient +, ScalingGroupManager
                                                                                      • detach() : CloudBlockStorageClient @@ -281,8 +284,8 @@

                                                                                        - d -

                                                                                        @@ -303,7 +306,7 @@

                                                                                        - d -

                                                                                          diff --git a/docs/html/functions_func_0x67.html b/docs/html/functions_func_0x67.html index a67ecc0c..4c6e75fe 100644 --- a/docs/html/functions_func_0x67.html +++ b/docs/html/functions_func_0x67.html @@ -156,6 +156,9 @@

                                                                                          - g -

                                                                                          • get_audits() : CloudMonitorClient
                                                                                          • +
                                                                                          • get_backup() +: CloudDatabaseClient +
                                                                                          • get_check() : CloudMonitorEntityManager , CloudMonitorClient @@ -164,8 +167,8 @@

                                                                                            - g -

                                                                                              : CloudMonitorClient
                                                                                            • get_claim() -: QueueClient -, Queue +: Queue +, QueueClient
                                                                                            • get_configuration() : ScalingGroup @@ -234,9 +237,9 @@

                                                                                              - g -

                                                                                                : CloudDatabaseClient
                                                                                              • get_health_monitor() -: CloudLoadBalancer +: CloudLoadBalancerClient +, CloudLoadBalancer , CloudLoadBalancerManager -, CloudLoadBalancerClient
                                                                                              • get_home_document() : QueueClient @@ -258,13 +261,13 @@

                                                                                                - g -

                                                                                                  , QueueClient
                                                                                                • get_metadata() -: QueueManager -, CloudLoadBalancer +: StorageObject +, CloudLoadBalancerClient , Container -, StorageObject +, CloudLoadBalancer , CloudLoadBalancerManager , Node -, CloudLoadBalancerClient +, QueueManager , QueueClient
                                                                                                • get_metadata_for_node() @@ -290,8 +293,8 @@

                                                                                                  - g -

                                                                                                    : CloudMonitorClient
                                                                                                  • get_object() -: Container -, CFClient +: CFClient +, Container
                                                                                                  • get_object_metadata() : CFClient @@ -303,9 +306,9 @@

                                                                                                    - g -

                                                                                                      : Container
                                                                                                    • get_policy() -: ScalingGroup +: AutoScaleClient +, ScalingGroup , ScalingGroupManager -, AutoScaleClient
                                                                                                    • get_rate_limits() : CloudDNSClient @@ -323,31 +326,31 @@

                                                                                                      - g -

                                                                                                        , CloudNetwork
                                                                                                      • get_session_persistence() -: CloudLoadBalancerClient -, CloudLoadBalancerManager +: CloudLoadBalancerManager +, CloudLoadBalancerClient
                                                                                                      • get_ssl_termination() : CloudLoadBalancerClient -, CloudLoadBalancerManager , CloudLoadBalancer +, CloudLoadBalancerManager
                                                                                                      • get_state() -: ScalingGroup -, AutoScaleClient +: AutoScaleClient +, ScalingGroup , ScalingGroupManager
                                                                                                      • get_stats() -: CloudLoadBalancerManager -, QueueClient +: QueueClient , QueueManager +, CloudLoadBalancerManager
                                                                                                      • get_subdomain_iterator() : CloudDNSClient
                                                                                                      • get_temp_url() -: Container -, CFClient +: CFClient , StorageObject +, Container
                                                                                                      • get_temp_url_key() : CFClient @@ -359,8 +362,8 @@

                                                                                                        - g -

                                                                                                          : BaseClient
                                                                                                        • get_token() -: ServiceCatalog -, BaseAuth +: BaseAuth +, ServiceCatalog
                                                                                                        • get_token_endpoints() : BaseAuth @@ -372,27 +375,27 @@

                                                                                                          - g -

                                                                                                          @@ -413,7 +416,7 @@

                                                                                                          - g -

                                                                                                            diff --git a/docs/html/functions_func_0x6c.html b/docs/html/functions_func_0x6c.html index 4700b237..89698fd9 100644 --- a/docs/html/functions_func_0x6c.html +++ b/docs/html/functions_func_0x6c.html @@ -116,18 +116,24 @@

                                                                                                            - l -

                                                                                                            • list() : CFClient , BaseClient -, CloudDNSClient +, CloudDNSManager +, Queue , QueueMessageManager +, CloudDNSClient +, CloudDatabaseBackupManager , CloudMonitorClient -, CloudDNSManager , BaseManager -, Queue
                                                                                                            • list_alarms() : CloudMonitorEntity , CloudMonitorEntityManager , CloudMonitorClient
                                                                                                            • +
                                                                                                            • list_backups() +: CloudDatabaseManager +, CloudDatabaseInstance +, CloudDatabaseClient +
                                                                                                            • list_by_claim() : Queue
                                                                                                            • @@ -175,10 +181,10 @@

                                                                                                              - l -

                                                                                                                : QueueClient
                                                                                                              • list_metrics() -: CloudMonitorCheck -, CloudMonitorClient -, CloudMonitorEntity +: CloudMonitorEntity , CloudMonitorEntityManager +, CloudMonitorCheck +, CloudMonitorClient
                                                                                                              • list_monitoring_zones() : CloudMonitorClient @@ -218,8 +224,8 @@

                                                                                                                - l -

                                                                                                                  , CloudDNSClient
                                                                                                                • list_records_next_page() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                                                                • list_records_previous_page() : CloudDNSManager @@ -229,25 +235,25 @@

                                                                                                                  - l -

                                                                                                                    : BaseAuth
                                                                                                                  • list_snapshots() -: CloudBlockStorageManager -, CloudBlockStorageClient +: CloudBlockStorageClient +, CloudBlockStorageManager , CloudBlockStorageVolume
                                                                                                                  • list_subdirs() : Container
                                                                                                                  • list_subdomains() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager , CloudDNSDomain +, CloudDNSClient
                                                                                                                  • list_subdomains_next_page() : CloudDNSClient , CloudDNSManager
                                                                                                                  • list_subdomains_previous_page() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                                                                                  • list_tenants() : BaseAuth @@ -260,20 +266,20 @@

                                                                                                                    - l -

                                                                                                                    @@ -295,7 +301,7 @@

                                                                                                                    - l -

                                                                                                                      diff --git a/docs/html/functions_func_0x72.html b/docs/html/functions_func_0x72.html index cb32b15f..d414f093 100644 --- a/docs/html/functions_func_0x72.html +++ b/docs/html/functions_func_0x72.html @@ -173,6 +173,10 @@

                                                                                                                      - r -

                                                                                                                        : CloudDatabaseInstance , CloudDatabaseClient +
                                                                                                                      • restore_backup() +: CloudDatabaseManager +, CloudDatabaseClient +
                                                                                                                      • resume() : ScalingGroupManager , AutoScaleClient @@ -185,13 +189,13 @@

                                                                                                                        - r -

                                                                                                                          , CloudDatabaseInstance
                                                                                                                        • root_user_status() -: CloudDatabaseInstance -, CloudDatabaseClient +: CloudDatabaseClient +, CloudDatabaseInstance
                                                                                                                        • run() -: BulkDeleter +: FolderUploader , _WaitThread -, FolderUploader +, BulkDeleter
                                                                                                                        • run_hooks() : BaseManager @@ -215,7 +219,7 @@

                                                                                                                          - r -

                                                                                                                            diff --git a/docs/html/functions_func_0x75.html b/docs/html/functions_func_0x75.html index 10a1a2c1..94d66f6e 100644 --- a/docs/html/functions_func_0x75.html +++ b/docs/html/functions_func_0x75.html @@ -119,21 +119,23 @@

                                                                                                                            - u -

                                                                                                                            • update() : ScalingGroupManager -, CloudDNSRecord +, CloudDatabaseUserManager +, CloudMonitorEntity +, CloudMonitorCheck +, CloudDatabaseUser , CloudMonitorNotification , CloudMonitorAlarm -, CloudDNSDomain -, QueueClaimManager , AutoScalePolicy -, CloudLoadBalancer -, CloudLoadBalancerManager +, CloudDNSRecord +, QueueClaimManager +, CloudDNSDomain , ScalingGroup , AutoScaleWebhook +, CloudLoadBalancer +, CloudLoadBalancerManager +, AutoScaleClient , Node , CloudLoadBalancerClient -, AutoScaleClient -, CloudMonitorEntity -, CloudMonitorCheck
                                                                                                                            • update_alarm() : CloudMonitorEntity @@ -157,9 +159,9 @@

                                                                                                                              - u -

                                                                                                                                , CloudMonitorClient
                                                                                                                              • update_launch_config() -: AutoScaleClient -, ScalingGroup +: ScalingGroup , ScalingGroupManager +, AutoScaleClient
                                                                                                                              • update_launch_metadata() : ScalingGroup @@ -168,21 +170,21 @@

                                                                                                                                - u -

                                                                                                                                • update_metadata() : ScalingGroup -, CloudLoadBalancerClient , ScalingGroupManager , AutoScaleWebhook , AutoScaleClient , CloudLoadBalancer , CloudLoadBalancerManager , Node +, CloudLoadBalancerClient
                                                                                                                                • update_metadata_for_node() -: CloudLoadBalancer -, CloudLoadBalancerClient +: CloudLoadBalancerClient +, CloudLoadBalancer
                                                                                                                                • update_node() -: CloudLoadBalancerManager -, CloudLoadBalancer +: CloudLoadBalancer +, CloudLoadBalancerManager , CloudLoadBalancerClient
                                                                                                                                • update_notification() @@ -190,46 +192,48 @@

                                                                                                                                  - u -

                                                                                                                                    , CloudMonitorClient
                                                                                                                                  • update_policy() -: ScalingGroupManager +: ScalingGroup +, ScalingGroupManager , AutoScaleClient -, ScalingGroup
                                                                                                                                  • update_ptr_record() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                                                                                                  • update_record() : CloudDNSManager -, CloudDNSClient , CloudDNSDomain +, CloudDNSClient
                                                                                                                                  • update_ssl_termination() : CloudLoadBalancer -, CloudLoadBalancerClient , CloudLoadBalancerManager +, CloudLoadBalancerClient
                                                                                                                                  • update_tenant() : BaseAuth
                                                                                                                                  • update_user() -: RaxIdentity -, BaseAuth +: BaseAuth +, RaxIdentity +, CloudDatabaseClient +, CloudDatabaseInstance
                                                                                                                                  • update_webhook() -: ScalingGroup -, ScalingGroupManager +: AutoScalePolicy , AutoScaleClient -, AutoScalePolicy +, ScalingGroup +, ScalingGroupManager
                                                                                                                                  • update_webhook_metadata() -: ScalingGroupManager -, AutoScalePolicy +: AutoScalePolicy , AutoScaleClient , ScalingGroup +, ScalingGroupManager
                                                                                                                                  • upload_file() -: CFClient -, Container +: Container +, CFClient
                                                                                                                                  • upload_files_in_folder() : FolderUploader @@ -262,7 +266,7 @@

                                                                                                                                    - u -

                                                                                                                                      diff --git a/docs/html/functions_vars_0x67.html b/docs/html/functions_vars_0x67.html index 654fb7ed..16a2dab4 100644 --- a/docs/html/functions_vars_0x67.html +++ b/docs/html/functions_vars_0x67.html @@ -121,6 +121,7 @@

                                                                                                                                      - g -

                                                                                                                                      • get_details : BaseResource +, CloudDatabaseBackup , CloudDatabaseFlavor , CloudDatabaseUser
                                                                                                                                      • @@ -143,7 +144,7 @@

                                                                                                                                        - g -

                                                                                                                                          diff --git a/docs/html/functions_vars_0x68.html b/docs/html/functions_vars_0x68.html index 5ddd3d16..9180211d 100644 --- a/docs/html/functions_vars_0x68.html +++ b/docs/html/functions_vars_0x68.html @@ -113,23 +113,26 @@  

                                                                                                                                          - h -

                                                                                                                                            +
                                                                                                                                          • host +: CloudDatabaseUser +
                                                                                                                                          • href : QueueMessage , QueueClaim
                                                                                                                                          • http_log_debug -: Connection +: BaseAuth +, Connection , BaseClient -, BaseAuth
                                                                                                                                          • http_status -: NotFound -, OverLimit -, Unauthorized +: Forbidden +, NoUniqueMatch , BadRequest , HTTPNotImplemented -, Forbidden -, NoUniqueMatch +, OverLimit +, Unauthorized +, NotFound
                                                                                                                                          • HUMAN_ID : BaseResource @@ -153,7 +156,7 @@

                                                                                                                                            - h -

                                                                                                                                              diff --git a/docs/html/functions_vars_0x6e.html b/docs/html/functions_vars_0x6e.html index c48f55c5..3e170ad3 100644 --- a/docs/html/functions_vars_0x6e.html +++ b/docs/html/functions_vars_0x6e.html @@ -117,18 +117,19 @@

                                                                                                                                              - n -

                                                                                                                                                : AutoScaleClient , Container , BaseClient -, CloudDNSPTRRecord -, SelfDeletingTempDirectory +, CloudDNSRecord , SelfDeletingTempfile +, SelfDeletingTempDirectory , QueueClient , Queue , CloudNetworkClient , CloudMonitorClient , CloudLoadBalancerClient , CloudDNSClient +, CloudDNSPTRRecord , CloudBlockStorageClient -, CloudDNSRecord , CloudDatabaseClient +, CloudDatabaseUser , StorageObject
                                                                                                                                              • NAME_ATTR @@ -159,7 +160,7 @@

                                                                                                                                                - n -

                                                                                                                                              • +
                                                                                                                                              • DBUpdateUnchanged
                                                                                                                                              • DNSCallTimedOut
                                                                                                                                              • DomainCreationFailed
                                                                                                                                              • DomainDeletionFailed
                                                                                                                                              • @@ -224,6 +227,7 @@
                                                                                                                                              • KeyringUsernameMissing
                                                                                                                                              • MissingAuthSettings
                                                                                                                                              • MissingClaimParameters
                                                                                                                                              • +
                                                                                                                                              • MissingDBUserParameters
                                                                                                                                              • MissingDNSSettings
                                                                                                                                              • MissingHealthMonitorSettings
                                                                                                                                              • MissingLoadBalancerParameters
                                                                                                                                              • @@ -299,7 +303,7 @@ diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html index 92d35f9f..def5d7b5 100644 --- a/docs/html/namespacemembers.html +++ b/docs/html/namespacemembers.html @@ -284,9 +284,6 @@

                                                                                                                                                - d -

                                                                                                                                                  : pyrax::base_identity , pyrax::cf_wrapper::client -
                                                                                                                                                • DAYS_14 -: pyrax::queueing -
                                                                                                                                                • debug : pyrax
                                                                                                                                                • @@ -634,7 +631,7 @@

                                                                                                                                                  - w -

                                                                                                                                                    diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html index a3be16a0..a5a71d11 100644 --- a/docs/html/namespacemembers_vars.html +++ b/docs/html/namespacemembers_vars.html @@ -207,9 +207,6 @@

                                                                                                                                                    - d -

                                                                                                                                                      : pyrax::base_identity , pyrax::cf_wrapper::client -
                                                                                                                                                    • DAYS_14 -: pyrax::queueing -
                                                                                                                                                    • debug : pyrax
                                                                                                                                                    • @@ -441,7 +438,7 @@

                                                                                                                                                      - v -

                                                                                                                                                        diff --git a/docs/html/namespacepyrax_1_1clouddatabases.html b/docs/html/namespacepyrax_1_1clouddatabases.html index d636076e..2e641ad0 100644 --- a/docs/html/namespacepyrax_1_1clouddatabases.html +++ b/docs/html/namespacepyrax_1_1clouddatabases.html @@ -113,6 +113,8 @@  This class manages communication with databases on Cloud Database instances. More...
                                                                                                                                                        class  CloudDatabaseUserManager  This class handles operations on the users in a database on a Cloud Database instance. More...
                                                                                                                                                        +class  CloudDatabaseBackupManager + This class handles operations on backups for a Cloud Database instance. More...
                                                                                                                                                        class  CloudDatabaseInstance  This class represents a MySQL instance in the cloud. More...
                                                                                                                                                        class  CloudDatabaseDatabase @@ -121,6 +123,8 @@  This class represents a user on a CloudDatabaseInstance. More...
                                                                                                                                                        class  CloudDatabaseFlavor  This class represents the available instance configurations, or 'flavors', which you use to define the memory and CPU size of your instance. More...
                                                                                                                                                        +class  CloudDatabaseBackup + This class represents a database backup. More...
                                                                                                                                                        class  CloudDatabaseClient  This is the primary class for interacting with Cloud Databases. More...

                                                                                                                                                        @@ -163,7 +167,7 @@ diff --git a/docs/html/namespacepyrax_1_1exceptions.html b/docs/html/namespacepyrax_1_1exceptions.html index c60f3021..9fed9c98 100644 --- a/docs/html/namespacepyrax_1_1exceptions.html +++ b/docs/html/namespacepyrax_1_1exceptions.html @@ -113,6 +113,7 @@ class  AuthorizationFailure class  AuthSystemNotFound class  CDNFailed +class  DBUpdateUnchanged class  DNSCallTimedOut class  DomainCreationFailed class  DomainDeletionFailed @@ -160,6 +161,7 @@ class  InvalidVolumeResize class  MissingAuthSettings class  MissingClaimParameters +class  MissingDBUserParameters class  MissingDNSSettings class  MissingHealthMonitorSettings class  MissingLoadBalancerParameters @@ -322,7 +324,7 @@ diff --git a/docs/html/namespacepyrax_1_1queueing.html b/docs/html/namespacepyrax_1_1queueing.html index b20c5064..2961349a 100644 --- a/docs/html/namespacepyrax_1_1queueing.html +++ b/docs/html/namespacepyrax_1_1queueing.html @@ -129,7 +129,6 @@  Converts a queue ID or name passed as the 'queue' parameter to a Queue object.

                                                                                                                                                        Variables

                                                                                                                                                        -int DAYS_14 = 1209600 int MSG_LIMIT = 10 tuple marker_pat = re.compile(r".+\bmarker=(\d+).*") @@ -154,19 +153,6 @@

                                                                                                                                                        Variable Documentation

                                                                                                                                                        - -
                                                                                                                                                        -
                                                                                                                                                        - - - - -
                                                                                                                                                        int DAYS_14 = 1209600
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        - -
                                                                                                                                                        -
                                                                                                                                                        @@ -211,7 +197,7 @@ diff --git a/docs/html/namespacepyrax_1_1version.html b/docs/html/namespacepyrax_1_1version.html index 92c05a31..dd512dd4 100644 --- a/docs/html/namespacepyrax_1_1version.html +++ b/docs/html/namespacepyrax_1_1version.html @@ -105,7 +105,7 @@ - +

                                                                                                                                                        Variables

                                                                                                                                                        string version = "1.6.0"
                                                                                                                                                        string version = "1.6.1"

                                                                                                                                                        Variable Documentation

                                                                                                                                                        @@ -113,7 +113,7 @@
                                                                                                                                                        - +
                                                                                                                                                        string version = "1.6.0"string version = "1.6.1"
                                                                                                                                                        @@ -139,7 +139,7 @@ diff --git a/docs/html/queueing_8py.html b/docs/html/queueing_8py.html index dac0a1c6..e46affde 100644 --- a/docs/html/queueing_8py.html +++ b/docs/html/queueing_8py.html @@ -112,7 +112,6 @@  Converts a queue ID or name passed as the 'queue' parameter to a Queue object.

                                                                                                                                                        Variables

                                                                                                                                                        -int DAYS_14 = 1209600 int MSG_LIMIT = 10 tuple marker_pat = re.compile(r".+\bmarker=(\d+).*") @@ -134,7 +133,7 @@ diff --git a/docs/html/search/all_63.js b/docs/html/search/all_63.js index fd936ab6..49161120 100644 --- a/docs/html/search/all_63.js +++ b/docs/html/search/all_63.js @@ -50,6 +50,8 @@ var searchData= ['cloudblockstoragesnapshotmanager',['CloudBlockStorageSnapshotManager',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolume',['CloudBlockStorageVolume',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolumetype',['CloudBlockStorageVolumeType',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolumeType.html',1,'pyrax::cloudblockstorage']]], + ['clouddatabasebackup',['CloudDatabaseBackup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html',1,'pyrax::clouddatabases']]], + ['clouddatabasebackupmanager',['CloudDatabaseBackupManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html',1,'pyrax::clouddatabases']]], ['clouddatabaseclient',['CloudDatabaseClient',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabase',['CloudDatabaseDatabase',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabasemanager',['CloudDatabaseDatabaseManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabaseManager.html',1,'pyrax::clouddatabases']]], @@ -106,13 +108,13 @@ var searchData= ['connect_5fto_5fcloudservers',['connect_to_cloudservers',['../namespacepyrax.html#a93dcb702dfed414cb32073e78fdff831',1,'pyrax']]], ['connect_5fto_5fqueues',['connect_to_queues',['../namespacepyrax.html#ac8d659180e8fac04349063827198b196',1,'pyrax']]], ['connect_5fto_5fservices',['connect_to_services',['../namespacepyrax.html#a708483dfb93616381fb0ec9338ab5528',1,'pyrax']]], - ['connection',['Connection',['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html',1,'pyrax::cf_wrapper::client']]], ['connection',['connection',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a10275a078bd1abcbebc206cc5d19e18b',1,'pyrax::cf_wrapper::client::CFClient']]], + ['connection',['Connection',['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html',1,'pyrax::cf_wrapper::client']]], ['connection_5flogging',['connection_logging',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a863329ee2898f7d6212281bab325e419',1,'pyrax::cloudloadbalancers::CloudLoadBalancer']]], ['connection_5fretries',['CONNECTION_RETRIES',['../namespacepyrax_1_1cf__wrapper_1_1client.html#a19074fb0e7d33e5cb6f2fc49877e64c1',1,'pyrax::cf_wrapper::client']]], ['connection_5ftimeout',['CONNECTION_TIMEOUT',['../namespacepyrax_1_1cf__wrapper_1_1client.html#a32d68802775b5e101a259fb6f3edf5d7',1,'pyrax::cf_wrapper::client']]], - ['container',['container',['../classpyrax_1_1cf__wrapper_1_1client_1_1FolderUploader.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::FolderUploader.container()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1BulkDeleter.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::BulkDeleter.container()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::storage_object::StorageObject.container()']]], ['container',['Container',['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html',1,'pyrax::cf_wrapper::container']]], + ['container',['container',['../classpyrax_1_1cf__wrapper_1_1client_1_1FolderUploader.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::FolderUploader.container()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1BulkDeleter.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::BulkDeleter.container()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::storage_object::StorageObject.container()']]], ['container_2epy',['container.py',['../container_8py.html',1,'']]], ['container_5fmeta_5fprefix',['container_meta_prefix',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b5995b5ab3392bd65e1fcaf722b6707',1,'pyrax::cf_wrapper::client::CFClient']]], ['content_5fcaching',['content_caching',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a1cd94acd6d68908839cb20d0ad216ba5',1,'pyrax::cloudloadbalancers::CloudLoadBalancer']]], @@ -122,6 +124,7 @@ var searchData= ['copy_5fobject',['copy_object',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::client::CFClient.copy_object()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::container::Container.copy_object()']]], ['create',['create',['../classpyrax_1_1client_1_1BaseClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::client::BaseClient.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshotManager.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageClient.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlanManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlanManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorClient.create()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudnetworks::CloudNetworkClient.create()'],['../classpyrax_1_1manager_1_1BaseManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::manager::BaseManager.create()'],['../classpyrax_1_1queueing_1_1QueueManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueManager.create()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueClient.create()']]], ['create_5falarm',['create_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntity.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorCheck.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_alarm()']]], + ['create_5fbackup',['create_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseManager.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseClient.create_backup()']]], ['create_5fcheck',['create_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_check()']]], ['create_5fcontainer',['create_container',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a31b9196903b253dd2cd99dc4d7a0774e',1,'pyrax::cf_wrapper::client::CFClient']]], ['create_5fdatabase',['create_database',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_database()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseClient.create_database()']]], diff --git a/docs/html/search/all_64.js b/docs/html/search/all_64.js index 4660d4c6..3f1e4fbc 100644 --- a/docs/html/search/all_64.js +++ b/docs/html/search/all_64.js @@ -2,7 +2,7 @@ var searchData= [ ['data',['data',['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSRecord.data()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSPTRRecord.data()']]], ['date_5fformat',['DATE_FORMAT',['../namespacepyrax_1_1base__identity.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::base_identity.DATE_FORMAT()'],['../namespacepyrax_1_1cf__wrapper_1_1client.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::cf_wrapper::client.DATE_FORMAT()']]], - ['days_5f14',['DAYS_14',['../namespacepyrax_1_1queueing.html#af085154866e1b5a067335fc640e279bd',1,'pyrax::queueing']]], + ['dbupdateunchanged',['DBUpdateUnchanged',['../classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html',1,'pyrax::exceptions']]], ['debug',['debug',['../namespacepyrax.html#a4c919e19877c5868fcd9f7662c236649',1,'pyrax']]], ['default_5fcdn_5fttl',['default_cdn_ttl',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a15a3ad1a3abde8c5a3fede95c2b24c19',1,'pyrax::cf_wrapper::client::CFClient']]], ['default_5fdelay',['DEFAULT_DELAY',['../namespacepyrax_1_1clouddns.html#a0695d4ce7bb0b1de03ba3068cde8d89a',1,'pyrax::clouddns']]], @@ -15,6 +15,7 @@ var searchData= ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], ['delete_5fall_5fobjects',['delete_all_objects',['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a29c7d5f06a4fdc49b064a4352e8c8763',1,'pyrax::cf_wrapper::container::Container']]], ['delete_5fall_5fsnapshots',['delete_all_snapshots',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#aec8a47767c07e19ef3ad9f6b974240bb',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume']]], + ['delete_5fbackup',['delete_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a75e968bbf5e6ff6c377c3bf0f8f56694',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['delete_5fby_5fids',['delete_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::Queue.delete_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::QueueMessageManager.delete_by_ids()']]], ['delete_5fcheck',['delete_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_check()']]], ['delete_5fconnection_5fthrottle',['delete_connection_throttle',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_connection_throttle()']]], diff --git a/docs/html/search/all_67.js b/docs/html/search/all_67.js index 4431e314..3e0a63a7 100644 --- a/docs/html/search/all_67.js +++ b/docs/html/search/all_67.js @@ -8,6 +8,7 @@ var searchData= ['get_5falarm',['get_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntity.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_alarm()']]], ['get_5fall_5fcontainers',['get_all_containers',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#ae413c04282e2a1f584d7b99bbea09b54',1,'pyrax::cf_wrapper::client::CFClient']]], ['get_5faudits',['get_audits',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ad18caa6ffb1e5081c9aa71d04a434ce6',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], + ['get_5fbackup',['get_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a3a01f4e15e08d87606f2886455804879',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['get_5fcheck',['get_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_check()']]], ['get_5fcheck_5ftype',['get_check_type',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4ec84467f00cf7b6b321984347025d14',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], ['get_5fchecksum',['get_checksum',['../namespacepyrax_1_1utils.html#a9e1881e14792f2c07dd799fd7b9d53d1',1,'pyrax::utils']]], @@ -25,7 +26,7 @@ var searchData= ['get_5fcontent_5fcaching',['get_content_caching',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a81bd711b5a3cfb2976088a62c9adc6e0',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.get_content_caching()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a81bd711b5a3cfb2976088a62c9adc6e0',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.get_content_caching()']]], ['get_5fdatabase',['get_database',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a88023cfc83e7c3c6343e1b37f1fb7f4f',1,'pyrax::clouddatabases::CloudDatabaseInstance.get_database()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a88023cfc83e7c3c6343e1b37f1fb7f4f',1,'pyrax::clouddatabases::CloudDatabaseClient.get_database()']]], ['get_5fdefault_5fregion',['get_default_region',['../classpyrax_1_1base__identity_1_1BaseAuth.html#aa48069d87e240c6f35caed1b76e8cb4e',1,'pyrax::base_identity::BaseAuth']]], - ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]], + ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseBackup::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]], ['get_5fdevice',['get_device',['../classpyrax_1_1cloudloadbalancers_1_1Node.html#aab56944ec3d6d817943ee557024ac816',1,'pyrax::cloudloadbalancers::Node']]], ['get_5fdomain_5fiterator',['get_domain_iterator',['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a603939fc833c990994af7e8cfaad5eda',1,'pyrax::clouddns::CloudDNSClient']]], ['get_5fencoding',['get_encoding',['../namespacepyrax.html#a449ca982d93692884375caa2d609b3b0',1,'pyrax']]], diff --git a/docs/html/search/all_68.js b/docs/html/search/all_68.js index 50faa835..38d8d0e9 100644 --- a/docs/html/search/all_68.js +++ b/docs/html/search/all_68.js @@ -3,6 +3,7 @@ var searchData= ['handle_5fswiftclient_5fexception',['handle_swiftclient_exception',['../namespacepyrax_1_1cf__wrapper_1_1client.html#aed48921b20ac7d5d1bf17dae8e2f971d',1,'pyrax::cf_wrapper::client']]], ['head',['head',['../classpyrax_1_1manager_1_1BaseManager.html#a6ffb8c9775dd06f2a95c5be870862051',1,'pyrax::manager::BaseManager']]], ['head_5fdate_5fformat',['HEAD_DATE_FORMAT',['../namespacepyrax_1_1cf__wrapper_1_1client.html#aea95a0010e586f71e6587a111cae730c',1,'pyrax::cf_wrapper::client']]], + ['host',['host',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#a832ddc04754e8a43d4f3c6165b1294a7',1,'pyrax::clouddatabases::CloudDatabaseUser']]], ['href',['href',['../classpyrax_1_1queueing_1_1QueueMessage.html#aecfca4286e302d5d945be6fe76b99c86',1,'pyrax::queueing::QueueMessage.href()'],['../classpyrax_1_1queueing_1_1QueueClaim.html#ab8d8e60d0ff1588f6381ad0bef8ad4b7',1,'pyrax::queueing::QueueClaim.href()']]], ['http_5flog_5fdebug',['http_log_debug',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::base_identity::BaseAuth.http_log_debug()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::cf_wrapper::client::CFClient.http_log_debug()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::cf_wrapper::client::Connection::http_log_debug()'],['../classpyrax_1_1client_1_1BaseClient.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::client::BaseClient.http_log_debug()']]], ['http_5flog_5freq',['http_log_req',['../classpyrax_1_1client_1_1BaseClient.html#a1d196f692455d5ea3eafe3d08178b131',1,'pyrax::client::BaseClient']]], diff --git a/docs/html/search/all_6c.js b/docs/html/search/all_6c.js index c4e0b9fb..ff6542e2 100644 --- a/docs/html/search/all_6c.js +++ b/docs/html/search/all_6c.js @@ -2,8 +2,9 @@ var searchData= [ ['label',['label',['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#a22f45a3cb4f074e609f58ebaeef0ecf9',1,'pyrax::cloudnetworks::CloudNetwork']]], ['last_5fmodified',['last_modified',['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#aacadc30373e677c508e7b598fe832e32',1,'pyrax::cf_wrapper::storage_object::StorageObject']]], - ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], + ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddatabases::CloudDatabaseBackupManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], ['list_5falarms',['list_alarms',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntity.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorClient.list_alarms()']]], + ['list_5fbackups',['list_backups',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseManager.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseInstance.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseClient.list_backups()']]], ['list_5fby_5fclaim',['list_by_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac7bd1cb861452925a16e74d9b6aafd43',1,'pyrax::queueing::Queue']]], ['list_5fby_5fids',['list_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::Queue.list_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::QueueMessageManager.list_by_ids()']]], ['list_5fcheck_5ftypes',['list_check_types',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a360142ff4cbb495a8e5ba41b9c810a8b',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], diff --git a/docs/html/search/all_6d.js b/docs/html/search/all_6d.js index 2bafd4d8..ec43be4f 100644 --- a/docs/html/search/all_6d.js +++ b/docs/html/search/all_6d.js @@ -25,6 +25,7 @@ var searchData= ['min_5fsize',['MIN_SIZE',['../namespacepyrax_1_1cloudblockstorage.html#aaba5e7c5484ccde364fadc3e6a496b1f',1,'pyrax::cloudblockstorage']]], ['missingauthsettings',['MissingAuthSettings',['../classpyrax_1_1exceptions_1_1MissingAuthSettings.html',1,'pyrax::exceptions']]], ['missingclaimparameters',['MissingClaimParameters',['../classpyrax_1_1exceptions_1_1MissingClaimParameters.html',1,'pyrax::exceptions']]], + ['missingdbuserparameters',['MissingDBUserParameters',['../classpyrax_1_1exceptions_1_1MissingDBUserParameters.html',1,'pyrax::exceptions']]], ['missingdnssettings',['MissingDNSSettings',['../classpyrax_1_1exceptions_1_1MissingDNSSettings.html',1,'pyrax::exceptions']]], ['missinghealthmonitorsettings',['MissingHealthMonitorSettings',['../classpyrax_1_1exceptions_1_1MissingHealthMonitorSettings.html',1,'pyrax::exceptions']]], ['missingloadbalancerparameters',['MissingLoadBalancerParameters',['../classpyrax_1_1exceptions_1_1MissingLoadBalancerParameters.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/all_6e.js b/docs/html/search/all_6e.js index 74299353..fa39d54c 100644 --- a/docs/html/search/all_6e.js +++ b/docs/html/search/all_6e.js @@ -1,6 +1,6 @@ var searchData= [ - ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetwork.name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorEntity.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorCheck.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorZone.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorZone.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotification.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationType.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationType.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlan.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlan.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], + ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddatabases::CloudDatabaseUser.name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetwork.name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorEntity.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorCheck.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorZone.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorZone.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotification.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationType.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationType.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlan.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlan.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], ['name_5fattr',['NAME_ATTR',['../classpyrax_1_1resource_1_1BaseResource.html#a74fac10a98253f8b0308159a33113ab9',1,'pyrax::resource::BaseResource']]], ['networkcidrinvalid',['NetworkCIDRInvalid',['../classpyrax_1_1exceptions_1_1NetworkCIDRInvalid.html',1,'pyrax::exceptions']]], ['networkcidrmalformed',['NetworkCIDRMalformed',['../classpyrax_1_1exceptions_1_1NetworkCIDRMalformed.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/all_72.js b/docs/html/search/all_72.js index 00dea7f5..c7e0149d 100644 --- a/docs/html/search/all_72.js +++ b/docs/html/search/all_72.js @@ -30,6 +30,7 @@ var searchData= ['resource_5fclass',['resource_class',['../classpyrax_1_1manager_1_1BaseManager.html#ad9ec49f2ad20e5d29aaaedf6da36c880',1,'pyrax::manager::BaseManager']]], ['response_5fkey',['response_key',['../classpyrax_1_1manager_1_1BaseManager.html#ab74e33fd52b6ead303c8ecd584121a47',1,'pyrax::manager::BaseManager']]], ['restart',['restart',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseInstance.restart()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseClient.restart()']]], + ['restore_5fbackup',['restore_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseManager.restore_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseClient.restore_backup()']]], ['results',['results',['../classpyrax_1_1cf__wrapper_1_1client_1_1BulkDeleter.html#a339bb5524b06e496a6aaa0a97a4a8d21',1,'pyrax::cf_wrapper::client::BulkDeleter.results()'],['../classpyrax_1_1clouddns_1_1ResultsIterator.html#a339bb5524b06e496a6aaa0a97a4a8d21',1,'pyrax::clouddns::ResultsIterator.results()']]], ['resultsiterator',['ResultsIterator',['../classpyrax_1_1clouddns_1_1ResultsIterator.html',1,'pyrax::clouddns']]], ['resume',['resume',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroup.resume()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroupManager.resume()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::AutoScaleClient.resume()']]], diff --git a/docs/html/search/all_75.js b/docs/html/search/all_75.js index 9fa775a4..8d402d37 100644 --- a/docs/html/search/all_75.js +++ b/docs/html/search/all_75.js @@ -6,7 +6,7 @@ var searchData= ['unauthenticated',['unauthenticated',['../namespacepyrax_1_1utils.html#a662924ed2118b3ba66f1d1521a7c2b40',1,'pyrax::utils']]], ['unauthorized',['Unauthorized',['../classpyrax_1_1exceptions_1_1Unauthorized.html',1,'pyrax::exceptions']]], ['unicodepatherror',['UnicodePathError',['../classpyrax_1_1exceptions_1_1UnicodePathError.html',1,'pyrax::exceptions']]], - ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], + ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUserManager.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUser.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], ['update_5falarm',['update_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_alarm()']]], ['update_5fcheck',['update_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_check()']]], ['update_5fclaim',['update_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::Queue.update_claim()'],['../classpyrax_1_1queueing_1_1QueueClient.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::QueueClient.update_claim()']]], @@ -24,7 +24,7 @@ var searchData= ['update_5frecord',['update_record',['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSDomain.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSManager.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSClient.update_record()']]], ['update_5fssl_5ftermination',['update_ssl_termination',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update_ssl_termination()']]], ['update_5ftenant',['update_tenant',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a25f2b401ee3068816e774d648abd83de',1,'pyrax::base_identity::BaseAuth']]], - ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], + ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseInstance.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseClient.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], ['update_5fwebhook',['update_webhook',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroup.update_webhook()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroupManager.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScalePolicy.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScaleClient.update_webhook()']]], ['update_5fwebhook_5fmetadata',['update_webhook_metadata',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroup.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroupManager.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScalePolicy.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScaleClient.update_webhook_metadata()']]], ['upload_5ffile',['upload_file',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::client::CFClient.upload_file()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::container::Container.upload_file()']]], diff --git a/docs/html/search/classes_63.js b/docs/html/search/classes_63.js index 9ad3c6b6..71b1fc75 100644 --- a/docs/html/search/classes_63.js +++ b/docs/html/search/classes_63.js @@ -9,6 +9,8 @@ var searchData= ['cloudblockstoragesnapshotmanager',['CloudBlockStorageSnapshotManager',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolume',['CloudBlockStorageVolume',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolumetype',['CloudBlockStorageVolumeType',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolumeType.html',1,'pyrax::cloudblockstorage']]], + ['clouddatabasebackup',['CloudDatabaseBackup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html',1,'pyrax::clouddatabases']]], + ['clouddatabasebackupmanager',['CloudDatabaseBackupManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html',1,'pyrax::clouddatabases']]], ['clouddatabaseclient',['CloudDatabaseClient',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabase',['CloudDatabaseDatabase',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabasemanager',['CloudDatabaseDatabaseManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabaseManager.html',1,'pyrax::clouddatabases']]], diff --git a/docs/html/search/classes_64.js b/docs/html/search/classes_64.js index 18b327ca..d0be0d79 100644 --- a/docs/html/search/classes_64.js +++ b/docs/html/search/classes_64.js @@ -1,5 +1,6 @@ var searchData= [ + ['dbupdateunchanged',['DBUpdateUnchanged',['../classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html',1,'pyrax::exceptions']]], ['dnscalltimedout',['DNSCallTimedOut',['../classpyrax_1_1exceptions_1_1DNSCallTimedOut.html',1,'pyrax::exceptions']]], ['domaincreationfailed',['DomainCreationFailed',['../classpyrax_1_1exceptions_1_1DomainCreationFailed.html',1,'pyrax::exceptions']]], ['domaindeletionfailed',['DomainDeletionFailed',['../classpyrax_1_1exceptions_1_1DomainDeletionFailed.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/classes_6d.js b/docs/html/search/classes_6d.js index 76adec4d..24ec4332 100644 --- a/docs/html/search/classes_6d.js +++ b/docs/html/search/classes_6d.js @@ -2,6 +2,7 @@ var searchData= [ ['missingauthsettings',['MissingAuthSettings',['../classpyrax_1_1exceptions_1_1MissingAuthSettings.html',1,'pyrax::exceptions']]], ['missingclaimparameters',['MissingClaimParameters',['../classpyrax_1_1exceptions_1_1MissingClaimParameters.html',1,'pyrax::exceptions']]], + ['missingdbuserparameters',['MissingDBUserParameters',['../classpyrax_1_1exceptions_1_1MissingDBUserParameters.html',1,'pyrax::exceptions']]], ['missingdnssettings',['MissingDNSSettings',['../classpyrax_1_1exceptions_1_1MissingDNSSettings.html',1,'pyrax::exceptions']]], ['missinghealthmonitorsettings',['MissingHealthMonitorSettings',['../classpyrax_1_1exceptions_1_1MissingHealthMonitorSettings.html',1,'pyrax::exceptions']]], ['missingloadbalancerparameters',['MissingLoadBalancerParameters',['../classpyrax_1_1exceptions_1_1MissingLoadBalancerParameters.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/functions_63.js b/docs/html/search/functions_63.js index 43367bb3..2d207ed5 100644 --- a/docs/html/search/functions_63.js +++ b/docs/html/search/functions_63.js @@ -31,6 +31,7 @@ var searchData= ['copy_5fobject',['copy_object',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::client::CFClient.copy_object()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::container::Container.copy_object()']]], ['create',['create',['../classpyrax_1_1client_1_1BaseClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::client::BaseClient.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshotManager.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageClient.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlanManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlanManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorClient.create()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudnetworks::CloudNetworkClient.create()'],['../classpyrax_1_1manager_1_1BaseManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::manager::BaseManager.create()'],['../classpyrax_1_1queueing_1_1QueueManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueManager.create()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueClient.create()']]], ['create_5falarm',['create_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntity.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorCheck.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_alarm()']]], + ['create_5fbackup',['create_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseManager.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseClient.create_backup()']]], ['create_5fcheck',['create_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_check()']]], ['create_5fcontainer',['create_container',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a31b9196903b253dd2cd99dc4d7a0774e',1,'pyrax::cf_wrapper::client::CFClient']]], ['create_5fdatabase',['create_database',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_database()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseClient.create_database()']]], diff --git a/docs/html/search/functions_64.js b/docs/html/search/functions_64.js index 597d5f13..b7496ed3 100644 --- a/docs/html/search/functions_64.js +++ b/docs/html/search/functions_64.js @@ -6,6 +6,7 @@ var searchData= ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], ['delete_5fall_5fobjects',['delete_all_objects',['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a29c7d5f06a4fdc49b064a4352e8c8763',1,'pyrax::cf_wrapper::container::Container']]], ['delete_5fall_5fsnapshots',['delete_all_snapshots',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#aec8a47767c07e19ef3ad9f6b974240bb',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume']]], + ['delete_5fbackup',['delete_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a75e968bbf5e6ff6c377c3bf0f8f56694',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['delete_5fby_5fids',['delete_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::Queue.delete_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::QueueMessageManager.delete_by_ids()']]], ['delete_5fcheck',['delete_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_check()']]], ['delete_5fconnection_5fthrottle',['delete_connection_throttle',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_connection_throttle()']]], diff --git a/docs/html/search/functions_67.js b/docs/html/search/functions_67.js index 621ec434..afc49780 100644 --- a/docs/html/search/functions_67.js +++ b/docs/html/search/functions_67.js @@ -8,6 +8,7 @@ var searchData= ['get_5falarm',['get_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntity.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_alarm()']]], ['get_5fall_5fcontainers',['get_all_containers',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#ae413c04282e2a1f584d7b99bbea09b54',1,'pyrax::cf_wrapper::client::CFClient']]], ['get_5faudits',['get_audits',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ad18caa6ffb1e5081c9aa71d04a434ce6',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], + ['get_5fbackup',['get_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a3a01f4e15e08d87606f2886455804879',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['get_5fcheck',['get_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_check()']]], ['get_5fcheck_5ftype',['get_check_type',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4ec84467f00cf7b6b321984347025d14',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], ['get_5fchecksum',['get_checksum',['../namespacepyrax_1_1utils.html#a9e1881e14792f2c07dd799fd7b9d53d1',1,'pyrax::utils']]], diff --git a/docs/html/search/functions_6c.js b/docs/html/search/functions_6c.js index d55ecdca..2c136ec4 100644 --- a/docs/html/search/functions_6c.js +++ b/docs/html/search/functions_6c.js @@ -1,7 +1,8 @@ var searchData= [ - ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], + ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddatabases::CloudDatabaseBackupManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], ['list_5falarms',['list_alarms',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntity.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorClient.list_alarms()']]], + ['list_5fbackups',['list_backups',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseManager.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseInstance.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseClient.list_backups()']]], ['list_5fby_5fclaim',['list_by_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac7bd1cb861452925a16e74d9b6aafd43',1,'pyrax::queueing::Queue']]], ['list_5fby_5fids',['list_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::Queue.list_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::QueueMessageManager.list_by_ids()']]], ['list_5fcheck_5ftypes',['list_check_types',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a360142ff4cbb495a8e5ba41b9c810a8b',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], diff --git a/docs/html/search/functions_72.js b/docs/html/search/functions_72.js index 58aad181..9919e40f 100644 --- a/docs/html/search/functions_72.js +++ b/docs/html/search/functions_72.js @@ -19,6 +19,7 @@ var searchData= ['resize',['resize',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html#a8f82cbc9bffef6b720c446024ddf35f9',1,'pyrax::clouddatabases::CloudDatabaseVolume.resize()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a8f82cbc9bffef6b720c446024ddf35f9',1,'pyrax::clouddatabases::CloudDatabaseInstance.resize()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8f82cbc9bffef6b720c446024ddf35f9',1,'pyrax::clouddatabases::CloudDatabaseClient.resize()']]], ['resize_5fvolume',['resize_volume',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a184e71e943f21eaf224c511df2b58262',1,'pyrax::clouddatabases::CloudDatabaseInstance']]], ['restart',['restart',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseInstance.restart()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseClient.restart()']]], + ['restore_5fbackup',['restore_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseManager.restore_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseClient.restore_backup()']]], ['resume',['resume',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroup.resume()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroupManager.resume()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::AutoScaleClient.resume()']]], ['revoke_5fuser_5faccess',['revoke_user_access',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseUserManager.revoke_user_access()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseInstance.revoke_user_access()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseUser.revoke_user_access()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseClient.revoke_user_access()']]], ['rfc2822_5fformat',['rfc2822_format',['../namespacepyrax_1_1utils.html#a6ea62353ce94e3d28ad8f6cae3e2ec5f',1,'pyrax::utils']]], diff --git a/docs/html/search/functions_75.js b/docs/html/search/functions_75.js index 3add706d..8d793c3f 100644 --- a/docs/html/search/functions_75.js +++ b/docs/html/search/functions_75.js @@ -2,7 +2,7 @@ var searchData= [ ['unauthenticate',['unauthenticate',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a143a677947f3597dc3cc3055a0eae66e',1,'pyrax::base_identity::BaseAuth.unauthenticate()'],['../classpyrax_1_1client_1_1BaseClient.html#a143a677947f3597dc3cc3055a0eae66e',1,'pyrax::client::BaseClient.unauthenticate()']]], ['unauthenticated',['unauthenticated',['../namespacepyrax_1_1utils.html#a662924ed2118b3ba66f1d1521a7c2b40',1,'pyrax::utils']]], - ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], + ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUserManager.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUser.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], ['update_5falarm',['update_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_alarm()']]], ['update_5fcheck',['update_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_check()']]], ['update_5fclaim',['update_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::Queue.update_claim()'],['../classpyrax_1_1queueing_1_1QueueClient.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::QueueClient.update_claim()']]], @@ -20,7 +20,7 @@ var searchData= ['update_5frecord',['update_record',['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSDomain.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSManager.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSClient.update_record()']]], ['update_5fssl_5ftermination',['update_ssl_termination',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update_ssl_termination()']]], ['update_5ftenant',['update_tenant',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a25f2b401ee3068816e774d648abd83de',1,'pyrax::base_identity::BaseAuth']]], - ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], + ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseInstance.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseClient.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], ['update_5fwebhook',['update_webhook',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroup.update_webhook()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroupManager.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScalePolicy.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScaleClient.update_webhook()']]], ['update_5fwebhook_5fmetadata',['update_webhook_metadata',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroup.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroupManager.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScalePolicy.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScaleClient.update_webhook_metadata()']]], ['upload_5ffile',['upload_file',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::client::CFClient.upload_file()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::container::Container.upload_file()']]], diff --git a/docs/html/search/variables_64.js b/docs/html/search/variables_64.js index 9c403f02..18ddbeb1 100644 --- a/docs/html/search/variables_64.js +++ b/docs/html/search/variables_64.js @@ -2,7 +2,6 @@ var searchData= [ ['data',['data',['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSRecord.data()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSPTRRecord.data()']]], ['date_5fformat',['DATE_FORMAT',['../namespacepyrax_1_1base__identity.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::base_identity.DATE_FORMAT()'],['../namespacepyrax_1_1cf__wrapper_1_1client.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::cf_wrapper::client.DATE_FORMAT()']]], - ['days_5f14',['DAYS_14',['../namespacepyrax_1_1queueing.html#af085154866e1b5a067335fc640e279bd',1,'pyrax::queueing']]], ['debug',['debug',['../namespacepyrax.html#a4c919e19877c5868fcd9f7662c236649',1,'pyrax']]], ['default_5fcdn_5fttl',['default_cdn_ttl',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a15a3ad1a3abde8c5a3fede95c2b24c19',1,'pyrax::cf_wrapper::client::CFClient']]], ['default_5fdelay',['DEFAULT_DELAY',['../namespacepyrax_1_1clouddns.html#a0695d4ce7bb0b1de03ba3068cde8d89a',1,'pyrax::clouddns']]], diff --git a/docs/html/search/variables_67.js b/docs/html/search/variables_67.js index 50611ed2..e274530f 100644 --- a/docs/html/search/variables_67.js +++ b/docs/html/search/variables_67.js @@ -1,4 +1,4 @@ var searchData= [ - ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]] + ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseBackup::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]] ]; diff --git a/docs/html/search/variables_68.js b/docs/html/search/variables_68.js index e94c3045..07033fd3 100644 --- a/docs/html/search/variables_68.js +++ b/docs/html/search/variables_68.js @@ -1,6 +1,7 @@ var searchData= [ ['head_5fdate_5fformat',['HEAD_DATE_FORMAT',['../namespacepyrax_1_1cf__wrapper_1_1client.html#aea95a0010e586f71e6587a111cae730c',1,'pyrax::cf_wrapper::client']]], + ['host',['host',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#a832ddc04754e8a43d4f3c6165b1294a7',1,'pyrax::clouddatabases::CloudDatabaseUser']]], ['href',['href',['../classpyrax_1_1queueing_1_1QueueMessage.html#aecfca4286e302d5d945be6fe76b99c86',1,'pyrax::queueing::QueueMessage.href()'],['../classpyrax_1_1queueing_1_1QueueClaim.html#ab8d8e60d0ff1588f6381ad0bef8ad4b7',1,'pyrax::queueing::QueueClaim.href()']]], ['http_5flog_5fdebug',['http_log_debug',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::base_identity::BaseAuth.http_log_debug()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::cf_wrapper::client::Connection::http_log_debug()'],['../classpyrax_1_1client_1_1BaseClient.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::client::BaseClient.http_log_debug()']]], ['http_5fstatus',['http_status',['../classpyrax_1_1exceptions_1_1BadRequest.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::BadRequest::http_status()'],['../classpyrax_1_1exceptions_1_1Unauthorized.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::Unauthorized::http_status()'],['../classpyrax_1_1exceptions_1_1Forbidden.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::Forbidden::http_status()'],['../classpyrax_1_1exceptions_1_1NotFound.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::NotFound::http_status()'],['../classpyrax_1_1exceptions_1_1NoUniqueMatch.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::NoUniqueMatch::http_status()'],['../classpyrax_1_1exceptions_1_1OverLimit.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::OverLimit::http_status()'],['../classpyrax_1_1exceptions_1_1HTTPNotImplemented.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::HTTPNotImplemented::http_status()']]], diff --git a/docs/html/search/variables_6e.js b/docs/html/search/variables_6e.js index a8ff5269..6389d266 100644 --- a/docs/html/search/variables_6e.js +++ b/docs/html/search/variables_6e.js @@ -1,6 +1,6 @@ var searchData= [ - ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], + ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddatabases::CloudDatabaseUser.name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], ['name_5fattr',['NAME_ATTR',['../classpyrax_1_1resource_1_1BaseResource.html#a74fac10a98253f8b0308159a33113ab9',1,'pyrax::resource::BaseResource']]], ['next_5furi',['next_uri',['../classpyrax_1_1clouddns_1_1ResultsIterator.html#a52d2d557c979c7d47d2f6733f9bb30c7',1,'pyrax::clouddns::ResultsIterator']]], ['no_5fsuch_5fcontainer_5fpattern',['no_such_container_pattern',['../namespacepyrax_1_1cf__wrapper_1_1client.html#ab3150aa95b9e341f9b4c3f11214a9097',1,'pyrax::cf_wrapper::client']]], diff --git a/docs/html/version_8py.html b/docs/html/version_8py.html index f5f2c6ca..6e174ea3 100644 --- a/docs/html/version_8py.html +++ b/docs/html/version_8py.html @@ -88,7 +88,7 @@ namespace  pyrax::version

                                                                                                                                                        Variables

                                                                                                                                                        -string version = "1.6.0" +string version = "1.6.1"
                                                                                                                                                        @@ -108,7 +108,7 @@ From 2c431e0fc5448237a24953bb437775e2de4a18a0 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Thu, 31 Oct 2013 10:57:26 -0500 Subject: [PATCH 10/30] Version 1.6.1 - adds support for Backups for Cloud Databases. --- RELEASENOTES.md | 11 + docs/cloud_databases.md | 64 +++- docs/html/annotated.html | 6 +- docs/html/classes.html | 106 +++--- ...abases_1_1CloudDatabaseBackup-members.html | 131 +++++++ ...clouddatabases_1_1CloudDatabaseBackup.html | 172 +++++++++ ...1clouddatabases_1_1CloudDatabaseBackup.png | Bin 0 -> 494 bytes ...1_1CloudDatabaseBackupManager-members.html | 134 +++++++ ...tabases_1_1CloudDatabaseBackupManager.html | 187 ++++++++++ ...atabases_1_1CloudDatabaseBackupManager.png | Bin 0 -> 600 bytes ...abases_1_1CloudDatabaseClient-members.html | 8 +- ...clouddatabases_1_1CloudDatabaseClient.html | 243 ++++++++++++- ...ases_1_1CloudDatabaseInstance-members.html | 5 +- ...ouddatabases_1_1CloudDatabaseInstance.html | 109 +++++- ...bases_1_1CloudDatabaseManager-members.html | 5 +- ...louddatabases_1_1CloudDatabaseManager.html | 126 ++++++- ...atabases_1_1CloudDatabaseUser-members.html | 5 +- ..._1clouddatabases_1_1CloudDatabaseUser.html | 73 +++- ...s_1_1CloudDatabaseUserManager-members.html | 3 +- ...databases_1_1CloudDatabaseUserManager.html | 51 ++- ...clouddatabases_1_1CloudDatabaseVolume.html | 8 +- ...ax_1_1exceptions_1_1DBUpdateUnchanged.html | 142 ++++++++ ...rax_1_1exceptions_1_1DBUpdateUnchanged.png | Bin 0 -> 494 bytes ...exceptions_1_1MissingDBUserParameters.html | 142 ++++++++ ...1exceptions_1_1MissingDBUserParameters.png | Bin 0 -> 562 bytes ...pyrax_1_1exceptions_1_1PyraxException.html | 182 +++++----- ...spyrax_1_1exceptions_1_1PyraxException.png | Bin 27726 -> 28318 bytes .../classpyrax_1_1manager_1_1BaseManager.html | 23 +- .../classpyrax_1_1manager_1_1BaseManager.png | Bin 4687 -> 5055 bytes ...lasspyrax_1_1resource_1_1BaseResource.html | 43 +-- ...classpyrax_1_1resource_1_1BaseResource.png | Bin 7183 -> 7467 bytes docs/html/clouddatabases_8py.html | 6 +- docs/html/exceptions_8py.html | 4 +- docs/html/functions_0x63.html | 39 ++- docs/html/functions_0x64.html | 41 ++- docs/html/functions_0x67.html | 52 +-- docs/html/functions_0x68.html | 29 +- docs/html/functions_0x6c.html | 50 +-- docs/html/functions_0x6e.html | 15 +- docs/html/functions_0x72.html | 22 +- docs/html/functions_0x75.html | 59 ++-- docs/html/functions_func_0x63.html | 23 +- docs/html/functions_func_0x64.html | 47 +-- docs/html/functions_func_0x67.html | 69 ++-- docs/html/functions_func_0x6c.html | 48 +-- docs/html/functions_func_0x72.html | 14 +- docs/html/functions_func_0x75.html | 66 ++-- docs/html/functions_vars_0x67.html | 3 +- docs/html/functions_vars_0x68.html | 19 +- docs/html/functions_vars_0x6e.html | 9 +- docs/html/hierarchy.html | 6 +- docs/html/namespacemembers.html | 5 +- docs/html/namespacemembers_vars.html | 5 +- .../namespacepyrax_1_1clouddatabases.html | 6 +- docs/html/namespacepyrax_1_1exceptions.html | 4 +- docs/html/namespacepyrax_1_1queueing.html | 16 +- docs/html/namespacepyrax_1_1version.html | 6 +- docs/html/queueing_8py.html | 3 +- docs/html/search/all_63.js | 7 +- docs/html/search/all_64.js | 3 +- docs/html/search/all_67.js | 3 +- docs/html/search/all_68.js | 1 + docs/html/search/all_6c.js | 3 +- docs/html/search/all_6d.js | 1 + docs/html/search/all_6e.js | 2 +- docs/html/search/all_72.js | 1 + docs/html/search/all_75.js | 4 +- docs/html/search/classes_63.js | 2 + docs/html/search/classes_64.js | 1 + docs/html/search/classes_6d.js | 1 + docs/html/search/functions_63.js | 1 + docs/html/search/functions_64.js | 1 + docs/html/search/functions_67.js | 1 + docs/html/search/functions_6c.js | 3 +- docs/html/search/functions_72.js | 1 + docs/html/search/functions_75.js | 4 +- docs/html/search/variables_64.js | 1 - docs/html/search/variables_67.js | 2 +- docs/html/search/variables_68.js | 1 + docs/html/search/variables_6e.js | 2 +- docs/html/version_8py.html | 4 +- docs/queues.md | 6 +- pyrax/cf_wrapper/client.py | 8 +- pyrax/clouddatabases.py | 224 +++++++++++- pyrax/exceptions.py | 10 +- pyrax/queueing.py | 9 +- pyrax/utils.py | 21 +- pyrax/version.py | 2 +- tests/unit/fakes.py | 8 +- tests/unit/test_cf_client.py | 61 +++- tests/unit/test_cloud_databases.py | 329 +++++++++++++++++- tests/unit/test_queues.py | 5 +- tests/unit/test_utils.py | 31 ++ 93 files changed, 2844 insertions(+), 565 deletions(-) create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.png create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager-members.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html create mode 100644 docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.png create mode 100644 docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html create mode 100644 docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.png create mode 100644 docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html create mode 100644 docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.png diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 458848ee..2aa6a889 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,16 @@ # Release Notes for pyrax +###2013.10.31 - Version 1.6.1 + - Cloud Databases: + - Added support for Backups. GitHub #216 + - Added ability to specify 'host' parameter for users. GitHub #229 + - Added ability to update users. + - Queues: + - Removed default TTL for messages. GitHub #234 + - Cloud Files: + - Fixed large file upload bug. GitHub #231 + - Fixed file naming bug. GitHub #232 + ###2013.10.24 - Version 1.6.0 - New: - Added support for **Cloud Queues** (Marconi). diff --git a/docs/cloud_databases.md b/docs/cloud_databases.md index bac8255f..73b96f98 100644 --- a/docs/cloud_databases.md +++ b/docs/cloud_databases.md @@ -25,7 +25,7 @@ To get a list of all your instances, just run: This returns a list of `CloudDatabaseInstance` objects. Assuming that you are just starting out and have not yet created any instances, you get back an empty list. A good first step, then, would be to create an instance. -## Create the Instance +## Create an Instance To create an instance, you need to specify the flavor and volume size for that instance. 'Flavor' refers to the amount of RAM allocated to your instance. Volume size is the disk space available to your instance for storing its data. The volume size is in GB, and must be a whole number between 1 and 50. @@ -131,6 +131,68 @@ which outputs: User: +## Backups +You can create a backup of your instance that can be used to re-create that instance at a later date. The backup is created asynchronously. During the backup process, database writes on MyISAM Databases will be disabled. InnoDB Databases will continue to allow all operations. + +While the instance is being backed up you will not be able to add/delete databases, add/delete users, or delete/stop/reboot the instance. Users can only run one backup at a time. Duplicate requests will receive a 422 error. + +Backups are not deleted when the instance is deleted. You must remove any backups created if you no longer wish to retain them. See the section below on [Deleting a Backup](#deleting-a-backup). + +During backup the files will be streamed to your Cloud Files account. The process creates a container called z_CLOUDDB_BACKUPS and places all the files in it. In order for the restore and deletion of backups to work properly, you should not move, rename, or delete any of the files from this container. You will be charged the normal Cloud Files rate for storage of these files. + +In the unlikely event that the backup fails to perform correctly and is in the state FAILED, there may be some files that were placed in the container. Deleting the failed backup will remove any such files. See the section below on [Deleting a Backup](#deleting-a-backup). + +### Create a Backup +To create a backup, you must specify the instance and a name for the backup. You may optionally supply a text description. The name is limited to 64 characters. If you have a `CloudDatabaseInstance` object, you can make the call directly to its `create_backup()` method. The calls are: + + backup = cdb.create_backup(instance, name[, description=None]) + # - or - + backup = instance.create_backup(name[, description=None]) + +Both of these calls return a `CloudDatabaseBackup` object that represents the backup. You can query its status attribute to determine its progress: + +Status | Description +---- | ---- +NEW | A new backup task was created. +RUNNING | The backup task is currently running. +COMPLETED | The backup task was successfully completed. +FAILED | The backup task failed to complete successfully. + +Like other objects that take time to finish being created, you can also use the `utils.wait_for_build(backup)` method call to either block until the build completes, or pass a callback to be triggered upon completion. + + +## List Backups +There are two ways to list backups: you can either list all the backups, or list just those backups for a particular instance. To get a list of all your backups, call: + + cdb.list_backups() + +To only list the backups for a particular instance, call: + + cdb.list_backups(instance) + +If you have a `CloudDatabaseInstance` object, you can also call its `list_backups()` method to get a listing of all backups for that instance: + + instance.list_backups() + + +## Deleting a Backup +If you no longer wish to keep a backup, you can delete it. This will remove it from your list of available backups, and remove the files from your Cloud Files account. You will need either the backup's ID or the `CloudDatabaseBackup` object for the backup you wish to delete. The call is: + + cdb.delete_backup(backup) + # - or - + backup.delete() + + +## Restoring From a Backup +If you need to create a new instance from one of your backups, you can call the `restore_backup()` method. The call is: + + cdb.restore_backup(backup, name, flavor, volume) + +The parameters are the same as the call to `create()`, with the exception of the `backup` parameter, which must be either a `CloudDatabaseBackup` object, or the ID of one of your backups. See the [Create an Instance](#create-an-instance) section above for the specifics of the other parameters. + +All users/passwords/access that were on the instance at the time of the backup will be restored along with the databases. You can create new users or databases if you want, but they cannot be the same as the ones from the instance that was backed up. + + ## Working with `CloudDatabaseDatabase` and `CloudDatabaseUser` Objects These objects are essentially read-only representations of the underlying MySQL database running in your instance. You cannot update the attributes of these objects and expect them to change anything in the instance. They are useful mostly to determine the state of your database. The one method they have is `delete()`, which causes them to be deleted from their instance. diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 6d780430..a7c7f300 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -108,6 +108,8 @@ CloudBlockStorageSnapshotManagerManager class for Cloud Block Storage CloudBlockStorageVolumeThis class represents a Block Storage volume CloudBlockStorageVolumeTypeThis class represents a Block Storage Volume Type + CloudDatabaseBackupThis class represents a database backup + CloudDatabaseBackupManagerThis class handles operations on backups for a Cloud Database instance CloudDatabaseClientThis is the primary class for interacting with Cloud Databases CloudDatabaseDatabaseThis class represents a database on a CloudDatabaseInstance CloudDatabaseDatabaseManagerThis class manages communication with databases on Cloud Database instances @@ -142,6 +144,7 @@ CloudNetworkManagerDoes nothing special, but is used in testing ConnectionThis class wraps the swiftclient connection, adding support for CDN ContainerRepresents a CloudFiles container + DBUpdateUnchanged DNSCallTimedOut DomainCreationFailed DomainDeletionFailed @@ -195,6 +198,7 @@ KeystoneIdentityImplements the Keystone-specific behaviors for Identity MissingAuthSettings MissingClaimParameters + MissingDBUserParameters MissingDNSSettings MissingHealthMonitorSettings MissingLoadBalancerParameters @@ -283,7 +287,7 @@ diff --git a/docs/html/classes.html b/docs/html/classes.html index 8f6fa13b..7280c816 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -85,70 +85,70 @@
                                                                                                                                                        A | B | C | D | E | F | H | I | K | M | N | O | P | Q | R | S | T | U | V | _
                                                                                                                                                        - - + + + + + + - - - + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + - - - + + - - - + + - - - + + - - - - - + + + + - - - - - - - + +
                                                                                                                                                          A  
                                                                                                                                                        -
                                                                                                                                                        CloudLoadBalancerClient (pyrax.cloudloadbalancers)   Forbidden (pyrax.exceptions)   MissingMonitoringCheckGranularity (pyrax.exceptions)   QueueMessage (pyrax.queueing)   
                                                                                                                                                        CloudLoadBalancerManager (pyrax.cloudloadbalancers)   
                                                                                                                                                          H  
                                                                                                                                                        -
                                                                                                                                                        MissingName (pyrax.exceptions)   QueueMessageManager (pyrax.queueing)   
                                                                                                                                                        AccessListIDNotFound (pyrax.exceptions)   CloudMonitorAlarm (pyrax.cloudmonitoring)   MissingTemporaryURLKey (pyrax.exceptions)   
                                                                                                                                                          R  
                                                                                                                                                        +
                                                                                                                                                        CloudDNSRecord (pyrax.clouddns)   FlavorNotFound (pyrax.exceptions)   MissingDNSSettings (pyrax.exceptions)   QueueClaimManager (pyrax.queueing)   
                                                                                                                                                        CloudLoadBalancer (pyrax.cloudloadbalancers)   FolderNotFound (pyrax.exceptions)   MissingHealthMonitorSettings (pyrax.exceptions)   QueueClient (pyrax.queueing)   
                                                                                                                                                        AccessListIDNotFound (pyrax.exceptions)   CloudLoadBalancerClient (pyrax.cloudloadbalancers)   FolderUploader (pyrax.cf_wrapper.client)   MissingLoadBalancerParameters (pyrax.exceptions)   QueueClientIDNotDefined (pyrax.exceptions)   
                                                                                                                                                        AmbiguousEndpoints (pyrax.exceptions)   CloudLoadBalancerManager (pyrax.cloudloadbalancers)   Forbidden (pyrax.exceptions)   MissingMonitoringCheckDetails (pyrax.exceptions)   QueueManager (pyrax.queueing)   
                                                                                                                                                        AuthenticationFailed (pyrax.exceptions)   CloudMonitorAlarm (pyrax.cloudmonitoring)   
                                                                                                                                                          H  
                                                                                                                                                        +
                                                                                                                                                        MissingMonitoringCheckGranularity (pyrax.exceptions)   QueueMessage (pyrax.queueing)   
                                                                                                                                                        AuthorizationFailure (pyrax.exceptions)   CloudMonitorCheck (pyrax.cloudmonitoring)   MissingName (pyrax.exceptions)   QueueMessageManager (pyrax.queueing)   
                                                                                                                                                        AuthSystemNotFound (pyrax.exceptions)   CloudMonitorCheckType (pyrax.cloudmonitoring)   HTTPNotImplemented (pyrax.exceptions)   MissingTemporaryURLKey (pyrax.exceptions)   
                                                                                                                                                          R  
                                                                                                                                                        AmbiguousEndpoints (pyrax.exceptions)   CloudMonitorCheck (pyrax.cloudmonitoring)   HTTPNotImplemented (pyrax.exceptions)   MonitoringCheckTargetNotSpecified (pyrax.exceptions)   
                                                                                                                                                        AuthenticationFailed (pyrax.exceptions)   CloudMonitorCheckType (pyrax.cloudmonitoring)   
                                                                                                                                                          I  
                                                                                                                                                        -
                                                                                                                                                        MonitoringZonesPollMissing (pyrax.exceptions)   RaxIdentity (pyrax.identity.rax_identity)   
                                                                                                                                                        AuthorizationFailure (pyrax.exceptions)   CloudMonitorClient (pyrax.cloudmonitoring)   
                                                                                                                                                          N  
                                                                                                                                                        +
                                                                                                                                                        AutoScaleClient (pyrax.autoscale)   CloudMonitorClient (pyrax.cloudmonitoring)   
                                                                                                                                                          I  
                                                                                                                                                        +
                                                                                                                                                        MonitoringCheckTargetNotSpecified (pyrax.exceptions)   
                                                                                                                                                        AutoScalePolicy (pyrax.autoscale)   CloudMonitorEntity (pyrax.cloudmonitoring)   MonitoringZonesPollMissing (pyrax.exceptions)   RaxIdentity (pyrax.identity.rax_identity)   
                                                                                                                                                        AutoScaleWebhook (pyrax.autoscale)   CloudMonitorEntityManager (pyrax.cloudmonitoring)   IdentityClassNotDefined (pyrax.exceptions)   
                                                                                                                                                          N  
                                                                                                                                                        RecordResultsIterator (pyrax.clouddns)   
                                                                                                                                                        AuthSystemNotFound (pyrax.exceptions)   CloudMonitorEntity (pyrax.cloudmonitoring)   IdentityClassNotDefined (pyrax.exceptions)   ResultsIterator (pyrax.clouddns)   
                                                                                                                                                        AutoScaleClient (pyrax.autoscale)   CloudMonitorEntityManager (pyrax.cloudmonitoring)   InvalidCDNMetadata (pyrax.exceptions)   NetworkCIDRInvalid (pyrax.exceptions)   
                                                                                                                                                          S  
                                                                                                                                                        -
                                                                                                                                                        AutoScalePolicy (pyrax.autoscale)   CloudMonitorNotification (pyrax.cloudmonitoring)   InvalidConfigurationFile (pyrax.exceptions)   NetworkCIDRMalformed (pyrax.exceptions)   
                                                                                                                                                        AutoScaleWebhook (pyrax.autoscale)   CloudMonitorNotificationManager (pyrax.cloudmonitoring)   InvalidCredentialFile (pyrax.exceptions)   NetworkCountExceeded (pyrax.exceptions)   ScalingGroup (pyrax.autoscale)   
                                                                                                                                                          B  
                                                                                                                                                        -
                                                                                                                                                        CloudMonitorNotificationPlan (pyrax.cloudmonitoring)   InvalidDateTimeString (pyrax.exceptions)   NetworkInUse (pyrax.exceptions)   ScalingGroupManager (pyrax.autoscale)   
                                                                                                                                                        CloudMonitorNotificationPlanManager (pyrax.cloudmonitoring)   InvalidDeviceType (pyrax.exceptions)   NetworkLabelNotUnique (pyrax.exceptions)   SelfDeletingTempDirectory (pyrax.utils)   
                                                                                                                                                        BadRequest (pyrax.exceptions)   CloudMonitorNotificationType (pyrax.cloudmonitoring)   InvalidEmail (pyrax.exceptions)   NetworkNotFound (pyrax.exceptions)   SelfDeletingTempfile (pyrax.utils)   
                                                                                                                                                        BaseAuth (pyrax.base_identity)   CloudMonitorZone (pyrax.cloudmonitoring)   InvalidLoadBalancer (pyrax.exceptions)   Node (pyrax.cloudloadbalancers)   ServiceCatalog (pyrax.service_catalog)   
                                                                                                                                                        BaseClient (pyrax.client)   CloudNetwork (pyrax.cloudnetworks)   InvalidLoadBalancerParameters (pyrax.exceptions)   NoMoreResults (pyrax.exceptions)   ServiceNotAvailable (pyrax.exceptions)   
                                                                                                                                                        BaseManager (pyrax.manager)   CloudNetworkClient (pyrax.cloudnetworks)   InvalidMonitoringCheckDetails (pyrax.exceptions)   NoReloadError (pyrax.exceptions)   Settings (pyrax)   
                                                                                                                                                        BaseQueueManager (pyrax.queueing)   CloudNetworkManager (pyrax.cloudnetworks)   InvalidMonitoringCheckUpdate (pyrax.exceptions)   NoSSLTerminationConfiguration (pyrax.exceptions)   SnapshotNotAvailable (pyrax.exceptions)   
                                                                                                                                                        BaseResource (pyrax.resource)   Connection (pyrax.cf_wrapper.client)   InvalidMonitoringMetricsRequest (pyrax.exceptions)   NoSuchContainer (pyrax.exceptions)   StorageObject (pyrax::cf_wrapper::storage_object)   
                                                                                                                                                        BulkDeleter (pyrax.cf_wrapper.client)   Container (pyrax.cf_wrapper.container)   InvalidMonitoringMetricsResolution (pyrax.exceptions)   NoSuchDatabase (pyrax.exceptions)   SubdomainResultsIterator (pyrax.clouddns)   
                                                                                                                                                        CloudMonitorNotification (pyrax.cloudmonitoring)   InvalidCDNMetadata (pyrax.exceptions)   ResultsIterator (pyrax.clouddns)   
                                                                                                                                                        CloudMonitorNotificationManager (pyrax.cloudmonitoring)   InvalidConfigurationFile (pyrax.exceptions)   NetworkCIDRInvalid (pyrax.exceptions)   
                                                                                                                                                          S  
                                                                                                                                                        +
                                                                                                                                                        BadRequest (pyrax.exceptions)   CloudMonitorNotificationPlan (pyrax.cloudmonitoring)   InvalidCredentialFile (pyrax.exceptions)   NetworkCIDRMalformed (pyrax.exceptions)   
                                                                                                                                                        BaseAuth (pyrax.base_identity)   CloudMonitorNotificationPlanManager (pyrax.cloudmonitoring)   InvalidDateTimeString (pyrax.exceptions)   NetworkCountExceeded (pyrax.exceptions)   ScalingGroup (pyrax.autoscale)   
                                                                                                                                                        BaseClient (pyrax.client)   CloudMonitorNotificationType (pyrax.cloudmonitoring)   InvalidDeviceType (pyrax.exceptions)   NetworkInUse (pyrax.exceptions)   ScalingGroupManager (pyrax.autoscale)   
                                                                                                                                                        BaseManager (pyrax.manager)   CloudMonitorZone (pyrax.cloudmonitoring)   InvalidEmail (pyrax.exceptions)   NetworkLabelNotUnique (pyrax.exceptions)   SelfDeletingTempDirectory (pyrax.utils)   
                                                                                                                                                        BaseQueueManager (pyrax.queueing)   CloudNetwork (pyrax.cloudnetworks)   InvalidLoadBalancer (pyrax.exceptions)   NetworkNotFound (pyrax.exceptions)   SelfDeletingTempfile (pyrax.utils)   
                                                                                                                                                        BaseResource (pyrax.resource)   CloudNetworkClient (pyrax.cloudnetworks)   InvalidLoadBalancerParameters (pyrax.exceptions)   Node (pyrax.cloudloadbalancers)   ServiceCatalog (pyrax.service_catalog)   
                                                                                                                                                        BulkDeleter (pyrax.cf_wrapper.client)   CloudNetworkManager (pyrax.cloudnetworks)   InvalidMonitoringCheckDetails (pyrax.exceptions)   NoMoreResults (pyrax.exceptions)   ServiceNotAvailable (pyrax.exceptions)   
                                                                                                                                                          C  
                                                                                                                                                        -
                                                                                                                                                          D  
                                                                                                                                                        -
                                                                                                                                                        InvalidNodeCondition (pyrax.exceptions)   NoSuchDatabaseUser (pyrax.exceptions)   
                                                                                                                                                          T  
                                                                                                                                                        +
                                                                                                                                                        Connection (pyrax.cf_wrapper.client)   InvalidMonitoringCheckUpdate (pyrax.exceptions)   NoReloadError (pyrax.exceptions)   Settings (pyrax)   
                                                                                                                                                        Container (pyrax.cf_wrapper.container)   InvalidMonitoringMetricsRequest (pyrax.exceptions)   NoSSLTerminationConfiguration (pyrax.exceptions)   SnapshotNotAvailable (pyrax.exceptions)   
                                                                                                                                                        CDNFailed (pyrax.exceptions)   
                                                                                                                                                          D  
                                                                                                                                                        +
                                                                                                                                                        InvalidMonitoringMetricsResolution (pyrax.exceptions)   NoSuchContainer (pyrax.exceptions)   StorageObject (pyrax::cf_wrapper::storage_object)   
                                                                                                                                                        CFClient (pyrax.cf_wrapper.client)   InvalidNodeCondition (pyrax.exceptions)   NoSuchDatabase (pyrax.exceptions)   SubdomainResultsIterator (pyrax.clouddns)   
                                                                                                                                                        ClientException (pyrax.exceptions)   DBUpdateUnchanged (pyrax.exceptions)   InvalidNodeParameters (pyrax.exceptions)   NoSuchDatabaseUser (pyrax.exceptions)   
                                                                                                                                                          T  
                                                                                                                                                        InvalidNodeParameters (pyrax.exceptions)   NoSuchObject (pyrax.exceptions)   
                                                                                                                                                        CDNFailed (pyrax.exceptions)   DNSCallTimedOut (pyrax.exceptions)   InvalidPTRRecord (pyrax.exceptions)   NotAuthenticated (pyrax.exceptions)   Tenant (pyrax.base_identity)   
                                                                                                                                                        CFClient (pyrax.cf_wrapper.client)   DomainCreationFailed (pyrax.exceptions)   InvalidQueueName (pyrax.exceptions)   NotCDNEnabled (pyrax.exceptions)   TenantNotFound (pyrax.exceptions)   
                                                                                                                                                        ClientException (pyrax.exceptions)   DomainDeletionFailed (pyrax.exceptions)   InvalidSessionPersistenceType (pyrax.exceptions)   NotFound (pyrax.exceptions)   
                                                                                                                                                          U  
                                                                                                                                                        +
                                                                                                                                                        CloudBlockStorageClient (pyrax.cloudblockstorage)   DNSCallTimedOut (pyrax.exceptions)   InvalidPTRRecord (pyrax.exceptions)   NoSuchObject (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageManager (pyrax.cloudblockstorage)   DomainCreationFailed (pyrax.exceptions)   InvalidQueueName (pyrax.exceptions)   NotAuthenticated (pyrax.exceptions)   Tenant (pyrax.base_identity)   
                                                                                                                                                        CloudBlockStorageSnapshot (pyrax.cloudblockstorage)   DomainDeletionFailed (pyrax.exceptions)   InvalidSessionPersistenceType (pyrax.exceptions)   NotCDNEnabled (pyrax.exceptions)   TenantNotFound (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageSnapshotManager (pyrax.cloudblockstorage)   DomainRecordAdditionFailed (pyrax.exceptions)   InvalidSetting (pyrax.exceptions)   NotFound (pyrax.exceptions)   
                                                                                                                                                          U  
                                                                                                                                                        CloudBlockStorageClient (pyrax.cloudblockstorage)   DomainRecordAdditionFailed (pyrax.exceptions)   InvalidSetting (pyrax.exceptions)   NoTokenLookupException (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageManager (pyrax.cloudblockstorage)   DomainRecordDeletionFailed (pyrax.exceptions)   InvalidSize (pyrax.exceptions)   NoUniqueMatch (pyrax.exceptions)   UnattachedNode (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageSnapshot (pyrax.cloudblockstorage)   DomainRecordNotFound (pyrax.exceptions)   InvalidTemporaryURLMethod (pyrax.exceptions)   
                                                                                                                                                          O  
                                                                                                                                                        +
                                                                                                                                                        CloudBlockStorageVolume (pyrax.cloudblockstorage)   DomainRecordDeletionFailed (pyrax.exceptions)   InvalidSize (pyrax.exceptions)   NoTokenLookupException (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageVolumeType (pyrax.cloudblockstorage)   DomainRecordNotFound (pyrax.exceptions)   InvalidTemporaryURLMethod (pyrax.exceptions)   NoUniqueMatch (pyrax.exceptions)   UnattachedNode (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseBackup (pyrax.clouddatabases)   DomainRecordNotUnique (pyrax.exceptions)   InvalidUploadID (pyrax.exceptions)   
                                                                                                                                                          O  
                                                                                                                                                        UnattachedVirtualIP (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageSnapshotManager (pyrax.cloudblockstorage)   DomainRecordNotUnique (pyrax.exceptions)   InvalidUploadID (pyrax.exceptions)   Unauthorized (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageVolume (pyrax.cloudblockstorage)   DomainRecordUpdateFailed (pyrax.exceptions)   InvalidVirtualIPType (pyrax.exceptions)   OverLimit (pyrax.exceptions)   UnicodePathError (pyrax.exceptions)   
                                                                                                                                                        CloudBlockStorageVolumeType (pyrax.cloudblockstorage)   DomainResultsIterator (pyrax.clouddns)   InvalidVirtualIPVersion (pyrax.exceptions)   
                                                                                                                                                          P  
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseBackupManager (pyrax.clouddatabases)   DomainRecordUpdateFailed (pyrax.exceptions)   InvalidVirtualIPType (pyrax.exceptions)   Unauthorized (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseClient (pyrax.clouddatabases)   DomainResultsIterator (pyrax.clouddns)   InvalidVirtualIPVersion (pyrax.exceptions)   OverLimit (pyrax.exceptions)   UnicodePathError (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseDatabase (pyrax.clouddatabases)   DomainUpdateFailed (pyrax.exceptions)   InvalidVolumeResize (pyrax.exceptions)   
                                                                                                                                                          P  
                                                                                                                                                        UploadFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseClient (pyrax.clouddatabases)   DomainUpdateFailed (pyrax.exceptions)   InvalidVolumeResize (pyrax.exceptions)   User (pyrax.base_identity)   
                                                                                                                                                        CloudDatabaseDatabase (pyrax.clouddatabases)   DuplicateQueue (pyrax.exceptions)   
                                                                                                                                                          K  
                                                                                                                                                        -
                                                                                                                                                        PasswordChangeFailed (pyrax.exceptions)   UserNotFound (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseDatabaseManager (pyrax.clouddatabases)   DuplicateUser (pyrax.exceptions)   ProtocolMismatch (pyrax.exceptions)   
                                                                                                                                                          V  
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseDatabaseManager (pyrax.clouddatabases)   DuplicateQueue (pyrax.exceptions)   
                                                                                                                                                          K  
                                                                                                                                                        +
                                                                                                                                                        User (pyrax.base_identity)   
                                                                                                                                                        CloudDatabaseFlavor (pyrax.clouddatabases)   DuplicateUser (pyrax.exceptions)   PasswordChangeFailed (pyrax.exceptions)   UserNotFound (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseInstance (pyrax.clouddatabases)   
                                                                                                                                                          E  
                                                                                                                                                        +
                                                                                                                                                        KeyringModuleNotInstalled (pyrax.exceptions)   ProtocolMismatch (pyrax.exceptions)   
                                                                                                                                                          V  
                                                                                                                                                        CloudDatabaseFlavor (pyrax.clouddatabases)   
                                                                                                                                                          E  
                                                                                                                                                        -
                                                                                                                                                        KeyringModuleNotInstalled (pyrax.exceptions)   PTRRecordCreationFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseInstance (pyrax.clouddatabases)   KeyringPasswordNotFound (pyrax.exceptions)   PTRRecordDeletionFailed (pyrax.exceptions)   VirtualIP (pyrax.cloudloadbalancers)   
                                                                                                                                                        CloudDatabaseManager (pyrax.clouddatabases)   EndpointNotDefined (pyrax.exceptions)   KeyringUsernameMissing (pyrax.exceptions)   PTRRecordUpdateFailed (pyrax.exceptions)   VolumeAttachmentFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseUser (pyrax.clouddatabases)   EndpointNotFound (pyrax.exceptions)   KeystoneIdentity (pyrax.identity.keystone_identity)   PyraxException (pyrax.exceptions)   VolumeDetachmentFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseUserManager (pyrax.clouddatabases)   EnvironmentNotFound (pyrax.exceptions)   
                                                                                                                                                          M  
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseManager (pyrax.clouddatabases)   KeyringPasswordNotFound (pyrax.exceptions)   PTRRecordCreationFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseUser (pyrax.clouddatabases)   EndpointNotDefined (pyrax.exceptions)   KeyringUsernameMissing (pyrax.exceptions)   PTRRecordDeletionFailed (pyrax.exceptions)   VirtualIP (pyrax.cloudloadbalancers)   
                                                                                                                                                        CloudDatabaseUserManager (pyrax.clouddatabases)   EndpointNotFound (pyrax.exceptions)   KeystoneIdentity (pyrax.identity.keystone_identity)   PTRRecordUpdateFailed (pyrax.exceptions)   VolumeAttachmentFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseVolume (pyrax.clouddatabases)   EnvironmentNotFound (pyrax.exceptions)   
                                                                                                                                                          M  
                                                                                                                                                        +
                                                                                                                                                        PyraxException (pyrax.exceptions)   VolumeDetachmentFailed (pyrax.exceptions)   
                                                                                                                                                        CloudDNSClient (pyrax.clouddns)   
                                                                                                                                                          F  
                                                                                                                                                          Q  
                                                                                                                                                        VolumeNotAvailable (pyrax.exceptions)   
                                                                                                                                                        CloudDatabaseVolume (pyrax.clouddatabases)   
                                                                                                                                                          F  
                                                                                                                                                        -
                                                                                                                                                          _  
                                                                                                                                                        +
                                                                                                                                                        CloudDNSDomain (pyrax.clouddns)   MissingAuthSettings (pyrax.exceptions)   
                                                                                                                                                          _  
                                                                                                                                                        CloudDNSClient (pyrax.clouddns)   MissingAuthSettings (pyrax.exceptions)   Queue (pyrax.queueing)   
                                                                                                                                                        CloudDNSDomain (pyrax.clouddns)   Fault (pyrax.cf_wrapper.container)   MissingClaimParameters (pyrax.exceptions)   QueueClaim (pyrax.queueing)   _WaitThread (pyrax.utils)   
                                                                                                                                                        CloudDNSManager (pyrax.clouddns)   FileNotFound (pyrax.exceptions)   MissingDNSSettings (pyrax.exceptions)   QueueClaimManager (pyrax.queueing)   
                                                                                                                                                        CloudDNSPTRRecord (pyrax.clouddns)   FlavorNotFound (pyrax.exceptions)   MissingHealthMonitorSettings (pyrax.exceptions)   QueueClient (pyrax.queueing)   
                                                                                                                                                        CloudDNSRecord (pyrax.clouddns)   FolderNotFound (pyrax.exceptions)   MissingLoadBalancerParameters (pyrax.exceptions)   QueueClientIDNotDefined (pyrax.exceptions)   
                                                                                                                                                        CloudLoadBalancer (pyrax.cloudloadbalancers)   FolderUploader (pyrax.cf_wrapper.client)   MissingMonitoringCheckDetails (pyrax.exceptions)   QueueManager (pyrax.queueing)   
                                                                                                                                                        CloudDNSManager (pyrax.clouddns)   Fault (pyrax.cf_wrapper.container)   MissingClaimParameters (pyrax.exceptions)   Queue (pyrax.queueing)   
                                                                                                                                                        CloudDNSPTRRecord (pyrax.clouddns)   FileNotFound (pyrax.exceptions)   MissingDBUserParameters (pyrax.exceptions)   QueueClaim (pyrax.queueing)   _WaitThread (pyrax.utils)   
                                                                                                                                                        A | B | C | D | E | F | H | I | K | M | N | O | P | Q | R | S | T | U | V | _
                                                                                                                                                        @@ -170,7 +170,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html new file mode 100644 index 00000000..cb12f395 --- /dev/null +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup-members.html @@ -0,0 +1,131 @@ + + + + + +pyrax: Member List + + + + + + + + + + + +
                                                                                                                                                        + + +
                                                                                                                                                        + + + + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        pyrax + +
                                                                                                                                                        +
                                                                                                                                                        Python Bindings for the Rackspace Cloud
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseBackup Member List
                                                                                                                                                        +
                                                                                                                                                        + + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html new file mode 100644 index 00000000..8c6a02e5 --- /dev/null +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html @@ -0,0 +1,172 @@ + + + + + +pyrax: CloudDatabaseBackup Class Reference + + + + + + + + + + + +
                                                                                                                                                        + + +
                                                                                                                                                        + + + + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        pyrax + +
                                                                                                                                                        +
                                                                                                                                                        Python Bindings for the Rackspace Cloud
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseBackup Class Reference
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        This class represents a database backup. + More...

                                                                                                                                                        +
                                                                                                                                                        +Inheritance diagram for CloudDatabaseBackup:
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + +BaseResource + +
                                                                                                                                                        + +

                                                                                                                                                        List of all members.

                                                                                                                                                        + + + +

                                                                                                                                                        +Static Public Attributes

                                                                                                                                                         get_details = True
                                                                                                                                                        +

                                                                                                                                                        Detailed Description

                                                                                                                                                        +

                                                                                                                                                        This class represents a database backup.

                                                                                                                                                        +

                                                                                                                                                        Member Data Documentation

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + + +
                                                                                                                                                        get_details = True [static]
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Reimplemented from BaseResource.

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        The documentation for this class was generated from the following file: +
                                                                                                                                                        + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.png b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.png new file mode 100644 index 0000000000000000000000000000000000000000..33c4f894c17ba9990491db301b71e071c6c29c18 GIT binary patch literal 494 zcmeAS@N?(olHy`uVBq!ia0vp^JwP15!3-q-Jj#s#QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;^_Fw5>SgY8?>%D)6<)`DfPu|`(V$c6=oXoZG}m&2 z<};FKF4b`^W?UsbNlx(Uul2&aLgkNyl;3Ykh_~|DzV)KoiC24@1KB@rHrRYe!Omli z$l18i-vY + + + + +pyrax: Member List + + + + + + + + + + + +
                                                                                                                                                        + + +
                                                                                                                                                        + + + + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        pyrax + +
                                                                                                                                                        +
                                                                                                                                                        Python Bindings for the Rackspace Cloud
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseBackupManager Member List
                                                                                                                                                        +
                                                                                                                                                        + + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html new file mode 100644 index 00000000..fc716ca4 --- /dev/null +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html @@ -0,0 +1,187 @@ + + + + + +pyrax: CloudDatabaseBackupManager Class Reference + + + + + + + + + + + +
                                                                                                                                                        + + +
                                                                                                                                                        + + + + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        pyrax + +
                                                                                                                                                        +
                                                                                                                                                        Python Bindings for the Rackspace Cloud
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        CloudDatabaseBackupManager Class Reference
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        This class handles operations on backups for a Cloud Database instance. + More...

                                                                                                                                                        +
                                                                                                                                                        +Inheritance diagram for CloudDatabaseBackupManager:
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + +BaseManager + +
                                                                                                                                                        + +

                                                                                                                                                        List of all members.

                                                                                                                                                        + + + + +

                                                                                                                                                        +Public Member Functions

                                                                                                                                                        def list
                                                                                                                                                         Return a list of all backups by default, or just for a particular instance.
                                                                                                                                                        +

                                                                                                                                                        Detailed Description

                                                                                                                                                        +

                                                                                                                                                        This class handles operations on backups for a Cloud Database instance.

                                                                                                                                                        +

                                                                                                                                                        Member Function Documentation

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def list ( self,
                                                                                                                                                         instance = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Return a list of all backups by default, or just for a particular instance.

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        The documentation for this class was generated from the following file: +
                                                                                                                                                        + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + + + + + + + diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.png b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.png new file mode 100644 index 0000000000000000000000000000000000000000..2117188a8a01eea346315534dadcdc574f146d30 GIT binary patch literal 600 zcmeAS@N?(olHy`uVBq!ia0vp^`++!sgBeKHtA!*3DTx4|5ZC|z{{xvX-h3_XKQsZz z0^=bkQ(Ar*{o=icl)tia=1sQvW6{Z4)f z{e%~jTsp6Ir%6pq=o8P2J8fL9ect^UTiu7||I6K6TsCigSLywaRl(Zq>-(@jbK1T| zFP}0${m!rE6S;pa1KB@>Tm4w};=)(JWhb@H!1ZuDQ~xBCC~2YQ;*U)hHm7XC{9-}%Ju#`L-WRQ~*v`;@z* zqdxxP9ff~ddo6$VXFXv5KmYUdyr)mL&8=nlG5tq$9{Z%v`9N~hXXp9@{6J^Q|9QY} z|KlJM^Z)ZdQ+A7b&5Z*|D!D8@@=xIPl=)Is8+W)~TUH$37W{K%;kh5yujhYkf2~+Q zmuJu4p7_fFhp$y#UG_tD^{?O#|EB@B8$XX0_cH^L6_dX0iS8 k{nxfX4*tLXXXkD1h##8TgmdKI;Vst0Qp8RG5`Po literal 0 HcmV?d00001 diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html index a1d41eef..f2b7cbd0 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient-members.html @@ -94,9 +94,11 @@ authenticateBaseClient change_user_passwordCloudDatabaseClient createBaseClient + create_backupCloudDatabaseClient create_databaseCloudDatabaseClient create_userCloudDatabaseClient deleteBaseClient + delete_backupCloudDatabaseClient delete_databaseCloudDatabaseClient delete_userCloudDatabaseClient disable_ssl_certificate_validationBaseClient @@ -106,6 +108,7 @@ findallBaseClient force_exception_to_status_codeBaseClient getBaseClient + get_backupCloudDatabaseClient get_databaseCloudDatabaseClient get_flavorCloudDatabaseClient get_limitsCloudDatabaseClient @@ -116,6 +119,7 @@ http_log_reqBaseClient http_log_respBaseClient listBaseClient + list_backupsCloudDatabaseClient list_databasesCloudDatabaseClient list_flavorsCloudDatabaseClient list_user_accessCloudDatabaseClient @@ -134,6 +138,7 @@ reset_timingsBaseClient resizeCloudDatabaseClient restartCloudDatabaseClient + restore_backupCloudDatabaseClient revoke_user_accessCloudDatabaseClient root_user_statusCloudDatabaseClient service_nameBaseClient @@ -141,6 +146,7 @@ timesBaseClient timingsBaseClient unauthenticateBaseClient + update_userCloudDatabaseClient user_agentBaseClient [static] verify_sslBaseClient versionBaseClient @@ -162,7 +168,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html index 4bccb115..62ab2680 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html @@ -141,6 +141,8 @@  Deletes the user by name on the given instance.
                                                                                                                                                        def change_user_password  Changes the password for the user of the specified instance to the supplied value.
                                                                                                                                                        +def update_user + Allows you to change one or more of the user's username, password, or host.
                                                                                                                                                        def list_user_access  Returns a list of all database names for which the specified user has access rights on the specified instance.
                                                                                                                                                        def grant_user_access @@ -161,6 +163,16 @@  Returns a list of all available Flavors.
                                                                                                                                                        def get_flavor  Returns a specific Flavor object by ID.
                                                                                                                                                        +def list_backups + Returns a list of all backups by default, or just for a particular instance.
                                                                                                                                                        +def get_backup + Returns the CloudDatabaseBackup instance for a given ID.
                                                                                                                                                        +def delete_backup + Deletes the CloudDatabaseBackup instance for a given ID.
                                                                                                                                                        +def create_backup + Creates a backup of the specified instance, giving it the specified name along with an optional description.
                                                                                                                                                        +def restore_backup + Restores a backup to a new database instance.

                                                                                                                                                        Static Public Attributes

                                                                                                                                                        string name = "Cloud Databases" @@ -208,6 +220,47 @@

                                                                                                                                                        Changes the password for the user of the specified instance to the supplied value.

                                                                                                                                                        Returns None upon success; raises PasswordChangeFailed if the call does not complete successfully.

                                                                                                                                                        +
                                                                                                                                                        + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def create_backup ( self,
                                                                                                                                                         instance,
                                                                                                                                                         name,
                                                                                                                                                         description = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Creates a backup of the specified instance, giving it the specified name along with an optional description.

                                                                                                                                                        +
                                                                                                                                                        @@ -302,6 +355,35 @@

                                                                                                                                                        Creates a user with the specified name and password, and gives that user access to the specified database(s).

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def delete_backup ( self,
                                                                                                                                                         backup 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Deletes the CloudDatabaseBackup instance for a given ID.

                                                                                                                                                        +
                                                                                                                                                        @@ -401,6 +483,35 @@

                                                                                                                                                        This enables login from any host for the root user and provides the user with a generated root password.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def get_backup ( self,
                                                                                                                                                         backup 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Returns the CloudDatabaseBackup instance for a given ID.

                                                                                                                                                        +
                                                                                                                                                        @@ -570,6 +681,35 @@

                                                                                                                                                        Gives access to the databases listed in `db_names` to the user on the specified instance.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def list_backups ( self,
                                                                                                                                                         instance = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Returns a list of all backups by default, or just for a particular instance.

                                                                                                                                                        +
                                                                                                                                                        @@ -786,6 +926,54 @@

                                                                                                                                                        Restarts the instance.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def restore_backup ( self,
                                                                                                                                                         backup,
                                                                                                                                                         name,
                                                                                                                                                         flavor,
                                                                                                                                                         volume 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Restores a backup to a new database instance.

                                                                                                                                                        +

                                                                                                                                                        You must supply a backup (either the ID or a CloudDatabaseBackup object), a name for the new instance, as well as a flavor and size (in GB) for the instance.

                                                                                                                                                        +
                                                                                                                                                        @@ -862,6 +1050,59 @@

                                                                                                                                                        Returns True if the given instance is root-enabled.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def update_user ( self,
                                                                                                                                                         instance,
                                                                                                                                                         user,
                                                                                                                                                         name = None,
                                                                                                                                                         password = None,
                                                                                                                                                         host = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Allows you to change one or more of the user's username, password, or host.

                                                                                                                                                        +

                                                                                                                                                        Member Data Documentation

                                                                                                                                                        @@ -901,7 +1142,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html index 5fec083c..ba2a2981 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance-members.html @@ -96,6 +96,7 @@ pyrax::resource::BaseResource.__init__BaseResource __repr__BaseResource change_user_passwordCloudDatabaseInstance + create_backupCloudDatabaseInstance create_databaseCloudDatabaseInstance create_userCloudDatabaseInstance deleteBaseResource @@ -111,6 +112,7 @@ human_idBaseResource HUMAN_IDBaseResource [static] idBaseResource + list_backupsCloudDatabaseInstance list_databasesCloudDatabaseInstance list_user_accessCloudDatabaseInstance list_usersCloudDatabaseInstance @@ -123,6 +125,7 @@ restartCloudDatabaseInstance revoke_user_accessCloudDatabaseInstance root_user_statusCloudDatabaseInstance + update_userCloudDatabaseInstance volumeCloudDatabaseInstance @@ -142,7 +145,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html index d85a1a9a..95ae35dc 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html @@ -143,6 +143,8 @@  Deletes the specified database.
                                                                                                                                                        def change_user_password  Changes the password for the user to the supplied value.
                                                                                                                                                        +def update_user + Allows you to change one or more of the user's username, password, or host.
                                                                                                                                                        def list_user_access  Returns a list of all database names for which the specified user has access rights.
                                                                                                                                                        def grant_user_access @@ -161,6 +163,10 @@  Set the size of this instance to a different flavor.
                                                                                                                                                        def resize_volume  Changes the size of the volume for this instance.
                                                                                                                                                        +def list_backups + Returns a list of all backups for this instance.
                                                                                                                                                        +def create_backup + Creates a backup of this instance, giving it the specified name along with an optional description.

                                                                                                                                                        Public Attributes

                                                                                                                                                         volume @@ -239,6 +245,41 @@

                                                                                                                                                        Changes the password for the user to the supplied value.

                                                                                                                                                        Returns None upon success; raises PasswordChangeFailed if the call does not complete successfully.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def create_backup ( self,
                                                                                                                                                         name,
                                                                                                                                                         description = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Creates a backup of this instance, giving it the specified name along with an optional description.

                                                                                                                                                        +
                                                                                                                                                        @@ -524,6 +565,25 @@

                                                                                                                                                        Gives access to the databases listed in `db_names` to the user.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + +
                                                                                                                                                        def list_backups ( self)
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Returns a list of all backups for this instance.

                                                                                                                                                        +
                                                                                                                                                        @@ -760,6 +820,53 @@

                                                                                                                                                        Returns True or False, depending on whether the root user for this instance has been enabled.

                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def update_user ( self,
                                                                                                                                                         user,
                                                                                                                                                         name = None,
                                                                                                                                                         password = None,
                                                                                                                                                         host = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Allows you to change one or more of the user's username, password, or host.

                                                                                                                                                        +

                                                                                                                                                        Member Data Documentation

                                                                                                                                                        @@ -811,7 +918,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html index 4b517cbe..f5a4d645 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager-members.html @@ -95,15 +95,18 @@ add_hookBaseManager apiBaseManager createBaseManager + create_backupCloudDatabaseManager deleteBaseManager findBaseManager findallBaseManager getCloudDatabaseManager headBaseManager listBaseManager + list_backupsCloudDatabaseManager plural_response_keyBaseManager [static] resource_classBaseManager [static] response_keyBaseManager [static] + restore_backupCloudDatabaseManager run_hooksBaseManager uri_baseBaseManager [static] @@ -124,7 +127,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html index 1e285ebe..460db77e 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html @@ -124,10 +124,57 @@ Public Member Functions def get  This additional code is necessary to properly return the 'volume' attribute of the instance as a CloudDatabaseVolume object instead of a raw dict.
                                                                                                                                                        +def create_backup + Creates a backup of the specified instance, giving it the specified name along with an optional description.
                                                                                                                                                        +def restore_backup + Restores a backup to a new database instance.
                                                                                                                                                        +def list_backups + Returns a list of all backups by default, or just for a particular instance.

                                                                                                                                                        Detailed Description

                                                                                                                                                        This class manages communication with Cloud Database instances.


                                                                                                                                                        Member Function Documentation

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def create_backup ( self,
                                                                                                                                                         instance,
                                                                                                                                                         name,
                                                                                                                                                         description = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Creates a backup of the specified instance, giving it the specified name along with an optional description.

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        @@ -157,6 +204,83 @@

                                                                                                                                                        Reimplemented from BaseManager.

                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def list_backups ( self,
                                                                                                                                                         instance = None 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Returns a list of all backups by default, or just for a particular instance.

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        def restore_backup ( self,
                                                                                                                                                         backup,
                                                                                                                                                         name,
                                                                                                                                                         flavor,
                                                                                                                                                         volume 
                                                                                                                                                        )
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        Restores a backup to a new database instance.

                                                                                                                                                        +

                                                                                                                                                        You must supply a backup (either the ID or a CloudDatabaseBackup object), a name for the new instance, as well as a flavor and volume size (in GB) for the instance.

                                                                                                                                                        +

                                                                                                                                                        The documentation for this class was generated from the following file:
                                                                                                                                                          @@ -180,7 +304,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html index 508607a9..fa9f8906 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUser-members.html @@ -99,15 +99,18 @@ getBaseResource get_detailsCloudDatabaseUser [static] grant_user_accessCloudDatabaseUser + hostCloudDatabaseUser [static] human_idBaseResource HUMAN_IDBaseResource [static] idBaseResource list_user_accessCloudDatabaseUser loadedBaseResource [static] managerBaseResource + nameCloudDatabaseUser [static] NAME_ATTRBaseResource [static] reloadBaseResource [static] revoke_user_accessCloudDatabaseUser + updateCloudDatabaseUser + +
                                                                                                                                                          +
                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                          def update ( self,
                                                                                                                                                           name = None,
                                                                                                                                                           password = None,
                                                                                                                                                           host = None 
                                                                                                                                                          )
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + +

                                                                                                                                                          Allows you to change one or more of the user's username, password, or host.

                                                                                                                                                          +

                                                                                                                                                          Member Data Documentation

                                                                                                                                                          @@ -295,6 +340,32 @@

                                                                                                                                                          Reimplemented from BaseResource.

                                                                                                                                                          + + + +
                                                                                                                                                          +
                                                                                                                                                          + + + + +
                                                                                                                                                          host = None [static]
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + + + + +
                                                                                                                                                          name = None [static]
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +

                                                                                                                                                          The documentation for this class was generated from the following file:
                                                                                                                                                            @@ -318,7 +389,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html index f35b6a64..e1062d85 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager-members.html @@ -109,6 +109,7 @@ response_keyBaseManager [static] revoke_user_accessCloudDatabaseUserManager run_hooksBaseManager + updateCloudDatabaseUserManager uri_baseBaseManager [static] @@ -128,7 +129,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html index a0fd8b9c..df190cf7 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html @@ -124,6 +124,8 @@ Public Member Functions def change_user_password  Changes the password for the user to the supplied value.
                                                                                                                                                            +def update + Allows you to change one or more of the user's username, password, or host.
                                                                                                                                                            def list_user_access  Returns a list of all database names for which the specified user has access rights.
                                                                                                                                                            def grant_user_access @@ -282,6 +284,53 @@

                                                                                                                                                            Revokes access to the databases listed in `db_names` for the user.

                                                                                                                                                            If any of the databases do not exist, a NoSuchDatabase exception will be raised, unless you specify `strict=False` in the call.

                                                                                                                                                            + + + +
                                                                                                                                                            +
                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                            def update ( self,
                                                                                                                                                             user,
                                                                                                                                                             name = None,
                                                                                                                                                             password = None,
                                                                                                                                                             host = None 
                                                                                                                                                            )
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            + +

                                                                                                                                                            Allows you to change one or more of the user's username, password, or host.

                                                                                                                                                            +

                                                                                                                                                            The documentation for this class was generated from the following file:
                                                                                                                                                              @@ -305,7 +354,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html index 7df63738..172fe8fa 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html @@ -113,7 +113,9 @@ Public Member Functions def __init__ def resize + Resize the volume to the specified size (in GB).
                                                                                                                                                              def get + For compatibility with regular resource objects.

                                                                                                                                                              Static Public Attributes

                                                                                                                                                               instance = None @@ -180,6 +182,8 @@
                                                                                                                                                              +

                                                                                                                                                              For compatibility with regular resource objects.

                                                                                                                                                              +
                                                                                                                                                              @@ -207,6 +211,8 @@
                                                                                                                                                              +

                                                                                                                                                              Resize the volume to the specified size (in GB).

                                                                                                                                                              +

                                                                                                                                                              Member Data Documentation

                                                                                                                                                              @@ -270,7 +276,7 @@ diff --git a/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html b/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html new file mode 100644 index 00000000..7d38ed7e --- /dev/null +++ b/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html @@ -0,0 +1,142 @@ + + + + + +pyrax: DBUpdateUnchanged Class Reference + + + + + + + + + + + +
                                                                                                                                                              + + +
                                                                                                                                                              + + + + + + + + + + + +
                                                                                                                                                              +
                                                                                                                                                              pyrax + +
                                                                                                                                                              +
                                                                                                                                                              Python Bindings for the Rackspace Cloud
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + + + + + + + + + +
                                                                                                                                                              + +
                                                                                                                                                              + + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              DBUpdateUnchanged Class Reference
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +Inheritance diagram for DBUpdateUnchanged:
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + + +PyraxException + +
                                                                                                                                                              +
                                                                                                                                                              The documentation for this class was generated from the following file: +
                                                                                                                                                              + + + + +
                                                                                                                                                              + +
                                                                                                                                                              + + + + + + + diff --git a/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.png b/docs/html/classpyrax_1_1exceptions_1_1DBUpdateUnchanged.png new file mode 100644 index 0000000000000000000000000000000000000000..f153161437df3fcdc5435ad3a344a980c81ec293 GIT binary patch literal 494 zcmeAS@N?(olHy`uVBq!ia0vp^EkGQ=!3-qdo9eCsQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;&_i-j;p87ABo8~oLGEi=gL_d>Kh+RA3c1hOh-gTxnSnf#bOicSp#*?IQZ^qJQ20>?;X}4;koZT)>+SUwt4^U zr)qKsXWLT&W1iQ_jsBJj-yCEVu2=6AfAdjY;oWbBE@3dKtZ+fLfq_MVfsw-j=vXjQ zP}Isn@0Prm1H&TDgP~a>W^;<2e}7dts6Kgf=t=RwZH_k%mrmg@RGzpu4&KGHKD_UgITe-pc}lr9XF*t;_{+XPef?@nzrEY8JI>I$!LC?&AY4S? eKkpI7Pt2=k%FJ|NOZNmu4uhwwpUXO@geCwT=F@!u literal 0 HcmV?d00001 diff --git a/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html b/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html new file mode 100644 index 00000000..a856e124 --- /dev/null +++ b/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.html @@ -0,0 +1,142 @@ + + + + + +pyrax: MissingDBUserParameters Class Reference + + + + + + + + + + + +
                                                                                                                                                              + + +
                                                                                                                                                              + + + + + + + + + + + +
                                                                                                                                                              +
                                                                                                                                                              pyrax + +
                                                                                                                                                              +
                                                                                                                                                              Python Bindings for the Rackspace Cloud
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + + + + + + + + + +
                                                                                                                                                              + +
                                                                                                                                                              + + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              MissingDBUserParameters Class Reference
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +Inheritance diagram for MissingDBUserParameters:
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + + +PyraxException + +
                                                                                                                                                              +
                                                                                                                                                              The documentation for this class was generated from the following file: +
                                                                                                                                                              + + + + +
                                                                                                                                                              + +
                                                                                                                                                              + + + + + + + diff --git a/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.png b/docs/html/classpyrax_1_1exceptions_1_1MissingDBUserParameters.png new file mode 100644 index 0000000000000000000000000000000000000000..acc3ba3ca207a610ec62ccb5de7a705cda6e3f2a GIT binary patch literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^i-0(QgBeJ!EsL`TQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;RSS%IgOckai(@|F4q z`_C$6|Mg7wKNfa?VZJ5jJ-zjxw(W^3WL6T`&pWZBqfE9 zwZ6Sk%8w2Ryw|U@UG&$jcbg(t@^q!FXuZYD>|X6T7*P;5$t_$RcOS>OoU;->d%xve(@&nHC_Ukw6|#@6O{%)9HNChn;G%BGmzy2(bMx5w zk1XzR-?m%)de8XOV0{R-oCXcSh{fDCwKQm3uH%`MXhUh^X7Id)e$4o6jiiVpep~ z{TCy0KmFG1m+F)6Zz*t;e*Q>a;PTAmBQY80-dE^t>e;wx?}c?uwLzY}FV48U__=xC w7xoL`QD^hNe7XL{@`yW6hl5T_#JxI(*LRg(POGn942)m~Pgg&ebxsLQ082^wf&c&j literal 0 HcmV?d00001 diff --git a/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html b/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html index 8565e2a5..ca084cf5 100644 --- a/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html +++ b/docs/html/classpyrax_1_1exceptions_1_1PyraxException.html @@ -116,95 +116,97 @@ AuthSystemNotFound CDNFailed ClientException -DNSCallTimedOut -DomainCreationFailed -DomainDeletionFailed -DomainRecordAdditionFailed -DomainRecordDeletionFailed -DomainRecordNotFound -DomainRecordNotUnique -DomainRecordUpdateFailed -DomainUpdateFailed -DuplicateQueue -DuplicateUser -EndpointNotDefined -EndpointNotFound -EnvironmentNotFound -FileNotFound -FlavorNotFound -FolderNotFound -IdentityClassNotDefined -InvalidCDNMetadata -InvalidConfigurationFile -InvalidCredentialFile -InvalidDateTimeString -InvalidDeviceType -InvalidEmail -InvalidLoadBalancer -InvalidLoadBalancerParameters -InvalidMonitoringCheckDetails -InvalidMonitoringCheckUpdate -InvalidMonitoringMetricsRequest -InvalidMonitoringMetricsResolution -InvalidNodeCondition -InvalidNodeParameters -InvalidPTRRecord -InvalidQueueName -InvalidSessionPersistenceType -InvalidSetting -InvalidSize -InvalidTemporaryURLMethod -InvalidUploadID -InvalidVirtualIPType -InvalidVirtualIPVersion -InvalidVolumeResize -KeyringModuleNotInstalled -KeyringPasswordNotFound -KeyringUsernameMissing -MissingAuthSettings -MissingClaimParameters -MissingDNSSettings -MissingHealthMonitorSettings -MissingLoadBalancerParameters -MissingMonitoringCheckDetails -MissingMonitoringCheckGranularity -MissingName -MissingTemporaryURLKey -MonitoringCheckTargetNotSpecified -MonitoringZonesPollMissing -NetworkCIDRInvalid -NetworkCIDRMalformed -NetworkCountExceeded -NetworkInUse -NetworkLabelNotUnique -NetworkNotFound -NoMoreResults -NoReloadError -NoSSLTerminationConfiguration -NoSuchContainer -NoSuchDatabase -NoSuchDatabaseUser -NoSuchObject -NotAuthenticated -NotCDNEnabled -NoTokenLookupException -PasswordChangeFailed -ProtocolMismatch -PTRRecordCreationFailed -PTRRecordDeletionFailed -PTRRecordUpdateFailed -QueueClientIDNotDefined -ServiceNotAvailable -SnapshotNotAvailable -TenantNotFound -UnattachedNode -UnattachedVirtualIP -UnicodePathError -UploadFailed -UserNotFound -VolumeAttachmentFailed -VolumeDetachmentFailed -VolumeNotAvailable +DBUpdateUnchanged +DNSCallTimedOut +DomainCreationFailed +DomainDeletionFailed +DomainRecordAdditionFailed +DomainRecordDeletionFailed +DomainRecordNotFound +DomainRecordNotUnique +DomainRecordUpdateFailed +DomainUpdateFailed +DuplicateQueue +DuplicateUser +EndpointNotDefined +EndpointNotFound +EnvironmentNotFound +FileNotFound +FlavorNotFound +FolderNotFound +IdentityClassNotDefined +InvalidCDNMetadata +InvalidConfigurationFile +InvalidCredentialFile +InvalidDateTimeString +InvalidDeviceType +InvalidEmail +InvalidLoadBalancer +InvalidLoadBalancerParameters +InvalidMonitoringCheckDetails +InvalidMonitoringCheckUpdate +InvalidMonitoringMetricsRequest +InvalidMonitoringMetricsResolution +InvalidNodeCondition +InvalidNodeParameters +InvalidPTRRecord +InvalidQueueName +InvalidSessionPersistenceType +InvalidSetting +InvalidSize +InvalidTemporaryURLMethod +InvalidUploadID +InvalidVirtualIPType +InvalidVirtualIPVersion +InvalidVolumeResize +KeyringModuleNotInstalled +KeyringPasswordNotFound +KeyringUsernameMissing +MissingAuthSettings +MissingClaimParameters +MissingDBUserParameters +MissingDNSSettings +MissingHealthMonitorSettings +MissingLoadBalancerParameters +MissingMonitoringCheckDetails +MissingMonitoringCheckGranularity +MissingName +MissingTemporaryURLKey +MonitoringCheckTargetNotSpecified +MonitoringZonesPollMissing +NetworkCIDRInvalid +NetworkCIDRMalformed +NetworkCountExceeded +NetworkInUse +NetworkLabelNotUnique +NetworkNotFound +NoMoreResults +NoReloadError +NoSSLTerminationConfiguration +NoSuchContainer +NoSuchDatabase +NoSuchDatabaseUser +NoSuchObject +NotAuthenticated +NotCDNEnabled +NoTokenLookupException +PasswordChangeFailed +ProtocolMismatch +PTRRecordCreationFailed +PTRRecordDeletionFailed +PTRRecordUpdateFailed +QueueClientIDNotDefined +ServiceNotAvailable +SnapshotNotAvailable +TenantNotFound +UnattachedNode +UnattachedVirtualIP +UnicodePathError +UploadFailed +UserNotFound +VolumeAttachmentFailed +VolumeDetachmentFailed +VolumeNotAvailable
                                                                                                                                                              The documentation for this class was generated from the following file:
                                                                                                                                                                @@ -228,7 +230,7 @@ diff --git a/docs/html/classpyrax_1_1exceptions_1_1PyraxException.png b/docs/html/classpyrax_1_1exceptions_1_1PyraxException.png index 5cf53f1383a906726d9cb55ed713dce27f25aa81..73bcc2682426981a901b766ed76121244a3a1b34 100644 GIT binary patch literal 28318 zcmcfpdpMN&{|AoOw$*NhwH>5!*i~Cejg(Bz6;gyEfq%m~ZkmD+haz2;C z2r;>tQL8B9Fk_s@P1b1+%_w3phVQMm_j});>v#RW|JZNW)pV!KxF7fP@OV5Aulr{$ zO{F&M*syBVDyh?_jICF#S`DsRwKd|0HSkv+Zoo9de{4T{=Df+$(h_{h`7n)(`|}U@ z>dWt!FJG>`->(e+^#{P((qpO$}hHl07TY8CdtY2)MPZ>$zTP$2)w&+A@#%{Y!r zl;@m3#_ekK`_L25OL_fZ)sX)A9oVI)hhue9%fq~ zkT7%^-lNguqOXz2+Y_2~+S96tdCj2yAbgT7PAlX`xfoPk*oaoTE!@oEJ=Hot$PBBt z59S!$C+o#tnBzuONJGA?#2V0TO!BGji6`=EjMH|DW`vWLDZj`R zKg<@(LeHKgUIL>HZOURwc0!+dvsVf-fK($MW&UzajV=h>Gty z-=}37?fLeqsB;{?{_?tv+a3<%-B#{mnx=iGdBLV-aNsu*W&>s77tfVycgSkQ_1AVI zgpYrQ@FTPfVsU5P4MoVCqhjLHe=1&G^$jE0np~Py>Yjk_+c^C+`khp~Awxe3d%0<2 zMrD�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 literal 27726 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

                                                                                                                                                                -gR|lnE>_9@SQR)GB3Xf964*x1 zdfF|F{ev|-_}bmd)B>DB_rfUd0%-+0TsJsJMM8IjjDb)E0o3*vU{n^-x!{+n# CloudBlockStorageManager CloudBlockStorageSnapshotManager -CloudDatabaseDatabaseManager -CloudDatabaseManager -CloudDatabaseUserManager -CloudDNSManager -CloudLoadBalancerManager -CloudMonitorEntityManager -CloudMonitorNotificationManager -CloudMonitorNotificationPlanManager -CloudNetworkManager -BaseQueueManager +CloudDatabaseBackupManager +CloudDatabaseDatabaseManager +CloudDatabaseManager +CloudDatabaseUserManager +CloudDNSManager +CloudLoadBalancerManager +CloudMonitorEntityManager +CloudMonitorNotificationManager +CloudMonitorNotificationPlanManager +CloudNetworkManager +BaseQueueManager @@ -663,7 +664,7 @@

                                                                                                                                                                diff --git a/docs/html/classpyrax_1_1manager_1_1BaseManager.png b/docs/html/classpyrax_1_1manager_1_1BaseManager.png index dc62f5736b4565d30b7c8f55c716d4371795d732..ab894686389c076898e764421da8f4dc78351dd0 100644 GIT binary patch delta 3068 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 W;<+0Jv?)qHWS^IxCu`3S+5ZN|-Ur73 delta 2718 zcmZvee>l@?AIBLpKg!a{gm9`;Iw8+_EIBkyNYN=J)MlKLV}471M9tR-b^O?27gFIX z`Q6s9*_xSMr=pXQZ>7YBI>MJVtFzTI#xr%!bv@VhJpbJHANT#w{k~uC_xmHT?f>pK zj1l6!zK)ib)~ZJXl_l$45hkOzNij%(51N>W*j;xVQ@7{u+{8EJ1H$-I*42#c`O%CMbII%KVX}+$17HZ5q1uYDBF}m^YFpk_4pcH3*@YRayEA*_Tx%{ zE(jn9HtE+-ILKD}}FBnnd6Bu zYE~(A)W|gmzO_AVo&27OA~6viEuw_9n%W=1d%f?p->?>Pagk6x09k}`K>l6LRzoFne>>EN!-sb`Sux)C7cWzTwCAs zy7NW+A;1xDgH*LF_?y7Ia0D(Ow>)kgoX!pbHIGFauGs=jWmoSSLvF<*xA<#o)+Q|^ z{Wqiw5RTutfgM*65jHbBKRiEC$dr(~V(8RGL)OlDPiXqX5(Z1M%G`*z(I?o%F3a%D z^Cr~BQ4ejn`_^#Q(lmM9p~mYKbrFQIatpjnr*DmPQwB7fG*qY@eSnZH;*A+Aa?`(s zGlf-lu}x#@E_22E)aPqVRdmCuV%~?fmIYE}BphE~V9Rk(ZiCvx8#vRxL)&a!JoK7cZ4xP5R>yx?CW;F@ zCnwR}SFWdv4bgPYYE!@xyWxb0ee_fP>>o1uSX6h?W+<47x#0s^oObS6-Tp!9-phdQralRz`tly*270?Np}yk z?@QhVNfu_Ckg7FMyvV+zeq;BEcZ3o`4N7%?!GY{Yf^$IKDa z8|?JwhgWx!DiMm~ASpNXQEbA~C(v;?BfdU1cW{UipZQ=LV5~?3FW!<}Va}?qoaMJ$ zxb?kj=&;e4f(&_&B?(9RtX{fU@UArP2106aJ+o_hODk~VUHQKJb4j8k8KRF!8v6LG zOl;vScvf-KIFj5>$SXUYbcwZlq=;ds49Hqsp-?B0Okkh?D@ML{4m}IG7pVKk2E0y* zOx0d?jpV13_bFo&NYgFae!yv;mDK=N>3dg)e`_`5Lw(t3+5E7Fr+8}%JqruF79u)P zz|{5gv7npn3~6STVAg-nb9|1)==?=-VD_o zA!o#+B8U9FX3#JHgcbbRYnRfSLSFhlYZRq2 z;~Gr)=ukTaQ+@OH5W2a)V-P`Ea!^KTYxqZfF#sP)$La3{WXPfmuh1gC`=F7uvX>vK^3Vgb z`ie*pK+)2VC!KV8ViBJ*ePA3#$n5wSWUSEBD5C@03s6OOP+{!>mTd{%(R{Rq6FsmZ zZTx{7Bh!3qa$xN=ciq)M&oZ&za6fl$#fY>%|8y)j*h8Kf#Ae5q65MV(-@%RTY;^xK z{`Eclv7Kx(=at>d;-rT1mo5gdhLVV8YkkG(AE?#MyXB!q3NPZeFVbj20^W%4uaP0> zw-M{3IvF=MZD1Wz*lWux}eh7yO1y+1p(1o6G8%srhC4rsE-IT*;CI^XmoI zrUSFQRHILUBWdd>=h>5q`3v<~la0fnK&f|THe+Mjr=0v+wP8V^lEg@XPA!<^9UOKy zgp6pJO03ytpSpXM`s$T_NCFOi*LYCX2d4Xpwz?g4-p8mq zYB^*bUL8<#az|naXm3qq5%(WeBPL)m<@|67aXdNhIhwlQ7bLWQIEOed@B@t+0CckYw{jOZYuPA@h*XY0G(Z_+nfE)5;Uq7TbZ=@7wg}3<;F>98Z%|ffpxAGE zSxEqGhm*cmvIeXgG+m~*7dWU}bm2k)KREbOD76!#DDCQck~b>QqL@J;1rrI_oJF1|1)tdt?EX41E-7V9uD zjUy)DkEJ&aABlSKaX5NnNJ(S-C7jy=nN4~SXG1PO4;^M6M0O;LS}Gh CloudBlockStorageVolume CloudBlockStorageVolumeType -CloudDatabaseDatabase -CloudDatabaseFlavor -CloudDatabaseInstance -CloudDatabaseUser -CloudDNSDomain -CloudDNSRecord -CloudLoadBalancer -CloudMonitorAlarm -CloudMonitorCheck -CloudMonitorCheckType -CloudMonitorEntity -CloudMonitorNotification -CloudMonitorNotificationPlan -CloudMonitorNotificationType -CloudMonitorZone -CloudNetwork -Queue -QueueClaim -QueueMessage +CloudDatabaseBackup +CloudDatabaseDatabase +CloudDatabaseFlavor +CloudDatabaseInstance +CloudDatabaseUser +CloudDNSDomain +CloudDNSRecord +CloudLoadBalancer +CloudMonitorAlarm +CloudMonitorCheck +CloudMonitorCheckType +CloudMonitorEntity +CloudMonitorNotification +CloudMonitorNotificationPlan +CloudMonitorNotificationType +CloudMonitorZone +CloudNetwork +Queue +QueueClaim +QueueMessage @@ -379,7 +380,7 @@ @@ -487,7 +488,7 @@ diff --git a/docs/html/classpyrax_1_1resource_1_1BaseResource.png b/docs/html/classpyrax_1_1resource_1_1BaseResource.png index e36457e75c4f72f4f80419e7bdb2c911da530f5d..58ef4a3899f5f2f423b23c32e249c7dd770f4039 100644 GIT binary patch delta 4501 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 delta 4187 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 S_77phhNDhyj%7avUi}|Wvq*dZ diff --git a/docs/html/clouddatabases_8py.html b/docs/html/clouddatabases_8py.html index 98240dd9..1ef93667 100644 --- a/docs/html/clouddatabases_8py.html +++ b/docs/html/clouddatabases_8py.html @@ -93,6 +93,8 @@  This class manages communication with databases on Cloud Database instances. More...
                                                                                                                                                                class  CloudDatabaseUserManager  This class handles operations on the users in a database on a Cloud Database instance. More...
                                                                                                                                                                +class  CloudDatabaseBackupManager + This class handles operations on backups for a Cloud Database instance. More...
                                                                                                                                                                class  CloudDatabaseInstance  This class represents a MySQL instance in the cloud. More...
                                                                                                                                                                class  CloudDatabaseDatabase @@ -101,6 +103,8 @@  This class represents a user on a CloudDatabaseInstance. More...
                                                                                                                                                                class  CloudDatabaseFlavor  This class represents the available instance configurations, or 'flavors', which you use to define the memory and CPU size of your instance. More...
                                                                                                                                                                +class  CloudDatabaseBackup + This class represents a database backup. More...
                                                                                                                                                                class  CloudDatabaseClient  This is the primary class for interacting with Cloud Databases. More...

                                                                                                                                                                @@ -128,7 +132,7 @@ diff --git a/docs/html/exceptions_8py.html b/docs/html/exceptions_8py.html index dccbcfa4..a840221c 100644 --- a/docs/html/exceptions_8py.html +++ b/docs/html/exceptions_8py.html @@ -93,6 +93,7 @@ class  AuthorizationFailure class  AuthSystemNotFound class  CDNFailed +class  DBUpdateUnchanged class  DNSCallTimedOut class  DomainCreationFailed class  DomainDeletionFailed @@ -140,6 +141,7 @@ class  InvalidVolumeResize class  MissingAuthSettings class  MissingClaimParameters +class  MissingDBUserParameters class  MissingDNSSettings class  MissingHealthMonitorSettings class  MissingLoadBalancerParameters @@ -231,7 +233,7 @@ diff --git a/docs/html/functions_0x63.html b/docs/html/functions_0x63.html index 55f556df..9c5ff3be 100644 --- a/docs/html/functions_0x63.html +++ b/docs/html/functions_0x63.html @@ -253,33 +253,38 @@

                                                                                                                                                                - c -

                                                                                                                                                                  , Container
                                                                                                                                                                • create() -: CloudMonitorClient +: BaseClient +, CloudMonitorClient +, CloudMonitorNotificationManager , CloudNetworkClient , BaseManager -, QueueClient -, CloudMonitorNotificationManager -, QueueManager , CloudBlockStorageClient +, QueueManager +, QueueClient , CloudMonitorNotificationPlanManager -, BaseClient , CloudBlockStorageSnapshotManager
                                                                                                                                                                • create_alarm() -: CloudMonitorClient -, CloudMonitorCheck +: CloudMonitorEntity +, CloudMonitorClient , CloudMonitorEntityManager -, CloudMonitorEntity +, CloudMonitorCheck +
                                                                                                                                                                • +
                                                                                                                                                                • create_backup() +: CloudDatabaseClient +, CloudDatabaseManager +, CloudDatabaseInstance
                                                                                                                                                                • create_check() -: CloudMonitorClient -, CloudMonitorEntityManager +: CloudMonitorEntityManager +, CloudMonitorClient
                                                                                                                                                                • create_container() : CFClient
                                                                                                                                                                • create_database() -: CloudDatabaseClient -, CloudDatabaseInstance +: CloudDatabaseInstance +, CloudDatabaseClient
                                                                                                                                                                • create_entity() : CloudMonitorClient @@ -291,16 +296,16 @@

                                                                                                                                                                  - c -

                                                                                                                                                                  @@ -322,7 +327,7 @@

                                                                                                                                                                  - c -

                                                                                                                                                                    diff --git a/docs/html/functions_0x64.html b/docs/html/functions_0x64.html index 869f7ab1..b602087d 100644 --- a/docs/html/functions_0x64.html +++ b/docs/html/functions_0x64.html @@ -167,6 +167,9 @@

                                                                                                                                                                    - d -

                                                                                                                                                                    • delete_all_snapshots() : CloudBlockStorageVolume
                                                                                                                                                                    • +
                                                                                                                                                                    • delete_backup() +: CloudDatabaseClient +
                                                                                                                                                                    • delete_by_ids() : Queue , QueueMessageManager @@ -207,18 +210,18 @@

                                                                                                                                                                      - d -

                                                                                                                                                                        : QueueClient
                                                                                                                                                                      • delete_metadata() -: CloudLoadBalancerClient -, CloudLoadBalancer +: CloudLoadBalancer , CloudLoadBalancerManager , Node +, CloudLoadBalancerClient
                                                                                                                                                                      • delete_metadata_for_node() : CloudLoadBalancer , CloudLoadBalancerClient
                                                                                                                                                                      • delete_node() -: CloudLoadBalancerClient -, CloudLoadBalancerManager +: CloudLoadBalancerManager +, CloudLoadBalancerClient , CloudLoadBalancer
                                                                                                                                                                      • delete_notification() @@ -236,18 +239,18 @@

                                                                                                                                                                        - d -

                                                                                                                                                                          , Container
                                                                                                                                                                        • delete_policy() -: ScalingGroupManager +: ScalingGroup +, ScalingGroupManager , AutoScaleClient -, ScalingGroup
                                                                                                                                                                        • delete_ptr_records() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                                                                                                                                        • delete_record() : CloudDNSDomain -, CloudDNSManager , CloudDNSClient +, CloudDNSManager
                                                                                                                                                                        • delete_session_persistence() : CloudLoadBalancerManager @@ -256,31 +259,31 @@

                                                                                                                                                                          - d -

                                                                                                                                                                            : CloudBlockStorageClient
                                                                                                                                                                          • delete_ssl_termination() -: CloudLoadBalancerManager -, CloudLoadBalancer +: CloudLoadBalancer , CloudLoadBalancerClient +, CloudLoadBalancerManager
                                                                                                                                                                          • delete_tenant() : BaseAuth
                                                                                                                                                                          • delete_user() -: BaseAuth +: CloudDatabaseClient +, BaseAuth , CloudDatabaseInstance -, CloudDatabaseClient
                                                                                                                                                                          • delete_virtualip() -: CloudLoadBalancer +: CloudLoadBalancerManager +, CloudLoadBalancer , CloudLoadBalancerClient -, CloudLoadBalancerManager
                                                                                                                                                                          • delete_volume() : CloudBlockStorageClient
                                                                                                                                                                          • delete_webhook() -: AutoScalePolicy -, ScalingGroup +: ScalingGroupManager , AutoScaleClient -, ScalingGroupManager +, AutoScalePolicy +, ScalingGroup
                                                                                                                                                                          • description : CloudBlockStorageVolume @@ -342,7 +345,7 @@

                                                                                                                                                                            - d -

                                                                                                                                                                              diff --git a/docs/html/functions_0x67.html b/docs/html/functions_0x67.html index 90d896f6..9657e36a 100644 --- a/docs/html/functions_0x67.html +++ b/docs/html/functions_0x67.html @@ -158,6 +158,9 @@

                                                                                                                                                                              - g -

                                                                                                                                                                              • get_audits() : CloudMonitorClient
                                                                                                                                                                              • +
                                                                                                                                                                              • get_backup() +: CloudDatabaseClient +
                                                                                                                                                                              • get_check() : CloudMonitorEntityManager , CloudMonitorClient @@ -166,8 +169,8 @@

                                                                                                                                                                                - g -

                                                                                                                                                                                  : CloudMonitorClient
                                                                                                                                                                                • get_claim() -: QueueClient -, Queue +: Queue +, QueueClient
                                                                                                                                                                                • get_configuration() : ScalingGroup @@ -219,6 +222,7 @@

                                                                                                                                                                                  - g -

                                                                                                                                                                                    : CloudDatabaseDatabase , CloudDatabaseUser , CloudDatabaseFlavor +, CloudDatabaseBackup , BaseResource
                                                                                                                                                                                  • GET_DETAILS @@ -234,9 +238,9 @@

                                                                                                                                                                                    - g -

                                                                                                                                                                                      : CloudMonitorClient
                                                                                                                                                                                    • get_error_page() -: CloudLoadBalancer -, CloudLoadBalancerManager +: CloudLoadBalancerManager , CloudLoadBalancerClient +, CloudLoadBalancer
                                                                                                                                                                                    • get_extensions() : BaseAuth @@ -265,18 +269,18 @@

                                                                                                                                                                                      - g -

                                                                                                                                                                                        , CloudDatabaseClient
                                                                                                                                                                                      • get_message() -: Queue -, QueueClient +: QueueClient +, Queue
                                                                                                                                                                                      • get_metadata() -: StorageObject +: QueueClient , Container +, StorageObject , CloudLoadBalancer , CloudLoadBalancerManager , Node , CloudLoadBalancerClient , QueueManager -, QueueClient
                                                                                                                                                                                      • get_metadata_for_node() : CloudLoadBalancer @@ -284,9 +288,9 @@

                                                                                                                                                                                        - g -

                                                                                                                                                                                        • get_metric_data_points() : CloudMonitorEntity -, CloudMonitorEntityManager , CloudMonitorCheck , CloudMonitorClient +, CloudMonitorEntityManager
                                                                                                                                                                                        • get_monitoring_zone() : CloudMonitorClient @@ -330,8 +334,8 @@

                                                                                                                                                                                          - g -

                                                                                                                                                                                            : CloudDNSClient
                                                                                                                                                                                          • get_server_networks() -: CloudNetworkClient -, CloudNetwork +: CloudNetwork +, CloudNetworkClient
                                                                                                                                                                                          • get_session_persistence() : CloudLoadBalancerManager @@ -339,25 +343,25 @@

                                                                                                                                                                                            - g -

                                                                                                                                                                                            • get_ssl_termination() : CloudLoadBalancerClient -, CloudLoadBalancerManager , CloudLoadBalancer +, CloudLoadBalancerManager
                                                                                                                                                                                            • get_state() -: ScalingGroupManager +: ScalingGroup +, ScalingGroupManager , AutoScaleClient -, ScalingGroup
                                                                                                                                                                                            • get_stats() : QueueClient -, CloudLoadBalancerManager , QueueManager +, CloudLoadBalancerManager
                                                                                                                                                                                            • get_subdomain_iterator() : CloudDNSClient
                                                                                                                                                                                            • get_temp_url() -: CFClient -, StorageObject +: StorageObject +, CFClient , Container
                                                                                                                                                                                            • get_temp_url_key() @@ -384,26 +388,26 @@

                                                                                                                                                                                              - g -

                                                                                                                                                                                              @@ -424,7 +428,7 @@

                                                                                                                                                                                              - g -

                                                                                                                                                                                                diff --git a/docs/html/functions_0x68.html b/docs/html/functions_0x68.html index 0f7a35e4..fdc653ad 100644 --- a/docs/html/functions_0x68.html +++ b/docs/html/functions_0x68.html @@ -118,15 +118,18 @@

                                                                                                                                                                                                - h -

                                                                                                                                                                                                • head() : BaseManager
                                                                                                                                                                                                • +
                                                                                                                                                                                                • host +: CloudDatabaseUser +
                                                                                                                                                                                                • href -: QueueMessage -, QueueClaim +: QueueClaim +, QueueMessage
                                                                                                                                                                                                • http_log_debug -: BaseAuth +: BaseClient +, BaseAuth , CFClient , Connection -, BaseClient
                                                                                                                                                                                                • http_log_req() : BaseClient @@ -135,20 +138,20 @@

                                                                                                                                                                                                  - h -

                                                                                                                                                                                                  @@ -168,7 +171,7 @@

                                                                                                                                                                                                  - h -

                                                                                                                                                                                                    diff --git a/docs/html/functions_0x6c.html b/docs/html/functions_0x6c.html index 643c0fbb..2b1a57fb 100644 --- a/docs/html/functions_0x6c.html +++ b/docs/html/functions_0x6c.html @@ -123,25 +123,31 @@

                                                                                                                                                                                                    - l -

                                                                                                                                                                                                    • list() : BaseClient +, CloudMonitorClient , BaseManager +, CloudDatabaseBackupManager , Queue -, CloudDNSManager , QueueMessageManager , CFClient +, CloudDNSManager , CloudDNSClient -, CloudMonitorClient
                                                                                                                                                                                                    • list_alarms() : CloudMonitorEntity , CloudMonitorEntityManager , CloudMonitorClient
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • list_backups() +: CloudDatabaseInstance +, CloudDatabaseClient +, CloudDatabaseManager +
                                                                                                                                                                                                    • list_by_claim() : Queue
                                                                                                                                                                                                    • list_by_ids() -: QueueMessageManager -, Queue +: Queue +, QueueMessageManager
                                                                                                                                                                                                    • list_check_types() : CloudMonitorClient @@ -210,17 +216,17 @@

                                                                                                                                                                                                      - l -

                                                                                                                                                                                                        : CloudMonitorClient
                                                                                                                                                                                                      • list_policies() -: AutoScaleClient -, ScalingGroup +: ScalingGroup , ScalingGroupManager +, AutoScaleClient
                                                                                                                                                                                                      • list_previous_page() : CloudDNSManager , CloudDNSClient
                                                                                                                                                                                                      • list_ptr_records() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                                                                                                                                                                      • list_public_containers() : CFClient @@ -242,25 +248,25 @@

                                                                                                                                                                                                        - l -

                                                                                                                                                                                                          : BaseAuth
                                                                                                                                                                                                        • list_snapshots() -: CloudBlockStorageManager +: CloudBlockStorageVolume +, CloudBlockStorageManager , CloudBlockStorageClient -, CloudBlockStorageVolume
                                                                                                                                                                                                        • list_subdirs() : Container
                                                                                                                                                                                                        • list_subdomains() -: CloudDNSDomain +: CloudDNSClient +, CloudDNSDomain , CloudDNSManager -, CloudDNSClient
                                                                                                                                                                                                        • list_subdomains_next_page() : CloudDNSManager , CloudDNSClient
                                                                                                                                                                                                        • list_subdomains_previous_page() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                                                                                                                                                        • list_tenants() : BaseAuth @@ -273,21 +279,21 @@

                                                                                                                                                                                                          - l -

                                                                                                                                                                                                            , CloudBlockStorageClient
                                                                                                                                                                                                          • list_user_access() -: CloudDatabaseUserManager -, CloudDatabaseInstance +: CloudDatabaseInstance +, CloudDatabaseUserManager , CloudDatabaseUser , CloudDatabaseClient
                                                                                                                                                                                                          • list_users() -: CloudDatabaseInstance -, CloudDatabaseClient +: CloudDatabaseClient , BaseAuth +, CloudDatabaseInstance
                                                                                                                                                                                                          • list_webhooks() -: ScalingGroupManager -, ScalingGroup -, AutoScaleClient +: ScalingGroup , AutoScalePolicy +, ScalingGroupManager +, AutoScaleClient
                                                                                                                                                                                                          • loaded : BaseResource @@ -311,7 +317,7 @@

                                                                                                                                                                                                            - l -

                                                                                                                                                                                                              diff --git a/docs/html/functions_0x6e.html b/docs/html/functions_0x6e.html index 935dff8e..29fbb2bd 100644 --- a/docs/html/functions_0x6e.html +++ b/docs/html/functions_0x6e.html @@ -119,8 +119,8 @@

                                                                                                                                                                                                              - n -

                                                                                                                                                                                                                : AutoScaleClient , Container , BaseClient -, CloudDatabaseClient -, Queue +, CloudDatabaseUser +, CloudNetworkClient , CloudMonitorAlarm , CloudMonitorNotificationPlan , CloudMonitorNotificationType @@ -130,16 +130,17 @@

                                                                                                                                                                                                                - n -

                                                                                                                                                                                                                  , CloudMonitorEntity , ScalingGroup , SelfDeletingTempDirectory -, QueueClient -, CloudDNSRecord , SelfDeletingTempfile -, CloudNetworkClient +, Queue +, CloudDatabaseClient +, QueueClient , CloudNetwork , CloudMonitorClient , CloudLoadBalancerClient , CloudDNSClient -, CloudBlockStorageSnapshot , CloudDNSPTRRecord +, CloudBlockStorageSnapshot +, CloudDNSRecord , StorageObject , CloudBlockStorageClient , CloudBlockStorageVolume @@ -175,7 +176,7 @@

                                                                                                                                                                                                                  - n -

                                                                                                                                                                                                                    diff --git a/docs/html/functions_0x72.html b/docs/html/functions_0x72.html index 1fb9d926..1d12313b 100644 --- a/docs/html/functions_0x72.html +++ b/docs/html/functions_0x72.html @@ -200,32 +200,36 @@

                                                                                                                                                                                                                    - r -

                                                                                                                                                                                                                      : CloudDatabaseInstance , CloudDatabaseClient +
                                                                                                                                                                                                                    • restore_backup() +: CloudDatabaseClient +, CloudDatabaseManager +
                                                                                                                                                                                                                    • results : BulkDeleter , ResultsIterator
                                                                                                                                                                                                                    • resume() -: AutoScaleClient -, ScalingGroup +: ScalingGroup +, AutoScaleClient , ScalingGroupManager
                                                                                                                                                                                                                    • revoke_user_access() -: CloudDatabaseUser +: CloudDatabaseClient +, CloudDatabaseUser , CloudDatabaseInstance , CloudDatabaseUserManager -, CloudDatabaseClient
                                                                                                                                                                                                                    • root_folder : FolderUploader
                                                                                                                                                                                                                    • root_user_status() -: CloudDatabaseClient -, CloudDatabaseInstance +: CloudDatabaseInstance +, CloudDatabaseClient
                                                                                                                                                                                                                    • run() -: _WaitThread -, BulkDeleter +: BulkDeleter , FolderUploader +, _WaitThread
                                                                                                                                                                                                                    • run_hooks() : BaseManager @@ -249,7 +253,7 @@

                                                                                                                                                                                                                      - r -

                                                                                                                                                                                                                        diff --git a/docs/html/functions_0x75.html b/docs/html/functions_0x75.html index ca508e3b..05e36837 100644 --- a/docs/html/functions_0x75.html +++ b/docs/html/functions_0x75.html @@ -121,21 +121,23 @@

                                                                                                                                                                                                                        - u -

                                                                                                                                                                                                                        • update() : ScalingGroupManager -, CloudDNSRecord +, CloudDatabaseUserManager +, CloudMonitorEntity +, CloudMonitorCheck +, CloudDatabaseUser , CloudMonitorNotification , CloudMonitorAlarm -, CloudDNSDomain -, QueueClaimManager , AutoScalePolicy -, CloudLoadBalancer -, CloudLoadBalancerManager +, CloudDNSRecord +, QueueClaimManager +, CloudDNSDomain , ScalingGroup , AutoScaleWebhook +, CloudLoadBalancer +, CloudLoadBalancerManager +, AutoScaleClient , Node , CloudLoadBalancerClient -, AutoScaleClient -, CloudMonitorEntity -, CloudMonitorCheck
                                                                                                                                                                                                                        • update_alarm() : CloudMonitorEntity @@ -159,9 +161,9 @@

                                                                                                                                                                                                                          - u -

                                                                                                                                                                                                                            , CloudMonitorClient
                                                                                                                                                                                                                          • update_launch_config() -: AutoScaleClient -, ScalingGroup +: ScalingGroup , ScalingGroupManager +, AutoScaleClient
                                                                                                                                                                                                                          • update_launch_metadata() : ScalingGroup @@ -192,42 +194,44 @@

                                                                                                                                                                                                                            - u -

                                                                                                                                                                                                                              , CloudMonitorClient
                                                                                                                                                                                                                            • update_policy() -: ScalingGroup +: AutoScaleClient +, ScalingGroup , ScalingGroupManager -, AutoScaleClient
                                                                                                                                                                                                                            • update_ptr_record() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                                                                                                                                                                            • update_record() -: CloudDNSDomain -, CloudDNSManager +: CloudDNSManager +, CloudDNSDomain , CloudDNSClient
                                                                                                                                                                                                                            • update_ssl_termination() -: CloudLoadBalancer +: CloudLoadBalancerClient +, CloudLoadBalancer , CloudLoadBalancerManager -, CloudLoadBalancerClient
                                                                                                                                                                                                                            • update_tenant() : BaseAuth
                                                                                                                                                                                                                            • update_user() -: RaxIdentity -, BaseAuth +: BaseAuth +, CloudDatabaseInstance +, RaxIdentity +, CloudDatabaseClient
                                                                                                                                                                                                                            • update_webhook() -: ScalingGroup -, ScalingGroupManager +: ScalingGroupManager , AutoScaleClient , AutoScalePolicy +, ScalingGroup
                                                                                                                                                                                                                            • update_webhook_metadata() : AutoScaleClient -, ScalingGroupManager , AutoScalePolicy , ScalingGroup +, ScalingGroupManager
                                                                                                                                                                                                                            • upload_file() : Container @@ -262,12 +266,13 @@

                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                              @@ -289,7 +294,7 @@

                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                diff --git a/docs/html/functions_func_0x63.html b/docs/html/functions_func_0x63.html index 5297b449..041b641c 100644 --- a/docs/html/functions_func_0x63.html +++ b/docs/html/functions_func_0x63.html @@ -170,9 +170,9 @@

                                                                                                                                                                                                                                - c -

                                                                                                                                                                                                                                • create() : CloudNetworkClient , BaseManager +, CloudMonitorClient , QueueManager , QueueClient -, CloudMonitorClient , BaseClient , CloudBlockStorageSnapshotManager , CloudBlockStorageClient @@ -180,10 +180,15 @@

                                                                                                                                                                                                                                  - c -

                                                                                                                                                                                                                                    , CloudMonitorNotificationPlanManager
                                                                                                                                                                                                                                  • create_alarm() -: CloudMonitorClient -, CloudMonitorEntity -, CloudMonitorCheck +: CloudMonitorEntity , CloudMonitorEntityManager +, CloudMonitorCheck +, CloudMonitorClient +
                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                  • create_backup() +: CloudDatabaseInstance +, CloudDatabaseClient +, CloudDatabaseManager
                                                                                                                                                                                                                                  • create_check() : CloudMonitorEntityManager @@ -206,17 +211,17 @@

                                                                                                                                                                                                                                    - c -

                                                                                                                                                                                                                                    @@ -237,7 +242,7 @@

                                                                                                                                                                                                                                    - c -

                                                                                                                                                                                                                                      diff --git a/docs/html/functions_func_0x64.html b/docs/html/functions_func_0x64.html index bf1f02b5..ff964562 100644 --- a/docs/html/functions_func_0x64.html +++ b/docs/html/functions_func_0x64.html @@ -158,6 +158,9 @@

                                                                                                                                                                                                                                      - d -

                                                                                                                                                                                                                                      • delete_all_snapshots() : CloudBlockStorageVolume
                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                      • delete_backup() +: CloudDatabaseClient +
                                                                                                                                                                                                                                      • delete_by_ids() : Queue , QueueMessageManager @@ -198,14 +201,14 @@

                                                                                                                                                                                                                                        - d -

                                                                                                                                                                                                                                          : QueueClient
                                                                                                                                                                                                                                        • delete_metadata() -: Node +: CloudLoadBalancerManager , CloudLoadBalancer -, CloudLoadBalancerManager +, Node , CloudLoadBalancerClient
                                                                                                                                                                                                                                        • delete_metadata_for_node() -: CloudLoadBalancer -, CloudLoadBalancerClient +: CloudLoadBalancerClient +, CloudLoadBalancer
                                                                                                                                                                                                                                        • delete_node() : CloudLoadBalancer @@ -227,18 +230,18 @@

                                                                                                                                                                                                                                          - d -

                                                                                                                                                                                                                                            , Container
                                                                                                                                                                                                                                          • delete_policy() -: ScalingGroup +: ScalingGroupManager , AutoScaleClient -, ScalingGroupManager +, ScalingGroup
                                                                                                                                                                                                                                          • delete_ptr_records() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                                                                                                                                                                                          • delete_record() -: CloudDNSManager +: CloudDNSDomain , CloudDNSClient -, CloudDNSDomain +, CloudDNSManager
                                                                                                                                                                                                                                          • delete_session_persistence() : CloudLoadBalancerManager @@ -247,31 +250,31 @@

                                                                                                                                                                                                                                            - d -

                                                                                                                                                                                                                                              : CloudBlockStorageClient
                                                                                                                                                                                                                                            • delete_ssl_termination() -: CloudLoadBalancerClient +: CloudLoadBalancerManager , CloudLoadBalancer -, CloudLoadBalancerManager +, CloudLoadBalancerClient
                                                                                                                                                                                                                                            • delete_tenant() : BaseAuth
                                                                                                                                                                                                                                            • delete_user() -: BaseAuth -, CloudDatabaseInstance +: CloudDatabaseInstance , CloudDatabaseClient +, BaseAuth
                                                                                                                                                                                                                                            • delete_virtualip() -: CloudLoadBalancerClient -, CloudLoadBalancerManager +: CloudLoadBalancerManager , CloudLoadBalancer +, CloudLoadBalancerClient
                                                                                                                                                                                                                                            • delete_volume() : CloudBlockStorageClient
                                                                                                                                                                                                                                            • delete_webhook() -: AutoScalePolicy -, ScalingGroupManager -, ScalingGroup +: ScalingGroup +, AutoScalePolicy , AutoScaleClient +, ScalingGroupManager
                                                                                                                                                                                                                                            • detach() : CloudBlockStorageClient @@ -281,8 +284,8 @@

                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                              @@ -303,7 +306,7 @@

                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                diff --git a/docs/html/functions_func_0x67.html b/docs/html/functions_func_0x67.html index a67ecc0c..4c6e75fe 100644 --- a/docs/html/functions_func_0x67.html +++ b/docs/html/functions_func_0x67.html @@ -156,6 +156,9 @@

                                                                                                                                                                                                                                                - g -

                                                                                                                                                                                                                                                • get_audits() : CloudMonitorClient
                                                                                                                                                                                                                                                • +
                                                                                                                                                                                                                                                • get_backup() +: CloudDatabaseClient +
                                                                                                                                                                                                                                                • get_check() : CloudMonitorEntityManager , CloudMonitorClient @@ -164,8 +167,8 @@

                                                                                                                                                                                                                                                  - g -

                                                                                                                                                                                                                                                    : CloudMonitorClient
                                                                                                                                                                                                                                                  • get_claim() -: QueueClient -, Queue +: Queue +, QueueClient
                                                                                                                                                                                                                                                  • get_configuration() : ScalingGroup @@ -234,9 +237,9 @@

                                                                                                                                                                                                                                                    - g -

                                                                                                                                                                                                                                                      : CloudDatabaseClient
                                                                                                                                                                                                                                                    • get_health_monitor() -: CloudLoadBalancer +: CloudLoadBalancerClient +, CloudLoadBalancer , CloudLoadBalancerManager -, CloudLoadBalancerClient
                                                                                                                                                                                                                                                    • get_home_document() : QueueClient @@ -258,13 +261,13 @@

                                                                                                                                                                                                                                                      - g -

                                                                                                                                                                                                                                                        , QueueClient
                                                                                                                                                                                                                                                      • get_metadata() -: QueueManager -, CloudLoadBalancer +: StorageObject +, CloudLoadBalancerClient , Container -, StorageObject +, CloudLoadBalancer , CloudLoadBalancerManager , Node -, CloudLoadBalancerClient +, QueueManager , QueueClient
                                                                                                                                                                                                                                                      • get_metadata_for_node() @@ -290,8 +293,8 @@

                                                                                                                                                                                                                                                        - g -

                                                                                                                                                                                                                                                          : CloudMonitorClient
                                                                                                                                                                                                                                                        • get_object() -: Container -, CFClient +: CFClient +, Container
                                                                                                                                                                                                                                                        • get_object_metadata() : CFClient @@ -303,9 +306,9 @@

                                                                                                                                                                                                                                                          - g -

                                                                                                                                                                                                                                                            : Container
                                                                                                                                                                                                                                                          • get_policy() -: ScalingGroup +: AutoScaleClient +, ScalingGroup , ScalingGroupManager -, AutoScaleClient
                                                                                                                                                                                                                                                          • get_rate_limits() : CloudDNSClient @@ -323,31 +326,31 @@

                                                                                                                                                                                                                                                            - g -

                                                                                                                                                                                                                                                              , CloudNetwork
                                                                                                                                                                                                                                                            • get_session_persistence() -: CloudLoadBalancerClient -, CloudLoadBalancerManager +: CloudLoadBalancerManager +, CloudLoadBalancerClient
                                                                                                                                                                                                                                                            • get_ssl_termination() : CloudLoadBalancerClient -, CloudLoadBalancerManager , CloudLoadBalancer +, CloudLoadBalancerManager
                                                                                                                                                                                                                                                            • get_state() -: ScalingGroup -, AutoScaleClient +: AutoScaleClient +, ScalingGroup , ScalingGroupManager
                                                                                                                                                                                                                                                            • get_stats() -: CloudLoadBalancerManager -, QueueClient +: QueueClient , QueueManager +, CloudLoadBalancerManager
                                                                                                                                                                                                                                                            • get_subdomain_iterator() : CloudDNSClient
                                                                                                                                                                                                                                                            • get_temp_url() -: Container -, CFClient +: CFClient , StorageObject +, Container
                                                                                                                                                                                                                                                            • get_temp_url_key() : CFClient @@ -359,8 +362,8 @@

                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                : BaseClient
                                                                                                                                                                                                                                                              • get_token() -: ServiceCatalog -, BaseAuth +: BaseAuth +, ServiceCatalog
                                                                                                                                                                                                                                                              • get_token_endpoints() : BaseAuth @@ -372,27 +375,27 @@

                                                                                                                                                                                                                                                                - g -

                                                                                                                                                                                                                                                                @@ -413,7 +416,7 @@

                                                                                                                                                                                                                                                                - g -

                                                                                                                                                                                                                                                                  diff --git a/docs/html/functions_func_0x6c.html b/docs/html/functions_func_0x6c.html index 4700b237..89698fd9 100644 --- a/docs/html/functions_func_0x6c.html +++ b/docs/html/functions_func_0x6c.html @@ -116,18 +116,24 @@

                                                                                                                                                                                                                                                                  - l -

                                                                                                                                                                                                                                                                  • list() : CFClient , BaseClient -, CloudDNSClient +, CloudDNSManager +, Queue , QueueMessageManager +, CloudDNSClient +, CloudDatabaseBackupManager , CloudMonitorClient -, CloudDNSManager , BaseManager -, Queue
                                                                                                                                                                                                                                                                  • list_alarms() : CloudMonitorEntity , CloudMonitorEntityManager , CloudMonitorClient
                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                  • list_backups() +: CloudDatabaseManager +, CloudDatabaseInstance +, CloudDatabaseClient +
                                                                                                                                                                                                                                                                  • list_by_claim() : Queue
                                                                                                                                                                                                                                                                  • @@ -175,10 +181,10 @@

                                                                                                                                                                                                                                                                    - l -

                                                                                                                                                                                                                                                                      : QueueClient
                                                                                                                                                                                                                                                                    • list_metrics() -: CloudMonitorCheck -, CloudMonitorClient -, CloudMonitorEntity +: CloudMonitorEntity , CloudMonitorEntityManager +, CloudMonitorCheck +, CloudMonitorClient
                                                                                                                                                                                                                                                                    • list_monitoring_zones() : CloudMonitorClient @@ -218,8 +224,8 @@

                                                                                                                                                                                                                                                                      - l -

                                                                                                                                                                                                                                                                        , CloudDNSClient
                                                                                                                                                                                                                                                                      • list_records_next_page() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager +, CloudDNSClient
                                                                                                                                                                                                                                                                      • list_records_previous_page() : CloudDNSManager @@ -229,25 +235,25 @@

                                                                                                                                                                                                                                                                        - l -

                                                                                                                                                                                                                                                                          : BaseAuth
                                                                                                                                                                                                                                                                        • list_snapshots() -: CloudBlockStorageManager -, CloudBlockStorageClient +: CloudBlockStorageClient +, CloudBlockStorageManager , CloudBlockStorageVolume
                                                                                                                                                                                                                                                                        • list_subdirs() : Container
                                                                                                                                                                                                                                                                        • list_subdomains() -: CloudDNSClient -, CloudDNSManager +: CloudDNSManager , CloudDNSDomain +, CloudDNSClient
                                                                                                                                                                                                                                                                        • list_subdomains_next_page() : CloudDNSClient , CloudDNSManager
                                                                                                                                                                                                                                                                        • list_subdomains_previous_page() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                                                                                                                                                                                                                                        • list_tenants() : BaseAuth @@ -260,20 +266,20 @@

                                                                                                                                                                                                                                                                          - l -

                                                                                                                                                                                                                                                                          @@ -295,7 +301,7 @@

                                                                                                                                                                                                                                                                          - l -

                                                                                                                                                                                                                                                                            diff --git a/docs/html/functions_func_0x72.html b/docs/html/functions_func_0x72.html index cb32b15f..d414f093 100644 --- a/docs/html/functions_func_0x72.html +++ b/docs/html/functions_func_0x72.html @@ -173,6 +173,10 @@

                                                                                                                                                                                                                                                                            - r -

                                                                                                                                                                                                                                                                              : CloudDatabaseInstance , CloudDatabaseClient +
                                                                                                                                                                                                                                                                            • restore_backup() +: CloudDatabaseManager +, CloudDatabaseClient +
                                                                                                                                                                                                                                                                            • resume() : ScalingGroupManager , AutoScaleClient @@ -185,13 +189,13 @@

                                                                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                                                                , CloudDatabaseInstance
                                                                                                                                                                                                                                                                              • root_user_status() -: CloudDatabaseInstance -, CloudDatabaseClient +: CloudDatabaseClient +, CloudDatabaseInstance
                                                                                                                                                                                                                                                                              • run() -: BulkDeleter +: FolderUploader , _WaitThread -, FolderUploader +, BulkDeleter
                                                                                                                                                                                                                                                                              • run_hooks() : BaseManager @@ -215,7 +219,7 @@

                                                                                                                                                                                                                                                                                - r -

                                                                                                                                                                                                                                                                                  diff --git a/docs/html/functions_func_0x75.html b/docs/html/functions_func_0x75.html index 10a1a2c1..94d66f6e 100644 --- a/docs/html/functions_func_0x75.html +++ b/docs/html/functions_func_0x75.html @@ -119,21 +119,23 @@

                                                                                                                                                                                                                                                                                  - u -

                                                                                                                                                                                                                                                                                  • update() : ScalingGroupManager -, CloudDNSRecord +, CloudDatabaseUserManager +, CloudMonitorEntity +, CloudMonitorCheck +, CloudDatabaseUser , CloudMonitorNotification , CloudMonitorAlarm -, CloudDNSDomain -, QueueClaimManager , AutoScalePolicy -, CloudLoadBalancer -, CloudLoadBalancerManager +, CloudDNSRecord +, QueueClaimManager +, CloudDNSDomain , ScalingGroup , AutoScaleWebhook +, CloudLoadBalancer +, CloudLoadBalancerManager +, AutoScaleClient , Node , CloudLoadBalancerClient -, AutoScaleClient -, CloudMonitorEntity -, CloudMonitorCheck
                                                                                                                                                                                                                                                                                  • update_alarm() : CloudMonitorEntity @@ -157,9 +159,9 @@

                                                                                                                                                                                                                                                                                    - u -

                                                                                                                                                                                                                                                                                      , CloudMonitorClient
                                                                                                                                                                                                                                                                                    • update_launch_config() -: AutoScaleClient -, ScalingGroup +: ScalingGroup , ScalingGroupManager +, AutoScaleClient
                                                                                                                                                                                                                                                                                    • update_launch_metadata() : ScalingGroup @@ -168,21 +170,21 @@

                                                                                                                                                                                                                                                                                      - u -

                                                                                                                                                                                                                                                                                      • update_metadata() : ScalingGroup -, CloudLoadBalancerClient , ScalingGroupManager , AutoScaleWebhook , AutoScaleClient , CloudLoadBalancer , CloudLoadBalancerManager , Node +, CloudLoadBalancerClient
                                                                                                                                                                                                                                                                                      • update_metadata_for_node() -: CloudLoadBalancer -, CloudLoadBalancerClient +: CloudLoadBalancerClient +, CloudLoadBalancer
                                                                                                                                                                                                                                                                                      • update_node() -: CloudLoadBalancerManager -, CloudLoadBalancer +: CloudLoadBalancer +, CloudLoadBalancerManager , CloudLoadBalancerClient
                                                                                                                                                                                                                                                                                      • update_notification() @@ -190,46 +192,48 @@

                                                                                                                                                                                                                                                                                        - u -

                                                                                                                                                                                                                                                                                          , CloudMonitorClient
                                                                                                                                                                                                                                                                                        • update_policy() -: ScalingGroupManager +: ScalingGroup +, ScalingGroupManager , AutoScaleClient -, ScalingGroup
                                                                                                                                                                                                                                                                                        • update_ptr_record() -: CloudDNSManager -, CloudDNSClient +: CloudDNSClient +, CloudDNSManager
                                                                                                                                                                                                                                                                                        • update_record() : CloudDNSManager -, CloudDNSClient , CloudDNSDomain +, CloudDNSClient
                                                                                                                                                                                                                                                                                        • update_ssl_termination() : CloudLoadBalancer -, CloudLoadBalancerClient , CloudLoadBalancerManager +, CloudLoadBalancerClient
                                                                                                                                                                                                                                                                                        • update_tenant() : BaseAuth
                                                                                                                                                                                                                                                                                        • update_user() -: RaxIdentity -, BaseAuth +: BaseAuth +, RaxIdentity +, CloudDatabaseClient +, CloudDatabaseInstance
                                                                                                                                                                                                                                                                                        • update_webhook() -: ScalingGroup -, ScalingGroupManager +: AutoScalePolicy , AutoScaleClient -, AutoScalePolicy +, ScalingGroup +, ScalingGroupManager
                                                                                                                                                                                                                                                                                        • update_webhook_metadata() -: ScalingGroupManager -, AutoScalePolicy +: AutoScalePolicy , AutoScaleClient , ScalingGroup +, ScalingGroupManager
                                                                                                                                                                                                                                                                                        • upload_file() -: CFClient -, Container +: Container +, CFClient
                                                                                                                                                                                                                                                                                        • upload_files_in_folder() : FolderUploader @@ -262,7 +266,7 @@

                                                                                                                                                                                                                                                                                          - u -

                                                                                                                                                                                                                                                                                            diff --git a/docs/html/functions_vars_0x67.html b/docs/html/functions_vars_0x67.html index 654fb7ed..16a2dab4 100644 --- a/docs/html/functions_vars_0x67.html +++ b/docs/html/functions_vars_0x67.html @@ -121,6 +121,7 @@

                                                                                                                                                                                                                                                                                            - g -

                                                                                                                                                                                                                                                                                            • get_details : BaseResource +, CloudDatabaseBackup , CloudDatabaseFlavor , CloudDatabaseUser
                                                                                                                                                                                                                                                                                            • @@ -143,7 +144,7 @@

                                                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                                                diff --git a/docs/html/functions_vars_0x68.html b/docs/html/functions_vars_0x68.html index 5ddd3d16..9180211d 100644 --- a/docs/html/functions_vars_0x68.html +++ b/docs/html/functions_vars_0x68.html @@ -113,23 +113,26 @@  

                                                                                                                                                                                                                                                                                                - h -

                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                • host +: CloudDatabaseUser +
                                                                                                                                                                                                                                                                                                • href : QueueMessage , QueueClaim
                                                                                                                                                                                                                                                                                                • http_log_debug -: Connection +: BaseAuth +, Connection , BaseClient -, BaseAuth
                                                                                                                                                                                                                                                                                                • http_status -: NotFound -, OverLimit -, Unauthorized +: Forbidden +, NoUniqueMatch , BadRequest , HTTPNotImplemented -, Forbidden -, NoUniqueMatch +, OverLimit +, Unauthorized +, NotFound
                                                                                                                                                                                                                                                                                                • HUMAN_ID : BaseResource @@ -153,7 +156,7 @@

                                                                                                                                                                                                                                                                                                  - h -

                                                                                                                                                                                                                                                                                                    diff --git a/docs/html/functions_vars_0x6e.html b/docs/html/functions_vars_0x6e.html index c48f55c5..3e170ad3 100644 --- a/docs/html/functions_vars_0x6e.html +++ b/docs/html/functions_vars_0x6e.html @@ -117,18 +117,19 @@

                                                                                                                                                                                                                                                                                                    - n -

                                                                                                                                                                                                                                                                                                      : AutoScaleClient , Container , BaseClient -, CloudDNSPTRRecord -, SelfDeletingTempDirectory +, CloudDNSRecord , SelfDeletingTempfile +, SelfDeletingTempDirectory , QueueClient , Queue , CloudNetworkClient , CloudMonitorClient , CloudLoadBalancerClient , CloudDNSClient +, CloudDNSPTRRecord , CloudBlockStorageClient -, CloudDNSRecord , CloudDatabaseClient +, CloudDatabaseUser , StorageObject
                                                                                                                                                                                                                                                                                                    • NAME_ATTR @@ -159,7 +160,7 @@

                                                                                                                                                                                                                                                                                                      - n -

                                                                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                                                                    • DBUpdateUnchanged
                                                                                                                                                                                                                                                                                                    • DNSCallTimedOut
                                                                                                                                                                                                                                                                                                    • DomainCreationFailed
                                                                                                                                                                                                                                                                                                    • DomainDeletionFailed
                                                                                                                                                                                                                                                                                                    • @@ -224,6 +227,7 @@
                                                                                                                                                                                                                                                                                                    • KeyringUsernameMissing
                                                                                                                                                                                                                                                                                                    • MissingAuthSettings
                                                                                                                                                                                                                                                                                                    • MissingClaimParameters
                                                                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                                                                    • MissingDBUserParameters
                                                                                                                                                                                                                                                                                                    • MissingDNSSettings
                                                                                                                                                                                                                                                                                                    • MissingHealthMonitorSettings
                                                                                                                                                                                                                                                                                                    • MissingLoadBalancerParameters
                                                                                                                                                                                                                                                                                                    • @@ -299,7 +303,7 @@ diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html index 92d35f9f..def5d7b5 100644 --- a/docs/html/namespacemembers.html +++ b/docs/html/namespacemembers.html @@ -284,9 +284,6 @@

                                                                                                                                                                                                                                                                                                      - d -

                                                                                                                                                                                                                                                                                                        : pyrax::base_identity , pyrax::cf_wrapper::client -
                                                                                                                                                                                                                                                                                                      • DAYS_14 -: pyrax::queueing -
                                                                                                                                                                                                                                                                                                      • debug : pyrax
                                                                                                                                                                                                                                                                                                      • @@ -634,7 +631,7 @@

                                                                                                                                                                                                                                                                                                        - w -

                                                                                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html index a3be16a0..a5a71d11 100644 --- a/docs/html/namespacemembers_vars.html +++ b/docs/html/namespacemembers_vars.html @@ -207,9 +207,6 @@

                                                                                                                                                                                                                                                                                                          - d -

                                                                                                                                                                                                                                                                                                            : pyrax::base_identity , pyrax::cf_wrapper::client -
                                                                                                                                                                                                                                                                                                          • DAYS_14 -: pyrax::queueing -
                                                                                                                                                                                                                                                                                                          • debug : pyrax
                                                                                                                                                                                                                                                                                                          • @@ -441,7 +438,7 @@

                                                                                                                                                                                                                                                                                                            - v -

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/namespacepyrax_1_1clouddatabases.html b/docs/html/namespacepyrax_1_1clouddatabases.html index d636076e..2e641ad0 100644 --- a/docs/html/namespacepyrax_1_1clouddatabases.html +++ b/docs/html/namespacepyrax_1_1clouddatabases.html @@ -113,6 +113,8 @@  This class manages communication with databases on Cloud Database instances. More...
                                                                                                                                                                                                                                                                                                              class  CloudDatabaseUserManager  This class handles operations on the users in a database on a Cloud Database instance. More...
                                                                                                                                                                                                                                                                                                              +class  CloudDatabaseBackupManager + This class handles operations on backups for a Cloud Database instance. More...
                                                                                                                                                                                                                                                                                                              class  CloudDatabaseInstance  This class represents a MySQL instance in the cloud. More...
                                                                                                                                                                                                                                                                                                              class  CloudDatabaseDatabase @@ -121,6 +123,8 @@  This class represents a user on a CloudDatabaseInstance. More...
                                                                                                                                                                                                                                                                                                              class  CloudDatabaseFlavor  This class represents the available instance configurations, or 'flavors', which you use to define the memory and CPU size of your instance. More...
                                                                                                                                                                                                                                                                                                              +class  CloudDatabaseBackup + This class represents a database backup. More...
                                                                                                                                                                                                                                                                                                              class  CloudDatabaseClient  This is the primary class for interacting with Cloud Databases. More...

                                                                                                                                                                                                                                                                                                              @@ -163,7 +167,7 @@ diff --git a/docs/html/namespacepyrax_1_1exceptions.html b/docs/html/namespacepyrax_1_1exceptions.html index c60f3021..9fed9c98 100644 --- a/docs/html/namespacepyrax_1_1exceptions.html +++ b/docs/html/namespacepyrax_1_1exceptions.html @@ -113,6 +113,7 @@ class  AuthorizationFailure class  AuthSystemNotFound class  CDNFailed +class  DBUpdateUnchanged class  DNSCallTimedOut class  DomainCreationFailed class  DomainDeletionFailed @@ -160,6 +161,7 @@ class  InvalidVolumeResize class  MissingAuthSettings class  MissingClaimParameters +class  MissingDBUserParameters class  MissingDNSSettings class  MissingHealthMonitorSettings class  MissingLoadBalancerParameters @@ -322,7 +324,7 @@ diff --git a/docs/html/namespacepyrax_1_1queueing.html b/docs/html/namespacepyrax_1_1queueing.html index b20c5064..2961349a 100644 --- a/docs/html/namespacepyrax_1_1queueing.html +++ b/docs/html/namespacepyrax_1_1queueing.html @@ -129,7 +129,6 @@  Converts a queue ID or name passed as the 'queue' parameter to a Queue object.

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              -int DAYS_14 = 1209600 int MSG_LIMIT = 10 tuple marker_pat = re.compile(r".+\bmarker=(\d+).*") @@ -154,19 +153,6 @@

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              int DAYS_14 = 1209600
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              @@ -211,7 +197,7 @@ diff --git a/docs/html/namespacepyrax_1_1version.html b/docs/html/namespacepyrax_1_1version.html index 92c05a31..dd512dd4 100644 --- a/docs/html/namespacepyrax_1_1version.html +++ b/docs/html/namespacepyrax_1_1version.html @@ -105,7 +105,7 @@ - +

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              string version = "1.6.0"
                                                                                                                                                                                                                                                                                                              string version = "1.6.1"

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              @@ -113,7 +113,7 @@
                                                                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                                                                              string version = "1.6.0"string version = "1.6.1"
                                                                                                                                                                                                                                                                                                              @@ -139,7 +139,7 @@ diff --git a/docs/html/queueing_8py.html b/docs/html/queueing_8py.html index dac0a1c6..e46affde 100644 --- a/docs/html/queueing_8py.html +++ b/docs/html/queueing_8py.html @@ -112,7 +112,6 @@  Converts a queue ID or name passed as the 'queue' parameter to a Queue object.

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              -int DAYS_14 = 1209600 int MSG_LIMIT = 10 tuple marker_pat = re.compile(r".+\bmarker=(\d+).*") @@ -134,7 +133,7 @@ diff --git a/docs/html/search/all_63.js b/docs/html/search/all_63.js index fd936ab6..49161120 100644 --- a/docs/html/search/all_63.js +++ b/docs/html/search/all_63.js @@ -50,6 +50,8 @@ var searchData= ['cloudblockstoragesnapshotmanager',['CloudBlockStorageSnapshotManager',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolume',['CloudBlockStorageVolume',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolumetype',['CloudBlockStorageVolumeType',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolumeType.html',1,'pyrax::cloudblockstorage']]], + ['clouddatabasebackup',['CloudDatabaseBackup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html',1,'pyrax::clouddatabases']]], + ['clouddatabasebackupmanager',['CloudDatabaseBackupManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html',1,'pyrax::clouddatabases']]], ['clouddatabaseclient',['CloudDatabaseClient',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabase',['CloudDatabaseDatabase',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabasemanager',['CloudDatabaseDatabaseManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabaseManager.html',1,'pyrax::clouddatabases']]], @@ -106,13 +108,13 @@ var searchData= ['connect_5fto_5fcloudservers',['connect_to_cloudservers',['../namespacepyrax.html#a93dcb702dfed414cb32073e78fdff831',1,'pyrax']]], ['connect_5fto_5fqueues',['connect_to_queues',['../namespacepyrax.html#ac8d659180e8fac04349063827198b196',1,'pyrax']]], ['connect_5fto_5fservices',['connect_to_services',['../namespacepyrax.html#a708483dfb93616381fb0ec9338ab5528',1,'pyrax']]], - ['connection',['Connection',['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html',1,'pyrax::cf_wrapper::client']]], ['connection',['connection',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a10275a078bd1abcbebc206cc5d19e18b',1,'pyrax::cf_wrapper::client::CFClient']]], + ['connection',['Connection',['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html',1,'pyrax::cf_wrapper::client']]], ['connection_5flogging',['connection_logging',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a863329ee2898f7d6212281bab325e419',1,'pyrax::cloudloadbalancers::CloudLoadBalancer']]], ['connection_5fretries',['CONNECTION_RETRIES',['../namespacepyrax_1_1cf__wrapper_1_1client.html#a19074fb0e7d33e5cb6f2fc49877e64c1',1,'pyrax::cf_wrapper::client']]], ['connection_5ftimeout',['CONNECTION_TIMEOUT',['../namespacepyrax_1_1cf__wrapper_1_1client.html#a32d68802775b5e101a259fb6f3edf5d7',1,'pyrax::cf_wrapper::client']]], - ['container',['container',['../classpyrax_1_1cf__wrapper_1_1client_1_1FolderUploader.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::FolderUploader.container()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1BulkDeleter.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::BulkDeleter.container()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::storage_object::StorageObject.container()']]], ['container',['Container',['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html',1,'pyrax::cf_wrapper::container']]], + ['container',['container',['../classpyrax_1_1cf__wrapper_1_1client_1_1FolderUploader.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::FolderUploader.container()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1BulkDeleter.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::client::BulkDeleter.container()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#a030ecaa2a61b422a8ca7422403ad8c77',1,'pyrax::cf_wrapper::storage_object::StorageObject.container()']]], ['container_2epy',['container.py',['../container_8py.html',1,'']]], ['container_5fmeta_5fprefix',['container_meta_prefix',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b5995b5ab3392bd65e1fcaf722b6707',1,'pyrax::cf_wrapper::client::CFClient']]], ['content_5fcaching',['content_caching',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a1cd94acd6d68908839cb20d0ad216ba5',1,'pyrax::cloudloadbalancers::CloudLoadBalancer']]], @@ -122,6 +124,7 @@ var searchData= ['copy_5fobject',['copy_object',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::client::CFClient.copy_object()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::container::Container.copy_object()']]], ['create',['create',['../classpyrax_1_1client_1_1BaseClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::client::BaseClient.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshotManager.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageClient.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlanManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlanManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorClient.create()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudnetworks::CloudNetworkClient.create()'],['../classpyrax_1_1manager_1_1BaseManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::manager::BaseManager.create()'],['../classpyrax_1_1queueing_1_1QueueManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueManager.create()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueClient.create()']]], ['create_5falarm',['create_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntity.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorCheck.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_alarm()']]], + ['create_5fbackup',['create_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseManager.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseClient.create_backup()']]], ['create_5fcheck',['create_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_check()']]], ['create_5fcontainer',['create_container',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a31b9196903b253dd2cd99dc4d7a0774e',1,'pyrax::cf_wrapper::client::CFClient']]], ['create_5fdatabase',['create_database',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_database()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseClient.create_database()']]], diff --git a/docs/html/search/all_64.js b/docs/html/search/all_64.js index 4660d4c6..3f1e4fbc 100644 --- a/docs/html/search/all_64.js +++ b/docs/html/search/all_64.js @@ -2,7 +2,7 @@ var searchData= [ ['data',['data',['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSRecord.data()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSPTRRecord.data()']]], ['date_5fformat',['DATE_FORMAT',['../namespacepyrax_1_1base__identity.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::base_identity.DATE_FORMAT()'],['../namespacepyrax_1_1cf__wrapper_1_1client.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::cf_wrapper::client.DATE_FORMAT()']]], - ['days_5f14',['DAYS_14',['../namespacepyrax_1_1queueing.html#af085154866e1b5a067335fc640e279bd',1,'pyrax::queueing']]], + ['dbupdateunchanged',['DBUpdateUnchanged',['../classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html',1,'pyrax::exceptions']]], ['debug',['debug',['../namespacepyrax.html#a4c919e19877c5868fcd9f7662c236649',1,'pyrax']]], ['default_5fcdn_5fttl',['default_cdn_ttl',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a15a3ad1a3abde8c5a3fede95c2b24c19',1,'pyrax::cf_wrapper::client::CFClient']]], ['default_5fdelay',['DEFAULT_DELAY',['../namespacepyrax_1_1clouddns.html#a0695d4ce7bb0b1de03ba3068cde8d89a',1,'pyrax::clouddns']]], @@ -15,6 +15,7 @@ var searchData= ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], ['delete_5fall_5fobjects',['delete_all_objects',['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a29c7d5f06a4fdc49b064a4352e8c8763',1,'pyrax::cf_wrapper::container::Container']]], ['delete_5fall_5fsnapshots',['delete_all_snapshots',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#aec8a47767c07e19ef3ad9f6b974240bb',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume']]], + ['delete_5fbackup',['delete_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a75e968bbf5e6ff6c377c3bf0f8f56694',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['delete_5fby_5fids',['delete_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::Queue.delete_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::QueueMessageManager.delete_by_ids()']]], ['delete_5fcheck',['delete_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_check()']]], ['delete_5fconnection_5fthrottle',['delete_connection_throttle',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_connection_throttle()']]], diff --git a/docs/html/search/all_67.js b/docs/html/search/all_67.js index 4431e314..3e0a63a7 100644 --- a/docs/html/search/all_67.js +++ b/docs/html/search/all_67.js @@ -8,6 +8,7 @@ var searchData= ['get_5falarm',['get_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntity.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_alarm()']]], ['get_5fall_5fcontainers',['get_all_containers',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#ae413c04282e2a1f584d7b99bbea09b54',1,'pyrax::cf_wrapper::client::CFClient']]], ['get_5faudits',['get_audits',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ad18caa6ffb1e5081c9aa71d04a434ce6',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], + ['get_5fbackup',['get_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a3a01f4e15e08d87606f2886455804879',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['get_5fcheck',['get_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_check()']]], ['get_5fcheck_5ftype',['get_check_type',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4ec84467f00cf7b6b321984347025d14',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], ['get_5fchecksum',['get_checksum',['../namespacepyrax_1_1utils.html#a9e1881e14792f2c07dd799fd7b9d53d1',1,'pyrax::utils']]], @@ -25,7 +26,7 @@ var searchData= ['get_5fcontent_5fcaching',['get_content_caching',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a81bd711b5a3cfb2976088a62c9adc6e0',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.get_content_caching()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a81bd711b5a3cfb2976088a62c9adc6e0',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.get_content_caching()']]], ['get_5fdatabase',['get_database',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a88023cfc83e7c3c6343e1b37f1fb7f4f',1,'pyrax::clouddatabases::CloudDatabaseInstance.get_database()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a88023cfc83e7c3c6343e1b37f1fb7f4f',1,'pyrax::clouddatabases::CloudDatabaseClient.get_database()']]], ['get_5fdefault_5fregion',['get_default_region',['../classpyrax_1_1base__identity_1_1BaseAuth.html#aa48069d87e240c6f35caed1b76e8cb4e',1,'pyrax::base_identity::BaseAuth']]], - ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]], + ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseBackup::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]], ['get_5fdevice',['get_device',['../classpyrax_1_1cloudloadbalancers_1_1Node.html#aab56944ec3d6d817943ee557024ac816',1,'pyrax::cloudloadbalancers::Node']]], ['get_5fdomain_5fiterator',['get_domain_iterator',['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a603939fc833c990994af7e8cfaad5eda',1,'pyrax::clouddns::CloudDNSClient']]], ['get_5fencoding',['get_encoding',['../namespacepyrax.html#a449ca982d93692884375caa2d609b3b0',1,'pyrax']]], diff --git a/docs/html/search/all_68.js b/docs/html/search/all_68.js index 50faa835..38d8d0e9 100644 --- a/docs/html/search/all_68.js +++ b/docs/html/search/all_68.js @@ -3,6 +3,7 @@ var searchData= ['handle_5fswiftclient_5fexception',['handle_swiftclient_exception',['../namespacepyrax_1_1cf__wrapper_1_1client.html#aed48921b20ac7d5d1bf17dae8e2f971d',1,'pyrax::cf_wrapper::client']]], ['head',['head',['../classpyrax_1_1manager_1_1BaseManager.html#a6ffb8c9775dd06f2a95c5be870862051',1,'pyrax::manager::BaseManager']]], ['head_5fdate_5fformat',['HEAD_DATE_FORMAT',['../namespacepyrax_1_1cf__wrapper_1_1client.html#aea95a0010e586f71e6587a111cae730c',1,'pyrax::cf_wrapper::client']]], + ['host',['host',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#a832ddc04754e8a43d4f3c6165b1294a7',1,'pyrax::clouddatabases::CloudDatabaseUser']]], ['href',['href',['../classpyrax_1_1queueing_1_1QueueMessage.html#aecfca4286e302d5d945be6fe76b99c86',1,'pyrax::queueing::QueueMessage.href()'],['../classpyrax_1_1queueing_1_1QueueClaim.html#ab8d8e60d0ff1588f6381ad0bef8ad4b7',1,'pyrax::queueing::QueueClaim.href()']]], ['http_5flog_5fdebug',['http_log_debug',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::base_identity::BaseAuth.http_log_debug()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::cf_wrapper::client::CFClient.http_log_debug()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::cf_wrapper::client::Connection::http_log_debug()'],['../classpyrax_1_1client_1_1BaseClient.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::client::BaseClient.http_log_debug()']]], ['http_5flog_5freq',['http_log_req',['../classpyrax_1_1client_1_1BaseClient.html#a1d196f692455d5ea3eafe3d08178b131',1,'pyrax::client::BaseClient']]], diff --git a/docs/html/search/all_6c.js b/docs/html/search/all_6c.js index c4e0b9fb..ff6542e2 100644 --- a/docs/html/search/all_6c.js +++ b/docs/html/search/all_6c.js @@ -2,8 +2,9 @@ var searchData= [ ['label',['label',['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#a22f45a3cb4f074e609f58ebaeef0ecf9',1,'pyrax::cloudnetworks::CloudNetwork']]], ['last_5fmodified',['last_modified',['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#aacadc30373e677c508e7b598fe832e32',1,'pyrax::cf_wrapper::storage_object::StorageObject']]], - ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], + ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddatabases::CloudDatabaseBackupManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], ['list_5falarms',['list_alarms',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntity.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorClient.list_alarms()']]], + ['list_5fbackups',['list_backups',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseManager.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseInstance.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseClient.list_backups()']]], ['list_5fby_5fclaim',['list_by_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac7bd1cb861452925a16e74d9b6aafd43',1,'pyrax::queueing::Queue']]], ['list_5fby_5fids',['list_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::Queue.list_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::QueueMessageManager.list_by_ids()']]], ['list_5fcheck_5ftypes',['list_check_types',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a360142ff4cbb495a8e5ba41b9c810a8b',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], diff --git a/docs/html/search/all_6d.js b/docs/html/search/all_6d.js index 2bafd4d8..ec43be4f 100644 --- a/docs/html/search/all_6d.js +++ b/docs/html/search/all_6d.js @@ -25,6 +25,7 @@ var searchData= ['min_5fsize',['MIN_SIZE',['../namespacepyrax_1_1cloudblockstorage.html#aaba5e7c5484ccde364fadc3e6a496b1f',1,'pyrax::cloudblockstorage']]], ['missingauthsettings',['MissingAuthSettings',['../classpyrax_1_1exceptions_1_1MissingAuthSettings.html',1,'pyrax::exceptions']]], ['missingclaimparameters',['MissingClaimParameters',['../classpyrax_1_1exceptions_1_1MissingClaimParameters.html',1,'pyrax::exceptions']]], + ['missingdbuserparameters',['MissingDBUserParameters',['../classpyrax_1_1exceptions_1_1MissingDBUserParameters.html',1,'pyrax::exceptions']]], ['missingdnssettings',['MissingDNSSettings',['../classpyrax_1_1exceptions_1_1MissingDNSSettings.html',1,'pyrax::exceptions']]], ['missinghealthmonitorsettings',['MissingHealthMonitorSettings',['../classpyrax_1_1exceptions_1_1MissingHealthMonitorSettings.html',1,'pyrax::exceptions']]], ['missingloadbalancerparameters',['MissingLoadBalancerParameters',['../classpyrax_1_1exceptions_1_1MissingLoadBalancerParameters.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/all_6e.js b/docs/html/search/all_6e.js index 74299353..fa39d54c 100644 --- a/docs/html/search/all_6e.js +++ b/docs/html/search/all_6e.js @@ -1,6 +1,6 @@ var searchData= [ - ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetwork.name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorEntity.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorCheck.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorZone.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorZone.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotification.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationType.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationType.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlan.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlan.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], + ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddatabases::CloudDatabaseUser.name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetwork.name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::autoscale::ScalingGroup.name'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorEntity.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorCheck.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorZone.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorZone.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotification.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationType.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationType.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlan.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlan.name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#a757840459670ee7692e00cf5ddc722d5',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], ['name_5fattr',['NAME_ATTR',['../classpyrax_1_1resource_1_1BaseResource.html#a74fac10a98253f8b0308159a33113ab9',1,'pyrax::resource::BaseResource']]], ['networkcidrinvalid',['NetworkCIDRInvalid',['../classpyrax_1_1exceptions_1_1NetworkCIDRInvalid.html',1,'pyrax::exceptions']]], ['networkcidrmalformed',['NetworkCIDRMalformed',['../classpyrax_1_1exceptions_1_1NetworkCIDRMalformed.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/all_72.js b/docs/html/search/all_72.js index 00dea7f5..c7e0149d 100644 --- a/docs/html/search/all_72.js +++ b/docs/html/search/all_72.js @@ -30,6 +30,7 @@ var searchData= ['resource_5fclass',['resource_class',['../classpyrax_1_1manager_1_1BaseManager.html#ad9ec49f2ad20e5d29aaaedf6da36c880',1,'pyrax::manager::BaseManager']]], ['response_5fkey',['response_key',['../classpyrax_1_1manager_1_1BaseManager.html#ab74e33fd52b6ead303c8ecd584121a47',1,'pyrax::manager::BaseManager']]], ['restart',['restart',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseInstance.restart()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseClient.restart()']]], + ['restore_5fbackup',['restore_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseManager.restore_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseClient.restore_backup()']]], ['results',['results',['../classpyrax_1_1cf__wrapper_1_1client_1_1BulkDeleter.html#a339bb5524b06e496a6aaa0a97a4a8d21',1,'pyrax::cf_wrapper::client::BulkDeleter.results()'],['../classpyrax_1_1clouddns_1_1ResultsIterator.html#a339bb5524b06e496a6aaa0a97a4a8d21',1,'pyrax::clouddns::ResultsIterator.results()']]], ['resultsiterator',['ResultsIterator',['../classpyrax_1_1clouddns_1_1ResultsIterator.html',1,'pyrax::clouddns']]], ['resume',['resume',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroup.resume()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroupManager.resume()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::AutoScaleClient.resume()']]], diff --git a/docs/html/search/all_75.js b/docs/html/search/all_75.js index 9fa775a4..8d402d37 100644 --- a/docs/html/search/all_75.js +++ b/docs/html/search/all_75.js @@ -6,7 +6,7 @@ var searchData= ['unauthenticated',['unauthenticated',['../namespacepyrax_1_1utils.html#a662924ed2118b3ba66f1d1521a7c2b40',1,'pyrax::utils']]], ['unauthorized',['Unauthorized',['../classpyrax_1_1exceptions_1_1Unauthorized.html',1,'pyrax::exceptions']]], ['unicodepatherror',['UnicodePathError',['../classpyrax_1_1exceptions_1_1UnicodePathError.html',1,'pyrax::exceptions']]], - ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], + ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUserManager.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUser.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], ['update_5falarm',['update_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_alarm()']]], ['update_5fcheck',['update_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_check()']]], ['update_5fclaim',['update_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::Queue.update_claim()'],['../classpyrax_1_1queueing_1_1QueueClient.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::QueueClient.update_claim()']]], @@ -24,7 +24,7 @@ var searchData= ['update_5frecord',['update_record',['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSDomain.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSManager.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSClient.update_record()']]], ['update_5fssl_5ftermination',['update_ssl_termination',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update_ssl_termination()']]], ['update_5ftenant',['update_tenant',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a25f2b401ee3068816e774d648abd83de',1,'pyrax::base_identity::BaseAuth']]], - ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], + ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseInstance.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseClient.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], ['update_5fwebhook',['update_webhook',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroup.update_webhook()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroupManager.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScalePolicy.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScaleClient.update_webhook()']]], ['update_5fwebhook_5fmetadata',['update_webhook_metadata',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroup.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroupManager.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScalePolicy.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScaleClient.update_webhook_metadata()']]], ['upload_5ffile',['upload_file',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::client::CFClient.upload_file()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::container::Container.upload_file()']]], diff --git a/docs/html/search/classes_63.js b/docs/html/search/classes_63.js index 9ad3c6b6..71b1fc75 100644 --- a/docs/html/search/classes_63.js +++ b/docs/html/search/classes_63.js @@ -9,6 +9,8 @@ var searchData= ['cloudblockstoragesnapshotmanager',['CloudBlockStorageSnapshotManager',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolume',['CloudBlockStorageVolume',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html',1,'pyrax::cloudblockstorage']]], ['cloudblockstoragevolumetype',['CloudBlockStorageVolumeType',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolumeType.html',1,'pyrax::cloudblockstorage']]], + ['clouddatabasebackup',['CloudDatabaseBackup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html',1,'pyrax::clouddatabases']]], + ['clouddatabasebackupmanager',['CloudDatabaseBackupManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html',1,'pyrax::clouddatabases']]], ['clouddatabaseclient',['CloudDatabaseClient',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabase',['CloudDatabaseDatabase',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html',1,'pyrax::clouddatabases']]], ['clouddatabasedatabasemanager',['CloudDatabaseDatabaseManager',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabaseManager.html',1,'pyrax::clouddatabases']]], diff --git a/docs/html/search/classes_64.js b/docs/html/search/classes_64.js index 18b327ca..d0be0d79 100644 --- a/docs/html/search/classes_64.js +++ b/docs/html/search/classes_64.js @@ -1,5 +1,6 @@ var searchData= [ + ['dbupdateunchanged',['DBUpdateUnchanged',['../classpyrax_1_1exceptions_1_1DBUpdateUnchanged.html',1,'pyrax::exceptions']]], ['dnscalltimedout',['DNSCallTimedOut',['../classpyrax_1_1exceptions_1_1DNSCallTimedOut.html',1,'pyrax::exceptions']]], ['domaincreationfailed',['DomainCreationFailed',['../classpyrax_1_1exceptions_1_1DomainCreationFailed.html',1,'pyrax::exceptions']]], ['domaindeletionfailed',['DomainDeletionFailed',['../classpyrax_1_1exceptions_1_1DomainDeletionFailed.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/classes_6d.js b/docs/html/search/classes_6d.js index 76adec4d..24ec4332 100644 --- a/docs/html/search/classes_6d.js +++ b/docs/html/search/classes_6d.js @@ -2,6 +2,7 @@ var searchData= [ ['missingauthsettings',['MissingAuthSettings',['../classpyrax_1_1exceptions_1_1MissingAuthSettings.html',1,'pyrax::exceptions']]], ['missingclaimparameters',['MissingClaimParameters',['../classpyrax_1_1exceptions_1_1MissingClaimParameters.html',1,'pyrax::exceptions']]], + ['missingdbuserparameters',['MissingDBUserParameters',['../classpyrax_1_1exceptions_1_1MissingDBUserParameters.html',1,'pyrax::exceptions']]], ['missingdnssettings',['MissingDNSSettings',['../classpyrax_1_1exceptions_1_1MissingDNSSettings.html',1,'pyrax::exceptions']]], ['missinghealthmonitorsettings',['MissingHealthMonitorSettings',['../classpyrax_1_1exceptions_1_1MissingHealthMonitorSettings.html',1,'pyrax::exceptions']]], ['missingloadbalancerparameters',['MissingLoadBalancerParameters',['../classpyrax_1_1exceptions_1_1MissingLoadBalancerParameters.html',1,'pyrax::exceptions']]], diff --git a/docs/html/search/functions_63.js b/docs/html/search/functions_63.js index 43367bb3..2d207ed5 100644 --- a/docs/html/search/functions_63.js +++ b/docs/html/search/functions_63.js @@ -31,6 +31,7 @@ var searchData= ['copy_5fobject',['copy_object',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::client::CFClient.copy_object()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a7d45157fae0af819d907da6b00fa2378',1,'pyrax::cf_wrapper::container::Container.copy_object()']]], ['create',['create',['../classpyrax_1_1client_1_1BaseClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::client::BaseClient.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshotManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshotManager.create()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudblockstorage::CloudBlockStorageClient.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotificationPlanManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorNotificationPlanManager.create()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudmonitoring::CloudMonitorClient.create()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::cloudnetworks::CloudNetworkClient.create()'],['../classpyrax_1_1manager_1_1BaseManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::manager::BaseManager.create()'],['../classpyrax_1_1queueing_1_1QueueManager.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueManager.create()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a5b7ef0221e471e99fa7f0a87a28ba1ea',1,'pyrax::queueing::QueueClient.create()']]], ['create_5falarm',['create_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntity.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorCheck.create_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5e3e83b1715922337eb99e95373166e6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_alarm()']]], + ['create_5fbackup',['create_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseManager.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a02e9656d9c78c0834d17bfced831845d',1,'pyrax::clouddatabases::CloudDatabaseClient.create_backup()']]], ['create_5fcheck',['create_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.create_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a6fc873d6c66c1173dc63793fd2cc72d6',1,'pyrax::cloudmonitoring::CloudMonitorClient.create_check()']]], ['create_5fcontainer',['create_container',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a31b9196903b253dd2cd99dc4d7a0774e',1,'pyrax::cf_wrapper::client::CFClient']]], ['create_5fdatabase',['create_database',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseInstance.create_database()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a287e0595d14610db48012f18e10d60d5',1,'pyrax::clouddatabases::CloudDatabaseClient.create_database()']]], diff --git a/docs/html/search/functions_64.js b/docs/html/search/functions_64.js index 597d5f13..b7496ed3 100644 --- a/docs/html/search/functions_64.js +++ b/docs/html/search/functions_64.js @@ -6,6 +6,7 @@ var searchData= ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], ['delete_5fall_5fobjects',['delete_all_objects',['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a29c7d5f06a4fdc49b064a4352e8c8763',1,'pyrax::cf_wrapper::container::Container']]], ['delete_5fall_5fsnapshots',['delete_all_snapshots',['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#aec8a47767c07e19ef3ad9f6b974240bb',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume']]], + ['delete_5fbackup',['delete_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a75e968bbf5e6ff6c377c3bf0f8f56694',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['delete_5fby_5fids',['delete_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::Queue.delete_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab3f3c42b68d285259934117c1a8f65e5',1,'pyrax::queueing::QueueMessageManager.delete_by_ids()']]], ['delete_5fcheck',['delete_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4efaacdc5baa3b0cf23478e90a16a5b9',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_check()']]], ['delete_5fconnection_5fthrottle',['delete_connection_throttle',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_connection_throttle()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#ae08266e5e13ddc6e99a972671e132d51',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_connection_throttle()']]], diff --git a/docs/html/search/functions_67.js b/docs/html/search/functions_67.js index 621ec434..afc49780 100644 --- a/docs/html/search/functions_67.js +++ b/docs/html/search/functions_67.js @@ -8,6 +8,7 @@ var searchData= ['get_5falarm',['get_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntity.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a0efb17866082d1efd4697a8414e61d22',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_alarm()']]], ['get_5fall_5fcontainers',['get_all_containers',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#ae413c04282e2a1f584d7b99bbea09b54',1,'pyrax::cf_wrapper::client::CFClient']]], ['get_5faudits',['get_audits',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ad18caa6ffb1e5081c9aa71d04a434ce6',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], + ['get_5fbackup',['get_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a3a01f4e15e08d87606f2886455804879',1,'pyrax::clouddatabases::CloudDatabaseClient']]], ['get_5fcheck',['get_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.get_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a663e1c9857cbc0bf083314e6404e976f',1,'pyrax::cloudmonitoring::CloudMonitorClient.get_check()']]], ['get_5fcheck_5ftype',['get_check_type',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a4ec84467f00cf7b6b321984347025d14',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], ['get_5fchecksum',['get_checksum',['../namespacepyrax_1_1utils.html#a9e1881e14792f2c07dd799fd7b9d53d1',1,'pyrax::utils']]], diff --git a/docs/html/search/functions_6c.js b/docs/html/search/functions_6c.js index d55ecdca..2c136ec4 100644 --- a/docs/html/search/functions_6c.js +++ b/docs/html/search/functions_6c.js @@ -1,7 +1,8 @@ var searchData= [ - ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], + ['list',['list',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cf_wrapper::client::CFClient.list()'],['../classpyrax_1_1client_1_1BaseClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::client::BaseClient.list()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackupManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddatabases::CloudDatabaseBackupManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSManager.list()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::clouddns::CloudDNSClient.list()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::cloudmonitoring::CloudMonitorClient.list()'],['../classpyrax_1_1manager_1_1BaseManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::manager::BaseManager.list()'],['../classpyrax_1_1queueing_1_1Queue.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::Queue.list()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#a9b522b4ef7526bfa60b78fe735caa55c',1,'pyrax::queueing::QueueMessageManager.list()']]], ['list_5falarms',['list_alarms',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntity.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.list_alarms()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aba03029cc0b951e300763dfb7b374b8f',1,'pyrax::cloudmonitoring::CloudMonitorClient.list_alarms()']]], + ['list_5fbackups',['list_backups',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseManager.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseInstance.list_backups()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a0ed9ce14a6eafbfe306e55f0b1c8b218',1,'pyrax::clouddatabases::CloudDatabaseClient.list_backups()']]], ['list_5fby_5fclaim',['list_by_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac7bd1cb861452925a16e74d9b6aafd43',1,'pyrax::queueing::Queue']]], ['list_5fby_5fids',['list_by_ids',['../classpyrax_1_1queueing_1_1Queue.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::Queue.list_by_ids()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ae6ec4aa7bb7da740187a3039da271f47',1,'pyrax::queueing::QueueMessageManager.list_by_ids()']]], ['list_5fcheck_5ftypes',['list_check_types',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a360142ff4cbb495a8e5ba41b9c810a8b',1,'pyrax::cloudmonitoring::CloudMonitorClient']]], diff --git a/docs/html/search/functions_72.js b/docs/html/search/functions_72.js index 58aad181..9919e40f 100644 --- a/docs/html/search/functions_72.js +++ b/docs/html/search/functions_72.js @@ -19,6 +19,7 @@ var searchData= ['resize',['resize',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseVolume.html#a8f82cbc9bffef6b720c446024ddf35f9',1,'pyrax::clouddatabases::CloudDatabaseVolume.resize()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a8f82cbc9bffef6b720c446024ddf35f9',1,'pyrax::clouddatabases::CloudDatabaseInstance.resize()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8f82cbc9bffef6b720c446024ddf35f9',1,'pyrax::clouddatabases::CloudDatabaseClient.resize()']]], ['resize_5fvolume',['resize_volume',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a184e71e943f21eaf224c511df2b58262',1,'pyrax::clouddatabases::CloudDatabaseInstance']]], ['restart',['restart',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseInstance.restart()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#ac035369f12e9417eb1a18896a6888f05',1,'pyrax::clouddatabases::CloudDatabaseClient.restart()']]], + ['restore_5fbackup',['restore_backup',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseManager.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseManager.restore_backup()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a5e6eb469a8e9a84757cddf7d4846dda4',1,'pyrax::clouddatabases::CloudDatabaseClient.restore_backup()']]], ['resume',['resume',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroup.resume()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::ScalingGroupManager.resume()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a4a0c86a5f484661cd399a28e4ac1c779',1,'pyrax::autoscale::AutoScaleClient.resume()']]], ['revoke_5fuser_5faccess',['revoke_user_access',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseUserManager.revoke_user_access()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseInstance.revoke_user_access()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseUser.revoke_user_access()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a37c095a57f86b13406baed47d9cc1dd2',1,'pyrax::clouddatabases::CloudDatabaseClient.revoke_user_access()']]], ['rfc2822_5fformat',['rfc2822_format',['../namespacepyrax_1_1utils.html#a6ea62353ce94e3d28ad8f6cae3e2ec5f',1,'pyrax::utils']]], diff --git a/docs/html/search/functions_75.js b/docs/html/search/functions_75.js index 3add706d..8d793c3f 100644 --- a/docs/html/search/functions_75.js +++ b/docs/html/search/functions_75.js @@ -2,7 +2,7 @@ var searchData= [ ['unauthenticate',['unauthenticate',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a143a677947f3597dc3cc3055a0eae66e',1,'pyrax::base_identity::BaseAuth.unauthenticate()'],['../classpyrax_1_1client_1_1BaseClient.html#a143a677947f3597dc3cc3055a0eae66e',1,'pyrax::client::BaseClient.unauthenticate()']]], ['unauthenticated',['unauthenticated',['../namespacepyrax_1_1utils.html#a662924ed2118b3ba66f1d1521a7c2b40',1,'pyrax::utils']]], - ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], + ['update',['update',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroup.update()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::ScalingGroupManager.update()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScalePolicy.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleWebhook.update()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::autoscale::AutoScaleClient.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUserManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUserManager.update()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddatabases::CloudDatabaseUser.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSRecord.update()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#abe52b977c101e59f342489ed18140819',1,'pyrax::clouddns::CloudDNSDomain.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::Node.update()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorCheck.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorNotification.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorNotification.update()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorAlarm.html#abe52b977c101e59f342489ed18140819',1,'pyrax::cloudmonitoring::CloudMonitorAlarm.update()'],['../classpyrax_1_1queueing_1_1QueueClaimManager.html#abe52b977c101e59f342489ed18140819',1,'pyrax::queueing::QueueClaimManager.update()']]], ['update_5falarm',['update_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntity.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a5890867a408848b989089ddf26d20a18',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_alarm()']]], ['update_5fcheck',['update_check',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.update_check()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#a31db8ea7ae986d187cad68055d066a20',1,'pyrax::cloudmonitoring::CloudMonitorClient.update_check()']]], ['update_5fclaim',['update_claim',['../classpyrax_1_1queueing_1_1Queue.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::Queue.update_claim()'],['../classpyrax_1_1queueing_1_1QueueClient.html#ac20bf3b335c30af755690d5d618b5d1e',1,'pyrax::queueing::QueueClient.update_claim()']]], @@ -20,7 +20,7 @@ var searchData= ['update_5frecord',['update_record',['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSDomain.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSManager.update_record()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a68301b71ce78f89e6a5d44f1cb9c362a',1,'pyrax::clouddns::CloudDNSClient.update_record()']]], ['update_5fssl_5ftermination',['update_ssl_termination',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.update_ssl_termination()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#aad4c90f91195d71b1d99ee598220cb14',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.update_ssl_termination()']]], ['update_5ftenant',['update_tenant',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a25f2b401ee3068816e774d648abd83de',1,'pyrax::base_identity::BaseAuth']]], - ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], + ['update_5fuser',['update_user',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::base_identity::BaseAuth.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseInstance.update_user()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::clouddatabases::CloudDatabaseClient.update_user()'],['../classpyrax_1_1identity_1_1rax__identity_1_1RaxIdentity.html#a1a7d86495f2e95ce37b02894a6fe85df',1,'pyrax::identity::rax_identity::RaxIdentity.update_user()']]], ['update_5fwebhook',['update_webhook',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroup.update_webhook()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::ScalingGroupManager.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScalePolicy.update_webhook()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a210ee9051a2ad35b497f979f2a3123cb',1,'pyrax::autoscale::AutoScaleClient.update_webhook()']]], ['update_5fwebhook_5fmetadata',['update_webhook_metadata',['../classpyrax_1_1autoscale_1_1ScalingGroup.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroup.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1ScalingGroupManager.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::ScalingGroupManager.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScalePolicy.update_webhook_metadata()'],['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a145c2a7a53b56e7450b1b4659cd6c616',1,'pyrax::autoscale::AutoScaleClient.update_webhook_metadata()']]], ['upload_5ffile',['upload_file',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::client::CFClient.upload_file()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#a3857f84faa9608b0bf0a4e84ba5b1566',1,'pyrax::cf_wrapper::container::Container.upload_file()']]], diff --git a/docs/html/search/variables_64.js b/docs/html/search/variables_64.js index 9c403f02..18ddbeb1 100644 --- a/docs/html/search/variables_64.js +++ b/docs/html/search/variables_64.js @@ -2,7 +2,6 @@ var searchData= [ ['data',['data',['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSRecord.data()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#a511ae0b1c13f95e5f08f1a0dd3da3d93',1,'pyrax::clouddns::CloudDNSPTRRecord.data()']]], ['date_5fformat',['DATE_FORMAT',['../namespacepyrax_1_1base__identity.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::base_identity.DATE_FORMAT()'],['../namespacepyrax_1_1cf__wrapper_1_1client.html#a71e8d76a94f92b1959b2ea603c78df9e',1,'pyrax::cf_wrapper::client.DATE_FORMAT()']]], - ['days_5f14',['DAYS_14',['../namespacepyrax_1_1queueing.html#af085154866e1b5a067335fc640e279bd',1,'pyrax::queueing']]], ['debug',['debug',['../namespacepyrax.html#a4c919e19877c5868fcd9f7662c236649',1,'pyrax']]], ['default_5fcdn_5fttl',['default_cdn_ttl',['../classpyrax_1_1cf__wrapper_1_1client_1_1CFClient.html#a15a3ad1a3abde8c5a3fede95c2b24c19',1,'pyrax::cf_wrapper::client::CFClient']]], ['default_5fdelay',['DEFAULT_DELAY',['../namespacepyrax_1_1clouddns.html#a0695d4ce7bb0b1de03ba3068cde8d89a',1,'pyrax::clouddns']]], diff --git a/docs/html/search/variables_67.js b/docs/html/search/variables_67.js index 50611ed2..e274530f 100644 --- a/docs/html/search/variables_67.js +++ b/docs/html/search/variables_67.js @@ -1,4 +1,4 @@ var searchData= [ - ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]] + ['get_5fdetails',['get_details',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseDatabase::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseUser::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseFlavor.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseFlavor::get_details()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseBackup.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::clouddatabases::CloudDatabaseBackup::get_details()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab6f7bc0828ee3d547e244dd336572d76',1,'pyrax::resource::BaseResource.get_details()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#a19c3271e3266881464ec6c4cd9366810',1,'pyrax::clouddns::CloudDNSRecord::GET_DETAILS()']]] ]; diff --git a/docs/html/search/variables_68.js b/docs/html/search/variables_68.js index e94c3045..07033fd3 100644 --- a/docs/html/search/variables_68.js +++ b/docs/html/search/variables_68.js @@ -1,6 +1,7 @@ var searchData= [ ['head_5fdate_5fformat',['HEAD_DATE_FORMAT',['../namespacepyrax_1_1cf__wrapper_1_1client.html#aea95a0010e586f71e6587a111cae730c',1,'pyrax::cf_wrapper::client']]], + ['host',['host',['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#a832ddc04754e8a43d4f3c6165b1294a7',1,'pyrax::clouddatabases::CloudDatabaseUser']]], ['href',['href',['../classpyrax_1_1queueing_1_1QueueMessage.html#aecfca4286e302d5d945be6fe76b99c86',1,'pyrax::queueing::QueueMessage.href()'],['../classpyrax_1_1queueing_1_1QueueClaim.html#ab8d8e60d0ff1588f6381ad0bef8ad4b7',1,'pyrax::queueing::QueueClaim.href()']]], ['http_5flog_5fdebug',['http_log_debug',['../classpyrax_1_1base__identity_1_1BaseAuth.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::base_identity::BaseAuth.http_log_debug()'],['../classpyrax_1_1cf__wrapper_1_1client_1_1Connection.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::cf_wrapper::client::Connection::http_log_debug()'],['../classpyrax_1_1client_1_1BaseClient.html#a80b9e3606456b3ebde43de9500b1fcbb',1,'pyrax::client::BaseClient.http_log_debug()']]], ['http_5fstatus',['http_status',['../classpyrax_1_1exceptions_1_1BadRequest.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::BadRequest::http_status()'],['../classpyrax_1_1exceptions_1_1Unauthorized.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::Unauthorized::http_status()'],['../classpyrax_1_1exceptions_1_1Forbidden.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::Forbidden::http_status()'],['../classpyrax_1_1exceptions_1_1NotFound.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::NotFound::http_status()'],['../classpyrax_1_1exceptions_1_1NoUniqueMatch.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::NoUniqueMatch::http_status()'],['../classpyrax_1_1exceptions_1_1OverLimit.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::OverLimit::http_status()'],['../classpyrax_1_1exceptions_1_1HTTPNotImplemented.html#adc16a229378030a650cd7e8d6dc16677',1,'pyrax::exceptions::HTTPNotImplemented::http_status()']]], diff --git a/docs/html/search/variables_6e.js b/docs/html/search/variables_6e.js index a8ff5269..6389d266 100644 --- a/docs/html/search/variables_6e.js +++ b/docs/html/search/variables_6e.js @@ -1,6 +1,6 @@ var searchData= [ - ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], + ['name',['name',['../classpyrax_1_1autoscale_1_1AutoScaleClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::autoscale::AutoScaleClient::name()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::container::Container.name()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cf_wrapper::storage_object::StorageObject.name()'],['../classpyrax_1_1client_1_1BaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::client::BaseClient.name()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudblockstorage::CloudBlockStorageClient::name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddatabases::CloudDatabaseUser.name()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddatabases::CloudDatabaseClient::name()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::clouddns::CloudDNSPTRRecord.name()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::clouddns::CloudDNSClient::name()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient::name()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudmonitoring::CloudMonitorClient::name()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::cloudnetworks::CloudNetworkClient::name()'],['../classpyrax_1_1queueing_1_1Queue.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::queueing::Queue::name()'],['../classpyrax_1_1queueing_1_1QueueClient.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'pyrax::queueing::QueueClient::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempfile.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempfile::name()'],['../classpyrax_1_1utils_1_1SelfDeletingTempDirectory.html#ab74e6bf80237ddc4109968cedc58c151',1,'pyrax::utils::SelfDeletingTempDirectory::name()'],['../namespacesetup.html#a8ccf841cb59e451791bcb2e1ac4f1edc',1,'setup.name()']]], ['name_5fattr',['NAME_ATTR',['../classpyrax_1_1resource_1_1BaseResource.html#a74fac10a98253f8b0308159a33113ab9',1,'pyrax::resource::BaseResource']]], ['next_5furi',['next_uri',['../classpyrax_1_1clouddns_1_1ResultsIterator.html#a52d2d557c979c7d47d2f6733f9bb30c7',1,'pyrax::clouddns::ResultsIterator']]], ['no_5fsuch_5fcontainer_5fpattern',['no_such_container_pattern',['../namespacepyrax_1_1cf__wrapper_1_1client.html#ab3150aa95b9e341f9b4c3f11214a9097',1,'pyrax::cf_wrapper::client']]], diff --git a/docs/html/version_8py.html b/docs/html/version_8py.html index f5f2c6ca..6e174ea3 100644 --- a/docs/html/version_8py.html +++ b/docs/html/version_8py.html @@ -88,7 +88,7 @@ namespace  pyrax::version

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              -string version = "1.6.0" +string version = "1.6.1"
                                                                                                                                                                                                                                                                                                              @@ -108,7 +108,7 @@ diff --git a/docs/queues.md b/docs/queues.md index c0209e2f..72b1689a 100644 --- a/docs/queues.md +++ b/docs/queues.md @@ -56,11 +56,11 @@ Messages can be any type of data, as long as they do not exceed 256 KB in length You need to specify the queue you wish to post to. This can be either the name of the queue, or a `Queue` object. If you already have a `Queue` object reference, you can call its `post_message()` method directly. The call is: - msg = pq.post_message(queue, body[, ttl]) + msg = pq.post_message(queue, body, ttl) # or - msg = queue.post_message(body[, ttl]) + msg = queue.post_message(body, ttl) -Note that there is an optional `ttl` parameter, for specifying the **TTL**, or **Time To Live** for the message. If specified, the value of ttl must be between 60 and 1209600 seconds (14 days). If not specified, a default of 14 days is used. +You must supply both a body and a value for `ttl`. The value of `ttl` must be between 60 and 1209600 seconds (one minute to 14 days). ## Listing Messages in a Queue diff --git a/pyrax/cf_wrapper/client.py b/pyrax/cf_wrapper/client.py index b77ac46f..7f83a37b 100644 --- a/pyrax/cf_wrapper/client.py +++ b/pyrax/cf_wrapper/client.py @@ -769,7 +769,7 @@ def upload(fileobj, content_type, etag, headers): # async design. for segment in xrange(num_segments): sequence = str(segment + 1).zfill(digits) - seg_name = "%s.%s" % (fname, sequence) + seg_name = "%s.%s" % (obj_name, sequence) with utils.SelfDeletingTempfile() as tmpname: with open(tmpname, "wb") as tmp: tmp.write(fileobj.read(self.max_file_size)) @@ -781,8 +781,8 @@ def upload(fileobj, content_type, etag, headers): etag=etag, headers=headers, response_dict=extra_info) # Upload the manifest - headers["X-Object-Meta-Manifest"] = "%s." % fname - return self.connection.put_object(cont.name, fname, + headers["X-Object-Meta-Manifest"] = "%s." % obj_name + return self.connection.put_object(cont.name, obj_name, contents=None, headers=headers, response_dict=extra_info) @@ -795,7 +795,7 @@ def upload(fileobj, content_type, etag, headers): fname = os.path.basename(file_or_path) else: try: - fname = file_or_path.name + fname = os.path.basename(file_or_path.name) except AttributeError: fname = None if not obj_name: diff --git a/pyrax/clouddatabases.py b/pyrax/clouddatabases.py index efe25aa9..4533f832 100644 --- a/pyrax/clouddatabases.py +++ b/pyrax/clouddatabases.py @@ -47,12 +47,19 @@ def __init__(self, instance, info): for key, val in info.items(): setattr(self, key, val) + def resize(self, size): + """ + Resize the volume to the specified size (in GB). + """ self.instance.resize_volume(size) self.size = size + def get(self, att): - # For backwards compatibility + """ + For compatibility with regular resource objects. + """ return getattr(self, att) @@ -96,6 +103,62 @@ def _create_body(self, name, flavor=None, volume=None, databases=None, return body + def create_backup(self, instance, name, description=None): + """ + Creates a backup of the specified instance, giving it the specified + name along with an optional description. + """ + body = {"backup": { + "instance": utils.get_id(instance), + "name": name, + }} + if description is not None: + body["backup"]["description"] = description + uri = "/backups" + resp, resp_body = self.api.method_post(uri, body=body) + mgr = self.api._backup_manager + return CloudDatabaseBackup(mgr, body.get("backup")) + + + def restore_backup(self, backup, name, flavor, volume): + """ + Restores a backup to a new database instance. You must supply a backup + (either the ID or a CloudDatabaseBackup object), a name for the new + instance, as well as a flavor and volume size (in GB) for the instance. + """ + flavor_ref = self.api._get_flavor_ref(flavor) + body = {"instance": { + "name": name, + "flavorRef": flavor_ref, + "volume": {"size": volume}, + "restorePoint": {"backupRef": utils.get_id(backup)}, + }} + uri = "/%s" % self.uri_base + resp, resp_body = self.api.method_post(uri, body=body) + return CloudDatabaseInstance(self, resp_body.get("instance", {})) + + + def list_backups(self, instance=None): + """ + Returns a list of all backups by default, or just for a particular + instance. + """ + return self.api._backup_manager.list(instance=instance) + + + def _list_backups_for_instance(self, instance): + """ + Instance-specific backups are handled through the instance manager, + not the backup manager. + """ + uri = "/%s/%s/backups" % (self.uri_base, utils.get_id(instance)) + resp, resp_body = self.api.method_get(uri) + mgr = self.api._backup_manager + return [CloudDatabaseBackup(mgr, backup) + for backup in resp_body.get("backups")] + + + class CloudDatabaseDatabaseManager(BaseManager): """ This class manages communication with databases on Cloud Database instances. @@ -115,12 +178,14 @@ class CloudDatabaseUserManager(BaseManager): This class handles operations on the users in a database on a Cloud Database instance. """ - def _create_body(self, name, password, databases=None, database_names=None): + def _create_body(self, name, password, databases=None, database_names=None, + host=None): db_dicts = [{"name": db} for db in database_names] body = {"users": [ {"name": name, "password": password, "databases": db_dicts, + "host": host, }]} return body @@ -152,13 +217,34 @@ def change_user_password(self, user, new_pass): Returns None upon success; raises PasswordChangeFailed if the call does not complete successfully. """ - user = utils.get_name(user) - body = {"users": [{"name": user, "password": new_pass}]} - uri = "/%s" % self.uri_base + return self.update(user, password=new_pass) + + + def update(self, user, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + if not any((name, password, host)): + raise exc.MissingDBUserParameters("You must supply at least one of " + "the following: new username, new password, or new host " + "specification.") + if not isinstance(user, CloudDatabaseUser): + # Must be the ID/name + user = self.get(user) + dct = {} + if name and (name != user.name): + dct["name"] = name + if host and (host != user.host): + dct["host"] = host + if password: + dct["password"] = password + if not dct: + raise exc.DBUpdateUnchanged("You must supply at least one changed " + "value when updating a user.") + uri = "/%s/%s" % (self.uri_base, user.name) + body = {"user": dct} resp, resp_body = self.api.method_put(uri, body=body) - if resp.status > 299: - raise exc.PasswordChangeFailed("Password for '%s' was not changed" - % user) return None @@ -212,6 +298,31 @@ def revoke_user_access(self, user, db_names, strict=True): +class CloudDatabaseBackupManager(BaseManager): + """ + This class handles operations on backups for a Cloud Database instance. + """ + def _create_body(self, name, instance, description=None): + body = {"backup": { + "instance": utils.get_id(instance), + "name": name, + }} + if description is not None: + body["backup"]["description"] = description + return body + + + def list(self, instance=None): + """ + Return a list of all backups by default, or just for a particular + instance. + """ + if instance is None: + return super(CloudDatabaseBackupManager, self).list() + return self.api._manager._list_backups_for_instance(instance) + + + class CloudDatabaseInstance(BaseResource): """ This class represents a MySQL instance in the cloud. @@ -335,6 +446,15 @@ def change_user_password(self, user, new_pass): return self._user_manager.change_user_password(user, new_pass) + def update_user(self, user, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + return self._user_manager.update(user, name=name, password=password, + host=host) + + def list_user_access(self, user): """ Returns a list of all database names for which the specified user @@ -412,6 +532,21 @@ def resize_volume(self, size): self.manager.action(self, "resize", body=body) + def list_backups(self): + """ + Returns a list of all backups for this instance. + """ + return self.manager._list_backups_for_instance(self) + + + def create_backup(self, name, description=None): + """ + Creates a backup of this instance, giving it the specified name along + with an optional description. + """ + return self.manager.create_backup(self, name, description=description) + + def _get_flavor(self): try: ret = self._flavor @@ -451,6 +586,8 @@ class CloudDatabaseUser(BaseResource): for instances. """ get_details = False + name = None + host = None def delete(self): """This class doesn't have an 'id', so pass the name.""" @@ -467,6 +604,15 @@ def change_password(self, new_pass): self.manager.change_user_password(self, new_pass) + def update(self, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + return self.manager.update(self, name=name, password=password, + host=host) + + def list_user_access(self): """ Returns a list of all database names for which the specified user @@ -501,6 +647,15 @@ class CloudDatabaseFlavor(BaseResource): +class CloudDatabaseBackup(BaseResource): + """ + This class represents a database backup. + """ + get_details = True + _non_display = ["locationRef"] + + + class CloudDatabaseClient(BaseClient): """ This is the primary class for interacting with Cloud Databases. @@ -518,6 +673,9 @@ def _configure_manager(self): self._flavor_manager = BaseManager(self, resource_class=CloudDatabaseFlavor, response_key="flavor", uri_base="flavors") + self._backup_manager = CloudDatabaseBackupManager(self, + resource_class=CloudDatabaseBackup, response_key="backup", + uri_base="backups") @assure_instance @@ -594,6 +752,16 @@ def change_user_password(self, instance, user, new_pass): return instance.change_user_password(user, new_pass) + @assure_instance + def update_user(self, instance, user, name=None, password=None, host=None): + """ + Allows you to change one or more of the user's username, password, or + host. + """ + return instance.update_user(user, name=name, password=password, + host=host) + + @assure_instance def list_user_access(self, instance, user): """ @@ -699,3 +867,43 @@ def _get_flavor_ref(self, flavor): href = [link["href"] for link in flavor_obj.links if link["rel"] == "self"][0] return href + + + def list_backups(self, instance=None): + """ + Returns a list of all backups by default, or just for a particular + instance. + """ + return self._backup_manager.list(instance=instance) + + + def get_backup(self, backup): + """ + Returns the CloudDatabaseBackup instance for a given ID. + """ + return self._backup_manager.get(backup) + + + def delete_backup(self, backup): + """ + Deletes the CloudDatabaseBackup instance for a given ID. + """ + return self._backup_manager.delete(backup) + + + @assure_instance + def create_backup(self, instance, name, description=None): + """ + Creates a backup of the specified instance, giving it the specified + name along with an optional description. + """ + return instance.create_backup(name, description=description) + + + def restore_backup(self, backup, name, flavor, volume): + """ + Restores a backup to a new database instance. You must supply a backup + (either the ID or a CloudDatabaseBackup object), a name for the new + instance, as well as a flavor and size (in GB) for the instance. + """ + return self._manager.restore_backup(backup, name, flavor, volume) diff --git a/pyrax/exceptions.py b/pyrax/exceptions.py index 13235f90..a739548b 100644 --- a/pyrax/exceptions.py +++ b/pyrax/exceptions.py @@ -41,6 +41,9 @@ class AuthSystemNotFound(PyraxException): class CDNFailed(PyraxException): pass +class DBUpdateUnchanged(PyraxException): + pass + class DNSCallTimedOut(PyraxException): pass @@ -182,6 +185,9 @@ class MissingAuthSettings(PyraxException): class MissingClaimParameters(PyraxException): pass +class MissingDBUserParameters(PyraxException): + pass + class MissingDNSSettings(PyraxException): pass @@ -324,7 +330,7 @@ class ClientException(PyraxException): """ def __init__(self, code, message=None, details=None, request_id=None): self.code = code - self.message = message or self.__class__.message + self.message = message or "-no error message returned-" self.details = details self.request_id = request_id @@ -332,9 +338,9 @@ def __str__(self): formatted_string = "%s (HTTP %s)" % (self.message, self.code) if self.request_id: formatted_string += " (Request-ID: %s)" % self.request_id - return formatted_string + class BadRequest(ClientException): """ HTTP 400 - Bad request: you sent some malformed data. diff --git a/pyrax/queueing.py b/pyrax/queueing.py index d5c87f30..b8d49aed 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -30,8 +30,6 @@ from pyrax.resource import BaseResource import pyrax.utils as utils -# The default for TTL for messages is 14 days, in seconds. -DAYS_14 = 1209600 # The hard-coded maximum number of messages returned in a single call. MSG_LIMIT = 10 # Pattern for extracting the marker value from an href link. @@ -281,14 +279,13 @@ class QueueMessageManager(BaseQueueManager): """ Manager class for a Queue Message. """ - def _create_body(self, msg, ttl=None): + def _create_body(self, msg, ttl): """ Used to create the dict required to create a new message. """ - if ttl is None: - ttl = DAYS_14 - body = [{"ttl": ttl, + body = [{ "body": msg, + "ttl": ttl, }] return body diff --git a/pyrax/utils.py b/pyrax/utils.py index e81e6d40..2307f846 100644 --- a/pyrax/utils.py +++ b/pyrax/utils.py @@ -329,21 +329,16 @@ def _wait_until(obj, att, desired, callback, interval, attempts, verbose, start = time.time() while infinite or (attempt < attempts): try: - obj.reload() + # For servers: + obj.get() except AttributeError: - # This will happen with cloudservers and cloudfiles, which - # use different client/resource classes. try: - # For servers: - obj.get() + # For other objects that don't support .get() + obj = obj.manager.get(obj.id) except AttributeError: - try: - # For other objects that don't support .get() or .reload() - obj = obj.manager.get(obj.id) - except AttributeError: - # punt - raise exc.NoReloadError("The 'wait_until' method is not " - "supported for '%s' objects." % obj.__class__) + # punt + raise exc.NoReloadError("The 'wait_until' method is not " + "supported for '%s' objects." % obj.__class__) attval = getattr(obj, att) if verbose: elapsed = time.time() - start @@ -370,7 +365,7 @@ def wait_for_build(obj, att=None, desired=None, callback=None, interval=None, to avoid excess polling. """ att = att or "status" - desired = desired or ["ACTIVE", "ERROR", "available"] + desired = desired or ["ACTIVE", "ERROR", "available", "COMPLETED"] interval = interval or 20 attempts = attempts or 0 verbose_atts = verbose_atts or "progress" diff --git a/pyrax/version.py b/pyrax/version.py index 3b166917..5fde3200 100644 --- a/pyrax/version.py +++ b/pyrax/version.py @@ -1,4 +1,4 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -version = "1.6.0" +version = "1.6.1" diff --git a/tests/unit/fakes.py b/tests/unit/fakes.py index df4a3abb..caa72682 100644 --- a/tests/unit/fakes.py +++ b/tests/unit/fakes.py @@ -258,6 +258,9 @@ def __init__(self, *args, **kwargs): def get(self, *args, **kwargs): pass + def list(self, *args, **kwargs): + pass + class FakeDatabaseUser(CloudDatabaseUser): pass @@ -273,7 +276,7 @@ def __init__(self, instance, *args, **kwargs): class FakeDatabaseInstance(CloudDatabaseInstance): def __init__(self, *args, **kwargs): self.id = utils.random_unicode() - self.manager = FakeManager() + self.manager = FakeDatabaseManager() self.manager.api = FakeDatabaseClient() self._database_manager = CloudDatabaseDatabaseManager( FakeDatabaseClient()) @@ -281,11 +284,12 @@ def __init__(self, *args, **kwargs): self.volume = FakeDatabaseVolume(self) -class FakeDatabaseManager(CloudDNSManager): +class FakeDatabaseManager(CloudDatabaseManager): def __init__(self, api=None, *args, **kwargs): if api is None: api = FakeDatabaseClient() super(FakeDatabaseManager, self).__init__(api, *args, **kwargs) + self.uri_base = "instances" class FakeDatabaseClient(CloudDatabaseClient): diff --git a/tests/unit/test_cf_client.py b/tests/unit/test_cf_client.py index 9ed02246..1f53ea96 100644 --- a/tests/unit/test_cf_client.py +++ b/tests/unit/test_cf_client.py @@ -7,7 +7,7 @@ import unittest import uuid -from mock import ANY, patch +from mock import ANY, call, patch from mock import MagicMock as Mock import pyrax @@ -541,8 +541,21 @@ def test_upload_file(self): client.get_object = gobj - @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) def test_upload_large_file(self): + def call_upload_file(client, cont, tmpname, content_type_type): + client.upload_file(cont, tmpname, content_type=content_type_type) + + self._test_upload_large_file(call_upload_file) + + def test_upload_large_file_from_file_object(self): + def call_upload_file(client, cont, tmpname, content_type_type): + with open(tmpname, "rb") as tmp: + client.upload_file(cont, tmp, content_type=content_type_type) + + self._test_upload_large_file(call_upload_file) + + @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) + def _test_upload_large_file(self, call_upload_file): client = self.client client.connection.head_container = Mock() client.connection.put_object = Mock() @@ -556,10 +569,52 @@ def test_upload_large_file(self): tmp.write(small_file_contents) fname = os.path.basename(tmpname) fake_type = "test/test" - client.upload_file(cont, tmpname, content_type=fake_type) + call_upload_file(client, cont, tmpname, fake_type) + # Large files require 1 call for manifest, plus one for each + # segment. This should be a 2-segment file upload. + self.assertEqual(client.connection.put_object.call_count, 3) + put_calls = client.connection.put_object.mock_calls + self.assertEqual(put_calls[0][1][1], '%s.1' % fname) + self.assertEqual(put_calls[1][1][1], '%s.2' % fname) + self.assertEqual(put_calls[2][1][1], fname) + + # get_object() should be called with the same name that was passed + # to the final put_object() call (to get the object to return) + client.get_object.assert_called_once_with(cont, fname) + client.get_object = gobj + + @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) + def test_upload_large_file_from_file_object_with_obj_name(self): + client = self.client + client.connection.head_container = Mock() + client.connection.put_object = Mock() + cont = client.get_container(self.cont_name) + gobj = client.get_object + client.get_object = Mock(return_value=self.fake_object) + with utils.SelfDeletingTempfile() as tmpname: + small_file_contents = "Test Value " * 25 + client.max_file_size = len(small_file_contents) - 1 + with open(tmpname, "wb") as tmp: + tmp.write(small_file_contents) + fname = os.path.basename(tmpname) + fake_type = "test/test" + obj_name = 'not the same as filename' + with open(tmpname, "rb") as tmp: + client.upload_file(cont, tmp, + obj_name=obj_name, content_type=fake_type) # Large files require 1 call for manifest, plus one for each # segment. This should be a 2-segment file upload. self.assertEqual(client.connection.put_object.call_count, 3) + put_calls = client.connection.put_object.mock_calls + self.assertEqual(put_calls[0][1][1], '%s.1' % obj_name) + self.assertEqual(put_calls[1][1][1], '%s.2' % obj_name) + self.assertEqual(put_calls[2][1][1], obj_name) + self.assertEqual(put_calls[2][2]["headers"]["X-Object-Meta-Manifest"], + obj_name + ".") + + # get_object() should be called with the same name that was passed + # to the final put_object() call (to get the object to return) + client.get_object.assert_called_once_with(cont, obj_name) client.get_object = gobj @patch('pyrax.cf_wrapper.client.Container', new=FakeContainer) diff --git a/tests/unit/test_cloud_databases.py b/tests/unit/test_cloud_databases.py index 2f945b6e..d805be48 100644 --- a/tests/unit/test_cloud_databases.py +++ b/tests/unit/test_cloud_databases.py @@ -6,14 +6,15 @@ from mock import patch from mock import MagicMock as Mock -from pyrax.clouddatabases import CloudDatabaseClient +from pyrax.clouddatabases import CloudDatabaseBackupManager from pyrax.clouddatabases import CloudDatabaseDatabase from pyrax.clouddatabases import CloudDatabaseFlavor from pyrax.clouddatabases import CloudDatabaseInstance from pyrax.clouddatabases import CloudDatabaseUser +from pyrax.clouddatabases import CloudDatabaseVolume from pyrax.clouddatabases import assure_instance -from pyrax.clouddatabases import CloudDatabaseUserManager import pyrax.exceptions as exc +from pyrax.resource import BaseResource import pyrax.utils as utils import fakes @@ -99,6 +100,63 @@ def test_get_database_bad(self): self.assertRaises(exc.NoSuchDatabase, inst.get_database, "z") inst.list_databases = sav + def test_dbmgr_get(self): + mgr = fakes.FakeDatabaseManager() + rsrc = fakes.FakeDatabaseInstance() + rsrc.volume = {} + mgr._get = Mock(return_value=rsrc) + ret = mgr.get("fake") + self.assertTrue(isinstance(ret, CloudDatabaseInstance)) + self.assertTrue(isinstance(ret.volume, CloudDatabaseVolume)) + + def test_dbmgr_create_backup(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + description = utils.random_unicode() + mgr.api.method_post = Mock(return_value=(None, {"backup": {}})) + expected_uri = "/backups" + expected_body = {"backup": {"instance": inst.id, "name": name, + "description": description}} + mgr.create_backup(inst, name, description=description) + mgr.api.method_post.assert_called_once_with(expected_uri, + body=expected_body) + + @patch('pyrax.clouddatabases.CloudDatabaseInstance', + new=fakes.FakeDatabaseInstance) + def test_mgr_restore_backup(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + flavor = utils.random_unicode() + fref = utils.random_unicode() + volume = utils.random_unicode() + backup = utils.random_unicode() + mgr.api.method_post = Mock(return_value=(None, {"instance": {}})) + mgr.api._get_flavor_ref = Mock(return_value=fref) + expected_uri = "/%s" % mgr.uri_base + expected_body = {"instance": {"name": name, "flavorRef": fref, + "volume": {"size": volume}, "restorePoint": + {"backupRef": backup}}} + mgr.restore_backup(backup, name, flavor, volume) + mgr.api.method_post.assert_called_once_with(expected_uri, + body=expected_body) + + def test_mgr_list_backups(self): + inst = self.instance + mgr = inst.manager + mgr.api._backup_manager.list = Mock(return_value=(None, None)) + mgr.list_backups(inst) + mgr.api._backup_manager.list.assert_called_once_with(instance=inst) + + def test_mgr_list_backups_for_instance(self): + inst = self.instance + mgr = inst.manager + mgr.api.method_get = Mock(return_value=(None, {"backups": []})) + expected_uri = "/%s/%s/backups" % (mgr.uri_base, inst.id) + mgr._list_backups_for_instance(inst) + mgr.api.method_get.assert_called_once_with(expected_uri) + def test_create_database(self): inst = self.instance sav = inst._database_manager.create @@ -138,6 +196,24 @@ def test_delete_user(self): inst._user_manager.delete.assert_called_once_with("username") inst._user_manager.delete = sav + def test_delete_database_direct(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + db = CloudDatabaseDatabase(mgr, info={"name": name}) + mgr.delete = Mock() + db.delete() + mgr.delete.assert_called_once_with(name) + + def test_delete_user_direct(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + user = CloudDatabaseUser(mgr, info={"name": name}) + mgr.delete = Mock() + user.delete() + mgr.delete.assert_called_once_with(name) + def test_enable_root_user(self): inst = self.instance pw = utils.random_unicode() @@ -208,6 +284,23 @@ def test_volume_get_fail(self): vol = inst.volume self.assertRaises(AttributeError, vol.get, "fake") + def test_inst_list_backups(self): + inst = self.instance + mgr = inst.manager + mgr._list_backups_for_instance = Mock() + inst.list_backups() + mgr._list_backups_for_instance.assert_called_once_with(inst) + + def test_inst_create_backup(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + description = utils.random_unicode() + mgr.create_backup = Mock() + inst.create_backup(name, description=description) + mgr.create_backup.assert_called_once_with(inst, name, + description=description) + def test_get_flavor_property(self): inst = self.instance inst._loaded = True @@ -350,7 +443,7 @@ def test_get_user(self): def test_get_user_fail(self): inst = self.instance bad_name = utils.random_unicode() - inst._user_manager.get = Mock(side_effect=exc.NoSuchDatabaseUser()) + inst._user_manager.get = Mock(side_effect=exc.NotFound("")) self.assertRaises(exc.NoSuchDatabaseUser, inst.get_user, bad_name) def test_get_db_names(self): @@ -390,14 +483,59 @@ def test_get_db_names_fail(self): def test_change_user_password(self): inst = self.instance - fakeuser = utils.random_unicode() - newpass = utils.random_unicode() + fakename = utils.random_ascii() + newpass = utils.random_ascii() resp = fakes.FakeResponse() resp.status = 202 inst._user_manager.api.method_put = Mock(return_value=(resp, {})) - inst.change_user_password(fakeuser, newpass) - inst._user_manager.api.method_put.assert_called_once_with("/None", - body={"users": [{"password": newpass, "name": fakeuser}]}) + fakeuser = fakes.FakeDatabaseUser(inst._user_manager, {"name": fakename}) + inst._user_manager.get = Mock(return_value=fakeuser) + inst.change_user_password(fakename, newpass) + inst._user_manager.api.method_put.assert_called_once_with( + "/None/%s" % fakename, body={"user": {"password": newpass}}) + + def test_update_user(self): + inst = self.instance + mgr = inst._user_manager + user = utils.random_unicode() + name = utils.random_unicode() + password = utils.random_unicode() + host = utils.random_unicode() + mgr.update = Mock() + inst.update_user(user, name=name, password=password, host=host) + mgr.update.assert_called_once_with(user, name=name, password=password, + host=host) + + def test_user_manager_update(self): + inst = self.instance + mgr = inst._user_manager + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + name = utils.random_unicode() + host = utils.random_unicode() + password = utils.random_unicode() + mgr.api.method_put = Mock(return_value=(None, None)) + expected_uri = "/%s/%s" % (mgr.uri_base, username) + expected_body = {"user": {"name": name, "host": host, + "password": password}} + mgr.update(user, name=name, host=host, password=password) + mgr.api.method_put.assert_called_once_with(expected_uri, + body=expected_body) + + def test_user_manager_update_missing(self): + inst = self.instance + mgr = inst._user_manager + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + self.assertRaises(exc.MissingDBUserParameters, mgr.update, user) + + def test_user_manager_update_unchanged(self): + inst = self.instance + mgr = inst._user_manager + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + self.assertRaises(exc.DBUpdateUnchanged, mgr.update, user, + name=username) def test_list_user_access(self): inst = self.instance @@ -409,6 +547,14 @@ def test_list_user_access(self): self.assertEqual(len(db_list), 2) self.assertTrue(db_list[0].name in (dbname1, dbname2)) + def test_list_user_access_not_found(self): + inst = self.instance + mgr = inst._user_manager + mgr.api.method_get = Mock(side_effect=exc.NotFound("")) + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + self.assertRaises(exc.NoSuchDatabaseUser, mgr.list_user_access, user) + def test_grant_user_access(self): inst = self.instance fakeuser = utils.random_ascii() @@ -419,6 +565,17 @@ def test_grant_user_access(self): "/None/%s/databases" % fakeuser, body={"databases": [{"name": dbname1}]}) + def test_grant_user_access_not_found(self): + inst = self.instance + mgr = inst._user_manager + mgr.api.method_put = Mock(side_effect=exc.NotFound("")) + username = utils.random_unicode() + user = fakes.FakeDatabaseUser(mgr, info={"name": username}) + db_names = utils.random_unicode() + mgr._get_db_names = Mock(return_value=[]) + self.assertRaises(exc.NoSuchDatabaseUser, mgr.grant_user_access, user, + db_names) + def test_revoke_user_access(self): inst = self.instance fakeuser = utils.random_ascii() @@ -428,6 +585,35 @@ def test_revoke_user_access(self): inst._user_manager.api.method_delete.assert_called_once_with( "/None/%s/databases/%s" % (fakeuser, dbname1)) + def test_backup_mgr_create_body(self): + inst = self.instance + mgr = inst.manager + bu_mgr = mgr.api._backup_manager + name = utils.random_unicode() + description = utils.random_unicode() + expected_body = {"backup": {"instance": inst.id, "name": name, + "description": description}} + ret = bu_mgr._create_body(name, inst, description=description) + self.assertEqual(ret, expected_body) + + def test_backup_mgr_list(self): + inst = self.instance + mgr = inst.manager + bu_mgr = mgr.api._backup_manager + fake_val = utils.random_unicode() + bu_mgr._list = Mock(return_value=fake_val) + ret = bu_mgr.list() + self.assertEqual(ret, fake_val) + + def test_backup_mgr_list_instance(self): + inst = self.instance + mgr = inst.manager + bu_mgr = mgr.api._backup_manager + db_mgr = mgr.api._manager + db_mgr._list_backups_for_instance = Mock() + bu_mgr.list(instance=inst) + db_mgr._list_backups_for_instance.assert_called_once_with(inst) + def test_clt_change_user_password(self): clt = self.client inst = self.instance @@ -437,6 +623,39 @@ def test_clt_change_user_password(self): clt.change_user_password(inst, user, pw) inst.change_user_password.assert_called_once_with(user, pw) + def test_user_change_password(self): + inst = self.instance + mgr = inst.manager + password = utils.random_unicode() + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + mgr.change_user_password = Mock() + user.change_password(password) + mgr.change_user_password.assert_called_once_with(user, password) + + def test_clt_update_user(self): + clt = self.client + inst = self.instance + inst.update_user = Mock() + user = utils.random_unicode() + name = utils.random_unicode() + password = utils.random_unicode() + host = utils.random_unicode() + clt.update_user(inst, user, name=name, password=password, host=host) + inst.update_user.assert_called_once_with(user, name=name, + password=password, host=host) + + def test_user_update(self): + inst = self.instance + mgr = inst.manager + name = utils.random_unicode() + password = utils.random_unicode() + host = utils.random_unicode() + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + mgr.update = Mock() + user.update(name=name, password=password, host=host) + mgr.update.assert_called_once_with(user, name=name, password=password, + host=host) + def test_clt_list_user_access(self): clt = self.client inst = self.instance @@ -445,6 +664,14 @@ def test_clt_list_user_access(self): clt.list_user_access(inst, user) inst.list_user_access.assert_called_once_with(user) + def test_user_list_user_access(self): + inst = self.instance + mgr = inst.manager + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + mgr.list_user_access = Mock() + user.list_user_access() + mgr.list_user_access.assert_called_once_with(user) + def test_clt_grant_user_access(self): clt = self.client inst = self.instance @@ -455,6 +682,17 @@ def test_clt_grant_user_access(self): inst.grant_user_access.assert_called_once_with(user, db_names, strict=True) + def test_user_grant_user_access(self): + inst = self.instance + mgr = inst.manager + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + db_names = utils.random_unicode() + strict = utils.random_unicode() + mgr.grant_user_access = Mock() + user.grant_user_access(db_names, strict=strict) + mgr.grant_user_access.assert_called_once_with(user, db_names, + strict=strict) + def test_clt_revoke_user_access(self): clt = self.client inst = self.instance @@ -465,6 +703,17 @@ def test_clt_revoke_user_access(self): inst.revoke_user_access.assert_called_once_with(user, db_names, strict=True) + def test_user_revoke_user_access(self): + inst = self.instance + mgr = inst.manager + user = CloudDatabaseUser(mgr, info={"name": "fake"}) + db_names = utils.random_unicode() + strict = utils.random_unicode() + mgr.revoke_user_access = Mock() + user.revoke_user_access(db_names, strict=strict) + mgr.revoke_user_access.assert_called_once_with(user, db_names, + strict=strict) + def test_clt_restart(self): clt = self.client inst = self.instance @@ -474,7 +723,7 @@ def test_clt_restart(self): @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) - def test_resize_for_instance(self): + def test_inst_resize(self): clt = self.client inst = self.instance sav = inst.resize @@ -552,7 +801,7 @@ def test_get_flavor_ref_for_name(self): clt.list_flavors = sav_list @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) - def test_get_flavor_ref_for_name(self): + def test_get_flavor_ref_for_ram(self): clt = self.client info = {"id": 1, "name": "test_flavor", @@ -588,6 +837,58 @@ def test_get_flavor_ref_not_found(self): clt.get_flavor = sav_get clt.list_flavors = sav_list + def test_clt_list_backups(self): + clt = self.client + mgr = clt._backup_manager + mgr.list = Mock() + clt.list_backups() + mgr.list.assert_called_once_with(instance=None) + + def test_clt_list_backups_for_instance(self): + clt = self.client + mgr = clt._backup_manager + mgr.list = Mock() + inst = utils.random_unicode() + clt.list_backups(instance=inst) + mgr.list.assert_called_once_with(instance=inst) + + def test_clt_get_backup(self): + clt = self.client + mgr = clt._backup_manager + mgr.get = Mock() + backup = utils.random_unicode() + clt.get_backup(backup) + mgr.get.assert_called_once_with(backup) + + def test_clt_delete_backup(self): + clt = self.client + mgr = clt._backup_manager + mgr.delete = Mock() + backup = utils.random_unicode() + clt.delete_backup(backup) + mgr.delete.assert_called_once_with(backup) + + def test_clt_create_backup(self): + clt = self.client + inst = self.instance + name = utils.random_unicode() + description = utils.random_unicode() + inst.create_backup = Mock() + clt.create_backup(inst, name, description=description) + inst.create_backup.assert_called_once_with(name, + description=description) + + def test_clt_restore_backup(self): + clt = self.client + mgr = clt._manager + backup = utils.random_unicode() + name = utils.random_unicode() + flavor = utils.random_unicode() + volume = utils.random_unicode() + mgr.restore_backup = Mock() + clt.restore_backup(backup, name, flavor, volume) + mgr.restore_backup.assert_called_once_with(backup, name, flavor, volume) + @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_create_body_db(self): mgr = self.instance._database_manager @@ -604,12 +905,16 @@ def test_create_body_user(self): inst = self.instance mgr = inst._user_manager nm = utils.random_unicode() + host = utils.random_unicode() pw = utils.random_unicode() - ret = mgr._create_body(nm, password=pw, database_names=[]) + dbnames = [utils.random_unicode(), utils.random_unicode()] + ret = mgr._create_body(nm, host=host, password=pw, + database_names=dbnames) expected = {"users": [ {"name": nm, "password": pw, - "databases": []}]} + "host": host, + "databases": [{"name": dbnames[0]}, {"name": dbnames[1]}]}]} self.assertEqual(ret, expected) @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index 4eefed03..c75f9a25 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -282,13 +282,14 @@ def test_queue_msg_mgr_create_body(self): q = self.queue mgr = q._message_manager msg = utils.random_unicode() - ret = mgr._create_body(msg) + ttl = utils.random_unicode() + ret = mgr._create_body(msg, ttl) self.assertTrue(isinstance(ret, list)) self.assertEqual(len(ret), 1) dct = ret[0] self.assertTrue(isinstance(dct, dict)) self.assertEqual(dct["body"], msg) - self.assertEqual(dct["ttl"], pyrax.queueing.DAYS_14) + self.assertEqual(dct["ttl"], ttl) def test_queue_msg_mgr_list(self): q = self.queue diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index fc2ca8a0..6f72209f 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -310,6 +310,22 @@ def utcoffset(self, dt): self.assertEqual(utils.iso_time_string(dt, show_tzinfo=False), "1999-12-31T23:59:59") + def test_rfc2822_format(self): + now = datetime.datetime.now() + now_year = str(now.year) + fmtd = utils.rfc2822_format(now) + self.assertTrue(now_year in fmtd) + + def test_rfc2822_format_str(self): + now = str(datetime.datetime.now()) + fmtd = utils.rfc2822_format(now) + self.assertEqual(fmtd, now) + + def test_rfc2822_format_fail(self): + now = {} + fmtd = utils.rfc2822_format(now) + self.assertEqual(fmtd, now) + def test_match_pattern(self): ignore_pat = "*.bad" self.assertTrue(utils.match_pattern("some.bad", ignore_pat)) @@ -338,6 +354,21 @@ class ObjWithName(object): self.assertEqual(utils.get_name(obj.name), nm) self.assertRaises(exc.MissingName, utils.get_name, object()) + def test_params_to_dict(self): + dct = {} + k1 = utils.random_unicode() + k2 = utils.random_unicode() + k3 = utils.random_unicode() + k4 = utils.random_unicode() + v1 = utils.random_unicode() + v2 = utils.random_unicode() + v3 = utils.random_unicode() + local = {k1: v1, k2: v2, k3: v3} + params = [k2, k3, k4] + expected = {k2: v2, k3: v3} + utils.params_to_dict(params, dct, local) + self.assertEqual(dct, expected) + def test_import_class(self): cls_string = "tests.unit.fakes.FakeManager" ret = utils.import_class(cls_string) From ec71eb5c0a9af29af09583668a9f1466d581f0c3 Mon Sep 17 00:00:00 2001 From: Richard Maynard Date: Fri, 1 Nov 2013 10:37:22 -0500 Subject: [PATCH 11/30] handle empty bodied response Sometimes the response body doesn't contain anything, handle this error condition by retrying, and remaining within the constraints of the timeout. --- pyrax/clouddns.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pyrax/clouddns.py b/pyrax/clouddns.py index 53febde2..d426ad18 100644 --- a/pyrax/clouddns.py +++ b/pyrax/clouddns.py @@ -454,16 +454,19 @@ def _async_call(self, uri, body=None, method="GET", error_class=None, start = time.time() timed_out = False while (resp_body["status"] == "RUNNING") and not timed_out: - resp, resp_body = self.api.method_get(massagedURL) - if self._timeout: - timed_out = ((time.time() - start) > self._timeout) - time.sleep(self._delay) - if error_class and (resp_body["status"] == "ERROR"): - # This call will handle raising the error. - self._process_async_error(resp_body, error_class) + resp_body = None + while resp_body is None and not timed_out: + resp, resp_body = self.api.method_get(massagedURL) + if self._timeout: + timed_out = ((time.time() - start) > self._timeout) + time.sleep(self._delay) + if timed_out: raise exc.DNSCallTimedOut("The API call to '%s' did not complete " "after %s seconds." % (uri, self._timeout)) + if error_class and (resp_body["status"] == "ERROR"): + # This call will handle raising the error. + self._process_async_error(resp_body, error_class) if has_response: ret = resp, resp_body["response"] else: From eb4e58a1bc5cb88db757970519b35401b40f45da Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Sat, 2 Nov 2013 20:43:08 -0500 Subject: [PATCH 12/30] Fixed documentation for claiming messages --- docs/queues.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/queues.md b/docs/queues.md index 72b1689a..b7cca85c 100644 --- a/docs/queues.md +++ b/docs/queues.md @@ -85,9 +85,11 @@ Parameter | Default | Effect ## Claiming Messages in a Queue Claiming messages is how workers processing a queue mark messages as being handled by that worker, avoiding having two workers process the same message. -To claim messages you need the queue name or a `Queue` object reference. If you have a `Queue` object, you can call its `claim()` method directly. When claiming messages you must not only specify the queue, but also give a TTL and a Grace Period. You many also specify a limit to the number of messages to claim. The call is: +To claim messages you need the queue name or a `Queue` object reference. If you have a `Queue` object, you can call its `claim_messages()` method directly. When claiming messages you must not only specify the queue, but also give a TTL and a Grace Period. You may also specify a limit to the number of messages to claim. The call is: - pq.claim_messages(queue, ttl, grace_period[, limit]) + queue_claim = pq.claim_messages(queue, ttl, grace[, count]) + + queue_claim = queue.claim_messages(ttl, grace[, count]) An explanation of the parameters of this call follows: @@ -95,8 +97,8 @@ Parameter | Default | Notes ---- | ---- | ---- **queue** | | Either the name of the queue to claim messages from, or the corresponding `Queue` object. **ttl** | | The ttl attribute specifies how long the server waits before releasing the claim. The ttl value must be between 60 and 43200 seconds (12 hours). -**grace_period** | | The grace_period attribute specifies the message grace period in seconds. The value of the grace period must be between 60 and 43200 seconds (12 hours). To deal with workers that have stopped responding (for up to 1209600 seconds or 14 days, including claim lifetime), the server extends the lifetime of claimed messages to be at least as long as the lifetime of the claim itself, plus the specified grace period. If a claimed message would normally live longer than the grace period, its expiration is not adjusted. -**limit** | 10 | The number of messages to claim. The maximum number of messages you may claim at once is 20. +**grace** | | The grace attribute specifies the message grace period in seconds. The value of the grace period must be between 60 and 43200 seconds (12 hours). To deal with workers that have stopped responding (for up to 1209600 seconds or 14 days, including claim lifetime), the server extends the lifetime of claimed messages to be at least as long as the lifetime of the claim itself, plus the specified grace period. If a claimed message would normally live longer than the grace period, its expiration is not adjusted. +**count** | 10 | The number of messages to claim. The maximum number of messages you may claim at once is 20. If there are no messages to claim, the method returns `None`. When you create a successful claim, a `QueueClaim` object is returned that has a `messages` attribute. This is a list of `QueueMessage` objects representing the claimed messages. You can iterate through this list to process the messages, and once the message has been processed, call its `delete()` method to remove it from the queue to ensure that it is not processed more than once. From 797ae329337ef1e64ce0e6ec2646d2500229dda5 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 4 Nov 2013 07:19:17 -0600 Subject: [PATCH 13/30] Fixed documentation for queue.update_claim --- docs/queues.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/queues.md b/docs/queues.md index b7cca85c..6c490181 100644 --- a/docs/queues.md +++ b/docs/queues.md @@ -106,9 +106,9 @@ If there are no messages to claim, the method returns `None`. When you create a ## Renewing a Claim Once a claim has been made, if the TTL and grace period expire, the claim is automatically released and the messages are made available for others to claim. If you have a long-running process and want to ensure that this does not happen in the middle of the process, you should update the claim with one or both of a TTL or grace period. Updating resets the age of the claim, restarting the TTL for the claim. To update a claim, call: - pq.update_claim(queue, claim[, ttl=None][, grace_period=None]) + pq.update_claim(queue, claim[, ttl=None][, grace=None]) # or - queue.update_claim(claim[, ttl=None][, grace_period=None]) + queue.update_claim(claim[, ttl=None][, grace=None]) ## Refreshing a Claim From ab2ec48f0d1b60d5b01e3c1f9d1e51ba0fc64e27 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 5 Nov 2013 14:56:48 -0800 Subject: [PATCH 14/30] Fixed a bug in parsing message and claim IDs --- pyrax/queueing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyrax/queueing.py b/pyrax/queueing.py index b8d49aed..66757892 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -245,7 +245,7 @@ def _add_details(self, info): if self.href is None: return parsed = urlparse.urlparse(self.href) - self.id = parsed.path.lstrip("/") + self.id = parsed.path.rsplit("/", 1)[-1] query = parsed.query if query: self.claim_id = query.split("claim_id=")[-1] @@ -269,7 +269,7 @@ def _add_details(self, info): msg_dicts = info.pop("messages", []) super(QueueClaim, self)._add_details(info) parsed = urlparse.urlparse(self.href) - self.id = parsed.path.lstrip("/") + self.id = parsed.path.rsplit("/", 1)[-1] self.messages = [QueueMessage(self.manager._message_manager, item) for item in msg_dicts] From 3069bd03badf35fc89848cc1014d342d59899c22 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 5 Nov 2013 15:03:51 -0800 Subject: [PATCH 15/30] Added docs for the host parameter when creating usres. GitHub #229 --- docs/cloud_databases.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/cloud_databases.md b/docs/cloud_databases.md index 73b96f98..307ecb62 100644 --- a/docs/cloud_databases.md +++ b/docs/cloud_databases.md @@ -91,16 +91,16 @@ Both calls return an object representing the newly-created database: ## Create a User -You can create a user on an instance with its own username/password credentials, with access to one or more databases on that instance. Similar to database creation, you can call `create_user()` either on the instance object, or on the module. To simplify these examples, only the call on the instance is displayed. +You can create a user on an instance with its own username/password credentials, with access to one or more databases on that instance, and optionally restricted to connecting from particular host addresses. Similar to database creation, you can call `create_user()` either on the instance object, or on the module. To simplify these examples, only the call on the instance is displayed. Assuming that you have the references `inst` and `db` from the previous examples, you can create a user like this: - user = inst.create_user(name="groucho", password="top secret", database_names=[db]) + user = inst.create_user(name="groucho", password="top secret", database_names=[db], host="%") print "User:", user This prints out: - User: + User: ## List Databases or Users in an Instance @@ -114,7 +114,7 @@ Instances have a `list_databases()` and a `list_users()` method: which outputs: DBs: [] - Users: [] + Users: [, host="%"] ## Get a `CloudDatabaseDatabase` or `CloudDatabaseUser` Object @@ -128,7 +128,7 @@ You can get a `CloudDatabaseDatabase` or `CloudDatabaseUser` object from an `Clo which outputs: DB: - User: + User: ## Backups From 3e859851cc64b34ebb3361c8a11132f881fb471b Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 5 Nov 2013 22:41:25 -0800 Subject: [PATCH 16/30] Added the claim_id parameter to message deletion calls. --- pyrax/queueing.py | 38 ++++++++++++++++++++++++++++------- tests/unit/test_queues.py | 42 ++++++++++++++++++++++++++++++++++----- 2 files changed, 68 insertions(+), 12 deletions(-) diff --git a/pyrax/queueing.py b/pyrax/queueing.py index 66757892..3c9152cc 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -107,12 +107,13 @@ def get_message(self, msg_id): return self._message_manager.get(msg_id) - def delete_message(self, msg_id): + def delete_message(self, msg_id, claim_id=None): """ - Deletes the message whose ID matches the supplied msg_id from this - queue. + Deletes the message whose ID matches the supplied msg_id from the + specified queue. If the message has been claimed, the ID of that claim + must be passed as the 'claim_id' parameter. """ - return self._message_manager.delete(msg_id) + return self._message_manager.delete(msg_id, claim_id=claim_id) def list(self, include_claimed=False, echo=False, marker=None, limit=None): @@ -251,6 +252,14 @@ def _add_details(self, info): self.claim_id = query.split("claim_id=")[-1] + def delete(self, claim_id=None): + """ + Deletes this message from its queue. If the message has been claimed, + the ID of that claim must be passed as the 'claim_id' parameter. + """ + return self.manager.delete(self, claim_id=claim_id) + + class QueueClaim(BaseResource): """ @@ -330,6 +339,20 @@ def _iterate_list(self, include_claimed, echo, marker, limit): return ret + def delete(self, msg, claim_id=None): + """ + Deletes the specified message from its queue. If the message has been + claimed, the ID of that claim must be passed as the 'claim_id' + parameter. + """ + msg_id = utils.get_id(msg) + if claim_id: + uri = "/%s/%s?claim_id=%s" % (self.uri_base, msg_id, claim_id) + else: + uri = "/%s/%s" % (self.uri_base, msg_id) + return self._delete(uri) + + def list_by_ids(self, ids): """ If you wish to retrieve a list of messages from this queue and know the @@ -600,12 +623,13 @@ def get_message(self, queue, msg_id): @assure_queue - def delete_message(self, queue, msg_id): + def delete_message(self, queue, msg_id, claim_id=None): """ Deletes the message whose ID matches the supplied msg_id from the - specified queue. + specified queue. If the message has been claimed, the ID of that claim + must be passed as the 'claim_id' parameter. """ - return queue.delete_message(msg_id) + return queue.delete_message(msg_id, claim_id=claim_id) @assure_queue diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index c75f9a25..c4aa02a9 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -110,9 +110,11 @@ def test_queue_get_message(self): def test_queue_delete_message(self): q = self.queue q._message_manager.delete = Mock() - msgid = utils.random_unicode() - q.delete_message(msgid) - q._message_manager.delete.assert_called_once_with(msgid) + msg_id = utils.random_unicode() + claim_id = utils.random_unicode() + q.delete_message(msg_id, claim_id=claim_id) + q._message_manager.delete.assert_called_once_with(msg_id, + claim_id=claim_id) def test_queue_list(self): q = self.queue @@ -251,6 +253,15 @@ def test_msg_add_details_no_href(self): self.assertIsNone(msg.id) self.assertIsNone(msg.claim_id) + def test_msg_delete(self): + q = self.queue + mgr = q._message_manager + claim_id = utils.random_unicode() + mgr.delete = Mock() + msg = QueueMessage(manager=mgr, info={}) + msg.delete(claim_id=claim_id) + mgr.delete.assert_called_once_with(msg, claim_id=claim_id) + def test_claim(self): msgs = [] num = random.randint(1, 9) @@ -315,6 +326,26 @@ def test_queue_msg_mgr_no_limit_or_body(self): msgs = mgr.list(include_claimed=include_claimed, echo=echo, marker=marker) + def test_queue_msg_mgr_delete_claim(self): + q = self.queue + mgr = q._message_manager + msg = utils.random_unicode() + claim_id = utils.random_unicode() + mgr._delete = Mock() + expected_uri = "/%s/%s?claim_id=%s" % (mgr.uri_base, msg, claim_id) + mgr.delete(msg, claim_id=claim_id) + mgr._delete.assert_called_once_with(expected_uri) + + def test_queue_msg_mgr_delete_no_claim(self): + q = self.queue + mgr = q._message_manager + msg = utils.random_unicode() + claim_id = None + mgr._delete = Mock() + expected_uri = "/%s/%s" % (mgr.uri_base, msg) + mgr.delete(msg, claim_id=claim_id) + mgr._delete.assert_called_once_with(expected_uri) + def test_queue_msg_mgr_list_by_ids(self): q = self.queue mgr = q._message_manager @@ -597,9 +628,10 @@ def test_clt_delete_message(self): clt = self.client q = self.queue msg_id = utils.random_unicode() + claim_id = utils.random_unicode() q.delete_message = Mock() - clt.delete_message(q, msg_id) - q.delete_message.assert_called_once_with(msg_id) + clt.delete_message(q, msg_id, claim_id=claim_id) + q.delete_message.assert_called_once_with(msg_id, claim_id=claim_id) def test_clt_list_messages(self): clt = self.client From 3fe7567671a8d3a9a59897464f82a945003adaff Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 12 Nov 2013 09:16:25 -0600 Subject: [PATCH 17/30] Fixed issue with the create_user() failing without a host. GitHub #246 --- pyrax/clouddatabases.py | 3 ++- tests/unit/test_cloud_databases.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/pyrax/clouddatabases.py b/pyrax/clouddatabases.py index 4533f832..a0ebb61e 100644 --- a/pyrax/clouddatabases.py +++ b/pyrax/clouddatabases.py @@ -185,8 +185,9 @@ def _create_body(self, name, password, databases=None, database_names=None, {"name": name, "password": password, "databases": db_dicts, - "host": host, }]} + if host: + body["users"][0]["host"] = host return body diff --git a/tests/unit/test_cloud_databases.py b/tests/unit/test_cloud_databases.py index d805be48..df87b98a 100644 --- a/tests/unit/test_cloud_databases.py +++ b/tests/unit/test_cloud_databases.py @@ -902,6 +902,20 @@ def test_create_body_db(self): @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_create_body_user(self): + inst = self.instance + mgr = inst._user_manager + nm = utils.random_unicode() + pw = utils.random_unicode() + dbnames = [utils.random_unicode(), utils.random_unicode()] + ret = mgr._create_body(nm, password=pw, database_names=dbnames) + expected = {"users": [ + {"name": nm, + "password": pw, + "databases": [{"name": dbnames[0]}, {"name": dbnames[1]}]}]} + self.assertEqual(ret, expected) + + @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) + def test_create_body_user_host(self): inst = self.instance mgr = inst._user_manager nm = utils.random_unicode() From 70532d50ec12f8c6db786a35179875a28853ad64 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 12 Nov 2013 09:16:41 -0600 Subject: [PATCH 18/30] pep8 cleanup --- tests/unit/test_queues.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index c4aa02a9..771f07b5 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -261,7 +261,7 @@ def test_msg_delete(self): msg = QueueMessage(manager=mgr, info={}) msg.delete(claim_id=claim_id) mgr.delete.assert_called_once_with(msg, claim_id=claim_id) - + def test_claim(self): msgs = [] num = random.randint(1, 9) From 84f184a2262097f6a6a4302a0c3c480236a6ada8 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 12 Nov 2013 15:08:30 -0600 Subject: [PATCH 19/30] Removed requirement for client ID for non-message queue requests. GitHub #244 --- pyrax/queueing.py | 24 +++++++++++++++--- tests/unit/test_queues.py | 52 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/pyrax/queueing.py b/pyrax/queueing.py index 3c9152cc..9a17e9ba 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -519,6 +519,7 @@ class QueueClient(BaseClient): name = "Cloud Queues" client_id = None + def _configure_manager(self): """ Create the manager to handle queues. @@ -534,10 +535,25 @@ def _add_custom_headers(self, dct): """ if self.client_id is None: self.client_id = os.environ.get("CLOUD_QUEUES_ID") - if not self.client_id: - raise exc.QueueClientIDNotDefined("You must supply a client ID to " - "work with Queues.") - dct["Client-ID"] = self.client_id + if self.client_id: + dct["Client-ID"] = self.client_id + + + def _api_request(self, uri, method, **kwargs): + """ + Any request that involves messages must define the client ID. This + handles all failures due to lack of client ID and raises the + appropriate exception. + """ + try: + return super(QueueClient, self)._api_request(uri, method, **kwargs) + except exc.BadRequest as e: + if ((e.code == "400") and + (e.message == 'The "Client-ID" header is required.')): + raise exc.QueueClientIDNotDefined("You must supply a client ID " + "to work with Queue messages.") + else: + raise def get_home_document(self): diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index 771f07b5..311b5c0a 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -544,15 +544,61 @@ def test_clt_add_custom_headers(self): self.assertEqual(dct, {"Client-ID": client_id}) os.environ.get = sav - def test_clt_add_custom_headers_fail(self): + def test_clt_add_custom_headers_no_clt_id(self): clt = self.client dct = {} sav = os.environ.get os.environ.get = Mock(return_value=None) - self.assertRaises(exc.QueueClientIDNotDefined, clt._add_custom_headers, - dct) + clt._add_custom_headers(dct) + self.assertEqual(dct, {}) os.environ.get = sav + def test_api_request(self): + clt = self.client + uri = utils.random_ascii() + method = utils.random_ascii() + kwargs = {"fake": utils.random_ascii()} + fake_resp = utils.random_ascii() + fake_body = utils.random_ascii() + clt._time_request = Mock(return_value=(fake_resp, fake_body)) + clt.management_url = utils.random_unicode() + id_svc = pyrax.identity + sav = id_svc.authenticate + id_svc.authenticate = Mock() + ret = clt._api_request(uri, method, **kwargs) + self.assertEqual(ret, (fake_resp, fake_body)) + id_svc.authenticate = sav + + def test_api_request_missing_clt_id(self): + clt = self.client + uri = utils.random_ascii() + method = utils.random_ascii() + kwargs = {"fake": utils.random_ascii()} + err = exc.BadRequest("400", 'The "Client-ID" header is required.') + clt._time_request = Mock(side_effect=err) + clt.management_url = utils.random_unicode() + id_svc = pyrax.identity + sav = id_svc.authenticate + id_svc.authenticate = Mock() + self.assertRaises(exc.QueueClientIDNotDefined, clt._api_request, uri, + method, **kwargs) + id_svc.authenticate = sav + + def test_api_request_other_error(self): + clt = self.client + uri = utils.random_ascii() + method = utils.random_ascii() + kwargs = {"fake": utils.random_ascii()} + err = exc.BadRequest("400", "Some other message") + clt._time_request = Mock(side_effect=err) + clt.management_url = utils.random_unicode() + id_svc = pyrax.identity + sav = id_svc.authenticate + id_svc.authenticate = Mock() + self.assertRaises(exc.BadRequest, clt._api_request, uri, + method, **kwargs) + id_svc.authenticate = sav + def test_clt_get_home_document(self): clt = self.client parts = [_safe_id() for ii in range(4)] From ef16f73c6319348f93d44ade967618d2b1721a23 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 07:56:29 -0600 Subject: [PATCH 20/30] Added parameter explanation to the Block Storage doc. GitHub #248 --- docs/cloud_blockstorage.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/cloud_blockstorage.md b/docs/cloud_blockstorage.md index 1cd6b9f0..d0ab1921 100644 --- a/docs/cloud_blockstorage.md +++ b/docs/cloud_blockstorage.md @@ -55,6 +55,7 @@ Parameter | Description | Required When you create a volume from a snapshot, the new volume is a copy of the volume from which the snapshot was created. The new volume must be the same size as the original volume used to create the snapshot. If you create a new volume from scratch, it is the equivalent of an unformatted disk drive. +There are additional parameters in the response that are not described in the request parameter table above. **`status`** is typically available although it can be creating if the volume is from a snapshot operation. **`availability_zone`** is always "nova". **`bootable`** is currently always False. **`source_volid`** is currently not used by CBS. Here is an example of the call to create a new 500 GB volume that uses SSD for high performance: From dafa2cfb3e63ed4d67eec9bcef30dad7b1023176 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 08:20:47 -0600 Subject: [PATCH 21/30] Added missing 'host' parameter. GitHub #246 --- pyrax/clouddatabases.py | 8 +-- tests/unit/test_cloud_databases.py | 82 ++++++------------------------ 2 files changed, 19 insertions(+), 71 deletions(-) diff --git a/pyrax/clouddatabases.py b/pyrax/clouddatabases.py index a0ebb61e..5771dac7 100644 --- a/pyrax/clouddatabases.py +++ b/pyrax/clouddatabases.py @@ -407,7 +407,7 @@ def create_database(self, name, character_set=None, collate=None): return self._database_manager.find(name=name) - def create_user(self, name, password, database_names): + def create_user(self, name, password, database_names, host=None): """ Creates a user with the specified name and password, and gives that user access to the specified database(s). @@ -421,7 +421,7 @@ def create_user(self, name, password, database_names): database_names = [db if isinstance(db, basestring) else db.name for db in database_names] self._user_manager.create(name=name, password=password, - database_names=database_names, return_none=True) + database_names=database_names, host=host, return_none=True) # Since the API doesn't return the info for creating the user object, # we have to do it manually. return self._user_manager.find(name=name) @@ -716,13 +716,13 @@ def list_users(self, instance, limit=None, marker=None): @assure_instance - def create_user(self, instance, name, password, database_names): + def create_user(self, instance, name, password, database_names, host=None): """ Creates a user with the specified name and password, and gives that user access to the specified database(s). """ return instance.create_user(name=name, password=password, - database_names=database_names) + database_names=database_names, host=host) @assure_instance diff --git a/tests/unit/test_cloud_databases.py b/tests/unit/test_cloud_databases.py index df87b98a..a19f8b00 100644 --- a/tests/unit/test_cloud_databases.py +++ b/tests/unit/test_cloud_databases.py @@ -55,31 +55,28 @@ def test_instantiate_instance(self): inst = CloudDatabaseInstance(fakes.FakeManager(), {"id": 42, "volume": {"size": 1, "used": 0.2}}) self.assertTrue(isinstance(inst, CloudDatabaseInstance)) + self.assertTrue(isinstance(inst.volume, CloudDatabaseVolume)) def test_list_databases(self): inst = self.instance - sav = inst._database_manager.list inst._database_manager.list = Mock() limit = utils.random_unicode() marker = utils.random_unicode() inst.list_databases(limit=limit, marker=marker) inst._database_manager.list.assert_called_once_with(limit=limit, marker=marker) - inst._database_manager.list = sav def test_list_users(self): inst = self.instance - sav = inst._user_manager.list inst._user_manager.list = Mock() limit = utils.random_unicode() marker = utils.random_unicode() inst.list_users(limit=limit, marker=marker) - inst._user_manager.list.assert_called_once_with(limit=limit, marker=marker) - inst._user_manager.list = sav + inst._user_manager.list.assert_called_once_with(limit=limit, + marker=marker) def test_get_database(self): inst = self.instance - sav = inst.list_databases db1 = fakes.FakeEntity() db1.name = "a" db2 = fakes.FakeEntity() @@ -87,18 +84,15 @@ def test_get_database(self): inst.list_databases = Mock(return_value=[db1, db2]) ret = inst.get_database("a") self.assertEqual(ret, db1) - inst.list_databases = sav def test_get_database_bad(self): inst = self.instance - sav = inst.list_databases db1 = fakes.FakeEntity() db1.name = "a" db2 = fakes.FakeEntity() db2.name = "b" inst.list_databases = Mock(return_value=[db1, db2]) self.assertRaises(exc.NoSuchDatabase, inst.get_database, "z") - inst.list_databases = sav def test_dbmgr_get(self): mgr = fakes.FakeDatabaseManager() @@ -159,42 +153,38 @@ def test_mgr_list_backups_for_instance(self): def test_create_database(self): inst = self.instance - sav = inst._database_manager.create inst._database_manager.create = Mock() inst._database_manager.find = Mock() db = inst.create_database(name="test") inst._database_manager.create.assert_called_once_with(name="test", character_set="utf8", collate="utf8_general_ci", return_none=True) - inst._database_manager.create = sav def test_create_user(self): inst = self.instance - sav = inst._user_manager.create inst._user_manager.create = Mock() inst._user_manager.find = Mock() - inst.create_user(name="test", password="testpw", - database_names="testdb") - inst._user_manager.create.assert_called_once_with(name="test", - password="testpw", - database_names=["testdb"], return_none=True) - inst._user_manager.create = sav + name = utils.random_unicode() + password = utils.random_unicode() + database_names = utils.random_unicode() + host = utils.random_unicode() + inst.create_user(name=name, password=password, + database_names=database_names, host=host) + inst._user_manager.create.assert_called_once_with(name=name, + password=password, database_names=[database_names], host=host, + return_none=True) def test_delete_database(self): inst = self.instance - sav = inst._database_manager.delete inst._database_manager.delete = Mock() inst.delete_database("dbname") inst._database_manager.delete.assert_called_once_with("dbname") - inst._database_manager.delete = sav def test_delete_user(self): inst = self.instance - sav = inst._user_manager.delete inst._user_manager.delete = Mock() inst.delete_user("username") inst._user_manager.delete.assert_called_once_with("username") - inst._user_manager.delete = sav def test_delete_database_direct(self): inst = self.instance @@ -324,27 +314,23 @@ def test_set_flavor_property_instance(self): def test_list_databases_for_instance(self): clt = self.client inst = self.instance - sav = inst.list_databases limit = utils.random_unicode() marker = utils.random_unicode() inst.list_databases = Mock(return_value=["db"]) ret = clt.list_databases(inst, limit=limit, marker=marker) self.assertEqual(ret, ["db"]) inst.list_databases.assert_called_once_with(limit=limit, marker=marker) - inst.list_databases = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_create_database_for_instance(self): clt = self.client inst = self.instance - sav = inst.create_database inst.create_database = Mock(return_value=["db"]) nm = utils.random_unicode() ret = clt.create_database(inst, nm) self.assertEqual(ret, ["db"]) inst.create_database.assert_called_once_with(nm, character_set=None, collate=None) - inst.create_database = sav def test_clt_get_database(self): clt = self.client @@ -358,79 +344,66 @@ def test_clt_get_database(self): def test_delete_database_for_instance(self): clt = self.client inst = self.instance - sav = inst.delete_database inst.delete_database = Mock() nm = utils.random_unicode() clt.delete_database(inst, nm) inst.delete_database.assert_called_once_with(nm) - inst.delete_database = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_list_users_for_instance(self): clt = self.client inst = self.instance - sav = inst.list_users limit = utils.random_unicode() marker = utils.random_unicode() inst.list_users = Mock(return_value=["user"]) ret = clt.list_users(inst, limit=limit, marker=marker) self.assertEqual(ret, ["user"]) inst.list_users.assert_called_once_with(limit=limit, marker=marker) - inst.list_users = sav def test_create_user_for_instance(self): clt = self.client inst = self.instance - sav = inst.create_user inst.create_user = Mock() nm = utils.random_unicode() pw = utils.random_unicode() - ret = clt.create_user(inst, nm, pw, ["db"]) + host = utils.random_unicode() + ret = clt.create_user(inst, nm, pw, ["db"], host=host) inst.create_user.assert_called_once_with(name=nm, password=pw, - database_names=["db"]) - inst.create_user = sav + database_names=["db"], host=host) @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_delete_user_for_instance(self): clt = self.client inst = self.instance - sav = inst.delete_user inst.delete_user = Mock() nm = utils.random_unicode() clt.delete_user(inst, nm) inst.delete_user.assert_called_once_with(nm) - inst.delete_user = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_enable_root_user_for_instance(self): clt = self.client inst = self.instance - sav = inst.enable_root_user inst.enable_root_user = Mock() clt.enable_root_user(inst) inst.enable_root_user.assert_called_once_with() - inst.enable_root_user = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_root_user_status_for_instance(self): clt = self.client inst = self.instance - sav = inst.root_user_status inst.root_user_status = Mock() clt.root_user_status(inst) inst.root_user_status.assert_called_once_with() - inst.root_user_status = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_user_by_client(self): clt = self.client inst = self.instance - sav = inst.get_user inst.get_user = Mock() fakeuser = utils.random_unicode() clt.get_user(inst, fakeuser) inst.get_user.assert_called_once_with(fakeuser) - inst.get_user = sav def test_get_user(self): inst = self.instance @@ -452,11 +425,9 @@ def test_get_db_names(self): mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() - sav = inst.list_databases inst.list_databases = Mock(return_value=((dbname1, dbname2))) resp = mgr._get_db_names(dbname1) self.assertEqual(resp, [dbname1]) - inst.list_databases = sav def test_get_db_names_not_strict(self): inst = self.instance @@ -464,11 +435,9 @@ def test_get_db_names_not_strict(self): mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() - sav = inst.list_databases inst.list_databases = Mock(return_value=((dbname1, dbname2))) resp = mgr._get_db_names("BAD", strict=False) self.assertEqual(resp, ["BAD"]) - inst.list_databases = sav def test_get_db_names_fail(self): inst = self.instance @@ -476,10 +445,8 @@ def test_get_db_names_fail(self): mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() - sav = inst.list_databases inst.list_databases = Mock(return_value=((dbname1, dbname2))) self.assertRaises(exc.NoSuchDatabase, mgr._get_db_names, "BAD") - inst.list_databases = sav def test_change_user_password(self): inst = self.instance @@ -721,16 +688,13 @@ def test_clt_restart(self): clt.restart(inst) inst.restart.assert_called_once_with() - @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_inst_resize(self): clt = self.client inst = self.instance - sav = inst.resize inst.resize = Mock() clt.resize(inst, "flavor") inst.resize.assert_called_once_with("flavor") - inst.resize = sav def test_get_limits(self): self.assertRaises(NotImplementedError, self.client.get_limits) @@ -775,11 +739,9 @@ def test_get_flavor_ref_for_id(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav = clt.get_flavor clt.get_flavor = Mock(return_value=flavor_obj) ret = clt._get_flavor_ref(1) self.assertEqual(ret, example_uri) - clt.get_flavor = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_flavor_ref_for_name(self): @@ -791,14 +753,10 @@ def test_get_flavor_ref_for_name(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav_get = clt.get_flavor - sav_list = clt.list_flavors clt.get_flavor = Mock(side_effect=exc.NotFound("")) clt.list_flavors = Mock(return_value=[flavor_obj]) ret = clt._get_flavor_ref("test_flavor") self.assertEqual(ret, example_uri) - clt.get_flavor = sav_get - clt.list_flavors = sav_list @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_flavor_ref_for_ram(self): @@ -810,14 +768,10 @@ def test_get_flavor_ref_for_ram(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav_get = clt.get_flavor - sav_list = clt.list_flavors clt.get_flavor = Mock(side_effect=exc.NotFound("")) clt.list_flavors = Mock(return_value=[flavor_obj]) ret = clt._get_flavor_ref(42) self.assertEqual(ret, example_uri) - clt.get_flavor = sav_get - clt.list_flavors = sav_list @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_flavor_ref_not_found(self): @@ -829,13 +783,9 @@ def test_get_flavor_ref_not_found(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav_get = clt.get_flavor - sav_list = clt.list_flavors clt.get_flavor = Mock(side_effect=exc.NotFound("")) clt.list_flavors = Mock(return_value=[flavor_obj]) self.assertRaises(exc.FlavorNotFound, clt._get_flavor_ref, "nonsense") - clt.get_flavor = sav_get - clt.list_flavors = sav_list def test_clt_list_backups(self): clt = self.client @@ -935,7 +885,6 @@ def test_create_body_user_host(self): def test_create_body_flavor(self): clt = self.client nm = utils.random_unicode() - sav = clt._get_flavor_ref clt._get_flavor_ref = Mock(return_value=example_uri) ret = clt._manager._create_body(nm) expected = {"instance": { @@ -945,7 +894,6 @@ def test_create_body_flavor(self): "databases": [], "users": []}} self.assertEqual(ret, expected) - clt._get_flavor_ref = sav if __name__ == "__main__": From 928ead7851300de61679b4af89584122cfe9790f Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 09:59:24 -0600 Subject: [PATCH 22/30] Added support for wheel distribution --- setup.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.cfg b/setup.cfg index 2dca2f87..8fd2ec59 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,5 @@ [install] optimize = 1 + +[wheel] +universal = 1 From 1caaf475d2e3e9bd23655727350dcc628540c430 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 11:35:07 -0600 Subject: [PATCH 23/30] Removed files accidentally included in the repo. --- tests/unit/.testtimes.json | 1 - tests/unit/testtimes.json | 1 - 2 files changed, 2 deletions(-) delete mode 100644 tests/unit/.testtimes.json delete mode 100644 tests/unit/testtimes.json diff --git a/tests/unit/.testtimes.json b/tests/unit/.testtimes.json deleted file mode 100644 index 91b55e1c..00000000 --- a/tests/unit/.testtimes.json +++ /dev/null @@ -1 +0,0 @@ -[[9.298324584960938e-05, "test_add_method"], [9.679794311523438e-05, "test_add_method_no_name"], [3.1948089599609375e-05, "test_env"], [3.0994415283203125e-05, "test_folder_size_bad_folder"], [0.002016782760620117, "test_folder_size_ignore_list"], [0.0019488334655761719, "test_folder_size_ignore_string"], [0.001611948013305664, "test_folder_size_no_ignore"], [8.416175842285156e-05, "test_get_checksum_from_binary"], [0.0013799667358398438, "test_get_checksum_from_file"], [4.887580871582031e-05, "test_get_checksum_from_string"], [5.221366882324219e-05, "test_get_checksum_from_unicode"], [0.04255390167236328, "test_get_checksum_from_unicode_alt_encoding"], [0.00015091896057128906, "test_get_id"], [0.00015282630920410156, "test_get_name"], [1.0967254638671875e-05, "test_import_class"], [1.0013580322265625e-05, "test_isunauthenticated"], [2.384185791015625e-05, "test_match_pattern"], [0.0006420612335205078, "test_random_unicode"], [0.03811287879943848, "test_runproc"], [0.00020503997802734375, "test_safe_issubclass_bad"], [2.5987625122070312e-05, "test_safe_issubclass_good"], [0.00030612945556640625, "test_self_deleting_temp_directory"], [0.00022602081298828125, "test_self_deleting_temp_file"], [0.0005660057067871094, "test_slugify"], [0.0001571178436279297, "test_time_string_date"], [0.020350933074951172, "test_time_string_date_obj"], [0.0023310184478759766, "test_time_string_datetime"], [7.104873657226562e-05, "test_time_string_datetime_add_tz"], [7.605552673339844e-05, "test_time_string_datetime_hide_tz"], [4.601478576660156e-05, "test_time_string_datetime_show_tz"], [6.9141387939453125e-06, "test_time_string_empty"], [6.198883056640625e-05, "test_time_string_invalid"], [1.1920928955078125e-05, "test_unauthenticated"], [0.00025010108947753906, "test_update_exc"], [0.0011680126190185547, "test_wait_for_build"], [0.0005540847778320312, "test_wait_until"], [0.001271963119506836, "test_wait_until_callback"], [0.0004899501800537109, "test_wait_until_fail"], [9.799003601074219e-05, "test_add_method"], [0.00016379356384277344, "test_add_method_no_name"], [3.2901763916015625e-05, "test_env"], [2.6941299438476562e-05, "test_folder_size_bad_folder"], [0.0018258094787597656, "test_folder_size_ignore_list"], [0.0017931461334228516, "test_folder_size_ignore_string"], [0.0016651153564453125, "test_folder_size_no_ignore"], [8.296966552734375e-05, "test_get_checksum_from_binary"], [0.0014481544494628906, "test_get_checksum_from_file"], [4.7206878662109375e-05, "test_get_checksum_from_string"], [5.1021575927734375e-05, "test_get_checksum_from_unicode"], [0.003670215606689453, "test_get_checksum_from_unicode_alt_encoding"], [0.00013899803161621094, "test_get_id"], [0.0001499652862548828, "test_get_name"], [2.4080276489257812e-05, "test_import_class"], [2.2172927856445312e-05, "test_isunauthenticated"], [3.600120544433594e-05, "test_match_pattern"], [0.0009670257568359375, "test_random_unicode"], [0.004940986633300781, "test_runproc"], [0.00019693374633789062, "test_safe_issubclass_bad"], [2.7894973754882812e-05, "test_safe_issubclass_good"], [0.000370025634765625, "test_self_deleting_temp_directory"], [0.0002391338348388672, "test_self_deleting_temp_file"], [0.0009739398956298828, "test_slugify"], [0.0001659393310546875, "test_time_string_date"], [2.6941299438476562e-05, "test_time_string_date_obj"], [0.0016129016876220703, "test_time_string_datetime"], [6.198883056640625e-05, "test_time_string_datetime_add_tz"], [6.794929504394531e-05, "test_time_string_datetime_hide_tz"], [5.698204040527344e-05, "test_time_string_datetime_show_tz"], [4.0531158447265625e-06, "test_time_string_empty"], [3.910064697265625e-05, "test_time_string_invalid"], [1.1920928955078125e-05, "test_unauthenticated"], [0.0002570152282714844, "test_update_exc"], [0.0015079975128173828, "test_wait_for_build"], [0.0004608631134033203, "test_wait_until"], [0.0015289783477783203, "test_wait_until_callback"], [0.0003800392150878906, "test_wait_until_fail"], [9.608268737792969e-05, "test_add_method"], [0.00010800361633300781, "test_add_method_no_name"], [3.695487976074219e-05, "test_env"], [3.910064697265625e-05, "test_folder_size_bad_folder"], [0.0018758773803710938, "test_folder_size_ignore_list"], [0.0017428398132324219, "test_folder_size_ignore_string"], [0.0016450881958007812, "test_folder_size_no_ignore"], [8.20159912109375e-05, "test_get_checksum_from_binary"], [0.001425027847290039, "test_get_checksum_from_file"], [3.886222839355469e-05, "test_get_checksum_from_string"], [5.602836608886719e-05, "test_get_checksum_from_unicode"], [0.0014820098876953125, "test_get_checksum_from_unicode_alt_encoding"], [0.00015997886657714844, "test_get_id"], [0.0001461505889892578, "test_get_name"], [1.1920928955078125e-05, "test_import_class"], [1.0013580322265625e-05, "test_isunauthenticated"], [2.7179718017578125e-05, "test_match_pattern"], [0.0017287731170654297, "test_random_unicode"], [0.005548954010009766, "test_runproc"], [0.00020194053649902344, "test_safe_issubclass_bad"], [1.7881393432617188e-05, "test_safe_issubclass_good"], [0.00028514862060546875, "test_self_deleting_temp_directory"], [0.0002639293670654297, "test_self_deleting_temp_file"], [0.00020599365234375, "test_slugify"], [0.00015807151794433594, "test_time_string_date"], [2.8133392333984375e-05, "test_time_string_date_obj"], [0.0015549659729003906, "test_time_string_datetime"], [5.602836608886719e-05, "test_time_string_datetime_add_tz"], [7.295608520507812e-05, "test_time_string_datetime_hide_tz"], [5.1021575927734375e-05, "test_time_string_datetime_show_tz"], [1.0967254638671875e-05, "test_time_string_empty"], [5.316734313964844e-05, "test_time_string_invalid"], [1.2874603271484375e-05, "test_unauthenticated"], [0.00024819374084472656, "test_update_exc"], [0.0012221336364746094, "test_wait_for_build"], [0.0005648136138916016, "test_wait_until"], [0.0013408660888671875, "test_wait_until_callback"], [0.00036406517028808594, "test_wait_until_fail"]] \ No newline at end of file diff --git a/tests/unit/testtimes.json b/tests/unit/testtimes.json deleted file mode 100644 index 5720bbe8..00000000 --- a/tests/unit/testtimes.json +++ /dev/null @@ -1 +0,0 @@ -[[0.0001239776611328125, "test_add_method"], [0.0001361370086669922, "test_add_method_no_name"], [3.910064697265625e-05, "test_env"], [3.0994415283203125e-05, "test_folder_size_bad_folder"], [0.0023241043090820312, "test_folder_size_ignore_list"], [0.0023190975189208984, "test_folder_size_ignore_string"], [0.0017161369323730469, "test_folder_size_no_ignore"], [9.393692016601562e-05, "test_get_checksum_from_binary"], [0.0014240741729736328, "test_get_checksum_from_file"], [4.482269287109375e-05, "test_get_checksum_from_string"], [5.7220458984375e-05, "test_get_checksum_from_unicode"], [0.001325845718383789, "test_get_checksum_from_unicode_alt_encoding"], [0.0001850128173828125, "test_get_id"], [0.0001761913299560547, "test_get_name"], [1.4066696166992188e-05, "test_import_class"], [1.4066696166992188e-05, "test_isunauthenticated"], [3.0040740966796875e-05, "test_match_pattern"], [0.0018579959869384766, "test_random_unicode"], [0.005424976348876953, "test_runproc"], [0.00025391578674316406, "test_safe_issubclass_bad"], [1.9073486328125e-05, "test_safe_issubclass_good"], [0.00031685829162597656, "test_self_deleting_temp_directory"], [0.00023221969604492188, "test_self_deleting_temp_file"], [0.00017905235290527344, "test_slugify"], [0.00017189979553222656, "test_time_string_date"], [3.314018249511719e-05, "test_time_string_date_obj"], [0.0031440258026123047, "test_time_string_datetime"], [8.797645568847656e-05, "test_time_string_datetime_add_tz"], [7.915496826171875e-05, "test_time_string_datetime_hide_tz"], [5.888938903808594e-05, "test_time_string_datetime_show_tz"], [8.106231689453125e-06, "test_time_string_empty"], [6.29425048828125e-05, "test_time_string_invalid"], [2.384185791015625e-05, "test_unauthenticated"], [0.00037407875061035156, "test_update_exc"], [0.0017931461334228516, "test_wait_for_build"], [0.0006711483001708984, "test_wait_until"], [0.0017261505126953125, "test_wait_until_callback"], [0.0006098747253417969, "test_wait_until_fail"]] \ No newline at end of file From 61a2b2cf015b4d4cd808b050b82506544b83cf59 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 11:35:23 -0600 Subject: [PATCH 24/30] Added support for ServiceNet queues. GitHub #240 --- pyrax/__init__.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pyrax/__init__.py b/pyrax/__init__.py index 2c493ffc..9bdcf17f 100755 --- a/pyrax/__init__.py +++ b/pyrax/__init__.py @@ -674,9 +674,9 @@ def connect_to_cloudfiles(region=None, public=True): @_require_auth -def _create_client(ep_name, service_type, region): +def _create_client(ep_name, service_type, region, public=True): region = _safe_region(region) - ep = _get_service_endpoint(ep_name.split(":")[0], region) + ep = _get_service_endpoint(ep_name.split(":")[0], region, public=public) if not ep: return verify_ssl = get_setting("verify_ssl") @@ -724,14 +724,14 @@ def connect_to_cloud_monitoring(region=None): def connect_to_autoscale(region=None): """Creates a client for working with AutoScale.""" - return _create_client(ep_name="autoscale", - service_type="autoscale", region=region) + return _create_client(ep_name="autoscale", service_type="autoscale", + region=region) -def connect_to_queues(region=None): +def connect_to_queues(region=None, public=True): """Creates a client for working with Queues.""" - return _create_client(ep_name="queues", - service_type="queues", region=region) + return _create_client(ep_name="queues", service_type="queues", + region=region, public=public) def get_http_debug(): From f642f5e405ebb4cd915558d53b7b66fd99e4f2f9 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 12:20:42 -0600 Subject: [PATCH 25/30] Fixed missing file spec. GitHub #245 --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index 4b76979d..e4945b07 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,3 +2,4 @@ include README.md RELEASENOTES.md recursive-include docs *.md recursive-include samples *.py recursive-include tests *.py +recursive-include tests *.png From ba573242d1a42d4dc8e09cc16a2037de80b197a1 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 14:55:40 -0600 Subject: [PATCH 26/30] Fixed some issues with test_utils.py --- pyrax/utils.py | 1 + tests/unit/fakes.py | 4 ++-- tests/unit/test_utils.py | 14 ++++++-------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pyrax/utils.py b/pyrax/utils.py index 2307f846..b411400d 100644 --- a/pyrax/utils.py +++ b/pyrax/utils.py @@ -24,6 +24,7 @@ import pdb as pudb trace = pudb.set_trace +import pyrax import pyrax.exceptions as exc diff --git a/tests/unit/fakes.py b/tests/unit/fakes.py index caa72682..0ad3b4a9 100644 --- a/tests/unit/fakes.py +++ b/tests/unit/fakes.py @@ -776,6 +776,6 @@ def read(self): _module_pth = os.path.dirname(pyrax.__file__) _img_path = os.path.join(_module_pth, "..", "tests", "unit", "python-logo.png") -png_file = None +png_content = None with open(_img_path, "rb") as pfile: - png_file = pfile.read() + png_content = pfile.read() diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 6f72209f..73c1f696 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -15,7 +15,7 @@ import pyrax.utils as utils import pyrax.exceptions as exc -from tests.unit import fakes +import fakes FAKE_CONTENT = "x" * 100 @@ -53,7 +53,7 @@ def test_self_deleting_temp_directory(self): self.assertFalse(os.path.exists(tmp)) def test_get_checksum_from_string(self): - test = "some random text" + test = utils.random_ascii() md = hashlib.md5() md.update(test) expected = md.hexdigest() @@ -61,7 +61,7 @@ def test_get_checksum_from_string(self): self.assertEqual(expected, received) def test_get_checksum_from_unicode(self): - test = u"some ñøñåßçîî text" + test = utils.random_unicode() md = hashlib.md5() enc = "utf8" md.update(test.encode(enc)) @@ -79,9 +79,7 @@ def test_get_checksum_from_unicode_alt_encoding(self): self.assertEqual(expected, received) def test_get_checksum_from_binary(self): -# test = utils.random_unicode() -# test = open("tests/unit/python-logo.png", "rb").read() - test = fakes.png_file + test = fakes.png_content md = hashlib.md5() enc = "utf8" md.update(test) @@ -370,9 +368,9 @@ def test_params_to_dict(self): self.assertEqual(dct, expected) def test_import_class(self): - cls_string = "tests.unit.fakes.FakeManager" + cls_string = "pyrax.utils.SelfDeletingTempfile" ret = utils.import_class(cls_string) - self.assertTrue(ret is fakes.FakeManager) + self.assertTrue(ret is utils.SelfDeletingTempfile) def test_update_exc(self): msg1 = utils.random_unicode() From 89612ea9d749a7e60492ff30b9bfcee285e199b0 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 15:06:44 -0600 Subject: [PATCH 27/30] Updated version and release notes. --- RELEASENOTES.md | 16 ++++++++++++++++ pyrax/version.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 2aa6a889..06ea6862 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,21 @@ # Release Notes for pyrax +###2013.11.13 - Version 1.6.2 + - Cloud Databases: + - Added missing 'host' parameter. GitHub #246 + - Cloud Queues: + - Removed requirement for Client ID for non-message requests. GitHub #244 + - Added support for ServiceNet queues. GitHub #240 + - Added the `claim_id` parameter to message deletion calls. GitHub #243 + - Fixed a bug when parsing message and claim IDs. + - Made several corrections in the docs. - Cloud DNS: + - Added handling for an occasional empty body when polling a running request. + GitHub #237 + - General: + - Added support for Python Wheel distribution + - Fixed missing file spec in MANIFEST.in + - Removed unneeded files + ###2013.10.31 - Version 1.6.1 - Cloud Databases: - Added support for Backups. GitHub #216 diff --git a/pyrax/version.py b/pyrax/version.py index 5fde3200..b5a15397 100644 --- a/pyrax/version.py +++ b/pyrax/version.py @@ -1,4 +1,4 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -version = "1.6.1" +version = "1.6.2" From f2c3bb086585415fec2edffc976d1bbc363ae75e Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 15:11:21 -0600 Subject: [PATCH 28/30] Updated the class docs --- ...clouddatabases_1_1CloudDatabaseClient.html | 10 +++- ...ouddatabases_1_1CloudDatabaseInstance.html | 10 +++- .../html/classpyrax_1_1queueing_1_1Queue.html | 15 ++++-- ...classpyrax_1_1queueing_1_1QueueClient.html | 11 +++- ...x_1_1queueing_1_1QueueMessage-members.html | 5 +- ...lasspyrax_1_1queueing_1_1QueueMessage.html | 40 +++++++++++++- ...eueing_1_1QueueMessageManager-members.html | 5 +- ...ax_1_1queueing_1_1QueueMessageManager.html | 40 +++++++++++++- docs/html/functions_0x64.html | 52 ++++++++++--------- docs/html/functions_func_0x64.html | 40 +++++++------- docs/html/namespacepyrax.html | 14 ++++- docs/html/namespacepyrax_1_1version.html | 6 +-- docs/html/search/all_64.js | 2 +- docs/html/search/functions_64.js | 2 +- docs/html/version_8py.html | 4 +- 15 files changed, 186 insertions(+), 70 deletions(-) diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html index 62ab2680..8b364cae 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html @@ -342,7 +342,13 @@   - database_names  + database_names, + + + + +   + host = None  @@ -1142,7 +1148,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html index 95ae35dc..5aff195e 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html @@ -350,7 +350,13 @@   - database_names  + database_names, + + + + +   + host = None  @@ -918,7 +924,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1Queue.html b/docs/html/classpyrax_1_1queueing_1_1Queue.html index 11851221..8cd75e12 100644 --- a/docs/html/classpyrax_1_1queueing_1_1Queue.html +++ b/docs/html/classpyrax_1_1queueing_1_1Queue.html @@ -127,7 +127,7 @@ def get_message  Returns the message whose ID matches the supplied msg_id from this queue.
                                                                                                                                                                                                                                                                                                              def delete_message - Deletes the message whose ID matches the supplied msg_id from this queue.
                                                                                                                                                                                                                                                                                                              + Deletes the message whose ID matches the supplied msg_id from the specified queue.
                                                                                                                                                                                                                                                                                                              def list  Returns a list of messages for this queue.
                                                                                                                                                                                                                                                                                                              def list_by_ids @@ -291,7 +291,13 @@   - msg_id  + msg_id, + + + + +   + claim_id = None  @@ -302,7 +308,8 @@
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Deletes the message whose ID matches the supplied msg_id from this queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              Deletes the message whose ID matches the supplied msg_id from the specified queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              @@ -659,7 +666,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueClient.html b/docs/html/classpyrax_1_1queueing_1_1QueueClient.html index 101f3424..3b8cf79e 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueClient.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueClient.html @@ -266,7 +266,13 @@   - msg_id  + msg_id, + + + + +   + claim_id = None  @@ -278,6 +284,7 @@

                                                                                                                                                                                                                                                                                                              Deletes the message whose ID matches the supplied msg_id from the specified queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              @@ -841,7 +848,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html index 50c6eef7..837b0f01 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html @@ -97,7 +97,8 @@ ageQueueMessage [static] bodyQueueMessage [static] claim_idQueueMessage [static] - deleteBaseResource + deleteQueueMessage + pyrax::resource::BaseResource.deleteBaseResource getBaseResource get_detailsBaseResource [static] hrefQueueMessage [static] @@ -127,7 +128,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html index 8364bad5..ccd4e155 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html @@ -100,6 +100,7 @@
                                                                                                                                                                                                                                                                                                              QueueMessage Class Reference
                                                                                                                                                                                                                                                                                                              @@ -120,6 +121,10 @@

                                                                                                                                                                                                                                                                                                              List of all members.

                                                                                                                                                                                                                                                                                                              + + + @@ -131,7 +136,38 @@

                                                                                                                                                                                                                                                                                                              +Public Member Functions

                                                                                                                                                                                                                                                                                                              def delete
                                                                                                                                                                                                                                                                                                               Deletes this message from its queue.

                                                                                                                                                                                                                                                                                                              Static Public Attributes

                                                                                                                                                                                                                                                                                                               id = None

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              This class represents a Message posted to a Queue.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              Member Function Documentation

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                              def delete ( self,
                                                                                                                                                                                                                                                                                                               claim_id = None 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                                                              Deletes this message from its queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              @@ -233,7 +269,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html index ba1d26b0..656f96b7 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html @@ -95,7 +95,8 @@ add_hookBaseManager apiBaseManager createBaseManager - deleteBaseManager + deleteQueueMessageManager + pyrax::queueing::BaseQueueManager.deleteBaseManager delete_by_idsQueueMessageManager findBaseManager findallBaseManager @@ -127,7 +128,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html index aa9aa70a..665d203a 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html @@ -126,6 +126,8 @@ Public Member Functions def list  Need to form the URI differently, so we can't use the default list().
                                                                                                                                                                                                                                                                                                              +def delete + Deletes the specified message from its queue.
                                                                                                                                                                                                                                                                                                              def list_by_ids  If you wish to retrieve a list of messages from this queue and know the IDs of those messages, you can pass in a list of those IDs, and only the matching messages will be returned.
                                                                                                                                                                                                                                                                                                              def delete_by_ids @@ -137,6 +139,42 @@

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              Manager class for a Queue Message.


                                                                                                                                                                                                                                                                                                              Member Function Documentation

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                              def delete ( self,
                                                                                                                                                                                                                                                                                                               msg,
                                                                                                                                                                                                                                                                                                               claim_id = None 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                                                              Deletes the specified message from its queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              @@ -280,7 +318,7 @@ diff --git a/docs/html/functions_0x64.html b/docs/html/functions_0x64.html index b602087d..0ad7e5e4 100644 --- a/docs/html/functions_0x64.html +++ b/docs/html/functions_0x64.html @@ -140,8 +140,10 @@

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              @@ -306,7 +308,7 @@

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                                diff --git a/docs/html/namespacepyrax.html b/docs/html/namespacepyrax.html index 8acce4e5..0bbc6551 100644 --- a/docs/html/namespacepyrax.html +++ b/docs/html/namespacepyrax.html @@ -475,8 +475,18 @@ def pyrax.connect_to_queues (   - region = None) + region = None, + + + + +   + public = True  + + + ) +
                                                                                                                                                                                                                                                                                                              @@ -1211,7 +1221,7 @@ diff --git a/docs/html/namespacepyrax_1_1version.html b/docs/html/namespacepyrax_1_1version.html index dd512dd4..fb56e9da 100644 --- a/docs/html/namespacepyrax_1_1version.html +++ b/docs/html/namespacepyrax_1_1version.html @@ -105,7 +105,7 @@ - +

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              string version = "1.6.1"
                                                                                                                                                                                                                                                                                                              string version = "1.6.2"

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              @@ -113,7 +113,7 @@
                                                                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                                                                              string version = "1.6.1"string version = "1.6.2"
                                                                                                                                                                                                                                                                                                              @@ -139,7 +139,7 @@ diff --git a/docs/html/search/all_64.js b/docs/html/search/all_64.js index 3f1e4fbc..9a429410 100644 --- a/docs/html/search/all_64.js +++ b/docs/html/search/all_64.js @@ -9,7 +9,7 @@ var searchData= ['default_5fencoding',['default_encoding',['../namespacepyrax.html#ab8005f4babffb239fd05dbb8c38551b7',1,'pyrax']]], ['default_5fregion',['default_region',['../namespacepyrax.html#affa3c4afe67ff7c721e823ac8b67fa16',1,'pyrax']]], ['default_5ftimeout',['DEFAULT_TIMEOUT',['../namespacepyrax_1_1clouddns.html#aa66130c897c01393a63de104588aceb7',1,'pyrax::clouddns']]], - ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], + ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1queueing_1_1QueueMessage.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessage.delete()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessageManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], ['delete_5faccess_5flist',['delete_access_list',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list()']]], ['delete_5faccess_5flist_5fitems',['delete_access_list_items',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list_items()']]], ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], diff --git a/docs/html/search/functions_64.js b/docs/html/search/functions_64.js index b7496ed3..cbeb3a79 100644 --- a/docs/html/search/functions_64.js +++ b/docs/html/search/functions_64.js @@ -1,6 +1,6 @@ var searchData= [ - ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], + ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1queueing_1_1QueueMessage.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessage.delete()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessageManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], ['delete_5faccess_5flist',['delete_access_list',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list()']]], ['delete_5faccess_5flist_5fitems',['delete_access_list_items',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list_items()']]], ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], diff --git a/docs/html/version_8py.html b/docs/html/version_8py.html index 6e174ea3..139b7ba9 100644 --- a/docs/html/version_8py.html +++ b/docs/html/version_8py.html @@ -88,7 +88,7 @@ namespace  pyrax::version

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              -string version = "1.6.1" +string version = "1.6.2"
                                                                                                                                                                                                                                                                                                              @@ -108,7 +108,7 @@ From 0ffa2dc7e1df98e8d2be26bffce169339684fa9e Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 13 Nov 2013 15:12:54 -0600 Subject: [PATCH 29/30] Version 1.6.2 - several bugfixes. --- MANIFEST.in | 1 + RELEASENOTES.md | 16 ++++ docs/cloud_blockstorage.md | 1 + docs/cloud_databases.md | 10 +- ...clouddatabases_1_1CloudDatabaseClient.html | 10 +- ...ouddatabases_1_1CloudDatabaseInstance.html | 10 +- .../html/classpyrax_1_1queueing_1_1Queue.html | 15 ++- ...classpyrax_1_1queueing_1_1QueueClient.html | 11 ++- ...x_1_1queueing_1_1QueueMessage-members.html | 5 +- ...lasspyrax_1_1queueing_1_1QueueMessage.html | 40 +++++++- ...eueing_1_1QueueMessageManager-members.html | 5 +- ...ax_1_1queueing_1_1QueueMessageManager.html | 40 +++++++- docs/html/functions_0x64.html | 52 +++++----- docs/html/functions_func_0x64.html | 40 ++++---- docs/html/namespacepyrax.html | 14 ++- docs/html/namespacepyrax_1_1version.html | 6 +- docs/html/search/all_64.js | 2 +- docs/html/search/functions_64.js | 2 +- docs/html/version_8py.html | 4 +- docs/queues.md | 14 +-- pyrax/__init__.py | 14 +-- pyrax/clouddatabases.py | 11 ++- pyrax/clouddns.py | 17 ++-- pyrax/queueing.py | 66 ++++++++++--- pyrax/utils.py | 1 + pyrax/version.py | 2 +- setup.cfg | 3 + tests/unit/.testtimes.json | 1 - tests/unit/fakes.py | 4 +- tests/unit/test_cloud_databases.py | 96 ++++++------------- tests/unit/test_queues.py | 94 ++++++++++++++++-- tests/unit/test_utils.py | 14 ++- tests/unit/testtimes.json | 1 - 33 files changed, 421 insertions(+), 201 deletions(-) delete mode 100644 tests/unit/.testtimes.json delete mode 100644 tests/unit/testtimes.json diff --git a/MANIFEST.in b/MANIFEST.in index 4b76979d..e4945b07 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,3 +2,4 @@ include README.md RELEASENOTES.md recursive-include docs *.md recursive-include samples *.py recursive-include tests *.py +recursive-include tests *.png diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 2aa6a889..06ea6862 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,21 @@ # Release Notes for pyrax +###2013.11.13 - Version 1.6.2 + - Cloud Databases: + - Added missing 'host' parameter. GitHub #246 + - Cloud Queues: + - Removed requirement for Client ID for non-message requests. GitHub #244 + - Added support for ServiceNet queues. GitHub #240 + - Added the `claim_id` parameter to message deletion calls. GitHub #243 + - Fixed a bug when parsing message and claim IDs. + - Made several corrections in the docs. - Cloud DNS: + - Added handling for an occasional empty body when polling a running request. + GitHub #237 + - General: + - Added support for Python Wheel distribution + - Fixed missing file spec in MANIFEST.in + - Removed unneeded files + ###2013.10.31 - Version 1.6.1 - Cloud Databases: - Added support for Backups. GitHub #216 diff --git a/docs/cloud_blockstorage.md b/docs/cloud_blockstorage.md index 1cd6b9f0..d0ab1921 100644 --- a/docs/cloud_blockstorage.md +++ b/docs/cloud_blockstorage.md @@ -55,6 +55,7 @@ Parameter | Description | Required When you create a volume from a snapshot, the new volume is a copy of the volume from which the snapshot was created. The new volume must be the same size as the original volume used to create the snapshot. If you create a new volume from scratch, it is the equivalent of an unformatted disk drive. +There are additional parameters in the response that are not described in the request parameter table above. **`status`** is typically available although it can be creating if the volume is from a snapshot operation. **`availability_zone`** is always "nova". **`bootable`** is currently always False. **`source_volid`** is currently not used by CBS. Here is an example of the call to create a new 500 GB volume that uses SSD for high performance: diff --git a/docs/cloud_databases.md b/docs/cloud_databases.md index 73b96f98..307ecb62 100644 --- a/docs/cloud_databases.md +++ b/docs/cloud_databases.md @@ -91,16 +91,16 @@ Both calls return an object representing the newly-created database: ## Create a User -You can create a user on an instance with its own username/password credentials, with access to one or more databases on that instance. Similar to database creation, you can call `create_user()` either on the instance object, or on the module. To simplify these examples, only the call on the instance is displayed. +You can create a user on an instance with its own username/password credentials, with access to one or more databases on that instance, and optionally restricted to connecting from particular host addresses. Similar to database creation, you can call `create_user()` either on the instance object, or on the module. To simplify these examples, only the call on the instance is displayed. Assuming that you have the references `inst` and `db` from the previous examples, you can create a user like this: - user = inst.create_user(name="groucho", password="top secret", database_names=[db]) + user = inst.create_user(name="groucho", password="top secret", database_names=[db], host="%") print "User:", user This prints out: - User: + User: ## List Databases or Users in an Instance @@ -114,7 +114,7 @@ Instances have a `list_databases()` and a `list_users()` method: which outputs: DBs: [] - Users: [] + Users: [, host="%"] ## Get a `CloudDatabaseDatabase` or `CloudDatabaseUser` Object @@ -128,7 +128,7 @@ You can get a `CloudDatabaseDatabase` or `CloudDatabaseUser` object from an `Clo which outputs: DB: - User: + User: ## Backups diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html index 62ab2680..8b364cae 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseClient.html @@ -342,7 +342,13 @@   - database_names  + database_names, + + + + +   + host = None  @@ -1142,7 +1148,7 @@ diff --git a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html index 95ae35dc..5aff195e 100644 --- a/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html +++ b/docs/html/classpyrax_1_1clouddatabases_1_1CloudDatabaseInstance.html @@ -350,7 +350,13 @@   - database_names  + database_names, + + + + +   + host = None  @@ -918,7 +924,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1Queue.html b/docs/html/classpyrax_1_1queueing_1_1Queue.html index 11851221..8cd75e12 100644 --- a/docs/html/classpyrax_1_1queueing_1_1Queue.html +++ b/docs/html/classpyrax_1_1queueing_1_1Queue.html @@ -127,7 +127,7 @@ def get_message  Returns the message whose ID matches the supplied msg_id from this queue.
                                                                                                                                                                                                                                                                                                              def delete_message - Deletes the message whose ID matches the supplied msg_id from this queue.
                                                                                                                                                                                                                                                                                                              + Deletes the message whose ID matches the supplied msg_id from the specified queue.
                                                                                                                                                                                                                                                                                                              def list  Returns a list of messages for this queue.
                                                                                                                                                                                                                                                                                                              def list_by_ids @@ -291,7 +291,13 @@   - msg_id  + msg_id, + + + + +   + claim_id = None  @@ -302,7 +308,8 @@
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Deletes the message whose ID matches the supplied msg_id from this queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              Deletes the message whose ID matches the supplied msg_id from the specified queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              @@ -659,7 +666,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueClient.html b/docs/html/classpyrax_1_1queueing_1_1QueueClient.html index 101f3424..3b8cf79e 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueClient.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueClient.html @@ -266,7 +266,13 @@   - msg_id  + msg_id, + + + + +   + claim_id = None  @@ -278,6 +284,7 @@

                                                                                                                                                                                                                                                                                                              Deletes the message whose ID matches the supplied msg_id from the specified queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              @@ -841,7 +848,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html index 50c6eef7..837b0f01 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessage-members.html @@ -97,7 +97,8 @@ ageQueueMessage [static] bodyQueueMessage [static] claim_idQueueMessage [static] - deleteBaseResource + deleteQueueMessage + pyrax::resource::BaseResource.deleteBaseResource getBaseResource get_detailsBaseResource [static] hrefQueueMessage [static] @@ -127,7 +128,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html index 8364bad5..ccd4e155 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessage.html @@ -100,6 +100,7 @@
                                                                                                                                                                                                                                                                                                              QueueMessage Class Reference
                                                                                                                                                                                                                                                                                                              @@ -120,6 +121,10 @@

                                                                                                                                                                                                                                                                                                              List of all members.

                                                                                                                                                                                                                                                                                                              + + + @@ -131,7 +136,38 @@

                                                                                                                                                                                                                                                                                                              +Public Member Functions

                                                                                                                                                                                                                                                                                                              def delete
                                                                                                                                                                                                                                                                                                               Deletes this message from its queue.

                                                                                                                                                                                                                                                                                                              Static Public Attributes

                                                                                                                                                                                                                                                                                                               id = None

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              This class represents a Message posted to a Queue.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              Member Function Documentation

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                              def delete ( self,
                                                                                                                                                                                                                                                                                                               claim_id = None 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                                                              Deletes this message from its queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              @@ -233,7 +269,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html index ba1d26b0..656f96b7 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager-members.html @@ -95,7 +95,8 @@ add_hookBaseManager apiBaseManager createBaseManager - deleteBaseManager + deleteQueueMessageManager + pyrax::queueing::BaseQueueManager.deleteBaseManager delete_by_idsQueueMessageManager findBaseManager findallBaseManager @@ -127,7 +128,7 @@ diff --git a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html index aa9aa70a..665d203a 100644 --- a/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html +++ b/docs/html/classpyrax_1_1queueing_1_1QueueMessageManager.html @@ -126,6 +126,8 @@ Public Member Functions def list  Need to form the URI differently, so we can't use the default list().
                                                                                                                                                                                                                                                                                                              +def delete + Deletes the specified message from its queue.
                                                                                                                                                                                                                                                                                                              def list_by_ids  If you wish to retrieve a list of messages from this queue and know the IDs of those messages, you can pass in a list of those IDs, and only the matching messages will be returned.
                                                                                                                                                                                                                                                                                                              def delete_by_ids @@ -137,6 +139,42 @@

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              Manager class for a Queue Message.


                                                                                                                                                                                                                                                                                                              Member Function Documentation

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                              def delete ( self,
                                                                                                                                                                                                                                                                                                               msg,
                                                                                                                                                                                                                                                                                                               claim_id = None 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                                                              Deletes the specified message from its queue.

                                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                                              If the message has been claimed, the ID of that claim must be passed as the 'claim_id' parameter.

                                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                              @@ -280,7 +318,7 @@ diff --git a/docs/html/functions_0x64.html b/docs/html/functions_0x64.html index b602087d..0ad7e5e4 100644 --- a/docs/html/functions_0x64.html +++ b/docs/html/functions_0x64.html @@ -140,8 +140,10 @@

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              @@ -306,7 +308,7 @@

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                                diff --git a/docs/html/namespacepyrax.html b/docs/html/namespacepyrax.html index 8acce4e5..0bbc6551 100644 --- a/docs/html/namespacepyrax.html +++ b/docs/html/namespacepyrax.html @@ -475,8 +475,18 @@ def pyrax.connect_to_queues (   - region = None) + region = None, + + + + +   + public = True  + + + ) +
                                                                                                                                                                                                                                                                                                              @@ -1211,7 +1221,7 @@ diff --git a/docs/html/namespacepyrax_1_1version.html b/docs/html/namespacepyrax_1_1version.html index dd512dd4..fb56e9da 100644 --- a/docs/html/namespacepyrax_1_1version.html +++ b/docs/html/namespacepyrax_1_1version.html @@ -105,7 +105,7 @@ - +

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              string version = "1.6.1"
                                                                                                                                                                                                                                                                                                              string version = "1.6.2"

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              @@ -113,7 +113,7 @@
                                                                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                                                                              string version = "1.6.1"string version = "1.6.2"
                                                                                                                                                                                                                                                                                                              @@ -139,7 +139,7 @@ diff --git a/docs/html/search/all_64.js b/docs/html/search/all_64.js index 3f1e4fbc..9a429410 100644 --- a/docs/html/search/all_64.js +++ b/docs/html/search/all_64.js @@ -9,7 +9,7 @@ var searchData= ['default_5fencoding',['default_encoding',['../namespacepyrax.html#ab8005f4babffb239fd05dbb8c38551b7',1,'pyrax']]], ['default_5fregion',['default_region',['../namespacepyrax.html#affa3c4afe67ff7c721e823ac8b67fa16',1,'pyrax']]], ['default_5ftimeout',['DEFAULT_TIMEOUT',['../namespacepyrax_1_1clouddns.html#aa66130c897c01393a63de104588aceb7',1,'pyrax::clouddns']]], - ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], + ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1queueing_1_1QueueMessage.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessage.delete()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessageManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], ['delete_5faccess_5flist',['delete_access_list',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list()']]], ['delete_5faccess_5flist_5fitems',['delete_access_list_items',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list_items()']]], ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], diff --git a/docs/html/search/functions_64.js b/docs/html/search/functions_64.js index b7496ed3..cbeb3a79 100644 --- a/docs/html/search/functions_64.js +++ b/docs/html/search/functions_64.js @@ -1,6 +1,6 @@ var searchData= [ - ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], + ['delete',['delete',['../classpyrax_1_1autoscale_1_1AutoScalePolicy.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScalePolicy.delete()'],['../classpyrax_1_1autoscale_1_1AutoScaleWebhook.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::autoscale::AutoScaleWebhook.delete()'],['../classpyrax_1_1cf__wrapper_1_1container_1_1Container.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::container::Container.delete()'],['../classpyrax_1_1cf__wrapper_1_1storage__object_1_1StorageObject.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cf_wrapper::storage_object::StorageObject.delete()'],['../classpyrax_1_1client_1_1BaseClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::client::BaseClient.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageSnapshot.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageSnapshot.delete()'],['../classpyrax_1_1cloudblockstorage_1_1CloudBlockStorageVolume.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudblockstorage::CloudBlockStorageVolume.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseDatabase.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseDatabase.delete()'],['../classpyrax_1_1clouddatabases_1_1CloudDatabaseUser.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddatabases::CloudDatabaseUser.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSDomain.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSDomain.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSPTRRecord.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSPTRRecord.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSManager.delete()'],['../classpyrax_1_1clouddns_1_1CloudDNSClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::clouddns::CloudDNSClient.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1Node.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::Node.delete()'],['../classpyrax_1_1cloudloadbalancers_1_1VirtualIP.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudloadbalancers::VirtualIP.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorCheck.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorCheck.delete()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetwork.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetwork.delete()'],['../classpyrax_1_1cloudnetworks_1_1CloudNetworkClient.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::cloudnetworks::CloudNetworkClient.delete()'],['../classpyrax_1_1manager_1_1BaseManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::manager::BaseManager.delete()'],['../classpyrax_1_1queueing_1_1QueueMessage.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessage.delete()'],['../classpyrax_1_1queueing_1_1QueueMessageManager.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::queueing::QueueMessageManager.delete()'],['../classpyrax_1_1resource_1_1BaseResource.html#ab48bde70a0927a83d62464cb0627c34b',1,'pyrax::resource::BaseResource.delete()']]], ['delete_5faccess_5flist',['delete_access_list',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a9435aa1b466627d94f4ab7065a91e4f8',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list()']]], ['delete_5faccess_5flist_5fitems',['delete_access_list_items',['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancer.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancer.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerManager.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerManager.delete_access_list_items()'],['../classpyrax_1_1cloudloadbalancers_1_1CloudLoadBalancerClient.html#a2fd3c0d8eb07bd4f48fdad4c134e1aae',1,'pyrax::cloudloadbalancers::CloudLoadBalancerClient.delete_access_list_items()']]], ['delete_5falarm',['delete_alarm',['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntity.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntity.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorEntityManager.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorEntityManager.delete_alarm()'],['../classpyrax_1_1cloudmonitoring_1_1CloudMonitorClient.html#aa6f9a8547a22941467c661e1c3b83178',1,'pyrax::cloudmonitoring::CloudMonitorClient.delete_alarm()']]], diff --git a/docs/html/version_8py.html b/docs/html/version_8py.html index 6e174ea3..139b7ba9 100644 --- a/docs/html/version_8py.html +++ b/docs/html/version_8py.html @@ -88,7 +88,7 @@ namespace  pyrax::version

                                                                                                                                                                                                                                                                                                              Variables

                                                                                                                                                                                                                                                                                                              -string version = "1.6.1" +string version = "1.6.2"
                                                                                                                                                                                                                                                                                                              @@ -108,7 +108,7 @@ diff --git a/docs/queues.md b/docs/queues.md index 72b1689a..6c490181 100644 --- a/docs/queues.md +++ b/docs/queues.md @@ -85,9 +85,11 @@ Parameter | Default | Effect ## Claiming Messages in a Queue Claiming messages is how workers processing a queue mark messages as being handled by that worker, avoiding having two workers process the same message. -To claim messages you need the queue name or a `Queue` object reference. If you have a `Queue` object, you can call its `claim()` method directly. When claiming messages you must not only specify the queue, but also give a TTL and a Grace Period. You many also specify a limit to the number of messages to claim. The call is: +To claim messages you need the queue name or a `Queue` object reference. If you have a `Queue` object, you can call its `claim_messages()` method directly. When claiming messages you must not only specify the queue, but also give a TTL and a Grace Period. You may also specify a limit to the number of messages to claim. The call is: - pq.claim_messages(queue, ttl, grace_period[, limit]) + queue_claim = pq.claim_messages(queue, ttl, grace[, count]) + + queue_claim = queue.claim_messages(ttl, grace[, count]) An explanation of the parameters of this call follows: @@ -95,8 +97,8 @@ Parameter | Default | Notes ---- | ---- | ---- **queue** | | Either the name of the queue to claim messages from, or the corresponding `Queue` object. **ttl** | | The ttl attribute specifies how long the server waits before releasing the claim. The ttl value must be between 60 and 43200 seconds (12 hours). -**grace_period** | | The grace_period attribute specifies the message grace period in seconds. The value of the grace period must be between 60 and 43200 seconds (12 hours). To deal with workers that have stopped responding (for up to 1209600 seconds or 14 days, including claim lifetime), the server extends the lifetime of claimed messages to be at least as long as the lifetime of the claim itself, plus the specified grace period. If a claimed message would normally live longer than the grace period, its expiration is not adjusted. -**limit** | 10 | The number of messages to claim. The maximum number of messages you may claim at once is 20. +**grace** | | The grace attribute specifies the message grace period in seconds. The value of the grace period must be between 60 and 43200 seconds (12 hours). To deal with workers that have stopped responding (for up to 1209600 seconds or 14 days, including claim lifetime), the server extends the lifetime of claimed messages to be at least as long as the lifetime of the claim itself, plus the specified grace period. If a claimed message would normally live longer than the grace period, its expiration is not adjusted. +**count** | 10 | The number of messages to claim. The maximum number of messages you may claim at once is 20. If there are no messages to claim, the method returns `None`. When you create a successful claim, a `QueueClaim` object is returned that has a `messages` attribute. This is a list of `QueueMessage` objects representing the claimed messages. You can iterate through this list to process the messages, and once the message has been processed, call its `delete()` method to remove it from the queue to ensure that it is not processed more than once. @@ -104,9 +106,9 @@ If there are no messages to claim, the method returns `None`. When you create a ## Renewing a Claim Once a claim has been made, if the TTL and grace period expire, the claim is automatically released and the messages are made available for others to claim. If you have a long-running process and want to ensure that this does not happen in the middle of the process, you should update the claim with one or both of a TTL or grace period. Updating resets the age of the claim, restarting the TTL for the claim. To update a claim, call: - pq.update_claim(queue, claim[, ttl=None][, grace_period=None]) + pq.update_claim(queue, claim[, ttl=None][, grace=None]) # or - queue.update_claim(claim[, ttl=None][, grace_period=None]) + queue.update_claim(claim[, ttl=None][, grace=None]) ## Refreshing a Claim diff --git a/pyrax/__init__.py b/pyrax/__init__.py index 2c493ffc..9bdcf17f 100755 --- a/pyrax/__init__.py +++ b/pyrax/__init__.py @@ -674,9 +674,9 @@ def connect_to_cloudfiles(region=None, public=True): @_require_auth -def _create_client(ep_name, service_type, region): +def _create_client(ep_name, service_type, region, public=True): region = _safe_region(region) - ep = _get_service_endpoint(ep_name.split(":")[0], region) + ep = _get_service_endpoint(ep_name.split(":")[0], region, public=public) if not ep: return verify_ssl = get_setting("verify_ssl") @@ -724,14 +724,14 @@ def connect_to_cloud_monitoring(region=None): def connect_to_autoscale(region=None): """Creates a client for working with AutoScale.""" - return _create_client(ep_name="autoscale", - service_type="autoscale", region=region) + return _create_client(ep_name="autoscale", service_type="autoscale", + region=region) -def connect_to_queues(region=None): +def connect_to_queues(region=None, public=True): """Creates a client for working with Queues.""" - return _create_client(ep_name="queues", - service_type="queues", region=region) + return _create_client(ep_name="queues", service_type="queues", + region=region, public=public) def get_http_debug(): diff --git a/pyrax/clouddatabases.py b/pyrax/clouddatabases.py index 4533f832..5771dac7 100644 --- a/pyrax/clouddatabases.py +++ b/pyrax/clouddatabases.py @@ -185,8 +185,9 @@ def _create_body(self, name, password, databases=None, database_names=None, {"name": name, "password": password, "databases": db_dicts, - "host": host, }]} + if host: + body["users"][0]["host"] = host return body @@ -406,7 +407,7 @@ def create_database(self, name, character_set=None, collate=None): return self._database_manager.find(name=name) - def create_user(self, name, password, database_names): + def create_user(self, name, password, database_names, host=None): """ Creates a user with the specified name and password, and gives that user access to the specified database(s). @@ -420,7 +421,7 @@ def create_user(self, name, password, database_names): database_names = [db if isinstance(db, basestring) else db.name for db in database_names] self._user_manager.create(name=name, password=password, - database_names=database_names, return_none=True) + database_names=database_names, host=host, return_none=True) # Since the API doesn't return the info for creating the user object, # we have to do it manually. return self._user_manager.find(name=name) @@ -715,13 +716,13 @@ def list_users(self, instance, limit=None, marker=None): @assure_instance - def create_user(self, instance, name, password, database_names): + def create_user(self, instance, name, password, database_names, host=None): """ Creates a user with the specified name and password, and gives that user access to the specified database(s). """ return instance.create_user(name=name, password=password, - database_names=database_names) + database_names=database_names, host=host) @assure_instance diff --git a/pyrax/clouddns.py b/pyrax/clouddns.py index 53febde2..d426ad18 100644 --- a/pyrax/clouddns.py +++ b/pyrax/clouddns.py @@ -454,16 +454,19 @@ def _async_call(self, uri, body=None, method="GET", error_class=None, start = time.time() timed_out = False while (resp_body["status"] == "RUNNING") and not timed_out: - resp, resp_body = self.api.method_get(massagedURL) - if self._timeout: - timed_out = ((time.time() - start) > self._timeout) - time.sleep(self._delay) - if error_class and (resp_body["status"] == "ERROR"): - # This call will handle raising the error. - self._process_async_error(resp_body, error_class) + resp_body = None + while resp_body is None and not timed_out: + resp, resp_body = self.api.method_get(massagedURL) + if self._timeout: + timed_out = ((time.time() - start) > self._timeout) + time.sleep(self._delay) + if timed_out: raise exc.DNSCallTimedOut("The API call to '%s' did not complete " "after %s seconds." % (uri, self._timeout)) + if error_class and (resp_body["status"] == "ERROR"): + # This call will handle raising the error. + self._process_async_error(resp_body, error_class) if has_response: ret = resp, resp_body["response"] else: diff --git a/pyrax/queueing.py b/pyrax/queueing.py index b8d49aed..9a17e9ba 100644 --- a/pyrax/queueing.py +++ b/pyrax/queueing.py @@ -107,12 +107,13 @@ def get_message(self, msg_id): return self._message_manager.get(msg_id) - def delete_message(self, msg_id): + def delete_message(self, msg_id, claim_id=None): """ - Deletes the message whose ID matches the supplied msg_id from this - queue. + Deletes the message whose ID matches the supplied msg_id from the + specified queue. If the message has been claimed, the ID of that claim + must be passed as the 'claim_id' parameter. """ - return self._message_manager.delete(msg_id) + return self._message_manager.delete(msg_id, claim_id=claim_id) def list(self, include_claimed=False, echo=False, marker=None, limit=None): @@ -245,12 +246,20 @@ def _add_details(self, info): if self.href is None: return parsed = urlparse.urlparse(self.href) - self.id = parsed.path.lstrip("/") + self.id = parsed.path.rsplit("/", 1)[-1] query = parsed.query if query: self.claim_id = query.split("claim_id=")[-1] + def delete(self, claim_id=None): + """ + Deletes this message from its queue. If the message has been claimed, + the ID of that claim must be passed as the 'claim_id' parameter. + """ + return self.manager.delete(self, claim_id=claim_id) + + class QueueClaim(BaseResource): """ @@ -269,7 +278,7 @@ def _add_details(self, info): msg_dicts = info.pop("messages", []) super(QueueClaim, self)._add_details(info) parsed = urlparse.urlparse(self.href) - self.id = parsed.path.lstrip("/") + self.id = parsed.path.rsplit("/", 1)[-1] self.messages = [QueueMessage(self.manager._message_manager, item) for item in msg_dicts] @@ -330,6 +339,20 @@ def _iterate_list(self, include_claimed, echo, marker, limit): return ret + def delete(self, msg, claim_id=None): + """ + Deletes the specified message from its queue. If the message has been + claimed, the ID of that claim must be passed as the 'claim_id' + parameter. + """ + msg_id = utils.get_id(msg) + if claim_id: + uri = "/%s/%s?claim_id=%s" % (self.uri_base, msg_id, claim_id) + else: + uri = "/%s/%s" % (self.uri_base, msg_id) + return self._delete(uri) + + def list_by_ids(self, ids): """ If you wish to retrieve a list of messages from this queue and know the @@ -496,6 +519,7 @@ class QueueClient(BaseClient): name = "Cloud Queues" client_id = None + def _configure_manager(self): """ Create the manager to handle queues. @@ -511,10 +535,25 @@ def _add_custom_headers(self, dct): """ if self.client_id is None: self.client_id = os.environ.get("CLOUD_QUEUES_ID") - if not self.client_id: - raise exc.QueueClientIDNotDefined("You must supply a client ID to " - "work with Queues.") - dct["Client-ID"] = self.client_id + if self.client_id: + dct["Client-ID"] = self.client_id + + + def _api_request(self, uri, method, **kwargs): + """ + Any request that involves messages must define the client ID. This + handles all failures due to lack of client ID and raises the + appropriate exception. + """ + try: + return super(QueueClient, self)._api_request(uri, method, **kwargs) + except exc.BadRequest as e: + if ((e.code == "400") and + (e.message == 'The "Client-ID" header is required.')): + raise exc.QueueClientIDNotDefined("You must supply a client ID " + "to work with Queue messages.") + else: + raise def get_home_document(self): @@ -600,12 +639,13 @@ def get_message(self, queue, msg_id): @assure_queue - def delete_message(self, queue, msg_id): + def delete_message(self, queue, msg_id, claim_id=None): """ Deletes the message whose ID matches the supplied msg_id from the - specified queue. + specified queue. If the message has been claimed, the ID of that claim + must be passed as the 'claim_id' parameter. """ - return queue.delete_message(msg_id) + return queue.delete_message(msg_id, claim_id=claim_id) @assure_queue diff --git a/pyrax/utils.py b/pyrax/utils.py index 2307f846..b411400d 100644 --- a/pyrax/utils.py +++ b/pyrax/utils.py @@ -24,6 +24,7 @@ import pdb as pudb trace = pudb.set_trace +import pyrax import pyrax.exceptions as exc diff --git a/pyrax/version.py b/pyrax/version.py index 5fde3200..b5a15397 100644 --- a/pyrax/version.py +++ b/pyrax/version.py @@ -1,4 +1,4 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -version = "1.6.1" +version = "1.6.2" diff --git a/setup.cfg b/setup.cfg index 2dca2f87..8fd2ec59 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,5 @@ [install] optimize = 1 + +[wheel] +universal = 1 diff --git a/tests/unit/.testtimes.json b/tests/unit/.testtimes.json deleted file mode 100644 index 91b55e1c..00000000 --- a/tests/unit/.testtimes.json +++ /dev/null @@ -1 +0,0 @@ -[[9.298324584960938e-05, "test_add_method"], [9.679794311523438e-05, "test_add_method_no_name"], [3.1948089599609375e-05, "test_env"], [3.0994415283203125e-05, "test_folder_size_bad_folder"], [0.002016782760620117, "test_folder_size_ignore_list"], [0.0019488334655761719, "test_folder_size_ignore_string"], [0.001611948013305664, "test_folder_size_no_ignore"], [8.416175842285156e-05, "test_get_checksum_from_binary"], [0.0013799667358398438, "test_get_checksum_from_file"], [4.887580871582031e-05, "test_get_checksum_from_string"], [5.221366882324219e-05, "test_get_checksum_from_unicode"], [0.04255390167236328, "test_get_checksum_from_unicode_alt_encoding"], [0.00015091896057128906, "test_get_id"], [0.00015282630920410156, "test_get_name"], [1.0967254638671875e-05, "test_import_class"], [1.0013580322265625e-05, "test_isunauthenticated"], [2.384185791015625e-05, "test_match_pattern"], [0.0006420612335205078, "test_random_unicode"], [0.03811287879943848, "test_runproc"], [0.00020503997802734375, "test_safe_issubclass_bad"], [2.5987625122070312e-05, "test_safe_issubclass_good"], [0.00030612945556640625, "test_self_deleting_temp_directory"], [0.00022602081298828125, "test_self_deleting_temp_file"], [0.0005660057067871094, "test_slugify"], [0.0001571178436279297, "test_time_string_date"], [0.020350933074951172, "test_time_string_date_obj"], [0.0023310184478759766, "test_time_string_datetime"], [7.104873657226562e-05, "test_time_string_datetime_add_tz"], [7.605552673339844e-05, "test_time_string_datetime_hide_tz"], [4.601478576660156e-05, "test_time_string_datetime_show_tz"], [6.9141387939453125e-06, "test_time_string_empty"], [6.198883056640625e-05, "test_time_string_invalid"], [1.1920928955078125e-05, "test_unauthenticated"], [0.00025010108947753906, "test_update_exc"], [0.0011680126190185547, "test_wait_for_build"], [0.0005540847778320312, "test_wait_until"], [0.001271963119506836, "test_wait_until_callback"], [0.0004899501800537109, "test_wait_until_fail"], [9.799003601074219e-05, "test_add_method"], [0.00016379356384277344, "test_add_method_no_name"], [3.2901763916015625e-05, "test_env"], [2.6941299438476562e-05, "test_folder_size_bad_folder"], [0.0018258094787597656, "test_folder_size_ignore_list"], [0.0017931461334228516, "test_folder_size_ignore_string"], [0.0016651153564453125, "test_folder_size_no_ignore"], [8.296966552734375e-05, "test_get_checksum_from_binary"], [0.0014481544494628906, "test_get_checksum_from_file"], [4.7206878662109375e-05, "test_get_checksum_from_string"], [5.1021575927734375e-05, "test_get_checksum_from_unicode"], [0.003670215606689453, "test_get_checksum_from_unicode_alt_encoding"], [0.00013899803161621094, "test_get_id"], [0.0001499652862548828, "test_get_name"], [2.4080276489257812e-05, "test_import_class"], [2.2172927856445312e-05, "test_isunauthenticated"], [3.600120544433594e-05, "test_match_pattern"], [0.0009670257568359375, "test_random_unicode"], [0.004940986633300781, "test_runproc"], [0.00019693374633789062, "test_safe_issubclass_bad"], [2.7894973754882812e-05, "test_safe_issubclass_good"], [0.000370025634765625, "test_self_deleting_temp_directory"], [0.0002391338348388672, "test_self_deleting_temp_file"], [0.0009739398956298828, "test_slugify"], [0.0001659393310546875, "test_time_string_date"], [2.6941299438476562e-05, "test_time_string_date_obj"], [0.0016129016876220703, "test_time_string_datetime"], [6.198883056640625e-05, "test_time_string_datetime_add_tz"], [6.794929504394531e-05, "test_time_string_datetime_hide_tz"], [5.698204040527344e-05, "test_time_string_datetime_show_tz"], [4.0531158447265625e-06, "test_time_string_empty"], [3.910064697265625e-05, "test_time_string_invalid"], [1.1920928955078125e-05, "test_unauthenticated"], [0.0002570152282714844, "test_update_exc"], [0.0015079975128173828, "test_wait_for_build"], [0.0004608631134033203, "test_wait_until"], [0.0015289783477783203, "test_wait_until_callback"], [0.0003800392150878906, "test_wait_until_fail"], [9.608268737792969e-05, "test_add_method"], [0.00010800361633300781, "test_add_method_no_name"], [3.695487976074219e-05, "test_env"], [3.910064697265625e-05, "test_folder_size_bad_folder"], [0.0018758773803710938, "test_folder_size_ignore_list"], [0.0017428398132324219, "test_folder_size_ignore_string"], [0.0016450881958007812, "test_folder_size_no_ignore"], [8.20159912109375e-05, "test_get_checksum_from_binary"], [0.001425027847290039, "test_get_checksum_from_file"], [3.886222839355469e-05, "test_get_checksum_from_string"], [5.602836608886719e-05, "test_get_checksum_from_unicode"], [0.0014820098876953125, "test_get_checksum_from_unicode_alt_encoding"], [0.00015997886657714844, "test_get_id"], [0.0001461505889892578, "test_get_name"], [1.1920928955078125e-05, "test_import_class"], [1.0013580322265625e-05, "test_isunauthenticated"], [2.7179718017578125e-05, "test_match_pattern"], [0.0017287731170654297, "test_random_unicode"], [0.005548954010009766, "test_runproc"], [0.00020194053649902344, "test_safe_issubclass_bad"], [1.7881393432617188e-05, "test_safe_issubclass_good"], [0.00028514862060546875, "test_self_deleting_temp_directory"], [0.0002639293670654297, "test_self_deleting_temp_file"], [0.00020599365234375, "test_slugify"], [0.00015807151794433594, "test_time_string_date"], [2.8133392333984375e-05, "test_time_string_date_obj"], [0.0015549659729003906, "test_time_string_datetime"], [5.602836608886719e-05, "test_time_string_datetime_add_tz"], [7.295608520507812e-05, "test_time_string_datetime_hide_tz"], [5.1021575927734375e-05, "test_time_string_datetime_show_tz"], [1.0967254638671875e-05, "test_time_string_empty"], [5.316734313964844e-05, "test_time_string_invalid"], [1.2874603271484375e-05, "test_unauthenticated"], [0.00024819374084472656, "test_update_exc"], [0.0012221336364746094, "test_wait_for_build"], [0.0005648136138916016, "test_wait_until"], [0.0013408660888671875, "test_wait_until_callback"], [0.00036406517028808594, "test_wait_until_fail"]] \ No newline at end of file diff --git a/tests/unit/fakes.py b/tests/unit/fakes.py index caa72682..0ad3b4a9 100644 --- a/tests/unit/fakes.py +++ b/tests/unit/fakes.py @@ -776,6 +776,6 @@ def read(self): _module_pth = os.path.dirname(pyrax.__file__) _img_path = os.path.join(_module_pth, "..", "tests", "unit", "python-logo.png") -png_file = None +png_content = None with open(_img_path, "rb") as pfile: - png_file = pfile.read() + png_content = pfile.read() diff --git a/tests/unit/test_cloud_databases.py b/tests/unit/test_cloud_databases.py index d805be48..a19f8b00 100644 --- a/tests/unit/test_cloud_databases.py +++ b/tests/unit/test_cloud_databases.py @@ -55,31 +55,28 @@ def test_instantiate_instance(self): inst = CloudDatabaseInstance(fakes.FakeManager(), {"id": 42, "volume": {"size": 1, "used": 0.2}}) self.assertTrue(isinstance(inst, CloudDatabaseInstance)) + self.assertTrue(isinstance(inst.volume, CloudDatabaseVolume)) def test_list_databases(self): inst = self.instance - sav = inst._database_manager.list inst._database_manager.list = Mock() limit = utils.random_unicode() marker = utils.random_unicode() inst.list_databases(limit=limit, marker=marker) inst._database_manager.list.assert_called_once_with(limit=limit, marker=marker) - inst._database_manager.list = sav def test_list_users(self): inst = self.instance - sav = inst._user_manager.list inst._user_manager.list = Mock() limit = utils.random_unicode() marker = utils.random_unicode() inst.list_users(limit=limit, marker=marker) - inst._user_manager.list.assert_called_once_with(limit=limit, marker=marker) - inst._user_manager.list = sav + inst._user_manager.list.assert_called_once_with(limit=limit, + marker=marker) def test_get_database(self): inst = self.instance - sav = inst.list_databases db1 = fakes.FakeEntity() db1.name = "a" db2 = fakes.FakeEntity() @@ -87,18 +84,15 @@ def test_get_database(self): inst.list_databases = Mock(return_value=[db1, db2]) ret = inst.get_database("a") self.assertEqual(ret, db1) - inst.list_databases = sav def test_get_database_bad(self): inst = self.instance - sav = inst.list_databases db1 = fakes.FakeEntity() db1.name = "a" db2 = fakes.FakeEntity() db2.name = "b" inst.list_databases = Mock(return_value=[db1, db2]) self.assertRaises(exc.NoSuchDatabase, inst.get_database, "z") - inst.list_databases = sav def test_dbmgr_get(self): mgr = fakes.FakeDatabaseManager() @@ -159,42 +153,38 @@ def test_mgr_list_backups_for_instance(self): def test_create_database(self): inst = self.instance - sav = inst._database_manager.create inst._database_manager.create = Mock() inst._database_manager.find = Mock() db = inst.create_database(name="test") inst._database_manager.create.assert_called_once_with(name="test", character_set="utf8", collate="utf8_general_ci", return_none=True) - inst._database_manager.create = sav def test_create_user(self): inst = self.instance - sav = inst._user_manager.create inst._user_manager.create = Mock() inst._user_manager.find = Mock() - inst.create_user(name="test", password="testpw", - database_names="testdb") - inst._user_manager.create.assert_called_once_with(name="test", - password="testpw", - database_names=["testdb"], return_none=True) - inst._user_manager.create = sav + name = utils.random_unicode() + password = utils.random_unicode() + database_names = utils.random_unicode() + host = utils.random_unicode() + inst.create_user(name=name, password=password, + database_names=database_names, host=host) + inst._user_manager.create.assert_called_once_with(name=name, + password=password, database_names=[database_names], host=host, + return_none=True) def test_delete_database(self): inst = self.instance - sav = inst._database_manager.delete inst._database_manager.delete = Mock() inst.delete_database("dbname") inst._database_manager.delete.assert_called_once_with("dbname") - inst._database_manager.delete = sav def test_delete_user(self): inst = self.instance - sav = inst._user_manager.delete inst._user_manager.delete = Mock() inst.delete_user("username") inst._user_manager.delete.assert_called_once_with("username") - inst._user_manager.delete = sav def test_delete_database_direct(self): inst = self.instance @@ -324,27 +314,23 @@ def test_set_flavor_property_instance(self): def test_list_databases_for_instance(self): clt = self.client inst = self.instance - sav = inst.list_databases limit = utils.random_unicode() marker = utils.random_unicode() inst.list_databases = Mock(return_value=["db"]) ret = clt.list_databases(inst, limit=limit, marker=marker) self.assertEqual(ret, ["db"]) inst.list_databases.assert_called_once_with(limit=limit, marker=marker) - inst.list_databases = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_create_database_for_instance(self): clt = self.client inst = self.instance - sav = inst.create_database inst.create_database = Mock(return_value=["db"]) nm = utils.random_unicode() ret = clt.create_database(inst, nm) self.assertEqual(ret, ["db"]) inst.create_database.assert_called_once_with(nm, character_set=None, collate=None) - inst.create_database = sav def test_clt_get_database(self): clt = self.client @@ -358,79 +344,66 @@ def test_clt_get_database(self): def test_delete_database_for_instance(self): clt = self.client inst = self.instance - sav = inst.delete_database inst.delete_database = Mock() nm = utils.random_unicode() clt.delete_database(inst, nm) inst.delete_database.assert_called_once_with(nm) - inst.delete_database = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_list_users_for_instance(self): clt = self.client inst = self.instance - sav = inst.list_users limit = utils.random_unicode() marker = utils.random_unicode() inst.list_users = Mock(return_value=["user"]) ret = clt.list_users(inst, limit=limit, marker=marker) self.assertEqual(ret, ["user"]) inst.list_users.assert_called_once_with(limit=limit, marker=marker) - inst.list_users = sav def test_create_user_for_instance(self): clt = self.client inst = self.instance - sav = inst.create_user inst.create_user = Mock() nm = utils.random_unicode() pw = utils.random_unicode() - ret = clt.create_user(inst, nm, pw, ["db"]) + host = utils.random_unicode() + ret = clt.create_user(inst, nm, pw, ["db"], host=host) inst.create_user.assert_called_once_with(name=nm, password=pw, - database_names=["db"]) - inst.create_user = sav + database_names=["db"], host=host) @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_delete_user_for_instance(self): clt = self.client inst = self.instance - sav = inst.delete_user inst.delete_user = Mock() nm = utils.random_unicode() clt.delete_user(inst, nm) inst.delete_user.assert_called_once_with(nm) - inst.delete_user = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_enable_root_user_for_instance(self): clt = self.client inst = self.instance - sav = inst.enable_root_user inst.enable_root_user = Mock() clt.enable_root_user(inst) inst.enable_root_user.assert_called_once_with() - inst.enable_root_user = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_root_user_status_for_instance(self): clt = self.client inst = self.instance - sav = inst.root_user_status inst.root_user_status = Mock() clt.root_user_status(inst) inst.root_user_status.assert_called_once_with() - inst.root_user_status = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_user_by_client(self): clt = self.client inst = self.instance - sav = inst.get_user inst.get_user = Mock() fakeuser = utils.random_unicode() clt.get_user(inst, fakeuser) inst.get_user.assert_called_once_with(fakeuser) - inst.get_user = sav def test_get_user(self): inst = self.instance @@ -452,11 +425,9 @@ def test_get_db_names(self): mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() - sav = inst.list_databases inst.list_databases = Mock(return_value=((dbname1, dbname2))) resp = mgr._get_db_names(dbname1) self.assertEqual(resp, [dbname1]) - inst.list_databases = sav def test_get_db_names_not_strict(self): inst = self.instance @@ -464,11 +435,9 @@ def test_get_db_names_not_strict(self): mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() - sav = inst.list_databases inst.list_databases = Mock(return_value=((dbname1, dbname2))) resp = mgr._get_db_names("BAD", strict=False) self.assertEqual(resp, ["BAD"]) - inst.list_databases = sav def test_get_db_names_fail(self): inst = self.instance @@ -476,10 +445,8 @@ def test_get_db_names_fail(self): mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() - sav = inst.list_databases inst.list_databases = Mock(return_value=((dbname1, dbname2))) self.assertRaises(exc.NoSuchDatabase, mgr._get_db_names, "BAD") - inst.list_databases = sav def test_change_user_password(self): inst = self.instance @@ -721,16 +688,13 @@ def test_clt_restart(self): clt.restart(inst) inst.restart.assert_called_once_with() - @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_inst_resize(self): clt = self.client inst = self.instance - sav = inst.resize inst.resize = Mock() clt.resize(inst, "flavor") inst.resize.assert_called_once_with("flavor") - inst.resize = sav def test_get_limits(self): self.assertRaises(NotImplementedError, self.client.get_limits) @@ -775,11 +739,9 @@ def test_get_flavor_ref_for_id(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav = clt.get_flavor clt.get_flavor = Mock(return_value=flavor_obj) ret = clt._get_flavor_ref(1) self.assertEqual(ret, example_uri) - clt.get_flavor = sav @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_flavor_ref_for_name(self): @@ -791,14 +753,10 @@ def test_get_flavor_ref_for_name(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav_get = clt.get_flavor - sav_list = clt.list_flavors clt.get_flavor = Mock(side_effect=exc.NotFound("")) clt.list_flavors = Mock(return_value=[flavor_obj]) ret = clt._get_flavor_ref("test_flavor") self.assertEqual(ret, example_uri) - clt.get_flavor = sav_get - clt.list_flavors = sav_list @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_flavor_ref_for_ram(self): @@ -810,14 +768,10 @@ def test_get_flavor_ref_for_ram(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav_get = clt.get_flavor - sav_list = clt.list_flavors clt.get_flavor = Mock(side_effect=exc.NotFound("")) clt.list_flavors = Mock(return_value=[flavor_obj]) ret = clt._get_flavor_ref(42) self.assertEqual(ret, example_uri) - clt.get_flavor = sav_get - clt.list_flavors = sav_list @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_get_flavor_ref_not_found(self): @@ -829,13 +783,9 @@ def test_get_flavor_ref_not_found(self): "href": example_uri, "rel": "self"}]} flavor_obj = CloudDatabaseFlavor(clt._manager, info) - sav_get = clt.get_flavor - sav_list = clt.list_flavors clt.get_flavor = Mock(side_effect=exc.NotFound("")) clt.list_flavors = Mock(return_value=[flavor_obj]) self.assertRaises(exc.FlavorNotFound, clt._get_flavor_ref, "nonsense") - clt.get_flavor = sav_get - clt.list_flavors = sav_list def test_clt_list_backups(self): clt = self.client @@ -902,6 +852,20 @@ def test_create_body_db(self): @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) def test_create_body_user(self): + inst = self.instance + mgr = inst._user_manager + nm = utils.random_unicode() + pw = utils.random_unicode() + dbnames = [utils.random_unicode(), utils.random_unicode()] + ret = mgr._create_body(nm, password=pw, database_names=dbnames) + expected = {"users": [ + {"name": nm, + "password": pw, + "databases": [{"name": dbnames[0]}, {"name": dbnames[1]}]}]} + self.assertEqual(ret, expected) + + @patch("pyrax.manager.BaseManager", new=fakes.FakeManager) + def test_create_body_user_host(self): inst = self.instance mgr = inst._user_manager nm = utils.random_unicode() @@ -921,7 +885,6 @@ def test_create_body_user(self): def test_create_body_flavor(self): clt = self.client nm = utils.random_unicode() - sav = clt._get_flavor_ref clt._get_flavor_ref = Mock(return_value=example_uri) ret = clt._manager._create_body(nm) expected = {"instance": { @@ -931,7 +894,6 @@ def test_create_body_flavor(self): "databases": [], "users": []}} self.assertEqual(ret, expected) - clt._get_flavor_ref = sav if __name__ == "__main__": diff --git a/tests/unit/test_queues.py b/tests/unit/test_queues.py index c75f9a25..311b5c0a 100644 --- a/tests/unit/test_queues.py +++ b/tests/unit/test_queues.py @@ -110,9 +110,11 @@ def test_queue_get_message(self): def test_queue_delete_message(self): q = self.queue q._message_manager.delete = Mock() - msgid = utils.random_unicode() - q.delete_message(msgid) - q._message_manager.delete.assert_called_once_with(msgid) + msg_id = utils.random_unicode() + claim_id = utils.random_unicode() + q.delete_message(msg_id, claim_id=claim_id) + q._message_manager.delete.assert_called_once_with(msg_id, + claim_id=claim_id) def test_queue_list(self): q = self.queue @@ -251,6 +253,15 @@ def test_msg_add_details_no_href(self): self.assertIsNone(msg.id) self.assertIsNone(msg.claim_id) + def test_msg_delete(self): + q = self.queue + mgr = q._message_manager + claim_id = utils.random_unicode() + mgr.delete = Mock() + msg = QueueMessage(manager=mgr, info={}) + msg.delete(claim_id=claim_id) + mgr.delete.assert_called_once_with(msg, claim_id=claim_id) + def test_claim(self): msgs = [] num = random.randint(1, 9) @@ -315,6 +326,26 @@ def test_queue_msg_mgr_no_limit_or_body(self): msgs = mgr.list(include_claimed=include_claimed, echo=echo, marker=marker) + def test_queue_msg_mgr_delete_claim(self): + q = self.queue + mgr = q._message_manager + msg = utils.random_unicode() + claim_id = utils.random_unicode() + mgr._delete = Mock() + expected_uri = "/%s/%s?claim_id=%s" % (mgr.uri_base, msg, claim_id) + mgr.delete(msg, claim_id=claim_id) + mgr._delete.assert_called_once_with(expected_uri) + + def test_queue_msg_mgr_delete_no_claim(self): + q = self.queue + mgr = q._message_manager + msg = utils.random_unicode() + claim_id = None + mgr._delete = Mock() + expected_uri = "/%s/%s" % (mgr.uri_base, msg) + mgr.delete(msg, claim_id=claim_id) + mgr._delete.assert_called_once_with(expected_uri) + def test_queue_msg_mgr_list_by_ids(self): q = self.queue mgr = q._message_manager @@ -513,15 +544,61 @@ def test_clt_add_custom_headers(self): self.assertEqual(dct, {"Client-ID": client_id}) os.environ.get = sav - def test_clt_add_custom_headers_fail(self): + def test_clt_add_custom_headers_no_clt_id(self): clt = self.client dct = {} sav = os.environ.get os.environ.get = Mock(return_value=None) - self.assertRaises(exc.QueueClientIDNotDefined, clt._add_custom_headers, - dct) + clt._add_custom_headers(dct) + self.assertEqual(dct, {}) os.environ.get = sav + def test_api_request(self): + clt = self.client + uri = utils.random_ascii() + method = utils.random_ascii() + kwargs = {"fake": utils.random_ascii()} + fake_resp = utils.random_ascii() + fake_body = utils.random_ascii() + clt._time_request = Mock(return_value=(fake_resp, fake_body)) + clt.management_url = utils.random_unicode() + id_svc = pyrax.identity + sav = id_svc.authenticate + id_svc.authenticate = Mock() + ret = clt._api_request(uri, method, **kwargs) + self.assertEqual(ret, (fake_resp, fake_body)) + id_svc.authenticate = sav + + def test_api_request_missing_clt_id(self): + clt = self.client + uri = utils.random_ascii() + method = utils.random_ascii() + kwargs = {"fake": utils.random_ascii()} + err = exc.BadRequest("400", 'The "Client-ID" header is required.') + clt._time_request = Mock(side_effect=err) + clt.management_url = utils.random_unicode() + id_svc = pyrax.identity + sav = id_svc.authenticate + id_svc.authenticate = Mock() + self.assertRaises(exc.QueueClientIDNotDefined, clt._api_request, uri, + method, **kwargs) + id_svc.authenticate = sav + + def test_api_request_other_error(self): + clt = self.client + uri = utils.random_ascii() + method = utils.random_ascii() + kwargs = {"fake": utils.random_ascii()} + err = exc.BadRequest("400", "Some other message") + clt._time_request = Mock(side_effect=err) + clt.management_url = utils.random_unicode() + id_svc = pyrax.identity + sav = id_svc.authenticate + id_svc.authenticate = Mock() + self.assertRaises(exc.BadRequest, clt._api_request, uri, + method, **kwargs) + id_svc.authenticate = sav + def test_clt_get_home_document(self): clt = self.client parts = [_safe_id() for ii in range(4)] @@ -597,9 +674,10 @@ def test_clt_delete_message(self): clt = self.client q = self.queue msg_id = utils.random_unicode() + claim_id = utils.random_unicode() q.delete_message = Mock() - clt.delete_message(q, msg_id) - q.delete_message.assert_called_once_with(msg_id) + clt.delete_message(q, msg_id, claim_id=claim_id) + q.delete_message.assert_called_once_with(msg_id, claim_id=claim_id) def test_clt_list_messages(self): clt = self.client diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 6f72209f..73c1f696 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -15,7 +15,7 @@ import pyrax.utils as utils import pyrax.exceptions as exc -from tests.unit import fakes +import fakes FAKE_CONTENT = "x" * 100 @@ -53,7 +53,7 @@ def test_self_deleting_temp_directory(self): self.assertFalse(os.path.exists(tmp)) def test_get_checksum_from_string(self): - test = "some random text" + test = utils.random_ascii() md = hashlib.md5() md.update(test) expected = md.hexdigest() @@ -61,7 +61,7 @@ def test_get_checksum_from_string(self): self.assertEqual(expected, received) def test_get_checksum_from_unicode(self): - test = u"some ñøñåßçîî text" + test = utils.random_unicode() md = hashlib.md5() enc = "utf8" md.update(test.encode(enc)) @@ -79,9 +79,7 @@ def test_get_checksum_from_unicode_alt_encoding(self): self.assertEqual(expected, received) def test_get_checksum_from_binary(self): -# test = utils.random_unicode() -# test = open("tests/unit/python-logo.png", "rb").read() - test = fakes.png_file + test = fakes.png_content md = hashlib.md5() enc = "utf8" md.update(test) @@ -370,9 +368,9 @@ def test_params_to_dict(self): self.assertEqual(dct, expected) def test_import_class(self): - cls_string = "tests.unit.fakes.FakeManager" + cls_string = "pyrax.utils.SelfDeletingTempfile" ret = utils.import_class(cls_string) - self.assertTrue(ret is fakes.FakeManager) + self.assertTrue(ret is utils.SelfDeletingTempfile) def test_update_exc(self): msg1 = utils.random_unicode() diff --git a/tests/unit/testtimes.json b/tests/unit/testtimes.json deleted file mode 100644 index 5720bbe8..00000000 --- a/tests/unit/testtimes.json +++ /dev/null @@ -1 +0,0 @@ -[[0.0001239776611328125, "test_add_method"], [0.0001361370086669922, "test_add_method_no_name"], [3.910064697265625e-05, "test_env"], [3.0994415283203125e-05, "test_folder_size_bad_folder"], [0.0023241043090820312, "test_folder_size_ignore_list"], [0.0023190975189208984, "test_folder_size_ignore_string"], [0.0017161369323730469, "test_folder_size_no_ignore"], [9.393692016601562e-05, "test_get_checksum_from_binary"], [0.0014240741729736328, "test_get_checksum_from_file"], [4.482269287109375e-05, "test_get_checksum_from_string"], [5.7220458984375e-05, "test_get_checksum_from_unicode"], [0.001325845718383789, "test_get_checksum_from_unicode_alt_encoding"], [0.0001850128173828125, "test_get_id"], [0.0001761913299560547, "test_get_name"], [1.4066696166992188e-05, "test_import_class"], [1.4066696166992188e-05, "test_isunauthenticated"], [3.0040740966796875e-05, "test_match_pattern"], [0.0018579959869384766, "test_random_unicode"], [0.005424976348876953, "test_runproc"], [0.00025391578674316406, "test_safe_issubclass_bad"], [1.9073486328125e-05, "test_safe_issubclass_good"], [0.00031685829162597656, "test_self_deleting_temp_directory"], [0.00023221969604492188, "test_self_deleting_temp_file"], [0.00017905235290527344, "test_slugify"], [0.00017189979553222656, "test_time_string_date"], [3.314018249511719e-05, "test_time_string_date_obj"], [0.0031440258026123047, "test_time_string_datetime"], [8.797645568847656e-05, "test_time_string_datetime_add_tz"], [7.915496826171875e-05, "test_time_string_datetime_hide_tz"], [5.888938903808594e-05, "test_time_string_datetime_show_tz"], [8.106231689453125e-06, "test_time_string_empty"], [6.29425048828125e-05, "test_time_string_invalid"], [2.384185791015625e-05, "test_unauthenticated"], [0.00037407875061035156, "test_update_exc"], [0.0017931461334228516, "test_wait_for_build"], [0.0006711483001708984, "test_wait_until"], [0.0017261505126953125, "test_wait_until_callback"], [0.0006098747253417969, "test_wait_until_fail"]] \ No newline at end of file From 9ae649f687bb13f2095472928cecfe22164a6837 Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Tue, 19 Nov 2013 14:25:50 -0600 Subject: [PATCH 30/30] Fixed bug in autoscale group creation. GitHub #249 --- pyrax/autoscale.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pyrax/autoscale.py b/pyrax/autoscale.py index e61fa1eb..3ddcd51c 100644 --- a/pyrax/autoscale.py +++ b/pyrax/autoscale.py @@ -722,7 +722,10 @@ def _resolve_lbs(load_balancers): balancer. """ lb_args = [] - lbs = utils.coerce_string_to_list(load_balancers) + if not isinstance(load_balancers, list): + lbs = [load_balancers] + else: + lbs = load_balancers for lb in lbs: if isinstance(lb, dict): lb_args.append(lb) @@ -731,6 +734,9 @@ def _resolve_lbs(load_balancers): "loadBalancerId": lb.id, "port": lb.port, }) + elif isinstance(lb, tuple): + lb_args.append({"loadBalancerId": lb[0], + "port": lb[1]}) else: # See if it's an ID for a Load Balancer try: