diff options
author | 2016-09-13 11:40:12 +0800 | |
---|---|---|
committer | 2016-09-13 11:41:53 +0800 | |
commit | b731e2f1dd0972409b136aebc7b463dd72c9cfad (patch) | |
tree | 5107d7d80c19ad8076c2c97c2b5ef8d1cf3ab903 /framework/src/onos/tools/package/karaf-assembly/onos-assembly.py | |
parent | ee93993458266114c29271a481ef9ce7ce621b2a (diff) |
ONOSFW-171
O/S-SFC-ONOS scenario documentation
Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365
Signed-off-by: CNlucius <lukai1@huawei.com>
Diffstat (limited to 'framework/src/onos/tools/package/karaf-assembly/onos-assembly.py')
-rwxr-xr-x | framework/src/onos/tools/package/karaf-assembly/onos-assembly.py | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/framework/src/onos/tools/package/karaf-assembly/onos-assembly.py b/framework/src/onos/tools/package/karaf-assembly/onos-assembly.py deleted file mode 100755 index 1e394bf6..00000000 --- a/framework/src/onos/tools/package/karaf-assembly/onos-assembly.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python -''' - Builds synthetic feature file that includes all core, provider, and application - features, so that we can pre-stage all bundles required to run ONOS off-line. -''' - -import os -import xml.etree.ElementTree as ET - -FEATURE_TAG = '{http://karaf.apache.org/xmlns/features/v1.2.0}feature' -STAGED_REPOS = 'target/staged-repos.xml' - -if 'ONOS_ROOT' in os.environ: - ONOS_ROOT = os.environ['ONOS_ROOT'] -else: - # fallback to working directory if ONOS_ROOT is not set - ONOS_ROOT = os.getcwd() - -def findFeatureFiles(path=ONOS_ROOT): - #only descend into target directories that have pom - for root, dirs, files in os.walk(path): - if 'pom.xml' not in files: - if 'target' in dirs: - #pruning target dir with no pom.xml - dirs.remove('target') - if '/target' in root: - if '/classes/' in root: - #filter out features.xml for maven-plugin - continue - for f in files: - if f.endswith('features.xml'): - yield os.path.join(root, f) - -def featuresFromFile(file): - features = [] - tree = ET.parse(file) - root = tree.getroot() - for feature in root.findall(FEATURE_TAG): - features.append(feature.attrib['name']) - return features - -if __name__ == '__main__': - outputTree = ET.Element('features') - uberFeature = ET.Element('feature', attrib={'name' : 'onos-uber-synthetic'}) - for file in findFeatureFiles(): - features = featuresFromFile(file) - if len(features) > 0: - ET.SubElement(outputTree, 'repository').text = 'file:%s' % file - for feature in features: - ET.SubElement(uberFeature, 'feature').text = feature - outputTree.append(uberFeature) - - outputFile = os.path.join(os.path.dirname(os.path.realpath(__file__)), STAGED_REPOS) - outputDir = os.path.dirname(outputFile) - if not os.path.exists(outputDir): - os.mkdir(outputDir) - ET.ElementTree(outputTree).write(outputFile) - - import sys - if '-d' in sys.argv: - # -------- TODO for debug only -------- - def indent(elem, level=0): - #function borrowed from: http://effbot.org/zone/element-lib.htm#prettyprint - i = "\n" + level*" " - if len(elem): - if not elem.text or not elem.text.strip(): - elem.text = i + " " - if not elem.tail or not elem.tail.strip(): - elem.tail = i - for elem in elem: - indent(elem, level+1) - if not elem.tail or not elem.tail.strip(): - elem.tail = i - else: - if level and (not elem.tail or not elem.tail.strip()): - elem.tail = i - - print 'Writing to file:', outputFile - indent(outputTree) - ET.dump(outputTree) |