Added account details to base class for Dimension Data and tests
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/477f2227 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/477f2227 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/477f2227 Branch: refs/heads/trunk Commit: 477f2227c1fc31ec8b4fbf623d7de415a62adc6e Parents: 965d4fe Author: anthony-shaw <anthonys...@apache.org> Authored: Wed Apr 13 22:14:46 2016 +1000 Committer: anthony-shaw <anthonys...@apache.org> Committed: Wed Apr 13 22:14:46 2016 +1000 ---------------------------------------------------------------------- libcloud/common/dimensiondata.py | 26 ++++++++++++++ libcloud/dns/types.py.rej | 46 ++++++++++++++++++++++++ libcloud/test/compute/test_dimensiondata.py | 7 ++++ 3 files changed, 79 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/477f2227/libcloud/common/dimensiondata.py ---------------------------------------------------------------------- diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py index b7ee2d0..70cdb8b 100644 --- a/libcloud/common/dimensiondata.py +++ b/libcloud/common/dimensiondata.py @@ -555,6 +555,32 @@ class DimensionDataConnection(ConnectionUserAndKey): self._orgId = findtext(body, 'orgId', DIRECTORY_NS) return self._orgId + def get_account_details(self): + """ + Get the details of this account + + :rtype: :class:`DimensionDataAccountDetails` + """ + body = self.request_api_1('myaccount').object + return DimensionDataAccountDetails( + user_name=findtext(body, 'userName', DIRECTORY_NS), + full_name=findtext(body, 'fullName', DIRECTORY_NS), + first_name=findtext(body, 'firstName', DIRECTORY_NS), + last_name=findtext(body, 'lastName', DIRECTORY_NS), + email=findtext(body, 'emailAddress', DIRECTORY_NS)) + + +class DimensionDataAccountDetails(object): + """ + Dimension Data account class details + """ + def __init__(self, user_name, full_name, first_name, last_name, email): + self.user_name = user_name + self.full_name = full_name + self.first_name = first_name + self.last_name = last_name + self.email = email + class DimensionDataStatus(object): """ http://git-wip-us.apache.org/repos/asf/libcloud/blob/477f2227/libcloud/dns/types.py.rej ---------------------------------------------------------------------- diff --git a/libcloud/dns/types.py.rej b/libcloud/dns/types.py.rej new file mode 100644 index 0000000..246c69d --- /dev/null +++ b/libcloud/dns/types.py.rej @@ -0,0 +1,46 @@ +diff a/libcloud/dns/types.py b/libcloud/dns/types.py (rejected hunks) +@@ -31,28 +31,28 @@ + + class Provider(object): + DUMMY = 'dummy' +- LINODE = 'linode' +- RACKSPACE = 'rackspace' +- ZERIGO = 'zerigo' +- ROUTE53 = 'route53' +- HOSTVIRTUAL = 'hostvirtual' +- GANDI = 'gandi' +- GOOGLE = 'google' +- SOFTLAYER = 'softlayer' +- DIGITAL_OCEAN = 'digitalocean' + AURORADNS = 'auroradns' +- WORLDWIDEDNS = 'worldwidedns' ++ CLOUDFLARE = 'cloudflare' ++ DIGITAL_OCEAN = 'digitalocean' + DNSIMPLE = 'dnsimple' +- POINTDNS = 'pointdns' +- VULTR = 'vultr' +- LIQUIDWEB = 'liquidweb' +- ZONOMI = 'zonomi' + DURABLEDNS = 'durabledns' ++ GANDI = 'gandi' + GODADDY = 'godaddy' +- CLOUDFLARE = 'cloudflare' +- NSONE = 'nsone' ++ GOOGLE = 'google' ++ HOSTVIRTUAL = 'hostvirtual' ++ LINODE = 'linode' ++ LIQUIDWEB = 'liquidweb' + LUADNS = 'luadns' + NFSN = 'nfsn' ++ NSONE = 'nsone' ++ POINTDNS = 'pointdns' ++ RACKSPACE = 'rackspace' ++ ROUTE53 = 'route53' ++ SOFTLAYER = 'softlayer' ++ VULTR = 'vultr' ++ WORLDWIDEDNS = 'worldwidedns' ++ ZERIGO = 'zerigo' ++ ZONOMI = 'zonomi' + # Deprecated + RACKSPACE_US = 'rackspace_us' + RACKSPACE_UK = 'rackspace_uk' http://git-wip-us.apache.org/repos/asf/libcloud/blob/477f2227/libcloud/test/compute/test_dimensiondata.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_dimensiondata.py b/libcloud/test/compute/test_dimensiondata.py index 7554410..d96142d 100644 --- a/libcloud/test/compute/test_dimensiondata.py +++ b/libcloud/test/compute/test_dimensiondata.py @@ -51,6 +51,13 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin): with self.assertRaises(InvalidCredsError): self.driver.list_nodes() + def test_get_account_details(self): + DimensionDataMockHttp.type = None + ret = self.driver.connection.get_account_details() + self.assertEqual(ret.full_name, 'Test User') + self.assertEqual(ret.first_name, 'Test') + self.assertEqual(ret.email, 't...@example.com') + def test_list_locations_response(self): DimensionDataMockHttp.type = None ret = self.driver.list_locations()