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

# Copyright 2009-2010 Mir Calculate. http://www.calculate-linux.org
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

import sys
import os
sys.path.insert(0,os.path.abspath('/usr/lib/calculate/calculate-lib/pym'))
sys.path.insert(0,os.path.abspath('/usr/lib/calculate/calculate-server/pym'))
import cl_base
# Логгирование
import cl_log
tr = cl_base.lang()
tr.setGlobalDomain('cl_server')
tr.setLanguage(sys.modules[__name__])
import cl_ldap
if __name__ == "__main__":
    ldapObj = cl_ldap.cl_ldap("dhcp")
    optObj = cl_ldap.tsOpt(ldapObj,[],False)
    flagError = True
    if not optObj.flagHelp:
        obj = cl_ldap.servDhcp()
        logFile = obj.errorLogFile
        logFullFile = os.path.join(cl_log.log.logDir,logFile)
        user = "dhcp"
        uidAndGid = obj.getUserUidAndGid(user)
        if not uidAndGid:
            sys.exit(1)
        uid, gid = uidAndGid
        if os.getuid() == 0:
            # Меняем владельца процесса на dhcp
            try:
                os.setgid(gid)
                os.setuid(uid)
            except:
                print(_("ERROR: Can not set owner") + \
                        " (dhcp:dhcp uid=%s,gid=%s) "%(uid, gid) +\
                        _("the this process"))
                sys.exit(1)
        if os.getuid() != uid:
            print(_("ERROR: Owner this process not dhcp or root"))
            sys.exit(1)
        if os.access(logFullFile, os.W_OK):
            logObj = cl_log.log(logFile)
        else:
            logObj = False
        if obj.addDNSRecordServer(optObj.opt, logObj):
            flagError = False
    if flagError:
        sys.exit(1)
    else:
        sys.exit(0) 
 
