1
0
Fork 0
mirror of https://github.com/ThomasGsp/HyperProxmox.git synced 2025-03-09 15:40:18 +00:00

Somes changes

This commit is contained in:
Tlams 2018-02-15 11:05:50 +00:00
parent d7ad4d8cfd
commit e432112724
5 changed files with 33 additions and 193 deletions

View file

@ -3,7 +3,7 @@
* Author : Tlams
* Date : 2017/2018
* Status: Dev
* Object : Massive LXC CT / KVM deployment system and for Proxmox clusters.
* Object : Massive LXC CT / KVM deployment and management system for Proxmox clusters.
* Information :
This project is currently in active development.
You shouldn't use in production mode, use at your risks !

View file

@ -1,8 +1,8 @@
[system]
; System configurations
user: hosting
user: hyperproxmox
; If not exist on start, the key is auto-generate.
; If not exist on start, the key will be auto-generate.
key_pvt: private/keys/Ragnarok.pvt.key
key_pub: private/keys/Ragnarok.pub.key
@ -10,7 +10,7 @@ key_pub: private/keys/Ragnarok.pub.key
user: www-data
[api]:
user: hosting_api
user: hyperproxmox
[databases]
; Databases configurations
@ -45,11 +45,11 @@ walker_lock: /tmp/hyperproxmoxwalker.lock
[logger]
; Active or not(True/False)
; Active or not(True/False - Case !)
debug = True
; debug level 1: "INFO", 2: "WARNING", 3: "ERROR", 4: "CRITICAL", 5: "DEBUG"
debug_level = 5
debug_level = 2
; log output
logs_dir = /var/log/hyperproxmox/

View file

@ -75,14 +75,12 @@ if __name__ == "__main__":
'/api/v1/instance', 'Instance',
'/api/v1/instance/new', 'Instance',
'/api/v1/instance/([0-9]+)', 'Instance',
'/api/v1/instance/([0-9]+)/status/([a-z]+)', 'Instance',
'/api/v1/instance/([a-z0-9]+)/status/(start|stop|status|restart|reset|shutdown)', 'Instance',
'/api/v1/instance/([0-9]+)/package', 'package',
'/api/v1/instance/([0-9]+)/vhost(?:/([0-9]+))', 'vhost',
'/api/v1/instance/([0-9]+)/database(?:/([0-9]+))', 'database',
#  MAPPING NODES
'/api/v1/nodes(?:/([0-9]+))', 'node',
# MAPPING SERVICES
'/api/v1/service/([a-z]+)/instance/([0-9]+)/vhost(?:/([0-9]+))', 'service',
@ -90,7 +88,7 @@ if __name__ == "__main__":
# AUTH
'/api/v1/auth', 'Auth',
# MANAGEMENT
# MANAGEMENT CLUSTER
'/api/v1/administration/cluster/(?:[0-9a-zA-Z\_\-]+)', 'Cluster',
'/api/v1/administration/cluster/', 'Cluster',
'/api/v1/administration/cluster/new', 'Cluster',

View file

@ -14,117 +14,15 @@ include(dirname(__DIR__).'/pages/includes/header.php');
<!-- /.row -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<!--
<div class="col-lg-3 col-md-6">
<div class="panel panel-green">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-tasks fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">12</div>
<div>Nodes in your insfrastucture</div>
</div>
</div>
</div>
<a href="#">
<div class="panel-footer">
<span class="pull-left">View Details</span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="panel panel-green">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-tasks fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">12</div>
<div>VMs in your insfrastucture</div>
</div>
</div>
</div>
<a href="#">
<div class="panel-footer">
<span class="pull-left">View Details</span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="panel panel-green">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-tasks fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">12</div>
<div>New Tasks!</div>
</div>
</div>
</div>
<a href="#">
<div class="panel-footer">
<span class="pull-left">View Details</span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="panel panel-green">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-tasks fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">12</div>
<div>New Tasks!</div>
</div>
</div>
</div>
<a href="#">
<div class="panel-footer">
<span class="pull-left">View Details</span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<h3>Clusters may be dead</h3>
<div id="clusterdead" style="height: 300px;"></div>
</div>
<div class="col-md-12">
<h3>Hypervisors ressources critical</h3>
<div id="hypfull" style="height: 300px;"></div>
</div>
</div>
</div>
-->
</div>
<h3>
- Author : Tlams <br/>
- Date : 2017/2018 <br/>
- Status: Dev <br/>
- Object : Massive LXC CT / KVM deployment system and for Proxmox clusters. <br/>
Information : This project is currently in active development. <br/>
You shouldn't use in production mode, use at your risks ! <br/>
</h3>
</div>
</div>
<?php

View file

@ -128,87 +128,30 @@ $(document).ready(function()
{
/* VM GESTION */
var dialog, form,
name = $( "#name" ),
password = $( "#password" ),
allFields = $( [] ).add( name ).add( password );
function sendrequest() {
// J'initialise le variable box
var box = $('.result');
function sendrequest()
{
var action = $( "#action" );
var vmid = $( "#vmid" );
var node = $( "#node" );
var id = $( "#bbaction" );
var box = $('.result');
var commandinfo = "The status available in the table is not dynamically update, you must wait the next cron rotate. <br /> You can play the status command to have an updated informations";
box.html('<center> <img src="images/icon-load.gif" height="60" width="60"></center>');
$('.selectaction').prop('selectedIndex',0);
// Je définis ma requête ajax
$.ajax({
// Adresse à laquelle la requête est envoyée
url: 'requires/pveaction.php',
type : 'POST',
data : 'user=' + name.val() + '&password=' + password.val() + '&action=' + action.val() + '&vmid=' + vmid.val() + '&node=' + node.val(),
// Le délai maximun en millisecondes de traitement de la demande
url: 'requires/pveaction.php?id='+id.val()+'&action=status',
type : 'GET',
timeout: 32000,
// La fonction à apeller si la requête aboutie
success: function (data) {
// Je charge les données dans box
box.html('<div class="alert alert-info"> <strong>Command return: </strong> '+data+' <br /> '+ commandinfo +'</div>');
},
// La fonction à appeler si la requête n'a pas abouti
error: function() {
// J'affiche un message d'erreur
box.html('<div class="alert alert-danger"> <strong>Error: </strong> Command failed, try again or contact an true admin. </div>');
}
});
dialog.dialog( "close" );
$("html, body").animate({ scrollTop: $(document).height() }, "slow");
}
dialog = $( "#dialog-form" ).dialog({
autoOpen: false,
height: 250,
width: 350,
modal: true,
resizable: false,
buttons: {
"Send": sendrequest,
Cancel: function() {
dialog.dialog( "close" );
}
},
close: function() {
form[ 0 ].reset();
allFields.removeClass( "ui-state-error" );
$('.selectaction').prop('selectedIndex',0);
}
});
form = dialog.find( "form" ).on( "submit", function( event ) {
event.preventDefault();
sendrequest();
});
$('.dataTables-vm').on('change', '.selectaction',function() {
var jsonout = JSON.parse(this.value.replace(/'/g, '"'));
if (jsonout["action"] != "none") {
$('#action').val(jsonout["action"]);
$('#vmid').val(jsonout["vmid"]);
$('#node').val(jsonout["node"]);
dialog.dialog( "open" );
}
});
/* NODE NON GRATA */
function nongrataswitch(node, action) {
@ -258,12 +201,13 @@ $(document).ready(function()
return false; // return false so the browser will not scroll your page
});
/* NEWVM -- SEARCH NODES */
form = dialog.find( "form" ).on( "submit", function( event ) {
event.preventDefault();
sendrequest();
$('#bbaction').on('click', function(event) {
event.preventDefault(); // To prevent following the link (optional)
sendrequest();
});
function newvm() {
// J'initialise le variable box