Skip to content

Commit fe25462

Browse files
committed
Move all v6 API objects to the services directory
Move all `transip.v6.objects.*` to `transip.v6.services.*` to allow circular imports. Signed-off-by: Roald Nefs <info@roaldnefs.com>
1 parent 88394ed commit fe25462

11 files changed

Lines changed: 53 additions & 147 deletions

File tree

docs/user/quickstart.rst

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ Availability Zones
4646
Using the
4747
:class:`AvailabilityZoneService <transip.v6.services.AvailabilityZoneService>`
4848
service we can retrieve all availability zone on TransIP if the form of an
49-
:class:`AvailabilityZone <transip.v6.objects.AvailabilityZone>` object::
49+
:class:`AvailabilityZone <transip.v6.services.availability_zone.AvailabilityZone>` object::
5050

5151
>>> zones = client.availability_zones.list()
5252
>>> for zone in zones:
5353
... print(zone)
54-
<class 'transip.v6.objects.availability_zone.AvailabilityZone'> => {'name': 'ams0', 'country': 'nl', 'isDefault': False}
55-
<class 'transip.v6.objects.availability_zone.AvailabilityZone'> => {'name': 'rtm0', 'country': 'nl', 'isDefault': True}
54+
<class 'transip.v6.services.availability_zone.AvailabilityZone'> => {'name': 'ams0', 'country': 'nl', 'isDefault': False}
55+
<class 'transip.v6.services.availability_zone.AvailabilityZone'> => {'name': 'rtm0', 'country': 'nl', 'isDefault': True}
5656

5757
We could for example print information about the default TransIP availability
5858
zone::
@@ -150,15 +150,15 @@ Invoices
150150
Using the
151151
:class:`InvoiceService <transip.v6.services.InvoiceService>`
152152
service we can retrieve all invoices in your TransIP account in the form of a
153-
:class:`Invoice <transip.v6.objects.Invoice>` object::
153+
:class:`Invoice <transip.v6.services.invoice.Invoice>` object::
154154

155155
>>> invoices = client.invoices.list()
156156
>>> for invoice in invoices:
157157
... print(invoice)
158-
<class 'transip.v6.objects.invoice.Invoice'> => {'invoiceNumber': 'F0000.1911.0000.0004', 'creationDate': '2020-01-01', 'payDate': '2020-01-01', 'dueDate': '2020-02-01', 'invoiceStatus': 'waitsforpayment', 'currency': 'EUR', 'totalAmount': 1000, 'totalAmountInclVat': 1240}
158+
<class 'transip.v6.services.invoice.Invoice'> => {'invoiceNumber': 'F0000.1911.0000.0004', 'creationDate': '2020-01-01', 'payDate': '2020-01-01', 'dueDate': '2020-02-01', 'invoiceStatus': 'waitsforpayment', 'currency': 'EUR', 'totalAmount': 1000, 'totalAmountInclVat': 1240}
159159

160-
We could also retrieve a single :class:`Invoice <transip.v6.objects.Invoice>`
161-
object by its invoice number::
160+
We could also retrieve a single
161+
:class:`Invoice <transip.v6.services.invoice.Invoice>` object by its invoice number::
162162

163163
>>> invoice = client.invoices.get('F0000.1911.0000.0004')
164164
>>> print(f"{invoice.invoiceNumber} has status '{invoice.invoiceStatus}'")
@@ -170,26 +170,26 @@ VPSs
170170
Using the
171171
:class:`VpsService <transip.v6.services.VpsService>`
172172
service we can retrieve all VPSs in your TransIP account in the form of a
173-
:class:`Vps <transip.v6.objects.Vps>` object::
173+
:class:`Vps <transip.v6.services.vps.Vps>` object::
174174

175175
>>> vpss = client.vpss.list()
176176
>>> for vps in vpss:
177177
... print(vps)
178-
<class 'transip.v6.objects.vps.Vps'> => {'name': 'transipdemo-vps', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'FreeBSD 10.0-RELEASE', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 3, 'status': 'running', 'ipAddress': '141.138.136.129', 'macAddress': '52:54:00:19:a7:20', 'currentSnapshots': 1, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': ['customTag', 'anotherTag']}
179-
<class 'transip.v6.objects.vps.Vps'> => {'name': 'transipdemo-vps2', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'Debian 7', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 1, 'status': 'stopped', 'ipAddress': '149.210.192.184', 'macAddress': '52:54:00:51:39:ff', 'currentSnapshots': 0, 'maxSnapshots': 0, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
180-
<class 'transip.v6.objects.vps.Vps'> => {'name': 'transipdemo-vps3', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'Debian 7', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 2, 'status': 'running', 'ipAddress': '149.210.192.185', 'macAddress': '52:54:00:d2:6a:9f', 'currentSnapshots': 1, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': True, 'availabilityZone': 'ams0', 'tags': []}
181-
<class 'transip.v6.objects.vps.Vps'> => {'name': 'transipdemo-vps4', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'Ubuntu 14.04 LTS', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 1, 'status': 'running', 'ipAddress': '149.210.192.186', 'macAddress': '52:54:00:db:27:25', 'currentSnapshots': 0, 'maxSnapshots': 3, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
182-
<class 'transip.v6.objects.vps.Vps'> => {'name': 'transipdemo-vps5', 'description': '', 'productName': 'vps-bladevps-x4', 'operatingSystem': 'DirectAdmin 1.45.0 + CentOS 6.5', 'diskSize': 157286400, 'memorySize': 4194304, 'cpus': 2, 'status': 'running', 'ipAddress': '149.210.192.187', 'macAddress': '52:54:00:0c:0d:f3', 'currentSnapshots': 0, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
183-
<class 'transip.v6.objects.vps.Vps'> => {'name': 'transipdemo-vps6', 'description': '', 'productName': 'vps-bladevps-pro-x32', 'operatingSystem': 'Plesk Onyx Web Pro Edition 17.8.11 + CentOS 7', 'diskSize': 1048576000, 'memorySize': 33554432, 'cpus': 6, 'status': 'running', 'ipAddress': '149.210.192.188', 'macAddress': '52:54:00:7a:96:03', 'currentSnapshots': 0, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
184-
185-
We could also retrieve a single :class:`Vps <transip.v6.objects.Vps>`
178+
<class 'transip.v6.services.vps.Vps'> => {'name': 'transipdemo-vps', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'FreeBSD 10.0-RELEASE', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 3, 'status': 'running', 'ipAddress': '141.138.136.129', 'macAddress': '52:54:00:19:a7:20', 'currentSnapshots': 1, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': ['customTag', 'anotherTag']}
179+
<class 'transip.v6.services.vps.Vps'> => {'name': 'transipdemo-vps2', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'Debian 7', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 1, 'status': 'stopped', 'ipAddress': '149.210.192.184', 'macAddress': '52:54:00:51:39:ff', 'currentSnapshots': 0, 'maxSnapshots': 0, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
180+
<class 'transip.v6.services.vps.Vps'> => {'name': 'transipdemo-vps3', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'Debian 7', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 2, 'status': 'running', 'ipAddress': '149.210.192.185', 'macAddress': '52:54:00:d2:6a:9f', 'currentSnapshots': 1, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': True, 'availabilityZone': 'ams0', 'tags': []}
181+
<class 'transip.v6.services.vps.Vps'> => {'name': 'transipdemo-vps4', 'description': '', 'productName': 'vps-bladevps-x1', 'operatingSystem': 'Ubuntu 14.04 LTS', 'diskSize': 52428800, 'memorySize': 1048576, 'cpus': 1, 'status': 'running', 'ipAddress': '149.210.192.186', 'macAddress': '52:54:00:db:27:25', 'currentSnapshots': 0, 'maxSnapshots': 3, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
182+
<class 'transip.v6.services.vps.Vps'> => {'name': 'transipdemo-vps5', 'description': '', 'productName': 'vps-bladevps-x4', 'operatingSystem': 'DirectAdmin 1.45.0 + CentOS 6.5', 'diskSize': 157286400, 'memorySize': 4194304, 'cpus': 2, 'status': 'running', 'ipAddress': '149.210.192.187', 'macAddress': '52:54:00:0c:0d:f3', 'currentSnapshots': 0, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
183+
<class 'transip.v6.services.vps.Vps'> => {'name': 'transipdemo-vps6', 'description': '', 'productName': 'vps-bladevps-pro-x32', 'operatingSystem': 'Plesk Onyx Web Pro Edition 17.8.11 + CentOS 7', 'diskSize': 1048576000, 'memorySize': 33554432, 'cpus': 6, 'status': 'running', 'ipAddress': '149.210.192.188', 'macAddress': '52:54:00:7a:96:03', 'currentSnapshots': 0, 'maxSnapshots': 1, 'isLocked': False, 'isBlocked': False, 'isCustomerLocked': False, 'availabilityZone': 'ams0', 'tags': []}
184+
185+
We could also retrieve a single :class:`Vps <transip.v6.services.vps.Vps>`
186186
object by its name::
187187

188188
>>> vps = client.vpss.get('transipdemo-vps')
189189
>>> print(f"{vps.name} runs {vps.operatingSystem} and has IP address: '{vps.ipAddress}'")
190190
transipdemo-vps runs FreeBSD 10.0-RELEASE and has IP address: '141.138.136.129'
191191

192-
We could also cancel a single :class:`Vps <transip.v6.objects.Vps>`
192+
We could also cancel a single :class:`Vps <transip.v6.services.vps.Vps>`
193193
object by its name::
194194

195195
>>> client.vpss.delete('transipdemo-vps')

transip/v6/objects/__init__.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

transip/v6/objects/availability_zone.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

transip/v6/objects/invoice.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

transip/v6/objects/ssh_key.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

transip/v6/objects/vps.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

transip/v6/services/__init__.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,21 @@
1717
# You should have received a copy of the GNU Lesser General Public License
1818
# along with python-transip. If not, see <https://www.gnu.org/licenses/>.
1919

20-
from transip.v6.services.availability_zone import AvailabilityZoneService # noqa: 401
20+
from transip.v6.services.availability_zone import ( # noqa: 401
21+
AvailabilityZoneService, AvailabilityZone
22+
)
2123
from transip.v6.services.domain import ( # noqa: 401
22-
DomainService, WhoisContactService, Domain, WhoisContact
24+
DomainService, Domain,
25+
WhoisContactService, WhoisContact,
26+
NameserverService, Nameserver,
27+
DnsEntryService, DnsEntry
28+
)
29+
from transip.v6.services.invoice import ( # noqa: 401
30+
InvoiceService, Invoice
31+
)
32+
from transip.v6.services.ssh_key import ( # noqa: 401
33+
SshKeyService, SshKey
34+
)
35+
from transip.v6.services.vps import ( # noqa: 401
36+
VpsService, Vps
2337
)
24-
from transip.v6.services.domain import DomainService # noqa: 401
25-
from transip.v6.services.invoice import InvoiceService # noqa: 401
26-
from transip.v6.services.ssh_key import SshKeyService # noqa: 401
27-
from transip.v6.services.vps import VpsService # noqa: 401

transip/v6/services/availability_zone.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
from transip.v6.objects.availability_zone import AvailabilityZone
2525

2626

27+
class AvailabilityZone(ApiObject):
28+
29+
_id_attr: str = "name"
30+
31+
2732
class AvailabilityZoneService(ListMixin, ApiService):
2833

2934
_path: str = "/availability-zones"

transip/v6/services/invoice.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
from transip.v6.objects.invoice import Invoice
2525

2626

27+
class Invoice(ApiObject):
28+
29+
_id_attr: str = "invoiceNumber"
30+
31+
2732
class InvoiceService(GetMixin, ListMixin, ApiService):
2833

2934
_path: str = "/invoices"

transip/v6/services/ssh_key.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
from transip.v6.objects.ssh_key import SshKey
2525

2626

27+
class SshKey(ApiObject):
28+
29+
_id_attr: str = "id"
30+
31+
2732
class SshKeyService(GetMixin, DeleteMixin, ListMixin, ApiService):
2833

2934
_path: str = "/ssh-keys"

0 commit comments

Comments
 (0)