← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~jtv/maas/pkg-bug-1059485 into lp:maas

 

Jeroen T. Vermeulen has proposed merging lp:~jtv/maas/pkg-bug-1059485 into lp:maas.

Commit message:
Make maas_local_celery_config.py non-readable to the world at large; it contains RabbitMQ credentials.  The "maas" group (under which the application should run) can still read it.  Only root can write it.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1059485 in maas (Ubuntu): "maas_local_celeryconfig.py is world readable"
  https://bugs.launchpad.net/ubuntu/+source/maas/+bug/1059485

For more details, see:
https://code.launchpad.net/~jtv/maas/pkg-bug-1059485/+merge/127232

Pre-imped by means of a quick sanity check on IRC.  Discovered in the process that we were accidentally running the region worker as root.  Julian is fixing that.


Jeroen
-- 
https://code.launchpad.net/~jtv/maas/pkg-bug-1059485/+merge/127232
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~jtv/maas/pkg-bug-1059485 into lp:maas.
=== added directory 'debian'
=== added file 'debian/changelog'
--- debian/changelog	1970-01-01 00:00:00 +0000
+++ debian/changelog	2012-10-01 10:40:39 +0000
@@ -0,0 +1,490 @@
+maas (0.1+bzr1116+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New upstream release.
+
+ -- Julian Edwards <julian.edwards@xxxxxxxxxxxxx>  Mon, 01 Oct 2012 17:13:57 +1000
+
+maas (0.1+bzr1110+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New Upstream Release
+
+  [ Julian Edwards ]
+  * Split packaging of 'maas' into maas-{region,cluster}-controller
+    - debian/control: Update accordingly.
+    - debian/*.install: Move files accordingly
+    - debian/*.{postinst,postrm,preinst}: Move files accordingly.
+
+  [ Andres Rodriguez ]
+  * debian/maas-region-controller.postinst: Cleanup upgrade rules.
+  * debian/maas-cluster-controller.postinst: Fix 'local' usage.
+  * debian/maas-common.install: Install celeryconfig in appropriate location.
+  * debian/maas-cluster-controller.postrm: Add and delete maas user.
+
+  [ Raphael Badin ]
+  * Use maas_local_celeryconfig_cluster.py as the local celery
+    configuration file for the cluster worker.
+  * debian/maas-region-controller.maas-region-celery.upstart: Add region
+    worker upstart script.
+  * Rename cluster worker upstart script into
+    maas-cluster-controller.maas-clluster-celery.upstart.
+  * maas-cluster-controller.maas-celery.upstart: use "celeryconfig_cluster"
+    as the Celery config module.
+  * debian/maas-common.install: Install celeryconfig_common.py.
+  * debian/maas-cluster-controller.install: Install celeryconfig_cluster.py.
+  * debian/maas-region-controller.install: Install celeryconfig.py.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Fri, 28 Sep 2012 16:54:28 -0400
+
+maas (0.1+bzr1063+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New upstream release
+
+  [ Scott Moser ]
+  * debian/maas-dhcp.{install,apparmor,postrm} install apparmor profile into
+    /etc/apparmor.d/dhcpd.d (LP: #1049177), and update apparmor profile for
+    /usr/sbin/dhcpd on install/remove
+  * get the ip address for the dhcp server in config
+
+  [ Diogo Matsubara ]
+  * Add initial tests to be run by autotests:
+    - debian/control: XS-Testsuite: autopkgtest
+    - debian/tests/control: Add
+    - debian/tests/maas-package-test: Add
+    - tests/maas-integration.py: Add
+
+  [ Andres Rodriguez ]
+  * debian/maas.postinst:
+    - Always restart apache2.
+    - Handle upgrades for new upstream release.
+    - Handle upgrades for celery rabbitmq worker.
+  * Add binary package to install client tool.
+    - debian/extras/maas-cli: Add binary.
+    - debian/maas-cli.install: Add. Install maascli and apiclient.
+    - debian/control: Add binary package.
+  * debian/control:
+    - Depends on freeipmi-tools instead of ipmitool.
+    - Conflicts/Replaces on maas for python-maas-client
+  * Add python-maas-client binary package:
+    - debian/python-maas-client: Add. Install 'apiclient' python module.
+    - debian/control: Add package. python-django-maas and maas-cli now
+      Depend on it.
+  * debian/rules: Install maas-dhcp-server upstart job.
+  * debian/maas.postrm: Remove celery worker rabbitmq user and host.
+  * debian/extras/99-maas-sudoers: Add for maas-dhcp-server upstart job
+    instead of isc-dhcp-server (LP: #1055951)
+
+  [ Raphael Badin ]
+  * Install maas_local_celeryconfig.py in /etc/maas and symlink to
+    /usr/share/maas.
+  * debian/maas.postinst: Create rabbitmq celery user/vhost.
+  * debian/maas.postinst: Update BROKER_URL in maas_local_celeryconfig.py.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Wed, 19 Sep 2012 14:47:04 -0400
+
+maas (0.1+bzr971+dfsg-0ubuntu2) quantal; urgency=low
+
+  * debian/extras/99-maas-sudoers: Add missing rule for
+    maas-provision. (LP: #1046397)
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Wed, 05 Sep 2012 12:36:58 -0400
+
+maas (0.1+bzr971+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New upstream release (LP: #1044367)
+
+  [ Julian Edwards ]
+  * Fix 02-pserv-config.patch to handle new default tftp directory 
+
+  [ Andres Rodriguez ]
+  * debian/maas.postinst:
+    - include '/MAAS' for DEFAULT_MAAS_URL.(LP: #1033956)
+    - Update bzr version to safely upgrade.
+  * Add maas-dns package that configures DNS in MAAS (LP: #1030860)
+  * Remove cobbler related bits
+    - debian/maas.postinst: Drop cobbler configuration
+    - debian/maas.install: Drop installation of snippets/preseeds.
+    - debian/control:
+      + Drop Depends on maas-provision. (LP: #975473)
+      + Depends on bind9utils.
+      + Depends on python-lockfile (LP: #1037400)
+      Add necessary Conflicts/Replaces. Add conflicts to tftpd-hpa and dnsmasq.
+      Depends on isc-dhcp-server for maas-dhcp, and syslinux-common.
+    - debian/extras/maas-provision: Add missing "$@" (LP: #1040462)
+    - debian/patches:
+      + 02-pserv-config.patch: Updated. Do not patch cobbler related bits.
+        patch tftp config to default.
+  * maas-dhcp: Re-add to handle initial configuration of MAAS DHCP server.
+  * Allow restart of 'isc-dhcp-server' by adding a sudoers file:
+    - debian/extras/99-maas-sudoers: Added.
+    - debian/maas.install: Install 99-maas-sudoers
+  * Minor improvements on dbconfig-common handling:
+    - debian/maas.config: Only call dbc_go when scripts present.
+    - debian/maas.postrm: Only call dbc_go when config file exists.
+  * debian/maas.maas-celery.upstart: Enable Beat and set scheduler db file.
+  * debian/maas-dns.postinst: Set correct permissions. (LP: #1042868)
+  * debian/maas-dhcp.config:
+    - Ask whether we want to enable DHCP (LP: #1044229)
+    - Add debconf question for network interfaces
+  * debian/maas.prerm: Stop services before removing database (LP: #1044559)
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 02 Aug 2012 09:01:43 -0400
+
+maas (0.1+bzr777+dfsg-0ubuntu1) quantal-proposed; urgency=low
+
+  * New upstream release
+  * Only run 'maas' command as root. (LP: #974046)
+    - debian/extras/maas: Check id.
+    - debian/maas.install: Install in 'sbin'.
+  * debian/maas.postinst:
+    - restart apache2 after everything gets processed.
+    - Update version to handle upgrades.
+  * debian/extras/maas-provision: Add wrapper to access 'maasprovisiong'
+    command line.
+  * debian/patches/99_temporary_fix_path.patch: Dropped. No longer needed.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 17 Jul 2012 08:28:36 -0400
+
+maas (0.1+bzr745+dfsg-0ubuntu2) quantal; urgency=low
+
+  * debian/control: Build-Dep on python-django instead of
+    python-django-configglue
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 17 Jul 2012 08:24:25 -0400
+
+maas (0.1+bzr745+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New Upstream Release
+  * debian/patches:
+    - 99_power_fixes.patch: Dropped. Merged Upstream.
+    - 99_enums_js.patch: Dropped. No longer needed.
+  * Automatically build enums.js:
+    - debian/control: Build-Depends on python-django-configglue
+    - debian/rules: Build and install enums.js.
+  * debian/maas.postinst: Update version to handle upgrades
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 12 Jul 2012 16:34:11 -0400
+
+maas (0.1+bzr740+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New upstream release
+  * debian/control: Depends on python-txtftp.
+  * debian/rules: Do not ship python-tx-tftp.
+  * debian/maas.postinst: Update version to upgrade successfully.
+  * debian/patches:
+    - 02-pserv-config.patch: Refreshed.
+    - 99_enums_js.patch: Updated.
+    - 99_power_fixes.patch: Added temporarily to enable IPMI
+    - 99_temporary_fix_path.patch: Added temporarily to not fail when
+      importing celeryconfig
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 03 Jul 2012 17:54:49 -0400
+
+maas (0.1+bzr709+dfsg-0ubuntu1) quantal; urgency=low
+
+  * New Upstream release
+  * debian/control:
+    - Depends on python-celery, python-tempita, libjs-yui3-{full,min},
+      libjs-raphael
+  * debian/maas.install:
+    - Install apiclient, celeryconfig.py, maas-import-pxe-files, preseeds_v2.
+    - Update to install various files from chroot, rather tha manually copy
+      them from the source.
+  * debian/maas.links: symlink celeryconfig.py
+  * debian/maas.maas-celery.upstart: Add job.
+  * debian/rules:
+    - Install celery upstart job.
+    - Do not install jslibs as packages are now used.
+    - Drop copying of maas_local_settings_sample.py as source now ships
+      a maas_local_settings.py
+  * debian/patches:
+    - 04-maas-http-fix.patch: Drop. Merged upstream.
+    - 01-fix-database-settings.patch: Refreshed.
+    - 99_enums_js.patch: Added until creation of enum.js / build process
+      is fixed.
+  * debian/maas.postinst: Update bzr version to correctly handle upgrades.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 03 Jul 2012 17:42:37 -0400
+
+maas (0.1+bzr482+dfsg-0ubuntu1) precise; urgency=low
+
+  * New upstream release (Fixes LP: #981103)
+  * debian/maas.postinst:
+    - Make sure rabbitmq and postgresql are started on upgrade (LP: #981282)
+    - Handle upgrades from any lower than 0.1+bzr462+dfsg-0ubuntu1 to
+      correctly re-generate passwords, and not have db sync/migrate issues
+      as config has changed upstream.
+    - Correctly set Passwords for PSERV, otherwise it won't set new passwords.
+  * Allow MAAS_DEFAULT_URL reconfiguration. (LP: #980970)
+    - debian/maas.config: Add reconfigure validation to correctly allow it,
+      and ask a question.
+    - debian/maas.postinst: Reconfigure DEFAULT_MAAS_URL as well as cobbler
+      server and next_server for PXE/Provisioning.
+    - debian/maas.templates: Add debconf question and update info.
+  * Do not lose MAAS_DEFAULT_URL settings on upgrade (LP: #984309)
+  * debian/maas.postinst:
+    - Set cobbler password in between quotes (LP: #984427)
+    - Do not change permissions to maas.log (LP: #980915)
+  * no longer use maas-cloudimg2ephemeral, but rather use premade images 
+    at http://maas.ubuntu.com
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 17 Apr 2012 23:44:46 -0700
+
+maas (0.1+bzr462+dfsg-0ubuntu1) precise; urgency=low
+
+  * New upstream release (LP: #980240)
+
+  [ Scott Moser ]
+  * add dependency on distro-info (LP: #949442)
+  * debian/control: add dependency on tgt for ephemeral iscsi environment
+
+  [ Andres Rodriguez ]
+  * Make package lintian clean:
+    - maas{-dhcp}.lintian-overrides: Add to make lintian clean.
+    - debian/control: Add missing dependencies; correct section and desc.
+    - debian/maas.postinst: Do not use absolute path for rabbitmqctl.
+    - debian/patches: Add headers to all patches.
+  * debian/maas-dhcp.postrm: Added to disable dnsmasq in cobbler on removal.
+  * debian/maas.config: Do not set a password with pwgen as it is not an
+    essential package; allow dbconfig-common to create a password instead by
+    creating an empty question. (LP: #977475)
+  * Run MAAS, pserv, txlongpoll as non-root user. (LP: #975436)
+    - debian/maas.postinst: Create user/group; set correct permissions for
+      directories.
+    - debian/maas.postrm: Remove user/group; restart apache2.
+    - debian/maas.maas-{pserv,txlongpoll}.upstart: Update to run as non-root
+      'maas' user.
+  * debian/patches/01-fix-database-settings.patch: Remove adding of PSERV_URL.
+  * debian/maas.postinst:
+    - Handle config file upgrade from versions lower than 0.1+bzr445+dfsg-0ubuntu1,
+      by creating new passwords and updating accordingly
+    - use local variables in functions.
+    - Handle maas tgt configuration for upgrades from 0.1+bzr459+dfsg-0ubuntu1.
+  * debian/extras/99-maas: Add squid-deb-proxy file to enable PPAs. (LP: #979383)
+  * debian/maas.install: Install missing commissioning-user-data script.
+
+  [ Dave Walker (Daviey) ]
+  * debian/patches/02-pserv-config.patch: Refreshed to apply to updated config.
+
+  [ Gavin Panella ]
+  * debian/maas.postinst: Update pserv.yaml and maas_local_settings.py to use
+    password.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 12 Apr 2012 16:37:53 -0400
+
+maas (0.1+bzr415+dfsg-0ubuntu2) precise; urgency=low
+
+  * debian/maas-dhcp.{config,postinst}:
+    - Fix not setting new values on fresh install. (LP: #975321)
+    - Fix unsetting domain, otherwise, even if disabled, it will always be set.
+  * debian/control: Depends on maas for maas-dhcp.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Fri, 06 Apr 2012 15:30:44 -0400
+
+maas (0.1+bzr415+dfsg-0ubuntu1) precise; urgency=low
+
+  * debian/control: Update package descriptions; Suggests maas-dhcp for maas
+    and add a maas-dhcp binary.
+  * Add maas-dhcp package to configure a DHCP server.
+    - debian/maas-dhcp.config: Add to ask debconf questions about range,
+      gateway, and domain.
+    - debian/maas-dhcp.postinst: Handle update of config values.
+    - debian/maas-dhcp.templates: Debconf questions.
+  * debian/po: Update for templates.
+  * Add message telling MAAS URL after installation.
+    - debian/maas.templates: Add message.
+    - debian/maas.postinst: Display message.
+  * debian/maas.config: Hide dbconfig-install question.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Wed, 04 Apr 2012 14:47:13 -0400
+
+maas (0.1+bzr400+dfsg-0ubuntu1) precise; urgency=low
+
+  * debian/patches/{02-pserv-config,03-txlongpoll-config}.patch: Refreshed.
+  * debian/maas.install: Install maas-gc cronjob.
+  * Add apport hook.
+    - debian/maas.apport: Add hook.
+    - debian/rules: Install with apport.
+  * debian/maas.logrotate: Add logrotate for txlongpoll and pserv logs.
+  * Create 'var/lib/media/maas/storage' on postinst to have right permissions.
+    - debian/maas.dirs: Drop dir creation.
+    - debian/maas.postinst: Create dir with correct permissions.
+    - debian/maas.postrm: Remove dir on purge.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 03 Apr 2012 14:50:34 -0400
+
+maas (0.1+bzr378+dfsg-0ubuntu1) precise; urgency=low
+
+  * maas.dirs: Create var/lib/maas/media/storage for juju storage.
+  * maas.postinst:
+    - Give correct permissions to above dir.
+    - stop apache2 before db upgrade, and restart after.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 29 Mar 2012 19:28:13 -0400
+
+maas (0.1+bzr363+dfsg-0ubuntu1) precise; urgency=low
+
+  [ Dave Walker (Daviey) ]
+  * debian/control: Add openssh-server as a Recommends, and wrap-and-sort. 
+
+  [ Andres Rodriguez ]
+  * debian/maas.postinst:
+    - Do not start apache with apache2ctl. Use invoke-rc.d instead to not
+      fail in the installer.
+    - For start of postgresql before creating the DB, otherwise it will
+      fail in the installer.
+    - Add check of invoke-rc.d for syslog.
+    - Add check of invoke-rc.d for rabbitmq-server; Add check for rabbitmqctl
+    - Add db_stop, in case invoke-rc.d fails.
+  * debian/control: Tight python-django-maas dependency.
+  * debian/postrm: Add check for rabbitmqctl.
+  * debian/maas.maas-txlongpoll.upstart: Create rabbitmq longpoll user/vhost
+    and set permissions if they don't exist. Start on rabbitmq-server-running.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 27 Mar 2012 14:49:56 -0400
+
+maas (0.1+bzr338+dfsg-0ubuntu1) precise; urgency=low
+
+  [ Dave Walker (Daviey) ]
+  * d/patches/03-txlongpoll-config.patch: Resolve typo error from prior patch.
+    - LP: #961031
+
+  [ Andres Rodriguez ]
+  * debian/maas.config: Don't allow reconfigure.
+  * debian/maas.postinst: Don't allow reconfigure. Run sync/migrate db on
+    all upgrades.
+
+  [ Scott Moser ]
+  * add rsylog config for logging node boots (LP: 960149)
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 22 Mar 2012 10:56:58 -0400
+
+maas (0.1+bzr315+dfsg-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+
+  [ Dave Walker ]
+  * debian/maas.postinst: Do not import ISO's at install time.
+  * debian/control: 
+    - Drop run-one, it's not a requirement and currently in universe.
+    - Drop python-setproctitle, no longer required.
+
+  [ Andres Rodriguez ]
+  * debian/control: Depends on python-avahi, python-dbus, and avahi-daemon.
+  * debian/maas.postinst:
+    - Only syncdb if dbconfig db creation was selected.
+    - Set rabbitmq/longpoll settings
+  * debian/patches/03-txlongpoll-config.patch: Updated broker settings for
+    rabbitmq.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 20 Mar 2012 20:10:58 -0400
+
+maas (0.1+bzr300+dfsg-0ubuntu1) precise; urgency=low
+
+  * debian/patches:
+    - 01-fix-database-settings.patch: Update PSERV_URL port.
+    - 02-pserv-config.patch: Update, and set 'maas' as username.
+    - 03-longpoll-config.patch: Update.
+  * debian/maas.install: Install preseeds and snippets.
+  * debian/maas.postinst: 
+    - Set password for 'maas' cobbler username (in pserv and cobbler).
+    - Set DEFAULT_MAAS_URL to IP of interface with default gateway.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Fri, 16 Mar 2012 14:59:16 -0400
+
+maas (0.1+bzr295+dfsg-0ubuntu2) precise; urgency=low
+
+  * debian/patches:
+    - 01-fix-database-settings.patch: Update to set PSERV_URL.
+    - 02-pserv-config.patch: Set port to 8001.
+  * debian/maas.postinst: Run maas-import-isos on install.
+  * debian/control: Depends on rabbitmq-server.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 15 Mar 2012 18:14:08 -0400
+
+maas (0.1+bzr295+dfsg-0ubuntu1) precise; urgency=low
+
+  * debian/maas.upstart: Specify pidfile and conffile.
+  * debian/maas.postinst:
+    - Only run syncdb if dbconfig postinst file exists.
+    - Fix file permissions.
+  * debian/maas.{postrm,prerm}: Add dbconfig-common support.
+  * Add txlongpoll support for packaging:
+    - debian/control: Depends on python-txlongpoll.
+    - debian/maas.maas-longpoll.upstart: Added to start txlongpoll.
+    - debian/maas.install: Install txlongpoll.yaml
+  * debian/extras/maas: Improvements.
+  * debian/maas.maas.upstart: Moved from debian/maas.upstart.
+  * debian/maas.postinst: Touch logfile to set correct permissions (LP: #955400)
+  * debian/maas.logrotate: Add.
+  * debian/patches/03-txlongpoll-config.patch: Add default settings.
+  * debian/maas.config: Only run dbconfig-common on configure/reconfigure.
+  * Install maas_local_settings.py in /etc/maas and symlink to usr/share/maas
+  * Update references from MaaS to MAAS.
+  * Remove podebconf as templates no longer exist.
+    - debian/po: Remove.
+    - debian/control: Drop Build-Depends on po-debconf
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Thu, 15 Mar 2012 15:28:14 -0400
+
+maas (0.1+bzr266+dfsg-0ubuntu1) precise; urgency=low
+
+  * Remove support for squid3 and use squid-deb-proxy instead.
+  * debian/extras/maas: Add to handle syncdb and creation of admin user.
+  * Add debconf questions to ask for user/pass:
+    - debian/maas.{template,config}: Add
+    - debian/maas.postinst: Ask debconf questions.
+    - debian/po: Add translation templates.i
+  * debian/maas.postinst: Enable wsgi module; drop squid3 steps.
+  * debian/maas.postrm: removed.
+  * debian/patches/01-fix-database-settings.patch: Custom database settings
+    and static files path.
+  * debian/{rules,maas.install}: Install maas static files in
+    'usr/share/maas/web/static'.
+  * Integrate cobbler:
+    - debian/maas.install: Install pserv twisted plugin, and config.
+    - debian/maas.upstart: Created to start plugin daemon.
+    - debian/patches/02-pserv-config.patch: Custom pserv config.
+  * Integrate dbconfig-common:
+    - debian/maas.config: Added and default user/pass and database.
+    - debian/maas.{postinst,postrm}: Added handling for dbconfig-common
+  * debian/control: Depends on python-convoy.
+  * debian/rules: Update path to removal of dsfg files.
+  * debian/patches/01-fix-database-settings.patch: Updated.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Tue, 13 Mar 2012 14:31:50 -0400
+
+maas (0.1+bzr232+dfsg-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+
+  [ Dave Walker ]
+  * debian/control:
+    - Changed depends from psycopg2 to python-psycopg2 and dropped versioning.
+      - LP: #937982 
+
+  [ Andres Rodriguez ]
+  * debian/maas.install: Install maas-import-isos and related files.
+  * Integrate squid3 as proxy solution:
+    - debian/extras/squid.conf: Added
+    - debian/control: Depend on squid3.
+    - debian/maas.{postinst,postrm}: Handle installation/removal of custom
+      squid config file.
+  * Split into different binary packages (maas,python-django-maas).
+    - debian/maas.postinst: Handle the apache2 configuration.
+
+ -- Andres Rodriguez <andreserl@xxxxxxxxxx>  Wed, 07 Mar 2012 12:46:17 -0500
+
+maas (0.1+bzr171+dfsg-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot, post 0.1 release.
+  * debian/control: 
+    - Drop depends on rabbitmq-server, no longer required.
+  * debian/watch: Introduced watch file.
+
+ -- Dave Walker (Daviey) <DaveWalker@xxxxxxxxxx>  Thu, 23 Feb 2012 13:08:12 +0000
+
+maas (0.1~bzr146+dfsg-0ubuntu1) precise; urgency=low
+
+  * Initial release
+
+ -- Julian Edwards <julian.edwards@xxxxxxxxxxxxx>  Thu, 16 Jan 2012 15:29:07 +0000

=== added file 'debian/compat'
--- debian/compat	1970-01-01 00:00:00 +0000
+++ debian/compat	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+7

=== added file 'debian/control'
--- debian/control	1970-01-01 00:00:00 +0000
+++ debian/control	2012-10-01 10:40:39 +0000
@@ -0,0 +1,251 @@
+Source: maas
+Section: net
+Priority: optional
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@xxxxxxxxxxxxxxxx>
+Build-Depends: debhelper (>= 8), python (>= 2.7), python-distribute, dh-apport, po-debconf,
+ python-django
+Standards-Version: 3.9.3
+X-Python-Version: >= 2.7
+XS-Testsuite: autopkgtest
+Homepage: https://launchpad.net/maas
+
+Package: maas
+Architecture: all
+Depends: python-django-maas, maas-region-controller, maas-cluster-controller
+Conflicts: maas-provision, tftpd-hpa, dnsmasq
+Replaces: maas-provision
+Description: Ubuntu MAAS Server
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package installs a complete MAAS service on a single machine.
+
+Package: maas-common
+Architecture: all
+Conflicts: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Replaces: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Description: Ubuntu MAAS Server
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package contains common files
+
+Package: maas-region-controller
+Architecture: all
+Depends: apache2,
+         avahi-daemon,
+         dbconfig-common,
+         distro-info,
+         libapache2-mod-wsgi,
+         libjs-raphael,
+         libjs-yui3-full,
+         libjs-yui3-min,
+         maas-common (= ${binary:Version}),
+         postgresql-9.1,
+         pwgen,
+         python-django,
+         python-django-maas (= ${binary:Version}),
+         python-django-piston,
+         python-django-south,
+         python-maas-provisioningserver (= ${binary:Version}),
+         rabbitmq-server,
+         rsyslog,
+         squid-deb-proxy,
+         ${misc:Depends},
+         ${python:Depends}
+Recommends: openssh-server
+Suggests: maas-dns
+Conflicts: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Replaces: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Description: Ubuntu MAAS Server
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package installs the region controller services: the web
+ UI and the database.
+
+Package: python-maas-provisioningserver
+Architecture: all
+Depends: ${misc:Depends},
+         ${python:Depends}
+Conflicts: python-django-maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Replaces: python-django-maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Description: Ubuntu MAAS Server
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package contains the provisioning server libraries.
+
+Package: maas-cli
+Architecture: all
+Depends: python-bzrlib,
+         python-httplib2,
+         python-maas-client (= ${binary:Version}),
+         python-oauth,
+         ${misc:Depends},
+         ${python:Depends}
+Description: Ubuntu MAAS Client Tool
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package contains the client command line tool.
+
+Package: python-maas-client
+Architecture: all
+Depends: python-oauth,
+         ${misc:Depends},
+         ${python:Depends}
+Conflicts: maas (<= 0.1+bzr971+dfsg-0ubuntu2 )
+Replaces: maas (<= 0.1+bzr971+dfsg-0ubuntu2 )
+Description: Ubuntu MAAS API Client - (python files)
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package contains the client API Python modules.
+
+Package: maas-cluster-controller
+Architecture: all
+Depends: bind9utils,
+         freeipmi-tools,
+         maas-cli (=${binary:Version}),
+         maas-common (=${binary:Version}),
+         python-celery,
+         python-httplib2,
+         python-lockfile,
+         python-maas-provisioningserver (=${binary:Version}),
+         python-netaddr,
+         python-oauth,
+         python-tempita,
+         python-twisted,
+         python-txtftp,
+         python-zope.interface,
+         rabbitmq-server,
+         rsyslog,
+         syslinux-common,
+         tgt,
+         wget,
+         ${misc:Depends},
+         ${python:Depends}
+Suggests: maas-dhcp (= ${binary:Version})
+Conflicts: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Replaces: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 )
+Description: Ubuntu MAAS Cluster Controller
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package contains the cluster controller, which is
+ responsible for controlling remote DHCP/TFTP instances on their
+ own subnets.
+
+Package: python-django-maas
+Section: python
+Architecture: all
+Depends: python-avahi,
+         python-celery,
+         python-convoy,
+         python-dbus,
+         python-lockfile,
+         python-maas-client (= ${binary:Version}),
+         python-netaddr,
+         python-oops,
+         python-oops-amqp,
+         python-oops-datedir-repo,
+         python-oops-twisted,
+         python-oops-wsgi,
+         python-psycopg2,
+         python-sphinx,
+         python-tempita,
+         python-twisted,
+         python-txamqp,
+         python-txlongpoll,
+         python-txtftp,
+         python-zope.interface,
+         ${misc:Depends},
+         ${python:Depends}
+Description: Ubuntu MAAS Server - (django files)
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package contains the Django files.
+
+Package: maas-dhcp
+Architecture: all
+Depends: ${misc:Depends}, isc-dhcp-server
+Conflicts: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1)
+Replaces: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1)
+Description: Ubuntu MAAS Server - DHCP Configuration (meta-package)
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package configures a DHCP that can be used with MAAS.
+
+Package: maas-dns
+Architecture: all
+Depends: ${misc:Depends}, maas-dhcp (= ${binary:Version}), bind9
+Conflicts: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1)
+Replaces: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1)
+Description: Ubuntu MAAS Server - DNS configuration (metapackage)
+ Ubuntu MAAS Server is the successor to Orchestra. It offers a
+ nice UI to provision your Ubuntu servers. Each physical server
+ (“node”) will be commissioned automatically on first boot.
+ During the commissioning process administrators are able to
+ configure hardware settings manually before an automated smoke
+ test and burn-in test are done. Once commissioned, a node can
+ be deployed on demand by name, or allocated to a queue for
+ dynamic allocation to services being deployed on this MAAS.
+ .
+ This package configures a DNS that can be used with MAAS.

=== added file 'debian/copyright'
--- debian/copyright	1970-01-01 00:00:00 +0000
+++ debian/copyright	2012-10-01 10:40:39 +0000
@@ -0,0 +1,25 @@
+Format: http://dep.debian.net/deps/dep5
+Upstream-Name: maas
+Source: https://launchpad.net/maas
+
+Files: *
+Copyright: 2012 Canonical Ltd.
+License: AGPL-3.0+
+
+Files: debian/*
+Copyright: 2012 Canonical Ltd.
+License: AGPL-3.0+
+
+License: AGPL-3.0+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
+ .
+ You should have received a copy of the GNU Affero General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.

=== added directory 'debian/extras'
=== added file 'debian/extras/20-maas.conf'
--- debian/extras/20-maas.conf	1970-01-01 00:00:00 +0000
+++ debian/extras/20-maas.conf	2012-10-01 10:40:39 +0000
@@ -0,0 +1,32 @@
+# Enable the udp server for installation logging
+$ModLoad imudp
+$UDPServerRun 514
+$ModLoad imtcp # load TCP listener
+
+# The following section (certificates) was copied from orchestra, but is
+# not used here.  In the future, if we needed secure ssl, then re-enable.
+# These files were created in the orchestra-logging-server's postinst
+#
+## make gtls driver the default
+#$DefaultNetstreamDriver gtls
+#
+## certificate files
+#$DefaultNetstreamDriverCAFile /var/lib/maas/ssl-cert-orchestra-ca.pem
+#$DefaultNetstreamDriverCertFile /var/lib/maas/.ssl/ssl-cert-orchestra.pem
+#$DefaultNetstreamDriverKeyFile /var/lib/maas/.ssl/ssl-cert-orchestra-pk.pem
+#
+#$InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode
+#$InputTCPServerStreamDriverAuthMode anon # client is NOT authenticated
+#$InputTCPServerRun 10514 # start up listener at port 10514
+
+# Reduce message repetition
+$RepeatedMsgReduction on
+##$RepeatedMsgContainsOrigionalMsg on
+
+# Message templating
+$template MAASboot,"/var/log/maas/rsyslog/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/messages"
+
+:fromhost-ip, !isequal, "127.0.0.1" ?MAASboot
+# Stop messages that came from anywhere else from going into other places
+# like /var/log/syslog. If you want to see these messages there, then comment below
+& ~

=== added file 'debian/extras/99-maas'
--- debian/extras/99-maas	1970-01-01 00:00:00 +0000
+++ debian/extras/99-maas	2012-10-01 10:40:39 +0000
@@ -0,0 +1,4 @@
+# /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas
+# 
+# Enable launchpad personal package archives for squid-deb-proxy
+ppa.launchpad.net

=== added file 'debian/extras/99-maas-sudoers'
--- debian/extras/99-maas-sudoers	1970-01-01 00:00:00 +0000
+++ debian/extras/99-maas-sudoers	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+maas ALL= NOPASSWD: /usr/sbin/service maas-dhcp-server restart
+maas ALL= NOPASSWD: /usr/sbin/maas-provision

=== added file 'debian/extras/maas'
--- debian/extras/maas	1970-01-01 00:00:00 +0000
+++ debian/extras/maas	2012-10-01 10:40:39 +0000
@@ -0,0 +1,8 @@
+#!/bin/sh
+if [ "$(id -u)" != "0" ]; then
+	echo "This utility may only be run as root." 1>&2
+	exit 1
+fi
+export PYTHONPATH="/usr/share/maas${PYTHONPATH:+:}${PYTHONPATH}"
+export DJANGO_SETTINGS_MODULE="maas.settings"
+exec /usr/bin/django-admin "$@"

=== added file 'debian/extras/maas-cli'
--- debian/extras/maas-cli	1970-01-01 00:00:00 +0000
+++ debian/extras/maas-cli	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec python -m maascli "$@"

=== added file 'debian/extras/maas-provision'
--- debian/extras/maas-provision	1970-01-01 00:00:00 +0000
+++ debian/extras/maas-provision	2012-10-01 10:40:39 +0000
@@ -0,0 +1,7 @@
+#!/bin/sh
+if [ "$(id -u)" != "0" ]; then
+	echo "This utility may only be run as root." 1>&2
+	exit 1
+fi
+export PYTHONPATH="/usr/share/maas${PYTHONPATH:+:}${PYTHONPATH}"
+exec /usr/bin/python -m provisioningserver "$@"

=== added file 'debian/extras/maas_remote_syslog_compress'
--- debian/extras/maas_remote_syslog_compress	1970-01-01 00:00:00 +0000
+++ debian/extras/maas_remote_syslog_compress	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+# Compress log files not changed in more than 48 hours:
+30 4 * * * root find /var/log/maas/rsyslog -type f -mtime +2 -exec bzip2 '{}' \;

=== added file 'debian/maas-cli.install'
--- debian/maas-cli.install	1970-01-01 00:00:00 +0000
+++ debian/maas-cli.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+debian/extras/maas-cli usr/bin
+debian/tmp/usr/lib/python*/dist-packages/maascli

=== added file 'debian/maas-cluster-controller.config'
--- debian/maas-cluster-controller.config	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.config	2012-10-01 10:40:39 +0000
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+
+# Only ask for new installations and reconfiguring.
+# XXX Fix to not ask during new installations when upgrading from the old
+# maas package or installing from the CD.
+if ([ "$1" = "configure" ] && [ -z "$2" ]) || [ "$1" = "reconfigure" ]; then
+        . /usr/share/debconf/confmodule
+
+    db_get maas-cluster-controller/maas-url || true
+    if [ -n "$RET" ]; then
+        db_set maas-cluster-controller/maas-url "$RET"
+    else
+        # Attempt to pre-populate if installing on the region controller.
+        if [ -e /etc/maas/maas_local_settings.py ]; then
+            url=$(awk '$1 == "DEFAULT_MAAS_URL" { split($0,array,"\"")} END{print array[2] }' /etc/maas/maas_local_settings.py)
+            db_set maas-cluster-controller/maas-url "$url"
+        fi
+    fi
+    db_input high maas-cluster-controller/maas-url || true
+    db_go
+fi
+#DEBHELPER#

=== added file 'debian/maas-cluster-controller.dirs'
--- debian/maas-cluster-controller.dirs	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.dirs	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+etc/maas

=== added file 'debian/maas-cluster-controller.install'
--- debian/maas-cluster-controller.install	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,18 @@
+# Install twisted plugins
+twisted/plugins/maasps.py usr/share/pyshared/twisted/plugins
+
+# Install PSERV config file
+debian/tmp/etc/maas/pserv.yaml
+
+# Install cluster config file
+debian/tmp/etc/maas/maas_cluster.conf
+
+# Install celery config file
+debian/tmp/usr/share/maas/celeryconfig_cluster.py
+
+# Install local celery cluster config file
+debian/tmp/etc/maas/maas_local_celeryconfig_cluster.py
+
+# Install all other stuff
+debian/extras/99-maas-sudoers etc/sudoers.d
+debian/extras/maas-provision usr/sbin

=== added file 'debian/maas-cluster-controller.links'
--- debian/maas-cluster-controller.links	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.links	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+etc/maas/maas_local_celeryconfig_cluster.py usr/share/maas/maas_local_celeryconfig_cluster.py

=== added file 'debian/maas-cluster-controller.logrotate'
--- debian/maas-cluster-controller.logrotate	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.logrotate	2012-10-01 10:40:39 +0000
@@ -0,0 +1,9 @@
+/var/log/maas/pserv.log {
+ rotate 5
+ weekly
+ compress
+ missingok
+ postrotate
+  [ -r /var/run/maas-pserv.pid ] && kill -s USR2 $(cat /var/run/maas-pserv.pid) || true
+ endscript
+}

=== added file 'debian/maas-cluster-controller.maas-cluster-celery.upstart'
--- debian/maas-cluster-controller.maas-cluster-celery.upstart	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.maas-cluster-celery.upstart	2012-10-01 10:40:39 +0000
@@ -0,0 +1,25 @@
+# maas-cluster-controller - provisioning service
+#
+# MAAS Cluster Controller Service
+
+description     "MAAS Cluster Controller"
+author "Julian Edwards <julian.edwards@xxxxxxxxxxxxx>"
+
+start on filesystem and net-device-up
+stop on runlevel [016]
+
+env CONFIG_FILE=/etc/maas/maas_cluster.conf
+
+pre-start script
+    if [ ! -f $CONFIG_FILE ]; then
+        echo "$CONFIG_FILE does not exist.  Aborting."
+        stop
+        exit 0
+    fi
+end script
+
+script
+    . $CONFIG_FILE  # sets MAAS_URL
+    export CELERY_CONFIG_MODULE="celeryconfig_cluster" # use cluster config.
+    exec /usr/sbin/maas-provision start-cluster-controller $MAAS_URL
+end script

=== added file 'debian/maas-cluster-controller.maas-pserv.upstart'
--- debian/maas-cluster-controller.maas-pserv.upstart	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.maas-pserv.upstart	2012-10-01 10:40:39 +0000
@@ -0,0 +1,14 @@
+# maas-pserv - provisioning service
+#
+# MAAS Provisioning Service
+
+description     "MAAS"
+author "Andres Rodriguez <andres.rodriguez@xxxxxxxxxxxxx>"
+
+start on filesystem and net-device-up
+stop on runlevel [016]
+
+respawn
+
+# To add options to your daemon, edit the line below:
+exec /usr/bin/twistd -n --uid=maas --gid=maas --pidfile=/run/maas-pserv.pid --logfile=/dev/null maas-pserv --config-file=/etc/maas/pserv.yaml

=== added file 'debian/maas-cluster-controller.postinst'
--- debian/maas-cluster-controller.postinst	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.postinst	2012-10-01 10:40:39 +0000
@@ -0,0 +1,38 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+add_user_group(){
+    local user="maas"
+    local group="maas"
+    if ! getent group "$group" >/dev/null; then
+        addgroup --quiet --system "$group" || true
+    fi
+    if ! getent passwd "$user" > /dev/null 2>&1; then
+        adduser --quiet \
+                    --system \
+                    --group \
+                    --no-create-home \
+                    "$user" || true
+    fi
+}
+
+if [ "$1" = "configure" ] && [ -z "$2" ]; then
+    add_user_group
+
+    if grep -qs "^CLUSTER_UUID\ \= None$" /etc/maas/maas_local_celeryconfig_cluster.py; then
+        uuid="$(uuidgen)"
+        sed -i "s|^CLUSTER_UUID\ \= None$|CLUSTER_UUID = '"$uuid"'|" \
+                       /etc/maas/maas_local_celeryconfig_cluster.py
+    fi
+fi
+
+if ([ "$1" = "configure" ] && [ -z "$2" ]) || [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then
+    # Get the MAAS_URL on configure/reconfigure and write it to the conf file.
+    db_get maas-cluster-controller/maas-url || true
+    sed -i "s|MAAS_URL=.*|MAAS_URL="$RET"|" /etc/maas/maas_cluster.conf
+fi
+
+#DEBHELPER#
+exit 0

=== added file 'debian/maas-cluster-controller.postrm'
--- debian/maas-cluster-controller.postrm	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.postrm	2012-10-01 10:40:39 +0000
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+        purge)
+                # Deleting user/group
+                if getent passwd maas >/dev/null; then
+                        deluser maas || true
+                fi
+esac
+
+#DEBHELPER#
+
+exit 0

=== added file 'debian/maas-cluster-controller.templates'
--- debian/maas-cluster-controller.templates	1970-01-01 00:00:00 +0000
+++ debian/maas-cluster-controller.templates	2012-10-01 10:40:39 +0000
@@ -0,0 +1,6 @@
+Template: maas-cluster-controller/maas-url
+Type: string
+Default: http://<MAAS host>/MAAS
+_Description: Ubuntu MAAS API address:
+ The MAAS Cluster Controller needs to contact the MAAS server to
+ register its presence.  Set the URL to the MAAS API here.

=== added file 'debian/maas-common.install'
--- debian/maas-common.install	1970-01-01 00:00:00 +0000
+++ debian/maas-common.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+# Install Celery Config
+debian/tmp/usr/share/maas/celeryconfig_common.py

=== added file 'debian/maas-dhcp.apparmor'
--- debian/maas-dhcp.apparmor	1970-01-01 00:00:00 +0000
+++ debian/maas-dhcp.apparmor	2012-10-01 10:40:39 +0000
@@ -0,0 +1,7 @@
+/run/maas/dhcp/ r,
+/run/maas/dhcp/** r,
+/run/maas/dhcp/*.pid lrw,
+/run/maas/dhcp/*.trace lrw,
+/run/maas/dhcp/*.leases* lrw,
+/var/lib/maas/dhcp/dhcpd*.leases* lrw,
+/etc/maas/dhcpd.conf r,

=== added file 'debian/maas-dhcp.install'
--- debian/maas-dhcp.install	1970-01-01 00:00:00 +0000
+++ debian/maas-dhcp.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+/debian/tmp/etc/apparmor.d/dhcpd.d/maas

=== added file 'debian/maas-dhcp.maas-dhcp-server.upstart'
--- debian/maas-dhcp.maas-dhcp-server.upstart	1970-01-01 00:00:00 +0000
+++ debian/maas-dhcp.maas-dhcp-server.upstart	2012-10-01 10:40:39 +0000
@@ -0,0 +1,60 @@
+description "MAAS instance of ISC DHCP server"
+author "Jeroen Vermeulen <jtv@xxxxxxxxxxxxx>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+env CONFIG_FILE=/etc/maas/dhcpd.conf
+env PID_DIR=/run/maas/dhcp
+env PID_FILE=/run/maas/dhcp/dhcpd.pid
+env LEASES_DIR=/var/lib/maas/dhcp
+env LEASES_FILE=/var/lib/maas/dhcp/dhcpd.leases
+
+# This is where we write what interfaces dhcpd should listen on.
+env INTERFACES_FILE=/var/lib/maas/dhcpd-interfaces
+
+pre-start script
+    if [ ! -f $CONFIG_FILE ]; then
+        echo "$CONFIG_FILE does not exist.  Aborting."
+        stop
+        exit 0
+    fi
+
+    if [ ! -f $INTERFACES_FILE ]; then
+        echo "$INTERFACES_FILE does not exist.  Aborting."
+        stop
+        exit 0
+    fi
+
+    if ! /usr/sbin/dhcpd -t -q -4 -cf $CONFIG_FILE > /dev/null 2>&1; then
+        echo "dhcpd self-test failed.  Please fix the config file."
+        echo "The error was: "
+        /usr/sbin/dhcpd -t -4 -cf $CONFIG_FILE
+        stop
+        exit 0
+    fi
+end script
+
+respawn
+script
+    INTERFACES=`cat "${INTERFACES_FILE}"`
+
+    # Allow dhcp server to write lease and pid file.
+    mkdir -p $PID_DIR
+    chown dhcpd:dhcpd $PID_DIR
+
+    # As of Quantal, the leases file must be owned by root:root (even though
+    # the daemon will run under an unprivileged user).
+    # In Precise, ownership was supposed to be dhcp:dhcp.
+    mkdir -p $LEASES_DIR
+    chown root:root $LEASES_DIR
+    [ -e $LEASES_FILE ] || touch $LEASES_FILE
+    for LFILE in $LEASES_FILE $LEASES_FILE~; do
+        if [ -e $LFILE ]; then
+            chown root:root $LFILE
+            chmod a+r $LFILE
+        fi
+    done
+
+    exec /usr/sbin/dhcpd -user dhcpd -group dhcpd -f -q -4 -pf $PID_FILE -cf $CONFIG_FILE -lf $LEASES_FILE $INTERFACES
+end script

=== added file 'debian/maas-dhcp.postinst'
--- debian/maas-dhcp.postinst	1970-01-01 00:00:00 +0000
+++ debian/maas-dhcp.postinst	2012-10-01 10:40:39 +0000
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+if [ "$1" = "configure" ]; then
+   dhcpd_prof="/etc/apparmor.d/usr.sbin.dhcpd"
+   if [ -f "${dhcpd_prof}" ] &&
+      command -v apparmor_parser >/dev/null 2>&1; then
+      apparmor_parser --replace --write-cache --skip-read-cache "${dhcpd_prof}"
+   fi
+fi
+
+#DEBHELPER#
+exit 0

=== added file 'debian/maas-dhcp.postrm'
--- debian/maas-dhcp.postrm	1970-01-01 00:00:00 +0000
+++ debian/maas-dhcp.postrm	2012-10-01 10:40:39 +0000
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+if [ "$1" = "remove" -o "$1" = "purge" ]; then
+   dhcpd_prof="/etc/apparmor.d/usr.sbin.dhcpd"
+   if [ -f "${dhcpd_prof}" ] &&
+      command -v apparmor_parser >/dev/null 2>&1; then
+      apparmor_parser --replace --write-cache --skip-read-cache "${dhcpd_prof}"
+   fi
+fi
+
+#DEBHELPER#

=== added file 'debian/maas-dns.dirs'
--- debian/maas-dns.dirs	1970-01-01 00:00:00 +0000
+++ debian/maas-dns.dirs	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+etc/bind/maas

=== added file 'debian/maas-dns.postinst'
--- debian/maas-dns.postinst	1970-01-01 00:00:00 +0000
+++ debian/maas-dns.postinst	2012-10-01 10:40:39 +0000
@@ -0,0 +1,33 @@
+#!/bin/sh -e
+
+if ([ "$1" = "configure" ] && [ -z "$2" ]) || [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then
+	# If /etc/bind/maas is empty, set_up_dns.
+	if [ ! "$(ls -A /etc/bind/maas)" ]; then
+		maas set_up_dns
+	fi
+
+	# fix permissions
+	if [ -d /etc/bind/maas ]; then
+		chown -R maas:root /etc/bind/maas
+	fi
+	if [ -f /etc/bind/maas/named.conf.maas ]; then
+		chmod 644 /etc/bind/maas/named.conf.maas
+	fi
+	if [ -f /etc/bind/maas/rndc.conf.maas ]; then
+		chmod 600 /etc/bind/maas/rndc.conf.maas
+	fi
+
+	# add the required line to "/etc/bind/named.conf.local"
+	if ! grep -qs "^include.*\/etc\/bind\/maas\;$" /etc/bind/maas.conf.local; then
+		include_path=$(maas get_named_conf | grep "include\ [a-z\"\/\.]\+;")
+		sed -i "\$a $include_path" \
+			/etc/bind/named.conf.local
+	fi
+
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d bind9 restart || true
+	fi
+fi
+
+#DEBHELPER#
+exit 0

=== added file 'debian/maas-dns.postrm'
--- debian/maas-dns.postrm	1970-01-01 00:00:00 +0000
+++ debian/maas-dns.postrm	2012-10-01 10:40:39 +0000
@@ -0,0 +1,24 @@
+#!/bin/sh -e
+
+if [ "$1" = "remove" ]; then
+	if [ -f /etc/bind/named.conf.local ]; then
+		sed -i '/^include.*\"\/etc\/bind\/maas\/named.conf.maas\"\;$/d' \
+			/etc/bind/named.conf.local
+	fi
+fi
+
+if [ "$1" = "purge" ]; then
+	# Remove zone files
+	if [ -d /etc/bind/maas ]; then
+		rm -rf /etc/bind/maas
+        fi
+fi
+
+if [ -x /usr/sbin/invoke-rc.d ]; then
+	invoke-rc.d bind9 restart || true
+fi
+
+#DEBHELPER#
+
+exit 0
+

=== added file 'debian/maas-region-controller.apport'
--- debian/maas-region-controller.apport	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.apport	2012-10-01 10:40:39 +0000
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+
+'''apport hook for bind9
+
+(c) 2012 Canonical Ltd.
+Author: Andres Rodriguez <andres.rodriguez@xxxxxxxxxxxxx>
+
+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.  See http://www.gnu.org/copyleft/gpl.html for
+the full text of the license.
+'''
+
+from apport.hookutils import *
+
+def add_info(report, ui):
+    response = ui.yesno("The contents of your /etc/maas/maas_local_settings.py, "
+                        "/etc/maas/txlongpoll.yaml, /etc/maas/pserv.yaml files "
+                        "may help developers diagnose your bug more "
+                        "quickly.  However, it may contain sensitive "
+                        "information.  Do you want to include it in your "
+                        "bug report?")
+
+    if response == None: # user cancelled
+        raise StopIteration
+
+    elif response == True:
+        attach_conffiles(report,'maas')
+
+    # Attaching log files
+    attach_file_if_exists(report, '/var/log/maas/maas.log', 'MAASLog')
+    attach_file_if_exists(report, '/var/log/maas/pserv.log', 'MAASPservLog')
+    attach_file_if_exists(report, '/var/log/maas/txlongpoll.log', 'MAAStxlongpollLog')
+
+    # Attaching related packages info
+    attach_related_packages(report, ['python-django-maas', 'apparmor'])

=== added file 'debian/maas-region-controller.config'
--- debian/maas-region-controller.config	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.config	2012-10-01 10:40:39 +0000
@@ -0,0 +1,46 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+# creates question
+set_question() {
+	if ! db_fget "$1" seen; then
+		db_register dbconfig-common/dbconfig-install "$1"
+		db_subst "$1" ID "$1"
+		db_fget "$1" seen
+	fi
+	if [ "$RET" = false ]; then
+		db_set "$1" "$2"
+		db_fset "$1" seen true
+	fi
+}
+
+
+if ([ "$1" = "configure" ] && [ -z "$2" ]); then
+	# Hide maas/dbconfig-install question by setting default.
+	set_question maas-region-controller/dbconfig-install true
+	set_question maas-region-controller/pgsql/app-pass ""
+
+	# source dbconfig-common shell library, and call the hook function
+	if [ -f /usr/share/dbconfig-common/dpkg/config.pgsql ]; then
+		. /usr/share/dbconfig-common/dpkg/config.pgsql
+
+		dbc_dbname="maasdb"
+		dbc_dbuser="maas"
+		dbc_remove="true"
+
+		dbc_go maas-region-controller $@
+	fi
+
+elif [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then
+	db_get maas/default-maas-url || true
+	if [ -n "$RET" ]; then
+		db_set maas/default-maas-url "$RET"
+	else
+		ipaddr=$(awk '$1 == "DEFAULT_MAAS_URL" { split($0,array,"/")} END{print array[3] }' /etc/maas/maas_local_settings.py)
+		db_set maas/default-maas-url "$ipaddr"
+	fi
+	db_input low maas/default-maas-url || true
+	db_go
+fi

=== added file 'debian/maas-region-controller.dirs'
--- debian/maas-region-controller.dirs	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.dirs	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+var/log/maas/oops
+var/lib/maas/tftp

=== added file 'debian/maas-region-controller.install'
--- debian/maas-region-controller.install	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,48 @@
+# Install project
+debian/tmp/usr/lib/python*/dist-packages/maas usr/share/maas
+
+# Install static files
+debian/tmp/usr/share/maas/web/static
+
+# Install Apache Config
+debian/tmp/etc/maas/maas-http.conf
+
+# Install MAAS local settings
+debian/tmp/etc/maas/maas_local_settings.py
+
+# Install celery config file
+debian/tmp/usr/share/maas/celeryconfig.py
+
+# Install local celery region config file
+debian/tmp/etc/maas/maas_local_celeryconfig.py
+
+# Install WSGI
+debian/tmp/usr/share/maas/wsgi.py
+
+# Install txlongpoll config file
+debian/tmp/etc/maas/txlongpoll.yaml
+
+# Install maas-import-pxe-files
+debian/tmp/usr/sbin/maas-import-pxe-files
+
+# Install maas-import-pxe-files and related files
+etc/cron.d/maas-import-pxe-files
+etc/maas/import_pxe_files
+man/maas-import-pxe-files.8 usr/share/man/man8
+debian/tmp/usr/sbin/maas-import-ephemerals
+debian/tmp/etc/maas/import_ephemerals
+debian/tmp/etc/maas/commissioning-user-data
+# Obsolete, but still available for compatibility:
+scripts/maas-import-isos usr/sbin
+
+# Install new preseed files
+debian/tmp/usr/share/maas/preseeds
+
+# Install cronjobs
+debian/tmp/etc/cron.d/maas-gc
+
+# Install all other stuff
+debian/extras/maas usr/sbin
+debian/extras/20-maas.conf etc/rsyslog.d
+debian/extras/maas_remote_syslog_compress etc/cron.d
+debian/extras/99-maas etc/squid-deb-proxy/mirror-dstdomain.acl.d

=== added file 'debian/maas-region-controller.links'
--- debian/maas-region-controller.links	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.links	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+etc/maas/maas_local_settings.py usr/share/maas/maas_local_settings.py
+etc/maas/maas_local_celeryconfig.py usr/share/maas/maas_local_celeryconfig.py

=== added file 'debian/maas-region-controller.lintian-overrides'
--- debian/maas-region-controller.lintian-overrides	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.lintian-overrides	2012-10-01 10:40:39 +0000
@@ -0,0 +1,7 @@
+maas-region-controller: embedded-javascript-library usr/share/maas/web/static/jslibs/yui/3.4.1/build/yui/yui-min.js
+maas-region-controller: extra-license-file usr/share/maas/web/static/jslibs/yui/3.4.1/docs/assets/panel/vendor/prettify/COPYING
+maas-region-controller: extra-license-file usr/share/maas/web/static/jslibs/yui/3.4.1/docs/assets/vendor/prettify/COPYING
+maas-region-controller: script-not-executable usr/share/maas/web/static/jslibs/yui/3.4.1/tests/loader/tests/server/server.js
+maas-region-controller: unusual-interpreter usr/share/maas/web/static/jslibs/yui/3.4.1/tests/loader/tests/server/server.js #!node
+maas-region-controller: postinst-uses-db-input
+maas-region-controller: binary-without-manpage usr/bin/maas

=== added file 'debian/maas-region-controller.logrotate'
--- debian/maas-region-controller.logrotate	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.logrotate	2012-10-01 10:40:39 +0000
@@ -0,0 +1,18 @@
+/var/log/maas/maas.log {
+ rotate 5
+ weekly
+ compress
+ copytruncate
+ missingok
+ #create 620 root www-data
+}
+
+/var/log/maas/txlongpoll.log {
+ rotate 5
+ weekly
+ compress
+ missingok
+ postrotate
+  [ -r /var/run/maas-txlongpoll.pid ] && kill -s USR2 $(cat /var/run/maas-txlongpoll.pid) || true
+ endscript
+}

=== added file 'debian/maas-region-controller.maas-region-celery.upstart'
--- debian/maas-region-controller.maas-region-celery.upstart	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.maas-region-celery.upstart	2012-10-01 10:40:39 +0000
@@ -0,0 +1,20 @@
+# maas-celery - celery daemon for the region controller
+#
+# MAAS Region Controller Celery Daemon
+
+description     "MAAS"
+author "Raphael Badin <raphael.badin@xxxxxxxxxxxxx>"
+
+start on filesystem and net-device-up
+stop on runlevel [016]
+
+respawn
+
+setuid maas
+setgid maas
+
+env PYTHONPATH="/usr/share/maas/"
+# To add options to your daemon, edit the line below:
+# NOTE: Config is picked up from PYTHONPATH.
+#       In this case is picked up from /usr/share/maas/celeryconfig.py.
+exec /usr/bin/celeryd --logfile=/var/log/maas/celery-region.log --loglevel=INFO --beat --schedule=/var/lib/maas/celerybeat-region-schedule -Q celery,master

=== added file 'debian/maas-region-controller.maas-txlongpoll.upstart'
--- debian/maas-region-controller.maas-txlongpoll.upstart	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.maas-txlongpoll.upstart	2012-10-01 10:40:39 +0000
@@ -0,0 +1,27 @@
+# maas - txlongpoll service
+#
+# MAAS Provisioning Service txlongpoll
+
+description     "MAAS txlongpoll"
+author "Andres Rodriguez <andres.rodriguez@xxxxxxxxxxxxx>"
+
+start on filesystem and net-device-up and rabbitmq-server-running
+stop on runlevel [016]
+
+respawn
+
+env longpoll_user="maas_longpoll"
+env longpoll_pass=""
+env longpoll_vhost="/maas_longpoll"
+
+pre-start script
+	if ! /usr/sbin/rabbitmqctl list_user_permissions $longpoll_user 1>/dev/null 2>&1; then
+		longpoll_pass=`/bin/grep "password" /etc/maas/txlongpoll.yaml | cut -d'"' -f2`
+		/usr/sbin/rabbitmqctl add_user "$longpoll_user" "$longpoll_pass"
+		/usr/sbin/rabbitmqctl add_vhost "$longpoll_vhost"
+		/usr/sbin/rabbitmqctl set_permissions -p "$longpoll_vhost" "$longpoll_user" ".*" ".*" ".*"
+	fi
+end script
+
+# To add options to your daemon, edit the line below:
+exec /usr/bin/twistd -n --uid=maas --gid=maas --pidfile=/run/maas-txlongpoll.pid --logfile=/dev/null txlongpoll --config-file=/etc/maas/txlongpoll.yaml

=== added file 'debian/maas-region-controller.postinst'
--- debian/maas-region-controller.postinst	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.postinst	2012-10-01 10:40:39 +0000
@@ -0,0 +1,290 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+if [ -f /usr/share/dbconfig-common/dpkg/postinst.pgsql ]; then
+	. /usr/share/dbconfig-common/dpkg/postinst.pgsql
+fi
+
+maas_sync_migrate_db(){
+	maas syncdb --noinput
+	maas migrate maasserver --noinput
+	maas migrate metadataserver --noinput
+}
+
+restart_apache2(){
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d apache2 restart || true
+	else
+		/etc/init.d/apache2 restart || true
+	fi
+}
+
+restart_rabbitmq(){
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d rabbitmq-server restart || true
+	else
+		/etc/init.d/rabbitmq-server restart || true
+	fi
+}
+
+restart_postgresql(){
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d --force postgresql restart || true
+	else
+		/etc/init.d/postgresql restart || true
+	fi
+}
+
+add_user_group(){
+	local user="maas"
+	local group="maas"
+	if ! getent group "$group" >/dev/null; then
+		addgroup --quiet --system "$group" || true
+	fi
+	if ! getent passwd "$user" > /dev/null 2>&1; then
+		adduser --quiet \
+                    --system \
+                    --group \
+                    --no-create-home \
+                    "$user" || true
+	fi
+}
+
+configure_maas_txlongpoll_rabbitmq_user() {
+	local longpoll_user="maas_longpoll"
+	local longpoll_pass=
+	local longpoll_vhost="/maas_longpoll"
+	longpoll_pass="$(pwgen -s 20)"
+	if [ -x /usr/sbin/rabbitmqctl ]; then
+		if ! rabbitmqctl list_users | grep -qs "$longpoll_user"; then
+			rabbitmqctl add_user "$longpoll_user" "$longpoll_pass" || true
+			rabbitmqctl add_vhost "$longpoll_vhost" || true
+			rabbitmqctl set_permissions -p "$longpoll_vhost" "$longpoll_user" ".*" ".*" ".*" || true
+		else
+			rabbitmqctl change_password "$longpoll_user" "$longpoll_pass" || true
+		fi
+	fi
+
+	if grep -qs "^\ \{1,\}password: \"[a-zA-Z0-9]\{0,\}\"$" /etc/maas/txlongpoll.yaml; then
+		sed -i "s/^\ \{1,\}password: \"[a-zA-Z0-9]\{0,\}\"$/  password: \""$longpoll_pass"\"/" \
+                       /etc/maas/txlongpoll.yaml
+	fi
+	if grep -qs "^RABBITMQ_PASSWORD\ \= '[a-zA-Z0-9]\{0,\}'$" /etc/maas/maas_local_settings.py; then
+		sed -i "s/^RABBITMQ_PASSWORD\ \= '[a-zA-Z0-9]\{0,\}'$/RABBITMQ_PASSWORD = '"$longpoll_pass"'/" \
+                       /etc/maas/maas_local_settings.py
+	fi
+}
+
+configure_maas_workers_rabbitmq_user() {
+	local workers_user="maas_workers"
+	local workers_pass="$(pwgen -s 20)"
+	local workers_vhost="/maas_workers"
+	local amqp_host="localhost"
+	local amqp_port="5672"
+	if [ -x /usr/sbin/rabbitmqctl ]; then
+		if ! rabbitmqctl list_users | grep -qs "$workers_user"; then
+			rabbitmqctl add_user "$workers_user" "$workers_pass" || true
+			rabbitmqctl add_vhost "$workers_vhost" || true
+			rabbitmqctl set_permissions -p "$workers_vhost" "$workers_user" ".*" ".*" ".*" || true
+		else
+			rabbitmqctl change_password "$workers_user" "$workers_pass" || true
+		fi
+	fi
+
+	if grep -qs "^BROKER_URL\ \= '.*'$" /etc/maas/maas_local_celeryconfig.py; then
+		local broker_url="amqp://$workers_user:$workers_pass@$amqp_host:$amqp_port/$workers_vhost"
+		sed -i "s|^BROKER_URL\ \= '.*'$|BROKER_URL = '"$broker_url"'|" \
+                       /etc/maas/maas_local_celeryconfig.py
+	fi
+}
+
+configure_maas_database() {
+	local dbc_dbpass="$1"
+	if grep -qs "^\ \{1,\} 'PASSWORD': '[a-zA-Z0-9]\{0,\}',$" /etc/maas/maas_local_settings.py; then
+		sed -i "s/^\ \{1,\} 'PASSWORD': '[a-zA-Z0-9]\{0,\}',$/        'PASSWORD': '"$dbc_dbpass"',/" \
+                       /etc/maas/maas_local_settings.py
+	fi
+}
+
+configure_maas_tgt(){
+	local tgtcfg="/etc/tgt/targets.conf"
+	[ -d /etc/tgt/conf.d/ ] || 
+	   echo "Warning! $tgtcfg did not exist" 1>&2;
+	mkdir -p /etc/tgt/conf.d/ /var/lib/maas/ephemeral/
+	ln -sf /var/lib/maas/ephemeral/tgt.conf /etc/tgt/conf.d/maas.conf
+}
+
+configure_maas_default_url() {
+	local ipaddr="$1"
+
+	if grep -qs "^DEFAULT_MAAS_URL\ \= \"[a-zA-Z0-9:/.]\{0,\}\"$" /etc/maas/maas_local_settings.py; then
+		sed -i "s/^DEFAULT_MAAS_URL\ \= \"[a-zA-Z0-9:/.]\{0,\}\"$/DEFAULT_MAAS_URL = \"http:\/\/"$ipaddr"\/MAAS\"/" \
+                    /etc/maas/maas_local_settings.py
+	fi
+}
+
+if [ "$1" = "configure" ] && [ -z "$2" ]; then
+	#########################################################
+	################ User/Group Creatiion  ##################
+	#########################################################
+	add_user_group
+
+	#########################################################
+	################ Folder Permissions  ####################
+	#########################################################
+	mkdir -p /var/lib/maas/media/storage
+	chown -R maas:maas /var/lib/maas/
+
+	# Local celery config may contain credentials, so should be readable
+	# by the application but nobody else.
+	chown root:maas /etc/maas/maas_local_celeryconfig.py
+	chmod 0640 /etc/maas/maas_local_celeryconfig.py
+
+	#########################################################
+	################  Configure Apache2  ####################
+	#########################################################
+	# handle apache configs
+	if [ -e /etc/maas/maas-http.conf -a \
+		! -e /etc/apache2/conf.d/maas-http.conf ]; then
+		ln -sf /etc/maas/maas-http.conf /etc/apache2/conf.d/maas-http.conf
+	fi
+
+	# enable apache modules needed
+	a2enmod expires
+	a2enmod wsgi
+
+	#########################################################
+	##########  Configure DEFAULT_MAAS_URL  #################
+	#########################################################
+
+	# Obtain IP address of default route and change DEFAULT_MAAS_URL.
+	while read Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT; do
+		[ "$Mask" = "00000000" ] && break
+	done < /proc/net/route
+	interface="$Iface"
+	ipaddr=$(LC_ALL=C /sbin/ip -4 addr list dev "$interface" scope global)
+	ipaddr=${ipaddr#* inet }
+	ipaddr=${ipaddr%%/*}
+	# Set the IP address of the interface with default route
+	if [ -n "$ipaddr" ]; then
+		configure_maas_default_url "$ipaddr"
+		db_subst maas/installation-note MAAS_URL "$ipaddr"
+		db_set maas/default-maas-url "$ipaddr"
+	fi
+
+	#########################################################
+	################  Configure Logging  ####################
+	#########################################################
+
+	# Give appropriate permissions
+	if [ ! -f /var/log/maas/maas.log ]; then
+		touch /var/log/maas/maas.log
+	fi
+	chown -R maas:maas /var/log/maas
+	chmod -R 775 /var/log/maas/oops
+
+	# Create log directory base
+	mkdir -p /var/log/maas/rsyslog
+	chown -R syslog:syslog /var/log/maas/rsyslog
+	# Make sure rsyslog reads our config
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d rsyslog restart
+	fi
+
+	#########################################################
+	################### Squid-deb-proxy  ####################
+	#########################################################
+	# Make sure squid-deb-proxy reads our config (99-maas)
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d squid-deb-proxy restart
+	fi
+
+	#########################################################
+	########## Configure longpoll rabbitmq config ###########
+	#########################################################
+
+	# Handle longpoll/rabbitmq publishing
+	restart_rabbitmq
+	configure_maas_txlongpoll_rabbitmq_user
+
+	#########################################################
+	########## Configure worker rabbitmq config ###########
+	#########################################################
+
+	# Handle celery/rabbitmq publishing
+	configure_maas_workers_rabbitmq_user
+
+	#########################################################
+	######## add maas.conf to tgt conf.d ####################
+	#########################################################
+	configure_maas_tgt
+
+	#########################################################
+	################  Configure Database  ###################
+	#########################################################
+
+	# Need to for postgresql start so it doesn't fail on the installer
+	restart_postgresql
+
+	# Create the database
+	dbc_go maas-region-controller $@
+	configure_maas_database "$dbc_dbpass"
+
+	# Only syncdb if we have selected to install it with dbconfig-common.
+	db_get maas-region-controller/dbconfig-install
+	if [ "$RET" = "true" ]; then
+		maas_sync_migrate_db
+	fi
+
+	# Display installation note
+	db_input high maas/installation-note || true
+	db_go
+
+elif [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then
+	# Set the IP address of the interface with default route
+	db_get maas/default-maas-url
+	ipaddr="$RET"
+	db_set maas/default-maas-url "$ipaddr"
+	if [ -n "$ipaddr" ]; then
+		configure_maas_default_url "$ipaddr"
+	fi
+
+elif [ "$1" = "configure" ] && dpkg --compare-versions "$2" gt 0.1+bzr266+dfsg-0ubuntu1; then
+	# If upgrading to any later package version, then upgrade db.
+	if [ -x /usr/sbin/invoke-rc.d ]; then
+		invoke-rc.d apache2 stop || true
+	fi
+
+	# make sure postgresql is running
+	restart_postgresql
+
+	# If upgrading from any version lower than 0.1+bzr1063+dfsg-0ubuntu1
+	# we need to regenerate the passwords and update configs.
+	if dpkg --compare-versions "$2" lt 0.1+bzr1063+dfsg-0ubuntu1; then
+		# configure maas default url
+		db_get maas/default-maas-url
+		ipaddr="$RET"
+		configure_maas_default_url "$ipaddr"
+		# make sure rabbitmq is running
+		restart_rabbitmq
+		configure_maas_txlongpoll_rabbitmq_user
+		# Handle celery/rabbitmq publishing
+		configure_maas_workers_rabbitmq_user
+		# handle database upgrade
+		dbc_go maas-region-controller $@
+		configure_maas_database "$dbc_dbpass"
+	fi
+
+	maas_sync_migrate_db
+
+fi
+
+restart_apache2
+
+db_stop
+
+#DEBHELPER#
+
+exit 0

=== added file 'debian/maas-region-controller.postrm'
--- debian/maas-region-controller.postrm	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.postrm	2012-10-01 10:40:39 +0000
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+if [ -f /etc/dbconfig-common/maas.conf ]; then
+	if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then
+		. /usr/share/dbconfig-common/dpkg/postrm.pgsql
+		dbc_go maas-region-controller $@
+	fi
+fi
+
+case "$1" in
+	purge)
+		rm -rf /var/log/maas
+		rm -rf /var/lib/maas
+		if [ -h /etc/apache2/conf.d/maas-http.conf ]; then
+			rm -rf /etc/apache2/conf.d/maas-http.conf
+		fi
+
+		# Restarting apache2
+		if [ -x /usr/sbin/invoke-rc.d ]; then
+			invoke-rc.d apache2 restart || true
+		else
+			/etc/init.d/apache2 restart || true
+		fi
+
+		# Deleting user/group
+		if getent passwd maas >/dev/null; then
+			deluser maas || true
+		fi
+
+		# Remove rabbitmq/longpoll/celery
+		longpoll_user="maas_longpoll"
+		longpoll_vhost="/maas_longpoll"
+		workers_user="maas_workers"
+		workers_vhost="/maas_workers"
+		if [ -x /usr/sbin/rabbitmqctl ]; then
+			rabbitmqctl delete_vhost "$longpoll_vhost" || true
+			rabbitmqctl delete_user "$longpoll_user" || true
+
+			rabbitmqctl delete_vhost "$workers_vhost" || true
+			rabbitmqctl delete_user "$workers_user" || true
+		fi
+esac
+
+#DEBHELPER#
+
+db_stop
+
+exit 0

=== added file 'debian/maas-region-controller.prerm'
--- debian/maas-region-controller.prerm	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.prerm	2012-10-01 10:40:39 +0000
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+#DEBHELPER#
+
+if [ -x /usr/sbin/invoke-rc.d ]; then
+	invoke-rc.d apache2 stop || true
+else
+	/etc/init.d/apache2 stop || true
+fi
+
+. /usr/share/dbconfig-common/dpkg/prerm.pgsql
+dbc_go maas-region-controller $@
+
+exit 0

=== added file 'debian/maas-region-controller.templates'
--- debian/maas-region-controller.templates	1970-01-01 00:00:00 +0000
+++ debian/maas-region-controller.templates	2012-10-01 10:40:39 +0000
@@ -0,0 +1,22 @@
+Template: maas/installation-note
+Type: note
+Default: true
+_Description: Ubuntu MAAS Server
+ The Ubuntu MAAS Server has been installed in your system. You
+ can access the MAAS Web interface here:
+ .
+    http://${MAAS_URL}/MAAS
+ .
+ If the automatically detected address above is not in the same
+ network as the MAAS clients, you need to reconfigure it:
+ .
+    sudo dpkg-reconfigure maas-region-controller
+
+Template: maas/default-maas-url
+Type: string
+_Description: Ubuntu MAAS PXE/Provisioning network address:
+ The Ubuntu MAAS Server automatically detects the IP address
+ that is used for PXE and provisioning. However, it needs to be
+ in the same network as the clients. If the automatically
+ detected address is not in the same network as the clients, it
+ must be changed. 

=== added directory 'debian/patches'
=== added file 'debian/patches/01-fix-database-settings.patch'
--- debian/patches/01-fix-database-settings.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/01-fix-database-settings.patch	2012-10-01 10:40:39 +0000
@@ -0,0 +1,26 @@
+Index: maas-0.1+bzr702+dfsg.orig/contrib/maas_local_settings.py
+===================================================================
+--- maas-0.1+bzr702+dfsg.orig.orig/contrib/maas_local_settings.py	2012-06-29 12:03:20.000000000 -0400
++++ maas-0.1+bzr702+dfsg.orig/contrib/maas_local_settings.py	2012-06-29 12:17:00.733389757 -0400
+@@ -7,7 +7,7 @@
+ DEFAULT_MAAS_URL = "http://maas.internal.example.com/";
+ 
+ # Absolute path to the directory static files should be collected to.
+-STATIC_ROOT = '/var/lib/maas/static/'
++STATIC_ROOT = '/usr/share/maas/web/static/'
+ 
+ # Prefix to use for MAAS's urls.
+ # If FORCE_SCRIPT_NAME is None (the default), all the urls will start with
+@@ -68,9 +68,9 @@
+     'default': {
+         # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' etc.
+         'ENGINE': 'django.db.backends.postgresql_psycopg2',
+-        'NAME': '',
+-        'USER': '',
+-        'PASSWORD': '',
++        'NAME': 'maasdb',
++        'USER': 'maas',
++        'PASSWORD': 'maas',
+         'HOST': 'localhost',
+     }
+ }

=== added file 'debian/patches/02-pserv-config.patch'
--- debian/patches/02-pserv-config.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/02-pserv-config.patch	2012-10-01 10:40:39 +0000
@@ -0,0 +1,38 @@
+Description: Use default settings for MAAS PSERV
+ Use default settings for MAAS pserv. These default settings
+ include port, logfile, oops directory, cobbler url and username
+Author: Andres Rodriguez <andreserl@xxxxxxxxxx>
+
+Index: maas-0.1+bzr917+dfsg.orig/etc/pserv.yaml
+===================================================================
+--- maas-0.1+bzr917+dfsg.orig.orig/etc/pserv.yaml	2012-08-23 16:22:46.483599114 -0400
++++ maas-0.1+bzr917+dfsg.orig/etc/pserv.yaml	2012-08-23 16:22:56.579599373 -0400
+@@ -6,7 +6,7 @@
+ ## running server.
+ #
+ # logfile: "pserv.log"
+-logfile: "/dev/null"
++logfile: "/var/log/maas/pserv.log"
+ 
+ ## OOPS configuration (optional).
+ #
+@@ -15,7 +15,7 @@
+   # or directories other than what the oops machinery creates there.
+   #
+   # directory:
+-  directory: "logs/oops"
++  directory: "/var/log/maas/oops"
+   # reporter:
+   reporter: "maas-pserv"
+ 
+@@ -33,10 +33,8 @@
+ tftp:
+   # root: /var/lib/maas/tftp
+   # port: 69
+-  port: 5244
+   ## The URL to be contacted to generate PXE configurations.
+   # generator: http://localhost/MAAS/api/1.0/pxeconfig/
+-  generator: http://localhost:5243/api/1.0/pxeconfig/
+ 
+ ## Boot configuration.
+ boot:

=== added file 'debian/patches/03-txlongpoll-config.patch'
--- debian/patches/03-txlongpoll-config.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/03-txlongpoll-config.patch	2012-10-01 10:40:39 +0000
@@ -0,0 +1,39 @@
+Description: Use default settings for MAAS txlongpoll
+ Use default settings for MAAS txlongpoll. These default settings
+ include  oops directory, Message broker configuration, logfile.
+Author: Andres Rodriguez <andreserl@xxxxxxxxxx>
+
+Index: maas-0.1+bzr398+dfsg.orig/etc/txlongpoll.yaml
+===================================================================
+--- maas-0.1+bzr398+dfsg.orig.orig/etc/txlongpoll.yaml	2012-04-03 09:49:48.109427702 -0400
++++ maas-0.1+bzr398+dfsg.orig/etc/txlongpoll.yaml	2012-04-03 09:53:07.276282800 -0400
+@@ -17,7 +17,7 @@
+   # or directories other than what the oops machinery creates there.
+   #
+   # directory: ""
+-  directory: "logs/oops"
++  directory: "/var/log/maas/oops"
+   ## The reporter used when generating OOPS reports.
+   # reporter: "LONGPOLL"
+   reporter: "maas-txlongpoll"
+@@ -25,14 +25,14 @@
+ ## Message broker configuration.
+ #
+ broker:
+-  # host: "localhost"
+-  # port: 5672
+-  # username: "guest"
+-  # password: "guest"
+-  # vhost: "/"
++  host: "localhost"
++  port: 5672
++  username: "maas_longpoll"
++  password: "maaslongpoll"
++  vhost: "/maas_longpoll"
+ 
+ ## Where to log. This log can be rotated by sending SIGUSR1 to the
+ ## running server.
+ #
+ # logfile: "txlongpoll.log"
+-logfile: "/dev/null"
++logfile: "/var/log/maas/txlongpoll.log"

=== added file 'debian/patches/series'
--- debian/patches/series	1970-01-01 00:00:00 +0000
+++ debian/patches/series	2012-10-01 10:40:39 +0000
@@ -0,0 +1,3 @@
+01-fix-database-settings.patch
+02-pserv-config.patch
+03-txlongpoll-config.patch

=== added directory 'debian/po'
=== added file 'debian/po/POTFILES.in'
--- debian/po/POTFILES.in	1970-01-01 00:00:00 +0000
+++ debian/po/POTFILES.in	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+[type: gettext/rfc822deb] maas-dhcp.templates
+[type: gettext/rfc822deb] maas.templates

=== added file 'debian/po/templates.pot'
--- debian/po/templates.pot	1970-01-01 00:00:00 +0000
+++ debian/po/templates.pot	2012-10-01 10:40:39 +0000
@@ -0,0 +1,96 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: maas\n"
+"Report-Msgid-Bugs-To: maas@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2012-04-04 14:45-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@xxxxxx>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:1001
+msgid "Set the network range for DHCP Clients:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:1001
+msgid ""
+"Ubuntu MAAS Server can manage DHCP for address allocation for the "
+"provisioned systems.  If the network range for the DHCP is different from "
+"the default (192.168.1.5,192.168.1.200), you should set it here."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:1001
+msgid "An example of how a network range should be specified is:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:1001
+msgid "10.10.10.2,10.10.10.254"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:2001
+msgid "Set default Gateway for DHCP Clients:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:2001
+msgid ""
+"Ubuntu MAAS Server can manage DHCP for address allocation for the "
+"provisioned systems.  If the Ubuntu MAAS Server is NOT the default Gateway "
+"for the provisioned systems, you should set the default Gateway here, "
+"otherwise leave this blank."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:3001
+msgid "Set the domain name for DHCP Clients:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../maas-dhcp.templates:3001
+msgid ""
+"Ubuntu MAAS Server can manage DHCP for address allocation for the "
+"provisioned systems. If these systems are required to be under a domain, you "
+"should enter it here."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../maas.templates:1001
+msgid "Ubuntu MAAS Server"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../maas.templates:1001
+msgid ""
+"The Ubuntu MAAS Server has been installed in your system. You can access the "
+"MAAS Web interface here:"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../maas.templates:1001
+msgid "   http://${MAAS_URL}/MAAS";
+msgstr ""

=== added file 'debian/python-django-maas.install'
--- debian/python-django-maas.install	1970-01-01 00:00:00 +0000
+++ debian/python-django-maas.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+debian/tmp/usr/lib/python*/dist-packages/maasserver
+debian/tmp/usr/lib/python*/dist-packages/metadataserver

=== added file 'debian/python-maas-client.install'
--- debian/python-maas-client.install	1970-01-01 00:00:00 +0000
+++ debian/python-maas-client.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+debian/tmp/usr/lib/python*/dist-packages/apiclient

=== added file 'debian/python-maas-provisioningserver.install'
--- debian/python-maas-provisioningserver.install	1970-01-01 00:00:00 +0000
+++ debian/python-maas-provisioningserver.install	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+debian/tmp/usr/lib/python*/dist-packages/provisioningserver

=== added file 'debian/rules'
--- debian/rules	1970-01-01 00:00:00 +0000
+++ debian/rules	2012-10-01 10:40:39 +0000
@@ -0,0 +1,65 @@
+#!/usr/bin/make -f
+
+BUILDHOME = $(CURDIR)/debian/build
+PYTHON = $(shell pyversions -d)
+# Python enum modules.
+py_enums := $(wildcard src/*/enum.py)
+
+%:
+	dh $@ --with python2,apport --buildsystem=python_distutils
+
+override_dh_installinit:
+	dh_installinit --name maas-pserv
+	dh_installinit --name maas-txlongpoll
+	dh_installinit --name maas-region-celery
+	dh_installinit --name maas-cluster-celery
+	dh_installinit --name maas-dhcp-server
+
+override_dh_auto_build:
+	dh_auto_build
+
+	mkdir -p $(BUILDHOME)
+	HOME=$(BUILDHOME) PYTHONPATH=$(CURDIR)/src/ $(PYTHON)	\
+		$(CURDIR)/src/maasserver/utils/jsenums.py	\
+		$(py_enums) > $(BUILDHOME)/enums.js
+
+override_dh_auto_install:
+	dh_auto_install
+
+	# Move static files
+	install -d -m 755  $(CURDIR)/debian/tmp/usr/share/maas/web/static
+	mv $(CURDIR)/debian/tmp/usr/lib/python*/*-packages/maasserver/static \
+                $(CURDIR)/debian/tmp/usr/share/maas/web/
+
+	# Install built enums.js file.
+	cp $(BUILDHOME)/enums.js $(CURDIR)/debian/tmp/usr/share/maas/web/static/js/
+
+	# install the apparmor profile
+	install -d -m 755 $(CURDIR)/debian/tmp/etc/apparmor.d/dhcpd.d
+	install -m 644 $(CURDIR)/debian/maas-dhcp.apparmor \
+	    $(CURDIR)/debian/tmp/etc/apparmor.d/dhcpd.d/maas
+
+	dh_install --list-missing
+
+override_dh_auto_clean:
+	dh_auto_clean
+	rm -rf $(BUILDHOME)
+	rm -rf src/*.egg-info
+
+DEB_DEBIAN_DIR=$(dir $(firstword $(MAKEFILE_LIST)))
+REV=$(shell dpkg-parsechangelog -l$(DEB_DEBIAN_DIR)/changelog \
+              | sed -rne 's,^Version: .*[+~]bzr([0-9]+).*,\1,p')
+VER=$(shell dpkg-parsechangelog -l$(DEB_DEBIAN_DIR)/changelog \
+              | sed -rne 's,^Version: ([^-]+).*,\1,p')
+get-orig-source:
+	bzr export -r $(REV) --root=maas-$(VER).orig \
+             maas_$(VER).orig.tar.gz lp:maas
+	rm -rf maas-$(VER)
+	tar -xf maas_$(VER).orig.tar.gz
+	rm maas_$(VER).orig.tar.gz
+	rm -rf maas-$(VER).orig/src/maasserver/static/jslibs/
+	rm -rf maas-$(VER).orig/contrib/python-tx-tftp
+	GZIP=--best tar -cz --owner root --group root --mode a+rX \
+                        -f maas_$(VER).orig.tar.gz \
+                        maas-$(VER).orig
+	rm -r maas-$(VER).orig

=== added directory 'debian/source'
=== added file 'debian/source/format'
--- debian/source/format	1970-01-01 00:00:00 +0000
+++ debian/source/format	2012-10-01 10:40:39 +0000
@@ -0,0 +1,1 @@
+3.0 (quilt)

=== added directory 'debian/tests'
=== added file 'debian/tests/control'
--- debian/tests/control	1970-01-01 00:00:00 +0000
+++ debian/tests/control	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+Tests: maas-package-test
+Depends: @, python-nose, xvfb, python-pip

=== added file 'debian/tests/maas-integration.py'
--- debian/tests/maas-integration.py	1970-01-01 00:00:00 +0000
+++ debian/tests/maas-integration.py	2012-10-01 10:40:39 +0000
@@ -0,0 +1,72 @@
+# TODO
+#  - send ipmi commands to turn on/off nodes
+#  - run import pxe files
+#  - check node states once they're on/off
+#  - check node state changes (declared -> commissionig -> ready)
+import os
+from subprocess import check_output
+import sys
+from unittest import TestCase
+
+from pyvirtualdisplay import Display
+from sst.actions import (
+    assert_url, assert_text_contains, assert_title_contains, click_button,
+    get_element, go_to, write_textfield)
+
+
+sys.path.insert(0, "/usr/share/maas")
+os.environ['DJANGO_SETTINGS_MODULE'] = 'maas.settings'
+from maasserver.models import User
+
+MAAS_URL = "http://10.98.0.13/MAAS";
+ADMIN_USER = "admin"
+PASSWORD = "test"
+
+
+class TestMAASIntegration(TestCase):
+
+    def setUp(self):
+        self.display = Display(visible=0, size=(1280, 1024))
+        self.display.start()
+
+    def tearDown(self):
+        self.display.stop()
+
+    def createadmin(self):
+        """Run sudo maas createsuperuser."""
+        cmd_output = check_output(
+            ["sudo", "maas", "createsuperuser", "--username=%s" % ADMIN_USER,
+            "--email=example@xxxxxxxxxxxxx", "--noinput"])
+        ## Set password for admin user.
+        try:
+            admin = User.objects.get(username=ADMIN_USER)
+        except User.DoesNotExist:
+            admin = User(username=ADMIN_USER)
+        admin.set_password(PASSWORD)
+        admin.save()
+        return cmd_output
+
+    def installation(self):
+        # Check the installation worked.
+        go_to(MAAS_URL)
+        assert_text_contains(
+            get_element(tag="body"), "No admin user has been created yet")
+
+    def createadmin_and_login(self):
+        ## Creates the admin user.
+        output = self.createadmin()
+        self.assertEqual(output, 'Superuser created successfully.')
+        ## Login with the newly created admin user
+        go_to(MAAS_URL)
+        assert_text_contains(
+            get_element(tag="body"), "Login to lenovo-RD230-01 MAAS")
+        write_textfield("id_username", ADMIN_USER)
+        write_textfield("id_password", PASSWORD)
+        click_button("Login")
+        assert_url("MAAS/")
+        assert_title_contains("Dashboard")
+
+    def test_integration(self):
+        # Run the integration tests in order.
+        self.installation()
+        self.createadmin_and_login()

=== added file 'debian/tests/maas-package-test'
--- debian/tests/maas-package-test	1970-01-01 00:00:00 +0000
+++ debian/tests/maas-package-test	2012-10-01 10:40:39 +0000
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -e -u
+exec 2>&1
+pip install sst
+nosetests debian/tests/maas-integration.py

=== added file 'debian/watch'
--- debian/watch	1970-01-01 00:00:00 +0000
+++ debian/watch	2012-10-01 10:40:39 +0000
@@ -0,0 +1,2 @@
+version=3
+http://launchpad.net/maas/+download https://launchpad.net/maas/.*/maas-(.*).tar.*