Tunnel loadbalancing policy: phase1 support
diff --git a/cli/command.py b/cli/command.py
index b1fa227..d99ed41 100755
--- a/cli/command.py
+++ b/cli/command.py
@@ -1750,16 +1750,34 @@
                     command_mode = command.get('mode')
                     if command_mode and command_mode[-1] == '*':
                         command_mode = command_mode[:-1]
-                    if command_mode and sdnsh.current_mode() != command_mode:
+                    if (command_mode == 'config-tunnel' and
+                       sdnsh.current_mode() == 'config-tunnelset-tunnel'):
+                        command_mode = 'config-tunnelset-tunnel'
+                    if (command_mode and 
+                        ((_is_list(command_mode) and not sdnsh.current_mode() in command_mode) 
+                         or (sdnsh.current_mode() != command_mode))):
+
                         # this is completing a different item on the stack.
                         # XXX needs better api's here.
                         found_in_mode_stack = False
-                        for x in sdnsh.mode_stack:
-                            if x['mode_name'] == command_mode:
-                                found_in_mode_stack = True
-                                curr_obj_type = x['obj_type']
-                                curr_obj_id   = x['obj']
-                                break
+                        
+                        if _is_list(command_mode):
+                            for cmd_mode in command_mode:
+                                for x in sdnsh.mode_stack:
+                                    if x['mode_name'] == cmd_mode:
+                                        found_in_mode_stack = True
+                                        curr_obj_type = x['obj_type']
+                                        curr_obj_id   = x['obj']
+                                        break
+                                if found_in_mode_stack == True:
+                                    break
+                        else:
+                            for x in sdnsh.mode_stack:
+                                if x['mode_name'] == command_mode:
+                                    found_in_mode_stack = True
+                                    curr_obj_type = x['obj_type']
+                                    curr_obj_id   = x['obj']
+                                    break
                         if not found_in_mode_stack:
                             raise error.CommandDescriptionError(
                                     'Unable to find mode %s' % command_mode, 
@@ -3865,6 +3883,14 @@
         'no-action': 'delete-objects',
     })
 
+    add_command_type('create-tunnelset', {
+        'action': 'create-tunnelset'
+    })
+    
+    add_command_type('remove-tunnelset', {
+        'action': 'remove-tunnelset'
+    })
+    
     add_command_type('create-tunnel', {
         'action': 'create-tunnel'
     })