Remove orphaned code in test and testdb (fixes #22)
git-svn-id: file:///home/www/usr01/svn/gnuviechadmin/trunk@260 a67ec6bc-e5d5-0310-a910-815c51eb3124
This commit is contained in:
		
							parent
							
								
									b183465d5e
								
							
						
					
					
						commit
						030a733fbd
					
				
					 29 changed files with 0 additions and 1210 deletions
				
			
		|  | @ -1,5 +0,0 @@ | |||
| #!/usr/bin/python | ||||
| from migrate.versioning.shell import main | ||||
| 
 | ||||
| main(url='postgres://jan:heyyou97@localhost:5432/jan', | ||||
|      repository='ormaptest_repo') | ||||
|  | @ -1,53 +0,0 @@ | |||
| #!/usr/bin/python | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| from sqlalchemy import * | ||||
| 
 | ||||
| meta = BoundMetaData('postgres://jan:heyyou97@localhost:5432/jan') | ||||
| domains_table = Table('domains', meta, autoload=True) | ||||
| records_table = Table('records', meta, autoload=True) | ||||
| 
 | ||||
| 
 | ||||
| class Domain(object): | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "%s(%r,%r)" % ( | ||||
|             self.__class__.__name__, self.id, self.name) | ||||
| 
 | ||||
| 
 | ||||
| class Record(object): | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "%s(%r,%r,%r)" % ( | ||||
|             self.__class__.__name__, self.id, self.domain_id, self.domain) | ||||
| 
 | ||||
| recordmapper = mapper(Record, records_table) | ||||
| domainmapper = mapper(Domain, domains_table, properties = { | ||||
|         'records': relation(Record, backref='domain')}) | ||||
| 
 | ||||
| session = create_session() | ||||
| query = session.query(Domain) | ||||
| 
 | ||||
| domain = query.get_by(name='dittberner.info') | ||||
| if domain: | ||||
|     print domain.records | ||||
| 
 | ||||
| session.flush() | ||||
|  | @ -1,4 +0,0 @@ | |||
| This is a database migration repository. | ||||
| 
 | ||||
| More information at | ||||
| http://trac.erosson.com/migrate | ||||
|  | @ -1,4 +0,0 @@ | |||
| #!/usr/bin/python | ||||
| from migrate.versioning.shell import main | ||||
| 
 | ||||
| main(repository='ormaptest_repo') | ||||
|  | @ -1,20 +0,0 @@ | |||
| [db_settings] | ||||
| # Used to identify which repository this database is versioned under. | ||||
| # You can use the name of your project. | ||||
| repository_id=OR Mapping Test | ||||
| 
 | ||||
| # The name of the database table used to track the schema version. | ||||
| # This name shouldn't already be used by your project. | ||||
| # If this is changed once a database is under version control, you'll need to  | ||||
| # change the table name in each database too.  | ||||
| version_table=migrate_version | ||||
| 
 | ||||
| # When committing a change script, Migrate will attempt to generate the  | ||||
| # sql for all supported databases; normally, if one of them fails - probably | ||||
| # because you don't have that database installed - it is ignored and the  | ||||
| # commit continues, perhaps ending successfully.  | ||||
| # Databases in this list MUST compile successfully during a commit, or the  | ||||
| # entire commit will fail. List the databases your application will actually  | ||||
| # be using to ensure your updates to that database work properly. | ||||
| # This must be a list; example: ['postgres','sqlite'] | ||||
| required_dbs=[] | ||||
|  | @ -1,16 +0,0 @@ | |||
| from sqlalchemy import * | ||||
| from migrate import * | ||||
| 
 | ||||
| meta = BoundMetaData(migrate_engine) | ||||
| account = Table('account', meta, | ||||
|                 Column('id', Integer, primary_key=True), | ||||
|                 Column('login', String(40)), | ||||
|                 Column('passwd', String(40))) | ||||
| 
 | ||||
| 
 | ||||
| def upgrade(): | ||||
|     account.create() | ||||
| 
 | ||||
| 
 | ||||
| def downgrade(): | ||||
|     account.drop() | ||||
|  | @ -1,13 +0,0 @@ | |||
| from sqlalchemy import * | ||||
| from migrate import * | ||||
| 
 | ||||
| meta = BoundMetaData(migrate_engine) | ||||
| account = Table('account', meta) | ||||
| 
 | ||||
| 
 | ||||
| def upgrade(): | ||||
|     account.drop() | ||||
| 
 | ||||
| 
 | ||||
| def downgrade(): | ||||
|     account.create() | ||||
|  | @ -1,45 +0,0 @@ | |||
| from sqlalchemy import * | ||||
| from migrate import * | ||||
| 
 | ||||
| meta = BoundMetaData(migrate_engine) | ||||
| supermasters = Table('supermasters', meta, | ||||
|     Column('ip', String(25), nullable=False), | ||||
|     Column('nameserver', String(255), nullable=False), | ||||
|     Column('account', String(40)), | ||||
| ) | ||||
| domains = Table('domains', meta, | ||||
|     Column('id', Integer, primary_key=True), | ||||
|     Column('name', String(255), nullable=False), | ||||
|     Column('master', String(20)), | ||||
|     Column('last_check', Integer), | ||||
|     Column('type', String(6), nullable=False), | ||||
|     Column('notified_serial', Integer), | ||||
|     Column('account', String(40)), | ||||
|     UniqueConstraint('name', name='name_index')) | ||||
| 
 | ||||
| records = Table('records', meta, | ||||
|     Column('id', Integer, primary_key=True), | ||||
|     Column('domain_id', Integer), | ||||
|     Column('name', String(255)), | ||||
|     Column('type', String(6)), | ||||
|     Column('content', String(255)), | ||||
|     Column('ttl', Integer), | ||||
|     Column('prio', Integer), | ||||
|     Column('change_date', Integer), | ||||
|     ForeignKeyConstraint(['domain_id'], ['domains.id'], | ||||
|                          ondelete='CASCADE', name='domain_exists')) | ||||
| Index('domain_id', records.c.domain_id) | ||||
| Index('nametype_index', records.c.name, records.c.type) | ||||
| Index('rec_name_index', records.c.name) | ||||
| 
 | ||||
| 
 | ||||
| def upgrade(): | ||||
|     supermasters.create() | ||||
|     domains.create() | ||||
|     records.create() | ||||
| 
 | ||||
| 
 | ||||
| def downgrade(): | ||||
|     records.drop() | ||||
|     domains.drop() | ||||
|     supermasters.drop() | ||||
							
								
								
									
										293
									
								
								test/test.sql
									
										
									
									
									
								
							
							
						
						
									
										293
									
								
								test/test.sql
									
										
									
									
									
								
							|  | @ -1,293 +0,0 @@ | |||
| -- | ||||
| -- Data for Name: domains; Type: TABLE DATA; Schema: public; Owner: postgres | ||||
| -- | ||||
| 
 | ||||
| COPY domains (id, name, master, last_check, "type", notified_serial, account) FROM stdin; | ||||
| 3	artist-michael.de	\N	\N	MASTER	2005081501	\N | ||||
| 4	blumendeko-wiebach.de	\N	\N	MASTER	2005081701	\N | ||||
| 5	cblicht.de	\N	\N	MASTER	2006031901	\N | ||||
| 6	centrum-warenhaus-dresden.de	\N	\N	MASTER	2005090301	\N | ||||
| 7	dancewarriors.de	\N	\N	MASTER	2005081701	\N | ||||
| 9	douth-hiphop.de	\N	\N	MASTER	2005081701	\N | ||||
| 10	efs-sohland.de	\N	\N	MASTER	2005092001	\N | ||||
| 11	ferien-am-stausee.de	\N	\N	MASTER	2005081701	\N | ||||
| 12	frank-schmidt-online.de	\N	\N	MASTER	2006091901	\N | ||||
| 13	freie-musikschule-sohland.de	\N	\N	MASTER	2005081701	\N | ||||
| 14	hondaracingclub.de	\N	\N	MASTER	2005081701	\N | ||||
| 15	jesusgemeindesohland.de	\N	\N	MASTER	2006031901	\N | ||||
| 16	jugendwoche2006.de	\N	\N	MASTER	2006051701	\N | ||||
| 17	katja-schumann.de	\N	\N	MASTER	2006031901	\N | ||||
| 18	ortodontia.de	\N	\N	MASTER	2005101702	\N | ||||
| 19	ostmodern.org	\N	\N	MASTER	2006022001	\N | ||||
| 20	peschel-maler.de	\N	\N	MASTER	2006112800	\N | ||||
| 21	purity-now.de	\N	\N	MASTER	2006083001	\N | ||||
| 22	regionalverkehr.net	\N	\N	MASTER	2005121201	\N | ||||
| 23	rundkino-dresden.de	\N	\N	MASTER	2006112400	\N | ||||
| 24	scheune-sohland.de	\N	\N	MASTER	2006030102	\N | ||||
| 25	spare-beatz.de	\N	\N	MASTER	2005090501	\N | ||||
| 26	tntlive.de	\N	\N	MASTER	2006100401	\N | ||||
| 27	wagner-sound.de	\N	\N	MASTER	2005081701	\N | ||||
| 28	winproject.de	\N	\N	MASTER	2006100302	\N | ||||
| 29	zahnspange-schubert.de	\N	\N	MASTER	2005101702	\N | ||||
| 1	jan-dittberner.de	\N	\N	MASTER	2006031902	\N | ||||
| 8	dittberner.info	\N	\N	MASTER	0	\N | ||||
| 2	gnuviech-server.de	\N	\N	MASTER	2007010301	\N | ||||
| \. | ||||
| 
 | ||||
| 
 | ||||
| -- | ||||
| -- Data for Name: records; Type: TABLE DATA; Schema: public; Owner: postgres | ||||
| -- | ||||
| 
 | ||||
| COPY records (id, domain_id, name, "type", content, ttl, prio, change_date) FROM stdin; | ||||
| 1	1	jan-dittberner.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006031902 10000 7200 1209600 86400	86400	0	\N | ||||
| 2	1	jan-dittberner.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 3	1	jan-dittberner.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 4	1	jan-dittberner.de	A	81.169.155.87	86400	0	\N | ||||
| 5	1	jan-dittberner.de	MX	gnuviech.info	86400	5	\N | ||||
| 6	1	jan-dittberner.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 7	1	*.jan-dittberner.de	CNAME	www.jan-dittberner.de	86400	0	\N | ||||
| 8	1	www.jan-dittberner.de	A	81.169.155.87	86400	0	\N | ||||
| 10	2	gnuviech-server.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 11	2	gnuviech-server.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 12	2	gnuviech-server.de	A	81.169.155.87	86400	0	\N | ||||
| 13	2	gnuviech-server.de	MX	gnuviech.info	86400	5	\N | ||||
| 14	2	gnuviech-server.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 19	2	shell.gnuviech-server.de	A	88.198.45.203	86400	0	\N | ||||
| 15	2	ns1.gnuviech-server.de	A	88.198.120.250	86400	0	\N | ||||
| 21	3	artist-michael.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081501 86400 7200 1209600 86400	86400	0	\N | ||||
| 22	3	artist-michael.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 23	3	artist-michael.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 24	3	artist-michael.de	A	81.169.155.87	86400	0	\N | ||||
| 25	3	artist-michael.de	MX	gnuviech.info	86400	5	\N | ||||
| 26	3	artist-michael.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 27	3	www.artist-michael.de	A	81.169.155.87	86400	0	\N | ||||
| 28	3	*.artist-michael.de	CNAME	www.artist-michael.de	86400	0	\N | ||||
| 29	4	blumendeko-wiebach.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 30	4	blumendeko-wiebach.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 31	4	blumendeko-wiebach.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 32	4	blumendeko-wiebach.de	A	81.169.155.87	86400	0	\N | ||||
| 33	4	blumendeko-wiebach.de	MX	gnuviech.info	86400	5	\N | ||||
| 34	4	blumendeko-wiebach.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 35	4	www.blumendeko-wiebach.de	A	81.169.155.87	86400	0	\N | ||||
| 36	4	*.blumendeko-wiebach.de	CNAME	www.blumendeko-wiebach.de	86400	0	\N | ||||
| 37	5	cblicht.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006031901 86400 7200 1209600 86400	86400	0	\N | ||||
| 38	5	cblicht.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 39	5	cblicht.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 40	5	cblicht.de	A	81.169.155.87	86400	0	\N | ||||
| 41	5	cblicht.de	MX	gnuviech.info	86400	5	\N | ||||
| 42	5	cblicht.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 43	5	www.cblicht.de	A	81.169.155.87	86400	0	\N | ||||
| 44	5	*.cblicht.de	CNAME	www.cblicht.de	86400	0	\N | ||||
| 45	6	centrum-warenhaus-dresden.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005090301 86400 7200 1209600 86400	86400	0	\N | ||||
| 46	6	centrum-warenhaus-dresden.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 47	6	centrum-warenhaus-dresden.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 48	6	centrum-warenhaus-dresden.de	A	81.169.155.87	86400	0	\N | ||||
| 49	6	centrum-warenhaus-dresden.de	MX	gnuviech.info	86400	5	\N | ||||
| 50	6	centrum-warenhaus-dresden.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 51	6	www.centrum-warenhaus-dresden.de	A	81.169.155.87	86400	0	\N | ||||
| 52	6	*.centrum-warenhaus-dresden.de	CNAME	www.centrum-warenhaus-dresden.de	86400	0	\N | ||||
| 53	7	dancewarriors.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 54	7	dancewarriors.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 55	7	dancewarriors.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 56	7	dancewarriors.de	A	81.169.155.87	86400	0	\N | ||||
| 57	7	dancewarriors.de	MX	gnuviech.info	86400	5	\N | ||||
| 58	7	dancewarriors.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 59	7	www.dancewarriors.de	A	81.169.155.87	86400	0	\N | ||||
| 60	7	*.dancewarriors.de	CNAME	www.dancewarriors.de	86400	0	\N | ||||
| 70	9	douth-hiphop.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 71	9	douth-hiphop.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 72	9	douth-hiphop.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 73	9	douth-hiphop.de	A	81.169.155.87	86400	0	\N | ||||
| 74	9	douth-hiphop.de	MX	gnuviech.info	86400	5	\N | ||||
| 75	9	douth-hiphop.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 76	9	www.douth-hiphop.de	A	81.169.155.87	86400	0	\N | ||||
| 77	9	*.douth-hiphop.de	CNAME	www.douth-hiphop.de	86400	0	\N | ||||
| 78	10	efs-sohland.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005092001 86400 7200 1209600 86400	86400	0	\N | ||||
| 79	10	efs-sohland.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 80	10	efs-sohland.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 81	10	efs-sohland.de	A	81.169.155.87	86400	0	\N | ||||
| 82	10	efs-sohland.de	MX	gnuviech.info	86400	5	\N | ||||
| 83	10	efs-sohland.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 84	10	www.efs-sohland.de	A	81.169.155.87	86400	0	\N | ||||
| 85	10	*.efs-sohland.de	CNAME	www.efs-sohland.de	86400	0	\N | ||||
| 86	11	ferien-am-stausee.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 87	11	ferien-am-stausee.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 88	11	ferien-am-stausee.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 89	11	ferien-am-stausee.de	A	81.169.155.87	86400	0	\N | ||||
| 90	11	ferien-am-stausee.de	MX	gnuviech.info	86400	5	\N | ||||
| 91	11	ferien-am-stausee.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 92	11	www.ferien-am-stausee.de	A	81.169.155.87	86400	0	\N | ||||
| 93	11	*.ferien-am-stausee.de	CNAME	www.ferien-am-stausee.de	86400	0	\N | ||||
| 94	12	frank-schmidt-online.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006091901 86400 7200 1209600 86400	86400	0	\N | ||||
| 95	12	frank-schmidt-online.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 96	12	frank-schmidt-online.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 97	12	frank-schmidt-online.de	A	81.169.155.87	86400	0	\N | ||||
| 98	12	frank-schmidt-online.de	MX	gnuviech.info	86400	5	\N | ||||
| 99	12	frank-schmidt-online.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 100	12	www.frank-schmidt-online.de	A	81.169.155.87	86400	0	\N | ||||
| 101	12	*.frank-schmidt-online.de	CNAME	www.frank-schmidt-online.de	86400	0	\N | ||||
| 102	13	freie-musikschule-sohland.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 103	13	freie-musikschule-sohland.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 104	13	freie-musikschule-sohland.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 105	13	freie-musikschule-sohland.de	A	81.169.155.87	86400	0	\N | ||||
| 106	13	freie-musikschule-sohland.de	MX	gnuviech.info	86400	5	\N | ||||
| 107	13	freie-musikschule-sohland.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 108	13	www.freie-musikschule-sohland.de	A	81.169.155.87	86400	0	\N | ||||
| 109	13	*.freie-musikschule-sohland.de	CNAME	www.freie-musikschule-sohland.de	86400	0	\N | ||||
| 110	14	hondaracingclub.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 111	14	hondaracingclub.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 112	14	hondaracingclub.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 113	14	hondaracingclub.de	A	81.169.155.87	86400	0	\N | ||||
| 114	14	hondaracingclub.de	MX	gnuviech.info	86400	5	\N | ||||
| 115	14	hondaracingclub.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 116	14	www.hondaracingclub.de	A	81.169.155.87	86400	0	\N | ||||
| 117	14	*.hondaracingclub.de	CNAME	www.hondaracingclub.de	86400	0	\N | ||||
| 118	15	jesusgemeindesohland.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006031901 86400 7200 1209600 86400	86400	0	\N | ||||
| 119	15	jesusgemeindesohland.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 120	15	jesusgemeindesohland.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 121	15	jesusgemeindesohland.de	A	81.169.155.87	86400	0	\N | ||||
| 122	15	jesusgemeindesohland.de	MX	gnuviech.info	86400	5	\N | ||||
| 123	15	jesusgemeindesohland.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 124	15	www.jesusgemeindesohland.de	A	81.169.155.87	86400	0	\N | ||||
| 125	15	*.jesusgemeindesohland.de	CNAME	www.jesusgemeindesohland.de	86400	0	\N | ||||
| 126	16	jugendwoche2006.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006051701 86400 7200 1209600 86400	86400	0	\N | ||||
| 127	16	jugendwoche2006.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 128	16	jugendwoche2006.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 129	16	jugendwoche2006.de	A	81.169.155.87	86400	0	\N | ||||
| 130	16	jugendwoche2006.de	MX	gnuviech.info	86400	5	\N | ||||
| 131	16	jugendwoche2006.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 132	16	www.jugendwoche2006.de	A	81.169.155.87	86400	0	\N | ||||
| 133	16	*.jugendwoche2006.de	CNAME	www.jugendwoche2006.de	86400	0	\N | ||||
| 134	17	katja-schumann.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006031901 86400 7200 1209600 86400	86400	0	\N | ||||
| 135	17	katja-schumann.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 136	17	katja-schumann.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 137	17	katja-schumann.de	A	81.169.155.87	86400	0	\N | ||||
| 138	17	katja-schumann.de	MX	gnuviech.info	86400	5	\N | ||||
| 139	17	katja-schumann.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 140	17	www.katja-schumann.de	A	81.169.155.87	86400	0	\N | ||||
| 141	17	*.katja-schumann.de	CNAME	www.katja-schumann.de	86400	0	\N | ||||
| 142	18	ortodontia.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005101702 86400 7200 1209600 86400	86400	0	\N | ||||
| 143	18	ortodontia.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 144	18	ortodontia.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 145	18	ortodontia.de	A	81.169.155.87	86400	0	\N | ||||
| 146	18	ortodontia.de	MX	gnuviech.info	86400	5	\N | ||||
| 147	18	ortodontia.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 148	18	www.ortodontia.de	A	81.169.155.87	86400	0	\N | ||||
| 149	18	*.ortodontia.de	CNAME	www.ortodontia.de	86400	0	\N | ||||
| 150	19	ostmodern.org	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006022001 86400 7200 1209600 86400	86400	0	\N | ||||
| 151	19	ostmodern.org	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 152	19	ostmodern.org	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 153	19	ostmodern.org	A	81.169.155.87	86400	0	\N | ||||
| 154	19	ostmodern.org	MX	gnuviech.info	86400	5	\N | ||||
| 155	19	ostmodern.org	TXT	v=spf1 a mx	86400	0	\N | ||||
| 156	19	www.ostmodern.org	A	81.169.155.87	86400	0	\N | ||||
| 157	19	*.ostmodern.org	CNAME	www.ostmodern.org	86400	0	\N | ||||
| 158	20	peschel-maler.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006112800 86400 7200 1209600 86400	86400	0	\N | ||||
| 159	20	peschel-maler.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 160	20	peschel-maler.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 161	20	peschel-maler.de	A	81.169.155.87	86400	0	\N | ||||
| 162	20	peschel-maler.de	MX	gnuviech.info	86400	5	\N | ||||
| 163	20	peschel-maler.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 164	20	www.peschel-maler.de	A	81.169.155.87	86400	0	\N | ||||
| 165	20	*.peschel-maler.de	CNAME	www.peschel-maler.de	86400	0	\N | ||||
| 166	21	purity-now.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006083001 86400 7200 1209600 86400	86400	0	\N | ||||
| 167	21	purity-now.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 168	21	purity-now.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 169	21	purity-now.de	A	81.169.155.87	86400	0	\N | ||||
| 170	21	purity-now.de	MX	gnuviech.info	86400	5	\N | ||||
| 171	21	purity-now.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 172	21	www.purity-now.de	A	81.169.155.87	86400	0	\N | ||||
| 173	21	*.purity-now.de	CNAME	www.purity-now.de	86400	0	\N | ||||
| 174	22	regionalverkehr.net	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005121201 86400 7200 1209600 86400	86400	0	\N | ||||
| 175	22	regionalverkehr.net	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 176	22	regionalverkehr.net	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 177	22	regionalverkehr.net	A	81.169.155.87	86400	0	\N | ||||
| 178	22	regionalverkehr.net	MX	gnuviech.info	86400	5	\N | ||||
| 179	22	regionalverkehr.net	TXT	v=spf1 a mx	86400	0	\N | ||||
| 180	22	www.regionalverkehr.net	A	81.169.155.87	86400	0	\N | ||||
| 181	22	*.regionalverkehr.net	CNAME	www.regionalverkehr.net	86400	0	\N | ||||
| 182	23	rundkino-dresden.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006112400 86400 7200 1209600 86400	86400	0	\N | ||||
| 183	23	rundkino-dresden.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 184	23	rundkino-dresden.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 185	23	rundkino-dresden.de	A	81.169.155.87	86400	0	\N | ||||
| 186	23	rundkino-dresden.de	MX	gnuviech.info	86400	5	\N | ||||
| 187	23	rundkino-dresden.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 188	23	www.rundkino-dresden.de	A	81.169.155.87	86400	0	\N | ||||
| 189	23	*.rundkino-dresden.de	CNAME	www.rundkino-dresden.de	86400	0	\N | ||||
| 190	24	scheune-sohland.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006030102 86400 7200 1209600 86400	86400	0	\N | ||||
| 191	24	scheune-sohland.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 192	24	scheune-sohland.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 193	24	scheune-sohland.de	A	81.169.155.87	86400	0	\N | ||||
| 194	24	scheune-sohland.de	MX	mail.gnuviech.info	86400	5	\N | ||||
| 195	24	scheune-sohland.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 196	24	www.scheune-sohland.de	A	81.169.155.87	86400	0	\N | ||||
| 197	24	*.scheune-sohland.de	CNAME	www.scheune-sohland.de	86400	0	\N | ||||
| 198	25	spare-beatz.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005090501 86400 7200 1209600 86400	86400	0	\N | ||||
| 199	25	spare-beatz.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 200	25	spare-beatz.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 201	25	spare-beatz.de	A	81.169.155.87	86400	0	\N | ||||
| 202	25	spare-beatz.de	MX	gnuviech.info	86400	5	\N | ||||
| 203	25	spare-beatz.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 204	25	www.spare-beatz.de	A	81.169.155.87	86400	0	\N | ||||
| 205	25	*.spare-beatz.de	CNAME	www.spare-beatz.de	86400	0	\N | ||||
| 206	26	tntlive.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006100401 10000 7200 1209600 86400	86400	0	\N | ||||
| 207	26	tntlive.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 208	26	tntlive.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 209	26	tntlive.de	A	81.169.155.87	86400	0	\N | ||||
| 210	26	tntlive.de	MX	gnuviech.info	86400	5	\N | ||||
| 211	26	tntlive.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 212	26	*.tntlive.de	CNAME	www.tntlive.de	86400	0	\N | ||||
| 213	26	www.tntlive.de	A	81.169.155.87	86400	0	\N | ||||
| 214	27	wagner-sound.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005081701 86400 7200 1209600 86400	86400	0	\N | ||||
| 215	27	wagner-sound.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 216	27	wagner-sound.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 217	27	wagner-sound.de	A	81.169.155.87	86400	0	\N | ||||
| 218	27	wagner-sound.de	MX	gnuviech.info	86400	5	\N | ||||
| 219	27	wagner-sound.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 220	27	www.wagner-sound.de	A	81.169.155.87	86400	0	\N | ||||
| 221	27	*.wagner-sound.de	CNAME	www.wagner-sound.de	86400	0	\N | ||||
| 222	28	winproject.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2006100302 10000 7200 1209600 86400	86400	0	\N | ||||
| 223	28	winproject.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 224	28	winproject.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 225	28	winproject.de	A	81.169.155.87	86400	0	\N | ||||
| 226	28	winproject.de	MX	gnuviech.info	86400	5	\N | ||||
| 227	28	winproject.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 228	28	*.winproject.de	CNAME	www.winproject.de	86400	0	\N | ||||
| 229	28	www.winproject.de	A	81.169.155.87	86400	0	\N | ||||
| 230	29	zahnspange-schubert.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2005101702 86400 7200 1209600 86400	86400	0	\N | ||||
| 231	29	zahnspange-schubert.de	NS	ns1.gnuviech-server.de	86400	0	\N | ||||
| 232	29	zahnspange-schubert.de	NS	ns10.schlundtech.de	86400	0	\N | ||||
| 233	29	zahnspange-schubert.de	A	81.169.155.87	86400	0	\N | ||||
| 234	29	zahnspange-schubert.de	MX	gnuviech.info	86400	5	\N | ||||
| 235	29	zahnspange-schubert.de	TXT	v=spf1 a mx	86400	0	\N | ||||
| 236	29	www.zahnspange-schubert.de	A	81.169.155.87	86400	0	\N | ||||
| 237	29	*.zahnspange-schubert.de	CNAME	www.zahnspange-schubert.de	86400	0	\N | ||||
| 61	8	dittberner.info	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 0 10800 3600 604800 86400	86400	0	1166699628 | ||||
| 69	8	www.dittberner.info	A	81.169.155.87	86400	0	1166699628 | ||||
| 67	8	*.dittberner.info	CNAME	www.dittberner.info	86400	0	1166699628 | ||||
| 66	8	dittberner.info	TXT	v=spf1 a mx -all	86400	0	1166699628 | ||||
| 65	8	dittberner.info	MX	gnuviech.info	86400	5	1166699628 | ||||
| 64	8	dittberner.info	A	81.169.155.87	86400	0	1166699628 | ||||
| 63	8	dittberner.info	NS	ns10.schlundtech.de	86400	0	1166699628 | ||||
| 62	8	dittberner.info	NS	ns1.gnuviech-server.de	86400	0	1166699628 | ||||
| 17	2	hetzgnu.gnuviech-server.de	A	88.198.120.250	86400	0	2006122203 | ||||
| 18	2	jabber.gnuviech-server.de	A	88.198.120.250	86400	0	2006122203 | ||||
| 20	2	*.gnuviech-server.de	CNAME	gnuviech-server.de	86400	0	2007010301 | ||||
| 16	2	www.gnuviech-server.de	A	88.198.120.250	86400	0	2007010301 | ||||
| 9	2	gnuviech-server.de	SOA	ns1.gnuviech-server.de hostmaster.gnuviech.info 2007010301 10000 7200 1209600 86400	86400	0	2007010301 | ||||
| \. | ||||
| 
 | ||||
| 
 | ||||
| -- | ||||
| -- Data for Name: supermasters; Type: TABLE DATA; Schema: public; Owner: postgres | ||||
| -- | ||||
| 
 | ||||
| COPY supermasters (ip, nameserver, account) FROM stdin; | ||||
| \. | ||||
| 
 | ||||
| 
 | ||||
| -- | ||||
| -- PostgreSQL database dump complete | ||||
| -- | ||||
| 
 | ||||
|  | @ -1,93 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| import getopt | ||||
| import sys | ||||
| from gnuviechadmin.dblayer import * | ||||
| 
 | ||||
| 
 | ||||
| def usage(): | ||||
|     print """Usage information: | ||||
| ===================== | ||||
| %(process)s -h|--help | ||||
| - prints this help text | ||||
| 
 | ||||
| %(process)s --firstname=<firstname> --lastname=<lastname> \ | ||||
|   --address1=<address1> --town=<town> --zipcode=<zipcode> \ | ||||
|   [--address2=<address2>] [--country=<country>] [--state=<state>] \ | ||||
|   [--active=true|false] [--phone=<phone>] [--mobile=<mobile>] | ||||
| - adds a new client | ||||
| """ % {'process': sys.argv[0]} | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     try: | ||||
|         (options, args) = getopt.getopt(sys.argv[1:], "h", | ||||
|                                         ['help', | ||||
|                                          'firstname=', 'lastname=', | ||||
|                                          'address1=', | ||||
|                                          'town=', 'zipcode=', 'address2=', | ||||
|                                          'country=', 'state=', 'active=', | ||||
|                                          'phone=', 'mobile=']) | ||||
|     except getopt.GetoptError: | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     if (not options or | ||||
|         '-h' in dict(options) or | ||||
|         '--help' in dict(options) or | ||||
|         not '--firstname' in dict(options) or | ||||
|         not '--lastname' in dict(options) or | ||||
|         not '--address1' in dict(options) or | ||||
|         not '--town' in dict(options) or | ||||
|         not '--zipcode' in dict(options) or | ||||
|         not dict(options)['--firstname'].strip() or | ||||
|         not dict(options)['--lastname'].strip() or | ||||
|         not dict(options)['--address1'].strip() or | ||||
|         not dict(options)['--town'].strip() or | ||||
|         not dict(options)['--zipcode'].strip()): | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     po = dict(options) | ||||
|     for key in po.keys(): | ||||
|         po[key] = po[key].strip() | ||||
|     client = Client() | ||||
|     client.firstname = po['--firstname'] | ||||
|     client.lastname = po['--lastname'] | ||||
|     client.address1 = po['--address1'] | ||||
|     client.town = po['--town'] | ||||
|     client.zipcode = po['--zipcode'] | ||||
|     if '--active' in po: | ||||
|         client.active = (po['--active'] == 'true') | ||||
|     else: | ||||
|         client.active = True | ||||
|     if '--address2' in po and po['--address2']: | ||||
|         client.address2 = po['--address2'] | ||||
|     if '--country' in po and po['--country']: | ||||
|         client.country = po['--country'] | ||||
|     if '--state' in po and po['--state']: | ||||
|         client.state = po['--state'] | ||||
|     if '--phone' in po and po['--phone']: | ||||
|         client.phone = po['--phone'] | ||||
|     if '--mobile' in po and po['--mobile']: | ||||
|         client.mobile = po['--mobile'] | ||||
|     session.save(client) | ||||
|     session.flush() | ||||
|  | @ -1,77 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| import getopt | ||||
| import sys | ||||
| from gnuviechadmin.dblayer import * | ||||
| 
 | ||||
| 
 | ||||
| def usage(): | ||||
|     print """Usage information: | ||||
| ===================== | ||||
| %(process)s -h|--help | ||||
| - prints this help text | ||||
| 
 | ||||
| %(process)s --domain=<domain> --sysuser=<sysuser> --type=MASTER|SLAVE \ | ||||
|   [[--ns=<nameserver>] [--mx=<mxserver[,prio]>] [--a=<ipaddress>] ...] | ||||
| - adds a new domain | ||||
| """ % {'process': sys.argv[0]} | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     try: | ||||
|         (options, args) = getopt.getopt(sys.argv[1:], "h", | ||||
|                                         ['help', | ||||
|                                          'domain=', 'sysuser=', | ||||
|                                          'type=', 'ns=', 'mx=', 'a=']) | ||||
|     except getopt.GetoptError: | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     if (not options or | ||||
|         '-h' in dict(options) or | ||||
|         '--help' in dict(options) or | ||||
|         not '--domain' in dict(options) or | ||||
|         not '--sysuser' in dict(options) or | ||||
|         not dict(options)['--sysuser'].strip() or | ||||
|         not dict(options)['--domain'].strip()): | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     po = {} | ||||
|     for (key, value) in options: | ||||
|         if key in po: | ||||
|             po[key].append(value.strip()) | ||||
|         else: | ||||
|             po[key] = [value.strip()] | ||||
| 
 | ||||
|     # fetch the sysuser | ||||
|     query = session.query(SysUser) | ||||
|     sysuser = query.get_by(name = po['--sysuser'][0]) | ||||
|     if not sysuser: | ||||
|         print "Invalid system user" | ||||
|         allsysusers = query.get_by(name = '*') | ||||
|         if allsysusers: | ||||
|             print "Valid system users are:\n%s" % ("\n".join(allsysusers)) | ||||
|         else: | ||||
|             print "No system users defined yet." | ||||
|             sys.exit(1) | ||||
| 
 | ||||
|     print sysuser.domains | ||||
|  | @ -1,64 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| import getopt | ||||
| import sys | ||||
| from gnuviechadmin.dblayer import * | ||||
| 
 | ||||
| 
 | ||||
| def usage(): | ||||
|     print """Usage information: | ||||
| ===================== | ||||
| %(process)s -h|--help | ||||
| - prints this help text | ||||
| 
 | ||||
| %(process)s --domain=<domain> [--password=<password>] | ||||
| - adds a new pop user for the given domain | ||||
| - if the optional password is ommitted a generated one is used | ||||
| - the password is checked using cracklib | ||||
| - if the password is too weak a generated one is used | ||||
| """ % {'process': sys.argv[0]} | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     try: | ||||
|         (options, args) = getopt.getopt(sys.argv[1:], "h", | ||||
|                                         ['help', 'password=', 'domain=']) | ||||
|     except getopt.GetoptError: | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     if (not options or | ||||
|         '-h' in dict(options) or | ||||
|         '--help' in dict(options) or | ||||
|         not '--domain' in dict(options) or | ||||
|         not dict(options)['--domain'].strip()): | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     # specify the domain | ||||
|     query = session.query(Domain) | ||||
|     domain = query.get_by(name = dict(options)['--domain'].strip()) | ||||
|     if not domain: | ||||
|         print "Invalid Domain" | ||||
|         print "valid domains are:\n%s" % ("\n".join(query.get())) | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     print domain.popaccounts | ||||
|  | @ -1,72 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| import getopt | ||||
| import sys | ||||
| from gnuviechadmin.dblayer import * | ||||
| 
 | ||||
| 
 | ||||
| def usage(): | ||||
|     print """Usage information: | ||||
| ===================== | ||||
| %(process)s -h|--help | ||||
| - prints this help text | ||||
| 
 | ||||
| %(process)s --type=admin|reseller|client --clientid=<clientid> \ | ||||
|  [--name=<name>] [--home=<home>] [--shell=<shell>] [--password] \ | ||||
|  [--sysuid=<uid>] | ||||
| - adds a new system user | ||||
| """ % {'process': sys.argv[0]} | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     try: | ||||
|         (options, args) = getopt.getopt(sys.argv[1:], "h", | ||||
|                                         ['help', 'type=', 'clientid=', | ||||
|                                          'name=', 'home=', 'shell=', | ||||
|                                          'password=', 'sysuid=']) | ||||
|     except getopt.GetoptError: | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     if (not options or | ||||
|         '-h' in dict(options) or | ||||
|         '--help' in dict(options) or | ||||
|         not '--type' in dict(options) or | ||||
|         not '--clientid' in dict(options) or | ||||
|         not dict(options)['--type'].strip() or | ||||
|         not dict(options)['--clientid'].strip() or | ||||
|         not dict(options)['--type'].strip() in ('admin', 'reseller', | ||||
|                                                 'client')): | ||||
|         usage() | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     query = session.query(Client) | ||||
|     client = query.get_by(clientid = dict(options)['--clientid'].strip()) | ||||
|     if not client: | ||||
|         print "Invalid client" | ||||
|     allclients = query.select() | ||||
|     if allclients: | ||||
|         print "Valid clients are:\n- %s" % "\n- ".join( | ||||
|           [str(client) for client in allclients]) | ||||
|     else: | ||||
|         print "No clients defined yet." | ||||
|     sys.exit(1) | ||||
| 
 | ||||
|     print client.sysusers | ||||
|  | @ -1,4 +0,0 @@ | |||
| This is a database migration repository. | ||||
| 
 | ||||
| More information at | ||||
| http://trac.erosson.com/migrate | ||||
|  | @ -1,4 +0,0 @@ | |||
| #!/usr/bin/python | ||||
| from migrate.versioning.shell import main | ||||
| 
 | ||||
| main(repository='gnuviechadmin') | ||||
|  | @ -1,20 +0,0 @@ | |||
| [db_settings] | ||||
| # Used to identify which repository this database is versioned under. | ||||
| # You can use the name of your project. | ||||
| repository_id=GNUViech Admin | ||||
| 
 | ||||
| # The name of the database table used to track the schema version. | ||||
| # This name shouldn't already be used by your project. | ||||
| # If this is changed once a database is under version control, you'll need to  | ||||
| # change the table name in each database too.  | ||||
| version_table=migrate_version | ||||
| 
 | ||||
| # When committing a change script, Migrate will attempt to generate the  | ||||
| # sql for all supported databases; normally, if one of them fails - probably | ||||
| # because you don't have that database installed - it is ignored and the  | ||||
| # commit continues, perhaps ending successfully.  | ||||
| # Databases in this list MUST compile successfully during a commit, or the  | ||||
| # entire commit will fail. List the databases your application will actually  | ||||
| # be using to ensure your updates to that database work properly. | ||||
| # This must be a list; example: ['postgres','sqlite'] | ||||
| required_dbs=[] | ||||
|  | @ -1,35 +0,0 @@ | |||
| # setup tables for spamassassin | ||||
| from sqlalchemy import * | ||||
| from migrate import * | ||||
| 
 | ||||
| meta = BoundMetaData(migrate_engine) | ||||
| domains = Table('domains', meta, autoload = True) | ||||
| mailalias = Table( | ||||
|     'mailalias', meta, | ||||
|     Column('mailaliasid', Integer, primary_key = True), | ||||
|     Column('domainid', Integer, ForeignKey('domains.id'), nullable = False), | ||||
|     Column('email', String(255), nullable = False), | ||||
|     Column('target', TEXT, nullable = False), | ||||
|     UniqueConstraint('email', 'domainid')) | ||||
| 
 | ||||
| mailpassword = Table( | ||||
|     'mailpassword', meta, | ||||
|     Column('id', String(18), primary_key = True), | ||||
|     Column('domainid', Integer, ForeignKey('domains.id'), nullable = False), | ||||
|     Column('uid', Integer, nullable = False), | ||||
|     Column('gid', Integer, nullable = False), | ||||
|     Column('home', String(255), nullable = False), | ||||
|     Column('cryptpass', String(34), nullable = False), | ||||
|     Column('clearpass', String(64), nullable = False), | ||||
|     Column('spamcheck', Boolean, default = False), | ||||
|     Column('sajunkscore', Integer)) | ||||
| 
 | ||||
| 
 | ||||
| def upgrade(): | ||||
|     mailalias.create() | ||||
|     mailpassword.create() | ||||
| 
 | ||||
| 
 | ||||
| def downgrade(): | ||||
|     mailpassword.drop() | ||||
|     mailalias.drop() | ||||
|  | @ -1,42 +0,0 @@ | |||
| from sqlalchemy import * | ||||
| from migrate import * | ||||
| 
 | ||||
| meta = BoundMetaData(migrate_engine) | ||||
| client_table = Table( | ||||
|     'client', meta, | ||||
|     Column('clientid', Integer, primary_key = True), | ||||
|     Column('firstname', String(40), nullable = False), | ||||
|     Column('lastname', String(40), nullable = False), | ||||
|     Column('address1', String(40), nullable = False), | ||||
|     Column('address2', String(40)), | ||||
|     Column('country', String(40)), | ||||
|     Column('town', String(50), nullable = False), | ||||
|     Column('zipcode', String(5), nullable = False), | ||||
|     Column('state', String(40)), | ||||
|     Column('active', Boolean, default = False, nullable = False), | ||||
|     Column('phone', String(20)), | ||||
|     Column('mobile', String(20))) | ||||
| 
 | ||||
| sysuser_table = Table( | ||||
|     'sysuser', meta, | ||||
|     Column('sysuserid', Integer, primary_key = True), | ||||
|     Column('name', String(12), nullable = False), | ||||
|     Column('type', Integer, default = 0, nullable = False), | ||||
|     Column('home', String(128)), | ||||
|     Column('shell', Boolean), | ||||
|     Column('password', String(64)), | ||||
|     Column('clientid', Integer, ForeignKey('client.clientid'), | ||||
|            nullable = False), | ||||
|     Column('toupdate', Boolean, default = False, nullable = False), | ||||
|     Column('md5pass', String(34)), | ||||
|     Column('sysuid', Integer)) | ||||
| 
 | ||||
| 
 | ||||
| def upgrade(): | ||||
|     client_table.create() | ||||
|     sysuser_table.create() | ||||
| 
 | ||||
| 
 | ||||
| def downgrade(): | ||||
|     sysuser_table.drop() | ||||
|     client_table.drop() | ||||
|  | @ -1,19 +0,0 @@ | |||
| from sqlalchemy import * | ||||
| from migrate import * | ||||
| import migrate.changeset | ||||
| 
 | ||||
| meta = BoundMetaData(migrate_engine) | ||||
| sysuser = Table('sysuser', meta, autoload = True) | ||||
| domains = Table('domains', meta, autoload = True) | ||||
| sysuidrefcol = Column('sysuserid', Integer, | ||||
|                       ForeignKey('sysuser.sysuserid'), | ||||
|                       nullable = False) | ||||
| 
 | ||||
| 
 | ||||
| def upgrade(): | ||||
|     sysuidrefcol.create(domains) | ||||
| 
 | ||||
| 
 | ||||
| def downgrade(): | ||||
|     col = domains.c.sysuserid | ||||
|     col.drop() | ||||
|  | @ -1,16 +0,0 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| dirname=$(pwd) | ||||
| dbname=testdb | ||||
| dbuser=jan | ||||
| dbpassword=heyyou97 | ||||
| reponame=gnuviechadmin | ||||
| dburl=postgres://$dbuser:$dbpassword@localhost:5432/$dbname | ||||
| 
 | ||||
| sudo su - postgres -c "createdb -O $dbuser -E UTF-8 $dbname" | ||||
| sudo su - postgres -c "psql $dbname < $dirname/initdb.sql" | ||||
| 
 | ||||
| #migrate create $reponame "GNUViech Admin" | ||||
| migrate version_control $dburl $reponame | ||||
| migrate manage manage.py --repository=$reponame --url=$dburl | ||||
| python manage.py upgrade | ||||
|  | @ -1,188 +0,0 @@ | |||
| -- initial schema setup for postgresql | ||||
| 
 | ||||
| -- spamassassin bayes storage | ||||
| 
 | ||||
| CREATE PROCEDURAL LANGUAGE plpgsql; | ||||
| 
 | ||||
| SET search_path = public, pg_catalog; | ||||
| 
 | ||||
| CREATE TABLE bayes_expire ( | ||||
|   id integer NOT NULL default '0', | ||||
|   runtime integer NOT NULL default '0' | ||||
| ) WITHOUT OIDS; | ||||
| 
 | ||||
| CREATE INDEX bayes_expire_idx1 ON bayes_expire (id); | ||||
| 
 | ||||
| CREATE TABLE bayes_global_vars ( | ||||
|   variable varchar(30) NOT NULL default '', | ||||
|   value varchar(200) NOT NULL default '', | ||||
|   PRIMARY KEY  (variable) | ||||
| ) WITHOUT OIDS; | ||||
| 
 | ||||
| INSERT INTO bayes_global_vars VALUES ('VERSION','3'); | ||||
| 
 | ||||
| CREATE TABLE bayes_seen ( | ||||
|   id integer NOT NULL default '0', | ||||
|   msgid varchar(200) NOT NULL default '', | ||||
|   flag character(1) NOT NULL default '', | ||||
|   PRIMARY KEY  (id,msgid) | ||||
| ) WITHOUT OIDS; | ||||
| 
 | ||||
| CREATE TABLE bayes_token ( | ||||
|   id integer NOT NULL default '0', | ||||
|   token bytea NOT NULL default '', | ||||
|   spam_count integer NOT NULL default '0', | ||||
|   ham_count integer NOT NULL default '0', | ||||
|   atime integer NOT NULL default '0', | ||||
|   PRIMARY KEY  (id,token) | ||||
| ) WITHOUT OIDS; | ||||
| 
 | ||||
| CREATE INDEX bayes_token_idx1 ON bayes_token (token); | ||||
| 
 | ||||
| CREATE TABLE bayes_vars ( | ||||
|   id serial NOT NULL, | ||||
|   username varchar(200) NOT NULL default '', | ||||
|   spam_count integer NOT NULL default '0', | ||||
|   ham_count integer NOT NULL default '0', | ||||
|   token_count integer NOT NULL default '0', | ||||
|   last_expire integer NOT NULL default '0', | ||||
|   last_atime_delta integer NOT NULL default '0', | ||||
|   last_expire_reduce integer NOT NULL default '0', | ||||
|   oldest_token_age integer NOT NULL default '2147483647', | ||||
|   newest_token_age integer NOT NULL default '0', | ||||
|   PRIMARY KEY  (id) | ||||
| ) WITHOUT OIDS; | ||||
| 
 | ||||
| CREATE UNIQUE INDEX bayes_vars_idx1 ON bayes_vars (username); | ||||
| 
 | ||||
| CREATE OR REPLACE FUNCTION greatest_int (integer, integer) | ||||
|  RETURNS INTEGER | ||||
|  IMMUTABLE STRICT | ||||
|  AS 'SELECT CASE WHEN $1 < $2 THEN $2 ELSE $1 END;' | ||||
|  LANGUAGE SQL; | ||||
| 
 | ||||
| CREATE OR REPLACE FUNCTION least_int (integer, integer) | ||||
|  RETURNS INTEGER | ||||
|  IMMUTABLE STRICT | ||||
|  AS 'SELECT CASE WHEN $1 < $2 THEN $1 ELSE $2 END;' | ||||
|  LANGUAGE SQL; | ||||
| 
 | ||||
| CREATE OR REPLACE FUNCTION put_tokens(inuserid INTEGER, | ||||
|                                       intokenary BYTEA[], | ||||
|                                       inspam_count INTEGER, | ||||
|                                       inham_count INTEGER, | ||||
|                                       inatime INTEGER) | ||||
| RETURNS VOID AS '  | ||||
| DECLARE | ||||
|   _token BYTEA; | ||||
|   new_tokens INTEGER := 0; | ||||
| BEGIN | ||||
|   for i in array_lower(intokenary, 1) .. array_upper(intokenary, 1) | ||||
|   LOOP | ||||
|     _token := intokenary[i]; | ||||
|     UPDATE bayes_token | ||||
|        SET spam_count = greatest_int(spam_count + inspam_count, 0), | ||||
|            ham_count = greatest_int(ham_count + inham_count, 0), | ||||
|            atime = greatest_int(atime, inatime) | ||||
|      WHERE id = inuserid  | ||||
|        AND token = _token; | ||||
|     IF NOT FOUND THEN  | ||||
|       -- we do not insert negative counts, just return true | ||||
|       IF NOT (inspam_count < 0 OR inham_count < 0) THEN | ||||
|         INSERT INTO bayes_token (id, token, spam_count, ham_count, atime)  | ||||
|         VALUES (inuserid, _token, inspam_count, inham_count, inatime);  | ||||
|         IF FOUND THEN | ||||
|           new_tokens := new_tokens + 1; | ||||
|         END IF; | ||||
|       END IF; | ||||
|     END IF; | ||||
|   END LOOP; | ||||
| 
 | ||||
|   IF new_tokens > 0 AND inatime > 0 THEN | ||||
|     UPDATE bayes_vars | ||||
|        SET token_count = token_count + new_tokens, | ||||
|            newest_token_age = greatest_int(newest_token_age, inatime), | ||||
|            oldest_token_age = least_int(oldest_token_age, inatime) | ||||
|      WHERE id = inuserid; | ||||
|   ELSEIF new_tokens > 0 AND NOT inatime > 0 THEN | ||||
|     UPDATE bayes_vars | ||||
|        SET token_count = token_count + new_tokens | ||||
|      WHERE id = inuserid; | ||||
|   ELSEIF NOT new_tokens > 0 AND inatime > 0 THEN | ||||
|     UPDATE bayes_vars | ||||
|        SET newest_token_age = greatest_int(newest_token_age, inatime), | ||||
|            oldest_token_age = least_int(oldest_token_age, inatime) | ||||
|      WHERE id = inuserid; | ||||
|   END IF; | ||||
|   RETURN; | ||||
| END;  | ||||
| ' LANGUAGE 'plpgsql';  | ||||
| 
 | ||||
| -- tables for spamassassin auto-whitelists | ||||
| 
 | ||||
| CREATE TABLE awl ( | ||||
|   username varchar(100) NOT NULL default '', | ||||
|   email varchar(200) NOT NULL default '', | ||||
|   ip varchar(10) NOT NULL default '', | ||||
|   count bigint default '0', | ||||
|   totscore float default '0' | ||||
| ); | ||||
| CREATE UNIQUE INDEX awl_pkey ON awl (username,email,ip); | ||||
| 
 | ||||
| -- tables for spamassassin user preferences | ||||
| 
 | ||||
| CREATE TABLE userpref ( | ||||
|   prefid bigserial NOT NULL unique primary key, | ||||
|   username varchar(100) NOT NULL, | ||||
|   preference varchar(30) NOT NULL, | ||||
|   value varchar(100) NOT NULL | ||||
| ); | ||||
| CREATE INDEX userpref_username_idx ON userpref(username); | ||||
| 
 | ||||
| -- tables for powerdns | ||||
| 
 | ||||
| CREATE TABLE domains ( | ||||
|   id SERIAL PRIMARY KEY, | ||||
|   name VARCHAR(255) NOT NULL UNIQUE, | ||||
|   master VARCHAR(20) DEFAULT NULL, | ||||
|   last_check INT DEFAULT NULL, | ||||
|   type VARCHAR(6) NOT NULL, | ||||
|   notified_serial INT DEFAULT NULL, | ||||
|   account VARCHAR(40) DEFAULT NULL | ||||
| ); | ||||
| 
 | ||||
| CREATE TABLE records ( | ||||
|   id SERIAL PRIMARY KEY, | ||||
|   domain_id INT DEFAULT NULL, | ||||
|   name VARCHAR(255) DEFAULT NULL, | ||||
|   type VARCHAR(6) DEFAULT NULL, | ||||
|   content VARCHAR(255) DEFAULT NULL, | ||||
|   ttl INT DEFAULT NULL, | ||||
|   prio INT DEFAULT NULL, | ||||
|   change_date INT DEFAULT NULL, | ||||
|   CONSTRAINT domain_exists | ||||
|   FOREIGN KEY(domain_id) REFERENCES domains(id) | ||||
|   ON DELETE CASCADE | ||||
| ); | ||||
| 
 | ||||
| CREATE INDEX rec_name_index ON records(name); | ||||
| CREATE INDEX nametype_index ON records(name, type); | ||||
| CREATE INDEX domain_id ON records(domain_id); | ||||
| 
 | ||||
| CREATE TABLE supermasters ( | ||||
|   ip VARCHAR(25) NOT NULL, | ||||
|   nameserver VARCHAR(255) NOT NULL, | ||||
|   account VARCHAR(40) DEFAULT NULL | ||||
| ); | ||||
| 
 | ||||
| GRANT ALL ON supermasters TO jan; | ||||
| GRANT ALL ON domains TO jan; | ||||
| GRANT ALL ON domains_id_seq TO jan; | ||||
| GRANT ALL ON records TO jan; | ||||
| GRANT ALL ON records_id_seq TO jan; | ||||
| 
 | ||||
| -- GRANT SELECT ON supermasters TO pdns; | ||||
| -- GRANT ALL ON domains TO pdns; | ||||
| -- GRANT ALL ON domains_id_seq TO pdns; | ||||
| -- GRANT ALL ON records TO pdns; | ||||
| -- GRANT ALL ON records_id_seq TO pdns; | ||||
|  | @ -1,5 +0,0 @@ | |||
| #!/usr/bin/python | ||||
| from migrate.versioning.shell import main | ||||
| 
 | ||||
| main(url='postgres://jan:heyyou97@localhost:5432/testdb', | ||||
|      repository='gnuviechadmin') | ||||
|  | @ -1,43 +0,0 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| from sqlalchemy import * | ||||
| from entities import * | ||||
| 
 | ||||
| db = create_engine('postgres://jan:heyyou97@localhost:5432/testdb') | ||||
| 
 | ||||
| metadata = BoundMetaData(db) | ||||
| 
 | ||||
| domains_table = Table('domains', metadata, autoload = True) | ||||
| sysuser_table = Table('sysuser', metadata, autoload = True) | ||||
| mailpassword_table = Table('mailpassword', metadata, autoload = True) | ||||
| client_table = Table('client', metadata, autoload = True) | ||||
| 
 | ||||
| popaccountmapper = mapper(PopAccount, mailpassword_table) | ||||
| 
 | ||||
| domainmapper = mapper(Domain, domains_table) | ||||
| domainmapper.add_property('popaccounts', relation(PopAccount)) | ||||
| 
 | ||||
| sysusermapper = mapper(SysUser, sysuser_table) | ||||
| 
 | ||||
| clientmapper = mapper(Client, client_table) | ||||
| clientmapper.add_property('sysusers', relation(SysUser)) | ||||
| 
 | ||||
| session = create_session() | ||||
|  | @ -1,75 +0,0 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright (C) 2007, 2008 by Jan Dittberner. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||||
| # USA. | ||||
| # | ||||
| # Version: $Id$ | ||||
| 
 | ||||
| 
 | ||||
| class Client(object): | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "%s(clientid=%s,firstname=%s,lastname=%s)" % \ | ||||
|                (self.__class__.__name__, | ||||
|                 self.clientid, | ||||
|                 self.firstname, | ||||
|                 self.lastname) | ||||
| 
 | ||||
| 
 | ||||
| class PopAccount(object): | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "%s(%s,%d,%d,%d,%s,%s,%s)" % \ | ||||
|                (self.__class__.__name__, | ||||
|                 self.id, | ||||
|                 self.domainid, | ||||
|                 self.uid, | ||||
|                 self.gid, | ||||
|                 self.home, | ||||
|                 self.cryptpass, | ||||
|                 self.clearpass) | ||||
| 
 | ||||
| 
 | ||||
| class SysUser(object): | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "%s(%d,%s,%d,%s,%s,%s,%d,%d,%s,%d)" % \ | ||||
|                (self.__class__.__name__, | ||||
|                 self.sysuserid, | ||||
|                 self.name, | ||||
|                 self.type, | ||||
|                 self.home, | ||||
|                 self.shell, | ||||
|                 self.password, | ||||
|                 self.clientid, | ||||
|                 self.toupdate, | ||||
|                 self.md5pass, | ||||
|                 self.sysuid) | ||||
| 
 | ||||
| 
 | ||||
| class Domain(object): | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "%s(%d,%s,%s,%s,%s,%s,%s)" % \ | ||||
|                (self.__class__.__name__, | ||||
|                 self.id, | ||||
|                 self.name, | ||||
|                 self.master, | ||||
|                 self.last_check, | ||||
|                 self.type, | ||||
|                 self.notified_serial, | ||||
|                 self.account) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue