From c55432b6c8864e52314086846237b7074af82a30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkan=20=C5=9Eahin?= Date: Fri, 11 Mar 2016 17:37:38 +0200 Subject: [PATCH] logs were added and some bugs were fixed --- opt/ahenk/base/registration/Registration.py | 90 ++++++++------------- 1 file changed, 34 insertions(+), 56 deletions(-) diff --git a/opt/ahenk/base/registration/Registration.py b/opt/ahenk/base/registration/Registration.py index 7c03bef..6b2cac5 100644 --- a/opt/ahenk/base/registration/Registration.py +++ b/opt/ahenk/base/registration/Registration.py @@ -2,19 +2,16 @@ # -*- coding: utf-8 -*- # Author: Volkan Şahin -from base.config.ConfigManager import ConfigManager -from base.logger.AhenkLogger import Logger from base.Scope import Scope from base.messaging.MessageSender import MessageSender from uuid import getnode as get_mac -import sys,logging,json,uuid -import datetime,time,configparser -import netifaces,socket,re +import json, uuid, netifaces, socket, datetime + class Registration(): - #TODO try catches + #TODO keep catches and set logs def __init__(self): scope = Scope().getInstance() self.conf_manager = scope.getConfigurationManager() @@ -28,35 +25,42 @@ class Registration(): if self.conf_manager.get('REGISTRATION', 'registered')=='false': self.re_register() else: - self.logger.debug('[Registration] already registered') + self.logger.debug('[Registration] Ahenk already registered') else: self.register(True) - self.logger.debug('[Registration] ') def registration_request(self): + self.logger.debug('[Registration] Requesting registration') message_sender=MessageSender(self.get_registration_request_message(),None) message_sender.connect_to_server() def ldap_registration_request(self): + self.logger.debug('[Registration] Requesting LDAP registration') message_sender=MessageSender(self.get_ldap_registration_request_message(),None) message_sender.connect_to_server() - def confirm_registration(self,reg_reply): #event fire and keep here + def confirm_registration(self,reg_reply): + self.logger.debug('[Registration] Reading registration reply') j = json.loads(reg_reply) - self.logger.info('[REGISTRATION] register reply: '+j['message']) + self.logger.debug('[Registration]'+j['message']) status =str(j['status']).lower() dn=str(j['agentDn']).lower() + self.logger.debug('[Registration] Registration status: '+str(status)) if str(status)=='registered' or str(status)=='registered_without_ldap': - self.update_conf_file() + self.logger.debug('dn:'+dn) + self.update_conf_file(dn) elif str(status)=='registration_error': - self.logger.info('[REGISTRATION] registration error') - elif str(status)=='already_registered': - self.logger.info('[REGISTRATION]already registered') + self.logger.info('[Registration] Registration is failed. New registration request will send') self.re_register() self.registration_request() + elif str(status)=='already_exists': + self.update_conf_file(dn) + self.logger.info('[Registration] Ahenk already registered') - def update_conf_file(self): + + def update_conf_file(self,dn=None): + self.logger.debug('[Registration] Registration configuration is updating...') if self.conf_manager.has_section('CONNECTION') and self.conf_manager.get('REGISTRATION', 'from') is not None: self.conf_manager.set('CONNECTION', 'uid',self.conf_manager.get('REGISTRATION', 'from')) self.conf_manager.set('CONNECTION', 'password',self.conf_manager.get('REGISTRATION', 'password')) @@ -64,11 +68,14 @@ class Registration(): self.conf_manager.set('REGISTRATION', 'registered','true') with open('/etc/ahenk/ahenk.conf', 'w') as configfile: self.conf_manager.write(configfile) + self.logger.debug('[Registration] Registration configuration file is updated') def is_registered(self): if self.conf_manager.has_section('REGISTRATION') and (self.conf_manager.get('REGISTRATION', 'registered')=='true'): + self.logger.debug('registered') return True else: + self.logger.debug('not registered') return False def is_ldap_registered(self): @@ -78,54 +85,24 @@ class Registration(): return False def get_registration_request_message(self): - self.logger.debug('[Registration] creating registration message according to parameters of registration') - if self.conf_manager.has_section('REGISTRATION'): - data = {} - data['type'] = 'REGISTER' - data['from'] = str(self.conf_manager.get('REGISTRATION','from')) - data['password'] = str(self.conf_manager.get('REGISTRATION','password')) - data['macAddresses'] = str(self.conf_manager.get('REGISTRATION','macAddresses')) - data['ipAddresses'] = str(self.conf_manager.get('REGISTRATION','ipAddresses')) - data['hostname'] = str(self.conf_manager.get('REGISTRATION','hostname')) - data['timestamp'] = str(self.conf_manager.get('REGISTRATION','timestamp')) - self.logger.debug('[Registration] json of registration message was created') - - json_data = json.dumps(data) - self.logger.debug('[Registration] json converted to str') - return json_data + return self.message_manager.registration_msg() else: - print("Registration section not found") + self.logger.error('[Registration] Registration section not found while trying to registration request') return None def get_ldap_registration_request_message(self): - self.logger.debug('[Registration] creating ldap registration message according to parameters of registration') - if self.conf_manager.has_section('REGISTRATION'): - data = {} - data['type'] = 'REGISTER_LDAP' - data['from'] = str(self.conf_manager.get('REGISTRATION','from')) - data['password'] = str(self.conf_manager.get('REGISTRATION','password')) - data['macAddresses'] = str(self.conf_manager.get('REGISTRATION','macAddresses')) - data['ipAddresses'] = str(self.conf_manager.get('REGISTRATION','ipAddresses')) - data['hostname'] = str(self.conf_manager.get('REGISTRATION','hostname')) - data['timestamp'] = str(self.conf_manager.get('REGISTRATION','timestamp')) - self.logger.debug('[Registration] json of registration message was created') - - json_data = json.dumps(data) - self.logger.debug('[Registration] json converted to str') - return json_data + return self.message_manager.ldap_registration_msg() else: - print("Registration section not found") + self.logger.error('[Registration] Registration section not found while trying to ldap registration request') return None def register(self,uuid_depend_mac): - self.logger.debug('[Registration] configuration parameters of registration is checking') if self.conf_manager.has_section('REGISTRATION'): - self.logger.debug('[Registration] REGISTRATION section is already created') + self.logger.info('[Registration] Registration section is already created') else: - self.logger.debug('[Registration] creating REGISTRATION section') - + self.logger.debug('[Registration] Creating Registration section') self.conf_manager.add_section('REGISTRATION') self.conf_manager.set('REGISTRATION', 'from',str(self.generate_uuid(uuid_depend_mac))) self.conf_manager.set('REGISTRATION', 'macAddresses',str(':'.join(("%012X" % get_mac())[i:i+2] for i in range(0, 12, 2)))) @@ -137,12 +114,13 @@ class Registration(): self.conf_manager.set('REGISTRATION', 'registered','false') #TODO self.conf_manager.configurationFilePath attribute error ? READ olacak - self.logger.debug('[Registration] parameters were set up, section will write to configuration file') + self.logger.debug('[Registration] Parameters were set up, section will write to configuration file') with open('/etc/ahenk/ahenk.conf', 'w') as configfile: self.conf_manager.write(configfile) self.logger.debug('[Registration] REGISTRATION section wrote to configuration file successfully') def unregister(self): + self.logger.debug('[Registration] Ahenk is unregistering...') if self.conf_manager.has_section('REGISTRATION'): #TODO open this block if you want to be aware about unregistration #message_sender=MessageSender(self.message_manager.unregister_msg(),None) @@ -153,26 +131,26 @@ class Registration(): self.conf_manager.set('CONNECTION', 'password','') with open('/etc/ahenk/ahenk.conf', 'w') as configfile: self.conf_manager.write(configfile) - + self.logger.debug('[Registration] Ahenk is unregistered') def re_register(self): + self.logger.debug('[Registration] Reregistrating...') self.unregister() self.register(False) def generate_uuid(self,depend_mac=True): - self.logger.debug('[Registration] universal user id will be created') if depend_mac is False: self.logger.debug('[Registration] uuid creating randomly') return uuid.uuid4() # make a random UUID else: - self.logger.debug('[Registration] uuid creating depends to mac address') + self.logger.debug('[Registration] uuid creating according to mac address') return uuid.uuid3(uuid.NAMESPACE_DNS, str(get_mac()))# make a UUID using an MD5 hash of a namespace UUID and a mac address def generate_password(self): return uuid.uuid4() def get_ipAddresses(self): - self.logger.debug('[Registration] looking for network interces') + self.logger.debug('[Registration] looking for network interfaces') ip_address="" for interface in netifaces.interfaces(): if(str(interface) != "lo"):