import contrail_plugin_base as plugin_base
from cfgm_common import utils as cfgmutils

_DEFAULT_KS_CERT_BUNDLE="/tmp/keystonecertbundle.pem"
_DEFAULT_API_CERT_BUNDLE="/tmp/apiservercertbundle.pem"
_DEFAULT_SERVER_CONNECT="http"
_DEFAULT_SECURE_SERVER_CONNECT="https"

LOG = logging.getLogger(__name__)

vnc_opts = [
    cfg.StrOpt('api_server_ip', default='127.0.0.1',
               help='IP address to connect to VNC controller'),
    cfg.StrOpt('api_server_port', default='8082',
               help='Port to connect to VNC controller'),
    cfg.DictOpt('contrail_extensions', default={},
                help='Enable Contrail extensions(policy, ipam)'),
]

analytics_opts = [
    cfg.StrOpt('analytics_api_ip', default='127.0.0.1',
               help='IP address to connect to VNC collector'),
    cfg.StrOpt('analytics_api_port', default='8081',
               help='Port to connect to VNC collector'),
]

class InvalidContrailExtensionError(exc.ServiceUnavailable):
    message = _("Invalid Contrail Extension: %(ext_name) %(ext_class)")

class NeutronPluginContrailCoreV2(plugin_base.NeutronPluginContrailCoreBase):

    PLUGIN_URL_PREFIX = '/neutron'
# the VIF class
NIC_NAME_LEN = 14

LOG = logging.getLogger(__name__)

vnc_opts = [
    cfg.StrOpt('api_server_ip',
               default='127.0.0.1',
               help='IP address to connect to VNC controller'),
    cfg.StrOpt('api_server_port',
               default='8082',
               help='Port to connect to VNC controller'),
    cfg.DictOpt('contrail_extensions',
                default={
                    'contrail': None,
                    'service-interface': None,
                    'vf-binding': None
                },
                help='Enable Contrail extensions(policy, ipam)'),
    cfg.BoolOpt('use_ssl',
                default=False,
                help='Use SSL to connect with VNC controller'),
    cfg.BoolOpt('insecure',
                default=False,
                help='Insecurely connect to VNC controller'),
    cfg.StrOpt('certfile',
               default='',
               help='certfile to connect securely to VNC controller'),
    cfg.StrOpt('keyfile',
               default='',
               help='keyfile to connect securely to  VNC controller'),