From dcc0babb73652280cd017a2b83ba9849549d4490 Mon Sep 17 00:00:00 2001 From: "thomas.guiseppin" Date: Sat, 18 Nov 2017 21:07:58 +0100 Subject: [PATCH] General update --- README.md | 6 +++--- code/scripts/main/core/core.py | 5 ++++- code/scripts/main/core/modules/mod_crawler.py | 17 +++++++++++------ code/scripts/main/core/modules/mod_database.py | 16 ++++++++++------ 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index e8daf9b..c224d7f 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ ## Quick start ### Requirement: -* A proxmox server -* A administrative pve user (full access) -* A Vztemplate uploaded +* proxmox server +* administrative pve user (full access) +* Vztemplate uploaded ### Init: ``` bash diff --git a/code/scripts/main/core/core.py b/code/scripts/main/core/core.py index 34cbad0..ec5f174 100644 --- a/code/scripts/main/core/core.py +++ b/code/scripts/main/core/core.py @@ -103,6 +103,9 @@ class Core: """ FIND NEXT INSTANCE ID AVAILABLE AND INCREMENT IT""" next_instance_id = int(get_info_system["instances_number"]+1) + """ TEST THIS ID """ + + """ FIND LAST LAST IP USE AND INCREMENT IT""" if not get_info_system["IP_free"]: get_instance_ip = get_info_system["IP_current"] @@ -284,7 +287,7 @@ class Core: return result - def change_instance(self, vmid, data, instancetype="lxc"): + def change_instance(self, vmid, data, instancetype="lxc"): """ Find node/cluster informations from vmid """ try: instance_informations = self.mongo.get_instance(vmid) diff --git a/code/scripts/main/core/modules/mod_crawler.py b/code/scripts/main/core/modules/mod_crawler.py index 6622097..1d2f6d4 100644 --- a/code/scripts/main/core/modules/mod_crawler.py +++ b/code/scripts/main/core/modules/mod_crawler.py @@ -11,8 +11,6 @@ from core.modules.mod_proxmox import * from core.modules.mod_database import * from core.libs.hcrypt import * import time -import operator -import random import base64 @@ -57,8 +55,15 @@ class Crawler: value_nodes_list["node"], instancetype)["value"] for key_list_instances, value_list_instances in list_instances.items(): - for instances in value_list_instances: - instances["node"] = value_nodes_list["node"] - print(instances) - + for instance in value_list_instances: + instance["cluster"] = cluster["name"] + instance["node"] = value_nodes_list["node"] + # Test si l'instance existe + if not self.mongo.get_instance(instance["vmid"], instance["node"]): + # si non existante, alors il s'agit d'une instance manuelle + instance["commandid"] = "000000" + self.mongo.insert_instance(instance) + # Si elle existe déjà, on l'update: + else: + self.mongo.update_instance(instance, instance["vmid"], instance["node"]) return \ No newline at end of file diff --git a/code/scripts/main/core/modules/mod_database.py b/code/scripts/main/core/modules/mod_database.py index 76d9393..8bf0b62 100644 --- a/code/scripts/main/core/modules/mod_database.py +++ b/code/scripts/main/core/modules/mod_database.py @@ -211,14 +211,18 @@ class MongoDB: def insert_instance(self, data): return self.db[self.collection_instance].insert(data) - def update_instance(self, vmid, data): - self.db[self.collection_instance].update({"vmid": int(vmid)}, {'$set': data}, upsert=False) + def update_instance(self, data, vmid, node): + return self.db[self.collection_instance].update( + {"vmid": int(vmid), "node": node}, {'$set': data}, upsert=False + ) - def delete_instance(self, vmid): - self.db[self.collection_instance].remove({"vmid": int(vmid)}) + def delete_instance(self, vmid, node): + self.db[self.collection_instance].remove({"vmid": int(vmid), "node": node}) - def get_instance(self, vmid): + def get_instance(self, vmid, node): try: - return json.loads(dumps(self.db[self.collection_instance].find_one({"vmid": int(vmid)}))) + return json.loads(dumps( + self.db[self.collection_instance].find_one( + {"vmid": int(vmid), "node": node}))) except BaseException as serr: raise ("MongoDB error on {0}:{1} ({2})".format(self.server, self.port, serr))