Commit Graph

9063 Commits

Author SHA1 Message Date
Petr Viktorin
840de9bb48 Split ipa-client/ into ipaclient/ (Python library) and client/ (C, scripts)
Make ipaclient a Python library like ipapython, ipalib, etc.
Use setup.py instead of autotools for installing it.

Move C client tools, Python scripts, and man pages, to client/.

Remove old, empty or outdated, boilerplate files (NEWS, README, AUTHORS).
Remove /setup-client.py (ipalib/setup.py should be used instead).

Update Makefiles and the spec file accordingly.

https://fedorahosted.org/freeipa/ticket/5638

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2016-01-27 12:09:02 +01:00
Martin Babinsky
7dae5c09d5 disable RA plugins when promoting a replica from CA-less master
There is no point in setting 'enable_ra' to True in IPA config when the
replica is promoted from CA-less master. The installer should set
'enable_ra' to False and unset 'ra_plugin' directive in this case.

https://fedorahosted.org/freeipa/ticket/5626

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2016-01-27 08:21:59 +01:00
Filip Skola
ec75b01f17 Refactor test_attr
Reviewed-By: Milan Kubik <mkubik@redhat.com>
2016-01-26 19:04:38 +01:00
Filip Skola
9ba5bf03a8 Refactor test_replace
Reviewed-By: Milan Kubik <mkubik@redhat.com>
2016-01-26 19:03:15 +01:00
Filip Skola
3d1adb3255 Refactor test_user_plugin, use UserTracker for tests
Reviewed-By: Ales 'alich' Marecek <amarecek@redhat.com>
Reviewed-By: Milan Kubik <mkubik@redhat.com>
2016-01-25 16:04:32 +01:00
Petr Vobornik
b0894a8493 stop installer when setup-ds.pl fail
DS instance install should fail immediately after setup-ds.pl fail.

tickets: #2539, #3720, #5607

https://fedorahosted.org/freeipa/ticket/2539

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-25 14:17:48 +01:00
Martin Basti
cdf08a0a86 Fix DNSSEC test: add glue record
Missing glue record causes test failure in cases when DNS zone was not
managed by IPA DNS

Reviewed-By: Petr Spacek <pspacek@redhat.com>
2016-01-25 13:27:38 +01:00
Jan Cholasta
6896035af2 spec file: package python-ipalib as noarch
https://fedorahosted.org/freeipa/ticket/5596

Reviewed-By: Petr Viktorin <pviktori@redhat.com>
2016-01-25 12:30:03 +01:00
Martin Babinsky
f2b22ec017 correctly set LDAP bind related attributes when setting up replication
when CA replica configures 'cn=replica,cn=o\=ipaca,cn=mapping tree,cn=config'
entry on remote master during replica installation, the 'nsds5replicabinddn'
and 'nsds5replicabinddngroup' attributes are not correctly updated when this
entry already existed on the master (e.g. when existing domain-level 0
topology was promoted to domain level 1). This patch ensures that these
attributes are always set correctly regardless of existence of the replica
entry.

https://fedorahosted.org/freeipa/ticket/5412

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-21 18:16:01 +01:00
Martin Babinsky
d726da3ba2 uninstallation: more robust check for master removal from topology
When uninstalling IPA master in domain level 1 topology, the code that checks
for correct removal from topology will now consider failures to lookup host
entry in local LDAP and to obtain host TGT as a sign that the master entry was
already removed.

https://fedorahosted.org/freeipa/ticket/5584

Reviewed-By: Simo Sorce <ssorce@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-21 18:12:42 +01:00
Fraser Tweedale
fd7ea2c939 Remove workaround for CA running check
A workaround was introduced for ticket #4676 that used wget to
perform an (unauthenticated) https request to check the CA status.
Later, wget was changed to curl (the request remained
unauthenticated).

Remove the workaround and use an http request (no TLS) to check the
CA status.  Also remove the now-unused unauthenticated_http_request
method, and update specfile to remove ipalib dependency on curl.

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-21 14:09:44 +01:00
Ludwig Krispenz
c152e10075 prevent moving of topology entries out of managed scope by modrdn operations
Ticket: https://fedorahosted.org/freeipa/ticket/5536
Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Thierry Bordaz <tbordaz@redhat.com>
2016-01-21 12:52:08 +01:00
Martin Basti
54a91c3ed3 Exclude o=ipaca subtree from Retro Changelog (syncrepl)
CA and DS have issues with Retro Changelog plugin. CA subtree should be
excluded from syncrepl.
This should improve speed of CA related operations too.

https://fedorahosted.org/freeipa/ticket/5538

Reviewed-By: Christian Heimes <cheimes@redhat.com>
2016-01-21 11:28:21 +01:00
Jan Cholasta
b808376e2f ipapython: use python-cryptography instead of libcrypto in p11helper
Replace CFFI calls to libcrypto with equivalent python-cryptography code.

https://fedorahosted.org/freeipa/ticket/5596

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-21 10:21:32 +01:00
Jan Cholasta
500ee7e2b1 ipapython: port p11helper C code to Python
This replaces the binary _ipap11helper module with cffi-based Python code.

https://fedorahosted.org/freeipa/ticket/5596

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-21 10:21:32 +01:00
James Groffen
f5f5c8c603 Set close button type attribute to 'button'.
Stops IE10 from closing the dialog on an enter keypress.

Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
2016-01-20 18:50:25 +01:00
Abhijeet Kasurde
d9983d8ec6 Fixed login error message box in LoginScreen page
Fix added for showing error message returned from server to client
browser. User is now notified with proper error messages returned by
server.

https://bugzilla.redhat.com/show_bug.cgi?id=1293870

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
2016-01-20 18:38:45 +01:00
Petr Vobornik
133b1327e2 webui: dislay server suffixes in server search page
There was a change where suffixes in server are not longer returned as DNs
but rather a cn of related topology suffix. I.e. they share "memberof" logic.
This caused that search page doesn't get the data because it uses
"no_member: true" option by default.

This patch overrides the behavior because it is OK for server search page
to fetch also member data - it is not so costly as e.g. in users.

https://fedorahosted.org/freeipa/ticket/5609

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-20 14:09:36 +01:00
Abhijeet Kasurde
e381d763fa Added kpasswd_server directive in client krb5.conf
While configuring ipa client using ipa-client-install can configure
kpasswd_server explicitly using directive in client's krb5.conf

https://fedorahosted.org/freeipa/ticket/5547

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
Reviewed-By: Christian Heimes <cheimes@redhat.com>
2016-01-20 14:05:50 +01:00
Petr Vobornik
3aef54d0c2 spec: do not require arch specific ipalib package from noarch packages
noarch packages should not contain:
  Requires: some-package-{?_isa}

because then they are not the same for each arch - are not noarch

https://fedorahosted.org/freeipa/ticket/5568

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2016-01-20 12:16:35 +01:00
Petr Viktorin
5d82214787 make-lint: Allow running pylint --py3k to detect Python3 issues
Pylint can be run with the --py3k switch to detect porting issues.
This is not compatible with regular checking (i.e. to do all checks,
pylint must be run twice, with and without --py3k).
So, do an additional run of pylint in a subprocess for the py3k checks.

Add a --no-py3k switch to skip the additional py3k run.
Also add a --no-lint switch to allow only running the py3 checks.

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 12:00:22 +01:00
Petr Viktorin
5bff350d0d Remove deprecated contrib/RHEL4
This code is no longer maintained.

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2016-01-20 12:00:01 +01:00
Petr Viktorin
983c53bb6c dnsutil: Rename __nonzero__ to __bool__
In Python 3, this special method got renamed. Set both to the same
function to keep compatibility.

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 11:59:21 +01:00
Petr Viktorin
06a678c159 Avoid builtins that were removed in Python 3
- `file` was removed in favor of `open`. Switch to the new spelling.
- `buffer` was removed in favor of a buffer protocol (and memoryview),
  and `reload` was moved to importlib.
  Both are used in py2-only blocks, so just placate PyLint.

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 11:59:21 +01:00
Petr Viktorin
b2436560df Alias "unicode" to "str" under Python 3
Follow-up to commit 23507e6124

The six way of doing this is to replace all occurences of "unicode"
with "six.text_type". However, "unicode" is non-ambiguous and
(arguably) easier to read. Also, using it makes the patches smaller,
which should help with backporting.

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 11:59:21 +01:00
Petr Viktorin
462f4a5161 Use print_function future definition wherever print() is used
Pylint considers `print` a statement if the __future__ import is
not present, even if it's used like a function with one argument.

Add the __future__ import to files `pylint --py3k` complains about.

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 11:59:21 +01:00
Petr Viktorin
465dd9829c Don't index exceptions directly
In Python 3, exceptions don't behave as tuples of their arguments;
instead of e[1] it's necessary to use e.args[1].

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 11:59:21 +01:00
Petr Viktorin
126d899321 Use explicit truncating division
In Python 3, the truncating division operator, //, is needed to
get C-style "int division".

https://fedorahosted.org/freeipa/ticket/5623

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-20 11:59:21 +01:00
Oleg Fayans
7a742391c1 fixed an issue with master installation not creating reverse zone
When resolv.conf is set to point to the master's ip before installation, the
ipa-server-install does not create a reverse zone for it's ip even despite
--auto-reverse option provided. The fix is not to mess around with resolv.conf
before master installation.

Reviewed-By: Petr Spacek <pspacek@redhat.com>
2016-01-19 17:47:23 +01:00
Tomas Babej
ddf2c813b4 Loggger: Use warning instead of warn - dns plugin
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-19 14:26:52 +01:00
Tomas Babej
78c5bf9f8e logger: Use warning instead of warn
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-18 17:49:54 +01:00
Martin Babinsky
e7a4faab81 IPA upgrade: move replication ACIs to the mapping tree entry
During IPA server upgrade from pre-4.3 versions, the ACIs permitting
manipulation of replication agreements are removed from the
'cn="$SUFFIX",cn=mapping tree,cn=config' and 'cn=o\3Dipaca,cn=mapping
tree,cn=config'. However they are never re-added breaking management and
installation of replicas.

This patch modifies the update process so that the ACIs are first added to the
'cn=mapping tree,cn=config' and then removed from the child entries.

https://fedorahosted.org/freeipa/ticket/5575

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2016-01-18 14:10:08 +01:00
Martin Basti
7baa675947 Fix: uninstall does not stop named-pkcs11 and ipa-ods-exporter
ipactl is not aware of new services installed later, if ipactl restart
or start has not been executed.

This commit is workaround, proper fix may need to improve ipactl.

https://fedorahosted.org/freeipa/ticket/5262

Reviewed-By: David Kupka <dkupka@redhat.com>
2016-01-18 12:46:03 +01:00
Jan Cholasta
7e56b4bbd7 ipapython: remove default_encoding_utf8
Replace the "import default_encoding_utf8" in ipalib/cli.py with equivalent
Python code.

https://fedorahosted.org/freeipa/ticket/5596

Reviewed-By: Tomas Babej <tbabej@redhat.com>
2016-01-15 13:39:52 +01:00
Martin Basti
58c42ddac0 Warn about potential loss of CA, KRA, DNSSEC during uninstall
If connection do LDAP failed (or LDAP server is down) we cannot verify
if there is any additonal instance of CA, KRA, DNSSEC master.
In this case a user is warned and promted to confirm uninstallation.

https://fedorahosted.org/freeipa/ticket/5544

Reviewed-By: David Kupka <dkupka@redhat.com>
2016-01-14 14:34:57 +01:00
Martin Basti
26899c91af CI test: fix regression in task.install_kra
ipa-kra-install needs directory manager password

Regression caused by c4b9b295d8

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-14 13:19:57 +01:00
Martin Basti
2320be18a3 Enable pylint unbalanced-tuple-unpacking check
Enables check and fixes one issue.
get_entries can be replaced by get_entry, filter is not needed because
check of 'originfilter' attribute is done later.

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-14 13:15:26 +01:00
Martin Basti
267bad10a8 Enable pylint unpacking-non-sequence check
Enables check and marks occurences of runtime error in dcerpc.py as
false positive.

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-14 13:13:42 +01:00
Simo Sorce
2144b1eeb7 Always verify we have a valid ldap context.
LDAP calls just assert if an invalid (NULL) context is passed in,
so we need to be sure we have a valid connection context before
calling into LDAP APIs and fail outright if a context can't be obtained.

https://fedorahosted.org/freeipa/ticket/5577

Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-13 16:09:38 +01:00
Simo Sorce
58ab032f1a Use only AES enctypes by default
Remove des3 and arcfour from the defaults for new installs.

NOTE: the ipasam/dcerpc code sill uses arcfour

Signed-off-by: Simo Sorce <simo@redhat.com>

Ticket: https://fedorahosted.org/freeipa/ticket/4740
Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
2016-01-13 15:24:53 +01:00
Milan Kubík
c0133778ae ipatests: Make the A record for hosts in topology conditional
Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-13 10:07:46 +01:00
Martin Babinsky
a81e69a796 ipa-csreplica-manage: remove extraneous ldap2 connection
https://fedorahosted.org/freeipa/ticket/5583

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-13 09:58:23 +01:00
Tomas Babej
50627004b8 py3: Remove py3 incompatible exception handling
https://fedorahosted.org/freeipa/ticket/5585

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-13 09:54:03 +01:00
Martin Babinsky
00c13fd340 fix Py3 incompatible exception instantiation in replica install code
https://fedorahosted.org/freeipa/ticket/5585

Reviewed-By: Tomas Babej <tbabej@redhat.com>
2016-01-13 09:51:08 +01:00
Fraser Tweedale
fe94222873 Do not decode HTTP reason phrase from Dogtag
The HTTP reason phrase sent by Dogtag is assumed to be encoded in
UTF-8, but the encoding used by Tomcat is dependent on system
locale, causing decode errors in some locales.

The reason phrase is optional and will not be sent in a future
version of Tomcat[1], so do not bother decoding and returning it.

[1] 707ab1c77f

Fixes: https://fedorahosted.org/freeipa/ticket/5578
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2016-01-13 08:12:30 +01:00
Jan Cholasta
6b2b173a4d ipalib: assume version 2.0 when skip_version_check is enabled
https://fedorahosted.org/freeipa/ticket/5601

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-12 16:37:29 +01:00
Martin Babinsky
ac76644ff6 tests for package version comparison
These tests will ensure that our package version handling code can correctly
decide when to upgrade IPA master.

https://fedorahosted.org/freeipa/ticket/5572

Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2016-01-12 15:33:22 +01:00
Nathaniel McCallum
563bddce6d Don't error when find_base() fails if a base is not required
We always have to call find_base() in order to force libldap to open
the socket. However, if no base is actually required then there is
no reason to error out if find_base() fails. This condition can arise
when anonymous binds are disabled.

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-01-12 12:28:44 +01:00
Martin Basti
34b197afa4 DNSSEC CI: add missing ldns-utils dependency
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-12 10:45:00 +01:00
Martin Basti
c611174987 DNSSEC test: fix adding zones with --skip-overlap-check
In DNSSEC tests the root zone has to be created, this requires to use
--skip-overlap-check to work properly.

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
2016-01-12 10:45:00 +01:00