mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Prior to this PR
```
root@r-663-VM:/var/cache/cloud# gzip -dk vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb.gz
root@r-663-VM:/var/cache/cloud# /opt/cloud/bin/update_config.py vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb
{'id': 'vpnuserlist', 'test': {'add': True, 'password': 'test', 'user': 'test'}}
{'vpn_users': [{'user': 'test', 'password': 'test', 'add': True}], 'type': 'vpnuserlist', 'delete_from_processed_cache': False}
line = # Secrets for authentication using CHAP
line = # client server secret IP addresses
line =
line =
line = test * test *
```
with this PR
```
root@r-663-VM:/var/cache/cloud# gzip -dk vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb.gz
root@r-663-VM:/var/cache/cloud# /opt/cloud/bin/update_config.py vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb
root@r-663-VM:/var/cache/cloud#
```
46 lines
1.4 KiB
Python
Executable File
46 lines
1.4 KiB
Python
Executable File
# -- 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 copy
|
|
|
|
|
|
def merge(dbag, data):
|
|
dbagc = copy.deepcopy(dbag)
|
|
|
|
if "vpn_users" not in data:
|
|
return dbagc
|
|
|
|
# remove previously deleted user from the dict
|
|
for user in dbagc.keys():
|
|
if user == 'id':
|
|
continue
|
|
userrec = dbagc[user]
|
|
add = userrec['add']
|
|
if not add:
|
|
del(dbagc[user])
|
|
|
|
for user in data['vpn_users']:
|
|
username = user['user']
|
|
add = user['add']
|
|
if username not in dbagc.keys():
|
|
dbagc[username] = user
|
|
elif username in dbagc.keys() and not add:
|
|
dbagc[username] = user
|
|
|
|
return dbagc
|