diff options
author | Jan Cholasta <jcholast@redhat.com> | 2011-11-01 08:58:05 -0400 |
---|---|---|
committer | Alexander Bokovoy <abokovoy@redhat.com> | 2012-01-02 11:51:26 +0300 |
commit | 9beb467d98cb16e09fcda5ebbeb27056dfff3a2d (patch) | |
tree | d374273454f5fa5627eb1fe83782c437cdbddde2 /ipaserver/plugins/dogtag.py | |
parent | 46d3abc450db20c3e4c0854dbf9e711f59db3bff (diff) | |
download | freeipa-9beb467d98cb16e09fcda5ebbeb27056dfff3a2d.tar.gz freeipa-9beb467d98cb16e09fcda5ebbeb27056dfff3a2d.tar.xz freeipa-9beb467d98cb16e09fcda5ebbeb27056dfff3a2d.zip |
Fix attempted write to attribute of read-only object.
Add new class "cachedproperty" for creating property-like attributes
that cache the return value of a method call.
Also fix few issues in the unit tests to enable them to succeed.
ticket 1959
Diffstat (limited to 'ipaserver/plugins/dogtag.py')
-rw-r--r-- | ipaserver/plugins/dogtag.py | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/ipaserver/plugins/dogtag.py b/ipaserver/plugins/dogtag.py index 23d06abc1..b31058c14 100644 --- a/ipaserver/plugins/dogtag.py +++ b/ipaserver/plugins/dogtag.py @@ -1200,6 +1200,7 @@ import os, random, ldap from ipaserver.plugins import rabase from ipalib.errors import NetworkError, CertificateOperationError from ipalib.constants import TYPE_ERROR +from ipalib.util import cachedproperty from ipapython import dogtag from ipalib import _ @@ -1218,7 +1219,6 @@ class ra(rabase.rabase): self.ipa_key_size = "2048" self.ipa_certificate_nickname = "ipaCert" self.ca_certificate_nickname = "caCert" - self.ca_host = None try: f = open(self.pwd_file, "r") self.password = f.readline().strip() @@ -1266,7 +1266,8 @@ class ra(rabase.rabase): pass return None - def _select_ca(self): + @cachedproperty + def ca_host(self): """ :return: host as str @@ -1293,8 +1294,6 @@ class ra(rabase.rabase): Perform an HTTP request. """ - if self.ca_host == None: - self.ca_host = self._select_ca() return dogtag.http_request(self.ca_host, port, url, **kw) def _sslget(self, url, port, **kw): @@ -1306,9 +1305,6 @@ class ra(rabase.rabase): Perform an HTTPS request """ - - if self.ca_host == None: - self.ca_host = self._select_ca() return dogtag.https_request(self.ca_host, port, url, self.sec_dir, self.password, self.ipa_certificate_nickname, **kw) def get_parse_result_xml(self, xml_text, parse_func): |