#!/usr/bin/python
# -*- coding: utf-8 -*-

# Filename: ik2io.py

__module_name__= "Ikasle To Ikasle Ohia"
__module_version__= "1.0"
__module_description__= "Ikasle Ohien Posta Zerrendal Sortzeko Aplikazioa"
__module_author__= "Alfredo Barrainkua Zallo"


"""
################################################################################################################

#				Ikasle To Ikasle Ohia

################################################################################################################
#
# 1.0 - 2009-03-15
#	Hasierako bertsioa ol2z programan oinarriturik
#
###############################################################################################################
"""

import sys
import string
import readline
import commands
import grp
from datetime import date
from time import time, localtime, strftime
import ldap


# Skriptaren izena
PRGNAME = "ik2io"


# Fitxategien izena...
gaur_d = date.today()
LOGFILE = PRGNAME + "-" + gaur_d.strftime("%Y%m%d") + "-" + strftime("%H%M", localtime()) + ".log"
PROVFILE = PRGNAME + "-" + gaur_d.strftime("%Y%m%d") + "-" + strftime("%H%M", localtime()) + ".prov"

# Domeinu eta azpidomeinuen izenak
DOMEINUA = "iurreta-institutua.net"


# Konexiorako datuak
Server = "ldap://10.22.x.y:389"
BindName = "*******@iurreta-institutua.net"
Password = "***********"
BaseDN = "ou=Groups,dc=iurreta-institutua,dc=net"


# Bilaketa datuak
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = None

# Erregistro fitxategiak ireki
logfile = open(LOGFILE, "w")
provfile = open(PROVFILE, "w")

logfile.write("####################################################################################################\n")
logfile.write("#                                Ikasle Ohien Posta Zerrendak       		                   #\n")
logfile.write("####################################################################################################\n")
logfile.write("Data eta ordua: " + gaur_d.strftime("%Y-%m-%d") + "   " + strftime("%H:%M", localtime()) + "\n")


# OpenLDAPera konektatu
try:
    l = ldap.initialize(Server)
except:
    print "Errorea konektatzean"
    logfile.write("Errorea konektatzean\n")

l.protocol_version = ldap.VERSION3

try:
    l.simple_bind(BindName, Password)
except:
    print "Errorea direktorioarekin batzean"
    logfile.write("Errorea direktorioarekin batzean\n")


logfile.write("----------------------------------------\n")

# Ikasle ohien taldeak
taldeak = ['io-administraritza', 'io-automozioa', 'io-elektronika', 'io-informatika', 'io-metala']

for i in range(len(taldeak)) :
    print "Taldea: >>>>>>> " + taldeak[i]
    searchFilter = "cn=" + taldeak[i]
    res = l.search_s(BaseDN, searchScope, searchFilter, retrieveAttributes)

#    print res[0][0]
    DATUAK = res[0][1]
    try :
	partaidekop = len (DATUAK['memberUid'])
    except :
	print "0"
	logfile.write(taldeak[i] + " taldeak ez du partaiderik\n")
	continue

    print partaidekop
    for j in range(len(DATUAK['memberUid'])) :
	print DATUAK['memberUid'][j]
	provfile.write("adlm " + taldeak[i] + "@" + DOMEINUA + " " + DATUAK['memberUid'][j] + "@" + DOMEINUA+ "\n")
	logfile.write(taldeak[i] + " :: " + DATUAK['memberUid'][j] + "\n")

l.unbind_s()

logfile.close()
provfile.close()

sys.exit(0)

