You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2020/12/27 21:09:23 UTC
[libcloud] 07/10: Update CloudFlare DNS driver to correctly throws
"RecordAlreadyExists" error on various error responses.
This is an automated email from the ASF dual-hosted git repository.
tomaz pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/libcloud.git
commit e7c20290ccbada84afaecd6ddf29f30c892d0dbd
Author: Tomaz Muraus <to...@tomaz.me>
AuthorDate: Sun Dec 27 17:52:15 2020 +0100
Update CloudFlare DNS driver to correctly throws "RecordAlreadyExists"
error on various error responses.
---
CHANGES.rst | 5 +++++
libcloud/dns/drivers/cloudflare.py | 9 +++++++++
2 files changed, 14 insertions(+)
diff --git a/CHANGES.rst b/CHANGES.rst
index 394439a..c2b4ca3 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -192,6 +192,11 @@ DNS
(GITHUB-1504)
[Dimitris Galanis - @dimgal1]
+- [CloudFlare] Update driver so it correctly throws
+ ``RecordAlreadyExists`` error on various error responses which represent
+ this error.
+ [Tomaz Muraus - @Kami]
+
Changes in Apache Libcloud 3.2.0
--------------------------------
diff --git a/libcloud/dns/drivers/cloudflare.py b/libcloud/dns/drivers/cloudflare.py
index 607135b..d13e98e 100644
--- a/libcloud/dns/drivers/cloudflare.py
+++ b/libcloud/dns/drivers/cloudflare.py
@@ -96,6 +96,10 @@ class CloudFlareDNSResponse(JsonResponse):
1061: (ZoneAlreadyExistsError, ['zone_id']),
1002: (RecordDoesNotExistError, ['record_id']),
81053: (RecordAlreadyExistsError, ['record_id']),
+ # 81057: The record already exists.
+ 81057: (RecordAlreadyExistsError, []),
+ # 81058: A record with those settings already exists.
+ 81058: (RecordAlreadyExistsError, ['record_id']),
}
def success(self):
@@ -132,6 +136,11 @@ class CloudFlareDNSResponse(JsonResponse):
'driver': self.connection.driver,
}
+ if error['code'] == 81057:
+ # Record id is not available when creating a record and not updating
+ # it
+ kwargs["record_id"] = "unknown"
+
merge_valid_keys(kwargs, context, self.connection.context)
raise exception_class(**kwargs)