aboutsummaryrefslogtreecommitdiffstats
path: root/vicn/resource/linux/file.py
diff options
context:
space:
mode:
authorMarcel Enguehard <mengueha+fdio@cisco.com>2017-07-19 11:26:26 +0200
committerMarcel Enguehard <mengueha+fdio@cisco.com>2017-07-19 11:51:26 +0000
commit3e6678f9c692553e8902da4d6fb1fe6c087db1f4 (patch)
tree580a46ca5de22a044319eabb295ad980d50589ec /vicn/resource/linux/file.py
parent08c4f765cf29dbd6e9a616c542552417eece14fc (diff)
* 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 <mengueha+fdio@cisco.com>
Diffstat (limited to 'vicn/resource/linux/file.py')
-rw-r--r--vicn/resource/linux/file.py12
1 files changed, 9 insertions, 3 deletions
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})