Добавлен ключ коммандной строки '--netallow' (ввод рарзешенных сетей) к командам cl-setup, cl-update, cl-rebuild

git-svn-id: http://svn.calculate.ru/calculate2/calculate-server/trunk@1035 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
asamoukin 15 years ago
parent ae017f991e
commit be058061f6

@ -378,4 +378,18 @@ class fillVars(object, cl_base.glob_attr):
osNetAllow = self.Get("os_net_allow")
if osNetAllow:
return "%s, 127.0.0.0/8" %osNetAllow
return "127.0.0.0/8"
return "127.0.0.0/8"
def get_sr_samba_net_allow(self):
"""Доступные сети для сервиса Samba"""
netAllow = self.Get("os_net_allow")
if netAllow:
return netAllow
return ""
def get_sr_mail_net_allow(self):
"""Доступные сети для сервиса Mail"""
netAllow = self.Get("os_net_allow")
if netAllow:
return netAllow
return ""

@ -3511,7 +3511,7 @@ Unix service ...") %str(primaryMail))
%"Mail"
strPrompt = _("allow networks: ")
netAllow = self.clVars.Get("sr_mail_net_allow")
strNetAllow = self.clVars.Get("os_net_allow")
strNetAllow = ""
if netAllow:
strNetAllow = netAllow.replace(","," ")
allowNet = self.getUserAllowNetwork(strPrompt, strNetAllow)
@ -3529,8 +3529,9 @@ Unix service ...") %str(primaryMail))
forceOptions = True
# Создаем объект переменных
self.createClVars()
#self.clVars.printVars()
#return True
# Установка доступных сетей по умолчанию
self.clVars.Set("sr_mail_net_allow", self.clVars.Get("os_net_allow"),
True)
if self.clVars.Get("sr_unix_set") != "on":
self.printERROR(_("Unix service is not setuped"))
self.printWARNING(_("Setup Unix service"))
@ -3556,11 +3557,15 @@ Unix service ...") %str(primaryMail))
_("input 'yes'") +", "+ _("if not 'no'")
if not self.dialogYesNo(messDialog):
return True
if not self.getAllowNet():
return False
if options.has_key("netallow"):
# Получаем от пользователя доверительные сети
if not self.getAllowNet():
return False
else:
if not self.getAllowNet():
return False
if options.has_key("netallow"):
# Получаем от пользователя доверительные сети
if not self.getAllowNet():
return False
# делаем backup
# Проверим запущен ли ldap
if not self.getRunService("ldap"):
@ -3675,8 +3680,6 @@ Unix service ...") %str(primaryMail))
self.clVars.Write("sr_mail_host",mailHost,True,"local")
self.clVars.Write("sr_mail_type",
self.clVars.Get("sr_mail_type"),True,"local")
self.clVars.Delete("sr_mail_send_crypt","",True)
self.clVars.Write("sr_mail_crypt",
self.clVars.Get("sr_mail_crypt"),True,"local")
self.clVars.Write("sr_mail_net_allow",
@ -4772,7 +4775,7 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
%"Samba"
strPrompt = _("allow networks: ")
netAllow = self.clVars.Get("sr_samba_net_allow")
strNetAllow = self.clVars.Get("os_net_allow")
strNetAllow = ""
if netAllow:
strNetAllow = netAllow.replace(","," ")
allowNet = self.getUserAllowNetwork(strPrompt, strNetAllow)
@ -4788,6 +4791,9 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
forceOptions = False
# Cоздаем объект переменные
self.createClVars()
# Установка доступных сетей по умолчанию
self.clVars.Set("sr_samba_net_allow", self.clVars.Get("os_net_allow"),
True)
if options.has_key("f"):
forceOptions = True
if self.clVars.Get("sr_unix_set") != "on":
@ -4813,13 +4819,15 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
_("input 'yes'") +", "+ _("if not 'no'")
if not self.dialogYesNo(messDialog):
return True
# Получаем от пользователя доверительные сети
if not self.getAllowNet():
return False
if options.has_key("netallow"):
# Получаем от пользователя доверительные сети
if not self.getAllowNet():
return False
else:
# Получаем от пользователя доверительные сети
if not self.getAllowNet():
return False
if options.has_key("netallow"):
# Получаем от пользователя доверительные сети
if not self.getAllowNet():
return False
# делаем backup
# Проверим запущен ли ldap
if not self.getRunService("ldap"):
@ -5144,6 +5152,10 @@ class servLdap(shareLdap):
self.sslJabberFile = "/etc/jabber/ssl.pem"
# директория для хранения временных файлов
self.tmpEnvDir = "/tmp/tmp_calculate"
# Сервис Samba
self.servSambaObj = servSamba()
# Сервис Mail
self.servMailObj = servMail()
def savePrivateFile(self, fileName, data):
"""Записать файл с правами 0600"""
@ -5225,6 +5237,7 @@ outdated. If the backup is obsolete, use cl-backup."))
return True
# В случае создания сервера репликации из файла backup c
# другого компьютера
replServices = []
if options.has_key("repl"):
# Находим имена сервисов репликации для этого сервера
# и инициализируются переменные
@ -5246,11 +5259,17 @@ outdated. If the backup is obsolete, use cl-backup."))
if not self.restoreServer(False):
return False
verbose = False
opt = {}
if options.has_key("v"):
opt = {'v':''}
else:
opt = {}
if not self.updateServer(opt, "all"):
opt['v'] = ''
if options.has_key("netallow"):
opt['netallow'] = ''
# Сервисы для которых не будет задаваться вопрос о доступных сетях
# при включенной опции netallow
noInputAllowNetServices = []
if "samba" in replServices:
noInputAllowNetServices = ["samba"]
if not self.updateServer(opt, "all", False, noInputAllowNetServices):
return False
self.printOK(_("Rebuilding all services") + " ...")
return True
@ -5259,7 +5278,8 @@ outdated. If the backup is obsolete, use cl-backup."))
"""Перегенерирует конфигурационные файлы, и базу данных LDAP"""
return self.rebuildServer(options)
def updateServer(self, options, serviceUpdate, clVars=False):
def updateServer(self, options, serviceUpdate, clVars=False,
noInputAllowNetServices=[]):
"""Перегенерируем конфигурационные файлы
определенного или всех сервисов
@ -5341,25 +5361,34 @@ outdated. If the backup is obsolete, use cl-backup."))
for service in servInstalled:
if service == "ldap":
continue
# Добавляем файл в директорию share в случае репликации
# сервиса Samba
sharePath = self.clVars.Get("sr_samba_share_path")
# если нет share то создадим
if not os.path.exists(sharePath):
os.makedirs(sharePath)
# Создадим иконку для share
fileTxt = "[Desktop Entry]\nIcon=folder-bookmarks"
fileDirectory = os.path.join(sharePath,".directory")
if not os.path.exists(fileDirectory):
uid = 0
gid = 0
if not self.createUserFile(fileDirectory, fileTxt, uid,
gid):
flagError = True
break
# Файл для определения к какому из серверов подключился клиент
fileReplRun = os.path.join(sharePath,".reprun")
if service == "samba":
# Получаем от пользователя доверительные сети
# для сервиса Samba
if options.has_key("netallow") and\
not service in noInputAllowNetServices:
self.servSambaObj.clVars = self.clVars
if not self.servSambaObj.getAllowNet():
flagError = True
break
# Добавляем файл в директорию share в случае репликации
# сервиса Samba
sharePath = self.clVars.Get("sr_samba_share_path")
# Файл для определения к какому из серверов
# подключился клиент
fileReplRun = os.path.join(sharePath,".reprun")
# если нет share то создадим
if not os.path.exists(sharePath):
os.makedirs(sharePath)
# Создадим иконку для share
fileTxt = "[Desktop Entry]\nIcon=folder-bookmarks"
fileDirectory = os.path.join(sharePath,".directory")
if not os.path.exists(fileDirectory):
uid = 0
gid = 0
if not self.createUserFile(fileDirectory, fileTxt, uid,
gid):
flagError = True
break
if self.clVars.Get("ld_repl_samba_set") == "on":
if not os.path.exists(fileReplRun):
# Создаем файл
@ -5373,6 +5402,15 @@ it was added by the calculate-server")
else:
if os.path.exists(fileReplRun):
os.remove(fileReplRun)
if service == "mail":
# Получаем от пользователя доверительные сети
# для сервиса Mail
if options.has_key("netallow") and\
not service in noInputAllowNetServices:
self.servMailObj.clVars = self.clVars
if not self.servMailObj.getAllowNet():
flagError = True
break
if not flagError:
files = self.applyProfilesFromService(service, verbose)
if not files:
@ -5436,12 +5474,20 @@ it was added by the calculate-server")
self.clVars.Write("sr_mail_crypt",
self.clVars.Get("sr_mail_crypt"),
True,"local")
self.clVars.Write("sr_mail_net_allow",
self.clVars.Get("sr_mail_net_allow"),
True,"local")
#запишем переменные для клиента
if self.clVars.Get("sr_mail_type") == "all":
self.clVars.Set("sr_mail_type","imap")
clientVars = ["sr_mail_type", "sr_mail_crypt"]
if not self.saveVarsClient(clientVars):
return False
# Переменные для Samba
if "samba" in servInstalled and serviceUpdate in ["all","samba"]:
self.clVars.Write("sr_samba_net_allow",
self.clVars.Get("sr_samba_net_allow"),
True,"local")
if flagError:
return False
else:
@ -6836,6 +6882,11 @@ the password will be changed only for Samba account")
'helpChapter':_("Samba service options"),
'help':_("netbios name, default hostname")
},
{'progAccess':(6,),
'longOption':"netallow",
'helpChapter':_("Samba service options"),
'help':_("enter the allowed ip addresses and network")
},
{'progAccess':(6,),
'shortOption':"w",
'optVal':"WORKGROUP",
@ -6849,6 +6900,11 @@ the password will be changed only for Samba account")
'helpChapter':_("Mail service options"),
'help':_("mail host, default - hostname")
},
{'progAccess':(6,),
'longOption':"netallow",
'helpChapter':_("Mail service options"),
'help':_("enter the allowed ip addresses and network")
},
{'progAccess':(6,),
'shortOption':"t",
'optVal':"TYPE",
@ -6973,12 +7029,28 @@ the password will be changed only for Samba account")
'helpChapter':_("Mail service options"),
'help':_("encryption type - 'none', 'tls'")
},
{'progAccess':(9,),
'longOption':"netallow",
'helpChapter':_("Mail service options"),
'help':_("enter the allowed ip addresses and network")
},
{'progAccess':(9,),
'longOption':"netallow",
'helpChapter':_("Samba service options"),
'help':_("enter the allowed ip addresses and network")
},
{'progAccess':(9,10),
'shortOption':"v",
'longOption':"verbose",
'helpChapter':_("Common options"),
'help':_("display additional information")
},
{'progAccess':(10,),
'longOption':"netallow",
'helpChapter':_("Common options"),
'help':_("enter the allowed ip addresses and network\
for installed services")
},
{'progAccess':(10,),
'longOption':"repl",
'helpChapter':_("Common options"),

Loading…
Cancel
Save