From 3e6678f9c692553e8902da4d6fb1fe6c087db1f4 Mon Sep 17 00:00:00 2001 From: Marcel Enguehard Date: Wed, 19 Jul 2017 11:26:26 +0200 Subject: * GUI resource * MemIf interface for VPP * Better netmodel integration * Draft documentation * New tutorials * Improved monitoring and error handling * Refactored IP addresses and prefixes representation * Improved image mgmt for LXD * Various bugfixes and code refactoring Change-Id: I90da6cf7b5716bc7deb6bf4e24d3f9f01b5a9b0f Signed-off-by: Marcel Enguehard --- vicn/resource/linux/file.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'vicn/resource/linux/file.py') diff --git a/vicn/resource/linux/file.py b/vicn/resource/linux/file.py index 44b4b5be..2a62f60e 100644 --- a/vicn/resource/linux/file.py +++ b/vicn/resource/linux/file.py @@ -16,11 +16,12 @@ # limitations under the License. # +from netmodel.model.key import Key from netmodel.model.type import String, Bool from vicn.core.attribute import Attribute, Multiplicity from vicn.core.exception import ResourceNotFound from vicn.core.resource import Resource -from vicn.core.task import BashTask, inline_task +from vicn.core.task import BashTask, inline_task, inherit_parent from vicn.resource.node import Node CREATE_DIR_CMD = "mkdir -p {dir}" @@ -38,22 +39,23 @@ class File(Resource): Resource: File """ filename = Attribute(String, description = 'Path to the file', - key = True, mandatory = True) node = Attribute(Node, description = 'Node on which the file is created', mandatory = True, multiplicity = Multiplicity.ManyToOne, reverse_name = 'files', - key = True, reverse_description = 'Files created on the node') overwrite = Attribute(Bool, description = 'Determines whether an existing file is overwritten', default = False) + __key__ = Key(node, filename) + #-------------------------------------------------------------------------- # Resource lifecycle #-------------------------------------------------------------------------- + @inherit_parent def __get__(self): # UGLY @inline_task @@ -72,12 +74,14 @@ class File(Resource): test = BashTask(self.node, GET_FILE_CMD, {"file": self}, parse=is_path) return test + @inherit_parent def __create__(self): ctask = BashTask(self.node, CREATE_FILE_CMD, {"file": self}) if self.overwrite: ctask = BashTask(self.node, DELETE_FILE_CMD, {'file': self}) > ctask return ctask + @inherit_parent def __delete__(self): return BashTask(self.node, DELETE_FILE_CMD, { "file" : self}) @@ -96,6 +100,8 @@ class TextFile(File): # Resource lifecycle #-------------------------------------------------------------------------- + # XXX REDUNDANT !!! + @inherit_parent def __create__(self): return BashTask(self.node, CMD_PRINT_TO_FILE, {'file': self}) -- cgit 1.2.3-korg