# Copyright 2016 ZTE Corporation.
#
# Licensed 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 os

# [MSB]
MSB_BASE_URL = os.getenv("MSB_HOST", "http://127.0.0.1:80")
MSB_ENABLED = os.getenv("MSB_ENABLED", True)

# [mysql]
DB_IP = os.getenv("MYSQL_ADDR", "127.0.0.1:3306").split(':')[0]
DB_PORT = os.getenv("MYSQL_ADDR", "127.0.0.1:3306").split(':')[1]
DB_NAME = "vfcnfvolcm"
DB_USER = "vfcnfvolcm"
DB_PASSWD = "vfcnfvolcm"

# [REDIS]
REDIS_HOST = os.getenv("REDIS_HOST", DB_IP)
REDIS_PORT = '6379'
REDIS_PASSWD = ''

# [MDC]
SERVICE_NAME = "nslcm"
FORWARDED_FOR_FIELDS = ["HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED_HOST",
                        "HTTP_X_FORWARDED_SERVER"]

# [register]
REG_TO_MSB_WHEN_START = os.getenv("REG_TO_MSB_WHEN_START", "false")
SSL_ENABLED = os.getenv("SSL_ENABLED", "false")
REG_TO_MSB_REG_URL = "/api/microservices/v1/services"
REG_TO_MSB_REG_PARAM = {
    "serviceName": "nslcm",
    "version": "v1",
    "enable_ssl": SSL_ENABLED,
    "url": "/api/nslcm/v1",
    "protocol": "REST",
    "visualRange": "1",
    "nodes": [{
        "ip": "127.0.0.1",
        "port": "8403",
        "ttl": 0
    }]
}
MSB_SVC_URL = "/api/microservices/v1/services/nslcm/version/%s"

# [aai config]
AAI_BASE_URL = "http://10.0.14.1:80/aai/v11"
AAI_USER = "AAI"
AAI_PASSWD = "AAI"
REPORT_TO_AAI = True

# [sdc config]
SDC_BASE_URL = "http://10.0.14.1:80/api"
SDC_USER = "SDC"
SDC_PASSWD = "SDC"

# [DMaaP]
MR_IP = '127.0.0.1'
MR_PORT = '3904'

# [workflow]
DEPLOY_WORKFLOW_WHEN_START = False
# Support option: activiti/wso2/buildin/grapflow
WORKFLOW_OPTION = "buildin"

# [OOF config]
OOF_BASE_URL = "https://oof-osdf.onap:8698"
OOF_USER = "vfc_test"
OOF_PASSWD = "vfc_testpwd"

# [Customer information]
CUST_NAME = "some_company"
CUST_LAT = "32.897480"
CUST_LONG = "97.040443"
start create vfcnfvolcm db
ERROR 2002 (HY000): Can't connect to server on 'mariadb-galera' (115)
Failed to create vfcnfvolcm database
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/pymysql/connections.py", line 613, in connect
    sock = socket.create_connection(
  File "/usr/local/lib/python3.8/socket.py", line 808, in create_connection
    raise err
  File "/usr/local/lib/python3.8/socket.py", line 796, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 234, in get_new_connection
    return Database.connect(**conn_params)
  File "/usr/local/lib/python3.8/site-packages/pymysql/connections.py", line 353, in __init__
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/pymysql/connections.py", line 664, in connect
    raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'mariadb-galera' ([Errno 111] Connection refused)")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 85, in wrapped
    res = handle_func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 75, in handle
    self.check(databases=[database])
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 392, in check
    all_issues = checks.run_checks(
  File "/usr/local/lib/python3.8/site-packages/django/core/checks/registry.py", line 70, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/usr/local/lib/python3.8/site-packages/django/core/checks/database.py", line 13, in check_database_backends
    issues.extend(conn.validation.check(**kwargs))
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/mysql/validation.py", line 9, in check
    issues.extend(self._check_sql_mode(**kwargs))
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/mysql/validation.py", line 13, in _check_sql_mode
    if not (self.connection.sql_mode & {'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES'}):
  File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 376, in sql_mode
    with self.cursor() as cursor:
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 259, in cursor
    return self._cursor()
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 235, in _cursor
    self.ensure_connection()
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 234, in get_new_connection
    return Database.connect(**conn_params)
  File "/usr/local/lib/python3.8/site-packages/pymysql/connections.py", line 353, in __init__
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/pymysql/connections.py", line 664, in connect
    raise exc
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'mariadb-galera' ([Errno 111] Connection refused)")
*** Starting uWSGI 2.0.20 (64bit) on [Mon Jul 18 23:58:28 2022] ***
compiled with version: 10.3.1 20211027 on 26 April 2022 02:54:29
os: Linux-5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022
nodename: onap-vfc-nslcm-5cd877cdb9-9lmt7
machine: x86_64
clock source: unix
detected number of CPU cores: 8
current working directory: /service/vfc/nfvo/lcm
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
your memory page size is 4096 bytes
 *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** 
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :8403 fd 4
uwsgi socket 0 bound to TCP address 127.0.0.1:39179 (port auto-assigned) fd 3
Python version: 3.8.13 (default, Apr 20 2022, 02:31:41)  [GCC 10.3.1 20211027]
Python main interpreter initialized at 0x7f2545097a60
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 364600 bytes (356 KB) for 4 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x7f2545097a60 pid: 24 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 24)
spawned uWSGI worker 1 (pid: 27, cores: 1)
spawned uWSGI worker 2 (pid: 28, cores: 1)
spawned uWSGI worker 3 (pid: 29, cores: 1)
spawned uWSGI worker 4 (pid: 30, cores: 1)
spawned uWSGI http 1 (pid: 31)
