summaryrefslogtreecommitdiffstats
path: root/vnfs/vnf/vnf.py
diff options
context:
space:
mode:
Diffstat (limited to 'vnfs/vnf/vnf.py')
-rw-r--r--vnfs/vnf/vnf.py119
1 files changed, 119 insertions, 0 deletions
diff --git a/vnfs/vnf/vnf.py b/vnfs/vnf/vnf.py
new file mode 100644
index 00000000..c746aa83
--- /dev/null
+++ b/vnfs/vnf/vnf.py
@@ -0,0 +1,119 @@
+# Copyright 2015 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""
+Interface for VNF.
+"""
+
+
+class IVnf(object):
+
+ """
+ Interface for VNF.
+ """
+
+ def __init__(self, memory, cpus,
+ monitor_path, shared_path_host,
+ shared_path_guest, guest_prompt):
+ """
+ Initialization method.
+
+ Purpose of this method is to initialize all
+ common Vnf data, no services should be started by
+ this call (use ``start`` method instead).
+
+ :param memory: Virtual RAM size in megabytes.
+ :param cpus: Number of Processors.
+ :param monitor_path: Configure monitor to given path.
+ :param shared_path_host: HOST path to shared location.
+ :param shared_path_guest: GUEST path to shared location.
+ :param guest_prompt: preconfigured command prompt which is used
+ in execute_and_wait & wait methods
+ to detect if particular call is finished.
+ """
+ raise NotImplementedError()
+
+ def start(self):
+ """
+ Starts VNF instance.
+ """
+ raise NotImplementedError()
+
+ def stop(self):
+ """
+ Stops VNF instance.
+ """
+ raise NotImplementedError()
+
+ def execute(self, command, delay=30):
+ """
+ execute ``command`` with given ``delay``.
+
+ This method makes asynchronous call to guest system
+ and waits given ``delay`` before returning. Can be
+ used with ``wait`` method to create synchronous call.
+
+ :param command: Command to execute on guest system.
+ :param delay: Delay (in seconds) to wait after sending
+ command before returning. Please note that
+ this value can be floating point which
+ allows to pass milliseconds.
+
+ :returns: None.
+ """
+ raise NotImplementedError()
+
+ def wait(self, guest_prompt, timeout=30):
+ """
+ wait for ``guest_prompt`` on guest system for given ``timeout``.
+
+ This method ends based on two conditions:
+ * ``guest_prompt`` has been detected
+ * ``timeout`` has been reached.
+
+ :param guest_prompt: method end condition. If ``guest_prompt``
+ won't be detected during given timeout,
+ method will return False.
+ :param timeout: Time to wait for prompt (in seconds).
+ Please note that this value can be floating
+ point which allows to pass milliseconds.
+
+ :returns: True if result_cmd has been detected before
+ timeout has been reached, False otherwise.
+ """
+ raise NotImplementedError()
+
+ def execute_and_wait(self, command, timeout=30, guest_prompt=None):
+ """
+ execute ``command`` with given ``timeout``.
+
+ This method makes synchronous call to guest system
+ and waits till ``command`` execution is finished
+ (based on ``guest_prompt value) or ''timeout'' has
+ been reached.
+
+ :param command: Command to execute on guest system.
+ :param timeout: Timeout till the end of execution is not
+ detected.
+ :param guest_prompt: method end condition. If ``guest_prompt``
+ won't be detected during given timeout,
+ method will return False. If no argument
+ or None value will be passed, default
+ ``guest_prompt`` passed in __init__
+ method will be used.
+
+ :returns: True if end of execution has been detected
+ before timeout has been reached, False otherwise.
+ """
+ raise NotImplementedError()