Skip to content

Commit 3fa65f7

Browse files
authored
Merge pull request #45 from spry-group/master
Release Candidate
2 parents bcb426a + 84da9d1 commit 3fa65f7

26 files changed

+1225
-1499
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ Lib
55
Scripts
66
*.egg-info
77
*.pyc
8+
9+
venv

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
language: python
22
python:
33
- "2.7"
4-
- "3.2"
54
- "3.3"
65
- "3.4"
6+
- "3.5"
77
- "nightly"
88
install:
99
- "pip install ."

README.rst

Lines changed: 76 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,40 @@ Vultr
22
=====
33
.. image:: https://travis-ci.org/spry-group/python-vultr.svg?branch=master
44
:target: https://travis-ci.org/spry-group/python-vultr
5-
6-
Vultr provides a client library to the Vultr.com API.
5+
6+
Vultr provides a client library to the `Vultr.com <http://www.vultr.com/?ref=6989379-3B>` API.
77

88
**Usage**
99

10+
.. code:: python
1011
1112
api_key = 'XXXXXXXXX'
12-
1313
vultr = Vultr(api_key)
14+
plans_json = vultr.plans.list()
15+
16+
17+
18+
**Testing**
19+
20+
From the repo root directory
21+
Performs generic, unauthenticated tests
22+
23+
.. code:: shell
24+
25+
python -m unittest -v tests.test_vultr.UnauthenticatedTests
26+
27+
28+
Requires the environment variable VULTR_KEY to be set
29+
30+
.. code:: shell
1431
15-
plans_json = vultr.plans_list()
32+
python -m unittest -v tests.test_vultr.AuthenticatedTests
1633
1734
1835
**Support**
1936

2037

21-
Python Vultr is supported on a volunteer basis.
38+
Python Vultr is supported on a volunteer basis.
2239

2340
* `Open an Issue <https://github.com/spry-group/python-vultr/issues/new>`_
2441

@@ -29,54 +46,57 @@ Python Vultr is supported on a volunteer basis.
2946
**API**
3047

3148

32-
* def __init__(self, api_key):
33-
* def snapshot_list(self):
34-
* def snapshot_destroy(self, snapshotid):
35-
* def snapshot_create(self, subid):
36-
* def iso_list(self):
37-
* def plans_list(self):
38-
* def regions_list(self):
39-
* def regions_availability(self, dcid):
40-
* def startupscript_list(self):
41-
* def startupscript_destroy(self, scriptid):
42-
* def startupscript_create(self, name, script):
43-
* def startupscript_update(self, scriptid, name, script):
44-
* def dns_list(self):
45-
* def dns_records(self, domain):
46-
* def dns_create_domain(self, domain, serverip):
47-
* def dns_delete_domain(self, domain):
48-
* def dns_delete_record(self, domain, recordid):
49-
* def dns_create_record(self, domain, name, type, data, ttl=None,
50-
* def sshkey_list(self):
51-
* def sshkey_destroy(self, sshkeyid):
52-
* def sshkey_create(self):
53-
* def sshkey_update(self, sshkeyid, name=None, ssh_key=None):
54-
* def backup_list(self):
55-
* def server_list(self, subid):
56-
* def server_bandwidth(self):
57-
* def server_reboot(self):
58-
* def server_halt(self):
59-
* def server_start(self):
60-
* def server_destroy(self):
61-
* def server_reinstall(self):
62-
* def server_restore_snapshot(self, subid, snapshotid):
63-
* def server_restore_backup(self, subid, backupid):
64-
* def server_create(self, dcid, vpsplanid, osid, ipxe_chain_url=None,
65-
* def server_list_ipv4(self, subid):
66-
* def server_reverse_set_ipv4(self):
67-
* def server_reverse_default_ipv4(self, subid, ip):
68-
* def server_list_ipv6(self):
69-
* def server_reverse_list_ipv6(self):
70-
* def server_reverse_set_ipv6(self, subid, ip, entry):
71-
* def server_reverse_delete_ipv6(self, subid, ip):
72-
* def server_label_set(self, subid, label):
73-
* def server_create_ipv4(self, subid, reboot):
74-
* def server_destroy_ipv4(self, subid, ip):
75-
* def server_os_change_list(self):
76-
* def server_os_change(self, subid, osid):
77-
* def server_upgrade_plan_list(self):
78-
* def server_upgrade_plan(self, subid, vpsplanid):
79-
* def app_list(self):
80-
* def account_info(self):
81-
* def os_list(self):
82-
* def request(self, path, params={}, method='GET'):
49+
* def account.info(self, params=None):
50+
* def app.list(self, params=None):
51+
* def backup.list(self, params=None):
52+
* def dns.create_domain(self, domain, ipaddr, params=None):
53+
* def dns.create_record(self, domain, name, _type, data, params=None):
54+
* def dns.delete_domain(self, domain, params=None):
55+
* def dns.delete_record(self, domain, recordid, params=None):
56+
* def dns.list(self, params=None):
57+
* def dns.records(self, domain, params=None):
58+
* def dns.update_record(self, domain, recordid, params=None):
59+
* def iso.list(self, params=None):
60+
* def iso.create_from_url(self, url, params=None)
61+
* def os.list(self, params=None):
62+
* def plans.list(self, params=None):
63+
* def regions.availability(self, dcid, params=None):
64+
* def regions.list(self, params=None):
65+
* def server.ipv4.create(self, subid, params=None):
66+
* def server.ipv4.destroy(self, subid, ipaddr, params=None):
67+
* def server.ipv4.list(self, subid, params=None):
68+
* def server.ipv4.reverse_default(self, subid, ipaddr, params=None):
69+
* def server.ipv4.reverse_set(self, subid, ipaddr, entry, params=None):
70+
* def server.ipv6.list_ipv6(self, subid, params=None):
71+
* def server.ipv6.reverse_delete_ipv6(self, subid, ipaddr, params=None):
72+
* def server.ipv6.reverse_list_ipv6(self, subid, params=None):
73+
* def server.ipv6.reverse_set_ipv6(self, subid, ipaddr, entry, params=None):
74+
* def server.bandwidth(self, subid, params=None):
75+
* def server.create(self, dcid, vpsplanid, osid, params=None):
76+
* def server.destroy(self, subid, params=None):
77+
* def server.get_user_data(self, subid, params=None):
78+
* def server.halt(self, subid, params=None):
79+
* def server.label_set(self, subid, label, params=None):
80+
* def server.list(self, subid=None, params=None):
81+
* def server.neighbors(self, subid, params=None):
82+
* def server.os_change(self, subid, osid, params=None):
83+
* def server.os_change_list(self, subid, params=None):
84+
* def server.reboot(self, subid, params=None):
85+
* def server.reinstall(self, subid, params=None):
86+
* def server.restore_backup(self, subid, backupid, params=None):
87+
* def server.restore_snapshot(self, subid, snapshotid, params=None):
88+
* def server.set_user_data(self, subid, userdata, params=None):
89+
* def server.start(self, subid, params=None):
90+
* def server.upgrade_plan(self, subid, vpsplanid, params=None):
91+
* def server.upgrade_plan_list(self, subid, params=None):
92+
* def snapshot.create(self, subid, params=None):
93+
* def snapshot.destroy(self, snapshotid, params=None):
94+
* def snapshot.list(self, params=None):
95+
* def sshkey.create(self, name, ssh_key, params=None):
96+
* def sshkey.destroy(self, sshkeyid, params=None):
97+
* def sshkey.list(self, params=None):
98+
* def sshkey.update(self, sshkeyid, params=None):
99+
* def startupscript.create(self, name, script, params=None):
100+
* def startupscript.destroy(self, scriptid, params=None):
101+
* def startupscript.list(self, params=None):
102+
* def startupscript.update(self, scriptid, params=None):

examples/basic_list.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#!/usr/bin/env python
2+
3+
'''Basic app to list Vultr account & server information'''
4+
5+
import logging
6+
from os import environ
7+
from json import dumps
8+
from vultr import Vultr, VultrError
9+
10+
# Looks for an environment variable named "VULTR_KEY"
11+
API_KEY = environ.get('VULTR_KEY')
12+
logging.basicConfig(
13+
level=logging.INFO,
14+
format='%(asctime)s %(levelname)s [%(funcName)s():%(lineno)d] %(message)s'
15+
)
16+
logging.getLogger("requests").setLevel(logging.WARNING)
17+
18+
19+
def dump_info():
20+
'''Shows various details about the account & servers'''
21+
vultr = Vultr(API_KEY)
22+
23+
try:
24+
logging.info('Listing account info:\n%s', dumps(
25+
vultr.account.info(), indent=2
26+
))
27+
28+
logging.info('Listing apps:\n%s', dumps(
29+
vultr.app.list(), indent=2
30+
))
31+
32+
logging.info('Listing backups:\n%s', dumps(
33+
vultr.backup.list(), indent=2
34+
))
35+
36+
logging.info('Listing DNS:\n%s', dumps(
37+
vultr.dns.list(), indent=2
38+
))
39+
40+
logging.info('Listing ISOs:\n%s', dumps(
41+
vultr.iso.list(), indent=2
42+
))
43+
44+
logging.info('Listing OSs:\n%s', dumps(
45+
vultr.os.list(), indent=2
46+
))
47+
48+
logging.info('Listing plans:\n%s', dumps(
49+
vultr.plans.list(), indent=2
50+
))
51+
52+
logging.info('Listing regions:\n%s', dumps(
53+
vultr.regions.list(), indent=2
54+
))
55+
56+
logging.info('Listing servers:\n%s', dumps(
57+
vultr.server.list(), indent=2
58+
))
59+
60+
logging.info('Listing snapshots:\n%s', dumps(
61+
vultr.snapshot.list(), indent=2
62+
))
63+
64+
logging.info('Listing SSH keys:\n%s', dumps(
65+
vultr.sshkey.list(), indent=2
66+
))
67+
68+
logging.info('Listing startup scripts:\n%s', dumps(
69+
vultr.startupscript.list(), indent=2
70+
))
71+
except VultrError as ex:
72+
logging.error('VultrError: %s', ex)
73+
74+
75+
def main():
76+
'''Entry point'''
77+
logging.info('Vultr API Client Python Library')
78+
logging.info('URL: https://www.vultr.com/api/')
79+
dump_info()
80+
81+
main()

setup.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import sys
2-
from setuptools import setup, find_packages
1+
'''Module setup'''
2+
from setuptools import setup
33

44
'''
55
packaging modeled after
@@ -8,13 +8,14 @@
88

99

1010
def read(filename):
11+
'''Read content from file'''
1112
return open(filename).read()
1213

1314
setup(
1415
name='vultr',
15-
version='0.1.2',
16+
version='1.0rc1',
1617
install_requires=[
17-
"requests"
18+
"requests"
1819
],
1920
description='Vultr.com API Client',
2021
long_description=(read('README.rst')),
@@ -32,6 +33,8 @@ def read(filename):
3233
'Programming Language :: Python :: 2.7',
3334
'Programming Language :: Python :: 3',
3435
'Programming Language :: Python :: 3.3',
36+
'Programming Language :: Python :: 3.4',
37+
'Programming Language :: Python :: 3.5',
3538
'Topic :: Software Development :: Libraries :: Python Modules'
3639
],
3740
license=read('LICENSE'),

tests/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .test_vultr import UnauthenticatedTests
2+
from .test_vultr import AuthenticatedTests

0 commit comments

Comments
 (0)