mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
adtrustinstance: Move attribute definitions from setup to init method
Majority of the attributes set in the setup method can be set in the __init__ method where they are actually defined (and set to None). This is true for attributes that hold constant values and for attributes that have their values derived from api.env dictionary. Creates a new __setup_default_attributes method, that is called from within __init__ and setup (in case the passed values for hostname or domain do not correspond to that what is set in api.env, doing otherwise could cause unexpected behaviour). Part of: https://fedorahosted.org/freeipa/ticket/3479
This commit is contained in:
committed by
Martin Kosek
parent
d769b124b0
commit
ed3d184a7d
@@ -110,36 +110,72 @@ class ADTRUSTInstance(service.Service):
|
||||
FALLBACK_GROUP_NAME = u'Default SMB Group'
|
||||
|
||||
def __init__(self, fstore=None):
|
||||
self.fqdn = None
|
||||
self.ip_address = None
|
||||
self.realm = None
|
||||
self.domain_name = None
|
||||
self.netbios_name = None
|
||||
self.reset_netbios_name = None
|
||||
self.no_msdcs = None
|
||||
self.add_sids = None
|
||||
self.smbd_user = None
|
||||
self.suffix = DN()
|
||||
self.ldapi_socket = None
|
||||
self.smb_conf = None
|
||||
self.smb_dn = None
|
||||
self.smb_dn_pwd = None
|
||||
self.trust_dn = None
|
||||
self.smb_dom_dn = None
|
||||
self.sub_dict = None
|
||||
self.cifs_principal = None
|
||||
self.cifs_agent = None
|
||||
self.selinux_booleans = None
|
||||
self.rid_base = None
|
||||
self.secondary_rid_base = None
|
||||
|
||||
service.Service.__init__(self, "smb", service_desc="CIFS", dm_password=None, ldapi=True)
|
||||
self.fqdn = None
|
||||
self.realm = None
|
||||
self.domain_name = None
|
||||
|
||||
service.Service.__init__(self, "smb", service_desc="CIFS",
|
||||
dm_password=None, ldapi=True)
|
||||
|
||||
if fstore:
|
||||
self.fstore = fstore
|
||||
else:
|
||||
self.fstore = sysrestore.FileStore('/var/lib/ipa/sysrestore')
|
||||
|
||||
self.__setup_default_attributes()
|
||||
|
||||
def __setup_default_attributes(self):
|
||||
"""
|
||||
This method setups default attributes that are either constants, or
|
||||
based on api.env attributes, such as realm, hostname or domain name.
|
||||
"""
|
||||
|
||||
# Constants
|
||||
self.smb_conf = "/etc/samba/smb.conf"
|
||||
self.samba_keytab = "/etc/samba/samba.keytab"
|
||||
self.selinux_booleans = ["samba_portmapper"]
|
||||
self.cifs_hosts = []
|
||||
|
||||
# Values obtained from API.env
|
||||
self.fqdn = self.fqdn or api.env.host
|
||||
self.realm = self.realm or api.env.realm
|
||||
self.domain_name = self.domain_name or api.env.domain
|
||||
|
||||
self.cifs_principal = "cifs/" + self.fqdn + "@" + self.realm
|
||||
self.suffix = ipautil.realm_to_suffix(self.realm)
|
||||
self.ldapi_socket = "%%2fvar%%2frun%%2fslapd-%s.socket" % \
|
||||
realm_to_serverid(self.realm)
|
||||
|
||||
# DN definitions
|
||||
self.trust_dn = DN(api.env.container_trusts, self.suffix)
|
||||
|
||||
self.smb_dn = DN(('cn', 'adtrust agents'),
|
||||
('cn', 'sysaccounts'),
|
||||
('cn', 'etc'),
|
||||
self.suffix)
|
||||
|
||||
self.smb_dom_dn = DN(('cn', self.domain_name),
|
||||
api.env.container_cifsdomains,
|
||||
self.suffix)
|
||||
|
||||
self.cifs_agent = DN(('krbprincipalname', self.cifs_principal.lower()),
|
||||
api.env.container_service,
|
||||
self.suffix)
|
||||
|
||||
|
||||
def __gen_sid_string(self):
|
||||
sub_ids = struct.unpack("<LLL", os.urandom(12))
|
||||
return "S-1-5-21-%d-%d-%d" % (sub_ids[0], sub_ids[1], sub_ids[2])
|
||||
@@ -752,25 +788,9 @@ class ADTRUSTInstance(service.Service):
|
||||
self.add_sids = add_sids
|
||||
self.enable_compat = enable_compat
|
||||
self.smbd_user = smbd_user
|
||||
self.suffix = ipautil.realm_to_suffix(self.realm)
|
||||
self.ldapi_socket = "%%2fvar%%2frun%%2fslapd-%s.socket" % \
|
||||
realm_to_serverid(self.realm)
|
||||
|
||||
self.smb_conf = "/etc/samba/smb.conf"
|
||||
self.samba_keytab = "/etc/samba/samba.keytab"
|
||||
|
||||
self.smb_dn = DN(('cn', 'adtrust agents'), ('cn', 'sysaccounts'),
|
||||
('cn', 'etc'), self.suffix)
|
||||
|
||||
self.trust_dn = DN(api.env.container_trusts, self.suffix)
|
||||
self.smb_dom_dn = DN(('cn', self.domain_name),
|
||||
api.env.container_cifsdomains, self.suffix)
|
||||
self.cifs_principal = "cifs/" + self.fqdn + "@" + self.realm
|
||||
self.cifs_agent = DN(('krbprincipalname', self.cifs_principal.lower()),
|
||||
api.env.container_service,
|
||||
self.suffix)
|
||||
self.selinux_booleans = ["samba_portmapper"]
|
||||
self.cifs_hosts = list()
|
||||
# Setup constants and attributes derived from the values above
|
||||
self.__setup_default_attributes()
|
||||
|
||||
self.__setup_sub_dict()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user