5
from charmhelpers.core.templating import render
6
from charmhelpers.core.hookenv import config
7
from charmhelpers.core.decorators import retry_on_exception
12
"feature:install": ["onos-app-vtn-onosfw", "onos-openflow-base",
16
"openvswitch-onos-goldeneye": {
17
"feature:install": ["onos-ovsdatabase",
20
"onos-ovsdb-provider-host",
21
"onos-app-vtn-onosfw",
27
PROFILES["default"] = PROFILES["openvswitch-onos"]
30
@retry_on_exception(5, base_delay=10, exc_type=subprocess.CalledProcessError)
32
run_cmd = ["/opt/onos/bin/onos"]
34
output = subprocess.check_output(run_cmd)
38
def installed_features():
40
out = run_onos(["feature:list"])
41
for line in out.split("\n"):
42
columns = line.split("|")
44
install_flag = columns[2].replace(" ", "")
45
if install_flag == "x":
46
installed.append(columns[0].replace(" ", ""))
50
def filter_installed(features):
51
installed = installed_features()
52
whitelist = [feature for feature in features if feature not in installed]
56
def process_onos_cmds(onos_cmds):
57
features = filter_installed(onos_cmds.get("feature:install", []))
59
run_onos(["feature:install"] + features)