|
1 | 1 | #!/usr/bin/env bash
|
2 | 2 |
|
3 | 3 | # Startup script for SONiC Management REST Server
|
| 4 | +EXIT_MGMT_VARS_FILE_NOT_FOUND=1 |
| 5 | +MGMT_VARS_FILE=/usr/share/sonic/templates/mgmt_vars.j2 |
4 | 6 |
|
5 |
| -SERVER_PORT= |
6 |
| -LOG_LEVEL= |
7 |
| -CLIENT_AUTH= |
8 |
| -SERVER_CRT= |
9 |
| -SERVER_KEY= |
10 |
| -CA_CERT= |
11 |
| - |
12 |
| -# Read basic server settings from REST_SERVER|default entry |
13 |
| -HAS_REST_CONFIG=$(sonic-cfggen -d -v "1 if REST_SERVER and REST_SERVER['default']") |
14 |
| -if [ "$HAS_REST_CONFIG" == "1" ]; then |
15 |
| - SERVER_PORT=$(sonic-cfggen -d -v "REST_SERVER['default']['port']") |
16 |
| - CLIENT_AUTH=$(sonic-cfggen -d -v "REST_SERVER['default']['client_auth']") |
17 |
| - LOG_LEVEL=$(sonic-cfggen -d -v "REST_SERVER['default']['log_level']") |
| 7 | +if [ ! -f "$MGMT_VARS_FILE" ]; then |
| 8 | + echo "Mgmt vars template file not found" |
| 9 | + exit $EXIT_MGMT_VARS_FILE_NOT_FOUND |
| 10 | +fi |
| 11 | + |
| 12 | +# Read basic server settings from mgmt vars entries |
| 13 | +MGMT_VARS=$(sonic-cfggen -d -t $MGMT_VARS_FILE) |
| 14 | +MGMT_VARS=${MGMT_VARS//[\']/\"} |
| 15 | + |
| 16 | +REST_SERVER=$(echo $MGMT_VARS | jq -r '.rest_server') |
| 17 | + |
| 18 | +if [ -n "$REST_SERVER" ]; then |
| 19 | + SERVER_PORT=$(echo $REST_SERVER | jq -r '.port') |
| 20 | + CLIENT_AUTH=$(echo $REST_SERVER | jq -r '.client_auth') |
| 21 | + LOG_LEVEL=$(echo $REST_SERVER | jq -r '.log_level') |
| 22 | + |
| 23 | + SERVER_CRT=$(echo $REST_SERVER | jq -r '.server_crt') |
| 24 | + SERVER_KEY=$(echo $REST_SERVER | jq -r '.server_key') |
| 25 | + CA_CRT=$(echo $REST_SERVER | jq -r '.ca_crt') |
| 26 | +fi |
| 27 | + |
| 28 | +if [[ -z $SERVER_CRT ]] && [[ -z $SERVER_KEY ]] && [[ -z $CA_CRT ]]; then |
| 29 | + X509=$(echo $MGMT_VARS | jq -r '.x509') |
18 | 30 | fi
|
19 | 31 |
|
20 | 32 | # Read certificate file paths from DEVICE_METADATA|x509 entry.
|
21 |
| -HAS_X509_CONFIG=$(sonic-cfggen -d -v "1 if DEVICE_METADATA and DEVICE_METADATA['x509']") |
22 |
| -if [ "$HAS_X509_CONFIG" == "1" ]; then |
23 |
| - SERVER_CRT=$(sonic-cfggen -d -v "DEVICE_METADATA['x509']['server_crt']") |
24 |
| - SERVER_KEY=$(sonic-cfggen -d -v "DEVICE_METADATA['x509']['server_key']") |
25 |
| - CA_CRT=$(sonic-cfggen -d -v "DEVICE_METADATA['x509']['ca_crt']") |
| 33 | +if [ -n "$X509" ]; then |
| 34 | + SERVER_CRT=$(echo $X509 | jq -r '.server_crt') |
| 35 | + SERVER_KEY=$(echo $X509 | jq -r '.server_key') |
| 36 | + CA_CRT=$(echo $X509 | jq -r '.ca_crt') |
26 | 37 | fi
|
27 | 38 |
|
28 | 39 | # Create temporary server certificate if they not configured in ConfigDB
|
|
0 commit comments