mirror of https://github.com/Aidaho12/haproxy-wi
142 lines
6.2 KiB
Python
142 lines
6.2 KiB
Python
import modules.db.sql as sql
|
|
import modules.common.common as common
|
|
import modules.server.server as server_mod
|
|
import modules.provisioning.common as prov_common
|
|
|
|
form = common.form
|
|
|
|
|
|
def create_vars() -> None:
|
|
if form.getvalue('gcorevars'):
|
|
gcorevars = form.getvalue('gcorevars')
|
|
group = form.getvalue('gcore_create_group')
|
|
provider = form.getvalue('gcore_create_provider')
|
|
region = form.getvalue('gcore_create_regions')
|
|
project = form.getvalue('gcore_create_project')
|
|
size = form.getvalue('gcore_create_size')
|
|
oss = form.getvalue('gcore_create_oss')
|
|
ssh_name = form.getvalue('gcore_create_ssh_name')
|
|
volume_size = form.getvalue('gcore_create_volume_size')
|
|
volume_type = form.getvalue('gcore_create_volume_type')
|
|
delete_on_termination = form.getvalue('gcore_create_delete_on_termination')
|
|
network_name = form.getvalue('gcore_create_network_name')
|
|
firewall = form.getvalue('gcore_create_firewall')
|
|
network_type = form.getvalue('gcore_create_network_type')
|
|
elif form.getvalue('gcoreeditvars'):
|
|
gcorevars = form.getvalue('gcoreeditvars')
|
|
group = form.getvalue('gcore_edit_group')
|
|
provider = form.getvalue('gcore_edit_provider')
|
|
region = form.getvalue('gcore_edit_regions')
|
|
project = form.getvalue('gcore_edit_project')
|
|
size = form.getvalue('gcore_edit_size')
|
|
oss = form.getvalue('gcore_edit_oss')
|
|
ssh_name = form.getvalue('gcore_edit_ssh_name')
|
|
volume_size = form.getvalue('gcore_edit_volume_size')
|
|
volume_type = form.getvalue('gcore_edit_volume_type')
|
|
delete_on_termination = form.getvalue('gcore_edit_delete_on_termination')
|
|
network_name = form.getvalue('gcore_edit_network_name')
|
|
firewall = form.getvalue('gcore_edit_firewall')
|
|
network_type = form.getvalue('gcore_edit_network_type')
|
|
|
|
try:
|
|
gcore_user, gcore_pass = sql.select_gcore_provider(provider)
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
cmd = 'cd scripts/terraform/ && sudo ansible-playbook var_generator.yml -i inventory -e "region={} ' \
|
|
'group={} size={} os={} network_name={} volume_size={} server_name={} username={} ' \
|
|
'pass={} firewall={} network_type={} ssh_name={} delete_on_termination={} project={} volume_type={} ' \
|
|
'cloud=gcore"'.format(region, group, size, oss, network_name, volume_size, gcorevars, gcore_user, gcore_pass,
|
|
firewall, network_type, ssh_name, delete_on_termination, project, volume_type)
|
|
|
|
output, stderr = server_mod.subprocess_execute(cmd)
|
|
if stderr != '':
|
|
print(f'error: {stderr}')
|
|
else:
|
|
print('ok')
|
|
|
|
|
|
def validate() -> None:
|
|
if form.getvalue('gcorevalidate'):
|
|
workspace = form.getvalue('gcorevalidate')
|
|
group = form.getvalue('gcore_create_group')
|
|
else:
|
|
workspace = form.getvalue('gcoreeditvalidate')
|
|
group = form.getvalue('gcore_edit_group')
|
|
|
|
cmd = f'cd scripts/terraform/ && sudo terraform plan -no-color -input=false -target=module.gcore_module -var-file vars/{workspace}_{group}_gcore.tfvars'
|
|
output, stderr = server_mod.subprocess_execute(cmd)
|
|
if stderr != '':
|
|
print(f'error: {stderr}')
|
|
else:
|
|
print('ok')
|
|
|
|
|
|
def new_workspace() -> None:
|
|
workspace = form.getvalue('gcoreworkspace')
|
|
group = form.getvalue('gcore_create_group')
|
|
provider = form.getvalue('gcore_create_provider')
|
|
region = form.getvalue('gcore_create_regions')
|
|
project = form.getvalue('gcore_create_project')
|
|
size = form.getvalue('gcore_create_size')
|
|
oss = form.getvalue('gcore_create_oss')
|
|
ssh_name = form.getvalue('gcore_create_ssh_name')
|
|
volume_size = form.getvalue('gcore_create_volume_size')
|
|
volume_type = form.getvalue('gcore_create_volume_type')
|
|
delete_on_termination = form.getvalue('gcore_create_delete_on_termination')
|
|
network_type = form.getvalue('gcore_create_network_type')
|
|
firewall = form.getvalue('gcore_create_firewall')
|
|
network_name = form.getvalue('gcore_create_network_name')
|
|
|
|
cmd = f'cd scripts/terraform/ && sudo terraform workspace new {workspace}_{group}_gcore'
|
|
output, stderr = server_mod.subprocess_execute(cmd)
|
|
|
|
if stderr != '':
|
|
prov_common.show_error(stderr, group, workspace, provider)
|
|
else:
|
|
try:
|
|
if sql.add_server_gcore(
|
|
project, region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
|
|
provider, group, 'Creating', delete_on_termination, volume_type
|
|
):
|
|
prov_common.show_new_server(workspace, group, 'gcore')
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
|
|
def edit_workspace() -> None:
|
|
workspace = form.getvalue('gcoreeditworkspace')
|
|
group = form.getvalue('gcore_edit_group')
|
|
provider = form.getvalue('gcore_edit_provider')
|
|
region = form.getvalue('gcore_edit_regions')
|
|
project = form.getvalue('gcore_edit_project')
|
|
size = form.getvalue('gcore_edit_size')
|
|
oss = form.getvalue('gcore_edit_oss')
|
|
ssh_name = form.getvalue('gcore_edit_ssh_name')
|
|
volume_size = form.getvalue('gcore_edit_volume_size')
|
|
volume_type = form.getvalue('gcore_edit_volume_type')
|
|
delete_on_termination = form.getvalue('gcore_edit_delete_on_termination')
|
|
network_type = form.getvalue('gcore_edit_network_type')
|
|
firewall = form.getvalue('gcore_edit_firewall')
|
|
network_name = form.getvalue('gcore_edit_network_name')
|
|
server_id = form.getvalue('server_id')
|
|
|
|
try:
|
|
if sql.update_server_gcore(
|
|
region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
|
|
provider, group, 'Editing', server_id, delete_on_termination, volume_type, project
|
|
):
|
|
|
|
try:
|
|
cmd = f'cd scripts/terraform/ && sudo terraform workspace select {workspace}_{group}_gcore'
|
|
output, stderr = server_mod.subprocess_execute(cmd)
|
|
except Exception as e:
|
|
print('error: ' + str(e))
|
|
|
|
if stderr != '':
|
|
prov_common.show_error(stderr, group, workspace, provider)
|
|
else:
|
|
print('ok')
|
|
except Exception as e:
|
|
print(e)
|