Source code for networkapi.settings

# -*- coding: utf-8 -*-
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
#
# 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 logging
import os
import sys

reload(sys)

sys.setdefaultencoding('utf-8')

# Include base path in system path for Python old.
syspath = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
if syspath not in sys.path:
    sys.path.insert(0, syspath)


[docs]def local_files(path): return '{}/networkapi/{}'.format(os.getcwd(), path)
NETWORKAPI_TAGS_DEPLOY = os.getenv('NETWORKAPI_TAGS_DEPLOY', 'networkapi,app-local') NETWORKAPI_GELF_HOST = os.getenv('NETWORKAPI_GELF_HOST', 'netapi_graylog2') LOG_QUEUE = os.getenv('NETWORKAPI_LOG_QUEUE', '0') == '1' # Aplicação rodando em modo Debug DEBUG = os.getenv('NETWORKAPI_DEBUG', '0') == '1' ALLOWED_HOSTS = os.getenv('NETWORKAPI_ALLOWED_HOSTS', '10.0.0.2,localhost,127.0.0.1').split(',') # Configuração do arquivo de log do projeto. LOG_FILE = os.getenv('NETWORKAPI_LOG_FILE', '/tmp/networkapi.log') LOG_LEVEL = logging.DEBUG if DEBUG else logging.INFO LOG_HANDLER = os.getenv('NETWORKAPI_LOG_HANDLER', 'log_file').split(',') LOG_DAYS = 10 LOG_SHOW_SQL = os.getenv('NETWORKAPI_LOG_SHOW_SQL', '0') == '1' LOG_DB_LEVEL = logging.DEBUG if LOG_SHOW_SQL else logging.INFO LOG_USE_STDOUT = False LOG_SHOW_TRACEBACK = True RQ_SHOW_ADMIN_LINK = True # Inicialização do log # O primeiro parâmetro informa o nome do arquivo de log a ser gerado. # O segundo parâmetro é o número de dias que os arquivos ficarão mantidos. # O terceiro parâmetro é o nível de detalhamento do Log. # Log.init_log(LOG_FILE, LOG_DAYS, LOG_LEVEL, use_stdout=LOG_USE_STDOUT) PROJECT_ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) NETWORKAPI_DATABASE_NAME = os.getenv('NETWORKAPI_DATABASE_NAME', 'networkapi') NETWORKAPI_DATABASE_USER = os.getenv('NETWORKAPI_DATABASE_USER', 'root') NETWORKAPI_DATABASE_PASSWORD = os.getenv('NETWORKAPI_DATABASE_PASSWORD', '') NETWORKAPI_DATABASE_HOST = os.getenv('NETWORKAPI_DATABASE_HOST', 'localhost') NETWORKAPI_DATABASE_PORT = os.getenv('NETWORKAPI_DATABASE_PORT', '3306') NETWORKAPI_DATABASE_OPTIONS = os.getenv( 'NETWORKAPI_DATABASE_OPTIONS', '{"init_command": "SET storage_engine=INNODB"}') # Configurações de banco de dados DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': NETWORKAPI_DATABASE_HOST, 'NAME': NETWORKAPI_DATABASE_NAME, 'USER': NETWORKAPI_DATABASE_USER, 'PASSWORD': NETWORKAPI_DATABASE_PASSWORD, 'PORT': NETWORKAPI_DATABASE_PORT, 'OPTIONS': eval(NETWORKAPI_DATABASE_OPTIONS), } } # CONFIGURAÇÃO DO MEMCACHED CACHE_BACKEND = 'memcached://localhost:11211/' NETWORKAPI_MEMCACHE_HOSTS = os.getenv( 'NETWORKAPI_MEMCACHE_HOSTS', '127.0.0.1:11211') CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': NETWORKAPI_MEMCACHE_HOSTS.split(',') } } SESSION_ENGINE = 'django.contrib.sessions.backends.cache' SESSION_CACHE_ALIAS = 'default' # Diretório dos arquivos dos scripts # SCRIPTS_DIR = os.path.abspath(os.path.join(__file__, '../../scripts')) SCRIPTS_DIR = os.getenv('NETWORKAPI_SCRIPTS_DIR', os.path.abspath( os.path.join(__file__, '../../scripts'))) # Armazena a raiz do projeto. SITE_ROOT = os.path.abspath(__file__ + '/../../') TEMPLATE_DEBUG = False API_VERSION = '15.96' # On create group will associate the 'authenticate' permission # automatically if 'True' ASSOCIATE_PERMISSION_AUTOMATICALLY = True ID_AUTHENTICATE_PERMISSION = 5 NETWORKAPI_SUPPORT_TIME = os.getenv( 'NETWORKAPI_SUPPORT_TIME', 'Suporte Telecom') NETWORKAPI_SUPPORT_EMAIL = os.getenv( 'NETWORKAPI_SUPPORT_EMAIL', 'suptel@corp.globo.com') ADMINS = ( (NETWORKAPI_SUPPORT_TIME, NETWORKAPI_SUPPORT_EMAIL), ) LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '[%(levelname)s] %(asctime)s - U:%(request_user)-6s, ' 'P:%(request_path)-8s, C:%(request_context)-6s, N:%(name)s:%(lineno)s , ' 'T:%(request_id)-6s, MSG:%(message)s', 'datefmt': '%d/%b/%Y:%H:%M:%S %z', }, 'simple': { 'format': '%(asctime)s %(levelname)s %(module)s %(message)s' }, }, 'filters': { 'user_filter': { '()': 'networkapi.extra_logging.filters.ExtraLoggingFilter', }, 'static_fields': { '()': 'networkapi.extra_logging.filters.StaticFieldFilter', 'fields': { 'tags': NETWORKAPI_TAGS_DEPLOY, }, }, 'django_exc': { '()': 'networkapi.extra_logging.filters.RequestFilter', }, 'user_filter_gelf': { '()': 'networkapi.extra_logging.filters.UserFilter', }, }, 'handlers': { 'log_file': { 'level': LOG_LEVEL, 'class': 'logging.handlers.WatchedFileHandler', 'filename': LOG_FILE, 'formatter': 'verbose', 'mode': 'a', 'filters': ['user_filter'], }, 'console': { 'level': LOG_LEVEL, 'class': 'logging.StreamHandler', 'formatter': 'simple', 'filters': ['user_filter'], }, 'gelf': { 'level': LOG_LEVEL, 'class': 'graypy.GELFHandler', 'host': NETWORKAPI_GELF_HOST, 'port': 12201, 'filters': [ 'user_filter', 'static_fields', 'django_exc', 'user_filter_gelf' ] }, }, 'loggers': { 'default': { 'level': LOG_LEVEL, 'propagate': False, 'handlers': LOG_HANDLER, }, 'django': { 'level': LOG_LEVEL, 'propagate': False, 'handlers': LOG_HANDLER, }, 'django.request': { 'level': LOG_LEVEL, 'propagate': False, 'handlers': LOG_HANDLER, }, 'bigsuds': { 'level': LOG_LEVEL, 'propagate': False, 'handlers': LOG_HANDLER, }, 'suds': { 'level': logging.INFO, 'propagate': True, 'handlers': LOG_HANDLER, }, 'django.db.backends': { 'level': LOG_DB_LEVEL, 'propagate': False, 'handlers': LOG_HANDLER, }, }, 'root': { 'level': LOG_LEVEL, 'propagate': False, 'handlers': ['console'] + LOG_HANDLER, }, } MANAGERS = ADMINS DEFAULT_CHARSET = 'utf-8' # Set the encoding to database data # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # If running in a Windows environment this must be set to the same as your # system time zone. TIME_ZONE = os.getenv('NETWORKAPI_TIMEZONE', 'America/Sao_Paulo') # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'pt-BR' SITE_ID = 1 # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = False # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" MEDIA_ROOT = '' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash if there is a path component (optional in other cases). # Examples: "http://media.lawrence.com", "http://example.com/media/" MEDIA_URL = '' # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a # trailing slash. # Examples: "http://foo.com/media/", "/media/". ADMIN_MEDIA_PREFIX = '/media/' # Make this unique, and don't share it with anybody. SECRET_KEY = 'ry@zgop%w80_nu83#!tbz)m&7*i@1)d-+ki@5^d#%6-&^216sg' VLAN_CACHE_TIME = None EQUIPMENT_CACHE_TIME = None # List of callables that know how to import templates from various sources. MIDDLEWARE_CLASSES = ( 'networkapi.extra_logging.middleware.ExtraLoggingMiddleware', 'django.middleware.common.CommonMiddleware', 'networkapi.processExceptionMiddleware.LoggingMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'networkapi.middlewares.TrackingRequestOnThreadLocalMiddleware', ) if LOG_SHOW_SQL: MIDDLEWARE_CLASSES += ( 'networkapi.middlewares.SQLLogMiddleware', ) ROOT_URLCONF = 'networkapi.urls' # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.4/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = os.path.join( os.getenv('NETWORKAPI_STATIC_FILE', SITE_ROOT), 'sitestatic') TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.request', ) TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 'django.template.loaders.eggs.Loader', ) TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" # or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. os.path.join(SITE_ROOT, 'templates'), os.path.join(SITE_ROOT, 'networkapi', 'templates') ) # Apps of Project PROJECT_APPS = ( 'networkapi.ambiente', 'networkapi.api_asn', 'networkapi.api_aws', 'networkapi.api_channel', 'networkapi.api_environment', 'networkapi.api_environment_vip', 'networkapi.api_equipment', 'networkapi.api_filter', 'networkapi.api_group', 'networkapi.api_interface', 'networkapi.api_ip', 'networkapi.api_neighbor', 'networkapi.api_network', 'networkapi.api_ogp', 'networkapi.api_pools', 'networkapi.api_rack', 'networkapi.api_rest', 'networkapi.api_task', 'networkapi.api_usuario', 'networkapi.api_vip_request', 'networkapi.api_vlan', 'networkapi.api_vrf', 'networkapi.api_peer_group', 'networkapi.api_route_map', 'networkapi.api_list_config_bgp', 'networkapi.api_neighbor', 'networkapi.blockrules', 'networkapi.config', 'networkapi.equipamento', 'networkapi.eventlog', 'networkapi.filter', 'networkapi.filterequiptype', 'networkapi.grupo', 'networkapi.grupovirtual', 'networkapi.healthcheckexpect', 'networkapi.interface', 'networkapi.ip', 'networkapi.models', 'networkapi.rack', 'networkapi.requisicaovips', 'networkapi.roteiro', 'networkapi.snippets', 'networkapi.system', 'networkapi.tipoacesso', 'networkapi.usuario', 'networkapi.vlan', ) # Third party apps INSTALLED_APPS = ( # 'bootstrap_admin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.messages', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.staticfiles', 'django_extensions', ) INSTALLED_APPS += PROJECT_APPS INSTALLED_APPS += ( 'rest_framework', ) # Rest Configuration REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', ), 'DEFAULT_PARSER_CLASSES': ( 'rest_framework.parsers.JSONParser', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'networkapi.api_rest.authentication.BasicAuthentication', ) } # DJANGO_SIMPLE_AUDIT_REST_FRAMEWORK_AUTHENTICATOR=BasicAuthentication # Intervals to calculate the vlan_num in POST request /vlan/. MIN_VLAN_NUMBER_01 = 2 MAX_VLAN_NUMBER_01 = 1001 MIN_VLAN_NUMBER_02 = 1006 MAX_VLAN_NUMBER_02 = 4094 # Intervals to calculate the oct4 of the IP in POST request /ip/. MIN_OCT4 = 5 MAX_OCT4 = 250 ######### # SPECS # ######### SPECS = { 'channel_post_v3': os.path.join( PROJECT_ROOT_PATH, 'api_channel/specs/channel_post.json' ), 'channel_put_v3': os.path.join( PROJECT_ROOT_PATH, 'api_channel/specs/channel_put.json' ), 'environment_post': os.path.join( PROJECT_ROOT_PATH, 'api_environment/specs/env_post.json' ), 'environment_put': os.path.join( PROJECT_ROOT_PATH, 'api_environment/specs/env_put.json' ), 'environment_vip_post': os.path.join( PROJECT_ROOT_PATH, 'api_environment_vip/specs/env_post.json' ), 'environment_vip_put': os.path.join( PROJECT_ROOT_PATH, 'api_environment_vip/specs/env_put.json' ), 'equipment_post': os.path.join( PROJECT_ROOT_PATH, 'api_equipment/specs/equipment_post.json' ), 'equipment_put': os.path.join( PROJECT_ROOT_PATH, 'api_equipment/specs/equipment_put.json' ), 'ipv4_post': os.path.join( PROJECT_ROOT_PATH, 'api_ip/specs/ipv4_post.json' ), 'ipv4_put': os.path.join( PROJECT_ROOT_PATH, 'api_ip/specs/ipv4_put.json' ), 'ipv6_post': os.path.join( PROJECT_ROOT_PATH, 'api_ip/specs/ipv6_post.json' ), 'ipv6_put': os.path.join( PROJECT_ROOT_PATH, 'api_ip/specs/ipv6_put.json' ), 'networkv4_post': os.path.join( PROJECT_ROOT_PATH, 'api_network/specs/netv4_post.json' ), 'networkv4_put': os.path.join( PROJECT_ROOT_PATH, 'api_network/specs/netv4_put.json' ), 'networkv6_post': os.path.join( PROJECT_ROOT_PATH, 'api_network/specs/netv6_post.json' ), 'networkv6_put': os.path.join( PROJECT_ROOT_PATH, 'api_network/specs/netv6_put.json' ), 'pool_member_status': os.path.join( PROJECT_ROOT_PATH, 'api_pools/specs/pool_member_status.json' ), 'pool_post': os.path.join( PROJECT_ROOT_PATH, 'api_pools/specs/pool_post.json' ), 'pool_put': os.path.join( PROJECT_ROOT_PATH, 'api_pools/specs/pool_put.json' ), 'vip_request_patch': os.path.join( PROJECT_ROOT_PATH, 'api_vip_request/specs/vip_patch.json' ), 'vip_request_post': os.path.join( PROJECT_ROOT_PATH, 'api_vip_request/specs/vip_post.json' ), 'vip_request_put': os.path.join( PROJECT_ROOT_PATH, 'api_vip_request/specs/vip_put.json' ), 'vlan_post': os.path.join( PROJECT_ROOT_PATH, 'api_vlan/specs/vlan_post.json' ), 'vlan_put': os.path.join( PROJECT_ROOT_PATH, 'api_vlan/specs/vlan_put.json' ), 'vrf_post': os.path.join( PROJECT_ROOT_PATH, 'api_vrf/specs/vrf_post.json' ), 'vrf_put': os.path.join( PROJECT_ROOT_PATH, 'api_vrf/specs/vrf_put.json' ), 'ogp_post': os.path.join( PROJECT_ROOT_PATH, 'api_ogp/specs/ogp_post.json' ), 'ogp_put': os.path.join( PROJECT_ROOT_PATH, 'api_ogp/specs/ogp_put.json' ), 'ogpg_post': os.path.join( PROJECT_ROOT_PATH, 'api_ogp/specs/ogpg_post.json' ), 'ogpg_put': os.path.join( PROJECT_ROOT_PATH, 'api_ogp/specs/ogpg_put.json' ), 'as_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_asn/v4/specs/as_post.json' ), 'as_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_asn/v4/specs/as_put.json' ), 'equipment_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_equipment/v4/specs/equipment_post.json' ), 'equipment_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_equipment/v4/specs/equipment_put.json' ), 'ipv4_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_ip/v4/specs/ipv4_post.json' ), 'ipv4_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_ip/v4/specs/ipv4_put.json' ), 'ipv6_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_ip/v4/specs/ipv6_post.json' ), 'ipv6_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_ip/v4/specs/ipv6_put.json' ), 'interface_post': os.path.join( PROJECT_ROOT_PATH, 'api_interface/specs/interface_post.json' ), 'interface_put': os.path.join( PROJECT_ROOT_PATH, 'api_interface/specs/interface_put.json' ), 'neighbor_v4_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_neighbor/v4/specs/neighbor_post.json' ), 'neighbor_v4_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_neighbor/v4/specs/neighbor_put.json' ), 'neighbor_v6_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_neighbor/v4/specs/neighbor_post.json' ), 'neighbor_v6_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_neighbor/v4/specs/neighbor_put.json' ), 'list_config_bgp_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_list_config_bgp/v4/specs/list_config_bgp_post.json' ), 'list_config_bgp_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_list_config_bgp/v4/specs/list_config_bgp_put.json' ), 'route_map_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_route_map/v4/specs/route_map_post.json' ), 'route_map_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_route_map/v4/specs/route_map_put.json' ), 'route_map_entry_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_route_map/v4/specs/route_map_entry_post.json' ), 'route_map_entry_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_route_map/v4/specs/route_map_entry_put.json' ), 'peer_group_post_v4': os.path.join( PROJECT_ROOT_PATH, 'api_peer_group/v4/specs/peer_group_post.json' ), 'peer_group_put_v4': os.path.join( PROJECT_ROOT_PATH, 'api_peer_group/v4/specs/peer_group_put.json' ) } ########## # Scripts # TODO: Remove old Scripts # VLAN VLAN_REMOVE = 'navlan -i %d --remove' VLAN_CREATE = 'navlan -I %d -L2 --cria' # REDE NETWORKIPV4_CREATE = 'navlan -I %d --IPv4 --cria' NETWORKIPV6_CREATE = 'navlan -I %d --IPv6 --cria' NETWORKIPV4_REMOVE = 'navlan -I %d --IPv4 --remove' NETWORKIPV6_REMOVE = 'navlan -I %d --IPv6 --remove' # POOL MANAGE POOL_CREATE = 'gerador_vips --pool %s --cria' POOL_REMOVE = 'gerador_vips --pool %s --remove' POOL_HEALTHCHECK = 'gerador_vips --pool %s --healthcheck' POOL_REAL_CREATE = 'gerador_vips --pool %s --id_ip %s --port_ip %s --add' POOL_REAL_REMOVE = 'gerador_vips --pool %s --id_ip %s --port_ip %s --del' POOL_REAL_ENABLE = 'gerador_vips -p %s --id_ip %s --port_ip %s --ena' POOL_REAL_DISABLE = 'gerador_vips -p %s --id_ip %s --port_ip %s --dis' POOL_REAL_CHECK = 'gerador_vips -p %s --id_ip %s --port_ip %s --chk' POOL_REAL_CHECK_BY_POOL = 'gerador_vips --pool %s --check_status' POOL_REAL_CHECK_BY_VIP = 'gerador_vips --vip %s --check_status' POOL_SERVICEDOWNACTION = 'gerador_vips --pool %s --servicedownaction' POOL_MEMBER_PRIORITIES = 'gerador_vips --pool %s --priority' # Script to Managemant Status Pool Members POOL_MANAGEMENT_MEMBERS_STATUS = 'gerador_vips --pool %s --apply_status' # Script to Managemant Status Pool Members POOL_MANAGEMENT_LB_METHOD = 'gerador_vips --pool %s --lb_method' POOL_MANAGEMENT_LIMITS = 'gerador_vips --pool %s --maxconn' # VIP VIP_CREATE = 'gerador_vips -i %d --cria' VIP_REMOVE = 'gerador_vips -i %d --remove' # VIP REAL VIP_REAL_v4_CREATE = 'gerador_vips -i %s --real %s --ip %s --add' VIP_REAL_v6_CREATE = 'gerador_vips -i %s --real %s --ipv6 %s --add' VIP_REAL_v4_REMOVE = 'gerador_vips -i %s --real %s --ip %s --del' VIP_REAL_v6_REMOVE = 'gerador_vips -i %s --real %s --ipv6 %s --del' VIP_REAL_v4_ENABLE = 'gerador_vips -i %s --real %s --ip %s --ena' VIP_REAL_v6_ENABLE = 'gerador_vips -i %s --real %s --ipv6 %s --ena' VIP_REAL_v4_DISABLE = 'gerador_vips -i %s --real %s --ip %s --dis' VIP_REAL_v6_DISABLE = 'gerador_vips -i %s --real %s --ipv6 %s --dis' VIP_REAL_v4_CHECK = 'gerador_vips -i %s --real %s --ip %s --chk' VIP_REAL_v6_CHECK = 'gerador_vips -i %s --real %s --ipsv6 %s --chk' # VIP REAL - new calls VIP_REALS_v4_CREATE = 'gerador_vips -i %s --id_ip %s --port_ip %s --port_vip %s --add' VIP_REALS_v6_CREATE = 'gerador_vips -i %s --id_ipv6 %s --port_ip %s --port_vip %s --add' VIP_REALS_v4_REMOVE = 'gerador_vips -i %s --id_ip %s --port_ip %s --port_vip %s --del' VIP_REALS_v6_REMOVE = 'gerador_vips -i %s --id_ipv6 %s --port_ip %s --port_vip %s --del' VIP_REALS_v4_ENABLE = 'gerador_vips -i %s --id_ip %s --port_ip %s --port_vip %s --ena' VIP_REALS_v6_ENABLE = 'gerador_vips -i %s --id_ipv6 %s --port_ip %s --port_vip %s --ena' VIP_REALS_v4_DISABLE = 'gerador_vips -i %s --id_ip %s --port_ip %s --port_vip %s --dis' VIP_REALS_v6_DISABLE = 'gerador_vips -i %s --id_ipv6 %s --port_ip %s --port_vip %s --dis' VIP_REALS_v4_CHECK = 'gerador_vips -i %s --id_ip %s --port_ip %s --port_vip %s --chk' VIP_REALS_v6_CHECK = 'gerador_vips -i %s --id_ipv6 %s --port_ip %s --port_vip %s --chk' ################################## # QUEUE SETTINGS ################################## BROKER_CONNECT_TIMEOUT = os.getenv('NETWORKAPI_BROKER_CONNECT_TIMEOUT', '2') BROKER_DESTINATION = os.getenv('NETWORKAPI_BROKER_DESTINATION', 'tasks') BROKER_URL = os.getenv('NETWORKAPI_BROKER_URL', u'networkapi:networkapi@localhost:5672') ################################## # CELERY SETTINGS ################################## CELERYD_PREFETCH_MULTIPLIER = 1 CELERY_TIMEZONE = TIME_ZONE CELERY_ACCEPT_CONTENT = ['json', 'pickle'] CELERY_TASK_SERIALIZER = 'json' CELERY_TASK_RESULT_EXPIRES = 720 # 720 seconds. CELERY_RESULT_SERIALIZER = 'json' CELERY_RESULT_PERSISTENT = True CELERY_QUEUES = { 'napi.default': { 'exchange': 'napi.default', 'binding_key': 'napi.default'}, 'napi.network': { 'exchange': 'napi.network', 'binding_key': 'napi.network', }, 'napi.vip': { 'exchange': 'napi.vip', 'binding_key': 'napi.vip', }, 'napi.odl_flow': { 'exchange': 'napi.odl_flow', 'binding_key': 'napi.odl_flow', } } CELERY_DEFAULT_QUEUE = 'napi.default' CELERY_DEFAULT_EXCHANGE_TYPE = 'direct' CELERY_DEFAULT_ROUTING_KEY = 'napi.default' ################################### # PATH ACLS ################################### PATH_ACL = os.path.join(PROJECT_ROOT_PATH, 'ACLS/') ################################### # PATH RACKS ################################### # HARDCODED - MUDA SEMPRE QE ATUALIZARMOS O SO DO TOR KICKSTART_SO_LF = 'n6000-uk9-kickstart.7.1.0.N1.1b.bin' IMAGE_SO_LF = 'n6000-uk9.7.1.0.N1.1b.bin' PATH_TO_GUIDE = os.getenv( 'NETWORKAPI_PATH_TO_GUIDE', os.path.join(PROJECT_ROOT_PATH, 'rack/roteiros/')) PATH_TO_ADD_CONFIG = os.getenv( 'NETWORKAPI_PATH_TO_ADD_GUIDE', os.path.join(PROJECT_ROOT_PATH, 'rack/configuracao/')) PATH_TO_CONFIG = os.getenv( 'NETWORKAPI_PATH_TO_CONFIG', os.path.join(PROJECT_ROOT_PATH, 'rack/roteiros/')) REL_PATH_TO_CONFIG = os.getenv( 'NETWORKAPI_REL_PATH_TO_CONFIG', os.path.join(PROJECT_ROOT_PATH, 'rack/roteiros/')) REL_PATH_TO_ADD_CONFIG = os.getenv( 'NETWORKAPI_REL_PATH_TO_ADD_CONFIG', os.path.join(PROJECT_ROOT_PATH, 'rack/configuracao/')) PATH_TO_MV = os.getenv( 'NETWORKAPI_PATH_TO_MV', os.path.join(PROJECT_ROOT_PATH, 'rack/roteiros/')) LEAF = 'LF-CM' OOB = 'OOB-CM' SPN = 'SPN-CM' FORMATO = '.cfg' DIVISAODC_MGMT = 'OOB-CM' AMBLOG_MGMT = 'GERENCIA' GRPL3_MGMT = 'CORE/DENSIDADE' ################################## # FOREMAN SETTINGS ################################## NETWORKAPI_USE_FOREMAN = os.getenv('NETWORKAPI_USE_FOREMAN', '0') == '1' NETWORKAPI_FOREMAN_URL = os.getenv( 'NETWORKAPI_FOREMAN_URL', 'http://foreman_server') NETWORKAPI_FOREMAN_USERNAME = os.getenv('NETWORKAPI_FOREMAN_USERNAME', 'admin') NETWORKAPI_FOREMAN_PASSWORD = os.getenv( 'NETWORKAPI_FOREMAN_PASSWORD', 'password') USE_FOREMAN = NETWORKAPI_USE_FOREMAN FOREMAN_URL = NETWORKAPI_FOREMAN_URL FOREMAN_USERNAME = NETWORKAPI_FOREMAN_USERNAME FOREMAN_PASSWORD = NETWORKAPI_FOREMAN_PASSWORD FOREMAN_HOSTS_ENVIRONMENT_ID = 1 ################### # TEMPLATE CONFIG # ################### # TODO: CHANGE TO THIS: # NETWORKAPI_TFTP_SERVER_ADDR = os.getenv('NETWORKAPI_TFTP_SERVER_ADDR', '') # TFTP_SERVER_ADDR = NETWORKAPI_TFTP_SERVER_ADDR # TFTPBOOT_FILES_PATH = os.getenv( # 'NETWORKAPI_TFTPBOOT_FILES_PATH', PROJECT_ROOT_PATH) # CONFIG_TEMPLATE_PATH = os.getenv( # 'NETWORKAPI_CONFIG_TEMPLATE_PATH', # os.path.join(PROJECT_ROOT_PATH, 'config_templates/')) # CONFIG_TEMPLATE_PATH = os.getenv( # 'NETWORKAPI_CONFIG_TEMPLATE_PATH', # os.path.join(PROJECT_ROOT_PATH, 'config_templates/')) # CONFIG_FILES_PATH = os.path.join(TFTPBOOT_FILES_PATH, 'generated_config/') # NETWORK_CONFIG_TEMPLATE_PATH = os.path.join(CONFIG_TEMPLATE_PATH, 'network/') # INTERFACE_CONFIG_TEMPLATE_PATH = os.path.join( # CONFIG_TEMPLATE_PATH, 'interface/') # INTERFACE_CONFIG_FILES_PATH = os.path.join(CONFIG_FILES_PATH, 'interface/') # NETWORK_CONFIG_FILES_PATH = os.path.join(CONFIG_FILES_PATH, 'network/') NETWORKAPI_TFTP_SERVER_ADDR = os.getenv('NETWORKAPI_TFTP_SERVER_ADDR', '') TFTP_SERVER_ADDR = NETWORKAPI_TFTP_SERVER_ADDR TFTPBOOT_FILES_PATH = os.getenv('NETWORKAPI_TFTPBOOT_FILES_PATH', '/vagrant/') CONFIG_TEMPLATE_PATH = os.getenv('NETWORKAPI_CONFIG_TEMPLATE_PATH', '/vagrant/networkapi/config_templates/') CONFIG_FILES_REL_PATH = 'networkapi/generated_config/' APPLYED_CONFIG_REL_PATH = 'networkapi/applyed_config/' INTERFACE_CONFIG_REL_PATH = 'interface/' USER_SCRIPTS_REL_PATH = 'user_scripts/' NETWORK_CONFIG_REL_PATH = 'network/' BGP_CONFIG_REL_PATH = 'bgp/' # /vagrant/networkapi/generated_config/ CONFIG_FILES_PATH = TFTPBOOT_FILES_PATH + CONFIG_FILES_REL_PATH # networkapi/generated_config/user_scripts/ USER_SCRIPTS_TOAPPLY_REL_PATH = CONFIG_FILES_REL_PATH + USER_SCRIPTS_REL_PATH # networkapi/generated_config/network/ NETWORK_CONFIG_TOAPPLY_REL_PATH = CONFIG_FILES_REL_PATH + \ NETWORK_CONFIG_REL_PATH # networkapi/generated_config/interface/ INTERFACE_CONFIG_TOAPPLY_REL_PATH = CONFIG_FILES_REL_PATH + \ INTERFACE_CONFIG_REL_PATH # networkapi/generated_config/bgp/ BGP_CONFIG_TOAPPLY_REL_PATH = CONFIG_FILES_REL_PATH + \ BGP_CONFIG_REL_PATH # /vagrant/networkapi/config_templates/network/ NETWORK_CONFIG_TEMPLATE_PATH = CONFIG_TEMPLATE_PATH + NETWORK_CONFIG_REL_PATH # /vagrant/networkapi/config_templates/interface/ INTERFACE_CONFIG_TEMPLATE_PATH = CONFIG_TEMPLATE_PATH + \ INTERFACE_CONFIG_REL_PATH # /vagrant/networkapi/config_templates/bgp/ BGP_CONFIG_TEMPLATE_PATH = CONFIG_TEMPLATE_PATH + BGP_CONFIG_REL_PATH # /vagrant/networkapi/generated_config/interface/ INTERFACE_CONFIG_FILES_PATH = TFTPBOOT_FILES_PATH + \ INTERFACE_CONFIG_TOAPPLY_REL_PATH # /vagrant/networkapi/generated_config/user_scripts/ USER_SCRIPTS_FILES_PATH = TFTPBOOT_FILES_PATH + USER_SCRIPTS_TOAPPLY_REL_PATH # /vagrant/networkapi/generated_config/interface/ NETWORK_CONFIG_FILES_PATH = TFTPBOOT_FILES_PATH + \ NETWORK_CONFIG_TOAPPLY_REL_PATH # /vagrant/networkapi/generated_config/bgp/ BGP_CONFIG_FILES_PATH = TFTPBOOT_FILES_PATH + \ BGP_CONFIG_TOAPPLY_REL_PATH ### NETWORKAPI_ODL_NEW_FLUSH = os.getenv( 'NETWORKAPI_ODL_NEW_FLUSH', '1')