mirror of https://github.com/Aidaho12/haproxy-wi
parent
9ed61f83e5
commit
9afcd0f213
|
@ -144,7 +144,9 @@ def create_table(**kwargs):
|
|||
`type` VARCHAR ( 64 ),
|
||||
`group` VARCHAR ( 64 ),
|
||||
`key` VARCHAR ( 64 ),
|
||||
`secret` VARCHAR ( 64 ),
|
||||
`secret` VARCHAR ( 64 ),
|
||||
`create_date` DATETIME default '0000-00-00 00:00:00',
|
||||
`edit_date` DATETIME default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY(`id`)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS provisioned_servers (
|
||||
|
@ -169,7 +171,7 @@ def create_table(**kwargs):
|
|||
`date` DATETIME default '0000-00-00 00:00:00',
|
||||
`IP` VARCHAR ( 64 ),
|
||||
`last_error` VARCHAR ( 256 ),
|
||||
`delete_on_termination` INTEGER
|
||||
`delete_on_termination` INTEGER,
|
||||
PRIMARY KEY(`id`)
|
||||
);
|
||||
"""
|
||||
|
@ -1051,9 +1053,29 @@ def update_db_v_51(**kwargs):
|
|||
con.close()
|
||||
|
||||
|
||||
def update_db_v_5_0_1(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = list()
|
||||
sql.append("alter table provisioned_servers add column project VARCHAR ( 64 )")
|
||||
sql.append("alter table provisioned_servers add column network_name VARCHAR ( 64 )")
|
||||
sql.append("alter table provisioned_servers add column volume_type VARCHAR ( 64 )")
|
||||
sql.append("alter table provisioned_servers add column name_template VARCHAR ( 64 )")
|
||||
for i in sql:
|
||||
try:
|
||||
cur.execute(i)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
pass
|
||||
else:
|
||||
if kwargs.get('silent') != 1:
|
||||
print('Updating... DB has been updated to version 5.0.1')
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_ver():
|
||||
con, cur = get_cur()
|
||||
sql = """update version set version = '5.0.1.0'; """
|
||||
sql = """update version set version = '5.0.2.0'; """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
|
@ -1089,6 +1111,7 @@ def update_all():
|
|||
update_db_v_4_5_9()
|
||||
update_db_v_5()
|
||||
update_db_v_51()
|
||||
update_db_v_5_0_1()
|
||||
update_ver()
|
||||
|
||||
|
||||
|
@ -1118,6 +1141,7 @@ def update_all_silent():
|
|||
update_db_v_4_5_9(silent=1)
|
||||
update_db_v_5(silent=1)
|
||||
update_db_v_51(silent=1)
|
||||
update_db_v_5_0_1(silent=1)
|
||||
update_ver()
|
||||
|
||||
|
||||
|
|
233
app/options.py
233
app/options.py
|
@ -2348,7 +2348,7 @@ if form.getvalue('show_versions'):
|
|||
if form.getvalue('get_group_name_by_id'):
|
||||
print(sql.get_group_name_by_id(form.getvalue('get_group_name_by_id')))
|
||||
|
||||
if form.getvalue('do_new_name') or form.getvalue('aws_new_name'):
|
||||
if form.getvalue('do_new_name') or form.getvalue('aws_new_name') or form.getvalue('gcore_new_name'):
|
||||
funct.check_user_group()
|
||||
is_add = False
|
||||
if form.getvalue('do_new_name'):
|
||||
|
@ -2368,6 +2368,15 @@ if form.getvalue('do_new_name') or form.getvalue('aws_new_name'):
|
|||
if sql.add_provider_aws(provider_name, provider_group, provider_token, provider_secret):
|
||||
is_add = True
|
||||
|
||||
elif form.getvalue('gcore_new_name'):
|
||||
provider_name = form.getvalue('gcore_new_name')
|
||||
provider_group = form.getvalue('gcore_new_group')
|
||||
provider_token = form.getvalue('gcore_new_user')
|
||||
provider_pass = form.getvalue('gcore_new_pass')
|
||||
|
||||
if sql.add_provider_gcore(provider_name, provider_group, provider_token, provider_pass):
|
||||
is_add = True
|
||||
|
||||
if is_add:
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import http.cookies
|
||||
|
@ -2393,7 +2402,7 @@ if form.getvalue('providerdel'):
|
|||
print('Ok')
|
||||
funct.logging('localhost', 'Provider has been deleted', provisioning=1)
|
||||
|
||||
if form.getvalue('awsinit') or form.getvalue('doinit'):
|
||||
if form.getvalue('awsinit') or form.getvalue('doinit') or form.getvalue('gcoreinitserver'):
|
||||
funct.check_user_group()
|
||||
cmd = 'cd scripts/terraform/ && sudo terraform init -upgrade -no-color'
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
|
@ -2417,6 +2426,7 @@ if form.getvalue('awsvars') or form.getvalue('awseditvars'):
|
|||
oss = form.getvalue('aws_create_oss')
|
||||
ssh_name = form.getvalue('aws_create_ssh_name')
|
||||
volume_size = form.getvalue('aws_create_volume_size')
|
||||
volume_type = form.getvalue('aws_create_volume_type')
|
||||
delete_on_termination = form.getvalue('aws_create_delete_on_termination')
|
||||
floating_ip = form.getvalue('aws_create_floating_net')
|
||||
firewall = form.getvalue('aws_create_firewall')
|
||||
|
@ -2430,6 +2440,7 @@ if form.getvalue('awsvars') or form.getvalue('awseditvars'):
|
|||
oss = form.getvalue('aws_editing_oss')
|
||||
ssh_name = form.getvalue('aws_editing_ssh_name')
|
||||
volume_size = form.getvalue('aws_editing_volume_size')
|
||||
volume_type = form.getvalue('aws_editing_volume_type')
|
||||
delete_on_termination = form.getvalue('aws_editing_delete_on_termination')
|
||||
floating_ip = form.getvalue('aws_editing_floating_net')
|
||||
firewall = form.getvalue('aws_editing_firewall')
|
||||
|
@ -2439,9 +2450,9 @@ if form.getvalue('awsvars') or form.getvalue('awseditvars'):
|
|||
|
||||
cmd = 'cd scripts/terraform/ && sudo ansible-playbook var_generator.yml -i inventory -e "region={} ' \
|
||||
'group={} size={} os={} floating_ip={} volume_size={} server_name={} AWS_ACCESS_KEY={} ' \
|
||||
'AWS_SECRET_KEY={} firewall={} public_ip={} ssh_name={} delete_on_termination={} ' \
|
||||
'AWS_SECRET_KEY={} firewall={} public_ip={} ssh_name={} delete_on_termination={} volume_type={} ' \
|
||||
'cloud=aws"'.format(region, group, size, oss, floating_ip, volume_size, awsvars, aws_key, aws_secret,
|
||||
firewall, public_ip, ssh_name, delete_on_termination)
|
||||
firewall, public_ip, ssh_name, delete_on_termination, volume_type)
|
||||
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
if stderr != '':
|
||||
|
@ -2543,7 +2554,7 @@ if form.getvalue('doworkspace'):
|
|||
user, user_id, role, token, servers = funct.get_users_params()
|
||||
new_server = sql.select_provisioned_servers(new=workspace, group=group, type='do')
|
||||
|
||||
env = Environment(loader=FileSystemLoader('templates'))
|
||||
env = Environment(extensions=["jinja2.ext.do"], loader=FileSystemLoader('templates'))
|
||||
template = env.get_template('ajax/provisioning/provisioned_servers.html')
|
||||
template = template.render(servers=new_server,
|
||||
groups=sql.select_groups(),
|
||||
|
@ -2610,6 +2621,7 @@ if form.getvalue('awsworkspace'):
|
|||
oss = form.getvalue('aws_create_oss')
|
||||
ssh_name = form.getvalue('aws_create_ssh_name')
|
||||
volume_size = form.getvalue('aws_create_volume_size')
|
||||
volume_type = form.getvalue('aws_create_volume_type')
|
||||
delete_on_termination = form.getvalue('aws_create_delete_on_termination')
|
||||
floating_ip = form.getvalue('aws_create_floating_net')
|
||||
firewall = form.getvalue('aws_create_firewall')
|
||||
|
@ -2628,14 +2640,14 @@ if form.getvalue('awsworkspace'):
|
|||
print('error: ' + stderr)
|
||||
else:
|
||||
if sql.add_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall,
|
||||
provider, group, 'Creating', delete_on_termination):
|
||||
provider, group, 'Creating', delete_on_termination, volume_type):
|
||||
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
user, user_id, role, token, servers = funct.get_users_params()
|
||||
new_server = sql.select_provisioned_servers(new=workspace, group=group, type='aws')
|
||||
|
||||
env = Environment(loader=FileSystemLoader('templates'))
|
||||
env = Environment(extensions=["jinja2.ext.do"], loader=FileSystemLoader('templates'))
|
||||
template = env.get_template('ajax/provisioning/provisioned_servers.html')
|
||||
template = template.render(servers=new_server,
|
||||
groups=sql.select_groups(),
|
||||
|
@ -2654,13 +2666,15 @@ if form.getvalue('awseditworkspace'):
|
|||
oss = form.getvalue('aws_editing_oss')
|
||||
ssh_name = form.getvalue('aws_editing_ssh_name')
|
||||
volume_size = form.getvalue('aws_editing_volume_size')
|
||||
volume_type = form.getvalue('aws_editing_volume_type')
|
||||
delete_on_termination = form.getvalue('aws_editing_delete_on_termination')
|
||||
floating_ip = form.getvalue('aws_editing_floating_net')
|
||||
firewall = form.getvalue('aws_editing_firewall')
|
||||
public_ip = form.getvalue('aws_editing_public_ip')
|
||||
server_id = form.getvalue('server_id')
|
||||
|
||||
if sql.update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider, group, 'Editing', server_id, delete_on_termination):
|
||||
if sql.update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall,
|
||||
provider, group, 'Editing', server_id, delete_on_termination, volume_type):
|
||||
|
||||
try:
|
||||
cmd = 'cd scripts/terraform/ && sudo terraform workspace select ' + workspace + '_' + group + '_aws'
|
||||
|
@ -2678,7 +2692,14 @@ if form.getvalue('awseditworkspace'):
|
|||
else:
|
||||
print('ok')
|
||||
|
||||
if form.getvalue('awsprovisining') or form.getvalue('awseditingprovisining') or form.getvalue('doprovisining') or form.getvalue('doeditprovisining'):
|
||||
if (
|
||||
form.getvalue('awsprovisining') or
|
||||
form.getvalue('awseditingprovisining') or
|
||||
form.getvalue('doprovisining') or
|
||||
form.getvalue('doeditprovisining') or
|
||||
form.getvalue('gcoreprovisining') or
|
||||
form.getvalue('gcoreeditgprovisining')
|
||||
):
|
||||
funct.check_user_group()
|
||||
if form.getvalue('awsprovisining'):
|
||||
workspace = form.getvalue('awsprovisining')
|
||||
|
@ -2708,6 +2729,20 @@ if form.getvalue('awsprovisining') or form.getvalue('awseditingprovisining') or
|
|||
action = 'modified'
|
||||
cloud = 'do'
|
||||
state_name = 'digitalocean_droplet'
|
||||
elif form.getvalue('gcoreprovisining'):
|
||||
workspace = form.getvalue('gcoreprovisining')
|
||||
group = form.getvalue('gcore_create_group')
|
||||
provider_id = form.getvalue('gcore_create_provider')
|
||||
action = 'created'
|
||||
cloud = 'gcore'
|
||||
state_name = 'gcore_instance'
|
||||
elif form.getvalue('gcoreeditgprovisining'):
|
||||
workspace = form.getvalue('gcoreeditgprovisining')
|
||||
group = form.getvalue('gcore_edit_group')
|
||||
provider_id = form.getvalue('gcore_edit_provider')
|
||||
action = 'modified'
|
||||
cloud = 'gcore'
|
||||
state_name = 'gcore_instance'
|
||||
|
||||
tfvars = workspace + '_'+group+'_' + cloud + '.tfvars'
|
||||
cmd = 'cd scripts/terraform/ && sudo terraform apply -auto-approve -no-color -input=false -target=module.' + cloud + '_module -var-file vars/' + tfvars
|
||||
|
@ -2737,6 +2772,13 @@ if form.getvalue('awsprovisining') or form.getvalue('awseditingprovisining') or
|
|||
ips += ' '
|
||||
print(ips)
|
||||
sql.update_provisioning_server_status('Created', group, workspace, provider_id, update_ip=ips)
|
||||
|
||||
if cloud == 'gcore':
|
||||
cmd = 'cd scripts/terraform/ && sudo terraform state show module.gcore_module.gcore_instance.hapwi|grep "name"|grep -v -e "_name\|name_" |head -1 |awk -F"\\\"" \'{print $2}\''
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
print(':'+output[0])
|
||||
sql.update_provisioning_server_gcore_name(workspace, output[0], group, provider_id)
|
||||
|
||||
funct.logging('localhost', 'Server ' + workspace + ' has been ' + action, provisioning=1)
|
||||
|
||||
if form.getvalue('provisiningdestroyserver'):
|
||||
|
@ -2774,15 +2816,169 @@ if form.getvalue('provisiningdestroyserver'):
|
|||
funct.logging('localhost', 'Server has been destroyed', provisioning=1)
|
||||
sql.delete_provisioned_servers(server_id)
|
||||
|
||||
if form.getvalue('gcorevars') or form.getvalue('gcoreeditvars'):
|
||||
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')
|
||||
|
||||
gcore_user, gcore_pass = sql.select_gcore_provider(provider)
|
||||
|
||||
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 = funct.subprocess_execute(cmd)
|
||||
if stderr != '':
|
||||
print('error: ' + stderr)
|
||||
else:
|
||||
print('ok')
|
||||
|
||||
if form.getvalue('gcorevalidate') or form.getvalue('gcoreeditvalidate'):
|
||||
if form.getvalue('gcorevalidate'):
|
||||
workspace = form.getvalue('gcorevalidate')
|
||||
group = form.getvalue('gcore_create_group')
|
||||
elif form.getvalue('gcoreeditvalidate'):
|
||||
workspace = form.getvalue('gcoreeditvalidate')
|
||||
group = form.getvalue('gcore_edit_group')
|
||||
|
||||
cmd = 'cd scripts/terraform/ && sudo terraform plan -no-color -input=false -target=module.gcore_module -var-file vars/' + workspace + '_'+group+'_gcore.tfvars'
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
if stderr != '':
|
||||
print('error: ' + stderr)
|
||||
else:
|
||||
print('ok')
|
||||
|
||||
if form.getvalue('gcoreworkspace'):
|
||||
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 = 'cd scripts/terraform/ && sudo terraform workspace new ' + workspace + '_' + group + '_gcore'
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
|
||||
if stderr != '':
|
||||
stderr = stderr.strip()
|
||||
stderr = repr(stderr)
|
||||
stderr = stderr.replace("'", "")
|
||||
stderr = stderr.replace("\'", "")
|
||||
sql.update_provisioning_server_status('Error', group, workspace, provider)
|
||||
sql.update_provisioning_server_error(stderr, group, workspace, provider)
|
||||
print('error: ' + stderr)
|
||||
else:
|
||||
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):
|
||||
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
user, user_id, role, token, servers = funct.get_users_params()
|
||||
new_server = sql.select_provisioned_servers(new=workspace, group=group, type='gcore')
|
||||
|
||||
env = Environment(extensions=["jinja2.ext.do"], loader=FileSystemLoader('templates'))
|
||||
template = env.get_template('ajax/provisioning/provisioned_servers.html')
|
||||
template = template.render(servers=new_server,
|
||||
groups=sql.select_groups(),
|
||||
user_group=group,
|
||||
providers=sql.select_providers(group),
|
||||
role=role,
|
||||
adding=1)
|
||||
print(template)
|
||||
|
||||
if form.getvalue('gcoreeditworkspace'):
|
||||
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')
|
||||
|
||||
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 = 'cd scripts/terraform/ && sudo terraform workspace select ' + workspace + '_' + group + '_gcore'
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
except Exception as e:
|
||||
print('error: ' + str(e))
|
||||
|
||||
if stderr != '':
|
||||
stderr = stderr.strip()
|
||||
stderr = repr(stderr)
|
||||
stderr = stderr.replace("'", "")
|
||||
stderr = stderr.replace("\'", "")
|
||||
sql.update_provisioning_server_error(stderr, group, workspace, provider)
|
||||
print('error: ' + stderr)
|
||||
else:
|
||||
print('ok')
|
||||
|
||||
if form.getvalue('editAwsServer'):
|
||||
funct.check_user_group()
|
||||
server_id = form.getvalue('editAwsServer')
|
||||
user_group = form.getvalue('editAwsGroup')
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
env = Environment(loader=FileSystemLoader('templates'))
|
||||
env = Environment(extensions=["jinja2.ext.do"], loader=FileSystemLoader('templates'))
|
||||
template = env.get_template('ajax/provisioning/aws_edit_dialog.html')
|
||||
template = template.render(server=sql.select_aws_server(server_id=server_id), providers=sql.select_providers(user_group))
|
||||
template = template.render(server=sql.select_aws_server(server_id=server_id), providers=sql.select_providers(int(user_group)))
|
||||
print(template)
|
||||
|
||||
if form.getvalue('editGcoreServer'):
|
||||
funct.check_user_group()
|
||||
server_id = form.getvalue('editGcoreServer')
|
||||
user_group = form.getvalue('editGcoreGroup')
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
env = Environment(extensions=["jinja2.ext.do"], loader=FileSystemLoader('templates'))
|
||||
template = env.get_template('ajax/provisioning/gcore_edit_dialog.html')
|
||||
template = template.render(server=sql.select_gcore_server(server_id=server_id), providers=sql.select_providers(int(user_group)))
|
||||
print(template)
|
||||
|
||||
if form.getvalue('editDoServer'):
|
||||
|
@ -2791,9 +2987,9 @@ if form.getvalue('editDoServer'):
|
|||
user_group = form.getvalue('editDoGroup')
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
env = Environment(loader=FileSystemLoader('templates'))
|
||||
env = Environment(extensions=["jinja2.ext.do"], loader=FileSystemLoader('templates'))
|
||||
template = env.get_template('ajax/provisioning/do_edit_dialog.html')
|
||||
template = template.render(server=sql.select_do_server(server_id=server_id), providers=sql.select_providers(user_group))
|
||||
template = template.render(server=sql.select_do_server(server_id=server_id), providers=sql.select_providers(int(user_group)))
|
||||
print(template)
|
||||
|
||||
if form.getvalue('edit_do_provider'):
|
||||
|
@ -2806,6 +3002,17 @@ if form.getvalue('edit_do_provider'):
|
|||
print('ok')
|
||||
funct.logging('localhost', 'Provider has been renamed. New name is ' + new_name, provisioning=1)
|
||||
|
||||
if form.getvalue('edit_gcore_provider'):
|
||||
funct.check_user_group()
|
||||
provider_id = form.getvalue('edit_gcore_provider')
|
||||
new_name = form.getvalue('edit_gcore_provider_name')
|
||||
new_user = form.getvalue('edit_gcore_provider_user')
|
||||
new_pass = form.getvalue('edit_gcore_provider_pass')
|
||||
|
||||
if sql.update_gcore_provider(new_name, new_user, new_pass, provider_id):
|
||||
print('ok')
|
||||
funct.logging('localhost', 'Provider has been renamed. New name is ' + new_name, provisioning=1)
|
||||
|
||||
if form.getvalue('edit_aws_provider'):
|
||||
funct.check_user_group()
|
||||
provider_id = form.getvalue('edit_aws_provider')
|
||||
|
|
417
app/sql.py
417
app/sql.py
|
@ -7,7 +7,7 @@ mysql_enable = funct.get_config_var('mysql', 'enable')
|
|||
if mysql_enable == '1':
|
||||
import mysql.connector as sqltool
|
||||
else:
|
||||
db = "haproxy-wi.db"
|
||||
db = "/var/www/haproxy-wi/app/haproxy-wi.db"
|
||||
import sqlite3 as sqltool
|
||||
|
||||
|
||||
|
@ -34,10 +34,10 @@ def get_cur():
|
|||
def add_user(user, email, password, role, activeuser, group):
|
||||
con, cur = get_cur()
|
||||
if password != 'aduser':
|
||||
sql = """INSERT INTO user (username, email, password, role, activeuser, 'groups')
|
||||
sql = """INSERT INTO user (username, email, password, role, activeuser, `groups`)
|
||||
VALUES ('%s', '%s', '%s', '%s', '%s', '%s')""" % (user, email, funct.get_hash(password), role, activeuser, group)
|
||||
else:
|
||||
sql = """INSERT INTO user (username, email, role, ldap_user, activeuser, 'groups')
|
||||
sql = """INSERT INTO user (username, email, role, ldap_user, activeuser, `groups`)
|
||||
VALUES ('%s', '%s', '%s', '1', '%s', '%s')""" % (user, email, role, activeuser, group)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
|
@ -792,6 +792,11 @@ def get_dick_permit(**kwargs):
|
|||
group = cookie.get('group')
|
||||
grp = group.value
|
||||
user = get_user_id_by_uuid(user_id.value)
|
||||
if kwargs.get('token'):
|
||||
token = kwargs.get('token')
|
||||
else:
|
||||
token = ''
|
||||
only_group = kwargs.get('only_group')
|
||||
disable = ''
|
||||
haproxy = ''
|
||||
nginx = ''
|
||||
|
@ -813,10 +818,10 @@ def get_dick_permit(**kwargs):
|
|||
if kwargs.get('keepalived'):
|
||||
nginx = "and keepalived = 1"
|
||||
|
||||
if funct.check_user_group():
|
||||
if funct.check_user_group(token=token):
|
||||
con, cur = get_cur()
|
||||
if grp == '1':
|
||||
sql = """ select * from servers where enable = 1 %s %s %s order by pos""" % (disable, type_ip, nginx)
|
||||
if grp == '1' and not only_group:
|
||||
sql = """ select * from servers where enable = 1 %s %s %s %s order by pos""" % (disable, type_ip, nginx, ip)
|
||||
else:
|
||||
sql = """ select * from servers where groups = '{group}' and (enable = 1 {disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived} order by pos
|
||||
""".format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx, keepalived=keepalived)
|
||||
|
@ -1227,17 +1232,17 @@ def insert_mentrics(serv, curr_con, cur_ssl_con, sess_rate, max_sess_rate):
|
|||
con.close()
|
||||
|
||||
|
||||
def select_waf_metrics_enable(id):
|
||||
con, cur = get_cur()
|
||||
sql = """ select waf.metrics from waf left join servers as serv on waf.server_id = serv.id where server_id = '%s' """ % id
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
# def select_waf_metrics_enable(id):
|
||||
# con, cur = get_cur()
|
||||
# sql = """ select waf.metrics from waf left join servers as serv on waf.server_id = serv.id where server_id = '%s' """ % id
|
||||
# try:
|
||||
# cur.execute(sql)
|
||||
# except sqltool.Error as e:
|
||||
# funct.out_error(e)
|
||||
# else:
|
||||
# return cur.fetchall()
|
||||
# cur.close()
|
||||
# con.close()
|
||||
|
||||
|
||||
def select_waf_metrics_enable_server(ip):
|
||||
|
@ -1812,7 +1817,10 @@ def select_table_metrics():
|
|||
|
||||
|
||||
def get_setting(param, **kwargs):
|
||||
user_group = funct.get_user_group(id=1)
|
||||
try:
|
||||
user_group = funct.get_user_group(id=1)
|
||||
except Exception as e:
|
||||
user_group = ''
|
||||
|
||||
if user_group == '' or param == 'lists_path' or param == 'ssl_local_path':
|
||||
user_group = '1'
|
||||
|
@ -2426,6 +2434,192 @@ def select_geoip_country_codes():
|
|||
return cur.fetchall()
|
||||
|
||||
|
||||
def insert_port_scanner_settings(server_id, user_group_id, enabled, notify, history):
|
||||
con, cur = get_cur()
|
||||
sql = """ insert into port_scanner_settings values('%s', '%s', '%s', '%s', '%s') """ % (server_id, user_group_id, enabled, notify, history)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
return True
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
return False
|
||||
finally:
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_port_scanner_settings(server_id, user_group_id, enabled, notify, history):
|
||||
con, cur = get_cur()
|
||||
sql = """ update port_scanner_settings set
|
||||
user_group_id = '%s',
|
||||
enabled = '%s',
|
||||
notify = '%s',
|
||||
history = '%s'
|
||||
where server_id = '%s' """ % (user_group_id, enabled, notify, history, server_id)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_port_scanner_settings(user_group):
|
||||
con, cur = get_cur()
|
||||
sql_group = ''
|
||||
if user_group != 1:
|
||||
sql_group = "where user_group_id = '%s'" % str(user_group)
|
||||
|
||||
sql = """select * from port_scanner_settings %s """ % sql_group
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_port_scanner_settings_for_service():
|
||||
con, cur = get_cur()
|
||||
sql = """select * from port_scanner_settings """
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def delete_port_scanner_settings(server_id):
|
||||
con, cur = get_cur()
|
||||
sql = """ delete from port_scanner_settings where server_id = '%s' """ % server_id
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def insert_port_scanner_port(serv, user_group_id, port, service_name):
|
||||
con, cur = get_cur()
|
||||
if mysql_enable == '1':
|
||||
sql = """ insert into port_scanner_ports values('%s', '%s', '%s', '%s', now()) """ % (serv, user_group_id, port, service_name)
|
||||
else:
|
||||
sql = """ insert into port_scanner_ports values('%s', '%s', '%s', '%s', datetime('now', 'localtime')) """ % (serv, user_group_id, port, service_name)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_ports(serv):
|
||||
con, cur = get_cur()
|
||||
sql = """select port from port_scanner_ports where serv = '%s' """ % serv
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_port_name(serv, port):
|
||||
con, cur = get_cur()
|
||||
sql = """select service_name from port_scanner_ports where serv = '%s' and port = '%s' """ % (serv, port)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
for port in cur.fetchall():
|
||||
return port[0]
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_count_opened_ports(serv):
|
||||
con, cur = get_cur()
|
||||
sql = """ select date, count(port) from port_scanner_ports where serv = '%s' """ % serv
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
cur.close()
|
||||
con.close()
|
||||
return ""
|
||||
else:
|
||||
port = list()
|
||||
for ports in cur.fetchall():
|
||||
port.append([ports[1], ports[0]])
|
||||
cur.close()
|
||||
con.close()
|
||||
return port
|
||||
|
||||
|
||||
def delete_ports(serv):
|
||||
con, cur = get_cur()
|
||||
sql = """ delete from port_scanner_ports where serv = '%s' """ % serv
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def insert_port_scanner_history(serv, port, port_status, service_name):
|
||||
con, cur = get_cur()
|
||||
if mysql_enable == '1':
|
||||
sql = """ insert into port_scanner_history values('%s', '%s', '%s', '%s', now()) """ % (serv, port, port_status, service_name)
|
||||
else:
|
||||
sql = """ insert into port_scanner_history values('%s', '%s', '%s', '%s', datetime('now', 'localtime')) """ % (serv, port, port_status, service_name)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_port_scanner_history(serv):
|
||||
con, cur = get_cur()
|
||||
sql = """select * from port_scanner_history where serv = '%s' """ % serv
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def add_provider_do(provider_name, provider_group, provider_token):
|
||||
con, cur = get_cur()
|
||||
if mysql_enable == '1':
|
||||
|
@ -2463,6 +2657,25 @@ def add_provider_aws(provider_name, provider_group, provider_key, provider_secre
|
|||
con.close()
|
||||
|
||||
|
||||
def add_provider_gcore(provider_name, provider_group, provider_user, provider_pass):
|
||||
con, cur = get_cur()
|
||||
|
||||
if mysql_enable == '1':
|
||||
sql = """ insert into providers_creds (name, type, `group`, key, secret, create_date, edit_date) values ('%s', 'gcore', '%s', '%s', '%s', now(), now())""" % (provider_name, provider_group, provider_user, provider_pass)
|
||||
else:
|
||||
sql = """ insert into providers_creds (name, type, `group`, key, secret, create_date, edit_date) values ('%s', 'gcore', '%s', '%s', '%s', datetime('now', 'localtime'), datetime('now', 'localtime'))""" % (provider_name, provider_group, provider_user, provider_pass)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
return True
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
return False
|
||||
finally:
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_providers(user_group, **kwargs):
|
||||
con, cur = get_cur()
|
||||
|
||||
|
@ -2503,20 +2716,20 @@ def delete_provider(provider_id):
|
|||
con.close()
|
||||
|
||||
|
||||
def add_server_aws(region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, status, delete_on_termination):
|
||||
def add_server_aws(region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, status, delete_on_termination, volume_type):
|
||||
con, cur = get_cur()
|
||||
if mysql_enable == '1':
|
||||
sql = """ insert into provisioned_servers
|
||||
(region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, type, status, date, delete_on_termination)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 'aws', '%s', now()), '%s'""" % (
|
||||
region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id,
|
||||
(region, instance_type, public_ip, floating_ip, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id, group_id, type, status, date, delete_on_termination)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 'aws', '%s', now()), '%s'""" % (
|
||||
region, instance_type, public_ip, floating_ip, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id,
|
||||
group_id, status, delete_on_termination)
|
||||
|
||||
else:
|
||||
sql = """ insert into provisioned_servers
|
||||
(region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, type, status, date, delete_on_termination)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 'aws', '%s', datetime('now', 'localtime'), '%s')""" % (
|
||||
region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id,
|
||||
(region, instance_type, public_ip, floating_ip, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id, group_id, type, status, date, delete_on_termination)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 'aws', '%s', datetime('now', 'localtime'), '%s')""" % (
|
||||
region, instance_type, public_ip, floating_ip, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id,
|
||||
group_id, status, delete_on_termination)
|
||||
|
||||
try:
|
||||
|
@ -2530,6 +2743,33 @@ def add_server_aws(region, instance_type, public_ip, floating_ip, volume_size, s
|
|||
con.close()
|
||||
|
||||
|
||||
def add_server_gcore(project ,region, instance_type, network_type, network_name, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, status, delete_on_termination, volume_type):
|
||||
con, cur = get_cur()
|
||||
if mysql_enable == '1':
|
||||
sql = """ insert into provisioned_servers
|
||||
(region, instance_type, public_ip, network_name, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id, group_id, type, status, date, delete_on_termination, project)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 'gcore', '%s', now()), '%s', '%s'""" % (
|
||||
region, instance_type, network_type, network_name, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id,
|
||||
group_id, status, delete_on_termination, project)
|
||||
|
||||
else:
|
||||
sql = """ insert into provisioned_servers
|
||||
(region, instance_type, public_ip, network_name, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id, group_id, type, status, date, delete_on_termination, project)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 'gcore', '%s', datetime('now', 'localtime'), '%s', '%s')""" % (
|
||||
region, instance_type, network_type, network_name, volume_size, volume_type, ssh_key_name, name, os, firewall, provider_id,
|
||||
group_id, status, delete_on_termination, project)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
return True
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
return False
|
||||
finally:
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def add_server_do(region, size, privet_net, floating_ip, ssh_ids, ssh_key_name, name, oss, firewall, monitoring, backup, provider_id, group_id, status):
|
||||
con, cur = get_cur()
|
||||
if mysql_enable == '1':
|
||||
|
@ -2559,7 +2799,24 @@ def add_server_do(region, size, privet_net, floating_ip, ssh_ids, ssh_key_name,
|
|||
|
||||
def select_aws_server(server_id):
|
||||
con, cur = get_cur()
|
||||
sql = """ select region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, id, delete_on_termination
|
||||
sql = """ select region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, id, delete_on_termination, volume_type
|
||||
from provisioned_servers where id = '%s' """ % server_id
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
finally:
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_gcore_server(server_id):
|
||||
con, cur = get_cur()
|
||||
sql = """ select region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall,
|
||||
provider_id, group_id, id, delete_on_termination, project, network_name, volume_type, name_template
|
||||
from provisioned_servers where id = '%s' """ % server_id
|
||||
|
||||
try:
|
||||
|
@ -2612,6 +2869,22 @@ def update_provisioning_server_status(status, user_group_id, name, provider_id,
|
|||
con.close()
|
||||
|
||||
|
||||
def update_provisioning_server_gcore_name(name, template_name, user_group_id, provider_id):
|
||||
con, cur = get_cur()
|
||||
|
||||
sql = """update provisioned_servers set name_template = '%s'
|
||||
where group_id = '%s' and name = '%s' and provider_id = '%s' """ % (template_name, user_group_id, name, provider_id)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_provisioning_server_error(status, user_group_id, name, provider_id):
|
||||
con, cur = get_cur()
|
||||
|
||||
|
@ -2628,7 +2901,7 @@ def update_provisioning_server_error(status, user_group_id, name, provider_id):
|
|||
con.close()
|
||||
|
||||
|
||||
def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, server_id, delete_on_termination):
|
||||
def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, server_id, delete_on_termination, volume_type):
|
||||
con, cur = get_cur()
|
||||
sql = """ update provisioned_servers set
|
||||
region = '%s',
|
||||
|
@ -2643,8 +2916,9 @@ def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_nam
|
|||
provider_id = '%s',
|
||||
group_id = '%s',
|
||||
status = '%s',
|
||||
delete_on_termination = '%s'
|
||||
where id = '%s' """ % (region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, delete_on_termination, server_id)
|
||||
delete_on_termination = '%s',
|
||||
volume_type = '%s'
|
||||
where id = '%s' """ % (region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, delete_on_termination, volume_type, server_id)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
|
@ -2659,6 +2933,39 @@ def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_nam
|
|||
con.close()
|
||||
|
||||
|
||||
def update_server_gcore(region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, server_id, delete_on_termination, volume_type, project):
|
||||
con, cur = get_cur()
|
||||
sql = """ update provisioned_servers set
|
||||
region = '%s',
|
||||
instance_type = '%s',
|
||||
public_ip = '%s',
|
||||
network_name = '%s',
|
||||
volume_size = '%s',
|
||||
ssh_key_name = '%s',
|
||||
name = '%s',
|
||||
os = '%s',
|
||||
firewall = '%s',
|
||||
provider_id = '%s',
|
||||
group_id = '%s',
|
||||
status = '%s',
|
||||
delete_on_termination = '%s',
|
||||
volume_type = '%s',
|
||||
project = '%s'
|
||||
where id = '%s' """ % (region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, delete_on_termination, volume_type, project, server_id)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
return True
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
return False
|
||||
finally:
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_server_do(size, privet_net, floating_ip, ssh_ids, ssh_name, oss, firewall, monitoring, backup, provider,
|
||||
group, status, server_id):
|
||||
con, cur = get_cur()
|
||||
|
@ -2706,7 +3013,7 @@ def delete_provisioned_servers(server_id):
|
|||
|
||||
def select_provisioned_servers(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """select id, name, provider_id, type, group_id, instance_type, status, date, region, os, IP, last_error from provisioned_servers"""
|
||||
sql = """select id, name, provider_id, type, group_id, instance_type, status, date, region, os, IP, last_error, name_template from provisioned_servers"""
|
||||
|
||||
if kwargs.get('all'):
|
||||
sql = """select * from provisioned_servers where id = '%s' """ % kwargs.get('all')
|
||||
|
@ -2743,6 +3050,25 @@ def select_aws_provider(provider_id):
|
|||
return aws_key, aws_secret
|
||||
|
||||
|
||||
def select_gcore_provider(provider_id):
|
||||
con, cur = get_cur()
|
||||
sql = """ select key, secret from providers_creds where id = '%s'""" % provider_id
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
cur.close()
|
||||
con.close()
|
||||
return ""
|
||||
else:
|
||||
for p in cur.fetchall():
|
||||
user_name = p[0]
|
||||
password = p[1]
|
||||
cur.close()
|
||||
con.close()
|
||||
return user_name, password
|
||||
|
||||
|
||||
def select_do_provider(provider_id):
|
||||
con, cur = get_cur()
|
||||
sql = """ select key from providers_creds where id = '%s'""" % provider_id
|
||||
|
@ -2790,6 +3116,37 @@ def update_do_provider(new_name, new_token, provider_id):
|
|||
con.close()
|
||||
|
||||
|
||||
def update_gcore_provider(new_name, new_user, new_pass, provider_id):
|
||||
con, cur = get_cur()
|
||||
|
||||
if mysql_enable == '1':
|
||||
sql = """ update providers_creds set
|
||||
name = '%s',
|
||||
key = '%s',
|
||||
secret = '%s',
|
||||
edit_date = now()
|
||||
where id = '%s' """ % (new_name, new_user, new_pass, provider_id)
|
||||
else:
|
||||
sql = """ update providers_creds set
|
||||
name = '%s',
|
||||
key = '%s',
|
||||
secret = '%s',
|
||||
edit_date = datetime('now', 'localtime')
|
||||
where id = '%s' """ % (new_name, new_user, new_pass, provider_id)
|
||||
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
return True
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
con.rollback()
|
||||
return False
|
||||
finally:
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_aws_provider(new_name, new_key, new_secret, provider_id):
|
||||
con, cur = get_cur()
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{% from 'include/input_macros.html' import input, select, checkbox %}
|
||||
{% from 'include/provisioning/variables.html' import aws_regions, aws_oss, aws_volume_type %}
|
||||
{% for s in server %}
|
||||
{% set region_name = [] %}
|
||||
<div id="aws_edit" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview provisioning_table">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
|
@ -42,7 +44,13 @@
|
|||
Region
|
||||
</td>
|
||||
<td>
|
||||
<span id="aws_edit_region">{{s.0}}</span>
|
||||
{% for key, value in aws_regions.items() %}
|
||||
{% if s.0|int() == key|int() %}
|
||||
{% do region_name.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<span id="aws_edit_region" style="display: none;">{{s.0}}</span>
|
||||
{{region_name.0}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -56,7 +64,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_edit_size', size='30', value=s.1)}}
|
||||
{{input('aws_edit_size', size='26', value=s.1)}}
|
||||
<div class="tooltip tooltipTop tooltipTd">
|
||||
Instance types list is <a href="https://aws.amazon.com/ec2/instance-types/" title="Instance types list" target="_blank">here</a>
|
||||
</div>
|
||||
|
@ -68,11 +76,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set oss = dict() %}
|
||||
{% set oss = {'centos-7':'Centos 7 x64','ubuntu-18.04':'Ubuntu 18.04 x64','ubuntu-18.10':'Ubuntu 18.10 x64',
|
||||
'debian-10':'Debian 10 x86','debian-9':'Debian 9 x86','rhel-7':'RHEL 7 x86','rhel-8':'RHEL 8 x86',
|
||||
'amazon-2_lts':'Amazon Linux 2 x86'} %}
|
||||
{{ select('aws_edit_oss', values=oss, first=s.7, disabled='false') }}
|
||||
{{ select('aws_edit_oss', values=aws_oss, first=s.7, disabled='false') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -81,7 +85,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_edit_ssh_name', size='30', value=s.5)}}
|
||||
{{input('aws_edit_ssh_name', size='26', value=s.5)}}
|
||||
<div class="tooltip tooltipTop tooltipTd">SSH key must exists in region where instance create</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -91,13 +95,29 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">
|
||||
<td class="padding20">
|
||||
Volume size
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_edit_volume_size', size='30', value=s.4, type='number')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">Size in GB</div>
|
||||
{{input('aws_edit_volume_size', size='26', value=s.4, type='number')}}Gb
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Volume type
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="aws_edit_volume_type">
|
||||
{% for key, value in aws_volume_type.items() %}
|
||||
{% if s.13 == key %}
|
||||
<option value="{{key}}" selected>{{value}}</option>
|
||||
{% else %}
|
||||
<option value="{{key}}">{{value}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{% from 'include/input_macros.html' import input, select, checkbox %}
|
||||
{% from 'include/provisioning/variables.html' import do_regions, do_oss %}
|
||||
{% for s in server %}
|
||||
{% set region_name = [] %}
|
||||
<div id="do_edit" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview provisioning_table">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
|
@ -42,7 +44,13 @@
|
|||
Region
|
||||
</td>
|
||||
<td>
|
||||
<span id="do_edit_regions">{{s.0}}</span>
|
||||
{% for key, value in do_regions.items() %}
|
||||
{% if s.0|int() == key|int() %}
|
||||
{% do region_name.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<span id="do_edit_regions" style="display: none;">{{s.0}}</span>
|
||||
{{region_name.0}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -63,10 +71,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set oss = dict() %}
|
||||
{% set oss = {'centos-7-x64':'Centos 7 x64', 'centos-8-x64':'Centos 8 x64','ubuntu-18-04-x64':'Ubuntu 18.04 x64','ubuntu-20-04-x64':'Ubuntu 20.04 x64',
|
||||
'ubuntu-20-10-x64':'Ubuntu 20.10 x64','debian-10-x64':'Debian 10 x86','debian-9-x64':'Debian 9 x86'} %}
|
||||
{{ select('do_edit_oss', values=oss, first=s.7, disabled='false') }}
|
||||
{{ select('do_edit_oss', values=do_oss, first=s.7, disabled='false') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -0,0 +1,244 @@
|
|||
{% from 'include/input_macros.html' import input, select, checkbox %}
|
||||
{% from 'include/provisioning/variables.html' import gcore_regions, gcore_volume_type %}
|
||||
{% for s in server %}
|
||||
{% set region_name = [] %}
|
||||
<div id="gcore_edit" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview provisioning_table">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>General information</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Server name
|
||||
</td>
|
||||
<td>
|
||||
<span id="gcore_edit_server_name">{{s.6}}</span>({{s.16}})
|
||||
</td>
|
||||
</tr>
|
||||
{{input('gcore_edit_group', value=s.10, type='hidden')}}
|
||||
{{input('gcore_edit_id', value=s.11, type='hidden')}}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Provider credentials
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="gcore_edit_id_provider">
|
||||
{% for p in providers %}
|
||||
{% if p.2 == 'gcore' %}
|
||||
{% if s.9|int() == p.0|int() %}
|
||||
<option value="{{ p.0 }}" selected>{{ p.1 }}</option>
|
||||
{% else %}
|
||||
<option value="{{ p.0 }}">{{ p.1 }}</option>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Region
|
||||
</td>
|
||||
<td>
|
||||
{% for key, value in gcore_regions.items() %}
|
||||
{% if s.0|int() == key|int() %}
|
||||
{% do region_name.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<span id="gcore_edit_region" style="display: none;">{{s.0}}</span>
|
||||
{{region_name.0}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Project name
|
||||
</td>
|
||||
<td>
|
||||
<span id="gcore_edit_project_name">{{s.13}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>Instance</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Flavor
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_edit_size', size='26', value=s.1)}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
OS
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set oss = dict() %}
|
||||
{% set oss = {"centos-7-1811-x64-qcow2": "Centos 7", "centos8-1911-x64": "Centos 8", "sles15-SP2": "SLES 15-SP2", "fedora-32-x64-qcow2": "Fedora 32", "fedora-33-x64-qcow2": "Fedora 33",
|
||||
"fedora-coreos-32-x64": "Fedora CoreOS 32", "ubuntu-16.04-x64": "Ubuntu 16.04", "ubuntu-18.04-x64": "Ubuntu 18.04",
|
||||
"ubuntu-20.04-x64": "Ubuntu 20.04", "ubuntu-20.10-x64": "Ubuntu 20.10", "debian-9.7-x64-qcow2": "Debian 9.7",
|
||||
"debian-10.1-x64-qcow2": "Debian 10.1", "debian-10.3-x64-qcow2": "Debian 10.3"} %}
|
||||
{{ select('gcore_edit_oss', values=oss, first=s.7, disabled='false') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">
|
||||
SSH key pair name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_edit_ssh_name', size='26', value=s.5)}}
|
||||
<div class="tooltip tooltipTop tooltipTd">SSH key must exists in region where instance edit</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>Volume</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Volume size
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_edit_volume_size', size='26', value=s.4, type='number')}}Gb
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">
|
||||
Volume type
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="gcore_edit_volume_type">
|
||||
{% for key, value in gcore_volume_type.items() %}
|
||||
{% if s.15 == key %}
|
||||
<option value="{{key}}" selected>{{value}}</option>
|
||||
{% else %}
|
||||
<option value="{{key}}">{{value}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">Delete on termination</td>
|
||||
<td>
|
||||
{% set checked='checked' %}
|
||||
{% if s.12 == 'false' %}
|
||||
{% set checked='' %}
|
||||
{% endif %}
|
||||
{{checkbox('gcore_edit_delete_on_termination', checked=checked)}}
|
||||
<div class="tooltip tooltipTop tooltipTd">Whether the volume should be destroyed on instance termination</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>Network</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">Network Type</td>
|
||||
<td>
|
||||
<select id="gcore_edit_network_type">
|
||||
{% if s.2 == 'external' %}
|
||||
<option value="external" selected>External IP</option>
|
||||
{% else %}
|
||||
<option value="external">External IP</option>
|
||||
{% endif %}
|
||||
{% if s.2 == 'any_subnet' %}
|
||||
<option value="any_subnet" selected>Custom network</option>
|
||||
{% set style = 'display: table-row;' %}
|
||||
{% else %}
|
||||
<option value="any_subnet">Custom network</option>
|
||||
{% set style = 'display: none;' %}
|
||||
{% endif %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="gcore_edit_any_subnet" style="{{style}}">
|
||||
<td class="padding20">
|
||||
Network name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_edit_network_name', size='26', value=s.14)}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
{% set checked='checked' %}
|
||||
{% if s.8 == 'false' %}
|
||||
{% set checked='' %}
|
||||
{% endif %}
|
||||
<td class="padding20" style="padding-bottom: 25px;padding-top: 25px;">Firewall</td>
|
||||
<td>
|
||||
{{checkbox('gcore_edit_firewall', checked=checked)}}
|
||||
<div class="tooltip tooltipTop tooltipTd">HAProxy-WI will edit Security group and open 22, 443, 1999, 8085, 8086 ports. Otherwise all ports will be closed</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<p class="validateTips alert alert-warning">Be aware: some changes may cause server re-creation. And all your data will be lost</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
$( function() {
|
||||
$('select').selectmenu();
|
||||
$('#gcore_edit_network_type').on('selectmenuchange', function (){
|
||||
if ($('#gcore_edit_network_type option:selected').val() == 'any_subnet') {
|
||||
$('#gcore_edit_any_subnet').show();
|
||||
} else if ($('#gcore_edit_network_type option:selected').val() == 'external') {
|
||||
$('#gcore_edit_any_subnet').hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
function refreshOss() {
|
||||
var newOptions = {
|
||||
"centos-7-gcore": "Centos 7"
|
||||
};
|
||||
if ($('#gcore_edit_region').text() == '6' || $('#gcore_edit_region').text() == '14') {
|
||||
var newOptions = {
|
||||
"centos-7-gcore": "Centos 7"
|
||||
};
|
||||
} else if ($('#gcore_edit_region').text() == '10') {
|
||||
var newOptions = {
|
||||
"centos-7-gcore": "Centos 7",
|
||||
"sles15-SP2": "SLES 15-SP2"
|
||||
};
|
||||
} else if ($('#gcore_edit_region').text() == '18' || $('#gcore_edit_region').text() == '22') {
|
||||
var newOptions = {
|
||||
"centos-7-1811-x64-qcow2": "Centos 7",
|
||||
"centos8-1911-x64": "Centos 8",
|
||||
"sles15-SP2": "SLES 15-SP2",
|
||||
"fedora-32-x64-qcow2": "Fedora 32",
|
||||
"fedora-33-x64-qcow2": "Fedora 33",
|
||||
"fedora-coreos-32-x64": "Fedora CoreOS 32",
|
||||
"ubuntu-16.04-x64": "Ubuntu 16.04",
|
||||
"ubuntu-18.04-x64": "Ubuntu 18.04",
|
||||
"ubuntu-20.04-x64": "Ubuntu 20.04",
|
||||
"ubuntu-20.10-x64": "Ubuntu 20.10",
|
||||
"debian-9.7-x64-qcow2": "Debian 9.7",
|
||||
"debian-10.1-x64-qcow2": "Debian 10.1",
|
||||
"debian-10.3-x64-qcow2": "Debian 10.3"
|
||||
};
|
||||
}
|
||||
var $el = $("#gcore_edit_oss");
|
||||
$el.empty();
|
||||
$.each(newOptions, function(key,value) {
|
||||
$el.append($("<option></option>")
|
||||
.attr("value", key).text(value));
|
||||
});
|
||||
$el.selectmenu("refresh");
|
||||
}
|
||||
refreshOss();
|
||||
</script>
|
||||
{% endfor %}
|
|
@ -9,6 +9,9 @@
|
|||
{% elif p.2 == 'aws' %}
|
||||
AWS
|
||||
{% set onclickEditAction = 'editAwsProvider' %}
|
||||
{% elif p.2 == 'gcore' %}
|
||||
G-Core Labs
|
||||
{% set onclickEditAction = 'editGcoreProvider' %}
|
||||
{% endif %}
|
||||
</span>
|
||||
</td>
|
||||
|
|
|
@ -1,6 +1,38 @@
|
|||
{% from 'include/provisioning/variables.html' import gcore_regions, do_regions, aws_regions %}
|
||||
{% for s in servers %}
|
||||
{% set region_name = [] %}
|
||||
{% if s.3 == 'do' %}
|
||||
{% set provider_full_name = 'DigitalOcean' %}
|
||||
{% set onclickEditAction = 'editDoServer' %}
|
||||
{% for key, value in do_regions.items() %}
|
||||
{% if s.8|int() == key|int() %}
|
||||
{% do region_name.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% elif s.3 == 'aws' %}
|
||||
{% set provider_full_name = 'AWS' %}
|
||||
{% set onclickEditAction = 'editAwsServer' %}
|
||||
{% for key, value in aws_regions.items() %}
|
||||
{% if s.8|int() == key|int() %}
|
||||
{% do region_name.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% elif s.3 == 'gcore' %}
|
||||
{% set provider_full_name = 'G-Core Labs' %}
|
||||
{% set onclickEditAction = 'editGcoreServer' %}
|
||||
{% for key, value in gcore_regions.items() %}
|
||||
{% if s.8|int() == key|int() %}
|
||||
{% do region_name.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<tr id="server-{{s.0}}" class="{{ loop.cycle('odd', 'even') }} {% if adding %}newserver{% endif %}">
|
||||
<td class="padding10 first-collumn"><span id="server-name-{{s.0}}">{{s.1}}</span></td>
|
||||
<td class="padding10 first-collumn">
|
||||
<span id="server-name-{{s.0}}">{{s.1}}</span>
|
||||
{% if s.3 == 'gcore' %}
|
||||
({{s.12}})
|
||||
{% endif %}
|
||||
</td>
|
||||
<td style="width: 10%">
|
||||
{% for p in providers %}
|
||||
{% if p.0|int() == s.2|int() %}
|
||||
|
@ -29,17 +61,11 @@
|
|||
<span id="server-group-{{s.0}}" style="display: none;">{{user_group}}</span>
|
||||
{% endif %}
|
||||
<td style="width: 10%">
|
||||
{% if s.3 == 'do' %}
|
||||
DigitalOcean
|
||||
{% set onclickEditAction = 'editDoServer' %}
|
||||
{% elif s.3 == 'aws' %}
|
||||
AWS
|
||||
{% set onclickEditAction = 'editAwsServer' %}
|
||||
{% endif %}
|
||||
{{provider_full_name}}
|
||||
<span id="server-cloud-{{s.0}}" style="display: none;">{{s.3}}</span>
|
||||
</td>
|
||||
<td style="width: 5%">
|
||||
{{s.8}}
|
||||
<td style="width: 10%">
|
||||
{{region_name.0}}
|
||||
</td>
|
||||
<td style="width: 10%">
|
||||
<span id="sever-os-{{s.0}}">{{s.9}}</span>
|
||||
|
@ -51,8 +77,8 @@
|
|||
<span id="sever-size-{{s.0}}">{{s.5}}</span>
|
||||
</td>
|
||||
<td style="width: 5%">
|
||||
{% if s.6 == 'Created ' %}
|
||||
{% set style='сolor: green;' %}
|
||||
{% if s.6 == 'Created' %}
|
||||
{% set style='color: var(--green-color);' %}
|
||||
{% elif s.6 == 'Error ' %}
|
||||
{% set style='color: red;cursor: help;' %}
|
||||
{% endif %}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
{% from 'include/provisioning/variables.html' import gcore_regions, do_regions, aws_regions, aws_oss, do_oss, aws_volume_type, gcore_volume_type %}
|
||||
<div id="do_create" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview provisioning_table">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
|
@ -12,7 +13,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('do_create_server_name', required='required', size='30')}}
|
||||
{{input('do_create_server_name', required='required', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">The name must contain only URL safe characters, and no path separators</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -54,12 +55,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set regions = dict() %}
|
||||
{% set regions = {'nyc1':'New York 1','nyc2':'New York 2','nyc3':'New York 3',
|
||||
'ams1':'Amsterdam 1','ams2':'Amsterdam 2','ams3':'Amsterdam 3',
|
||||
'sfo1':'San Francisco 1','sfo2':'San Francisco 2','sfo3':'San Francisco 3',
|
||||
'sgp1':'Singapore 1','lon1':'London 1','fra1':'Frankfurt 1','tor1':'Toronto 1', 'blr1':'Bangalore 1'} %}
|
||||
{{ select('do_create_regions', values=regions) }}
|
||||
{{ select('do_create_regions', values=do_regions) }}
|
||||
<div class="tooltip tooltipTop tooltipTd">Not all regions may be active</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -73,7 +69,44 @@
|
|||
Size
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('do_create_size', required='required', size='30')}}</td>
|
||||
<td>
|
||||
<select id="do_create_size" required="required">
|
||||
<optgroup label="Basic">
|
||||
<option value="s-1vcpu-1gb">s-1vcpu-1gb</option>
|
||||
<option value="s-1vcpu-2gb">s-1vcpu-2gb</option>
|
||||
<option value="s-2vcpu-2gb">s-2vcpu-2gb</option>
|
||||
<option value="s-2vcpu-4gb">s-2vcpu-4gb</option>
|
||||
<option value="s-4vcpu-8gb">s-4vcpu-8gb</option>
|
||||
<option value="s-8vcpu-16gb">s-8vcpu-16gb</option>
|
||||
</optgroup>
|
||||
<optgroup label="General Purpose">
|
||||
<option value="g-2vcpu-8gb">g-2vcpu-8gb</option>
|
||||
<option value="g-4vcpu-16gb">g-4vcpu-16gb</option>
|
||||
<option value="g-8vcpu-32gb">g-8vcpu-32gb</option>
|
||||
<option value="g-16vcpu-64gb">g-16vcpu-64gb</option>
|
||||
<option value="g-32vcpu-128gb">g-32vcpu-128gb</option>
|
||||
<option value="g-40vcpu-160gb">g-40vcpu-160gb</option>
|
||||
</optgroup>
|
||||
<optgroup label="CPU-Optimized">
|
||||
<option value="c-2-4gib">c-2-4gib</option>
|
||||
<option value="c-4-8gib">c-4-8gib</option>
|
||||
<option value="c-8-16gib">c-8-16gib</option>
|
||||
<option value="c-16-32gib">c-16-32gib</option>
|
||||
<option value="c-32-64gib">c-32-64gib</option>
|
||||
</optgroup>
|
||||
<optgroup label="Memory-Optimized">
|
||||
<option value="m-2vcpu-16gb">m-2vcpu-16gb</option>
|
||||
<option value="m-4vcpu-32gb">m-4vcpu-32gb</option>
|
||||
<option value="m-8vcpu-64gb">m-8vcpu-64gb</option>
|
||||
<option value="m-16vcpu-128gb">m-16vcpu-128gb</option>
|
||||
<option value="m-24vcpu-192gb">m-24vcpu-192gb</option>
|
||||
<option value="m-32vcpu-256gb">m-32vcpu-256gb</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
{{input('do_create_size_text', size='26', style='display: none')}}
|
||||
<a class="link" id="do-instance-enter">Enter manually</a>
|
||||
<a class="link" id="do-instance-enter-select" style="display: none; margin-left: 27px;">Change to select</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
|
@ -81,10 +114,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set oss = dict() %}
|
||||
{% set oss = {'centos-7-x64':'Centos 7 x64', 'centos-8-x64':'Centos 8 x64','ubuntu-18-04-x64':'Ubuntu 18.04 x64','ubuntu-20-04-x64':'Ubuntu 20.04 x64',
|
||||
'ubuntu-20-10-x64':'Ubuntu 20.10 x64','debian-10-x64':'Debian 10 x86','debian-9-x64':'Debian 9 x86'} %}
|
||||
{{ select('do_create_oss', values=oss) }}
|
||||
{{ select('do_create_oss', values=do_oss) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -106,7 +136,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('do_create_ssh_ids', size='30')}}
|
||||
{{input('do_create_ssh_ids', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">List comma separated. Required if SSH key name is empty</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -116,7 +146,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('do_create_ssh_name', size='30')}}
|
||||
{{input('do_create_ssh_name', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">Required if SSH key ids is empty</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -164,7 +194,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_create_server_name', required='required', size='30')}}
|
||||
{{input('aws_create_server_name', required='required', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">The name must contain only URL safe characters, and no path separators</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -206,15 +236,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set regions = dict() %}
|
||||
{% set regions = {'us-east-1':'US East (N. Virginia)','us-east-2':'US East (Ohio)','us-west-1':'US West (N. California)',
|
||||
'us-west-2':'US West (Oregon)','af-south-1':'Africa (Cape Town)','ap-east-1':'Asia Pacific (Hong Kong)',
|
||||
'ap-south-1':'Asia Pacific (Mumbai)','ap-northeast-2':'Asia Pacific (Seoul)','ap-southeast-1':'Asia Pacific (Singapore)',
|
||||
'ap-southeast-2':'Asia Pacific (Sydney)','ap-northeast-1':'Asia Pacific (Tokyo)','ca-central-1':'Canada (Central)',
|
||||
'eu-central-1':'Europe (Frankfurt)', 'eu-west-1':'Europe (Ireland)', 'eu-west-2':'Europe (London)',
|
||||
'eu-south-1':'Europe (Milan)', 'eu-west-3':'Europe (Paris)', 'eu-north-1':'Europe (Stockholm)',
|
||||
'me-south-1':'Middle East (Bahrain)', 'sa-east-1':'South America (São Paulo)'} %}
|
||||
{{ select('aws_create_regions', values=regions) }}
|
||||
{{ select('aws_create_regions', values=aws_regions) }}
|
||||
<div class="tooltip tooltipTop tooltipTd">Not all regions may be active</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -229,7 +251,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_create_size', required='required', size='30')}}
|
||||
{{input('aws_create_size', required='required', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">
|
||||
Instance types list is <a href="https://aws.amazon.com/ec2/instance-types/" title="Instance types list" target="_blank">here</a>
|
||||
</div>
|
||||
|
@ -241,11 +263,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set oss = dict() %}
|
||||
{% set oss = {'centos-7':'Centos 7 x64','ubuntu-18.04':'Ubuntu 18.04 x64','ubuntu-18.10':'Ubuntu 18.10 x64',
|
||||
'debian-10':'Debian 10 x86','debian-9':'Debian 9 x86','rhel-7':'RHEL 7 x86','rhel-8':'RHEL 8 x86',
|
||||
'amazon-2_lts':'Amazon Linux 2 x86'} %}
|
||||
{{ select('aws_create_oss', values=oss) }}
|
||||
{{ select('aws_create_oss', values=aws_oss) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -254,7 +272,7 @@
|
|||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_create_ssh_name', size='30')}}
|
||||
{{input('aws_create_ssh_name', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">SSH key must exists in region where instance create</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -264,13 +282,21 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">
|
||||
<td class="padding20">
|
||||
Volume size
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('aws_create_volume_size', size='30', value='10', type='number')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">Size in GB</div>
|
||||
{{input('aws_create_volume_size', size='26', value='10', type='number')}}Gb
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Volume type
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ select('aws_create_volume_type', values=aws_volume_type) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -304,6 +330,200 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="gcore_create" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview provisioning_table">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>General information</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">
|
||||
Server name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_create_server_name', required='required', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">The name must contain only URL safe characters, and no path separators</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% if role == 1 %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Group
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="gcore_create_group">
|
||||
{% for group in groups %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
{{input('gcore_create_group', value=groups, type='hidden')}}
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Provider credentials
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="gcore_create_provider">
|
||||
{% for p in providers %}
|
||||
{% if p.2 == 'gcore' %}
|
||||
<option value="{{ p.0 }}">{{ p.1 }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Region
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ select('gcore_create_regions', values=gcore_regions) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Project name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_create_project_name', size='26', value='default')}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>Instance</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Flavor
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="gcore_create_size" required="required">
|
||||
<optgroup label="Standard">
|
||||
<option value="g1-standard-1-2">g1-standard-1-2</option>
|
||||
<option value="g1-standard-2-4">g1-standard-2-4</option>
|
||||
<option value="g1-standard-2-8">g1-standard-2-8</option>
|
||||
<option value="g1-standard-4-8">g1-standard-4-8</option>
|
||||
<option value="g1-standard-4-16">g1-standard-4-16</option>
|
||||
<option value="g1-standard-8-16">g1-standard-8-16</option>
|
||||
<option value="g1-standard-8-32">g1-standard-8-32</option>
|
||||
<option value="g1-standard-16-32">g1-standard-16-32</option>
|
||||
<option value="g1-standard-16-64">g1-standard-16-64</option>
|
||||
<option value="g1-standard-32-64">g1-standard-32-64</option>
|
||||
<option value="g1-standard-32-128">g1-standard-32-128</option>
|
||||
</optgroup>
|
||||
<optgroup label="vCPU">
|
||||
<option value="g1-cpu-2-2">g1-cpu-2-2</option>
|
||||
<option value="g1-cpu-4-4">g1-cpu-4-4</option>
|
||||
<option value="g1-cpu-8-8">g1-cpu-8-8</option>
|
||||
<option value="g1-cpu-16-16">g1-cpu-16-16</option>
|
||||
<option value="g1-cpu-32-32">g1-cpu-32-32</option>
|
||||
</optgroup>
|
||||
<optgroup label="Memory">
|
||||
<option value="g1-memory-2-16">g1-memory-2-16</option>
|
||||
<option value="g1-memory-4-32">g1-memory-4-32</option>
|
||||
<option value="g1-memory-8-64">g1-memory-8-64</option>
|
||||
<option value="g1-memory-16-128">g1-memory-16-128</option>
|
||||
<option value="g1-memory-32-256">g1-memory-32-256</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
{{input('gcore_create_size_text', size='26', style='display: none')}}
|
||||
<a class="link" id="gcore-instance-enter">Enter manually</a>
|
||||
<a class="link" id="gcore-instance-enter-select" style="display: none; margin-left: 27px;">Change to select</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
OS
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{% set oss = dict() %}
|
||||
{% set oss = {'centos-7-gcore':'Centos 7'} %}
|
||||
{{ select('gcore_create_oss', values=oss) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">
|
||||
SSH key pair name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_create_ssh_name', size='26')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">SSH key must exists in region where instance create</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>Volume</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Volume size
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{input('gcore_create_volume_size', size='26', value='10', type='number')}}Gb
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Volume type
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ select('gcore_create_volume_type', values=gcore_volume_type) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 padding-top20">Delete on termination</td>
|
||||
<td>
|
||||
{{checkbox('gcore_create_delete_on_termination', checked='checked')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">Whether the volume should be destroyed on instance termination</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="headers">
|
||||
<b>Network</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">Network Type</td>
|
||||
<td>
|
||||
<select id="gcore_create_network_type">
|
||||
<option value="external">External IP</option>
|
||||
<option value="any_subnet">Custom Network</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="gcore_any_subnet" style="display: none">
|
||||
<td class="padding20">
|
||||
Network name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_create_network_name', size='26')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20" style="padding-bottom: 25px;padding-top: 25px;">Firewall</td>
|
||||
<td>
|
||||
{{checkbox('gcore_create_firewall', checked='checked')}}
|
||||
<div class="tooltip tooltipTop tooltipTd">HAProxy-WI will create Security group and open 22, 443, 1999, 8085, 8086 ports. Otherwise will be used the default SG</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="server_creating" style="display: none;">
|
||||
<ul style="padding: 20px 20px 0px 20px;font-size: 15px;">
|
||||
<li id="creating-init" class="server-creating">Creating environment...</li>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% set providers_for_choose = dict() %}
|
||||
{% set providers_for_choose = {'aws':'AWS','do':'DigitalOcean'} %}
|
||||
{% set providers_for_choose = {'aws':'AWS','do':'DigitalOcean', 'gcore':'G-Core Labs'} %}
|
||||
<div id="add_providers_choosing" style="display: none;">
|
||||
{{ select('add_select_providers', values=providers_for_choose) }}
|
||||
</div>
|
||||
|
@ -91,6 +91,49 @@
|
|||
How to get the DigitalOcean token read <a href="https://www.digitalocean.com/docs/apis-clis/api/create-personal-access-token" target="_blank"><b>here</b></a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="gcore_provider" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Provider name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_new_name', required='required', size='30')}}</td>
|
||||
</tr>
|
||||
{% if role == 1 %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Group
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
<select id="gcore_new_group">
|
||||
{% for group in groups %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
{{input('gcore_new_group', value=groups, type='hidden')}}
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
User name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_new_user', required='required', size='30')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Password
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_new_pass', required='required', type='password', size='30')}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="aws_edit_provider" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
|
@ -139,4 +182,32 @@
|
|||
<td>{{input('do_edit_provider_token', required='required', size='30')}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="gcore_edit_provider" style="display: none; padding: 0 2px 0 0; margin-left: 1px; margin-right: -4px;">
|
||||
<table class="overview">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Provider name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_edit_provider_name', required='required', size='30')}}</td>
|
||||
</tr>
|
||||
{{input('gcore_edit_provider_group', value=groups, type='hidden')}}
|
||||
{{input('gcore_edit_provider_id', type='hidden')}}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
User name
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_edit_provider_user', required='required', size='30')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
Password
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>{{input('gcore_edit_provider_password', required='required', type='password', size='30')}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -0,0 +1,21 @@
|
|||
{% set gcore_regions = {'6':'Luxembourg','10':'Moscow','14':'Manassas', '18':'Singapore','22':'Khabarovsk'} %}
|
||||
{% set aws_regions = {'us-east-1':'US East (N. Virginia)','us-east-2':'US East (Ohio)','us-west-1':'US West (N. California)',
|
||||
'us-west-2':'US West (Oregon)','af-south-1':'Africa (Cape Town)','ap-east-1':'Asia Pacific (Hong Kong)',
|
||||
'ap-south-1':'Asia Pacific (Mumbai)','ap-northeast-2':'Asia Pacific (Seoul)','ap-southeast-1':'Asia Pacific (Singapore)',
|
||||
'ap-southeast-2':'Asia Pacific (Sydney)','ap-northeast-1':'Asia Pacific (Tokyo)','ca-central-1':'Canada (Central)',
|
||||
'eu-central-1':'Europe (Frankfurt)', 'eu-west-1':'Europe (Ireland)', 'eu-west-2':'Europe (London)',
|
||||
'eu-south-1':'Europe (Milan)', 'eu-west-3':'Europe (Paris)', 'eu-north-1':'Europe (Stockholm)',
|
||||
'me-south-1':'Middle East (Bahrain)', 'sa-east-1':'South America (São Paulo)'} %}
|
||||
{% set do_regions = {'nyc1':'New York 1','nyc2':'New York 2','nyc3':'New York 3', 'ams1':'Amsterdam 1','ams2':'Amsterdam 2',
|
||||
'ams3':'Amsterdam 3', 'sfo1':'San Francisco 1','sfo2':'San Francisco 2','sfo3':'San Francisco 3',
|
||||
'sgp1':'Singapore 1','lon1':'London 1','fra1':'Frankfurt 1','tor1':'Toronto 1', 'blr1':'Bangalore 1'} %}
|
||||
|
||||
{% set aws_oss = {'centos-7':'Centos 7 x64','ubuntu-18.04':'Ubuntu 18.04 x64','ubuntu-18.10':'Ubuntu 18.10 x64',
|
||||
'debian-10':'Debian 10 x86','debian-9':'Debian 9 x86','rhel-7':'RHEL 7 x86','rhel-8':'RHEL 8 x86',
|
||||
'amazon-2_lts':'Amazon Linux 2 x86'} %}
|
||||
{% set do_oss = {'centos-7-x64':'Centos 7 x64', 'centos-8-x64':'Centos 8 x64','ubuntu-18-04-x64':'Ubuntu 18.04 x64',
|
||||
'ubuntu-20-04-x64':'Ubuntu 20.04 x64', 'ubuntu-20-10-x64':'Ubuntu 20.10 x64','debian-10-x64':'Debian 10 x86',
|
||||
'debian-9-x64':'Debian 9 x86'} %}
|
||||
|
||||
{% set aws_volume_type = {'gp2':'gp2', 'gp3':'gp3', 'standard':'standard', 'io1':'io1', 'io2':'io2', 'sc1':'sc1', 'st1':'st1'} %}
|
||||
{% set gcore_volume_type = {'standard':'standard', 'ssd_hiiops':'ssd_hiiops', 'cold':'cold', 'ultra':'ultra'} %}
|
|
@ -1,7 +1,7 @@
|
|||
.padding20{ width: 160px;}
|
||||
.server-creating {padding-bottom: 10px;}
|
||||
.proccessing_done {color: green;}
|
||||
.proccessing, .processing_error {font-weight: bold; color: green;}
|
||||
.proccessing_done {color: var(--green-color);}
|
||||
.proccessing, .processing_error {font-weight: bold; color: var(--green-color);}
|
||||
.proccessing::before {
|
||||
display: none;
|
||||
font-family: "Font Awesome 5 Solid";
|
||||
|
|
|
@ -14,6 +14,84 @@ $( function() {
|
|||
$('#do_create_ssh_ids_tr').show();
|
||||
}
|
||||
});
|
||||
$('#gcore_create_network_type').on('selectmenuchange', function (){
|
||||
if ($('#gcore_create_network_type option:selected').val() == 'any_subnet') {
|
||||
$('#gcore_any_subnet').show();
|
||||
} else if ($('#gcore_create_network_type option:selected').val() == 'external') {
|
||||
$('#gcore_any_subnet').hide();
|
||||
}
|
||||
});
|
||||
$('#gcore_create_regions').on('selectmenuchange', function (){
|
||||
if ($('#gcore_create_regions option:selected').val() == '6' || $('#gcore_create_regions option:selected').val() == '14') {
|
||||
var newOptions = {
|
||||
"centos-7-gcore": "Centos 7"
|
||||
};
|
||||
} else if ($('#gcore_create_regions option:selected').val() == '10') {
|
||||
var newOptions = {
|
||||
"centos-7-gcore": "Centos 7",
|
||||
"sles15-SP2": "SLES 15-SP2"
|
||||
};
|
||||
} else if ($('#gcore_create_regions option:selected').val() == '18' || $('#gcore_create_regions option:selected').val() == '22') {
|
||||
var newOptions = {
|
||||
"centos-7-1811-x64-qcow2": "Centos 7",
|
||||
"centos8-1911-x64": "Centos 8",
|
||||
"sles15-SP2": "SLES 15-SP2",
|
||||
"fedora-32-x64-qcow2": "Fedora 32",
|
||||
"fedora-33-x64-qcow2": "Fedora 33",
|
||||
"fedora-coreos-32-x64": "Fedora CoreOS 32",
|
||||
"ubuntu-16.04-x64": "Ubuntu 16.04",
|
||||
"ubuntu-18.04-x64": "Ubuntu 18.04",
|
||||
"ubuntu-20.04-x64": "Ubuntu 20.04",
|
||||
"ubuntu-20.10-x64": "Ubuntu 20.10",
|
||||
"debian-9.7-x64-qcow2": "Debian 9.7",
|
||||
"debian-10.1-x64-qcow2": "Debian 10.1",
|
||||
"debian-10.3-x64-qcow2": "Debian 10.3"
|
||||
};
|
||||
}
|
||||
var $el = $("#gcore_create_oss");
|
||||
$el.empty();
|
||||
$.each(newOptions, function(key,value) {
|
||||
$el.append($("<option></option>")
|
||||
.attr("value", key).text(value));
|
||||
});
|
||||
$el.selectmenu("refresh");
|
||||
});
|
||||
$('#gcore-instance-enter').on('click', function() {
|
||||
$('#gcore_create_size').css('display', 'none');
|
||||
$('#gcore-instance-enter').css('display', 'none');
|
||||
$('#gcore_create_size').attr('id', 'gcore_create_size_select');
|
||||
$("#gcore_create_size_select" ).selectmenu( "destroy" );
|
||||
$("#gcore_create_size_select" ).css('display', 'none');
|
||||
$('#gcore_create_size_text').attr('id', 'gcore_create_size');
|
||||
$('#gcore_create_size').css('display', 'inline');
|
||||
$('#gcore-instance-enter-select').css('display', 'inline');
|
||||
});
|
||||
$('#gcore-instance-enter-select').on('click', function() {
|
||||
$('#gcore_create_size').css('display', 'none');
|
||||
$('#gcore_create_size').attr('id', 'gcore_create_size_text');
|
||||
$('#gcore_create_size_select').attr('id', 'gcore_create_size');
|
||||
$("#gcore_create_size" ).selectmenu();
|
||||
$("#gcore-instance-enter-select" ).css('display', 'none');
|
||||
$('#gcore-instance-enter').css('display', 'inline');
|
||||
});
|
||||
$('#do-instance-enter').on('click', function() {
|
||||
$('#do_create_size').css('display', 'none');
|
||||
$('#do-instance-enter').css('display', 'none');
|
||||
$('#do_create_size').attr('id', 'do_create_size_select');
|
||||
$("#do_create_size_select" ).selectmenu( "destroy" );
|
||||
$("#do_create_size_select" ).css('display', 'none');
|
||||
$('#do_create_size_text').attr('id', 'do_create_size');
|
||||
$('#do_create_size').css('display', 'inline');
|
||||
$('#do-instance-enter-select').css('display', 'inline');
|
||||
});
|
||||
$('#do-instance-enter-select').on('click', function() {
|
||||
$('#do_create_size').css('display', 'none');
|
||||
$('#do_create_size').attr('id', 'do_create_size_text');
|
||||
$('#do_create_size_select').attr('id', 'do_create_size');
|
||||
$("#do_create_size" ).selectmenu();
|
||||
$("#do-instance-enter-select" ).css('display', 'none');
|
||||
$('#do-instance-enter').css('display', 'inline');
|
||||
});
|
||||
});
|
||||
var addProvidersChoosing = $( "#add_providers_choosing" ).dialog({
|
||||
autoOpen: false,
|
||||
|
@ -83,6 +161,23 @@ var doProvider = $( "#do_provider" ).dialog({
|
|||
}
|
||||
}
|
||||
});
|
||||
var gcoreProvider = $( "#gcore_provider" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 574,
|
||||
modal: true,
|
||||
title: "Add G-Core Labs as provider",
|
||||
buttons: {
|
||||
"Add": function() {
|
||||
addGcoreProvider($( this ));
|
||||
clearTips();
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
addProvidersChoosing.dialog('open');
|
||||
clearTips();
|
||||
}
|
||||
}
|
||||
});
|
||||
var doCreate = $( "#do_create" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 574,
|
||||
|
@ -100,6 +195,23 @@ var doCreate = $( "#do_create" ).dialog({
|
|||
}
|
||||
}
|
||||
});
|
||||
var gcoreCreate = $( "#gcore_create" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 574,
|
||||
modal: true,
|
||||
title: "Create a new Instance in G-Core Labs",
|
||||
buttons: {
|
||||
"Create": function() {
|
||||
gcoreCreateServer($(this));
|
||||
clearTips();
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
createProvidersChoosing.dialog('open');
|
||||
clearTips();
|
||||
}
|
||||
}
|
||||
});
|
||||
var awsCreate = $( "#aws_create" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 574,
|
||||
|
@ -156,6 +268,8 @@ function addProvider(provider) {
|
|||
awsProvider.dialog('open');
|
||||
} else if (provider == 'do') {
|
||||
doProvider.dialog('open');
|
||||
} else if (provider == 'gcore') {
|
||||
gcoreProvider.dialog('open');
|
||||
} else {
|
||||
toastr.error('Choose provider before adding');
|
||||
}
|
||||
|
@ -165,6 +279,8 @@ function CreateServer(provider) {
|
|||
awsCreate.dialog('open');
|
||||
} else if (provider == 'do') {
|
||||
doCreate.dialog('open');
|
||||
} else if (provider == 'gcore') {
|
||||
gcoreCreate.dialog('open');
|
||||
} else {
|
||||
toastr.error('Choose provider before creating server');
|
||||
}
|
||||
|
@ -183,6 +299,23 @@ function doCreateServer(dialog_id) {
|
|||
startCreatingServer('do');
|
||||
}
|
||||
}
|
||||
function gcoreCreateServer(dialog_id) {
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
allFields = $( [] ).add( $('#gcore_create_server_name') ).add( $('#gcore_create_size') ).add( $('#gcore_create_volume_size') )
|
||||
.add( $('#gcore_create_project_name') ).add( $('#gcore_create_ssh_name') );
|
||||
allFields.removeClass( "ui-state-error" );
|
||||
valid = valid && checkLength( $('#gcore_create_server_name'), "Server name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_create_size'), "Flavor", 1 );
|
||||
valid = valid && checkLength( $('#gcore_create_project_name'), "Project", 1 );
|
||||
valid = valid && checkLength( $('#gcore_create_ssh_name'), "SSH key pair name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_create_volume_size'), "Volume size ", 1 );
|
||||
if (valid) {
|
||||
clearTips();
|
||||
dialog_id.dialog('close');
|
||||
startCreatingServer('gcore');
|
||||
}
|
||||
}
|
||||
function awsCreateServer(dialog_id) {
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
|
@ -195,7 +328,7 @@ function awsCreateServer(dialog_id) {
|
|||
valid = valid && checkLength( $('#aws_create_volume_size'), "Volume size", 1 );
|
||||
if(valid) {
|
||||
clearTips();
|
||||
dialog_id.dialog('destroy');
|
||||
dialog_id.dialog('close');
|
||||
startCreatingServer('aws');
|
||||
}
|
||||
}
|
||||
|
@ -222,6 +355,8 @@ function startCreatingServer(provider) {
|
|||
awsInitServer();
|
||||
} else if (provider == 'do') {
|
||||
doInitServer();
|
||||
} else if (provider == 'gcore') {
|
||||
gcoreInitServer();
|
||||
}
|
||||
$.getScript("/inc/fontawesome.min.js");
|
||||
}
|
||||
|
@ -232,6 +367,8 @@ function startEditingServer(provider, server_id) {
|
|||
awsEditInitServer(server_id);
|
||||
} else if (provider == 'do') {
|
||||
doEditInitServer(server_id);
|
||||
} else if (provider == 'gcore') {
|
||||
gcoreEditInitServer(server_id);
|
||||
}
|
||||
$.getScript("/inc/fontawesome.min.js");
|
||||
}
|
||||
|
@ -282,6 +419,7 @@ function awsVarsServer() {
|
|||
aws_create_oss: $('#aws_create_oss').val(),
|
||||
aws_create_ssh_name: $('#aws_create_ssh_name').val(),
|
||||
aws_create_volume_size: $('#aws_create_volume_size').val(),
|
||||
aws_create_volume_type: $('#aws_create_volume_type').val(),
|
||||
delete_on_termination: aws_create_delete_on_termination,
|
||||
aws_create_floating_net: aws_create_floating_net,
|
||||
aws_create_firewall: aws_create_firewall,
|
||||
|
@ -347,6 +485,7 @@ function awsWorkspaceServer() {
|
|||
aws_create_oss: $('#aws_create_oss option:selected').val(),
|
||||
aws_create_ssh_name: $('#aws_create_ssh_name').val(),
|
||||
aws_create_volume_size: $('#aws_create_volume_size').val(),
|
||||
aws_create_volume_type: $('#aws_create_volume_type').val(),
|
||||
aws_create_delete_on_termination: aws_create_delete_on_termination,
|
||||
aws_create_floating_net: aws_create_floating_net,
|
||||
aws_create_firewall: aws_create_firewall,
|
||||
|
@ -357,11 +496,7 @@ function awsWorkspaceServer() {
|
|||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1' && data.indexOf('Last error:') == '-1') {
|
||||
var server_id = $('#ajax-provisioning-body tr td span:regex(id, sever-ip-)').last().attr('id').split('-')[2]
|
||||
showProvisioningError(data, '#creating-workspace', '#creating-validate', '#wait-mess', '#creating-error', '#creating-progress', 'aws');
|
||||
$('#sever-status-'+server_id).text('Error');
|
||||
$('#sever-status-'+server_id).attr('title', data);
|
||||
$('#sever-status-'+server_id).css('color', 'red');
|
||||
} else {
|
||||
showProvisioningProccess('#creating-validate', '#creating-workspace', '#creating-server', '80', '#creating-progress');
|
||||
common_ajax_action_after_success('1', 'newserver', 'ajax-provisioning-body', data);
|
||||
|
@ -423,7 +558,7 @@ function awsEditInitServer(server_id) {
|
|||
}
|
||||
} );
|
||||
}
|
||||
function awsEditingVarsServer(server_id, dialog_id) {
|
||||
function awsEditingVarsServer(server_id) {
|
||||
var aws_edit_floating_net = 'false';
|
||||
var aws_editing_firewall = 'false';
|
||||
var aws_edit_public_ip = 'false';
|
||||
|
@ -450,6 +585,7 @@ function awsEditingVarsServer(server_id, dialog_id) {
|
|||
aws_editing_oss: $('#aws_edit_oss option:selected').val(),
|
||||
aws_editing_ssh_name: $('#aws_edit_ssh_name').val(),
|
||||
aws_editing_volume_size: $('#aws_edit_volume_size').val(),
|
||||
aws_editing_volume_type: $('#aws_edit_volume_type').val(),
|
||||
aws_editing_delete_on_termination: aws_edit_delete_on_termination,
|
||||
aws_editing_floating_net: aws_edit_floating_net,
|
||||
aws_editing_firewall: aws_editing_firewall,
|
||||
|
@ -519,6 +655,7 @@ function awsEditWorkspaceServer(server_id) {
|
|||
aws_editing_oss: $('#aws_edit_oss option:selected').val(),
|
||||
aws_editing_ssh_name: $('#aws_edit_ssh_name').val(),
|
||||
aws_editing_volume_size: $('#aws_edit_volume_size').val(),
|
||||
aws_editing_volume_type: $('#aws_edit_volume_type').val(),
|
||||
aws_editing_delete_on_termination: aws_edit_delete_on_termination,
|
||||
aws_editing_floating_net: aws_edit_floating_net,
|
||||
aws_editing_firewall: aws_editing_firewall,
|
||||
|
@ -659,6 +796,48 @@ function editAwsServer(id) {
|
|||
}
|
||||
} );
|
||||
}
|
||||
function editGcoreServer(id) {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
editGcoreServer: id,
|
||||
editGcoreGroup: $('#server-group-'+id).text(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if (data.indexOf('error: ') != '-1') {
|
||||
toastr.error(data);
|
||||
} else if (data.indexOf('warning: ') != '-1') {
|
||||
toastr.clear();
|
||||
toastr.warning(data);
|
||||
} else {
|
||||
$('#ajax').html(data);
|
||||
var gcoreEdit = $( "#gcore_edit" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 576,
|
||||
modal: true,
|
||||
title: "Editing G-Core Labs server: " + $('#server-name-'+id).text(),
|
||||
close: function( event, ui ) {$( this ).dialog( "destroy" );},
|
||||
buttons: {
|
||||
"Edit": function() {
|
||||
gcoreEditServer($(this), id);
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "destroy" );
|
||||
clearTips();
|
||||
}
|
||||
}
|
||||
});
|
||||
$( "select" ).selectmenu();
|
||||
$( "input[type=checkbox]" ).checkboxradio();
|
||||
$.getScript("/inc/fontawesome.min.js");
|
||||
gcoreEdit.dialog('open');
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function editDoServer(id) {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
|
@ -727,6 +906,19 @@ function add_do_button_after_server_created() {
|
|||
} });
|
||||
creatingServer.dialog("option", "buttons", buttons);
|
||||
}
|
||||
function add_gcore_button_after_server_created() {
|
||||
var buttons = creatingServer.dialog("option", "buttons");
|
||||
$.extend(buttons, { Back: function() {
|
||||
$( this ).dialog( "close" );
|
||||
gcoreCreate.dialog( "open" );
|
||||
cleanProvisioningProccess('#server_creating ul li', '#created-mess');
|
||||
$('#wait-mess').show();
|
||||
$('#edited-mess').html('');
|
||||
$('#edited-mess').hide();
|
||||
hideProvisioningError('#creating-error');
|
||||
} });
|
||||
creatingServer.dialog("option", "buttons", buttons);
|
||||
}
|
||||
function add_button_after_server_edited(server_id) {
|
||||
var buttons = editingServer.dialog("option", "buttons");
|
||||
$.extend(buttons, { Back: function() {
|
||||
|
@ -740,6 +932,19 @@ function add_button_after_server_edited(server_id) {
|
|||
} });
|
||||
editingServer.dialog("option", "buttons", buttons);
|
||||
}
|
||||
function add_gcore_button_after_server_edited(server_id) {
|
||||
var buttons = editingServer.dialog("option", "buttons");
|
||||
$.extend(buttons, { Back: function() {
|
||||
$( this ).dialog( "close" );
|
||||
editGcoreServer(server_id)
|
||||
cleanProvisioningProccess('#server_editing ul li', '#edited-mess');
|
||||
$('#wait-mess').show();
|
||||
$('#edited-mess').html('');
|
||||
$('#edited-mess').hide();
|
||||
hideProvisioningError('#editing-error');
|
||||
} });
|
||||
editingServer.dialog("option", "buttons", buttons);
|
||||
}
|
||||
function add_do_button_after_server_edited(server_id) {
|
||||
var buttons = editingServer.dialog("option", "buttons");
|
||||
$.extend(buttons, { Back: function() {
|
||||
|
@ -753,6 +958,19 @@ function add_do_button_after_server_edited(server_id) {
|
|||
} });
|
||||
editingServer.dialog("option", "buttons", buttons);
|
||||
}
|
||||
function add_gcore_button_after_server_edited(server_id) {
|
||||
var buttons = editingServer.dialog("option", "buttons");
|
||||
$.extend(buttons, { Back: function() {
|
||||
$( this ).dialog( "close" );
|
||||
editGcoreServer(server_id);
|
||||
cleanProvisioningProccess('#server_editing ul li', '#edited-mess');
|
||||
$('#wait-mess').show();
|
||||
$('#edited-mess').html('');
|
||||
$('#edited-mess').hide();
|
||||
hideProvisioningError('#editing-error');
|
||||
} });
|
||||
editingServer.dialog("option", "buttons", buttons);
|
||||
}
|
||||
function remove_button_after_server_created() {
|
||||
creatingServer.dialog("option",{buttons:{ Close: function() {
|
||||
$( this ).dialog( "close" );
|
||||
|
@ -778,6 +996,8 @@ function showProvisioningError(data, step_id, prev_step_id, wait_mess, error_id,
|
|||
add_button_after_server_created();
|
||||
} else if (cloud == 'do') {
|
||||
add_do_button_after_server_created();
|
||||
} else if (cloud == 'gcore') {
|
||||
add_gcore_button_after_server_created();
|
||||
}
|
||||
$.getScript("/inc/fontawesome.min.js");
|
||||
}
|
||||
|
@ -837,6 +1057,39 @@ function addDoProvider(dialog_id) {
|
|||
} );
|
||||
}
|
||||
}
|
||||
function addGcoreProvider(dialog_id) {
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
allFields = $( [] ).add( $('#gcore_new_name') ).add( $('#gcore_new_name')).add( $('#gcore_new_pass') );
|
||||
allFields.removeClass( "ui-state-error" );
|
||||
valid = valid && checkLength( $('#gcore_new_name'), "Provider name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_new_name'), "User name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_new_pass'), "Password", 1 );
|
||||
if (valid) {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcore_new_name: $('#gcore_new_name').val(),
|
||||
gcore_new_group: $('#do_new_group').val(),
|
||||
gcore_new_user: $('#gcore_new_user').val(),
|
||||
gcore_new_pass: $('#gcore_new_pass').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
} else {
|
||||
var getId = new RegExp('[0-9]+');
|
||||
var id = data.match(getId);
|
||||
$('select:regex(id, gcore_create_provider)').append('<option value=' + id + '>' +$('#gcore_new_name').val()+'</option>').selectmenu("refresh");
|
||||
common_ajax_action_after_success(dialog_id, 'newprovider', 'ajax-providers', data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
function addAwsProvider(dialog_id) {
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
|
@ -913,7 +1166,6 @@ var doEditProvider = $( "#do_edit_provider" ).dialog({
|
|||
buttons: {
|
||||
"Edit": function() {
|
||||
doEditProviderSave();
|
||||
$( this ).dialog( "close" );
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
|
@ -928,32 +1180,103 @@ function editDoProvider(id) {
|
|||
doEditProvider.dialog('open');
|
||||
}
|
||||
function doEditProviderSave() {
|
||||
id = $('#do_edit_provider_id').val();
|
||||
token = $('#do_edit_provider_token').val();
|
||||
new_name = $('#do_edit_provider_name').val();
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
edit_do_provider: id,
|
||||
edit_do_provider_name: new_name,
|
||||
edit_do_provider_token: token,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if(data == "ok ") {
|
||||
$("#provider-name-"+id).text(new_name);
|
||||
$("#provider-"+id).addClass( "update", 1000 );
|
||||
setTimeout(function() {
|
||||
$( "#provider-"+id ).removeClass( "update" );
|
||||
}, 2500 );
|
||||
$('#provider-edited-date-'+id).text(returnFormatedDate())
|
||||
} else if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
allFields = $( [] ).add( $('#do_edit_provider_name')).add( $('#do_edit_provider_token') );
|
||||
allFields.removeClass( "ui-state-error" );
|
||||
valid = valid && checkLength( $('#do_edit_provider_name'), "Provider name", 1 );
|
||||
valid = valid && checkLength( $('#do_edit_provider_token'), "Token", 1 );
|
||||
if(valid) {
|
||||
doEditProvider.dialog( "close" );
|
||||
id = $('#do_edit_provider_id').val();
|
||||
token = $('#do_edit_provider_token').val();
|
||||
new_name = $('#do_edit_provider_name').val();
|
||||
$.ajax({
|
||||
url: "options.py",
|
||||
data: {
|
||||
edit_do_provider: id,
|
||||
edit_do_provider_name: new_name,
|
||||
edit_do_provider_token: token,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function (data) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data == "ok ") {
|
||||
$("#provider-name-" + id).text(new_name);
|
||||
$("#provider-" + id).addClass("update", 1000);
|
||||
setTimeout(function () {
|
||||
$("#provider-" + id).removeClass("update");
|
||||
}, 2500);
|
||||
$('#provider-edited-date-' + id).text(returnFormatedDate())
|
||||
} else if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
var gcoreEditProvider = $( "#gcore_edit_provider" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 574,
|
||||
modal: true,
|
||||
title: "Editing G-Core Labs provider",
|
||||
buttons: {
|
||||
"Edit": function() {
|
||||
gcoreEditProviderSave();
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
clearTips();
|
||||
}
|
||||
}
|
||||
});
|
||||
function editGcoreProvider(id) {
|
||||
$('#gcore_edit_provider_id').val(id);
|
||||
name = $('#provider-name-'+id).text();
|
||||
$('#gcore_edit_provider_name').val(name);
|
||||
gcoreEditProvider.dialog('open');
|
||||
}
|
||||
function gcoreEditProviderSave() {
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
allFields = $( [] ).add( $('#gcore_edit_provider_name')).add( $('#gcore_edit_provider_user') ).add( $('#gcore_edit_provider_password'));
|
||||
allFields.removeClass( "ui-state-error" );
|
||||
valid = valid && checkLength( $('#gcore_edit_provider_name'), "User name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_edit_provider_user'), "Provider name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_edit_provider_password'), "Password", 1 );
|
||||
if(valid) {
|
||||
gcoreEditProvider.dialog('close');
|
||||
clearTips();
|
||||
id = $('#gcore_edit_provider_id').val();
|
||||
username = $('#gcore_edit_provider_user').val();
|
||||
pass = $('#gcore_edit_provider_password').val();
|
||||
new_name = $('#gcore_edit_provider_name').val();
|
||||
$.ajax({
|
||||
url: "options.py",
|
||||
data: {
|
||||
edit_gcore_provider: id,
|
||||
edit_gcore_provider_name: new_name,
|
||||
edit_gcore_provider_user: username,
|
||||
edit_gcore_provider_pass: pass,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function (data) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data == "ok ") {
|
||||
$("#provider-name-" + id).text(new_name);
|
||||
$("#provider-" + id).addClass("update", 1000);
|
||||
setTimeout(function () {
|
||||
$("#provider-" + id).removeClass("update");
|
||||
}, 2500);
|
||||
$('#provider-edited-date-' + id).text(returnFormatedDate())
|
||||
} else if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
var awsEditProvider = $("#aws_edit_provider").dialog({
|
||||
autoOpen: false,
|
||||
|
@ -963,7 +1286,6 @@ var awsEditProvider = $("#aws_edit_provider").dialog({
|
|||
buttons: {
|
||||
"Edit": function () {
|
||||
awsEditProviderSave($(this));
|
||||
$( this ).dialog( "close" );
|
||||
},
|
||||
Cancel: function () {
|
||||
$(this).dialog("close");
|
||||
|
@ -978,34 +1300,44 @@ function editAwsProvider(id) {
|
|||
awsEditProvider.dialog('open');
|
||||
}
|
||||
function awsEditProviderSave() {
|
||||
id = $('#aws_edit_provider_id').val();
|
||||
new_name = $('#aws_edit_provider_name').val();
|
||||
key = $('#aws_edit_provider_key').val();
|
||||
secret = $('#aws_edit_provider_secret').val();
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
edit_aws_provider: id,
|
||||
edit_aws_provider_name: new_name,
|
||||
edit_aws_provider_key: key,
|
||||
edit_aws_provider_secret: secret,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if(data == "ok ") {
|
||||
$("#provider-name-"+id).text(new_name);
|
||||
$("#provider-"+id).addClass( "update", 1000 );
|
||||
$('#provider-edited-date-'+id).text(returnFormatedDate())
|
||||
setTimeout(function() {
|
||||
$( "#provider-"+id ).removeClass( "update" );
|
||||
}, 2500 );
|
||||
} else if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
allFields = $( [] ).add( $('#aws_edit_provider_name')).add( $('#aws_edit_provider_key') ).add($('#aws_edit_provider_secret'));
|
||||
allFields.removeClass( "ui-state-error" );
|
||||
valid = valid && checkLength( $('#aws_edit_provider_name'), "Provider name", 1 );
|
||||
valid = valid && checkLength( $('#aws_edit_provider_key'), "ACCESS_KEY", 1 );
|
||||
valid = valid && checkLength( $('#aws_edit_provider_secret'), "ACCESS_SECRET", 1 );
|
||||
if(valid) {
|
||||
awsEditProvider.dialog("close");
|
||||
id = $('#aws_edit_provider_id').val();
|
||||
new_name = $('#aws_edit_provider_name').val();
|
||||
key = $('#aws_edit_provider_key').val();
|
||||
secret = $('#aws_edit_provider_secret').val();
|
||||
$.ajax({
|
||||
url: "options.py",
|
||||
data: {
|
||||
edit_aws_provider: id,
|
||||
edit_aws_provider_name: new_name,
|
||||
edit_aws_provider_key: key,
|
||||
edit_aws_provider_secret: secret,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function (data) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data == "ok ") {
|
||||
$("#provider-name-" + id).text(new_name);
|
||||
$("#provider-" + id).addClass("update", 1000);
|
||||
$('#provider-edited-date-' + id).text(returnFormatedDate())
|
||||
setTimeout(function () {
|
||||
$("#provider-" + id).removeClass("update");
|
||||
}, 2500);
|
||||
} else if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function doEditServer(dialog_id, server_id) {
|
||||
var valid = true;
|
||||
|
@ -1339,11 +1671,7 @@ function doWorkspaceServer() {
|
|||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1' && data.indexOf('Last error:') == '-1') {
|
||||
var server_id = $('#ajax-provisioning-body tr td span:regex(id, sever-ip-)').last().attr('id').split('-')[2]
|
||||
showProvisioningError(data, '#creating-workspace', '#creating-validate', '#wait-mess', '#creating-error', '#creating-progress', 'do');
|
||||
$('#sever-status-'+server_id).text('Error');
|
||||
$('#sever-status-'+server_id).attr('title', data);
|
||||
$('#sever-status-'+server_id).css('color', 'red');
|
||||
} else {
|
||||
showProvisioningProccess('#creating-validate', '#creating-workspace', '#creating-server', '80', '#creating-progress');
|
||||
common_ajax_action_after_success('1', 'newserver', 'ajax-provisioning-body', data);
|
||||
|
@ -1382,8 +1710,347 @@ function doProvisiningServer() {
|
|||
}
|
||||
} );
|
||||
}
|
||||
function gcoreInitServer() {
|
||||
$('#creating-init').addClass('proccessing');
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreinitserver: 1,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
showProvisioningError(data, '#creating-init', '#creating-init', '#wait-mess', '#creating-error', '#creating-progress', 'gcore');
|
||||
} else {
|
||||
showProvisioningProccess('#creating-init', '#creating-init', '#creating-vars', '20', '#creating-progress');
|
||||
gcoreVarsServer();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreVarsServer() {
|
||||
var gcore_create_firewall = 'false';
|
||||
var gcore_create_delete_on_termination = 'false';
|
||||
if ($('#gcore_create_firewall').is(':checked')) {
|
||||
gcore_create_firewall = 'true';
|
||||
}
|
||||
if ($('#gcore_create_delete_on_termination').is(':checked')) {
|
||||
gcore_create_delete_on_termination = 'true';
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcorevars: $('#gcore_create_server_name').val(),
|
||||
gcore_create_group: $('#gcore_create_group').val(),
|
||||
gcore_create_provider: $('#gcore_create_provider').val(),
|
||||
gcore_create_regions: $('#gcore_create_regions').val(),
|
||||
gcore_create_project: $('#gcore_create_project_name').val(),
|
||||
gcore_create_size: $('#gcore_create_size').val(),
|
||||
gcore_create_oss: $('#gcore_create_oss').val(),
|
||||
gcore_create_ssh_name: $('#gcore_create_ssh_name').val(),
|
||||
gcore_create_volume_size: $('#gcore_create_volume_size').val(),
|
||||
gcore_create_volume_type: $('#gcore_create_volume_type').val(),
|
||||
gcore_create_delete_on_termination: gcore_create_delete_on_termination,
|
||||
gcore_create_network_name: $('#gcore_create_network_name').val(),
|
||||
gcore_create_firewall: gcore_create_firewall,
|
||||
gcore_create_network_type: $('#gcore_create_network_type').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
showProvisioningError(data, '#creating-vars', '#creating-init', '#wait-mess', '#creating-error', '#creating-progress', 'gcore');
|
||||
} else {
|
||||
showProvisioningProccess('#creating-init', '#creating-vars', '#creating-validate', '40', '#creating-progress');
|
||||
gcoreValidateServer();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreValidateServer() {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcorevalidate: $('#gcore_create_server_name').val(),
|
||||
gcore_create_group: $('#gcore_create_group').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
showProvisioningError(data, '#creating-validate', '#creating-vars', '#wait-mess', '#creating-error', '#creating-progress', 'gcore');
|
||||
} else {
|
||||
showProvisioningProccess('#creating-vars', '#creating-validate', '#creating-workspace', '60', '#creating-progress');
|
||||
gcoreWorkspaceServer();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreWorkspaceServer() {
|
||||
var gcore_create_firewall = 'false';
|
||||
var gcore_create_delete_on_termination = 'false';
|
||||
if ($('#gcore_create_firewall').is(':checked')) {
|
||||
gcore_create_firewall = 'true';
|
||||
}
|
||||
if ($('#gcore_create_delete_on_termination').is(':checked')) {
|
||||
gcore_create_delete_on_termination = 'true';
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreworkspace: $('#gcore_create_server_name').val(),
|
||||
gcore_create_group: $('#gcore_create_group').val(),
|
||||
gcore_create_provider: $('#gcore_create_provider').val(),
|
||||
gcore_create_regions: $('#gcore_create_regions').val(),
|
||||
gcore_create_project: $('#gcore_create_project_name').val(),
|
||||
gcore_create_size: $('#gcore_create_size').val(),
|
||||
gcore_create_oss: $('#gcore_create_oss').val(),
|
||||
gcore_create_ssh_name: $('#gcore_create_ssh_name').val(),
|
||||
gcore_create_volume_size: $('#gcore_create_volume_size').val(),
|
||||
gcore_create_volume_type: $('#gcore_create_volume_type').val(),
|
||||
gcore_create_delete_on_termination: gcore_create_delete_on_termination,
|
||||
gcore_create_network_name: $('#gcore_create_network_name').val(),
|
||||
gcore_create_firewall: gcore_create_firewall,
|
||||
gcore_create_network_type: $('#gcore_create_network_type').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1' && data.indexOf('Last error:') == '-1') {
|
||||
showProvisioningError(data, '#creating-workspace', '#creating-validate', '#wait-mess', '#creating-error', '#creating-progress', 'gcore');
|
||||
} else {
|
||||
showProvisioningProccess('#creating-validate', '#creating-workspace', '#creating-server', '80', '#creating-progress');
|
||||
common_ajax_action_after_success('1', 'newserver', 'ajax-provisioning-body', data);
|
||||
gcoreProvisiningServer();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreProvisiningServer() {
|
||||
var gcoreprovisining = $('#gcore_create_server_name').val()
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreprovisining: gcoreprovisining,
|
||||
gcore_create_group: $('#gcore_create_group').val(),
|
||||
gcore_create_provider: $('#gcore_create_provider').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
var server_id = $('#ajax-provisioning-body tr td span:regex(id, sever-ip-)').last().attr('id').split('-')[2]
|
||||
if (data.indexOf('error:') != '-1' && data.indexOf('Last error:') == '-1') {
|
||||
showProvisioningError(data, '#creating-server', '#creating-workspace', '#wait-mess', '#creating-error', '#creating-progress', 'gcore');
|
||||
$('#sever-status-'+server_id).text('Error');
|
||||
$('#sever-status-'+server_id).attr('title', data);
|
||||
$('#sever-status-'+server_id).css('color', 'red');
|
||||
} else {
|
||||
data = data.split(':');
|
||||
data[1] = data[1].replace(/\s+/g, ' ');
|
||||
showProvisioningProccess('#creating-workspace', '#creating-server', '', '100', '#creating-progress');
|
||||
$('#wait-mess').hide();
|
||||
$('#created-mess').html('Server has been created. Server IPs are:' + data[0]);
|
||||
$('#created-mess').show();
|
||||
$('#sever-status-'+server_id).text('Created');
|
||||
$('#sever-status-'+server_id).css('color', 'var(--green-color)');
|
||||
$('#sever-ip-'+server_id).text(data[0]);
|
||||
$('#server-name-'+server_id).text(gcoreprovisining+'('+data[1]+')');
|
||||
add_gcore_button_after_server_created();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreEditServer(dialog_id, server_id) {
|
||||
var valid = true;
|
||||
toastr.clear();
|
||||
allFields = $( [] ).add( $('#gcore_edit_size')).add( $('#gcore_edit_ssh_name')).add( $('#gcore_edit_volume_size'));
|
||||
allFields.removeClass( "ui-state-error" );
|
||||
valid = valid && checkLength( $('#gcore_edit_size'), "Instance type", 1 );
|
||||
valid = valid && checkLength( $('#gcore_edit_ssh_name'), "SSH key pair name", 1 );
|
||||
valid = valid && checkLength( $('#gcore_edit_volume_size'), "Volume size", 1 );
|
||||
if(valid) {
|
||||
clearTips();
|
||||
dialog_id.dialog('destroy');
|
||||
startEditingServer('gcore', server_id);
|
||||
$('#editing-wait-mess').show();
|
||||
}
|
||||
}
|
||||
function gcoreEditInitServer(server_id) {
|
||||
$('#editing-init').addClass('proccessing');
|
||||
$('#server-'+server_id).css('background-color', '#fff3cd');
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreinitserver: 1,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
showProvisioningError(data, '#editing-init', '#editing-init', '#editing-wait-mess', '#editing-error', '#editing-progress', 'gcore');
|
||||
$('#server-'+server_id).css('background-color', '#fff');
|
||||
add_gcore_button_after_server_edited(server_id)
|
||||
} else {
|
||||
showProvisioningProccess('#editing-init', '#editing-init', '#editing-vars', '20', '#editing-progress');
|
||||
gcoreEditingVarsServer(server_id);
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
function gcoreEditingVarsServer(server_id, dialog_id) {
|
||||
var gcore_edit_firewall = 'false';
|
||||
var gcore_edit_delete_on_termination = 'false';
|
||||
if ($('#gcore_edit_firewall').is(':checked')) {
|
||||
gcore_edit_firewall = 'true';
|
||||
}
|
||||
if ($('#gcore_edit_delete_on_termination').is(':checked')) {
|
||||
gcore_edit_delete_on_termination = 'true';
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreeditvars: $('#gcore_edit_server_name').text(),
|
||||
gcore_edit_group: $('#gcore_edit_group').val(),
|
||||
gcore_edit_provider: $('#gcore_edit_id_provider').val(),
|
||||
gcore_edit_regions: $('#gcore_edit_region').text(),
|
||||
gcore_edit_project: $('#gcore_edit_project_name').text(),
|
||||
gcore_edit_size: $('#gcore_edit_size').val(),
|
||||
gcore_edit_oss: $('#gcore_edit_oss').val(),
|
||||
gcore_edit_ssh_name: $('#gcore_edit_ssh_name').val(),
|
||||
gcore_edit_volume_size: $('#gcore_edit_volume_size').val(),
|
||||
gcore_edit_volume_type: $('#gcore_edit_volume_type').val(),
|
||||
gcore_edit_delete_on_termination: gcore_edit_delete_on_termination,
|
||||
gcore_edit_network_name: $('#gcore_edit_network_name').val(),
|
||||
gcore_edit_firewall: gcore_edit_firewall,
|
||||
gcore_edit_network_type: $('#gcore_edit_network_type').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
showProvisioningError(data, '#editing-vars', '#editing-init', '#editing-wait-mess', '#editing-error', '#editing-progress', 'gcore');
|
||||
$('#server-'+server_id).css('background-color', '#fff');
|
||||
add_gcore_button_after_server_edited(server_id);
|
||||
} else {
|
||||
showProvisioningProccess('#editing-init', '#editing-vars', '#editing-validate', '40', '#editing-progress');
|
||||
gcoreEditValidateServer(server_id);
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreEditValidateServer(server_id) {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreeditvalidate: $('#gcore_edit_server_name').text(),
|
||||
gcore_edit_group: $('#gcore_edit_group').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
showProvisioningError(data, '#editing-validate', '#editing-vars', '#editing-wait-mess', '#editing-error', '#editing-progress', 'gcore');
|
||||
$('#server-'+server_id).css('background-color', '#fff');
|
||||
add_gcore_button_after_server_edited(server_id);
|
||||
} else {
|
||||
showProvisioningProccess('#editing-vars', '#editing-validate', '#editing-workspace', '60', '#editing-progress');
|
||||
gcoreEditWorkspaceServer(server_id);
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreEditWorkspaceServer(server_id) {
|
||||
var gcore_edit_firewall = 'false';
|
||||
var gcore_edit_delete_on_termination = 'false';
|
||||
if ($('#gcore_edit_firewall').is(':checked')) {
|
||||
gcore_edit_firewall = 'true';
|
||||
}
|
||||
if ($('#gcore_edit_delete_on_termination').is(':checked')) {
|
||||
gcore_edit_delete_on_termination = 'true';
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreeditworkspace: $('#gcore_edit_server_name').text(),
|
||||
gcore_edit_group: $('#gcore_edit_group').val(),
|
||||
gcore_edit_provider: $('#gcore_edit_id_provider').val(),
|
||||
gcore_edit_regions: $('#gcore_edit_region').text(),
|
||||
gcore_edit_project: $('#gcore_edit_project_name').text(),
|
||||
gcore_edit_size: $('#gcore_edit_size').val(),
|
||||
gcore_edit_oss: $('#gcore_edit_oss').val(),
|
||||
gcore_edit_ssh_name: $('#gcore_edit_ssh_name').val(),
|
||||
gcore_edit_volume_size: $('#gcore_edit_volume_size').val(),
|
||||
gcore_edit_volume_type: $('#gcore_edit_volume_type').val(),
|
||||
gcore_edit_delete_on_termination: gcore_edit_delete_on_termination,
|
||||
gcore_edit_network_name: $('#gcore_edit_network_name').val(),
|
||||
gcore_edit_firewall: gcore_edit_firewall,
|
||||
gcore_edit_network_type: $('#gcore_edit_network_type').val(),
|
||||
server_id: server_id,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1' && data.indexOf('Last error:') == '-1') {
|
||||
showProvisioningError(data, '#editing-workspace', '#editing-validate', '#editing-wait-mess', '#editing-error', '#editing-progress', 'gcore');
|
||||
showEditProvisioningError(data, server_id);
|
||||
add_gcore_button_after_server_edited(server_id);
|
||||
} else {
|
||||
showProvisioningProccess('#editing-validate', '#editing-workspace', '#editing-server', '80', '#editing-progress');
|
||||
$('#sever-status-'+server_id).text('Editing');
|
||||
$('#sever-status-'+server_id).css('color', '#000');
|
||||
gcoreEditProvisiningServer(server_id);
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function gcoreEditProvisiningServer(server_id, dialog_id) {
|
||||
var gcoreeditgprovisining = $('#gcore_edit_server_name').text();
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
gcoreeditgprovisining: gcoreeditgprovisining,
|
||||
gcore_edit_group: $('#gcore_edit_group').val(),
|
||||
gcore_edit_provider: $('#gcore_edit_id_provider option:selected').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g, ' ');
|
||||
if (data.indexOf('error:') != '-1' && data.indexOf('Last error:') == '-1') {
|
||||
showProvisioningError(data, '#editing-server', '#editing-workspace', '#editing-wait-mess', '#editing-error', '#editing-progress', 'gcore');
|
||||
showEditProvisioningError(data, server_id);
|
||||
add_gcore_button_after_server_edited(server_id);
|
||||
} else {
|
||||
showProvisioningProccess('#editing-workspace', '#editing-server', '', '100', '#editing-progress');
|
||||
data = data.split(':');
|
||||
data[1] = data[1].replace(/\s+/g, ' ');
|
||||
$('#editing-wait-mess').hide();
|
||||
$('#edited-mess').html('Server has been changed. IPs are: ' + data[0]);
|
||||
$('#edited-mess').show();
|
||||
$('#sever-status-'+server_id).text('Created');
|
||||
$('#sever-size-'+server_id).text($('#gcore_edit_size').val());
|
||||
$('#sever-os-'+server_id).text($('#gcore_edit_oss').val());
|
||||
$('#server-'+server_id).css('background-color', '#fff');
|
||||
$('#sever-status-'+server_id).css('color', 'var(--green-color)');
|
||||
$('#sever-ip-'+server_id).text(data[0]);
|
||||
$('#server-name-'+server_id).text(gcoreeditgprovisining+'('+data[1]+')');
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function returnFormatedDate() {
|
||||
let date = new Date();
|
||||
current_date = date.toISOString().slice(0,10)+' '+date.toTimeString().split(' ')[0]
|
||||
return current_date
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
:root {
|
||||
--green-color: #5ad05a;
|
||||
}
|
||||
html {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
@ -389,7 +392,7 @@ pre {
|
|||
font-weight: bold;
|
||||
}
|
||||
.serverUp {
|
||||
background-color: #5ad05a;
|
||||
background-color: var(--green-color);
|
||||
}
|
||||
.serverNone {
|
||||
background-color: #ddd;
|
||||
|
@ -753,7 +756,7 @@ label {
|
|||
height: 95px;
|
||||
}
|
||||
.div-server-head-up {
|
||||
border-top: 3px solid #5ad05a !important;
|
||||
border-top: 3px solid var(--green-color) !important;
|
||||
}
|
||||
.div-server-head-down {
|
||||
border-top: 3px solid #be2424 !important;
|
||||
|
|
Loading…
Reference in New Issue