tom

Enhanced a number of the test scripts and replaced hazelcast.xml with a mildly a…

…ugmented version of the 3.3 one.
1 package org.onlab.onos.cluster; 1 package org.onlab.onos.cluster;
2 2
3 -import org.onlab.onos.net.MastershipRole;
4 import org.onlab.onos.net.provider.Provider; 3 import org.onlab.onos.net.provider.Provider;
5 4
6 /** 5 /**
......
1 package org.onlab.onos.store.impl; 1 package org.onlab.onos.store.impl;
2 2
3 +import com.hazelcast.config.Config;
4 +import com.hazelcast.config.FileSystemXmlConfig;
3 import com.hazelcast.core.Hazelcast; 5 import com.hazelcast.core.Hazelcast;
4 import com.hazelcast.core.HazelcastInstance; 6 import com.hazelcast.core.HazelcastInstance;
5 import de.javakaffee.kryoserializers.URISerializer; 7 import de.javakaffee.kryoserializers.URISerializer;
...@@ -25,6 +27,7 @@ import org.onlab.util.KryoPool; ...@@ -25,6 +27,7 @@ import org.onlab.util.KryoPool;
25 import org.slf4j.Logger; 27 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory; 28 import org.slf4j.LoggerFactory;
27 29
30 +import java.io.FileNotFoundException;
28 import java.net.URI; 31 import java.net.URI;
29 import java.util.ArrayList; 32 import java.util.ArrayList;
30 import java.util.HashMap; 33 import java.util.HashMap;
...@@ -36,6 +39,8 @@ import java.util.HashMap; ...@@ -36,6 +39,8 @@ import java.util.HashMap;
36 @Service 39 @Service
37 public class StoreManager implements StoreService { 40 public class StoreManager implements StoreService {
38 41
42 + private static final String HAZELCAST_XML_FILE = "etc/hazelcast.xml";
43 +
39 private final Logger log = LoggerFactory.getLogger(getClass()); 44 private final Logger log = LoggerFactory.getLogger(getClass());
40 45
41 protected HazelcastInstance instance; 46 protected HazelcastInstance instance;
...@@ -44,9 +49,14 @@ public class StoreManager implements StoreService { ...@@ -44,9 +49,14 @@ public class StoreManager implements StoreService {
44 49
45 @Activate 50 @Activate
46 public void activate() { 51 public void activate() {
47 - instance = Hazelcast.newHazelcastInstance(); 52 + try {
53 + Config config = new FileSystemXmlConfig(HAZELCAST_XML_FILE);
54 + instance = Hazelcast.newHazelcastInstance(config);
48 setupKryoPool(); 55 setupKryoPool();
49 log.info("Started"); 56 log.info("Started");
57 + } catch (FileNotFoundException e) {
58 + log.error("Unable to configure Hazelcast", e);
59 + }
50 } 60 }
51 61
52 /** 62 /**
......
...@@ -41,7 +41,7 @@ alias pp='python -m json.tool' ...@@ -41,7 +41,7 @@ alias pp='python -m json.tool'
41 41
42 # Short-hand to launch API docs and sample topology viewer GUI 42 # Short-hand to launch API docs and sample topology viewer GUI
43 alias docs='open $ONOS_ROOT/target/site/apidocs/index.html' 43 alias docs='open $ONOS_ROOT/target/site/apidocs/index.html'
44 -alias gui='open http://localhost:8181/onos/tvue' 44 +alias gui='onos-gui'
45 45
46 46
47 # Test related conveniences 47 # Test related conveniences
......
...@@ -16,6 +16,6 @@ env JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 ...@@ -16,6 +16,6 @@ env JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
16 script 16 script
17 [ -f /opt/onos/options ] && . /opt/onos/options 17 [ -f /opt/onos/options ] && . /opt/onos/options
18 start-stop-daemon --signal INT --start --chuid sdn \ 18 start-stop-daemon --signal INT --start --chuid sdn \
19 - --exec /opt/onos/bin/onos-ctl -- $ONOS_OPTS \ 19 + --exec /opt/onos/bin/onos-service -- $ONOS_OPTS \
20 >/opt/onos/var/stdout.log 2>/opt/onos/var/stderr.log 20 >/opt/onos/var/stdout.log 2>/opt/onos/var/stderr.log
21 end script 21 end script
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 -<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.2.xsd" 2 +<!--
3 + ~ Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved.
4 + ~
5 + ~ Licensed under the Apache License, Version 2.0 (the "License");
6 + ~ you may not use this file except in compliance with the License.
7 + ~ You may obtain a copy of the License at
8 + ~
9 + ~ http://www.apache.org/licenses/LICENSE-2.0
10 + ~
11 + ~ Unless required by applicable law or agreed to in writing, software
12 + ~ distributed under the License is distributed on an "AS IS" BASIS,
13 + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 + ~ See the License for the specific language governing permissions and
15 + ~ limitations under the License.
16 + -->
17 +
18 +<!--
19 + The default Hazelcast configuration. This is used when:
20 +
21 + - no hazelcast.xml if present
22 +
23 +-->
24 +<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.3.xsd"
3 xmlns="http://www.hazelcast.com/schema/config" 25 xmlns="http://www.hazelcast.com/schema/config"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 26 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
5 <group> 27 <group>
...@@ -24,18 +46,6 @@ ...@@ -24,18 +46,6 @@
24 <tcp-ip enabled="false"> 46 <tcp-ip enabled="false">
25 <interface>127.0.0.1</interface> 47 <interface>127.0.0.1</interface>
26 </tcp-ip> 48 </tcp-ip>
27 - <aws enabled="false">
28 - <access-key>my-access-key</access-key>
29 - <secret-key>my-secret-key</secret-key>
30 - <!--optional, default is us-east-1 -->
31 - <region>us-west-1</region>
32 - <!--optional, default is ec2.amazonaws.com. If set, region shouldn't be set as it will override this property -->
33 - <host-header>ec2.amazonaws.com</host-header>
34 - <!-- optional, only instances belonging to this group will be discovered, default will try all running instances -->
35 - <security-group-name>hazelcast-sg</security-group-name>
36 - <tag-key>type</tag-key>
37 - <tag-value>hz-nodes</tag-value>
38 - </aws>
39 </join> 49 </join>
40 <interfaces enabled="true"> 50 <interfaces enabled="true">
41 <interface>192.168.56.*</interface> 51 <interface>192.168.56.*</interface>
...@@ -61,9 +71,9 @@ ...@@ -61,9 +71,9 @@
61 </symmetric-encryption> 71 </symmetric-encryption>
62 </network> 72 </network>
63 <partition-group enabled="false"/> 73 <partition-group enabled="false"/>
64 - <executor-service> 74 + <executor-service name="default">
65 <pool-size>16</pool-size> 75 <pool-size>16</pool-size>
66 - <!-- Queue capacity. 0 means Integer.MAX_VALUE --> 76 + <!--Queue capacity. 0 means Integer.MAX_VALUE.-->
67 <queue-capacity>0</queue-capacity> 77 <queue-capacity>0</queue-capacity>
68 </executor-service> 78 </executor-service>
69 <queue name="default"> 79 <queue name="default">
...@@ -81,13 +91,14 @@ ...@@ -81,13 +91,14 @@
81 fail-safety. 0 means no backup. 91 fail-safety. 0 means no backup.
82 --> 92 -->
83 <backup-count>1</backup-count> 93 <backup-count>1</backup-count>
94 +
84 <!-- 95 <!--
85 Number of async backups. 0 means no backup. 96 Number of async backups. 0 means no backup.
86 --> 97 -->
87 <async-backup-count>0</async-backup-count> 98 <async-backup-count>0</async-backup-count>
99 +
88 <empty-queue-ttl>-1</empty-queue-ttl> 100 <empty-queue-ttl>-1</empty-queue-ttl>
89 </queue> 101 </queue>
90 -
91 <map name="default"> 102 <map name="default">
92 <!-- 103 <!--
93 Data type that will be used for storing recordMap. 104 Data type that will be used for storing recordMap.
...@@ -97,6 +108,7 @@ ...@@ -97,6 +108,7 @@
97 OFFHEAP : values will be stored in non-heap region of JVM 108 OFFHEAP : values will be stored in non-heap region of JVM
98 --> 109 -->
99 <in-memory-format>BINARY</in-memory-format> 110 <in-memory-format>BINARY</in-memory-format>
111 +
100 <!-- 112 <!--
101 Number of backups. If 1 is set as the backup-count for example, 113 Number of backups. If 1 is set as the backup-count for example,
102 then all entries of the map will be copied to another JVM for 114 then all entries of the map will be copied to another JVM for
...@@ -144,6 +156,12 @@ ...@@ -144,6 +156,12 @@
144 --> 156 -->
145 <eviction-percentage>25</eviction-percentage> 157 <eviction-percentage>25</eviction-percentage>
146 <!-- 158 <!--
159 + Minimum time in milliseconds which should pass before checking
160 + if a partition of this map is evictable or not.
161 + Default value is 100 millis.
162 + -->
163 + <min-eviction-check-millis>100</min-eviction-check-millis>
164 + <!--
147 While recovering from split-brain (network partitioning), 165 While recovering from split-brain (network partitioning),
148 map entries in the small cluster will merge into the bigger cluster 166 map entries in the small cluster will merge into the bigger cluster
149 based on the policy set here. When an entry merge into the 167 based on the policy set here. When an entry merge into the
...@@ -159,6 +177,7 @@ ...@@ -159,6 +177,7 @@
159 com.hazelcast.map.merge.LatestUpdateMapMergePolicy ; entry with the latest update wins. 177 com.hazelcast.map.merge.LatestUpdateMapMergePolicy ; entry with the latest update wins.
160 --> 178 -->
161 <merge-policy>com.hazelcast.map.merge.PassThroughMergePolicy</merge-policy> 179 <merge-policy>com.hazelcast.map.merge.PassThroughMergePolicy</merge-policy>
180 +
162 </map> 181 </map>
163 182
164 <multimap name="default"> 183 <multimap name="default">
...@@ -199,5 +218,6 @@ ...@@ -199,5 +218,6 @@
199 <portable-version>0</portable-version> 218 <portable-version>0</portable-version>
200 </serialization> 219 </serialization>
201 220
202 - <services enable-defaults="true" /> 221 + <services enable-defaults="true"/>
222 +
203 </hazelcast> 223 </hazelcast>
......
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# ONOS remote command-line client 3 +# ONOS remote command-line client.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ -n "$1" ] && OCI=$1 && shift 6 [ -n "$1" ] && OCI=$1 && shift
......
1 +#!/bin/bash
2 +#-------------------------------------------------------------------------------
3 +# Launches ONOS GUI on the specified node.
4 +#-------------------------------------------------------------------------------
5 +
6 +host=${1:-$OCI}
7 +host=${host:-localhost}
8 +
9 +open http://$host:8181/onos/tvue
...\ No newline at end of file ...\ No newline at end of file
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# Remotely pushes bits to a remote machine and installs ONOS. 3 +# Remotely pushes bits to a remote node and installs ONOS on it.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
......
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# Monitors remote ONOS log file. 3 +# Monitors remote ONOS log file on the specified node.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
......
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# Pushes the local id_rsa.pub to the remote ONOS host authorized_keys. 3 +# Pushes the local id_rsa.pub to the authorized_keys on a remote ONOS node.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
......
1 +#!/bin/bash
2 +#-------------------------------------------------------------------------------
3 +# Remotely administers the ONOS service on the specified node.
4 +#-------------------------------------------------------------------------------
5 +
6 +[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
7 +. $ONOS_ROOT/tools/build/envDefaults
8 +
9 +ssh $ONOS_USER@${1:-$OCI} "sudo service onos ${2:-status}"
...\ No newline at end of file ...\ No newline at end of file
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# Logs in to the remote ONOS instance. 3 +# Logs in to the remote ONOS node.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
......
...@@ -9,5 +9,5 @@ ...@@ -9,5 +9,5 @@
9 nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2) 9 nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2)
10 10
11 onos-package 11 onos-package
12 -for node in $nodes; do onos-install -f $node; done 12 +for node in $nodes; do printf "%s: " $node; onos-install -f $node; done
13 for node in $nodes; do onos-wait-for-start $node; done 13 for node in $nodes; do onos-wait-for-start $node; done
......
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# Remotely stops & uninstalls ONOS. 3 +# Remotely stops & uninstalls ONOS on the specified node.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
......
1 #!/bin/bash 1 #!/bin/bash
2 #------------------------------------------------------------------------------- 2 #-------------------------------------------------------------------------------
3 -# Waits for ONOS to reach run-level 100. 3 +# Waits for ONOS to reach run-level 100 on the specified remote node.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 6 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
......