~ltrager/maas:lp1710681

Last commit made on 2017-08-16
Get this branch:
git clone -b lp1710681 https://git.launchpad.net/~ltrager/maas
Only Lee Trager can upload to this branch. If you are Lee Trager please log in for upload directions.

Branch merges

Branch information

Name:
lp1710681
Repository:
lp:~ltrager/maas

Recent commits

74f9798... by Lee Trager

Allow architecture to be deselected in the UI.

The UI was preventing architectures from being deselected because removing the
architecture meant removing the commissioning series for that architecture.
The user is now allowed to deselect an architecture as long as another
architecture is selected.

Fixes LP: #1710681

0b4ada3... by Mike Pontillo

Send topology hints to update_interfaces()

 * Add code to convert topology hints to a compact JSON format.
 * Start beaconing as soon as interfaces are known; don't
   wait for interface monitoring settings. This means
   beaconing will happen on all interfaces, all the time.
   (Without regard for network discovery settings.)
 * Fix bug that caused update_interfaces() to be called
   with create_fabrics=True when it should have been False.
 * Wait for beaconing to complete before updating interfaces.
 * Drive-by fix for incorrect line in .gitignore which
   erroneously covered django16_south_maas19.tar.gz.

135bd1b... by Lee Trager

Add additional metadata fields to the Script and ScriptResult models to support results and parameters.

The Script model now allows scripts to define what hardware the script is for, if the script can run in parallel, what results the script will produce, what parameters are accepted by the script, and what packages need to be installed before a script is run.

The ScriptResult model now stores what parameters should be passed to the
script.

dc1df66... by Matt Rae

LP: #1708052 -- Quick erase doesn't remove md superblock

Increase write to 2 MB to beginning of the disk so software raid superblock are wiped.

6ffe84b... by Blake Rouse

LP: #1707971 - Only expose the source address for each subnet on a region controller.

c2aed30... by Mike Pontillo

Add get_source_address() utility function

 * Performs a route lookup in order to determine the best local
   source address for a particular destination.

80aa09c... by Mike Pontillo

Derive topology hints from received beacons

 * Refactor beacon receive path to use ReceivedBeacon namedtuple to
   better organize received data.
 * Add TopologyHint namedtuple to organize what we can infer about the
   network topology based on received beacons.
 * Send multicast advertisements on all interfaces whenever a
   solicitation is received, as long as at least five seconds have
   elapsed since the last multicast advertisement.
 * Add topology hints for the following conditions:
   - Own beacon received (on either the same or a different interface)
   - Same beacon received on two interfaces
   - Received multicast beacon can be used to identify a remote network
   - Received unicast beacon can be used to verify L3 connectivity

c4c8d2a... by Mike Pontillo

Exclude interface data from rack refresh

This ensures that the NetworksMonitoringService is solely responsible
for interface updates.

855760a... by Mike Pontillo

Fix race conditions with update_interfaces()

 * Add database locking for update_interfaces().
   This fixes race conditions that can cause conflicting database
   updates when UpdateInterfaces is called outside the context
   of a rack registration, such as when a rack concurrently makes
   a new connection to a region.
 * Remove RPC call to UpdateInterfaces during rack registration.
   (Make the NetworksMonitoringService solely responsible for this.)
 * Add test to ensure UpdateInterfaces is called as soon as possible when
   the NetworksMonitoringService starts up. (Twisted actually ensures this
   for any TimerService, but we want to test for it because the interface
   update needs to happen as soon as possible after registration.)

b571b27... by =?utf-8?q?Danilo_=C5=A0egan?= <email address hidden>

Fix a few deprecation warnings that show up with Django 1.11:
 - URL patterns need not start with a slash, so where we want to support multiple slashes (metadataserver), work-around that warning
 - Do not use individual TEMPLATE_* settings in development settings file
 - Do not import from django.core.urlresolvers but introduce our temporary maasserver.utils.django_urls instead.