debian/0000775000000000000000000000000012440127527007174 5ustar debian/maas-cluster-controller.links0000664000000000000000000000013612351044305015010 0ustar etc/maas/maas_local_celeryconfig_cluster.py usr/share/maas/maas_local_celeryconfig_cluster.py debian/maas-cluster-controller.dirs0000664000000000000000000000004512351044305014630 0ustar etc/maas var/lib/maas/boot-resources debian/maas-cluster-controller.postinst0000664000000000000000000001220512407111334015552 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule db_version 2.0 RELEASE=`lsb_release -rs` || RELEASE="" create_log_dir() { # create log dir if [ ! -d /var/lib/maas ]; then mkdir -p /var/lib/maas fi if [ ! -d /var/log/maas/oops ]; then mkdir -p /var/log/maas/oops fi # Give appropriate permissions chown -R maas:maas /var/lib/maas/ chown -R maas:maas /var/log/maas chmod -R 775 /var/log/maas/oops } configure_maas_tgt() { # Ensure that iSCSI targets get re-defined on reboot. # Creates a softlink in /etc/tgt/conf.d/ that points to the current # boot images' tgt configuration. mkdir -p /etc/tgt/conf.d ln -sf /var/lib/maas/boot-resources/current/maas.tgt /etc/tgt/conf.d/maas.conf } extract_cluster_uuid(){ # Extract ClUSTER_UUID setting from config file $1. This will work # both the cluster celery config (which is python) and the cluster # config (which is shell). sed -n -e "s/^CLUSTER_UUID *= *[\"']\([^\"']*\).*/\1/p" "$1" } configure_cluster_uuid(){ # The cluster uuid goes into maas_cluster.conf, but we also still # keep a copy in maas_local_celeryconfig_cluster.py (hopefully just # temporarily). If an old uuid is configured, we replicate that to # maas_cluster.conf; otherwise, we want to generate one. local uuid if [ -n "$(extract_cluster_uuid /etc/maas/maas_cluster.conf)" ]; then # UUID is already set up. Wonderful. return fi # Look for a UUID stored in the old location. uuid="$(extract_cluster_uuid /etc/maas/maas_local_celeryconfig_cluster.py)" if [ -z "$uuid" ]; then # No UUID at all yet. Generate one, and insert it into its # placeholder in the old config location. uuid="$(uuidgen)" sed -i "s|^CLUSTER_UUID = None$|CLUSTER_UUID = '$uuid'|" \ /etc/maas/maas_local_celeryconfig_cluster.py fi # Either way, at this point we have a uuid, and it is configured in # the old config location. # # Write it to maas_cluster.conf as well. There is no initial # placeholder in this file, so just append the setting. echo "CLUSTER_UUID=\"$uuid\"" >>/etc/maas/maas_cluster.conf } enable_apache_version_mod(){ COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) if [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then a2enmod version fi } configure_cluster_http(){ case $RELEASE in 12.04|12.10|13.04) if [ -e /etc/maas/maas-cluster-http.conf -a \ ! -e /etc/apache2/conf.d/maas-cluster-http.conf ]; then ln -sf /etc/maas/maas-cluster-http.conf /etc/apache2/conf.d/maas-cluster-http.conf fi ;; *) # handle apache configs if [ -e /etc/maas/maas-cluster-http.conf -a \ ! -e /etc/apache2/conf-enabled/maas-cluster-http.conf ]; then ln -sf /etc/maas/maas-cluster-http.conf /etc/apache2/conf-enabled/maas-cluster-http.conf fi ;; esac } configure_cluster_authbind() { MAAS_UID="`id -u maas`" if [ ! -f "/etc/authbind/byuid/$MAAS_UID" ]; then if [ ! -d "/etc/authbind/byuid" ]; then mkdir -p /etc/authbind/byuid chmod 755 /etc/authbind chmod 755 /etc/authbind/byuid fi fi echo '0.0.0.0/0:68,69' >/etc/authbind/byuid/$MAAS_UID echo '::/0,68-69' >>/etc/authbind/byuid/$MAAS_UID chown maas:maas /etc/authbind/byuid/$MAAS_UID chmod 700 /etc/authbind/byuid/$MAAS_UID } restart_apache2(){ if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d apache2 restart || true else /etc/init.d/apache2 restart || true fi } configure_pserv_generator(){ # Get the MAAS_URL on configure/reconfigure and write it to the conf files. db_get maas-cluster-controller/maas-url || true if [ -n "$RET" ]; then sed -i "s|MAAS_URL=.*|MAAS_URL=\"$RET\"|" /etc/maas/maas_cluster.conf # Extract the hostname part. HOSTPART=$(echo $RET|awk '{ split($0,array,"/")} END{print array[3] }') # And substitute it in-place in pserv.yaml on an indented, non-commented # line. sed -ri "s|^([[:space:]]+)(#+[[:space:]]*)?(generator:[[:space:]]+https?://)[^:/]+|\1\3$HOSTPART|" /etc/maas/pserv.yaml fi } if [ "$1" = "configure" ] && [ -z "$2" ]; then create_log_dir configure_maas_tgt fi if [ "$1" = "configure" ]; then if dpkg --compare-versions "$2" lt 0.1+bzr1239+dfsg-0ubuntu1; then create_log_dir fi configure_maas_tgt configure_pserv_generator # These config files may contain a private cluster UUID. Only maas # can read them; only root can write them chown root:maas \ /etc/maas/maas_local_celeryconfig_cluster.py \ /etc/maas/maas_cluster.conf chmod 0640 \ /etc/maas/maas_local_celeryconfig_cluster.py \ /etc/maas/maas_cluster.conf configure_cluster_uuid configure_cluster_authbind enable_apache_version_mod configure_cluster_http restart_apache2 maas-provision upgrade-cluster fi db_stop #DEBHELPER# debian/python-django-maas.install0000664000000000000000000000015412351044305014255 0ustar debian/tmp/usr/lib/python*/dist-packages/maasserver debian/tmp/usr/lib/python*/dist-packages/metadataserver debian/maas-dns.postinst0000664000000000000000000000316312351044305012500 0ustar #!/bin/sh set -e if ([ "$1" = "configure" ] && [ -z "$2" ]) || [ -n "$DEBCONF_RECONFIGURE" ]; then # If /etc/bind/maas is empty, set_up_dns. if [ ! "$(ls -A /etc/bind/maas)" ]; then maas-region-admin 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 if [ -f /etc/bind/maas/named.conf.rndc.maas ]; then chown maas:bind /etc/bind/maas/named.conf.rndc.maas chmod 640 /etc/bind/maas/named.conf.rndc.maas fi # Remove any existing MAAS-related include line from # /etc/bind/named.conf.local, then re-add it. sed -i '/^include\s.*maas/d' /etc/bind/named.conf.local maas-region-admin get_named_conf --edit --config_path /etc/bind/named.conf.local # Add a line in /etc/bind/named.conf.options that includes the # /etc/named/maas/named.conf.options.inside.maas file. maas-region-admin edit_named_options --config-path /etc/bind/named.conf.options invoke-rc.d bind9 restart || true fi if [ "$1" = "configure" ]; then # If the /etc/bind/named.conf.options is not set up yet, do it now. # This might happen because of an upgrade from an older package. if ! grep -qs "named.conf.options.inside.maas" /etc/bind/named.conf.options; then maas-region-admin edit_named_options --config-path /etc/bind/named.conf.options invoke-rc.d bind9 restart || true fi fi #DEBHELPER# debian/control0000664000000000000000000001760112407111334010574 0ustar Source: maas Section: net Priority: optional Maintainer: Ubuntu Developers Build-Depends: debhelper (>= 8.1.0~), dh-apport, po-debconf, python (>= 2.7), python-distribute, python-django Standards-Version: 3.9.4 X-Python-Version: >= 2.7 Homepage: https://launchpad.net/maas Package: maas Architecture: all Depends: ${misc:Depends}, maas-cluster-controller, maas-region-controller, python-django-maas Description: MAAS server all-in-one metapackage MAAS is "Metal As A Service", a system for dynamic provisioning of physical servers that has many of the same characteristics as a cloud. You register servers with MAAS by telling MAAS about their IPMI or other control system. MAAS can then do hardware inventory, and provision that system on demand with whatever OS and software you like. MAAS is standalone software that works with any configuration system, but for best results combine MAAS with Juju. . MAAS provides: * Hardware inventory of servers * Dynamic provisioning based on name or attributes such as disk, RAM cores, sockets * DNS and DHCP as needed * PXE boot services . This package is a metapackage which installs all of the separate components of MAAS on a single machine. Package: maas-common Architecture: all Depends: ${misc:Depends}, ${python:Depends} Breaks: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 ) Replaces: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 ) Description: MAAS server common files This package contains the common files for any MAAS installation. Package: maas-region-controller-min Architecture: all Depends: apache2, bind9utils, dbconfig-common, iproute, libapache2-mod-wsgi, libjs-raphael, libjs-yui3-full, libjs-yui3-min, maas-common (= ${binary:Version}), pwgen, python-django (>= 1.4), python-django-maas (= ${binary:Version}), python-django-piston, python-django-south, python-maas-provisioningserver (= ${binary:Version}), python-djorm-ext-pgarray, rsyslog, squid-deb-proxy, ${misc:Depends}, ${python:Depends} Breaks: maas-region-controller ( <= 1.4+bzr1693+dfsg-0ubuntu3 ) Replaces: maas-region-controller ( <= 1.4+bzr1693+dfsg-0ubuntu3 ) Description: MAAS Server minimum region controller This package installs and configures the minimum region controller services provided by MAAS, including the web UI, caching package proxy, networking/traffic control, and remote logging system. Package: maas-region-controller Architecture: all Depends: maas-region-controller-min (= ${binary:Version}), postgresql (>= 9.1), rabbitmq-server, ${misc:Depends}, ${python:Depends} Recommends: openssh-server, maas-dns (= ${binary:Version}) Description: MAAS server complete region controller This package installs and configures the complete MAAS region controller, including the minimum setup, plus the database server and messaging queue. Package: python-maas-provisioningserver Section: python Architecture: all Depends: python-amqp, python-celery, python-crochet, python-distro-info, python-formencode, python-jsonschema, python-lockfile, python-lxml, python-maas-client, python-netifaces, python-oops, python-oops-amqp, python-oops-datedir-repo, python-oops-twisted, python-paramiko, python-pexpect, python-pyparsing, python-seamicroclient, python-simplestreams, python-tempita, python-twisted-core, python-twisted-web, python-txamqp, python-txtftp, python-yaml, python-zope.interface, ${misc:Depends}, ${python:Depends} Breaks: python-django-maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 ), maas-cluster-controller (<= 0.1+bzr1243+dfsg-0ubuntu3), maas-dhcp (<= 1.4+bzr1817+dfsg-0ubuntu1) Replaces: python-django-maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 ), maas-cluster-controller (<= 0.1+bzr1243+dfsg-0ubuntu3), maas-dhcp (<= 1.4+bzr1817+dfsg-0ubuntu1) Conflicts: python-librabbitmq Description: MAAS server provisioning libraries This package provides the MAAS provisioning server python libraries. Package: maas-cli Architecture: all Depends: python-bzrlib, python-httplib2, python-maas-client (= ${binary:Version}), python-oauth, ${misc:Depends}, ${python:Depends} Conflicts: maas-region-controller-min (<= 1.5+bzr1909-0ubuntu1) Replaces: maas-region-controller-min (<= 1.5+bzr1909-0ubuntu1) Description: MAAS command line API tool This package contains the MAAS client command line API tool. This tool enables automation of tasks in MAAS, remotely, through its API. Package: python-maas-client Section: python Architecture: all Depends: python-oauth, ${misc:Depends}, ${python:Depends} Breaks: maas (<= 0.1+bzr971+dfsg-0ubuntu2 ) Replaces: maas (<= 0.1+bzr971+dfsg-0ubuntu2 ) Description: MAAS python API client This package contains the MAAS client API Python modules. Package: maas-cluster-controller Architecture: all Depends: apache2, authbind, bind9utils, distro-info, freeipmi-tools, grub-common, maas-cli (=${binary:Version}), maas-common (=${binary:Version}), maas-dhcp (=${binary:Version}), python-amqp, python-celery, python-httplib2, python-lockfile, python-maas-provisioningserver (=${binary:Version}), python-netaddr, python-oauth, python-tempita, python-twisted, python-zope.interface, rsyslog, syslinux-common, tgt, ubuntu-cloudimage-keyring, uuid-runtime, wget, ${misc:Depends}, ${python:Depends} Suggests: ipmitool, libvirt-bin, amtterm Conflicts: tftpd-hpa, python-librabbitmq Breaks: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 ), maas-region-controller ( <= 0.1+bzr1314+dfsg-0ubuntu1 ) Replaces: maas ( <= 0.1+bzr1048+dfsg-0ubuntu1 ), maas-region-controller ( <= 0.1+bzr1314+dfsg-0ubuntu1 ) Description: MAAS server cluster controller This package contains the MAAS cluster controller, which is responsible for enabling and controlling remote DHCP/TFTP instances on their own subnets. Package: python-django-maas Section: python Architecture: all Depends: python-amqp, python-celery, python-convoy, python-crochet, python-curtin, python-lockfile, python-lxml, 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-zope.interface, ${misc:Depends}, ${python:Depends} Conflicts: python-librabbitmq Description: MAAS server Django web framework This package provides the Django web framework for MAAS. Package: maas-dhcp Architecture: all Depends: isc-dhcp-server (>= 4.2.4), ${misc:Depends} Breaks: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1) Replaces: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1) Description: MAAS DHCP server This package installs and configures a DHCP server that can be used by MAAS, and enhances the overall MAAS user experience. Package: maas-dns Architecture: all Depends: bind9, maas-region-controller-min (= ${binary:Version}), python-iscpy, ${misc:Depends} Conflicts: dnsmasq Breaks: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1) Replaces: maas-dhcp (<= 0.1+bzr777+dfsg-0ubuntu1) Description: MAAS DNS server This package installs and configures a DNS server that can be used by MAAS, and enhances the overall MAAS user experience. debian/maas-cluster-controller.templates0000664000000000000000000000040212351044305015662 0ustar Template: maas-cluster-controller/maas-url Type: string Default: _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, e.g. http://192.168.1.1/MAAS debian/maas-region-controller-min.logrotate0000664000000000000000000000045512351044305016257 0ustar /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 } debian/maas-cluster-controller.install0000664000000000000000000000164112351044305015340 0ustar # Install twisted plugins twisted/plugins/maasps.py usr/share/pyshared/twisted/plugins # Install PSERV config files debian/tmp/etc/maas/pserv.yaml debian/tmp/etc/maas/bootresources.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 templates debian/tmp/etc/maas/templates/dhcp debian/tmp/etc/maas/templates/power debian/tmp/etc/maas/templates/pxe debian/tmp/etc/maas/templates/uefi # Install maas-import-pxe-files and related files debian/tmp/usr/sbin/maas-import-pxe-files man/maas-import-pxe-files.8 usr/share/man/man8 debian/tmp/usr/bin/uec2roottar # Install all other stuff debian/extras/99-maas-sudoers etc/sudoers.d debian/extras/isc-dhcp-server.override etc/init debian/tmp/etc/maas/maas-cluster-http.conf debian/maas-region-controller-min.lintian-overrides0000664000000000000000000000111612351044305017710 0ustar maas-region-controller: binary-without-manpage usr/sbin/maas maas-region-controller: binary-without-manpage usr/sbin/maas-region-celeryd maas-region-controller: script-not-executable etc/maas/templates/commissioning-user-data/snippets/maas_ipmi_autodetect.py maas-region-controller: script-not-executable etc/maas/templates/commissioning-user-data/snippets/maas_signal.py maas-region-controller: script-not-executable etc/maas/templates/commissioning-user-data/user_data.template maas-region-controller: script-not-executable etc/maas/templates/commissioning-user-data/snippets/maas_get.py debian/po/0000775000000000000000000000000012407113747007614 5ustar debian/po/POTFILES.in0000664000000000000000000000016712351044305011364 0ustar [type: gettext/rfc822deb] maas-region-controller.templates [type: gettext/rfc822deb] maas-cluster-controller.templates debian/po/templates.pot0000664000000000000000000000432512351044305012331 0ustar # 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 , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: maas\n" "Report-Msgid-Bugs-To: maas@packages.debian.org\n" "POT-Creation-Date: 2012-10-04 13:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../maas-region-controller.templates:1001 msgid "Ubuntu MAAS Server" msgstr "" #. Type: note #. Description #: ../maas-region-controller.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-region-controller.templates:1001 msgid " http://${MAAS_URL}/MAAS" msgstr "" #. Type: note #. Description #: ../maas-region-controller.templates:1001 msgid "" "If the automatically detected address above is not in the same network as " "the MAAS clients, you need to reconfigure it:" msgstr "" #. Type: note #. Description #: ../maas-region-controller.templates:1001 msgid " sudo dpkg-reconfigure maas-region-controller" msgstr "" #. Type: string #. Description #: ../maas-region-controller.templates:2001 msgid "Ubuntu MAAS PXE/Provisioning network address:" msgstr "" #. Type: string #. Description #: ../maas-region-controller.templates:2001 msgid "" "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." msgstr "" #. Type: string #. Description #: ../maas-cluster-controller.templates:1001 msgid "Ubuntu MAAS API address:" msgstr "" #. Type: string #. Description #: ../maas-cluster-controller.templates:1001 msgid "" "The MAAS Cluster Controller needs to contact the MAAS server to register its " "presence. Set the URL to the MAAS API here, e.g. http://192.168.1.1/MAAS" msgstr "" debian/maas-cluster-controller.lintian-overrides0000664000000000000000000000010412351044305017321 0ustar maas-cluster-controller: binary-without-manpage usr/bin/uec2roottar debian/maas-region-controller-min.prerm0000664000000000000000000000014212351044305015375 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule #DEBHELPER# invoke-rc.d apache2 stop || true debian/changelog0000664000000000000000000014664112440127454011061 0ustar maas (1.5.4+bzr2294-0ubuntu1.2) trusty-security; urgency=medium * Fix compatibility with mod-wsgi security update (LP: #1399016) - debian/patches/home-directory.patch: specify a valid home directory for the maas user, since mod-wsgi no longer works without one. -- Marc Deslauriers Thu, 04 Dec 2014 13:59:56 -0500 maas (1.5.4+bzr2294-0ubuntu1.1) trusty-proposed; urgency=medium * Add hardware enablement for armhf/keystone (LP: #1350103) -- Greg Lutostanski Thu, 18 Sep 2014 16:43:56 -0500 maas (1.5.4+bzr2294-0ubuntu1) trusty-proposed; urgency=medium * New upstream bug fix release: - Change supported releases for install to Precise, Saucy, Trusty, Utopic (Add Utopic; Remove Quantal/Raring) -- will still only be able to install releases with streams available to maas (LP: #1337437) - Package fails to install when the default route is through an aliased/tagged interface (LP: #1350235) - ERROR Nonce already used (LP: #1190986) - Add MAAS arm64/xgene support (LP: #1338851) - API documentation for nodegroup op=details missing parameter (LP: #1331982) - Reduce number of celery tasks emitted when updating a cluster controller (LP: #1324944) - Fix VirshSSH template which was referencing invalid attributes (LP: #1324966) - Fix a start up problems where a database lock was being taken outside of a transaction (LP: #1325640, LP: #1325759) - Reformat badly formatted Architecture error message (LP: #1301465) - Final changes to support ppc64el (now known as PowerNV) (LP: #1315154) - UI tweak to make navigation elements visible for documentation [ Greg Lutostanski ] * debian/control: - maas-provisioningserver not maas-cluster-controller depends on python-pexpect (LP: #1352273) [ Gavin Panella ] * debian/maas-cluster-controller.postinst - Allow maas-pserv to bind to all IPv6 addresses too. (LP: #1342302) [ Diogo Matsubara ] * debian/control: - python-maas-provisioningserver depends on python-paramiko (LP: #1334401) [ Raphaël Badin ] * debian/extras/99-maas-sudoers: - Add rule 'maas-dhcp-server stop' job. -- Greg Lutostanski Fri, 29 Aug 2014 13:27:34 -0500 maas (1.5.2+bzr2282-0ubuntu0.2) trusty-proposed; urgency=medium * debian/control: - Add missing dependency in maas-cluster-controller for grub-common (LP: #1328231) - Move dependency from maas-cluster-controller to maas-provisioningserver for python-seamicroclient (LP: #1332532) -- Greg Lutostanski Fri, 20 Jun 2014 10:10:47 -0500 maas (1.5.2+bzr2282-0ubuntu0.1) trusty-proposed; urgency=medium * New upstream release: - Remove workaround for fixed Django bug 1311433 (LP: #1311433) - Ensure that validation errors are returned when adding a node over the API and its cluster controller is not contactable. (LP: #1305061) - Hardware enablement support for PowerKVM (LP: #1325038) - Shorten the time taken for a cluster to initially connect to the region via RPC to around 2 seconds (LP: #1317682) - Faster DHCP leases parser (LP: #1305102) - Documentation fixed explaining how to enable an ephemeral backdoor (LP: #1321696) - Use probe-and-enlist-hardware to enlist all virtual machine inside a libvirt machine, allow password qemu+ssh connections. (LP: #1315155, LP: #1315157) - Rename ppc64el boot loader to PowerKVM (LP: #1315154) - Fix NodeForm's is_valid() method so that it uses Django's way of setting errors on forms instead of putting text in self.errors['architecture'] (LP: #1301465) - Change BootMethods to return their own IReader per-request, update method names to reflect new usage. (LP: #1315154) - Return early and stop the DHCP server when the list of managed interfaces of the nodegroup is empty. (LP: #1324944) - Fix invalid attribute references in the VirshSSH class. Added more test for the VirshSSH class. (LP: #1324966) * debian/control: - Add missing dependency in maas-cluster-controller for python-pexpect (LP: #1322151) -- Greg Lutostanski Wed, 04 Jun 2014 14:31:41 -0500 maas (1.5.1+bzr2269-0ubuntu0.1) trusty; urgency=medium * Stable Release Update (LP: #1317601): - Hardware Enablement for Cisco B-Series. (LP: #1300476) - Allow AMT power type to specify IP Address. (LP: #1308772) - Spurious failure when starting and creating lock files. (LP: 1308069) - Fix usage of hardware enablement kernels by fixing the preseeds (LP: #1310082, LP: #1310076, LP: #1310082) - Fix parallel juju deployments. (LP: #1314409) - Clear distro_series when stopping node from WebUI (LP: #1316396) - Fix click hijacking (LP: #1298784) - Fix blocking API client when deleting a resource (LP: #1313556) - Do not import Trusty RC images by default (LP: #1311151) - debian/control: Add missing dep on python-crochet for python-maas-provisioningserver (LP: #1311765) -- Andres Rodriguez Fri, 09 May 2014 22:35:43 -0500 maas (1.5+bzr2252-0ubuntu1) trusty; urgency=medium * New upstream release - Add support to install Third Party Drivers. In order for this to be used the user will have to go to the Settings page to enable the installation of these drivers. (LP: #1305839) - Use release images instead of daily. (LP: #1306701) - Quote interface name in dhcpd.template, otherwise DHCP server fails to start. (LP: #1306335) - Fix IntegrityError, when multiple processes are trying to register the same component. (LP: #1307415) - Add missing armhf commissioning template (LP: #1307780) * debian/maas-region-controller-min.install: Install drivers.yaml. * debian/maas-region-controller.postinst: No longer show the installation note by default. (LP: #1284652) -- Andres Rodriguez Wed, 09 Apr 2014 19:02:00 -0400 maas (1.5+bzr2236-0ubuntu1) trusty; urgency=medium * New upstream bugfix release. - Fix simplestreams path to use the new data source path. (LP: #1305118) - Fix commissioning_distro_series validation failure. (LP: #1304408) - Fix DB migration 0072_remove_ipmi_autodetec. (LP: #1302156) - Update documentation. * debian/maas-region-controller-min.maas-region-celery.upstart, debian/maas-region-controller-min.maas-txlongpoll.upstart: Fix ISO install by making sure rabbitmq user is really created if it does not exist (LP: #1298559) -- Andres Rodriguez Wed, 09 Apr 2014 18:36:55 -0400 maas (1.5+bzr2230-0ubuntu1) trusty; urgency=medium * New upstream bugfix release: - Fix Cluster Controller to handle deprecated config items gracefull. Otherwise it fails on upgrades. (LP: #1302772) - Fix documentation generation and referencing. (LP: #1302956) - Ensure we PXE boot when we turn on SM15K systems. (LP: #1303915) -- Andres Rodriguez Mon, 07 Apr 2014 10:26:51 -0400 maas (1.5+bzr2227-0ubuntu1) trusty; urgency=medium * New upstream bugfix release: - Fix catching exceptions raised by twisted.conch.ssh.keys.Key.fromString (LP: #1298788) - Fix validationg in default NodeGroupInterface.broadcast_ip making it optional. (LP: #1299374) - Drop install-pxe-bootloader as it conflicts with newer import script. - Remove references to old import script. - Fix changes that cause overwriting of existing entries. - Fix inappropriate ValidationError when defining networks with nested (but non-identical) address ranges. (LP: #1299114) - Fix issue where if a node does not provide an architecture type on dhcp request, or no other boot method is available for that architecture, the node still uses pxelinux.0 to boot. (LP: #1300285) - Take an advisory lock to prevent concurrent creation of the eventloops table. (LP: #1300363) - Remove the cloud_images_archive setting, as it conflicts with new import script. (LP: #1300587) - Add a 'logout confirmation' page. Using this, the logout action is protected against CSRF attacks because it uses a POST request, in conjunction with Django's CSRF protection feature. (LP: #1298790) - Fix cluster listings when dealing with large number of clusters by paginating it. (LP: #1301242) - Change list_boot_images() so that it can cope with a missing boot images directory: this happens if the reporting task runs before the images have been imported. (LP: #213984) - Fix internal server error on fast path installer. (LP: #1293676) - Fix uploading files using maas-cli. (LP: #1187826) - Fix SM15k Invalid Power Control and Fix enlisting machines with 2.0 api. (LP: #1302818, LP: #1302819) [ Andres Rodriguez ] * debian/maas-cluster-controller.install: Install UEFI templates * debian/maas-cluster-controller.dirs: Create 'boot-resources' dir. [ Jason Hobbs ] * debian/extras/99-maas: Allow access to keyserver.ubuntu.com via squid-deb-proxy. [Jeroen Vermeulen] * debian/maas-cluster-controller.postinst: - Make the tgt config link point to the new boot-resources dir. * debian/maas-region-controller-min.dirs: - Don't create /var/lib/maas/tftp. -- Andres Rodriguez Thu, 03 Apr 2014 13:45:02 -0400 maas (1.5+bzr2204-0ubuntu1) trusty; urgency=low * New upstream release (LP: #1281881) [ Andres Rodriguez ] * debian/maas-region-controller-min.templates: Set installation note to false by default. * Check rabbitmqctl is present before running commands: - debian/maas-region-controller-min.maas-region-celery.upstart. - debian/maas-region-controller-min.maas-txlongpoll.upstart. * make sure maas_longpoll rabbitmq user is created/with correct password on a package reconfigure. * debian/maas-dns.postinst: Fix upgrade setup of named.conf.options. * debian/maas-cluster-controller.install: Install UEFI templates (LP: #1299143) [ Julian Edwards ] * debian/extas/maas: Echo warning to stderr so json stdout is not polluted * debian/maas-cluster-controller.postinst: Run upgrade-cluster on each upgrade * debian/maas-dns.postinst: Call edit_named_options to add a line in /etc/bind/named.conf.options that includes the /etc/named/maas/named.conf.options.inside.maas file. * debian/control: - maas-dns depends on python-iscpy - maas-cluster-controller depends on python-seamicroclient * debian/maas-cluster-controller.install: Install bootresources.yaml [ Dustin Kirkland ] * debian/control: LP: #1297097 - clean up package descriptions, modernize, and more clearly/simply explain what each package does - drop "Ubuntu" in front of MAAS, clean up command line/API description -- Andres Rodriguez Fri, 28 Mar 2014 10:43:53 -0400 maas (1.5+bzr1977-0ubuntu1) trusty; urgency=low * New upstream bugfix release. - setup.py: Install missing shell snippet -- Andres Rodriguez Wed, 19 Feb 2014 16:31:45 -0500 maas (1.5+bzr1976-0ubuntu1) trusty; urgency=low * New upstream release. * debian/maas-cluster-controller.postinst: Make sure upgrades handle authbind upgrades too. -- Andres Rodriguez Sun, 16 Feb 2014 22:56:36 -0500 maas (1.5+bzr1951-0ubuntu1) trusty; urgency=low * New upstream release * debian/maas-cluster-controller.postinst: Also authbind port 69. * debian/maas-cluster-controller.maas-pserv.upstart: Export MAAS_URL. -- Andres Rodriguez Sat, 15 Feb 2014 16:16:38 -0500 maas (1.5+bzr1948-0ubuntu2) trusty; urgency=low * debian/maas-cluster-controller.postinst: Make sure generator on pserv.yaml is updated on upgrade or reconfigure. (LP: #1273197) * debian/maas-cluster-controller.maas-pserv.upstart: Make sure maas-pserv is started with authbind. -- Andres Rodriguez Sat, 15 Feb 2014 13:55:20 -0500 maas (1.5+bzr1948-0ubuntu1) trusty; urgency=low * New upstream release. [ Graham Binns ] * debian/control: Depends on python-jsonschema. [ Andres Rodriguez ] * debian/maas-region-controller-min.posinst: Make txlongpoll.yaml only readable by the app and not world readeable. * debian/patches/02-pserv-config.patch: Refreshed. [ Julian Edwards ] * debian/extras/maas-cli renamed to debian/extras/maas, and introduce a deprecation warning in favour of using maas over maas-cli. * debian/extras/maas renamed to debian/extras/maas-region-admin * debian/maas-cli.install: install debian/extras/maas * debian/maas-dns.postinst: Invoke maas-region-admin instead of maas * debian/maas-region-controller-min.install: install maas-region-admin instead of maas * debian/maas-region-controller.postinst: Invoke maas-region-admin instead of maas * debian/maas-cli.links: Link from maas to maas-cli for backward compat. [ Seth Arnold ] * debian/maas-region-controller-min.postinst: Make sure txlongpoll.yaml gets correct permissions on upgrade (LP: #1254034) -- Andres Rodriguez Sat, 15 Feb 2014 12:08:23 -0500 maas (1.5+bzr1909-0ubuntu1) trusty; urgency=low * New upstream release. [ Dustin Kirkland ] * debian/maas-region-controller-min.postinst: Fix typo in sed. Remove double quotes. (LP: #1274448) [ Andres Rodriguez ] * debian/control: Add depends on python-crochet. * Get rid of dfsg on the versioning as we no longer strip any code from the orig tarball. - debian/rules: Do not strip any files out of the tarball. * debian/patches/*: Refreshed. -- Andres Rodriguez Fri, 31 Jan 2014 09:38:51 -0500 maas (1.4+bzr1853+dfsg-0ubuntu1) trusty; urgency=low * New upstream release -- Dustin Kirkland Tue, 28 Jan 2014 08:41:41 +0000 maas (1.4+bzr1849+dfsg-0ubuntu1) trusty; urgency=low * New upstream release. [ Gavin Panella ] * debian/control: Remove all dependencies on Avahi and DBUS. -- Julian Edwards Tue, 28 Jan 2014 17:12:22 +1000 maas (1.4+bzr1820+dfsg-0ubuntu1) trusty; urgency=low * New upstream Release. [ Jeroen Vermeulen ] * Move maas-probe-dhcp from maas-dhcp to python-maas-provisioningserver. [ Andres Rodriguez ] * debian/maas-region-controller.postinst: Make sure maas-txlongpoll and maas-region-celery get restarted. * debian/control: - python-maas-provisioningserver Breaks/Replaces for maas-dhcp due to moving files around packages. - Suggests ipmitool, libvirt-bin, amtterm. -- Andres Rodriguez Wed, 15 Jan 2014 00:24:58 -0500 maas (1.4+bzr1817+dfsg-0ubuntu1) trusty; urgency=low * New upstream release [ Andres Rodriguez ] * debian/maas-dns.postinst: Drop write_dns_config as this is run by celery jobs. * debian/maas-region-controller.templates: Rename template to maas-region-controller-min.templates * debian/control: Depends on python-amqp; Conflicts on python-librabbitmq. [ Julian Edwards ] * New maas-probe-dhcp script to detect DHCP servers - debian/extras/maas-probe-dhcp: New script - debian/maas-dhcp.install: Install new maas-probe-dhcp script - maas-dhcp.lintian-overrides: New maas-probe-dhcp script has no manpage -- Andres Rodriguez Wed, 15 Jan 2014 00:23:44 -0500 maas (1.4+bzr1789+dfsg-0ubuntu1) trusty; urgency=low * New upstream release [ Jeroen Vermeulen ] * Keep legacy import_ephemerals config for now. [ Andres Rodriguez ] * debian/maas-region-controller.postinst: Allo default-maas-url debconf option to be preseeded. * Make use of authbind to allow maas-cluster-celery bind port as non-root. - debian/control: Depends on authbind for maas-cluster-controller. - debian/maas-cluster-controller.{postinst,postrm}: Handle creation and removal of required authbind file. * Split maas-region-controller into maas-region-controller-min. - debian/maas-region-controller-min.{postinst,postrm,prerm}: Handle basic configuration for rsyslogd, squid-deb-proxy, and maas-url. - debian/control: Depends on maas-region-controller-min, postgresql and rabbitmq-server for maas-region-controller. -- Andres Rodriguez Thu, 10 Oct 2013 17:07:51 -0400 maas (1.4+bzr1693+dfsg-0ubuntu1) saucy; urgency=low * New Upstream Release (LP: #1218526) - This new upstream release contains fixes and improvements of the features approved by the FFe above. - Fixes commissioning failure on Saucy with 'Failed Test' (LP: #1237364) - Fixes access of static images over http (LP: #1236544) * d/maas-cluster-controller.postinst: a2enmod version module (LP: #1236544) * d/control: Bump depends on python-django to 1.4. (LP: #1236572) * d/maas-dhcp.postinst: Fail gracefully if apparmor_parser fails, allowing to install maas-dhcp during an ISO install. (LP: #1236786) -- Andres Rodriguez Fri, 04 Oct 2013 12:33:05 -0400 maas (1.4+bzr1656+dfsg-0ubuntu2) saucy; urgency=low * debian/control: Recommends on maas-dns instead of Depends for region because maas-dns needs the region installed first. -- Andres Rodriguez Thu, 03 Oct 2013 10:36:20 -0400 maas (1.4+bzr1656+dfsg-0ubuntu1) saucy; urgency=low [ Andres Rodriguez ] * New upstream bugfix release. - Respect filters for ephemerals_script.py. * debian/control: Depends on ubuntu-cloudimage-keyring instead of ubuntu-cloud-keyring; depends on python-distro-info. * debian/control: Remove suggests on maas-dhcp and maas-dns as they are now dependencies. [ Scott Moser ] * debian/control: Bump depends on isc-dhcp-server to 4.2.4 * debian/maas-dhcp.maas-dhcp-server.upstart: Change ownership of leases file to root:root, and run the daemon as dhcpd:dhcpd. -- Andres Rodriguez Tue, 01 Oct 2013 15:26:34 -0400 maas (1.4+bzr1655+dfsg-0ubuntu1) saucy; urgency=low * New Upstream release. (LP: #1218526) * debian/control: - Depends on python-djorm-ext-pgarray, python-curtin, python-simplestreams, ubuntu-cloud-keyring. - Depends on maas-dns, maas-dhcp to get them seeded and into main (LP: #1227353) -- Andres Rodriguez Wed, 28 Aug 2013 11:17:44 -0400 maas (1.4+bzr1551+dfsg-0ubuntu1) saucy; urgency=low * New upstream release -- Andres Rodriguez Thu, 15 Aug 2013 16:20:41 -0400 maas (1.4+bzr1548+dfsg-0ubuntu1) saucy; urgency=low * New upstream release -- Andres Rodriguez Thu, 18 Jul 2013 10:15:10 -0400 maas (1.4+bzr1539+dfsg-0ubuntu1) saucy; urgency=low * New upstream release * Symlink apache2 config into /etc/apache2/conf-enabled/ instead of /etc/apache2/conf.d as apache2.4 no longer supports the latter. - debian/maas-cluster-controller.{postinst,postrm} - debian/maas-region-controller.{postinst,postrm} * debian/control: Bump Standards-Version to 3.9.4. * debian/maas-cluster-controller.lintian-overrides: Remove unneeded override and add a new one. * debian/maas-region-controller.lintian-overrides: Add extra overrides. -- Andres Rodriguez Wed, 03 Jul 2013 17:11:02 -0400 maas (1.4+bzr1538+dfsg-0ubuntu1) saucy; urgency=low * New upstream release * debian/patches/04-setup-dont-user-list-snippets.patch: Drop. Merged Upstream. -- Andres Rodriguez Thu, 13 Jun 2013 20:06:35 -0400 maas (1.4+bzr1527+dfsg-0ubuntu1) saucy; urgency=low * debian/patches/04-setup-dont-user-list-snippets.patch: Drop importing maasserver modules to list snippets in favor to using glob. Otherwise we would have to add various non necessary Build-Dependencies. [ Jeroen Vermeulen ] * Install templates into /etc/maas/templates/. -- Andres Rodriguez Mon, 03 Jun 2013 17:59:31 -0400 maas (1.4+bzr1505+dfsg-0ubuntu1) saucy; urgency=low * New upstream release [ Steve Langasek ] * Add missing dependency on iproute to maas-region-controller, for use of /sbin/ip in postinst. [ Julian Edwards ] * debian/maas-dhcp.maas-dhcp-server.upstart: - Detect 12.04 as the host OS and install with correct permissions. This allows the same packaging to be used in the 12.04 backport. [ Andres Rodriguez ] * Update packaging to support FPI: - debian/control: Depends on apache2 for maas-cluster-controller. - debian/maas-cluster-controller.install: Install http config file. - debian/maas-cluster-controller.{postinst,postrm}: Handle symlink creation and deletion. * debian/maas-region-controller.install: Install preseeds in etc/maas/preseeds. (LP: #1073463) [ Jeroen Vermeulen ] * In the source tree, /etc/maas/pserv.yaml has moved from etc/ to etc/maas/. * Install templates into /etc/maas/templates/. -- Andres Rodriguez Mon, 03 Jun 2013 16:53:14 -0400 maas (1.3+bzr1455+dfsg-0ubuntu1) raring; urgency=low * New upstream bugfix release. - Fixes and returns the 'resource_url' with the 'canonical' url for a file that is fetched using the API (LP: #1154142) [ Andres Rodriguez ] * debian/control: - Change Conflicts/Replaces for Breaks/Replaces. - Conflicts on tftpd-hpa and dnsmasq. - Do not pre-depends, but Depends on ${misc:Depends} for 'maas'. [ Steve Langasek ] * postinst scripts are never called with 'reconfigure' as the script argument. Remove references to this (mythical) invocation. * always call 'set -e' from maintainer scripts instead of passing 'sh -e' as the interpreter, so that scripts will behave correctly when run via 'sh -x'. * invoke-rc.d is never allowed to not exist - simplify scripts (and make them better policy-compliant) by invoking unconditionally. (The only possible exception is in the postrm, where it's *theoretically* possible for invoke-rc.d to be missing if the user has completely stripped down their system; that's a fairly unreasonable corner case, but we might as well be correct if it ever happens.) * db_get+db_set is a no-op; don't call db_set to push back a value we just got from db_get. * Omit superfluous calls to 'exit 0' at the end of each script. * Remove maas-cluster-controller prerm script, which called debconf for no reason. * Don't invoke debconf in the postrm script either, debhelper already does this for us. * Other miscellaneous maintainer script fixes * debian/maas-common.postinst: call adduser and addgroup unconditionally; the tools are already designed to DTRT, we don't need to check for the user/group existence before calling them nor should we worry about calling them only once on first install. * debian/maas-common.postrm: delete the maas group, not just the user, as the comment in the code implies we should do. -- Andres Rodriguez Tue, 19 Mar 2013 15:38:22 -0400 maas (1.3+bzr1452+dfsg-0ubuntu1) raring; urgency=low * New upstream release. - MAAS file storage mechanism is shifting from a single shared namespace to a per-user namespace. Operators of the majority of MAAS systems will not notice any change. However, operators of the most complex installations may find that a new "shared-environment" user is created, and that some resources are reassigned to it, such as API credentials and SSH public keys. This provides a transitional environment that mimics the behaviour of a shared namespace. [ Raphaël Badin ] * debian/control: maas-region-controller depends on bind9utils. (LP: #1103195) * debian/maas-dns.postinst: Call write_dns_config. (LP: #1085865). * debian/maas-cluster-controller.postinst: Fix the name of the config file (/etc/maas/pserv.yaml and not /etc/maas/pserv.conf) (LP: #1083542). * debian/extras/99-maas-sudoers: Add 'SETENV:' to sudo rule to allow preserving the environment when running /usr/sbin/maas-import-pxe-files via sudo. * debian/maas-dns.postinst: fix permissions and group ownership of file /etc/bind/maas/named.conf.rndc.maas. (LP: #1066935) * debian/control: Remove the dependency of maas-cluster-controller on rabbitmq-server. (LP: #1072744) * debian/extras/99-maas-sudoers: Add sudo rule for script /usr/sbin/maas-import-pxe-files. * debian/maas-cluster-controller.install: Removed commissioning-user-data script. [ Julian Edwards ] * debian/maas-region-controller.install: Remove installation of maas-gc; it is no longer required as upstream no longer stores files in the filesystem. (LP: #1069734) * debian/maas-cluster-controller.postinst: Ensure that /etc/maas/pserv.yaml is updated when reconfiguring. (LP: #1081212) [ Jeroen Vermeulen ] * debian/maas-cluster-controller.install: Install import scripts. * debian/maas-cluster-controller.postinst: Configure tgt (the iSCSI server) so the import script can install files to it. * debian/maas-cluster-controller.postrm: Clean up tgt config. * debian/maas-region-controller.install: Move import scripts out to the cluster controller, and drop the maas-import-isos compatibility script. * debian/maas-region-controller.postinst: Remove tgt config. * debian/maas-region-controller.postrm: Remove tgt config cleanup. * Bump code revision to include latest user_data.template fixes. [ Gavin Panella ] * debian/extras/99-maas: squashfs image download is no longer needed. * debian/maas-cluster-controller.install: maas-import-squashfs and its configuration file are no longer part of upstream. * debian/maas-cluster-controller.install: The maas-import-pxe-files cron task is no longer used. * debian/maas-cluster-controller.postinst: Remove leading comment markers from the 'generator' line in pserv.yaml. [ Andres Rodriguez ] * debian/control: - maas-cluster-controller Conflicts with tftpd-hpa (LP: #1076028) - maas-dns: Conflicts with dnsmasq - maas-cluster-controller Conflicts/Replaces maas-region-controller as import scripts are no longer shipped in the region. - debian/control: Depends on distro-info for maas-cluster-controller instead of maas-region-controller (LP: #1103194) * debian/maas-cluster-controller.config: If URL has been detected, add /MAAS if it doesn't contain it. This helps upgrades from versions where DEFAULT_MAAS_URL didn't use /MAAS. -- Andres Rodriguez Mon, 04 Mar 2013 11:49:44 -0500 maas (0.1+bzr1269+dfsg-0ubuntu1) quantal-proposed; urgency=low * New upstream bugfix release - Fixes commissioning failing to set memory attribute. (LP: #1064638) - Fixes node listing by adding pagination (LP: #1064672) - Changes default bind rndc key which breaks initscripts (LP: #1066938) - Fixes invalid DNS config once node is enlisted (LP: #1066958) - Reference documentation link to correct URL (LP: #1067261) [ Andres Rodriguez ] * debian/rules: Change upstream branch. [ Gavin Panella ] * debian/maas-dns.postinst: Remove MAAS-related include lines from named's config before adding a new one (LP: #1066929) [ Raphael Badin ] * debian/extras/maas-region-celeryd: Remove whitespace that affects DNS rabbitmq queue. (LP: #1067929) -- Andres Rodriguez Tue, 16 Oct 2012 10:31:37 -0400 maas (0.1+bzr1264+dfsg-0ubuntu2) quantal; urgency=low * Fix MAAS not working after CD/preseed install (LP: #1065763) - debian/extras/maas-region-celeryd: Add wrapper to run celery from the upstart job. - debian/extras/maas-region-controller.maas-region-celery.upstart: Create rabbitmq user if it does not exists. * debian/control: Remove unneeded deps on python-txtftp for some binary pkgs. * debian/maas-region-controller.postinst: Minor fix referencing variable. -- Andres Rodriguez Thu, 11 Oct 2012 17:38:08 -0400 maas (0.1+bzr1264+dfsg-0ubuntu1) quantal; urgency=low * New upstream release. [ Raphaël Badin ] * debian/maas-region-controller.postinst: Enable proxy_http module. * debian/maas-cluster-controller.postinst: Create /var/lib/maas. (LP: #1065062) [ Andres Rodriguez ] * Install maas-provision with python-maas-provisioningserver (LP: #1065171): - debian/python-maas-provisioningserver.install: Install - debian/control: Add Conflicts/Replaces with maas-cluster-controller to handle upgrades. * debian/patches/04-fix-ipmi-enlistment.patch: Drop. Merged Upstream. * debian/control: Depends on maas-region-controller for maas-dns. * debian/maas-region-controller.postinst: Set the correct host for BROKER_URL (LP: #1065080) * Handle creation of user/group in maas-common. * debian/maas-region-controller.config: Always source dbconfig scripts. -- Andres Rodriguez Wed, 10 Oct 2012 11:17:21 -0400 maas (0.1+bzr1243+dfsg-0ubuntu3) quantal; urgency=low * 04-fix-ipmi-enlistment.patch: retry maas-enlist without power parameters on failure. This allows enlistment to continue working with Precise ephemeral images before the Precise SRU for maas-enlist lands. (LP: #1064922). -- Robie Basak Wed, 10 Oct 2012 13:29:16 +0000 maas (0.1+bzr1243+dfsg-0ubuntu2) quantal; urgency=low * debian/patches/99-ipmi-user-too-long.patch: Fix username too long for IPMI user created on enlistment (LP: #1064832) -- Andres Rodriguez Wed, 10 Oct 2012 01:00:29 -0400 maas (0.1+bzr1243+dfsg-0ubuntu1) quantal; urgency=low * New upstream release. (LP: #1064596) * debian/patches/99-temporary-fix-constraints.patch: Dropped. * debian/control: - ${python:Depends} for maas-common. - Add missing Depends for python-maas-provisioningserver (LP: #1064542) * debian/maas-cluster-controller.postinst: Create /var/log/maas if it doesn't exist (LP: #1064539) -- Andres Rodriguez Mon, 08 Oct 2012 17:02:56 -0400 maas (0.1+bzr1223+dfsg-0ubuntu1) quantal; urgency=low * New upstream release. (LP: #1062518) [ 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. * Ensure isc-dhcp-server is disabled when installing maas-dhcp. * Ensure maas-dns creates the maas user before trying to chown files. * Make maas-cluster-controller autoconfigure itself when upgrading from the old maas package. (LP: #1059416) * Add missing prerm file for maas-cluster-controller so that .pyc files are cleaned up. (LP: #1059973) [ Raphaël 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. * 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. * Split celery config into cluster and region configs. * Add region celeryd upstart config. * Define CELERY_CONFIG_MODULE in maas-cluster-controller.maas-cluster-celery.upstart [ Jeroen Vermeulen ] * Make maas_local_celery_config.py non-world readable. * Make maas_local_celeryconfig_cluster.py non-world readable. * Set root:maas ownership of local cluster config only *after* the maas user/group have been created [ 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. - Depends on python-netifaces, python-lxml. * Add python-maas-client binary package: - debian/python-maas-client.install: 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) * 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. * debian/maas-dhcp.postinst: Stop isc-dhcp-server not isc_dhcp_server. * debian/maas-region-controller.postinst: - Always update passwords on upgrade. No longer check versioning. (LP: #1060094). - Add MAAS server to allowed mirror in squid-deb-proxy - Source dbconfig conf file for maas-region-controller on upgrade because it writes a new config file and no longer preservers the previous password. * debian/maas-cluster-controller.maas-cluster-celery.upstart: Remove set{uid/gid}. * debian/maas-region-controller.install: Install maas-import-squashfs * Handle removal of non existant files (LP: #1059556): - debian/maintscript: Added to handle removal of conffiles. - debian/control: Add Pre-depends and bump debhelper version. * update po files for the templates. * debian/extras/99-maas: Install in usr/share/maas/conf and symlink to the appropriate etc dir. * debian/maas-cluster-controller.config: Source debconf at the beginning of the script. (LP: #1063857) * debian/patches/99-temporary-fix-constraints.patch: Fix constraints maaping when deploying with juju. Temporary until it gets merged upstream [ Robie Basak ] * Add maas-cluster-controller dependency on uuid-runtime, needed for uuidgen by postinst. [ 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 Mon, 08 Oct 2012 13:10:23 -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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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) Thu, 23 Feb 2012 13:08:12 +0000 maas (0.1~bzr146+dfsg-0ubuntu1) precise; urgency=low * Initial release -- Julian Edwards Thu, 16 Jan 2012 15:29:07 +0000 debian/maas-region-controller-min.install0000664000000000000000000000202012351044305015713 0ustar # 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 new preseed files debian/tmp/etc/maas/preseeds # Install templates debian/tmp/etc/maas/templates/dns debian/tmp/etc/maas/templates/commissioning-user-data # Install driver configuration file debian/tmp/etc/maas/drivers.yaml # Install all other stuff debian/extras/maas-region-admin usr/sbin debian/extras/maas-region-celeryd usr/sbin debian/extras/20-maas.conf etc/rsyslog.d debian/extras/maas_remote_syslog_compress etc/cron.d debian/extras/99-maas usr/share/maas/conf debian/maas-region-controller-min.postrm0000664000000000000000000000167012351044305015603 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule RELEASE=`lsb_release -rs` || RELEASE="" case "$1" in purge) rm -rf /var/log/maas rm -rf /var/lib/maas case $RELEASE in 12.04|12.10|13.04) if [ -h /etc/apache2/conf.d/maas-http.conf ]; then rm -rf /etc/apache2/conf.d/maas-http.conf fi ;; *) if [ -h /etc/apache2/conf-enabled/maas-http.conf ]; then rm -rf /etc/apache2/conf-enabled/maas-http.conf fi ;; esac # Restarting apache2 if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d apache2 restart || true fi # Delete symlink if [ -L /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas ]; then rm -rf /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas fi esac #DEBHELPER# db_stop debian/maas-region-controller.prerm0000664000000000000000000000026212351044305014617 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule #DEBHELPER# invoke-rc.d apache2 stop || true . /usr/share/dbconfig-common/dpkg/prerm.pgsql dbc_go maas-region-controller $@ debian/maas-cluster-controller.config0000664000000000000000000000235112351044305015136 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule db_version 2.0 # Only ask for new installations and reconfiguring. # XXX Fix to not ask when installing from the CD. if ([ "$1" = "configure" ] && [ -z "$2" ]); then db_get maas-cluster-controller/maas-url || true if [ -z "$RET" ]; then # 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) # If the URL doesn't end in /MAAS then add it. This helps upgrades from # precise for which the URL didn't contain /MAAS, which is now required if ! echo $url | grep -qs "/MAAS$"; then url="${url}/MAAS" fi db_set maas-cluster-controller/maas-url "$url" else # Will only get here if dbconf value not already set, or # /etc/maas/maas_local_settings.py doesn't exist. db_input medium maas-cluster-controller/maas-url || true db_go fi fi fi if [ "$1" = "reconfigure" ]; then db_input high maas-cluster-controller/maas-url || true db_go fi #DEBHELPER# debian/maas-cluster-controller.logrotate0000664000000000000000000000026212351044305015670 0ustar /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 } debian/maas-dhcp.maas-dhcp-server.upstart0000664000000000000000000000366512351044305015620 0ustar description "MAAS instance of ISC DHCP server" author "Jeroen Vermeulen " 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 dhcpd:dhcpd. # # maas packages on saucy are only supported with newer isc-dhcp via # the cloud-archive. See bug 1231693 for more information, including # a patch that would actually work to support all, but is complex. 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 debian/maas-dhcp.postinst0000664000000000000000000000051012351044305012623 0ustar #!/bin/sh set -e if [ "$1" = "configure" ]; then invoke-rc.d isc-dhcp-server stop 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}" || true fi fi #DEBHELPER# debian/maas-dns.dirs0000664000000000000000000000001612351044305011550 0ustar etc/bind/maas debian/python-maas-provisioningserver.lintian-overrides0000664000000000000000000000023712351044305020762 0ustar python-maas-provisioningserver: binary-without-manpage usr/sbin/maas-provision python-maas-provisioningserver: binary-without-manpage usr/sbin/maas-probe-dhcp debian/maas-cli.lintian-overrides0000664000000000000000000000006212351044305014231 0ustar maas-cli: binary-without-manpage usr/bin/maas-cli debian/python-maas-client.install0000664000000000000000000000006312351044305014270 0ustar debian/tmp/usr/lib/python*/dist-packages/apiclient debian/source/0000775000000000000000000000000012407113747010476 5ustar debian/source/format0000664000000000000000000000001412351044305011673 0ustar 3.0 (quilt) debian/compat0000664000000000000000000000000212351044305010363 0ustar 7 debian/maas-region-controller.postinst0000664000000000000000000002260512351044305015362 0ustar #!/bin/sh set -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 RELEASE=`lsb_release -rs` || RELEASE="" maas_sync_migrate_db(){ maas-region-admin syncdb --noinput maas-region-admin migrate maasserver --noinput maas-region-admin migrate metadataserver --noinput } restart_rabbitmq(){ invoke-rc.d rabbitmq-server restart || true } restart_postgresql(){ invoke-rc.d --force postgresql restart || true } restart_squid_deb_proxy() { invoke-rc.d squid-deb-proxy restart || true } configure_region_http() { case $RELEASE in 12.04|12.10|13.04) # 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 ;; *) # handle apache configs if [ -e /etc/maas/maas-http.conf -a \ ! -e /etc/apache2/conf-enabled/maas-http.conf ]; then ln -sf /etc/maas/maas-http.conf /etc/apache2/conf-enabled/maas-http.conf fi ;; esac # enable apache modules needed a2enmod proxy_http a2enmod expires a2enmod wsgi } 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="$1" if [ -z "$amqp_host" ]; then amqp_host="localhost" fi 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_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 } get_default_route_ip() { 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%%/*} echo $ipaddr } configure_maas_squid_deb_proxy() { local ipaddr="$1" if [ -e /usr/share/maas/conf/99-maas -a \ ! -L /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas ]; then ln -sf /usr/share/maas/conf/99-maas \ /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas fi sed -i "s/\(^[a-zA-Z0-9\.\-].*\) # maasurl$/$ipaddr # maasurl/" \ /usr/share/maas/conf/99-maas } if [ "$1" = "configure" ] && [ -z "$2" ]; then ######################################################### ################ Folder Permissions #################### ######################################################### mkdir -p /var/lib/maas/media/storage chown -R maas:maas /var/lib/maas/ # Config will contain credentials, so should be readable # by the application but nobody else. chown root:maas \ /etc/maas/maas_local_celeryconfig.py \ /etc/maas/maas_local_settings.py chmod 0640 \ /etc/maas/maas_local_celeryconfig.py \ /etc/maas/maas_local_settings.py ######################################################### ################ Configure Apache2 #################### ######################################################### configure_region_http ######################################################### ########## Configure DEFAULT_MAAS_URL ################# ######################################################### # Obtain IP address of default route and change DEFAULT_MAAS_URL # if default-maas-url has not been preseeded. db_get maas/default-maas-url ipaddr="$RET" if [ -z "$RET" ]; then ipaddr=$(get_default_route_ip) fi # Set the IP address of the interface with default route if [ -n "$ipaddr" ]; then configure_maas_default_url "$ipaddr" configure_maas_squid_deb_proxy "$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 invoke-rc.d rsyslog restart ######################################################### ################### Squid-deb-proxy #################### ######################################################### # Make sure squid-deb-proxy reads our config (99-maas) invoke-rc.d squid-deb-proxy restart ######################################################### ########## 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 "$ipaddr" ######################################################### ################ 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 low maas/installation-note || true db_go elif [ -n "$DEBCONF_RECONFIGURE" ]; then # Set the IP address of the interface with default route db_get maas/default-maas-url ipaddr="$RET" if [ -n "$ipaddr" ]; then configure_maas_default_url "$ipaddr" configure_maas_squid_deb_proxy "$ipaddr" configure_maas_workers_rabbitmq_user "$ipaddr" fi configure_maas_txlongpoll_rabbitmq_user elif [ "$1" = "configure" ] && dpkg --compare-versions "$2" gt 0.1+bzr266+dfsg-0ubuntu1; then # If upgrading to any later package version, then upgrade db. invoke-rc.d apache2 stop || true # make sure postgresql is running restart_postgresql # make sure maas http config is symlinked configure_region_http # we need to regenerate the passwords and update configs. db_get maas/default-maas-url ipaddr="$RET" configure_maas_default_url "$ipaddr" configure_maas_squid_deb_proxy "$ipaddr" # make sure rabbitmq is running restart_rabbitmq configure_maas_txlongpoll_rabbitmq_user # Handle celery/rabbitmq publishing configure_maas_workers_rabbitmq_user "$ipaddr" # handle database upgrade if [ -f /etc/dbconfig-common/maas-region-controller.conf ]; then # source dbconfig-common db config for maas-region-controller # before upgrading database, otherwise a new config is written # but the password is no longer preserved. . /etc/dbconfig-common/maas-region-controller.conf else dbc_go maas-region-controller $@ fi configure_maas_database "$dbc_dbpass" maas_sync_migrate_db fi invoke-rc.d apache2 restart || true restart_squid_deb_proxy invoke-rc.d maas-txlongpoll restart || true invoke-rc.d maas-region-celery restart || true db_stop #DEBHELPER# debian/maas-region-controller-min.postinst0000664000000000000000000001265112351044305016143 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule db_version 2.0 RELEASE=`lsb_release -rs` || RELEASE="" restart_squid_deb_proxy() { invoke-rc.d squid-deb-proxy restart || true } configure_region_http() { case $RELEASE in 12.04|12.10|13.04) # 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 ;; *) # handle apache configs if [ -e /etc/maas/maas-http.conf -a \ ! -e /etc/apache2/conf-enabled/maas-http.conf ]; then ln -sf /etc/maas/maas-http.conf /etc/apache2/conf-enabled/maas-http.conf fi ;; esac # enable apache modules needed a2enmod proxy_http a2enmod expires a2enmod wsgi } 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 } get_default_route_ip() { 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%%/*} echo $ipaddr } configure_maas_squid_deb_proxy() { local ipaddr="$1" if [ -e /usr/share/maas/conf/99-maas -a \ ! -L /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas ]; then ln -sf /usr/share/maas/conf/99-maas \ /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas fi sed -i "s/\(^[a-zA-Z0-9\.\-].*\) # maasurl$/$ipaddr # maasurl/" \ /usr/share/maas/conf/99-maas } # Please keep this stanza until 14.10 if [ "$1" = "configure" ]; then if dpkg --compare-versions "$2" le-nl 1.5+bzr1909-0ubuntu1 ; then chown root:maas /etc/maas/txlongpoll.yaml chmod 0640 /etc/maas/txlongpoll.yaml fi fi if [ "$1" = "configure" ] && [ -z "$2" ]; then ######################################################### ################ Folder Permissions #################### ######################################################### mkdir -p /var/lib/maas/media/storage chown -R maas:maas /var/lib/maas/ # Config will contain credentials, so should be readable # by the application but nobody else. chown root:maas \ /etc/maas/maas_local_celeryconfig.py \ /etc/maas/maas_local_settings.py \ /etc/maas/txlongpoll.yaml chmod 0640 \ /etc/maas/maas_local_celeryconfig.py \ /etc/maas/maas_local_settings.py \ /etc/maas/txlongpoll.yaml ######################################################### ################ Configure Apache2 #################### ######################################################### configure_region_http ######################################################### ########## Configure DEFAULT_MAAS_URL ################# ######################################################### # Obtain IP address of default route and change DEFAULT_MAAS_URL # if default-maas-url has not been preseeded. db_get maas/default-maas-url ipaddr="$RET" if [ -z "$RET" ]; then ipaddr=$(get_default_route_ip) fi # Set the IP address of the interface with default route if [ -n "$ipaddr" ]; then configure_maas_default_url "$ipaddr" configure_maas_squid_deb_proxy "$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 invoke-rc.d rsyslog restart ######################################################### ################### Squid-deb-proxy #################### ######################################################### # Make sure squid-deb-proxy reads our config (99-maas) restart_squid_deb_proxy elif [ -n "$DEBCONF_RECONFIGURE" ]; then # Set the IP address of the interface with default route db_get maas/default-maas-url ipaddr="$RET" if [ -n "$ipaddr" ]; then configure_maas_default_url "$ipaddr" configure_maas_squid_deb_proxy "$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. invoke-rc.d apache2 stop || true # make sure maas http config is symlinked configure_region_http # we need to regenerate the passwords and update configs. db_get maas/default-maas-url ipaddr="$RET" configure_maas_default_url "$ipaddr" configure_maas_squid_deb_proxy "$ipaddr" fi invoke-rc.d apache2 restart || true restart_squid_deb_proxy db_stop #DEBHELPER# debian/maas-common.postrm0000664000000000000000000000041412351044305012641 0ustar #!/bin/sh set -e case "$1" in purge) # Deleting user/group if getent passwd maas >/dev/null; then deluser maas || true delgroup maas || true fi esac #DEBHELPER# debian/extras/0000775000000000000000000000000012407113747010504 5ustar debian/extras/99-maas-sudoers0000664000000000000000000000034412407111334013260 0ustar maas ALL= NOPASSWD: /usr/sbin/service maas-dhcp-server restart maas ALL= NOPASSWD: /usr/sbin/service maas-dhcp-server stop maas ALL= NOPASSWD: /usr/sbin/maas-provision maas ALL= NOPASSWD: SETENV: /usr/sbin/maas-import-pxe-files debian/extras/maas0000664000000000000000000000037412351044305011343 0ustar #!/bin/sh if [ "`expr \"$0\" : \".*maas-cli*\"`" != "0" ];then echo " WARNING: The maas-cli command is deprecated and will be removed" \ "in a future\n version. From now on please use 'maas' instead." >&2 fi exec python -m maascli "$@" debian/extras/20-maas.conf0000664000000000000000000000234612351044305012507 0ustar # 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 & ~ debian/extras/maas-region-celeryd0000775000000000000000000000275312351044305014257 0ustar #!/usr/bin/python import os from grp import getgrnam from pwd import getpwnam def start_celery(args): uid = getpwnam(args.user).pw_uid gid = getgrnam(args.group).gr_gid env = dict(os.environ, PYTHONPATH="/usr/share/maas") command = [ 'celeryd', '--logfile=%s' % args.logfile, '--schedule=%s' % args.schedule, '--loglevel=INFO', '--beat', '--queues=celery,master', ] # Change gid first, just in case changing the uid might deprive # us of the privileges required to setgid. os.setgid(gid) os.setuid(uid) os.execvpe(command[0], command, env=env) def main(): import argparse parser = argparse.ArgumentParser( description='MAAS celery daemon config options') parser.add_argument( '--user', '-u', metavar='USER', default='maas', help="System user identity that should run the cluster controller.") parser.add_argument( '--group', '-g', metavar='GROUP', default='maas', help="System group that should run the cluster controller.") parser.add_argument( '--logfile', '-l', metavar='LOGFILE', default='/var/log/maas/celery-region.log', help="Location of the logfile.") parser.add_argument( '--schedule', '-s', metavar='SCHEDULE', default='/var/lib/maas/celerybeat-region-schedule', help="Location of the beat schedule file.") args = args = parser.parse_args() start_celery(args) if __name__ == '__main__': main() debian/extras/maas-region-admin0000664000000000000000000000036612351044305013713 0ustar #!/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 "$@" debian/extras/maas-provision0000664000000000000000000000033012351044305013361 0ustar #!/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 "$@" debian/extras/isc-dhcp-server.override0000664000000000000000000000000712351044305015227 0ustar manual debian/extras/maas_remote_syslog_compress0000664000000000000000000000021112351044305016217 0ustar # Compress log files not changed in more than 48 hours: 30 4 * * * root find /var/log/maas/rsyslog -type f -mtime +2 -exec bzip2 '{}' \; debian/extras/99-maas0000664000000000000000000000024012351044305011572 0ustar # /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas # # Enable launchpad personal package archives for squid-deb-proxy ppa.launchpad.net keyserver.ubuntu.com debian/extras/maas-probe-dhcp0000664000000000000000000000034312351044305013360 0ustar #!/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.dhcp.probe "$@" debian/patches/0000775000000000000000000000000012440127447010624 5ustar debian/patches/04-enable-armhf-keystone.patch0000664000000000000000000000134312407112656016246 0ustar Description: Add hardware enablement for armhf/keystone Bug: https://bugs.launchpad.net/ubuntu/+source/maas/+bug/1350103 Upstream: revno: 2634 --- a/src/provisioningserver/driver/__init__.py +++ b/src/provisioningserver/driver/__init__.py @@ -145,6 +145,9 @@ builtin_architectures = [ Architecture( name="armhf/generic", description="armhf/generic", pxealiases=["arm"], kernel_options=["console=ttyAMA0"]), + Architecture( + name="armhf/keystone", description="armhf/keystone", + pxealiases=["arm"]), # PPC64EL needs a rootdelay for PowerNV. The disk controller # in the hardware, takes a little bit longer to come up then # the initrd wants to wait. Set this to 60 seconds, just to debian/patches/03-txlongpoll-config.patch0000664000000000000000000000220612351044305015522 0ustar 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 --- maas-1.5+bzr1908.orig.orig/etc/txlongpoll.yaml 2014-02-07 11:21:12.578557974 -0500 +++ maas-1.5+bzr1908.orig/etc/txlongpoll.yaml 2014-02-07 11:21:12.578557974 -0500 @@ -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" debian/patches/01-fix-database-settings.patch0000664000000000000000000000157112351044305016245 0ustar --- maas-1.5+bzr1908.orig.orig/contrib/maas_local_settings.py 2014-02-07 11:22:59.330556956 -0500 +++ maas-1.5+bzr1908.orig/contrib/maas_local_settings.py 2014-02-07 11:22:59.326556956 -0500 @@ -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 @@ -81,9 +81,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', } } debian/patches/home-directory.patch0000664000000000000000000000134312440127447014600 0ustar Description: Fix compatibility with mod-wsgi security update Bug-Ubuntu: https://bugs.launchpad.net/maas/+bug/1399016 Index: maas-1.7.0~beta8+bzr3272/contrib/maas-http.conf =================================================================== --- maas-1.7.0~beta8+bzr3272.orig/contrib/maas-http.conf 2014-10-22 12:55:39.000000000 -0400 +++ maas-1.7.0~beta8+bzr3272/contrib/maas-http.conf 2014-12-04 13:56:05.790551266 -0500 @@ -1,4 +1,4 @@ -WSGIDaemonProcess maas user=maas group=maas processes=2 threads=1 display-name=%{GROUP} +WSGIDaemonProcess maas user=maas group=maas home=/var/lib/maas/ processes=2 threads=1 display-name=%{GROUP} # Without this, defining a tag as a malformed xpath expression will hang # the region controller. debian/patches/series0000664000000000000000000000020412440127447012035 0ustar 01-fix-database-settings.patch 02-pserv-config.patch 03-txlongpoll-config.patch 04-enable-armhf-keystone.patch home-directory.patch debian/patches/02-pserv-config.patch0000664000000000000000000000164412351044305014463 0ustar 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 --- a/etc/maas/pserv.yaml +++ b/etc/maas/pserv.yaml @@ -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" @@ -38,8 +38,6 @@ # resource_root: /var/lib/maas/boot-resources/current/ # 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/ debian/maas-cluster-controller.postrm0000664000000000000000000000166712351044305015226 0ustar #!/bin/sh set -e #DEBHELPER# RELEASE=`lsb_release -rs` || RELEASE="" case "$1" in purge) # remove log directory rm -rf /var/log/maas case $RELEASE in 12.04|12.10|13.04) if [ -h /etc/apache2/conf.d/maas-cluster-http.conf ]; then rm -rf /etc/apache2/conf.d/maas-cluster-http.conf fi ;; *) # remove apache2 config if [ -h /etc/apache2/conf-enabled/maas-cluster-http.conf ]; then rm -rf /etc/apache2/conf-enabled/maas-cluster-http.conf fi ;; esac # remove var directory rm -rf /var/lib/maas/celerybeat-cluster-schedule DIR=/var/lib/maas if [ "$(ls -A $DIR 2> /dev/null)" = "" ]; then rm -rf /var/lib/maas fi # Delete symlink for iSCSI config. if [ -L /etc/tgt/conf.d/maas.conf ]; then rm -rf /etc/tgt/conf.d/maas.conf fi # Remove authbind MAAS_UID="`id -u maas`" if [ -f "/etc/authbind/byuid/$MAAS_UID" ]; then rm -rf /etc/authbind/byuid/$MAAS_UID fi esac debian/maas-dhcp.install0000664000000000000000000000005012351044305012405 0ustar /debian/tmp/etc/apparmor.d/dhcpd.d/maas debian/maas-cluster-controller.maas-cluster-celery.upstart0000664000000000000000000000145012351044305021252 0ustar # maas-cluster-controller - provisioning service # # MAAS Cluster Controller Service description "MAAS Cluster Controller" author "Julian Edwards " start on filesystem and net-device-up stop on runlevel [016] env CONFIG_FILE=/etc/maas/maas_cluster.conf # Use cluster config. env CELERY_CONFIG_MODULE="celeryconfig_cluster" pre-start script if [ ! -f $CONFIG_FILE ]; then echo "$CONFIG_FILE does not exist. Aborting." stop exit 0 fi end script script # Prepare settings. . $CONFIG_FILE # Allow the cluster-controller process to read CLUSTER_UUID as set # in that config file. export CLUSTER_UUID exec /usr/bin/authbind --deep /usr/sbin/maas-provision start-cluster-controller $MAAS_URL -u maas -g maas end script debian/copyright0000664000000000000000000000157112351044305011124 0ustar 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 . debian/watch0000664000000000000000000000017512351044305010221 0ustar version=3 opts=dversionmangle=s/\.dfsg// \ http://launchpad.net/maas/+download https://launchpad.net/maas/.*/maas-(.*).tar.* debian/maas-cli.links0000664000000000000000000000003612351044305011714 0ustar usr/bin/maas usr/bin/maas-cli debian/maas-region-controller.config0000664000000000000000000000215312351044305014740 0ustar #!/bin/sh set -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 } # 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 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 "" dbc_dbname="maasdb" dbc_dbuser="maas" dbc_remove="true" dbc_go maas-region-controller $@ elif [ -n "$DEBCONF_RECONFIGURE" ]; then db_get maas/default-maas-url || true if [ -z "$RET" ]; then 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 debian/maas-dhcp.apparmor0000664000000000000000000000027312351044305012567 0ustar /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, debian/maas-region-controller-min.links0000664000000000000000000000022412351044305015371 0ustar 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 debian/maas-dns.postrm0000664000000000000000000000062712351044305012143 0ustar #!/bin/sh set -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# debian/maintscript0000664000000000000000000000020412351044305011441 0ustar rm_conffile /etc/init/maas-celery.conf 0.1+bzr971+dfsg-0ubuntu2 rm_conffile /etc/dbconfig-common/maas.conf 0.1+bzr971+dfsg-0ubuntu2 debian/maas-common.postinst0000664000000000000000000000033212351044305013177 0ustar #!/bin/sh set -e add_user_group(){ local user="maas" local group="maas" addgroup --quiet --system "$group" || true adduser --quiet --system --group --no-create-home "$user" || true } add_user_group #DEBHELPER# debian/python-maas-provisioningserver.install0000664000000000000000000000024012351044305016764 0ustar debian/tmp/usr/lib/python*/dist-packages/provisioningserver # Install other stuff debian/extras/maas-provision usr/sbin debian/extras/maas-probe-dhcp usr/sbin debian/maas-cluster-controller.maas-pserv.upstart0000664000000000000000000000150712351044305017452 0ustar # maas-pserv - provisioning service # # MAAS Provisioning Service description "MAAS" author "Andres Rodriguez " start on filesystem and net-device-up stop on runlevel [016] respawn 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 # Prepare settings. . $CONFIG_FILE # Allow the tftpd process to read CLUSTER_UUID as set in that config # file. export CLUSTER_UUID export MAAS_URL # To add options to your daemon, edit the line below: exec /usr/bin/authbind --deep /usr/bin/twistd -n --uid=maas --gid=maas --pidfile=/run/maas-pserv.pid --logfile=/dev/null maas-pserv --config-file=/etc/maas/pserv.yaml end script debian/maas-cli.install0000664000000000000000000000011412351044305012237 0ustar debian/extras/maas usr/bin debian/tmp/usr/lib/python*/dist-packages/maascli debian/maas-dhcp.postrm0000664000000000000000000000046212351044305012272 0ustar #!/bin/sh set -e if [ "$1" = "remove" ] || [ "$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# debian/maas-region-controller-min.maas-txlongpoll.upstart0000664000000000000000000000176112351044305021102 0ustar # maas - txlongpoll service # # MAAS Provisioning Service txlongpoll description "MAAS txlongpoll" author "Andres Rodriguez " 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 [ -f /usr/sbin/rabbitmqctl ] && ! /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 debian/maas-common.install0000664000000000000000000000011112351044305012755 0ustar # Install Celery Config debian/tmp/usr/share/maas/celeryconfig_common.py debian/maas-region-controller-min.apport0000664000000000000000000000265612351044305015571 0ustar #!/usr/bin/python '''apport hook for maas-region-controller (c) 2012 Canonical Ltd. Author: Andres Rodriguez 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']) debian/maas-region-controller.postrm0000664000000000000000000000252712351044305015024 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule RELEASE=`lsb_release -rs` || RELEASE="" 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 case $RELEASE in 12.04|12.10|13.04) if [ -h /etc/apache2/conf.d/maas-http.conf ]; then rm -rf /etc/apache2/conf.d/maas-http.conf fi ;; *) if [ -h /etc/apache2/conf-enabled/maas-http.conf ]; then rm -rf /etc/apache2/conf-enabled/maas-http.conf fi ;; esac # Restarting apache2 if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d apache2 restart || true fi # Delete symlink if [ -L /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas ]; then rm -rf /etc/squid-deb-proxy/mirror-dstdomain.acl.d/99-maas 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 debian/maas-region-controller-min.maas-region-celery.upstart0000664000000000000000000000200112351044305021430 0ustar # maas-celery - celery daemon for the region controller # # MAAS Region Controller Celery Daemon description "MAAS" author "Raphael Badin " start on filesystem and net-device-up and rabbitmq-server-running stop on runlevel [016] respawn env workers_user="maas_workers" env workers_pass="" env workers_vhost="/maas_workers" env DJANGO_SETTINGS_MODULE="maas.settings" pre-start script if [ -f /usr/sbin/rabbitmqctl ] && ! /usr/sbin/rabbitmqctl list_user_permissions "$workers_user" 1>/dev/null 2>&1; then workers_pass=`grep "maas_workers" /etc/maas/maas_local_celeryconfig.py | cut -d':' -f3 | cut -d'@' -f1` /usr/sbin/rabbitmqctl add_user "$workers_user" "$workers_pass" /usr/sbin/rabbitmqctl add_vhost "$workers_vhost" /usr/sbin/rabbitmqctl set_permissions -p "$workers_vhost" "$workers_user" ".*" ".*" ".*" fi end script exec /usr/sbin/maas-region-celeryd --logfile=/var/log/maas/celery-region.log --schedule=/var/lib/maas/celerybeat-region-schedule --user=maas --group=maas debian/rules0000775000000000000000000000334612351044305010253 0ustar #!/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-txlongpoll --no-start dh_installinit --name maas-region-celery --no-start dh_installinit --name maas-pserv 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/1.5 debian/maas-region-controller-min.dirs0000664000000000000000000000002212351044305015206 0ustar var/log/maas/oops debian/maas-region-controller-min.templates0000664000000000000000000000141012351044305016245 0ustar Template: maas/installation-note Type: note Default: false _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.