mirror of
https://github.com/certbot/certbot.git
synced 2026-06-03 22:08:07 -04:00
Add account, and make acme_version explicit.
This commit is contained in:
parent
1cf5b9f43e
commit
63f8dff67f
2 changed files with 21 additions and 8 deletions
|
|
@ -49,6 +49,7 @@ class Client(object): # pylint: disable=too-many-instance-attributes
|
|||
:ivar messages.Directory directory:
|
||||
:ivar key: `.JWK` (private)
|
||||
:ivar account: `.Account` (private)
|
||||
:ivar acme_version: `int` (private)
|
||||
:ivar alg: `.JWASignature`
|
||||
:ivar bool verify_ssl: Verify SSL certificates?
|
||||
:ivar .ClientNetwork net: Client network. Useful for testing. If not
|
||||
|
|
@ -58,8 +59,8 @@ class Client(object): # pylint: disable=too-many-instance-attributes
|
|||
"""
|
||||
|
||||
# pylint: disable=too-many-arguments
|
||||
def __init__(self, directory, key, account=None, alg=jose.RS256, verify_ssl=True,
|
||||
net=None):
|
||||
def __init__(self, directory, key, account=None, acme_version=1, alg=jose.RS256,
|
||||
verify_ssl=True, net=None):
|
||||
"""Initialize.
|
||||
|
||||
:param directory: Directory Resource (`.messages.Directory`) or
|
||||
|
|
@ -68,8 +69,9 @@ class Client(object): # pylint: disable=too-many-instance-attributes
|
|||
"""
|
||||
self.key = key
|
||||
self.account = account
|
||||
self.net = ClientNetwork(key, account=account, alg=alg,
|
||||
verify_ssl=verify_ssl) if net is None else net
|
||||
self.acme_version = acme_version
|
||||
self.net = ClientNetwork(key, account=account, acme_version=acme_version,
|
||||
alg=alg, verify_ssl=verify_ssl) if net is None else net
|
||||
|
||||
if isinstance(directory, six.string_types):
|
||||
self.directory = messages.Directory.from_json(
|
||||
|
|
@ -90,16 +92,20 @@ class Client(object): # pylint: disable=too-many-instance-attributes
|
|||
def register(self, new_reg=None):
|
||||
"""Register.
|
||||
|
||||
:param .NewRegistration new_reg:
|
||||
:param .NewRegistration or .NewAccount new_reg:
|
||||
|
||||
:returns: Registration Resource.
|
||||
:rtype: `.RegistrationResource`
|
||||
|
||||
"""
|
||||
new_reg = messages.NewRegistration() if new_reg is None else new_reg
|
||||
assert isinstance(new_reg, messages.NewRegistration)
|
||||
if self.acme_version == 2:
|
||||
url = self.directory.new_account
|
||||
new_reg = messages.NewAccount() if new_reg is None else new_reg
|
||||
else:
|
||||
url = self.directory.new_reg
|
||||
new_reg = messages.NewRegistration() if new_reg is None else new_reg
|
||||
|
||||
response = self.net.post(self.directory.new_reg, new_reg)
|
||||
response = self.net.post(url, new_reg)
|
||||
# TODO: handle errors
|
||||
assert response.status_code == http_client.CREATED
|
||||
|
||||
|
|
|
|||
|
|
@ -288,6 +288,13 @@ class NewRegistration(Registration):
|
|||
resource = fields.Resource(resource_type)
|
||||
|
||||
|
||||
@Directory.register
|
||||
class NewAccount(Registration):
|
||||
"""New account."""
|
||||
resource_type = 'new-account' # not used
|
||||
resource = fields.Resource(resource_type)
|
||||
|
||||
|
||||
class UpdateRegistration(Registration):
|
||||
"""Update registration."""
|
||||
resource_type = 'reg'
|
||||
|
|
|
|||
Loading…
Reference in a new issue