aboutsummaryrefslogtreecommitdiffstats
path: root/vicn/resource/linux/certificate.py
diff options
context:
space:
mode:
Diffstat (limited to 'vicn/resource/linux/certificate.py')
-rw-r--r--vicn/resource/linux/certificate.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/vicn/resource/linux/certificate.py b/vicn/resource/linux/certificate.py
index dd451770..2cc6c9b0 100644
--- a/vicn/resource/linux/certificate.py
+++ b/vicn/resource/linux/certificate.py
@@ -23,6 +23,7 @@ from vicn.core.attribute import Attribute, Multiplicity, Reference
from vicn.core.exception import ResourceNotFound
from vicn.core.resource import Resource
from vicn.core.task import task, inline_task, BashTask
+from vicn.core.task import inherit_parent
from vicn.resource.linux.file import File
from vicn.resource.node import Node
@@ -49,29 +50,40 @@ class Certificate(Resource):
multiplicity = Multiplicity.ManyToOne)
cert = Attribute(String, description = 'Certificate path',
mandatory = True)
- key = Attribute(String, description = 'Key path',
- mandatory = True)
+ key = Attribute(String, description = 'Key path')
#--------------------------------------------------------------------------
# Resource lifecycle
#--------------------------------------------------------------------------
- @inline_task
- def __initialize__(self):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
self._cert_file = File(node = Reference(self, 'node'),
filename = Reference(self, 'cert'),
managed = False)
- self._key_file = File(node = Reference(self, 'node'),
- filename = Reference(self, 'key'),
- managed = False)
+ if self.key:
+ self._key_file = File(node = Reference(self, 'node'),
+ filename = Reference(self, 'key'),
+ managed = False)
+ else:
+ self._key_file = None
+ @inherit_parent
def __get__(self):
- return self._cert_file.__get__() | self._key_file.__get__()
+ if self.key:
+ return self._cert_file.__get__() | self._key_file.__get__()
+ else:
+ return self._cert_file.__get__()
+ @inherit_parent
def __create__(self):
return BashTask(self.node, CMD_CREATE, {'self': self})
+ @inherit_parent
def __delete__(self):
- return self._cert_file.__delete__() | self._key_file.__delete__()
+ if self.key:
+ return self._cert_file.__delete__() | self._key_file.__delete__()
+ else:
+ return self._cert_file.__delete__()