ONOS specific CLI changes
diff --git a/cli/Makefile b/cli/Makefile
index ceb178f..4693918 100755
--- a/cli/Makefile
+++ b/cli/Makefile
@@ -18,38 +18,39 @@
 VIRTUALENV = $(WORKSPACE)/ve
 TOOLS = $(WORKSPACE)/tools
 BUILD_DIR = $(SOURCE)/build
-FL_DIR = $(SOURCE)/sdnplatform
+#FL_DIR = $(SOURCE)/sdnplatform
 
 all: build-sdnplatform
 
 clean-python:
-	printf 'import setuptools\nsetuptools.setup(name="django_cassandra", version="0.1", packages=["django_cassandra", "django_cassandra.db"])' >$(SOURCE)/django_cassandra_backend/setup.py
+#	printf 'import setuptools\nsetuptools.setup(name="django_cassandra", version="0.1", packages=["django_cassandra", "django_cassandra.db"])' >$(SOURCE)/django_cassandra_backend/setup.py
 	echo '$(SOURCE)' >$$(python -c 'import distutils; print distutils.sysconfig.get_python_lib()')/sdnplatform.pth
 	set -e; \
 	cd $(SOURCE); \
-	for p in django_cassandra_backend/setup.py sdncon/setup.py cli/setup.py; do \
+#	for p in django_cassandra_backend/setup.py sdncon/setup.py cli/setup.py; do
+	for p in sdncon/setup.py cli/setup.py; do \
 	  echo "+++ Preparing Python virtualenv for $$p"; \
 	  ( cd $$(dirname $$p); rm -rf *.egg-info; ARCHFLAGS="-arch i386 -arch x86_64" python $$(basename $$p) develop ); \
 	done
 	( cd $(SOURCE)/cli ; tools/rebuild_model.sh )
 
 clean-sdnplatform:
-	cd $(FL_DIR); ant clean
+#	cd $(FL_DIR); ant clean
 
 clean: reset-cassandra clean-sdnplatform clean-python
 
 stop-cassandra:
-	$(BUILD_DIR)/kill-port-wait.sh -p 9160
-	@echo "+++ Cassandra stopped"
+#	$(BUILD_DIR)/kill-port-wait.sh -p 9160
+#	@echo "+++ Cassandra stopped"
 
 reset-cassandra: stop-cassandra
-	rm -rf $(VIRTUALENV)/cassandra
-	@echo "+++ Cassandra db deleted"
+#	rm -rf $(VIRTUALENV)/cassandra
+#	@echo "+++ Cassandra db deleted"
 
 cassandra: start-cassandra
 start-cassandra:
-	$(BUILD_DIR)/start-and-wait-for-port.sh -p 9160 -l $(VIRTUALENV)/log/cassandra.log $(TOOLS)/cassandra/bin/cassandra
-	@echo "+++ Cassandra running"
+#	$(BUILD_DIR)/start-and-wait-for-port.sh -p 9160 -l $(VIRTUALENV)/log/cassandra.log $(TOOLS)/cassandra/bin/cassandra
+#	@echo "+++ Cassandra running"
 
 stop-sdncon:
 	$(BUILD_DIR)/kill-port-wait.sh -p 8000
@@ -68,18 +69,18 @@
 	@echo "+++ sdncon running"
 
 stop-sdnplatform:
-	while pid=$$(lsof -t -iTCP:6633 -sTCP:LISTEN); do kill $${pid}; sleep 1; done
-	@echo "+++ SDN Platform stopped"
+#	while pid=$$(lsof -t -iTCP:6633 -sTCP:LISTEN); do kill $${pid}; sleep 1; done
+#	@echo "+++ SDN Platform stopped"
 
 start-sdnplatform: start-cassandra
-	if ! lsof -iTCP:6633 -sTCP:LISTEN >/dev/null; then \
-	  ( cd $(SOURCE)/sdnplatform; ant run &>$(VIRTUALENV)/log/sdnplatform.log & ); \
-	fi
-	while ! nc -z localhost 6633; do sleep 1; done
-	@echo "+++ SDN Platform running"
+#	if ! lsof -iTCP:6633 -sTCP:LISTEN >/dev/null; then \
+#	  ( cd $(SOURCE)/sdnplatform; ant run &>$(VIRTUALENV)/log/sdnplatform.log & ); \
+#	fi
+#	while ! nc -z localhost 6633; do sleep 1; done
+#	@echo "+++ SDN Platform running"
 
 eclipse:
-	cd $(FL_DIR); ant eclipse
+#	cd $(FL_DIR); ant eclipse
 
 build-sdnplatform:
-	cd $(FL_DIR); ant dist
+#	cd $(FL_DIR); ant dist
diff --git a/cli/cli/cli.py b/cli/cli/cli.py
index afe6188..b03f6dc 100755
--- a/cli/cli/cli.py
+++ b/cli/cli/cli.py
@@ -237,6 +237,7 @@
 FT_TIMEOUT = "FilterTimeout"
 FT_PERIOD_DEFAULT = 300
 
+onos=1
 #
 # --------------------------------------------------------------------------------
 # 
@@ -520,11 +521,18 @@
         #
         # commands which start at 'login'
         #
-        self.command_nested_dict['login'] = [ 'show', 'logout', 'exit',
+        if onos == 0:
+            self.command_nested_dict['login'] = [ 'show', 'logout', 'exit',
                                               'history', 'help', 'echo',
                                               'date', 'trace', 'traceroute',
                                               'ping', 'test', 'version',
                                               'connect', 'watch', 'no' ]
+        else:
+            self.command_nested_dict['login'] = [ 'show', 'logout', 'exit',
+                                              'history', 'help', 'echo',
+                                              'date', 'trace',
+                                              'ping', 'test', 'version',
+                                              'connect', 'watch', 'no' ]
 
         self.command_nested_dict['enable'] = [ 'clear', 'end' ]
 
@@ -7747,7 +7755,7 @@
         while self.run:
             # Get command line - this will use the command completion above
             try:
-                rest_to_model.validate_switch()
+                #rest_to_model.validate_switch()
                 url_cache.clear_cached_urls()
                 line = raw_input(self.prompt)
                 if self.batch:
diff --git a/cli/cli/desc/version200/switch.py b/cli/cli/desc/version200/switch.py
index 67facf5..541b3a5 100755
--- a/cli/cli/desc/version200/switch.py
+++ b/cli/cli/desc/version200/switch.py
@@ -951,12 +951,9 @@
     'switch' : {
         'field-orderings' : {
             'default' : [ 'Idx', '@', 'switch-alias', 'connected-since',
-                          'ip-address', 'tunnelCapable', 'tunnelEnabled',
-                          'tunnelState', 'core-switch', ],
+                          'ip-address', ],
             'details' : [ 'Idx','@', 'switch-alias', 'connected-since',
-                          'ip-address',
-                          'tunnelCapable', 'tunnelEnabled', 'tunnelState',
-                          'core-switch', ],
+                          'ip-address', ],
             'brief'   : [ 'Idx', '@', 'switch-alias', 'connected-since',
                           'ip-address', ],
             },
diff --git a/cli/cli/rest_to_model.py b/cli/cli/rest_to_model.py
index d061277..692b3e7 100755
--- a/cli/cli/rest_to_model.py
+++ b/cli/cli/rest_to_model.py
@@ -51,6 +51,7 @@
     to move model requests to specific url requests
     """
 
+    onos = 1
     startswith = '__startswith'
     data = dict(data)
 
@@ -389,62 +390,68 @@
                 continue
             if switch_prefix and not entry['dpid'].startswith(switch_prefix):
                 continue
-
-            attrs = entry['attributes']
-            actions = entry['actions']
-            capabilities = entry['capabilities']
-            inet_address = entry.get('inetAddress')
-            ip_address = ''
-            tcp_port = ''
-            if inet_address:
-                # Current Java value looks like: /192.168.2.104:38420
-                inet_parts = inet_address.split(':')
-                ip_address = inet_parts[0][1:]
-                tcp_port = inet_parts[1]
-
-            result.append({
-               'dpid'                : entry['dpid'],
-               'connected-since'     : entry['connectedSince'],
-               'ip-address'          : ip_address,
-               'tcp-port'            : tcp_port,
-               'actions'             : actions,
-               'capabilities'        : capabilities,
-               'dp-desc'             : attrs.get('DescriptionData', ''),
-               'fast-wildcards'      : attrs.get('FastWildcards', ''),
-               'supports-nx-role'    : attrs.get('supportsNxRole', ''),
-               'supports-ofpp-flood' : attrs.get('supportsOfppFlood', ''),
-               'supports-ofpp-table' : attrs.get('supportsOfppTable', ''),
-               'core-switch'         : False,
-            })
-
+            if onos == 1:
+                result.append({
+                   'dpid'                : entry['dpid'],
+                   'connected-since'     : 0,
+                   'ip-address'          : 0,
+                })
+            else:
+                attrs = entry['attributes']
+                actions = entry['actions']
+                capabilities = entry['capabilities']
+                inet_address = entry.get('inetAddress')
+                ip_address = ''
+                tcp_port = ''
+                if inet_address:
+                    # Current Java value looks like: /192.168.2.104:38420
+                    inet_parts = inet_address.split(':')
+                    ip_address = inet_parts[0][1:]
+                    tcp_port = inet_parts[1]
+    
+                result.append({
+                   'dpid'                : entry['dpid'],
+                   'connected-since'     : entry['connectedSince'],
+                   'ip-address'          : ip_address,
+                   'tcp-port'            : tcp_port,
+                   'actions'             : actions,
+                   'capabilities'        : capabilities,
+                   'dp-desc'             : attrs.get('DescriptionData', ''),
+                   'fast-wildcards'      : attrs.get('FastWildcards', ''),
+                   'supports-nx-role'    : attrs.get('supportsNxRole', ''),
+                   'supports-ofpp-flood' : attrs.get('supportsOfppFlood', ''),
+                   'supports-ofpp-table' : attrs.get('supportsOfppTable', ''),
+                   'core-switch'         : False,
+                })
         # now add switch-config
 
         switch_config = sdnsh.rest_query_objects('switch-config', data)
         known_dpids = dict([[x['dpid'], x] for x in result])
 
-        for sw in switch_config:
-            dpid = sw['dpid']
-            if not dpid in known_dpids:
-                # be sensitive to search fields:
-                query_match = True
-                if len(data):
-                    for (d, dv) in data.items():
-                        # other ops aside from '='?
-                        if d.endswith(startswith):
-                            fn = d[:-len(startswith)]
-                            if not fn in sw or not sw[fn].startswith(dv):
+        if onos == 0:
+            for sw in switch_config:
+                dpid = sw['dpid']
+                if not dpid in known_dpids:
+                    # be sensitive to search fields:
+                    query_match = True
+                    if len(data):
+                        for (d, dv) in data.items():
+                            # other ops aside from '='?
+                            if d.endswith(startswith):
+                                fn = d[:-len(startswith)]
+                                if not fn in sw or not sw[fn].startswith(dv):
+                                    query_match = False
+                            elif (not d in sw) or dv != sw[d]:
                                 query_match = False
-                        elif (not d in sw) or dv != sw[d]:
-                            query_match = False
-                            break
-
-                if query_match:
-                    sw['ip-address'] = ''
-                    sw['tcp-port'] = ''
-                    sw['connected-since'] = ''
-                    result.append(sw)
-            else:
-                known_dpids[dpid].update(sw)
+                                break
+    
+                    if query_match:
+                        sw['ip-address'] = ''
+                        sw['tcp-port'] = ''
+                        sw['connected-since'] = ''
+                        result.append(sw)
+                else:
+                    known_dpids[dpid].update(sw)
     elif obj_type == 'interfaces':
 
         # These are called interfaces because the primary
@@ -476,15 +483,19 @@
                 continue
 
             for p in entry['ports']:
-                portNumber = p['portNumber']
-                name = p['name']
+                if onos == 0:
+                    portNumber = p['portNumber']
+                    name = p['name']
+                else:
+                    portNumber = p['number']
+                    name = 0
 
                 if name_match and name.lower() != name_match:
                     continue
                 if name_prefix and not name.lower().startswith(name_prefix):
                     continue
-
-                result.append({
+                if onos == 0:
+                    result.append({
                                     'id'                 : '%s|%s' % (dpid,name),
                                     'portNumber'         : portNumber,
                                     'switch'             : dpid,
@@ -494,7 +505,20 @@
                                     'advertisedFeatures' : p['advertisedFeatures'],
                                     'currentFeatures'    : p['currentFeatures'],
                                     'hardwareAddress'    : p['hardwareAddress'],
-                              })
+                                  })
+                else:
+                    result.append({
+                                    'id'                 : '%s|%s' % (dpid,name),
+                                    'portNumber'         : portNumber,
+                                    'switch'             : dpid,
+                                    'portName'           : 0,
+                                    'config'             : 0,
+                                    'state'              : p['state'],
+                                    'advertisedFeatures' : 0,
+                                    'currentFeatures'    : 0,
+                                    'hardwareAddress'    : 0,
+                                  })
+                
 
     #
     # order the result
diff --git a/cli/deps/apache-cassandra-1.0.10-bin.tar.gz b/cli/deps/apache-cassandra-1.0.10-bin.tar.gz
deleted file mode 100755
index 03a3bbf..0000000
--- a/cli/deps/apache-cassandra-1.0.10-bin.tar.gz
+++ /dev/null
Binary files differ
diff --git a/cli/sdncon/rest/views.py b/cli/sdncon/rest/views.py
index 6355c35..be01800 100755
--- a/cli/sdncon/rest/views.py
+++ b/cli/sdncon/rest/views.py
@@ -47,7 +47,12 @@
 JSON_CONTENT_TYPE = 'application/json'
 BINARY_DATA_CONTENT_TYPE = 'application/octet-stream'
 
-CONTROLLER_URL_PREFIX = 'http://localhost:8080/wm/'
+onos = 1
+
+if onos == 1:
+    CONTROLLER_URL_PREFIX = 'http://localhost:9000/wm/'
+else:
+    CONTROLLER_URL_PREFIX = 'http://localhost:8080/wm/'
 
 def controller_url(*elements):
     return CONTROLLER_URL_PREFIX + '/'.join(elements)
@@ -675,18 +680,30 @@
 
 @safe_rest_view
 def do_device(request):
-    return get_sdnplatform_query(request, "device")
+    if onos == 0:
+        return get_sdnplatform_query(request, "device")
+    else:
+        url = controller_url("onos", "topology", "hosts")
+        if request.META['QUERY_STRING']:
+            url += '?' + request.META['QUERY_STRING']
+        return get_sdnplatform_response(url)        
 
 @safe_rest_view
 def do_switches(request):
-    url = controller_url("core", "controller", "switches", "json")
+    if onos == 0:
+        url = controller_url("core", "controller", "switches", "json")
+    else:
+        url = controller_url("onos", "topology", "switches")
     if request.META['QUERY_STRING']:
         url += '?' + request.META['QUERY_STRING']
     return get_sdnplatform_response(url)        
 
 @safe_rest_view
 def do_links(request):
-    url = controller_url("topology", "links", "json")
+    if onos == 0:
+        url = controller_url("topology", "links", "json")
+    else:
+        url = controller_url("onos", "topology", "links")
     if request.META['QUERY_STRING']:
         url += '?' + request.META['QUERY_STRING']
     return get_sdnplatform_response(url)        
diff --git a/cli/sdncon/settings.py b/cli/sdncon/settings.py
index cc2c62e..97f766e 100755
--- a/cli/sdncon/settings.py
+++ b/cli/sdncon/settings.py
@@ -17,7 +17,7 @@
 # Django settings for sdncon project.
 
 import os, sys
-from cassandra.ttypes import ConsistencyLevel
+#from cassandra.ttypes import ConsistencyLevel
 
 DEBUG = True
 DEBUG_PROPAGATE_EXCEPTIONS = DEBUG
@@ -31,7 +31,8 @@
 
 DATABASES = {
     'default': {
-        'ENGINE': 'django_cassandra.db',
+        #'ENGINE': 'django_cassandra.db',
+        'ENGINE': 'django.db.backends.sqlite3',
         'NAME': 'sdncon',
         'USER': '',                      # Not used with sqlite3.
         'PASSWORD': '',                  # Not used with sqlite3.
@@ -155,7 +156,7 @@
     'djangotoolbox',
     'sdncon.rest',
     'sdncon.controller',
-    'django_cassandra',
+    #'django_cassandra',
     'sdncon.coreui',
     'sdncon.clusterAdmin',
     #'sdncon.account',
diff --git a/cli/setup.sh b/cli/setup.sh
index 3046003..6a1ad34 100755
--- a/cli/setup.sh
+++ b/cli/setup.sh
@@ -22,8 +22,8 @@
 
 DJANGO_PKG=django-nonrel-20111024-be48c152abc6.zip
 DJANGO_TOOLBOX_PKG=djangotoolbox-20111024-957ea5f68040.zip
-CASSANDRA_VERSION=1.0.10
-CASSANDRA_PKG=apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz
+#CASSANDRA_VERSION=1.0.10
+#CASSANDRA_PKG=apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz
 THRIFT_VERSION=0.7.0
 THRIFT_PKG=thrift-${THRIFT_VERSION}.tar.gz
 
@@ -34,8 +34,8 @@
 cp ${DEPS}/${DJANGO_PKG} ${TOOLS}/
 unzip -q -d ${TOOLS}/.tmp ${DEPS}/${DJANGO_TOOLBOX_PKG}
 cp ${DEPS}/${DJANGO_TOOLBOX_PKG} ${TOOLS}/
-tar -z -x -C ${TOOLS} -f ${DEPS}/${CASSANDRA_PKG}
-mv ${TOOLS}/apache-cassandra-${CASSANDRA_VERSION} ${TOOLS}/cassandra
+#tar -z -x -C ${TOOLS} -f ${DEPS}/${CASSANDRA_PKG}
+#mv ${TOOLS}/apache-cassandra-${CASSANDRA_VERSION} ${TOOLS}/cassandra
 tar -z -x -C ${TOOLS} -f ${DEPS}/${THRIFT_PKG}
 mv ${TOOLS}/thrift-${THRIFT_VERSION} ${TOOLS}/thrift
 
@@ -63,28 +63,28 @@
   python setup.py -q sdist -f --dist-dir=${TOOLS}
   python setup.py -q install
 )
-(
-  cd ${TOOLS}/cassandra/interface
-  ${TOOLS}/thrift/compiler/cpp/thrift --gen py --gen java cassandra.thrift
-  cd gen-py
-  echo -e "import distutils.core\ndistutils.core.setup(name=\"cassandra-py\", version=\"${THRIFT_VERSION}\", packages=[\"cassandra\"])" >setup.py
-  python setup.py -q sdist -f --dist-dir=${TOOLS}
-  python setup.py -q install
-  cd ../gen-java
-  cp ${TOOLS}/thrift/lib/java/build/libthrift-${THRIFT_VERSION}.jar .
-  SLF4J_JAR=`ls -1 ${TOOLS}/thrift/lib/java/build/lib | grep slf4j-api`
-  cp ${TOOLS}/thrift/lib/java/build/lib/${SLF4J_JAR} .
-  mkdir -p build/classes
-  javac -d build/classes -cp "${SLF4J_JAR}:libthrift-${THRIFT_VERSION}.jar" org/apache/cassandra/thrift/*.java
-  cd build
-  jar cf cassandra-thrift-${CASSANDRA_VERSION}.jar -C classes org
-  #mkdir -p ${SOURCE}/sdnplatform/lib
-  #cp cassandra-thrift-${CASSANDRA_VERSION}.jar ${SOURCE}/sdnplatform/lib
-)
-sed -i.old 's#/var/lib/cassandra/#'${VIRTUALENV}'/cassandra/#;s#^rpc_address: .*#rpc_address: 0.0.0.0#;s#^partitioner: .*#partitioner: org.apache.cassandra.dht.OrderPreservingPartitioner#' ${TOOLS}/cassandra/conf/cassandra.yaml
-sed -i.old 's#/var/log/cassandra/system.log#'${VIRTUALENV}'/log/cassandra.log#' ${TOOLS}/cassandra/conf/log4j-server.properties
-sed -i.old 's#^JMX_PORT=.*#JMX_PORT="8085"#' ${TOOLS}/cassandra/conf/cassandra-env.sh
-echo 'JVM_OPTS="$JVM_OPTS -Xss160k"' >> ${TOOLS}/cassandra/conf/cassandra-env.sh
+#(
+#  cd ${TOOLS}/cassandra/interface
+#  ${TOOLS}/thrift/compiler/cpp/thrift --gen py --gen java cassandra.thrift
+#  cd gen-py
+#  echo -e "import distutils.core\ndistutils.core.setup(name=\"cassandra-py\", version=\"${THRIFT_VERSION}\", packages=[\"cassandra\"])" >setup.py
+#  python setup.py -q sdist -f --dist-dir=${TOOLS}
+#  python setup.py -q install
+#  cd ../gen-java
+#  cp ${TOOLS}/thrift/lib/java/build/libthrift-${THRIFT_VERSION}.jar .
+#  SLF4J_JAR=`ls -1 ${TOOLS}/thrift/lib/java/build/lib | grep slf4j-api`
+#  cp ${TOOLS}/thrift/lib/java/build/lib/${SLF4J_JAR} .
+#  mkdir -p build/classes
+#  javac -d build/classes -cp "${SLF4J_JAR}:libthrift-${THRIFT_VERSION}.jar" org/apache/cassandra/thrift/*.java
+#  cd build
+#  jar cf cassandra-thrift-${CASSANDRA_VERSION}.jar -C classes org
+#  #mkdir -p ${SOURCE}/sdnplatform/lib
+#  #cp cassandra-thrift-${CASSANDRA_VERSION}.jar ${SOURCE}/sdnplatform/lib
+#)
+#sed -i.old 's#/var/lib/cassandra/#'${VIRTUALENV}'/cassandra/#;s#^rpc_address: .*#rpc_address: 0.0.0.0#;s#^partitioner: .*#partitioner: org.apache.cassandra.dht.OrderPreservingPartitioner#' ${TOOLS}/cassandra/conf/cassandra.yaml
+#sed -i.old 's#/var/log/cassandra/system.log#'${VIRTUALENV}'/log/cassandra.log#' ${TOOLS}/cassandra/conf/log4j-server.properties
+#sed -i.old 's#^JMX_PORT=.*#JMX_PORT="8085"#' ${TOOLS}/cassandra/conf/cassandra-env.sh
+#echo 'JVM_OPTS="$JVM_OPTS -Xss160k"' >> ${TOOLS}/cassandra/conf/cassandra-env.sh
 
 make clean