Committed by
Gerrit Code Review
Updating onos-setup-karaf for security-mode ONOS
Change-Id: I8e9dd907e5a135262603694753fd8008289c0d35
Showing
1 changed file
with
48 additions
and
7 deletions
... | @@ -20,12 +20,23 @@ function validateIp { | ... | @@ -20,12 +20,23 @@ function validateIp { |
20 | ifconfig | awk '{ print $2}' | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | grep $1 | 20 | ifconfig | awk '{ print $2}' | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | grep $1 |
21 | } | 21 | } |
22 | 22 | ||
23 | -# Clean the previous Karaf directory if requested and if it exists. | 23 | +# Parse optional arguments |
24 | -if [ "$1" = "clean" ]; then | 24 | +while [[ $# > 0 ]]; do |
25 | - shift | 25 | +case $1 in |
26 | - CLEAN="true" | 26 | + clean) |
27 | - [ -d $KARAF_ROOT ] && rm -fr $KARAF_ROOT $STAGE/apps $STAGE/config | 27 | + # Clean the previous Karaf directory if requested and if it exists. |
28 | -fi | 28 | + CLEAN="true" |
29 | + [ -d $KARAF_ROOT ] && rm -fr $KARAF_ROOT $STAGE/apps $STAGE/config | ||
30 | + ;; | ||
31 | + secure) | ||
32 | + SECURE="true" | ||
33 | + ;; | ||
34 | + *) | ||
35 | + break | ||
36 | + ;; | ||
37 | +esac | ||
38 | +shift | ||
39 | +done | ||
29 | 40 | ||
30 | ONOS_IP=${ONOS_IP:-127.0.0.1} | 41 | ONOS_IP=${ONOS_IP:-127.0.0.1} |
31 | IP="${1:-$ONOS_IP}" | 42 | IP="${1:-$ONOS_IP}" |
... | @@ -43,7 +54,7 @@ fi | ... | @@ -43,7 +54,7 @@ fi |
43 | 54 | ||
44 | # If IP is still not surmised or if usage was requested, show usage and IPs. | 55 | # If IP is still not surmised or if usage was requested, show usage and IPs. |
45 | if [ -z "$IP" -o "$1" = "-?" -o "$1" = "-h" -o "$1" = "--help" ]; then | 56 | if [ -z "$IP" -o "$1" = "-?" -o "$1" = "-h" -o "$1" = "--help" ]; then |
46 | - echo "usage: $(basename $0) [clean] <ip-address>" | 57 | + echo "usage: $(basename $0) [clean] [secure] <ip-address>" |
47 | echo "Available IP addresses are:" | 58 | echo "Available IP addresses are:" |
48 | validateIp . | 59 | validateIp . |
49 | exit 1 | 60 | exit 1 |
... | @@ -71,6 +82,32 @@ if [ ! -d $KARAF_ROOT ]; then | ... | @@ -71,6 +82,32 @@ if [ ! -d $KARAF_ROOT ]; then |
71 | rm -rf $KARAF_ROOT/demos | 82 | rm -rf $KARAF_ROOT/demos |
72 | fi | 83 | fi |
73 | 84 | ||
85 | +if [ "$SECURE" = "true" ]; then | ||
86 | + echo "Enabling security mode ONOS..." | ||
87 | + | ||
88 | + # SM-ONOS step 1: downgrade felix config admin | ||
89 | + FELIX_CFG_ADMIN=${FELIX_CFG_ADMIN:-~/Downloads/org.apache.felix.configadmin-1.6.0.jar} | ||
90 | + if [ ! -f $FELIX_CFG_ADMIN ]; then | ||
91 | + echo "Downloading $FELIX_CFG_ADMIN..." | ||
92 | + curl -sL http://archive.apache.org/dist/felix/org.apache.felix.configadmin-1.6.0.jar > $FELIX_CFG_ADMIN | ||
93 | + fi | ||
94 | + [ ! -f $FELIX_CFG_ADMIN ] && \ | ||
95 | + echo "Felix config admin not found: $FELIX_CFG_ADMIN" && exit 1 | ||
96 | + | ||
97 | + mkdir -p $KARAF_ROOT/system/org/apache/felix/org.apache.felix.configadmin/1.6.0 | ||
98 | + cp $FELIX_CFG_ADMIN $KARAF_ROOT/system/org/apache/felix/org.apache.felix.configadmin/1.6.0 | ||
99 | + perl -pi.old -e "s|org.apache.felix.configadmin/1.8.0|org.apache.felix.configadmin/1.6.0|g" \ | ||
100 | + $KARAF_ROOT/etc/startup.properties | ||
101 | + | ||
102 | + # SM-ONOS step 2: stage ONOS Felix framework security (will get downloaded on demand); end | ||
103 | + | ||
104 | + # SM-ONOS step 3.1: configure karaf | ||
105 | + perl -pi.old -e "s|#java.security.policy|java.security.policy|" \ | ||
106 | + $KARAF_ROOT/etc/system.properties | ||
107 | + perl -pi.old -e "s|#org.osgi.framework.security|org.osgi.framework.security|" \ | ||
108 | + $KARAF_ROOT/etc/system.properties | ||
109 | +fi | ||
110 | + | ||
74 | if ! grep -q "/onos-features/" $KARAF_ROOT/etc/org.apache.karaf.features.cfg; then | 111 | if ! grep -q "/onos-features/" $KARAF_ROOT/etc/org.apache.karaf.features.cfg; then |
75 | # Patch the Apache Karaf distribution file to add ONOS features repository | 112 | # Patch the Apache Karaf distribution file to add ONOS features repository |
76 | echo "Adding ONOS feature repository..." | 113 | echo "Adding ONOS feature repository..." |
... | @@ -81,6 +118,10 @@ fi | ... | @@ -81,6 +118,10 @@ fi |
81 | if ! grep -q ",onos-api," $KARAF_ROOT/etc/org.apache.karaf.features.cfg; then | 118 | if ! grep -q ",onos-api," $KARAF_ROOT/etc/org.apache.karaf.features.cfg; then |
82 | # Patch the Apache Karaf distribution file to load default ONOS boot features | 119 | # Patch the Apache Karaf distribution file to load default ONOS boot features |
83 | export BOOT_FEATURES="webconsole,onos-api,onos-core,onos-incubator,onos-cli,onos-rest,onos-gui" | 120 | export BOOT_FEATURES="webconsole,onos-api,onos-core,onos-incubator,onos-cli,onos-rest,onos-gui" |
121 | + if [ "$SECURE" = "true" ]; then | ||
122 | + # SM-ONOS Step 3.2: add onos-security to featuresBoot | ||
123 | + export BOOT_FEATURES="onos-security,$BOOT_FEATURES" | ||
124 | + fi | ||
84 | echo "Adding ONOS boot features $BOOT_FEATURES..." | 125 | echo "Adding ONOS boot features $BOOT_FEATURES..." |
85 | perl -pi.old -e "s|^(featuresBoot=.*)|\1,$BOOT_FEATURES|" \ | 126 | perl -pi.old -e "s|^(featuresBoot=.*)|\1,$BOOT_FEATURES|" \ |
86 | $KARAF_ROOT/etc/org.apache.karaf.features.cfg | 127 | $KARAF_ROOT/etc/org.apache.karaf.features.cfg | ... | ... |
-
Please register or login to post a comment