2020-04-07 17:45:16 +00:00
|
|
|
import sys
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
from django.core.management.base import BaseCommand
|
|
|
|
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
|
|
|
|
from opennebula.models import VM as VMModel
|
|
|
|
from uncloud_vm.models import VMHost, VMProduct, VMNetworkCard, VMDiskImageProduct, VMDiskProduct, VMCluster
|
|
|
|
|
|
|
|
import logging
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-08 14:24:39 +00:00
|
|
|
peer_template="""
|
|
|
|
# {username}
|
|
|
|
[Peer]
|
|
|
|
PublicKey = {public_key}
|
|
|
|
AllowedIPs = {vpnnetwork}
|
2020-04-07 17:45:16 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
class Command(BaseCommand):
|
|
|
|
help = 'General uncloud commands'
|
|
|
|
|
|
|
|
def add_arguments(self, parser):
|
2020-04-08 14:24:39 +00:00
|
|
|
parser.add_argument('--hostname',
|
|
|
|
action='store_true',
|
|
|
|
help='Name of this VPN Host',
|
2020-04-07 17:45:16 +00:00
|
|
|
required=True)
|
|
|
|
|
|
|
|
def handle(self, *args, **options):
|
|
|
|
if options['bootstrap']:
|
|
|
|
self.bootstrap()
|
|
|
|
|
|
|
|
self.create_vpn_config(options['hostname'])
|
|
|
|
|
|
|
|
def create_vpn_config(self, hostname):
|
2020-04-08 14:24:39 +00:00
|
|
|
configs = []
|
|
|
|
|
|
|
|
for pool in VPNPool.objects.filter(vpn_hostname=hostname):
|
|
|
|
configs.append(pool_config)
|
|
|
|
|
|
|
|
print(configs)
|