#
# Copyright (c) 2013 Big Switch Networks, Inc.
#
# Licensed under the Eclipse Public License, Version 1.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
#      http://www.eclipse.org/legal/epl-v10.html
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
import command
import json
import fmtcnv

"""
SWITCH_SUBMODE_COMMAND_DESCRIPTION = {
    'name'          : 'switch',
    'short-help'    : 'Enter switch submode, configure switch details',
    'mode'          : 'config*',
    'obj-type'      : 'switch-config',
    'command-type'  : 'config-submode',
    'parent-field'  : None,
    'submode-name'  : 'config-switch',
    'doc'           : 'switch|switch',
    'doc-example'   : 'switch|switch-example',
    'args' : (
        {
            'field'        : 'dpid',
            'type'         : 'dpid',
            'other'        : 'switches|dpid',
            'completion'   : [
                              'complete-alias-choice',
                              'complete-from-another',
                             ],
            'data-handler' : 'alias-to-value',
            'syntax-help'  : 'Configure a new switch with dpid',
        }
    )
}
"""
#
# ------------------------------------------------------------------------------
# show switch
#

show_switch_pipeline = (
    {
        'proc'     : 'query-table',
        'obj-type' : 'switches', # synthetic, supported by rest_to_model
        'key'      : 'dpid',
    },
    {
        'proc'       : 'join-table',
        'obj-type'   : 'switch-alias',
        'key'        : 'switch',
        'join-field' : '@',
        'add-field'  : 'switch-alias|id',
    },
    {
        'proc'       : 'join-rest',
        'url'        : 'tunnel-manager/all',
        'rest-type'  : 'dict-of-dict-of-switch',
        'key'        : 'switch',
        'join-field' : '@',
    },
    {
        'proc'     : 'display',
        'format'   : 'switch',
    },
)

SWITCH_SHOW_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'command-type'        : 'display-table',
    'all-help'            : 'Show switch information',
    'short-help'          : 'Show switch summary',
    'obj-type'            : 'switches',
    'doc'                 : 'switch|show',
    'doc-example'         : 'switch|show-example',
    'args' : (
        {
            'token'  : 'switch',
            'action' : show_switch_pipeline,
            'doc'    : 'switch|show',
        },
    )
}

SWITCH_SHOW_WITH_DPID_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'short-help'          : 'Show switch details via query',
    'no-supported'        : False,
    'parent-field'        : None,
    'obj-type'            : 'switches',
    'args' : (
        {
            'token'        : 'switch',
            'obj-type'     : 'switches',
            'command-type' : 'display-table',
            # 'command-type' : 'display-rest',
            'action'       : show_switch_pipeline,
        },
        {
            'choices' : (
                {
                    'field'        : 'dpid',
                    'completion'   : 'complete-alias-choice',
                    'type'         : 'dpid',
                    'help-name'    : 'switch dpid or alias',
                    'data-handler' : 'alias-to-value',
                },
                {
                    'token'        : 'all',
                },
            ),
        },
        {
            'optional'   : True,
            'choices' : (
                (
                    {
                        'token' : 'by',
                        'doc'   : 'switch|show-switch-order',
                    },
                    {
                        'choices' : (
                            {
                                'token'      : 'ip-address',
                                'sort'       : 'ip-address',
                                'action'     : 'display-table',
                                'short-help' : 'Sort by ip-address',
                            },
                            {
                                'token'      : 'connect-time',
                                'sort'       : '-connected-since',
                                'action'     : 'display-table',
                                'short-help' : 'Sort by connect time',
                            },
                        )
                    }
                ),
            )
        },
        {
            'field'      : 'detail',
            'type'       : 'enum',
            'values'     : ('details','brief'),
            'optional'   : True,
            'doc'        : 'switch|show-switch-format-+',
        },
    )
}
SWITCH_SHOW_REALTIME_STATS_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'short-help'          : 'Show switch stats via direct query to switch',
    'no-supported'        : False,
    'short-help'          : 'Show realtime stats for switch',
    'parent-field'        : None,
    'obj-type'            : 'switches',
    'args'                : (
        {
            'token'        : 'switch',
            'obj-type'     : 'switches',
            'command-type' : 'display-table',
            # 'command-type' : 'display-rest',
        },
        {
            'choices' : (
                {
                    'field'        : 'dpid',
                    'completion'   : 'complete-alias-choice',
                    'type'         : 'dpid',
                    'help-name'    : 'switch dpid or alias',
                    'data-handler' : 'alias-to-value',
                    'data'         : { 'detail' : 'scoped' },
                },
                {
                    'token'        : 'all',
                    'doc'          : 'reserved|all',
                },
            ),
        },
        {
            'choices' : (
                (
                    {
                        'field'      : 'realtimestats',
                        'type'       : 'enum',
                        'values'     : ('aggregate',
                                        'port',
                                        'desc',
                                        'queue',
                                        'group'
                                        ),
                        'action'     : 'display-rest',
                        'sort'       : ['groupid',],
                        'url'        : [
                                        'realtimestats/%(realtimestats)s/%(dpid)s/',
                                        'realtimestats/%(realtimestats)s/all/',
                                       ],
                        'rest-type'  : 'dict-of-list-of-switch',
                        'format'     : 'realtime_%(realtimestats)s',
                        'short-help' : 'Show requested item by querying switch',
                        'doc'        : 'switch|realtime-+',
                    },
                    #{
                    #    'field'    : 'detail',
                    #    'optional' : True,
                    #    'type'     : 'enum',
                    #    'values'   : ('details','brief'),
                    #    'doc'      : 'format|+',
                    #},
                ),
                (
                    {
                        'field'      : 'realtimestats',
                        'type'       : 'enum',
                        'values'     : 'features',
                        'action'     : 'display-rest',
                        'url'        : [
                                         'realtimestats/%(realtimestats)s/%(dpid)s/',
                                         'realtimestats/%(realtimestats)s/all/',
                                       ],
                        'rest-type'  : 'dict-of-dict-of-switch|ports',
                        'format'     : 'realtime_%(realtimestats)s',
                        'doc'        : 'switch|realtime_features',
                    },
                    {
                        'field'    : 'detail',
                        'optional' : True,
                        'type'     : 'enum',
                        'values'   : ('details','brief'),
                        'doc'      : 'format|+',
                    },
                ),
                (
                    {
                        'field'      : 'realtimestats',
                        'type'       : 'enum',
                        'values'     : 'table',
                    },
                    {
                        'field'    : 'tabletype',
                        'type'     : 'enum',
                        'values'     : ('ip',
                                        'acl',
                                        'mpls'
                                        ),
                        'action'     : 'display-rest',
                        'url'        : 'realtimestats/%(realtimestats)s/%(tabletype)s/flow/%(dpid)s/',
                        'rest-type'  : 'dict-of-list-of-switch',
                        'format'     : 'realtime_%(realtimestats)s_%(tabletype)s_flow',
                        'doc'      : 'format|+',
                    },
                  #{
                  #      'field'    : 'tableflow',
                  #   'type'     : 'enum',
                  #      'values'     : ('flow',
                  #                      ),
                  #      'action'     : 'display-rest',
                  #      'url'        : 'realtimestats/%(realtimestats)s/%(tabletype)s/%(tableflow)s/%(dpid)s/',
                  #      'rest-type'  : 'dict-of-list-of-switch',
                  #      'format'     : 'realtime_%(realtimestats)s_%(tabletype)s_flow',
                  #      'short-help' : 'Show requested item by querying switch',
                  #      'doc'        : 'switch|realtime-+',
                  #  },
                ),
            )
        }
    )
}

SWITCH_SHOW_STATS_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'short-help'          : 'Show switch stats',
    'short-help'          : 'show stats for selected switch',
    'no-supported'        : False,
    'parent-field'        : None,
    'obj-type'            : 'switches',
    'args'                : (
        {
            'token'        : 'switch',
            # 'command-type' : 'display-rest',
        },
        {
            'field'        : 'dpid',
            'completion'   : 'complete-alias-choice',
            'type'         : 'dpid',
            'help-name'    : 'switch dpid or alias',
            'data-handler' : 'alias-to-value',
        },
        {
            'token'        : 'stats',
            'action'       : 'legacy-cli',
            'obj-type'     : 'switch-stats',
        },
    )
}

SWITCH_SHOW_STATS_OBJECT_DETAILS_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'short-help'          : 'Show statistics for a given switch',
    'no-supported'        : False,
    'parent-field'        : None,
    'obj-type'            : 'switches',
    'args'                : (
        {
            'token'        : 'switch',
            # 'command-type' : 'display-rest',
        },
        {
            'field'        : 'dpid',
            'completion'   : 'complete-alias-choice',
            'type'         : 'dpid',
            'help-name'    : 'switch dpid or alias',
            'data-handler' : 'alias-to-value',
        },
        {
            'token'        : 'stats',
            'action'       : 'legacy-cli',
            'obj-type'     : 'switch-stats',
        },
        {
            'field'        : 'stats-type',
            'type'         : 'enum',
            'values'       : (
                                'OFActiveFlow',
                                'OFFlowMod',
                                'OFPacketIn',
                             ),
        },
        {
            'field'        : 'start-time',
            'tag'          : 'start-time',
            'type'         : 'date',
            'data-handler' : 'date-to-integer',
            'short-help'   : 'Start time for displaying the stats',
            'optional'     : True,
        },
        {
            'field'        : 'end-time',
            'tag'          : 'end-time',
            'type'         : 'date',
            'data-handler' : 'date-to-integer',
            'short-help'   : 'End time for displaying the stats',
            'optional'     : True,
        },
        {
            'field'        : 'duration',
            'tag'          : 'duration',
            'type'         : 'duration',
            'short-help'   : 'Duration from the start or end for displaying the stats',
            'optional'     : True,
        },
        {
            'field'        : 'sample-interval',
            'tag'          : 'sample-interval',
            'type'         : 'integer',
            'short-help'   : 'Spacing between sampling windows',
            'optional'     : True,
        },
        {
            'field'        : 'sample-count',
            'tag'          : 'sample-count',
            'type'         : 'integer',
            'short-help'   : 'Number of samples in each window',
            'optional'     : True,
        },
        {
            'field'        : 'sample-window',
            'tag'          : 'sample-window',
            'type'         : 'integer',
            'short-help'   : 'Window length for sampling',
            'optional'     : True,
        },
        {
            'field'        : 'data-format',
            'tag'          : 'data-format',
            'type'         : 'enum',
            'values'       : ('value', 'rate',),
            'short-help'   : 'Whether to display as a raw value or rate',
            'optional'     : True,
        },
        {
            'field'        : 'display',
            'tag'          : 'display',
            'type'         : 'enum',
            'values'       : ('latest-value', 'graph', 'table'),
            'short-help'   : 'Display the latest value, a graph, or a table',
            'optional'     : True,
        },
    ),
}


show_switch_interfaces_pipeline = (
    {
        'proc'     : 'query-table',
        'obj-type' : 'interfaces',
        'key'      : 'id',
    },
    {
        'proc'     : 'query-table-append',
        'obj-type' : 'switch-interface-config',
        'key'      : 'id',
    },
    {
        'proc'       : 'join-rest',
        'url'        : [
                          # this is using 'switch' from previous results,
                          # not from the data items
                          'realtimestats/port/%(switch)s/',
                       ],
        'rest-type'  : 'dict-of-list-of-switch|portNumber',
        'key'        : 'switch|portNumber',
        'join-field' : 'switch|portNumber'
    },
    {
        'proc'     : 'display',
        'sort'     : ['switch', 'portName'],
        'format'   : 'switch-interfaces',
    },
)

SWITCH_SHOW_SWITCH_DPID_INTERFACES_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'no-supported'        : False,
    'short-help'          : 'Show interfaces for selected switch',
    'parent-field'        : None,
    'obj-type'            : 'switches',
    'args' : (
        {
            'token'        : 'switch',
            'command-type' : 'display-table',
        },
        {
            'choices' : (
                {
                    'field'        : 'dpid',
                    'completion'   : 'complete-alias-choice',
                    'type'         : 'dpid',
                    'help-name'    : 'switch dpid or alias',
                    'data-handler' : 'alias-to-value',
                },
                {
                    'field'        : 'dpid',
                    'type'         : 'enum',
                    'values'       : 'all',
                    'short-help'   : 'Show interfaces for all switches',
                },
            ),
        },
        {
            'choices' : (
                (
                    {
                        'token'      : 'interfaces',
                        'action'     : 'legacy-cli',
                        'obj-type'   : 'switch-interfaces',
                        'action'     : show_switch_interfaces_pipeline,
                        'short-help' : 'Show interfaces for switches',
                        'doc'        : 'switch|show-interfaces',
                    },
                    {
                        'token'      : 'stats',
                        'action'     : 'display-rest',
                        'url'        : 'realtimestats/port/%(dpid)s/',
                        'rest-type'  : 'dict-of-list-of-switch',
                        'format'     : 'realtime_port',
                        'rest-type'  : 'dict-of-list-of-switch',
                        'optional'   : True,
                        'short-help' : 'Show interfaces stats for switches',
                    },
                    {
                        'token'      : 'alias',
                        'action'     : 'display-table',
                        'obj-type'   : 'switch-interface-alias',
                        'optional'   : True,
                        'short-help' : 'Show interface aliases for switches',
                        'scoped'     : True,
                        'doc'        : 'switch|show-interfaces-alias',
                    }
                ),
                {
                    'field'      : 'vns',
                    'type'       : 'enum',
                    'values'     : 'vns',
                    'action'     : 'legacy-cli',
                    'obj-type'   : 'switch-ports-vns'
                },
                {
                    'field'     : 'alias',
                    'type'      : 'enum',
                    'values'    : 'alias',
                    'obj-type'  : 'switch-alias',
                    'action'    : 'display-table',
                    'doc'       : 'switch|show-switch-alias',
                },
            )
        },
        {
            'optional' : True,
            'field'    : 'detail',
            'type'     : 'enum',
            'values'   : ('details', 'brief',),
            'short-help' : 'Show switch output format level',
        }
    )
}
"""
SWITCH_SUBMODE_SHOW_INTERFACE_COMMAND_DESCRIPTION = {
    'name'         : 'show',
    'mode'         : 'config-switch*',
    'command-type' : 'display-table',
    'obj-type'     : 'switch-interfaces',
    'short-help'   : 'Show interfaces for switch associated with current submode',
    'args' : (
        {
            'token'    : 'interfaces',
            'action'   : 'legacy-cli',
            'scoped'   : True,
            'action'   : show_switch_interfaces_pipeline,
        },
    )
}


SWITCH_SHOW_TCPDUMP_COMMAND_DESCRIPTION = {
    'name'                : 'show',
    'mode'                : 'login',
    'short-help'          : 'Show switch tcpdump via controller',
    'no-supported'        : False,
    'parent-field'        : None,
    'current-mode-obj-id' : None,
    'obj-type'            : 'switches',
    'args' : (
        {
            'token'        : 'switch',
            'obj-type'     : 'switches',
        },
        {
            'field'        : 'dpid',
            'optional'     : False,
            'completion'   : 'complete-alias-choice',
            'type'         : 'dpid',
            'help-name'    : 'switch dpid or alias',
            'data-handler' : 'alias-to-value',
        },
        {
            'field'      : 'tcpdump',
            'optional'   : False,
            'type'       : 'enum',
            'values'     : 'trace',
            'obj-type'   : 'switch-tcpdump',
            'action'     : 'legacy-cli',
        },
        {
            'field'     : 'oneline',
            'type'      : 'enum',
            'values'    : 'oneline',
            'optional'  : True,
        },
        {
            'field'     : 'single_session',
            'type'      : 'enum',
            'values'    : 'single-session',
            'optional'  : True,
        },
        {
            'field'     : 'echo_reply',
            'type'      : 'enum',
            'values'    : 'echo-reply',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'echo_request',
            'type'      : 'enum',
            'values'    : 'echo-request',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'features_rep',
            'type'      : 'enum',
            'values'    : 'features-rep',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'flow_mod',
            'type'      : 'enum',
            'values'    : 'flow-mod',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'flow_removed',
            'type'      : 'enum',
            'values'    : 'flow-removed',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'get_config_rep',
            'type'      : 'enum',
            'values'    : 'get-config-rep',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'hello',
            'type'      : 'enum',
            'values'    : 'hello',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'packet_in',
            'type'      : 'enum',
            'values'    : 'packet-in',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'packet_out',
            'type'      : 'enum',
            'values'    : 'packet-out',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'port_status',
            'type'      : 'enum',
            'values'    : 'port-status',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'set_config',
            'type'      : 'enum',
            'values'    : 'set-config',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'stats_reply',
            'type'      : 'enum',
            'values'    : 'stats-reply',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'stats_request',
            'type'      : 'enum',
            'values'    : 'stats-request',
            'optional'  : True,
            'permute'   : 'skip',
        },
        {
            'field'     : 'detail',
            'type'      : 'enum',
            'values'    : 'detail',
            'optional'  : True,
        },
   )
}

#
# ------------------------------------------------------------------------------
# SWITCH_TUNNEL_SHOW_COMMAND_DESCRIPTION
#

show_tunnel_pipeline = (
    {
        'proc'      : 'query-rest',
        'url'       : [ 
                            'tunnel-manager/%(dpid)s',
                            'tunnel-manager/all',
                      ],
        'rest-type' : 'dict-of-dict-of-dpid',
    },
    {
        'proc'       : 'join-table',
        'obj-type'   : 'interfaces',
        'key'        : 'switch|portName',
        'join-field' : 'hexDpid|tunnelEndPointIntfName',
        'add-field'  : 'portNumber|portNumber',
    },
    {
        'proc'       : 'join-rest',
        'url'        : 'realtimestats/port/%(dpid)s/',
        'rest-type'  : 'dict-of-list-of-switch|portNumber',
        'key'        : 'switch|portNumber',
        'join-field' : 'hexDpid|portNumber',
    },
    {
        'proc'     : 'display',
        'format'   : 'tunnel-pipeline',
    }
)
"""
import fmtcnv
"""
TUNNEL_PIPELINE_FORMAT = {
    'tunnel-pipeline' : {
        'field-orderings' : {
            'default' : [ 'Idx',
                          'dpid',
                          'tunnelCapable',
                          'tunnelEnabled',
                          'tunnelEndPointIntfName',
                          'tunnelIPAddr',
                          'tunnelState',
                          'receivePackets',
                          'receiveBytes',
                          'transmitPackets',
                          'transmitBytes',
                        ]
        },

        'fields' : {
            'dpid'               : {
                                     'verbose-name' : 'Switch DPID',
                                     'primary_key': True,
                                     'formatter' : fmtcnv.replace_switch_with_alias,
                                  },
            'tunnelCapable'     : {
                                    'verbose-name' : 'Capable',
                                  },
            'tunnelEnabled'     : {
                                     'verbose-name' : 'Enabled',
                                  },
            'tunnelEndPointIntfName' : {
                                     'verbose-name' : 'IF Name',
                                  },
            'tunnelIPAddr'      : {
                                     'verbose-name' : 'IP Address',
                                  },
            'tunnelState'       : {
                                     'verbose-name' : 'State',
                                  },
            'receivePackets'    : {
                                     'verbose-name' : 'Rx Pkts',
                                  },
            'receiveBytes'      : {
                                     'verbose-name' : 'Rx Bytes',
                                  },
            'transmitPackets'   : {
                                     'verbose-name' : 'Tx Pkts',
                                  },
            'transmitBytes'     : {
                                     'verbose-name' : 'Tx Bytes',
                                  },
        },
    },
}



SWITCH_TUNNEL_SHOW_COMMAND_DESCRIPTION = {
    'name'         : 'show',
    'mode'         : 'login',
    'feature'      : 'vns',
    'short-help'   : 'Show tunnels for all switches',
    'command-type' : 'display-rest',
    'url'          : 'tunnel-manager/all',
    'obj-type'     : 'switch',
    'action'       : show_tunnel_pipeline,
    'args'         : (
        'tunnel',
    ),
}


SWITCH_TUNNEL_SHOW_WITH_DPID_COMMAND_DESCRIPTION = {
    'name'         : 'show',
    'mode'         : 'login',
    'feature'      : 'vns',
    'short-help'   : 'Show tunnels for selected switches',
    'command-type' : 'display-rest',
    'obj-type'     : 'switch',
    'url'          : 'tunnel-manager/%(dpid)s',
    'format'       : 'tunnel-details',
    'action'       : show_tunnel_pipeline,
    'args'         : (
        'tunnel',
        {
            'choices' : (
                {
                    'field'      : 'dpid',
                    'type'       : 'enum',
                    'values'     : 'all',
                },
                {
                    'field'      : 'dpid',
                    'completion' : 'complete-object-field',
                    'type'       : 'dpid',
                },
            ),
        },
    ),
}
#
# ------------------------------------------------------------------------------
# SWITCH_CORE_SWITCH_TERMINATION_COMMAND_DESCRIPTION
#

SWITCH_CORE_SWITCH_COMMAND_DESCRIPTION = {
    'name'         : 'core-switch',
    'short-help'   : 'Enable core-switch property for this switch',
    'mode'         : 'config-switch',
    'parent-field' : 'dpid',
    'obj-type'     : 'switch-config',
    'doc'          : 'switch|core-switch',
    'doc-example'  : 'switch|core-switch-example',
    'args' : (),
    'action': (
        {
            'proc' : 'update-config',
            'data' : {'core-switch' : True}
        },
    ),
    'no-action': (
        {
            'proc' : 'update-config',
            'data' : {'core-switch' : False},
        }
    )
}
#
# ------------------------------------------------------------------------------
# SWITCH_TUNNEL_TERMINATION_COMMAND_DESCRIPTION
#

SWITCH_TUNNEL_TERMINATION_COMMAND_DESCRIPTION = {
    'name'         : 'tunnel',
    'short-help'   : 'Enable/Disable tunnel creation for this switch',
    'mode'         : 'config-switch',
    'command-type' : 'update-config',
    'parent-field' : 'dpid',
    'obj-type'     : 'switch-config',
    'doc'          : 'switch|tunnel',
    'doc-example'  : 'switch|tunnel-example',
    'data'         : { 'tunnel-termination' : 'default' }, # for no command
    'args'         : (
        'termination',
        {
            'field'           : 'tunnel-termination',
            'type'            : 'enum',
            'values'          : ( "enabled", "disabled" ),
            'optional-for-no' : True,
        }
    )
}
#
# ------------------------------------------------------------------------------
# SWITCH_ALIAS_COMMAND_DESCRIPTION
#

SWITCH_SWITCH_ALIAS_COMMAND_DESCRIPTION = {
    'name'         : 'switch-alias',
    'mode'         : 'config-switch',
    'short-help'   : 'Attach alias to switch',
    'doc'          : 'switch|alias',
    'doc-example'  : 'switch|alias-example',
    'command-type' : 'manage-alias',
    'obj-type'     : 'switch-alias',
    'scoped'       : True,
    'args'         : (
        {
            'field'           : 'id',
            'optional-for-no' : False,
            'completion'      : 'complete-object-field',
        }
    )
}

#
# ------------------------------------------------------------------------------
# SWITCH_INTERFACE_COMMAND_DESCRIPTION
#  enter config-switch-if submode
#

SWITCH_INTERFACE_COMMAND_DESCRIPTION = {
    'name'                : 'interface',
    'mode'                : 'config-switch*',
    'short-help'          : 'Enter switch-if submode, configure switch interface',
    'command-type'        : 'config-submode',
    'obj-type'            : 'switch-interface-config',
    'parent-field'        : 'switch',
    'current-mode-obj-id' : 'switch',
    'submode-name'        : 'config-switch-if',
    'syntax-help'         : 'Enter an interface name',
    'doc'                 : 'switch|interface',
    'doc-example'         : 'switch|interface-example',
    'args' : (
        {
            'field'        : 'name',
            'completion'   : [ 'complete-object-field',
                               'complete-from-another',
                             ],
            'other'        : 'interfaces|portName',
            'scoped'       : 'dpid',
            'data-handler' : 'warn-missing-interface',
        }
    )
}

#
# ------------------------------------------------------------------------------
# SWITCHPORT_COMMAND_DESCRIPTION
#  'switchport mode external'
#  'no switchport mode external'
#

SWITCHPORT_COMMAND_DESCRIPTION = {
    'name'         : 'switchport',
    'short-help'   : 'Configure interface as connected to an external network',
    'mode'         : 'config-switch-if',
    'command-type' : 'config',
    'obj-type'     : 'switch-interface-config',
    'fields'       : ('broadcast', 'mode',),
    'action'       : 'write-fields',
    'no-action'    : 'reset-fields',
    'doc'          : 'switch|switchport',
    'doc-example'  : 'switch|switchport-example',
    'args'         : (
        'mode',
        {
            'field'       : 'mode',
            'type'        : 'enum',
            'values'      : 'external',
            'help-name'   : 'interface connects to external network',
            'short-help'  : 'interface connects to external network',
            'syntax-help' : 'external'
        },
    )
}

#
# ------------------------------------------------------------------------------
#


SWITCH_INTERFACE_INTERFACE_ALIAS_COMMAND_DESCRIPTION = {
    'name'         : 'interface-alias',
    'mode'         : 'config-switch-if',
    'short-help'   : 'Attach alias to switch interface',
    'command-type' : 'manage-alias',
    'obj-type'     : 'switch-interface-alias',
    'scoped'       : True,
    'doc'          : 'switch|interface-alias',
    'doc-example'  : 'switch|interface-alias-example',
    'args'         : (
        {
            'field'           : 'id',
            'optional-for-no' : False,
            'completion'      : 'complete-object-field',
            'short-help'      : 'Alias string',
        }
    )
}
"""
#
# FORMATS
#


SWITCH_FORMAT = {
    'switch' : {
        'field-orderings' : {
            'default' : [ 'Idx', '@', 'switch-alias', 'connected-since',
                          'ip-address', 'type', 'controller'],
            'details' : [ 'Idx','@', 'switch-alias', 'connected-since',
                          'ip-address', 'type', 'controller'],
            'brief'   : [ 'Idx', '@', 'switch-alias', 'controller'],
            },
        'fields' : {
            '@'                  : {
                                     'verbose-name' : 'Switch DPID',
                                   },
            'active'             : {
                                   },
            'core-switch'        : {
                                     'verbose-name' : 'Core Switch',
                                     'validate'  : 'validate_switch_core_switch',
                                   },
            'connected-since'    : {
                                     'verbose-name' : 'Connected Since',
                                     #'formatter' : fmtcnv.timestamp_to_local_timestr,
                                   },
            'capabilities'       : {
                                     'formatter' : fmtcnv.decode_switch_capabilities,
                                   },
            'actions'            : {
                                     'formatter' : fmtcnv.decode_switch_actions,
                                   },
            'ip-address'         : {
                                     'verbose-name' : 'Connected At',
                                   },
            'socket-address'     : {
                                   },
            'buffers'            : {
                                   },
            'controller'         : {
                                     'verbose-name' : 'Controller',
                                   },
            'tables'             : {
                                   },
            'switch-alias'       : {

                                     'verbose-name' : 'Alias'
                                   },
            'tunnelCapable'      : {
                                     'verbose-name' : 'Tun Capable',
                                   },
            'tunnelEnabled'      : {
                                     'verbose-name' : '-Enabled',
                                   },
            'tunnelState'        : {
                                      'verbose-name' : '-State',
                                   },
            'dp-desc'            : {
                                   },
            'hw-desc'            : {
                                   },
            'sw-desc'            : {
                                   },
            'serial-num'         : {
                                   },
            'type'               : {
                                   },
            }
        },
}
"""
SWITCH_CONFIG_FORMAT = {
    'switch-config' : {
        'field-orderings' : {
            'default' : [
                          'Idx',
                          'dpid',
                          'tunnel-termination',
                          'core-switch',
                        ],
        },
    },
}


SWITCH_ALIAS_FORMAT = {
    'switch-alias' : {
        'field-orderings' : {
            'default'     : [ 'Idx', 'id', 'switch' ],
            'brief'       : [ 'Idx', 'id', 'switch' ],
            },
        },
}


SWITCH_INTERFACE_CONFIG_FORMAT = {
    'switch-interface-config' : {
        'field-orderings' : {
            'default' :     [ 'Idx', 'if-name', 'mode'  ]
            },
        'fields'          : {
            'broadcast'           : {
                                    },
            'name'                : {
                                    },
            'mode'                : {
                                      'verbose-name' : 'Switchport Mode',
                                    },
            },
        },
}


SWITCH_INTERFACE_ALIAS_FORMAT = {
    'switch-interface-alias' : {
        'field-orderings' : {
            'default'     : [ 'Idx', 'id', 'switch', 'name' ]
            },
        'fields' : {
            'id'          : { 'verbose-name' : 'Alias',
                            }
            }
        },
}

SWITCH_INTERFACES_FORMAT = {
    'switch-interfaces' : {
        'field-orderings' : {
            'default' : [ 'Idx', 'switch', 'portName', 'state', 'config',
                          'receiveBytes', 'receivePackets', 'receiveErrors',
                          'transmitBytes', 'transmitPackets', 'transmitErrors',
                          'mode', 'broadcast',
                        ],
            'details' : [ 'Idx', 'switch', 'portName', 'hardwareAddress',
                          'config', 'stp-state', 'state', 'currentFeatures',
                          'advertisedFeatures', 'supportedFeatures',
                          'peer-features', 'mode', 'broadcast',
                        ],
            'brief'   : [ 'Idx', 'switch', 'portName', 'state', 'config' ],
            },

        'fields' : {
            'id'                  : {
                                    },
            'switch'              : { 'formatter' : fmtcnv.replace_switch_with_alias
                                    },
            'portName'            : { 'verbose-name' : 'IF',
                                    },
            'hardwareAddress'     : { 'verbose-name' : 'MAC Address'
                                    },
            'config'              : {
                                      'formatter' : fmtcnv.decode_port_config
                                    },
            'state'               : { 'verbose-name' : 'Link',
                                      'formatter' : fmtcnv.decode_port_up_down,
                                    },
            'stp-state'           : {
                                      'formatter' : lambda i, data : 
                                                    fmtcnv.decode_port_stp_state(data['state'],
                                                                                 data),
                                    },
            'currentFeatures'     : { 'verbose-name' : 'Curr Features',
                                      'formatter' : fmtcnv.decode_port_features
                                    },
            'advertisedFeatures'  : { 'verbose-name' : 'Adv Features',
                                      'formatter' : fmtcnv.decode_port_features
                                    },
            'supportedFeatures'   : { 'verbose-name' : 'Supp Features',
                                      'formatter' : fmtcnv.decode_port_features
                                    },
            'peer-features'       : { 'verbose-name' : 'Peer Features',
                                      'formatter' : fmtcnv.decode_port_features
                                    },
            'receiveBytes'         : { 'verbose-name' : 'Rcv Bytes',
                                       'formatter' : fmtcnv.decode_port_counter},
            'receivePackets'       : { 'verbose-name' : 'Rcv Pkts',
                                        'formatter' : fmtcnv.decode_port_counter},
            'receiveErrors'        : { 'verbose-name' : 'Rcv Errs',
                                       'formatter' : fmtcnv.decode_port_counter},
            'transmitBytes'        : { 'verbose-name' : 'Xmit Bytes',
                                       'formatter' : fmtcnv.decode_port_counter},
            'transmitPackets'      : { 'verbose-name' : 'Xmit Pkts',
                                       'formatter' : fmtcnv.decode_port_counter},
            'transmitErrors'       : { 'verbose-name' : 'Xmit Errs',
                                       'formatter' : fmtcnv.decode_port_counter},
            },
        },
}

TUNNEL_DETAILS_FORMAT = {
    'tunnel-details' : {
        'field-orderings' : {
            'default' : [ 'Idx', 'dpid', 'localTunnelIPAddr',
                           'tunnelPorts',
                        ]
        },

        'fields' : {
            'dpid'              : {
                                     'verbose-name' : 'Switch DPID',
                                     'primary_key': True,
                                     'formatter' : fmtcnv.replace_switch_with_alias,
                                  },
            'localTunnelIPAddr' : {
                                    'verbose-name' : 'Local tunnel IP',
                                  },
            'tunnelPorts' :       {
                                     'verbose-name' : 'Remote tunnel IP',
                                  },
        },
    },
}
"""
