summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl MacMillan <kmacmillan@mentalrootkit.com>2007-08-01 16:21:13 -0400
committerKarl MacMillan <kmacmillan@mentalrootkit.com>2007-08-01 16:21:13 -0400
commitaed1f9110511e3669ab43c3894064c1371878876 (patch)
tree1b2a30040f6fc9093021da53775bc6869d77eda2
parentb1831b4593b3d219b79830f3012e7ff07f17b1d8 (diff)
downloadfreeipa-aed1f9110511e3669ab43c3894064c1371878876.tar.gz
freeipa-aed1f9110511e3669ab43c3894064c1371878876.tar.xz
freeipa-aed1f9110511e3669ab43c3894064c1371878876.zip
Add local-dist target.
Remove hard-coded config.
-rw-r--r--Makefile19
-rw-r--r--ipa-admintools/ipa-adduser11
-rw-r--r--ipa-admintools/ipa-finduser12
-rw-r--r--ipa-python/Makefile3
-rwxr-xr-xipa-python/freeipa-python.spec3
-rwxr-xr-xipa-python/freeipa-python.spec.in3
-rw-r--r--ipa-python/rpcclient.py23
-rw-r--r--ipa-server/ipa-install/ipa-server-install9
-rw-r--r--ipa-server/xmlrpc-server/funcs.py9
9 files changed, 69 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index 350bf9bc2..5de0c5d3b 100644
--- a/Makefile
+++ b/Makefile
@@ -53,10 +53,20 @@ version-update:
> ipa-python/freeipa-python.spec
-tarballs:
+archive:
-mkdir -p dist
hg archive -t files dist/freeipa
+local-archive:
+ -mkdir -p dist/freeipa
+ @for subdir in $(SUBDIRS); do \
+ cp -pr $$subdir dist/freeipa/.; \
+ done
+
+archive-cleanup:
+ rm -fr dist/freeipa
+
+tarballs:
# ipa-server
mv dist/freeipa/ipa-server dist/$(SERV_TARBALL_PREFIX)
rm -f dist/$(SERV_TARBALL)
@@ -75,9 +85,6 @@ tarballs:
cd dist; tar cfz $(PYTHON_TARBALL) $(PYTHON_TARBALL_PREFIX)
rm -fr dist/$(PYTHON_TARBALL_PREFIX)
- # cleanup
- rm -fr dist/freeipa
-
rpm-ipa-server:
cp dist/$(SERV_TARBALL) ~/rpmbuild/SOURCES/.
rpmbuild -ba ipa-server/freeipa-server.spec
@@ -98,7 +105,9 @@ rpm-ipa-python:
rpms: rpm-ipa-server rpm-ipa-admin rpm-ipa-python
-dist: version-update tarballs rpms
+dist: version-update archive tarballs archive-cleanup rpms
+
+local-dist: clean version-update local-archive tarballs archive-cleanup rpms
dist-clean: clean
rm -fr dist
diff --git a/ipa-admintools/ipa-adduser b/ipa-admintools/ipa-adduser
index b40fdee2c..5ce8d3ae7 100644
--- a/ipa-admintools/ipa-adduser
+++ b/ipa-admintools/ipa-adduser
@@ -22,6 +22,8 @@ import sys
from optparse import OptionParser
import ipa
import ipa.rpcclient
+import ipa.config
+
import xmlrpclib
def usage():
@@ -43,7 +45,8 @@ def parse_options():
parser.add_option("--usage", action="store_true",
help="Program usage")
- (options, args) = parser.parse_args()
+ args = ipa.config.init_config(sys.argv)
+ options, args = parser.parse_args(args)
if not options.gn or not options.sn:
usage()
@@ -52,14 +55,14 @@ def parse_options():
def main():
user={}
- (options, args) = parse_options()
+ options, args = parse_options()
- if len(args) != 1:
+ if len(args) != 2:
usage()
user['gn'] = options.gn
user['sn'] = options.sn
- user['uid'] = args[0]
+ user['uid'] = args[1]
if options.gecos:
user['gecos'] = options.gecos
if options.directory:
diff --git a/ipa-admintools/ipa-finduser b/ipa-admintools/ipa-finduser
index 205b47ce9..0892791c4 100644
--- a/ipa-admintools/ipa-finduser
+++ b/ipa-admintools/ipa-finduser
@@ -18,9 +18,12 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
+import sys
from optparse import OptionParser
import ipa
import ipa.rpcclient
+import ipa.config
+
import base64
import sys
import xmlrpclib
@@ -32,19 +35,20 @@ def usage():
def parse_options():
parser = OptionParser()
- (options, args) = parser.parse_args()
+ args = ipa.config.init_config(sys.argv)
+ options, args = parser.parse_args(args)
return options, args
def main():
user={}
- (options, args) = parse_options()
+ options, args = parse_options()
- if len(args) != 1:
+ if len(args) != 2:
usage()
try:
- ent = ipa.rpcclient.get_user(args[0])
+ ent = ipa.rpcclient.get_user(args[1])
for name, value in ent.items():
if isinstance(value, str):
print name + ": " + value
diff --git a/ipa-python/Makefile b/ipa-python/Makefile
index bc6554be4..85acdb678 100644
--- a/ipa-python/Makefile
+++ b/ipa-python/Makefile
@@ -1,11 +1,14 @@
PYTHONLIBDIR ?= $(shell python -c "from distutils.sysconfig import *; print get_python_lib(1)")
PACKAGEDIR ?= $(DESTDIR)/$(PYTHONLIBDIR)/ipa
+CONFIGDIR ?= $(DESTDIR)/etc/ipa
all: ;
install:
-mkdir -p $(PACKAGEDIR)
install -m 644 *.py $(PACKAGEDIR)
+ -mkdir -p $(CONFIGDIR)
+ install -m 644 ipa.conf $(CONFIGDIR)
clean:
rm -f *~ *.pyc \ No newline at end of file
diff --git a/ipa-python/freeipa-python.spec b/ipa-python/freeipa-python.spec
index 61be3a5d6..8339cf74a 100755
--- a/ipa-python/freeipa-python.spec
+++ b/ipa-python/freeipa-python.spec
@@ -15,6 +15,7 @@ Requires: python
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%define pkgpythondir %{python_sitelib}/ipa
+%define configdir /etc/ipa
%description
FreeIPA is a server for identity, policy, and audit.
@@ -25,6 +26,7 @@ FreeIPA is a server for identity, policy, and audit.
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{pkgpythondir}
+mkdir -p %{buildroot}%{configdir}
make install DESTDIR=%{buildroot}
@@ -36,6 +38,7 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%{pkgpythondir}/*
+%config(noreplace) %{configdir}/ipa.conf
%changelog
diff --git a/ipa-python/freeipa-python.spec.in b/ipa-python/freeipa-python.spec.in
index 90a135b45..bec58819d 100755
--- a/ipa-python/freeipa-python.spec.in
+++ b/ipa-python/freeipa-python.spec.in
@@ -15,6 +15,7 @@ Requires: python
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%define pkgpythondir %{python_sitelib}/ipa
+%define configdir /etc/ipa
%description
FreeIPA is a server for identity, policy, and audit.
@@ -25,6 +26,7 @@ FreeIPA is a server for identity, policy, and audit.
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{pkgpythondir}
+mkdir -p %{buildroot}%{configdir}
make install DESTDIR=%{buildroot}
@@ -36,6 +38,7 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%{pkgpythondir}/*
+%config(noreplace) %{configdir}/ipa.conf
%changelog
diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py
index 416026628..f37096d8b 100644
--- a/ipa-python/rpcclient.py
+++ b/ipa-python/rpcclient.py
@@ -26,18 +26,25 @@ except ImportError:
pass
import xmlrpclib
import socket
-import os
-import base64
+import config
# Some errors to catch
# http://cvs.fedora.redhat.com/viewcvs/ldapserver/ldap/servers/plugins/pam_passthru/README?root=dirsec&rev=1.6&view=auto
-
+
+def server_url():
+ return "http://" + config.config.get_server() + "/ipa"
+
# FIXME: do we want this set somewhere else?
-server = xmlrpclib.ServerProxy("http://localhost:80/ipa")
+server = None
+
+def setup_server():
+ global server
+ if not server:
+ server = xmlrpclib.ServerProxy(server_url())
def get_user(username):
"""Get a specific user"""
-
+ setup_server()
try:
result = server.get_user(username)
myuser = result
@@ -52,9 +59,10 @@ def get_user(username):
def add_user(user):
"""Add a new user"""
+ setup_server()
# FIXME: Get the realm from somewhere
- realm="GREYOAK.COM"
+ realm = config.config.get_realm()
# FIXME: This should be dynamic and can include just about anything
# Let us add in some missing attributes
@@ -87,13 +95,14 @@ def get_add_schema():
"""Get the list of attributes we need to ask when adding a new
user.
"""
+ setup_server()
# FIXME: Hardcoded and designed for the TurboGears GUI. Do we want
# this for the CLI as well?
try:
result = server.get_add_schema()
except xmlrpclib.Fault, fault:
- raise xmlrpclib.Fault(fault,faultCode, fault.faultString)
+ raise xmlrpclib.Fault(fault, fault.faultString)
return None
except socket.error, (value, msg):
raise xmlrpclib.Fault(value, msg)
diff --git a/ipa-server/ipa-install/ipa-server-install b/ipa-server/ipa-install/ipa-server-install
index 7abcafd8f..fbf3fd054 100644
--- a/ipa-server/ipa-install/ipa-server-install
+++ b/ipa-server/ipa-install/ipa-server-install
@@ -75,7 +75,7 @@ def logging_setup(options):
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
-
+
def main():
options = parse_options()
logging_setup(options)
@@ -119,6 +119,13 @@ def main():
# Restart apache
run(["/sbin/service", "httpd", "restart"])
+ # Create the config file
+ fd = open("/etc/ipa/ipa.conf", "w")
+ fd.write("[defaults]\n")
+ fd.write("server=" + host_name + "\n")
+ fd.write("realm=" + options.realm_name + "\n")
+ fd.close()
+
return 0
main()
diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py
index d6473f9a7..9576df998 100644
--- a/ipa-server/xmlrpc-server/funcs.py
+++ b/ipa-server/xmlrpc-server/funcs.py
@@ -23,10 +23,12 @@ sys.path.append("/usr/share/ipa")
import ldap
import ipaserver.dsinstance
import ipaserver.ipaldap
+import ipaserver.util
import pdb
import string
from types import *
import xmlrpclib
+import ipa.config
# FIXME, this needs to be auto-discovered
host = 'localhost'
@@ -34,7 +36,10 @@ port = 389
binddn = "cn=directory manager"
bindpw = "freeipa"
-basedn = "dc=greyoak,dc=com"
+ipa.config.init_config()
+basedn = ipaserver.util.realm_to_suffix(ipa.config.config.get_realm())
+import sys
+sys.stderr.write(basedn)
scope = ldap.SCOPE_SUBTREE
def get_user (username):
@@ -85,7 +90,7 @@ def get_user (username):
def add_user (user):
"""Add a user in LDAP"""
- dn="uid=%s,ou=users,ou=default,dc=greyoak,dc=com" % user['uid']
+ dn="uid=%s,ou=users,ou=default,%s" % (user['uid'], basedn)
entry = ipaserver.ipaldap.Entry(dn)
# some required objectclasses