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.
* 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.
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.
* 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
* 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.