launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #12726
[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.*