move realm_to_serverid to installutils module

To avoid cyclic imports realm_to_serverid function had to be moved to
installutils from dsinstance.

Required for: https://fedorahosted.org/freeipa/ticket/4925

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
This commit is contained in:
Martin Basti 2015-04-27 14:42:31 +02:00 committed by Petr Vobornik
parent 978298882b
commit 522cbb23f1
16 changed files with 43 additions and 37 deletions

View File

@ -284,7 +284,7 @@ def install_master(safe_options, options):
check_ca() check_ca()
dirname = dsinstance.config_dirname( dirname = dsinstance.config_dirname(
dsinstance.realm_to_serverid(realm_name)) installutils.realm_to_serverid(realm_name))
cadb = certs.CertDB(realm_name, subject_base=subject_base) cadb = certs.CertDB(realm_name, subject_base=subject_base)
dsdb = certs.CertDB(realm_name, nssdir=dirname, subject_base=subject_base) dsdb = certs.CertDB(realm_name, nssdir=dirname, subject_base=subject_base)

View File

@ -544,7 +544,8 @@ def main():
fd.write("realm=%s\n" % config.realm_name) fd.write("realm=%s\n" % config.realm_name)
fd.write("domain=%s\n" % config.domain_name) fd.write("domain=%s\n" % config.domain_name)
fd.write("xmlrpc_uri=https://%s/ipa/xml\n" % ipautil.format_netloc(config.host_name)) fd.write("xmlrpc_uri=https://%s/ipa/xml\n" % ipautil.format_netloc(config.host_name))
fd.write("ldap_uri=ldapi://%%2fvar%%2frun%%2fslapd-%s.socket\n" % dsinstance.realm_to_serverid(config.realm_name)) fd.write("ldap_uri=ldapi://%%2fvar%%2frun%%2fslapd-%s.socket\n" %
installutils.realm_to_serverid(config.realm_name))
if ipautil.file_exists(config.dir + "/cacert.p12"): if ipautil.file_exists(config.dir + "/cacert.p12"):
fd.write("enable_ra=True\n") fd.write("enable_ra=True\n")
fd.write("ra_plugin=dogtag\n") fd.write("ra_plugin=dogtag\n")

View File

@ -655,7 +655,8 @@ def uninstall():
'mean your system hasn\'t be restored to its pre-installation state.' % SYSRESTORE_DIR_PATH) 'mean your system hasn\'t be restored to its pre-installation state.' % SYSRESTORE_DIR_PATH)
# Note that this name will be wrong after the first uninstall. # Note that this name will be wrong after the first uninstall.
dirname = dsinstance.config_dirname(dsinstance.realm_to_serverid(api.env.realm)) dirname = dsinstance.config_dirname(
installutils.realm_to_serverid(api.env.realm))
dirs = [dirname, dogtag_constants.ALIAS_DIR, certs.NSS_DIR] dirs = [dirname, dogtag_constants.ALIAS_DIR, certs.NSS_DIR]
ids = certmonger.check_state(dirs) ids = certmonger.check_state(dirs)
if ids: if ids:
@ -666,7 +667,7 @@ def uninstall():
def set_subject_in_config(realm_name, dm_password, suffix, subject_base): def set_subject_in_config(realm_name, dm_password, suffix, subject_base):
ldapuri = 'ldapi://%%2fvar%%2frun%%2fslapd-%s.socket' % ( ldapuri = 'ldapi://%%2fvar%%2frun%%2fslapd-%s.socket' % (
dsinstance.realm_to_serverid(realm_name) installutils.realm_to_serverid(realm_name)
) )
try: try:
conn = ldap2(shared_instance=False, ldap_uri=ldapuri, base_dn=suffix) conn = ldap2(shared_instance=False, ldap_uri=ldapuri, base_dn=suffix)
@ -1134,7 +1135,8 @@ def main():
fd.write("realm=%s\n" % realm_name) fd.write("realm=%s\n" % realm_name)
fd.write("domain=%s\n" % domain_name) fd.write("domain=%s\n" % domain_name)
fd.write("xmlrpc_uri=https://%s/ipa/xml\n" % format_netloc(host_name)) fd.write("xmlrpc_uri=https://%s/ipa/xml\n" % format_netloc(host_name))
fd.write("ldap_uri=ldapi://%%2fvar%%2frun%%2fslapd-%s.socket\n" % dsinstance.realm_to_serverid(realm_name)) fd.write("ldap_uri=ldapi://%%2fvar%%2frun%%2fslapd-%s.socket\n" %
installutils.realm_to_serverid(realm_name))
if setup_ca: if setup_ca:
fd.write("enable_ra=True\n") fd.write("enable_ra=True\n")
fd.write("ra_plugin=dogtag\n") fd.write("ra_plugin=dogtag\n")

View File

@ -1132,7 +1132,7 @@ def fix_schema_file_syntax():
root_logger.info('Syntax already fixed') root_logger.info('Syntax already fixed')
return return
serverid = dsinstance.realm_to_serverid(api.env.realm) serverid = installutils.realm_to_serverid(api.env.realm)
ds_dir = dsinstance.config_dirname(serverid) ds_dir = dsinstance.config_dirname(serverid)
# 1. 60ipadns.ldif: Add parenthesis to idnsRecord # 1. 60ipadns.ldif: Add parenthesis to idnsRecord
@ -1191,7 +1191,7 @@ def remove_ds_ra_cert(subject_base):
return return
dbdir = dsinstance.config_dirname( dbdir = dsinstance.config_dirname(
dsinstance.realm_to_serverid(api.env.realm)) installutils.realm_to_serverid(api.env.realm))
dsdb = certs.CertDB(api.env.realm, nssdir=dbdir, subject_base=subject_base) dsdb = certs.CertDB(api.env.realm, nssdir=dbdir, subject_base=subject_base)
nickname = 'CN=IPA RA,%s' % subject_base nickname = 'CN=IPA RA,%s' % subject_base
@ -1309,7 +1309,7 @@ def main():
'ca.crl.MasterCRL.enableCRLUpdates', '=') 'ca.crl.MasterCRL.enableCRLUpdates', '=')
sub_dict['CLONE']='#' if crl.lower() == 'true' else '' sub_dict['CLONE']='#' if crl.lower() == 'true' else ''
ds_serverid = dsinstance.realm_to_serverid(api.env.realm) ds_serverid = installutils.realm_to_serverid(api.env.realm)
ds_dirname = dsinstance.config_dirname(ds_serverid) ds_dirname = dsinstance.config_dirname(ds_serverid)
upgrade(sub_dict, paths.HTTPD_IPA_CONF, ipautil.SHARE_DIR + "ipa.conf") upgrade(sub_dict, paths.HTTPD_IPA_CONF, ipautil.SHARE_DIR + "ipa.conf")

View File

@ -25,7 +25,7 @@ import json
import ldapurl import ldapurl
from ipaserver.install import service, installutils from ipaserver.install import service, installutils
from ipaserver.install.dsinstance import config_dirname, realm_to_serverid from ipaserver.install.dsinstance import config_dirname
from ipaserver.install.installutils import is_ipa_configured, ScriptError from ipaserver.install.installutils import is_ipa_configured, ScriptError
from ipalib import api, errors from ipalib import api, errors
from ipapython.ipaldap import IPAdmin from ipapython.ipaldap import IPAdmin
@ -53,7 +53,7 @@ def is_dirsrv_debugging_enabled():
returns True or False returns True or False
""" """
debugging = False debugging = False
serverid = realm_to_serverid(api.env.realm) serverid = installutils.realm_to_serverid(api.env.realm)
dselist = [config_dirname(serverid)] dselist = [config_dirname(serverid)]
for dse in dselist: for dse in dselist:
try: try:

View File

@ -28,7 +28,6 @@ import re
from ipaserver.install import service from ipaserver.install import service
from ipaserver.install import installutils from ipaserver.install import installutils
from ipaserver.install.dsinstance import realm_to_serverid
from ipaserver.install.bindinstance import get_rr, add_rr, del_rr, \ from ipaserver.install.bindinstance import get_rr, add_rr, del_rr, \
dns_zone_exists dns_zone_exists
from ipalib import errors, api from ipalib import errors, api
@ -155,7 +154,7 @@ class ADTRUSTInstance(service.Service):
self.cifs_principal = "cifs/" + self.fqdn + "@" + self.realm self.cifs_principal = "cifs/" + self.fqdn + "@" + self.realm
self.suffix = ipautil.realm_to_suffix(self.realm) self.suffix = ipautil.realm_to_suffix(self.realm)
self.ldapi_socket = "%%2fvar%%2frun%%2fslapd-%s.socket" % \ self.ldapi_socket = "%%2fvar%%2frun%%2fslapd-%s.socket" % \
realm_to_serverid(self.realm) installutils.realm_to_serverid(self.realm)
# DN definitions # DN definitions
self.trust_dn = DN(api.env.container_trusts, self.suffix) self.trust_dn = DN(api.env.container_trusts, self.suffix)

View File

@ -30,7 +30,6 @@ import ldap
import installutils import installutils
import service import service
from ipaserver.plugins import ldap2 from ipaserver.plugins import ldap2
from ipaserver.install.dsinstance import realm_to_serverid
from ipaserver.install.cainstance import IPA_CA_RECORD from ipaserver.install.cainstance import IPA_CA_RECORD
from ipapython import sysrestore, ipautil, ipaldap from ipapython import sysrestore, ipautil, ipaldap
from ipapython.ipa_log_manager import * from ipapython.ipa_log_manager import *
@ -727,7 +726,7 @@ class BindInstance(service.Service):
DOMAIN=self.domain, DOMAIN=self.domain,
HOST=self.host, HOST=self.host,
REALM=self.realm, REALM=self.realm,
SERVER_ID=realm_to_serverid(self.realm), SERVER_ID=installutils.realm_to_serverid(self.realm),
FORWARDERS=fwds, FORWARDERS=fwds,
SUFFIX=self.suffix, SUFFIX=self.suffix,
OPTIONAL_NTP=optional_ntp, OPTIONAL_NTP=optional_ntp,

View File

@ -1771,7 +1771,7 @@ def update_people_entry(dercert):
issuer = x509.get_issuer(dercert, datatype=x509.DER) issuer = x509.get_issuer(dercert, datatype=x509.DER)
attempts = 0 attempts = 0
server_id = dsinstance.realm_to_serverid(api.env.realm) server_id = installutils.realm_to_serverid(api.env.realm)
dogtag_uri = 'ldapi://%%2fvar%%2frun%%2fslapd-%s.socket' % server_id dogtag_uri = 'ldapi://%%2fvar%%2frun%%2fslapd-%s.socket' % server_id
updated = False updated = False

View File

@ -73,9 +73,6 @@ def find_server_root():
else: else:
return paths.USR_LIB_DIRSRV return paths.USR_LIB_DIRSRV
def realm_to_serverid(realm_name):
return "-".join(realm_name.split("."))
def config_dirname(serverid): def config_dirname(serverid):
return (paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid) + "/" return (paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid) + "/"
@ -266,7 +263,7 @@ class DsInstance(service.Service):
def init_info(self, realm_name, fqdn, domain_name, dm_password, def init_info(self, realm_name, fqdn, domain_name, dm_password,
subject_base, idstart, idmax, pkcs12_info, ca_file=None): subject_base, idstart, idmax, pkcs12_info, ca_file=None):
self.realm = realm_name.upper() self.realm = realm_name.upper()
self.serverid = realm_to_serverid(self.realm) self.serverid = installutils.realm_to_serverid(self.realm)
self.suffix = ipautil.realm_to_suffix(self.realm) self.suffix = ipautil.realm_to_suffix(self.realm)
self.fqdn = fqdn self.fqdn = fqdn
self.dm_password = dm_password self.dm_password = dm_password
@ -844,7 +841,7 @@ class DsInstance(service.Service):
# shutdown the server # shutdown the server
self.stop() self.stop()
dirname = config_dirname(realm_to_serverid(self.realm)) dirname = config_dirname(installutils.realm_to_serverid(self.realm))
certdb = certs.CertDB(self.realm, nssdir=dirname, subject_base=self.subject_base) certdb = certs.CertDB(self.realm, nssdir=dirname, subject_base=self.subject_base)
if not cacert_name or len(cacert_name) == 0: if not cacert_name or len(cacert_name) == 0:
cacert_name = "Imported CA" cacert_name = "Imported CA"
@ -981,7 +978,7 @@ class DsInstance(service.Service):
'certmap.conf') 'certmap.conf')
certmap_dir = config_dirname( certmap_dir = config_dirname(
realm_to_serverid(api.env.realm) installutils.realm_to_serverid(api.env.realm)
) )
try: try:
with open(os.path.join(certmap_dir, 'certmap.conf')) as f: with open(os.path.join(certmap_dir, 'certmap.conf')) as f:

View File

@ -1105,3 +1105,6 @@ def check_version():
) )
else: else:
raise UpgradeMissingVersionError("no data_version stored") raise UpgradeMissingVersionError("no data_version stored")
def realm_to_serverid(realm_name):
return "-".join(realm_name.split("."))

View File

@ -34,7 +34,7 @@ from ipapython.ipautil import run, write_tmp_file
from ipapython import admintool from ipapython import admintool
from ipapython.config import IPAOptionParser from ipapython.config import IPAOptionParser
from ipapython.dn import DN from ipapython.dn import DN
from ipaserver.install.dsinstance import realm_to_serverid, DS_USER from ipaserver.install.dsinstance import DS_USER
from ipaserver.install.replication import wait_for_task from ipaserver.install.replication import wait_for_task
from ipaserver.install import installutils from ipaserver.install import installutils
from ipapython import ipaldap from ipapython import ipaldap
@ -290,7 +290,9 @@ class Backup(admintool.AdminTool):
self.log.info('Stopping IPA services') self.log.info('Stopping IPA services')
run(['ipactl', 'stop']) run(['ipactl', 'stop'])
for instance in [realm_to_serverid(api.env.realm), 'PKI-IPA']: for instance in [
installutils.realm_to_serverid(api.env.realm), 'PKI-IPA'
]:
if os.path.exists(paths.VAR_LIB_SLAPD_INSTANCE_DIR_TEMPLATE % instance): if os.path.exists(paths.VAR_LIB_SLAPD_INSTANCE_DIR_TEMPLATE % instance):
if os.path.exists(paths.SLAPD_INSTANCE_DB_DIR_TEMPLATE % (instance, 'ipaca')): if os.path.exists(paths.SLAPD_INSTANCE_DB_DIR_TEMPLATE % (instance, 'ipaca')):
self.db2ldif(instance, 'ipaca', online=options.online) self.db2ldif(instance, 'ipaca', online=options.online)
@ -323,10 +325,12 @@ class Backup(admintool.AdminTool):
NOTE: this adds some things that may not get backed up, like the PKI-IPA NOTE: this adds some things that may not get backed up, like the PKI-IPA
instance. instance.
''' '''
serverid = installutils.realm_to_serverid(api.env.realm)
for dir in [ for dir in [
paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % realm_to_serverid(api.env.realm), paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid,
paths.VAR_LIB_DIRSRV_INSTANCE_SCRIPTS_TEMPLATE % realm_to_serverid(api.env.realm), paths.VAR_LIB_DIRSRV_INSTANCE_SCRIPTS_TEMPLATE % serverid,
paths.VAR_LIB_SLAPD_INSTANCE_DIR_TEMPLATE % realm_to_serverid(api.env.realm), paths.VAR_LIB_SLAPD_INSTANCE_DIR_TEMPLATE % serverid,
paths.VAR_LIB_SLAPD_PKI_IPA_DIR_TEMPLATE, paths.VAR_LIB_SLAPD_PKI_IPA_DIR_TEMPLATE,
paths.USR_LIB_SLAPD_PKI_IPA_DIR, paths.USR_LIB_SLAPD_PKI_IPA_DIR,
paths.ETC_SLAPD_PKI_IPA_DIR, paths.ETC_SLAPD_PKI_IPA_DIR,
@ -337,13 +341,14 @@ class Backup(admintool.AdminTool):
self.dirs.append(dir) self.dirs.append(dir)
for file in [ for file in [
paths.SYSCONFIG_DIRSRV_INSTANCE % realm_to_serverid(api.env.realm), paths.SYSCONFIG_DIRSRV_INSTANCE % serverid,
paths.SYSCONFIG_DIRSRV_PKI_IPA_DIR]: paths.SYSCONFIG_DIRSRV_PKI_IPA_DIR]:
if os.path.exists(file): if os.path.exists(file):
self.files.append(file) self.files.append(file)
for log in [ for log in [
paths.VAR_LOG_DIRSRV_INSTANCE_TEMPLATE % realm_to_serverid(api.env.realm),]: paths.VAR_LOG_DIRSRV_INSTANCE_TEMPLATE % serverid,
]:
self.logs.append(log) self.logs.append(log)

View File

@ -162,7 +162,7 @@ class ReplicaPrepare(admintool.AdminTool):
raise admintool.ScriptError("You can't create a replica on itself") raise admintool.ScriptError("You can't create a replica on itself")
config_dir = dsinstance.config_dirname( config_dir = dsinstance.config_dirname(
dsinstance.realm_to_serverid(api.env.realm)) installutils.realm_to_serverid(api.env.realm))
if not ipautil.dir_exists(config_dir): if not ipautil.dir_exists(config_dir):
raise admintool.ScriptError( raise admintool.ScriptError(
"could not find directory instance: %s" % config_dir) "could not find directory instance: %s" % config_dir)

View File

@ -32,8 +32,7 @@ from ipapython import version, ipautil, certdb, dogtag
from ipapython.ipautil import run, user_input from ipapython.ipautil import run, user_input
from ipapython import admintool from ipapython import admintool
from ipapython.dn import DN from ipapython.dn import DN
from ipaserver.install.dsinstance import (realm_to_serverid, from ipaserver.install.dsinstance import create_ds_user, DS_USER
create_ds_user, DS_USER)
from ipaserver.install.cainstance import PKI_USER, create_ca_user from ipaserver.install.cainstance import PKI_USER, create_ca_user
from ipaserver.install.replication import (wait_for_task, ReplicationManager, from ipaserver.install.replication import (wait_for_task, ReplicationManager,
get_cs_replication_manager) get_cs_replication_manager)
@ -791,7 +790,7 @@ class Restore(admintool.AdminTool):
httpinstance.HTTPInstance().stop_tracking_certificates() httpinstance.HTTPInstance().stop_tracking_certificates()
try: try:
dsinstance.DsInstance().stop_tracking_certificates( dsinstance.DsInstance().stop_tracking_certificates(
realm_to_serverid(api.env.realm)) installutils.realm_to_serverid(api.env.realm))
except OSError: except OSError:
# When IPA is not installed, DS NSS DB does not exist # When IPA is not installed, DS NSS DB does not exist
pass pass
@ -832,5 +831,7 @@ class Restore(admintool.AdminTool):
api.bootstrap(in_server=False, context='restore', **overrides) api.bootstrap(in_server=False, context='restore', **overrides)
api.finalize() api.finalize()
self.instances = [realm_to_serverid(api.env.realm), 'PKI-IPA'] self.instances = [
installutils.realm_to_serverid(api.env.realm), 'PKI-IPA'
]
self.backends = ['userRoot', 'ipaca'] self.backends = ['userRoot', 'ipaca']

View File

@ -114,7 +114,7 @@ class ServerCertInstall(admintool.AdminTool):
conn.disconnect() conn.disconnect()
def install_dirsrv_cert(self): def install_dirsrv_cert(self):
serverid = dsinstance.realm_to_serverid(api.env.realm) serverid = installutils.realm_to_serverid(api.env.realm)
dirname = dsinstance.config_dirname(serverid) dirname = dsinstance.config_dirname(serverid)
conn = api.Backend.ldap2 conn = api.Backend.ldap2

View File

@ -235,7 +235,7 @@ class KrbInstance(service.Service):
SUFFIX=self.suffix, SUFFIX=self.suffix,
DOMAIN=self.domain, DOMAIN=self.domain,
HOST=self.host, HOST=self.host,
SERVER_ID=dsinstance.realm_to_serverid(self.realm), SERVER_ID=installutils.realm_to_serverid(self.realm),
REALM=self.realm) REALM=self.realm)
# IPA server/KDC is not a subdomain of default domain # IPA server/KDC is not a subdomain of default domain

View File

@ -26,7 +26,6 @@ from ipaplatform.paths import paths
from ipapython.ipa_log_manager import * from ipapython.ipa_log_manager import *
from ipaserver.install import installutils from ipaserver.install import installutils
from ipaserver.install import dsinstance
from ipaserver.install import schemaupdate from ipaserver.install import schemaupdate
from ipaserver.install import ldapupdate from ipaserver.install import ldapupdate
from ipaserver.install import service from ipaserver.install import service
@ -51,7 +50,7 @@ class IPAUpgrade(service.Service):
h = "%02x" % rand.randint(0,255) h = "%02x" % rand.randint(0,255)
ext += h ext += h
service.Service.__init__(self, "dirsrv") service.Service.__init__(self, "dirsrv")
serverid = dsinstance.realm_to_serverid(realm_name) serverid = installutils.realm_to_serverid(realm_name)
self.filename = '%s/%s' % (paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid, DSE) self.filename = '%s/%s' % (paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid, DSE)
self.savefilename = '%s/%s.ipa.%s' % (paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid, DSE, ext) self.savefilename = '%s/%s.ipa.%s' % (paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % serverid, DSE, ext)
self.files = files self.files = files