Commission scripts select the wrong nvme device link, then fails to report any storage
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| MAAS |
High
|
Unassigned | ||
| 2.1 |
High
|
Andres Rodriguez | ||
| systemd (Ubuntu) |
Undecided
|
Unassigned |
Bug Description
The udev package provides /lib/udev/
This issue has blocked all test runs performed by the CDO-QA test infrastructure, since every run installs MAAS on a fresh machine and commissions new nodes. The failure is seen when installing from either ppa:maas/next (2.2.0~beta2) or ppa:maas/stable (2.1.3+bzr5573).
ubuntu@meowth:~$ dpkg -l '*maas*'|cat
Desired=
| Status=
|/ Err?=(none)
||/ Name Version Architecture Description
+++-===
ii maas 2.2.0~beta2+
ii maas-cli 2.2.0~beta2+
un maas-cluster-
ii maas-common 2.2.0~beta2+
ii maas-dhcp 2.2.0~beta2+
ii maas-dns 2.2.0~beta2+
ii maas-proxy 2.2.0~beta2+
ii maas-rack-
ii maas-region-api 2.2.0~beta2+
ii maas-region-
un maas-region-
un python-django-maas <none> <none> (no description available)
un python-maas-client <none> <none> (no description available)
un python-
ii python3-django-maas 2.2.0~beta2+
ii python3-maas-client 2.2.0~beta2+
ii python3-
After re-commissioning one of the servers with ssh enabled the attached log files were collected. Please note that from the shell it can be seen that block devices are discovered and even the commissioning output found in /tmp/user_
There are 'HTTP Error 500: INTERNAL SERVER ERROR' errors in cloud-init-
ubuntu@azurill:~$ uname -a
Linux azurill 4.8.0-34-generic #36~16.04.1-Ubuntu SMP Wed Dec 21 18:55:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@azurill:~$ sudo lsblk --exclude 1,2,7 -d -P -o NAME,RO,
NAME="sdb" RO="0" RM="0" MODEL="LOGICAL VOLUME " ROTA="1"
NAME="sdc" RO="1" RM="0" MODEL="VIRTUAL-DISK " ROTA="1"
NAME="sda" RO="0" RM="0" MODEL="LOGICAL VOLUME " ROTA="1"
NAME="nvme0n1" RO="0" RM="0" MODEL="INTEL SSDPEDME400G4
Related branches
- Mike Pontillo (community): Approve on 2017-02-16
-
Diff: 57 lines (+29/-2)3 files modifiedsrc/maasserver/migrations/builtin/maasserver/0113_set_filepath_limit_to_linux_max.py (+27/-0)
src/maasserver/models/blockdevice.py (+1/-1)
src/maasserver/models/bootsource.py (+1/-1)
- Blake Rouse (community): Needs Fixing on 2017-02-28
-
Diff: 22 lines (+7/-1)1 file modifiedsrc/provisioningserver/refresh/node_info_scripts.py (+7/-1)
- MAAS Maintainers: Pending requested 2017-02-28
-
Diff: 84231 lines (+48827/-17108) (has conflicts)632 files modified.bzrignore (+5/-7)
.gitignore (+5/-9)
HACKING.txt (+22/-5)
MANIFEST.in (+18/-5)
Makefile (+88/-60)
buildout.cfg (+72/-39)
docs/_templates/maas/static/css/main.css (+14/-0)
docs/about.rst (+0/-50)
docs/bootsources.rst (+0/-113)
docs/changelog.rst (+99/-874)
docs/conf.py (+2/-1)
docs/configure.rst (+0/-135)
docs/development/notifications.rst (+198/-0)
docs/devices.rst (+0/-28)
docs/dhcpsnippets.rst (+0/-111)
docs/getting-help.rst (+0/-49)
docs/ha.rst (+0/-290)
docs/hardware-enablement-kernels.rst (+0/-80)
docs/index.rst (+1/-55)
docs/installing-ubuntu.rst (+0/-36)
docs/ipv6.rst (+0/-150)
docs/juju-quick-start.rst (+0/-145)
docs/kernel-options.rst (+0/-38)
docs/networking.rst (+0/-270)
docs/nodes.rst (+0/-98)
docs/orientation.rst (+0/-107)
docs/os-support.rst (+0/-121)
docs/packagerepositories.rst (+0/-71)
docs/physical-zones.rst (+0/-132)
docs/power-driver-capabilities.rst (+0/-48)
docs/proxy.rst (+0/-81)
docs/rack-configuration.rst (+0/-192)
docs/releases.rst (+21/-54)
docs/sstreams-mirror.rst (+0/-64)
docs/static-ips.rst (+0/-53)
docs/storage.rst (+0/-679)
docs/tags.rst (+0/-124)
media/README (+4/-4)
required-packages/dev (+5/-3)
required-packages/forbidden (+3/-0)
required-packages/yakkety (+2/-0)
required-packages/zesty (+2/-0)
services/reloader/run (+1/-1)
src/maascli/cli.py (+2/-2)
src/maasserver/__init__.py (+1/-1)
src/maasserver/__main__.py (+9/-0)
src/maasserver/api/blockdevices.py (+1/-1)
src/maasserver/api/boot_source_selections.py (+2/-0)
src/maasserver/api/dhcpsnippets.py (+1/-1)
src/maasserver/api/dnsresourcerecords.py (+2/-2)
src/maasserver/api/dnsresources.py (+1/-1)
src/maasserver/api/doc.py (+52/-10)
src/maasserver/api/doc_handler.py (+14/-10)
src/maasserver/api/domains.py (+1/-1)
src/maasserver/api/fabrics.py (+1/-1)
src/maasserver/api/fannetworks.py (+1/-1)
src/maasserver/api/interfaces.py (+8/-8)
src/maasserver/api/ipranges.py (+1/-1)
src/maasserver/api/maas.py (+1/-1)
src/maasserver/api/machines.py (+37/-27)
src/maasserver/api/nodes.py (+57/-7)
src/maasserver/api/notification.py (+145/-0)
src/maasserver/api/packagerepositories.py (+1/-1)
src/maasserver/api/partitions.py (+1/-1)
src/maasserver/api/pods.py (+229/-0)
src/maasserver/api/rackcontrollers.py (+3/-3)
src/maasserver/api/results.py (+52/-13)
src/maasserver/api/spaces.py (+76/-5)
src/maasserver/api/staticroutes.py (+1/-1)
src/maasserver/api/subnets.py (+185/-52)
src/maasserver/api/tags.py (+1/-2)
src/maasserver/api/tests/test_api.py (+5/-5)
src/maasserver/api/tests/test_boot_resources.py (+2/-2)
src/maasserver/api/tests/test_boot_source_selections.py (+1/-1)
src/maasserver/api/tests/test_commissioning.py (+199/-103)
src/maasserver/api/tests/test_dhcpsnippets.py (+3/-3)
src/maasserver/api/tests/test_discoveries.py (+5/-8)
src/maasserver/api/tests/test_doc.py (+35/-15)
src/maasserver/api/tests/test_enlistment.py (+6/-4)
src/maasserver/api/tests/test_events.py (+0/-1)
src/maasserver/api/tests/test_interfaces.py (+0/-2)
src/maasserver/api/tests/test_ipaddresses.py (+0/-10)
src/maasserver/api/tests/test_licensekey.py (+1/-1)
src/maasserver/api/tests/test_maas.py (+1/-1)
src/maasserver/api/tests/test_machine.py (+46/-59)
src/maasserver/api/tests/test_machines.py (+43/-5)
src/maasserver/api/tests/test_node.py (+123/-8)
src/maasserver/api/tests/test_nodes.py (+0/-1)
src/maasserver/api/tests/test_notification.py (+313/-0)
src/maasserver/api/tests/test_packagerepositories.py (+6/-4)
src/maasserver/api/tests/test_pods.py (+365/-0)
src/maasserver/api/tests/test_rackcontroller.py (+7/-7)
src/maasserver/api/tests/test_spaces.py (+126/-0)
src/maasserver/api/tests/test_subnets.py (+79/-41)
src/maasserver/api/tests/test_tag.py (+5/-3)
src/maasserver/api/tests/test_utils.py (+11/-3)
src/maasserver/api/tests/test_vlans.py (+160/-1)
src/maasserver/api/tests/test_volume_groups.py (+1/-1)
src/maasserver/api/vlans.py (+31/-17)
src/maasserver/bootresources.py (+43/-17)
src/maasserver/bootsources.py (+3/-1)
src/maasserver/clusterrpc/driver_parameters.py (+77/-53)
src/maasserver/clusterrpc/pods.py (+161/-0)
src/maasserver/clusterrpc/power.py (+1/-1)
src/maasserver/clusterrpc/testing/driver_parameters.py (+27/-15)
src/maasserver/clusterrpc/tests/test_boot_images.py (+1/-2)
src/maasserver/clusterrpc/tests/test_driver_parameters.py (+56/-42)
src/maasserver/clusterrpc/tests/test_pods.py (+368/-0)
src/maasserver/clusterrpc/utils.py (+1/-1)
src/maasserver/components.py (+30/-20)
src/maasserver/compose_preseed.py (+39/-5)
src/maasserver/context_processors.py (+0/-2)
src/maasserver/dbviews.py (+9/-24)
src/maasserver/dhcp.py (+49/-67)
src/maasserver/djangosettings/demo.py (+1/-1)
src/maasserver/djangosettings/development.py (+6/-7)
src/maasserver/djangosettings/settings.py (+3/-3)
src/maasserver/djangosettings/tests/test_settings.py (+2/-2)
src/maasserver/dns/tests/test_config.py (+3/-3)
src/maasserver/dns/tests/test_zonegenerator.py (+29/-42)
src/maasserver/enum.py (+38/-1)
src/maasserver/eventloop.py (+2/-16)
src/maasserver/exceptions.py (+14/-3)
src/maasserver/fields.py (+13/-0)
src/maasserver/forms/__init__.py (+100/-97)
src/maasserver/forms/ephemeral.py (+130/-30)
src/maasserver/forms/notification.py (+39/-0)
src/maasserver/forms/pods.py (+287/-0)
src/maasserver/forms/settings.py (+33/-0)
src/maasserver/forms/subnet.py (+13/-13)
src/maasserver/forms/tests/test_config.py (+2/-4)
src/maasserver/forms/tests/test_controller.py (+2/-2)
src/maasserver/forms/tests/test_dhcpsnippet.py (+4/-4)
src/maasserver/forms/tests/test_dnsdata.py (+1/-1)
src/maasserver/forms/tests/test_dnsresource.py (+1/-1)
src/maasserver/forms/tests/test_domain.py (+1/-1)
src/maasserver/forms/tests/test_ephemeral.py (+174/-24)
src/maasserver/forms/tests/test_fabric.py (+1/-1)
src/maasserver/forms/tests/test_fannetwork.py (+1/-1)
src/maasserver/forms/tests/test_filesystem.py (+1/-1)
src/maasserver/forms/tests/test_helpers.py (+2/-2)
src/maasserver/forms/tests/test_interface.py (+1/-1)
src/maasserver/forms/tests/test_interface_link.py (+8/-43)
src/maasserver/forms/tests/test_iprange.py (+1/-1)
src/maasserver/forms/tests/test_machine.py (+2/-2)
src/maasserver/forms/tests/test_notification.py (+108/-0)
src/maasserver/forms/tests/test_packagerepository.py (+1/-1)
src/maasserver/forms/tests/test_pods.py (+473/-0)
src/maasserver/forms/tests/test_settings.py (+2/-6)
src/maasserver/forms/tests/test_space.py (+1/-1)
src/maasserver/forms/tests/test_staticroute.py (+1/-1)
src/maasserver/forms/tests/test_subnet.py (+48/-52)
src/maasserver/forms/tests/test_ubuntu.py (+1/-1)
src/maasserver/forms/tests/test_vlan.py (+126/-1)
src/maasserver/forms/vlan.py (+49/-7)
src/maasserver/locks.py (+3/-3)
src/maasserver/management/commands/dbupgrade.py (+50/-6)
src/maasserver/management/commands/tests/test_dbupgrade.py (+4/-1)
src/maasserver/migrations/builtin/maasserver/0016_migrate_power_data_node_to_bmc.py (+9/-7)
src/maasserver/migrations/builtin/maasserver/0022_extract_ip_for_bmcs.py (+6/-3)
src/maasserver/migrations/builtin/maasserver/0027_replace_static_range_with_admin_reserved_ranges.py (+1/-1)
src/maasserver/migrations/builtin/maasserver/0056_add_description_to_fabric_and_space.py (+1/-1)
src/maasserver/migrations/builtin/maasserver/0094_add_unmanaged_subnets.py (+22/-0)
src/maasserver/migrations/builtin/maasserver/0095_vlan_relay_vlan.py (+23/-0)
src/maasserver/migrations/builtin/maasserver/0096_set_default_vlan_field.py (+23/-0)
src/maasserver/migrations/builtin/maasserver/0097_node_chassis_storage_hints.py (+73/-0)
src/maasserver/migrations/builtin/maasserver/0098_add_space_to_vlan.py (+24/-0)
src/maasserver/migrations/builtin/maasserver/0099_set_default_vlan_field.py (+24/-0)
src/maasserver/migrations/builtin/maasserver/0100_migrate_spaces_from_subnet_to_vlan.py (+47/-0)
src/maasserver/migrations/builtin/maasserver/0101_filesystem_btrfs_support.py (+22/-0)
src/maasserver/migrations/builtin/maasserver/0102_remove_space_from_subnet.py (+25/-0)
src/maasserver/migrations/builtin/maasserver/0103_notifications.py (+44/-0)
src/maasserver/migrations/builtin/maasserver/0104_notifications_dismissals.py (+27/-0)
src/maasserver/migrations/builtin/maasserver/0105_add_script_sets_to_node_model.py (+34/-0)
src/maasserver/migrations/builtin/maasserver/0106_testing_status.py (+27/-0)
src/maasserver/migrations/builtin/maasserver/0107_chassis_to_pods.py (+107/-0)
src/maasserver/migrations/builtin/maasserver/0108_generate_bmc_names.py (+28/-0)
src/maasserver/migrations/builtin/maasserver/0109_bmc_names_unique.py (+22/-0)
src/maasserver/migrations/builtin/maasserver/0110_notification_category.py (+23/-0)
src/maasserver/migrations/builtin/maasserver/0111_remove_component_error.py (+14/-0)
src/maasserver/migrations/builtin/maasserver/0112_update_notification.py (+38/-0)
src/maasserver/migrations/builtin/maasserver/0113_set_filepath_limit_to_linux_max.py (+27/-0)
src/maasserver/migrations/builtin/maasserver/0114_node_dynamic_to_creation_type.py (+26/-0)
src/maasserver/models/__init__.py (+15/-7)
src/maasserver/models/blockdevice.py (+54/-1)
src/maasserver/models/bmc.py (+652/-15)
src/maasserver/models/bootsource.py (+1/-1)
src/maasserver/models/component_error.py (+0/-30)
src/maasserver/models/config.py (+3/-0)
src/maasserver/models/event.py (+8/-1)
src/maasserver/models/interface.py (+91/-9)
src/maasserver/models/node.py (+460/-143)
src/maasserver/models/nodeprobeddetails.py (+54/-37)
src/maasserver/models/notification.py (+248/-0)
src/maasserver/models/podhints.py (+35/-0)
src/maasserver/models/signals/bmc.py (+36/-7)
src/maasserver/models/signals/nodes.py (+62/-2)
src/maasserver/models/signals/tests/test_bmc.py (+29/-1)
src/maasserver/models/signals/tests/test_nodes.py (+137/-1)
src/maasserver/models/space.py (+15/-2)
src/maasserver/models/staticipaddress.py (+207/-28)
src/maasserver/models/subnet.py (+82/-23)
src/maasserver/models/tests/test_blockdevice.py (+26/-0)
src/maasserver/models/tests/test_bmc.py (+518/-3)
src/maasserver/models/tests/test_config.py (+32/-1)
src/maasserver/models/tests/test_discovery.py (+2/-6)
src/maasserver/models/tests/test_dnsdata.py (+12/-8)
src/maasserver/models/tests/test_dnspublication.py (+5/-0)
src/maasserver/models/tests/test_event.py (+10/-0)
src/maasserver/models/tests/test_interface.py (+117/-40)
src/maasserver/models/tests/test_managers.py (+3/-3)
src/maasserver/models/tests/test_neighbour.py (+2/-2)
src/maasserver/models/tests/test_node.py (+715/-240)
src/maasserver/models/tests/test_nodeprobeddetails.py (+71/-76)
src/maasserver/models/tests/test_notification.py (+265/-0)
src/maasserver/models/tests/test_space.py (+16/-7)
src/maasserver/models/tests/test_staticipaddress.py (+135/-112)
src/maasserver/models/tests/test_subnet.py (+114/-50)
src/maasserver/models/tests/test_timestampedmodel.py (+3/-3)
src/maasserver/models/tests/test_vlan.py (+28/-0)
src/maasserver/models/vlan.py (+19/-0)
src/maasserver/node_action.py (+52/-22)
src/maasserver/node_constraint_filter_forms.py (+192/-131)
src/maasserver/node_status.py (+60/-1)
src/maasserver/plugin.py (+2/-6)
src/maasserver/populate_tags.py (+2/-2)
src/maasserver/preseed.py (+9/-3)
src/maasserver/preseed_network.py (+228/-287)
src/maasserver/regiondservices/tests/test_ntp.py (+0/-12)
src/maasserver/rpc/nodes.py (+8/-7)
src/maasserver/rpc/rackcontrollers.py (+10/-3)
src/maasserver/rpc/regionservice.py (+16/-19)
src/maasserver/rpc/tests/test_nodes.py (+5/-5)
src/maasserver/rpc/tests/test_rackcontrollers.py (+7/-1)
src/maasserver/rpc/tests/test_regionservice.py (+4/-1)
src/maasserver/start_up.py (+3/-0)
src/maasserver/static/assets/images/04d2075a-chevron-down.svg (+10/-0)
src/maasserver/static/assets/images/1cdcdb82-system-shutdown.svg (+1/-0)
src/maasserver/static/assets/images/2355399b-info.svg (+1/-0)
src/maasserver/static/assets/images/314a253d-settings.svg (+1/-0)
src/maasserver/static/assets/images/3fd57564-mount.svg (+1/-0)
src/maasserver/static/assets/images/46b44caf-checkbox-hover.svg (+15/-0)
src/maasserver/static/assets/images/480f6014-add-partition.svg (+1/-0)
src/maasserver/static/assets/images/501ee9c0-add-logical-volume.svg (+1/-0)
src/maasserver/static/assets/images/50fc9223-power-off.svg (+20/-0)
src/maasserver/static/assets/images/5777c0c7-warning.svg (+1/-0)
src/maasserver/static/assets/images/5c9708d2-add.svg (+1/-0)
src/maasserver/static/assets/images/6c395e6d-green-tick.svg (+16/-0)
src/maasserver/static/assets/images/82993327-mount.svg (+1/-0)
src/maasserver/static/assets/images/89c10794-remove.svg (+1/-0)
src/maasserver/static/assets/images/89c6b797-success.svg (+17/-0)
src/maasserver/static/assets/images/8b8eb7d5-partition.svg (+1/-0)
src/maasserver/static/assets/images/908ee6a0-help.svg (+1/-0)
src/maasserver/static/assets/images/9cc42dcc-magnifying_glass.svg (+1/-0)
src/maasserver/static/assets/images/a02192e3-debug.svg (+1/-0)
src/maasserver/static/assets/images/b2fadbbe-tooltip.svg (+1/-0)
src/maasserver/static/assets/images/b5573b6a-delete.svg (+1/-0)
src/maasserver/static/assets/images/b562c17f-edit.svg (+1/-0)
src/maasserver/static/assets/images/b77e606e-logical-volume.svg (+1/-0)
src/maasserver/static/assets/images/b8119c45-power-error.svg (+20/-0)
src/maasserver/static/assets/images/d0374f79-tags.svg (+1/-0)
src/maasserver/static/assets/images/d53683c4-power-on.svg (+20/-0)
src/maasserver/static/assets/images/d730daea-error.svg (+1/-0)
src/maasserver/static/assets/images/d760df7b-account.svg (+1/-0)
src/maasserver/static/assets/images/d88a05ba-unmount.svg (+1/-0)
src/maasserver/static/assets/images/db8d0984-checkbox.svg (+11/-0)
src/maasserver/static/assets/images/f3f43376-chevron-up.svg (+10/-0)
src/maasserver/static/assets/images/f5453933-sync.svg (+1/-0)
src/maasserver/static/assets/images/forms/checkbox-checked.svg (+0/-24)
src/maasserver/static/assets/images/forms/checkbox.svg (+0/-23)
src/maasserver/static/assets/images/forms/chevron-down.svg (+0/-12)
src/maasserver/static/assets/images/forms/chevron-up.svg (+0/-12)
src/maasserver/static/assets/images/forms/chevron_down.svg (+0/-12)
src/maasserver/static/assets/images/forms/chevron_up.svg (+0/-12)
src/maasserver/static/assets/images/logos/logo-ubuntu-orange.svg (+0/-60)
src/maasserver/static/assets/images/logos/maas-logo.svg (+0/-63)
src/maasserver/static/css/build.css (+1/-0)
src/maasserver/static/js/angular/3rdparty/sticky.min.js (+684/-0)
src/maasserver/static/js/angular/controllers/dashboard.js (+2/-2)
src/maasserver/static/js/angular/controllers/fabric_details.js (+3/-1)
src/maasserver/static/js/angular/controllers/networks_list.js (+27/-4)
src/maasserver/static/js/angular/controllers/node_details.js (+9/-2)
src/maasserver/static/js/angular/controllers/node_events.js (+14/-7)
src/maasserver/static/js/angular/controllers/node_result.js (+14/-6)
src/maasserver/static/js/angular/controllers/subnet_details.js (+9/-2)
src/maasserver/static/js/angular/controllers/tests/test_networks_list.js (+41/-17)
src/maasserver/static/js/angular/controllers/tests/test_node_details.js (+33/-0)
src/maasserver/static/js/angular/controllers/tests/test_node_events.js (+19/-2)
src/maasserver/static/js/angular/controllers/tests/test_node_result.js (+17/-2)
src/maasserver/static/js/angular/controllers/tests/test_subnet_details.js (+3/-1)
src/maasserver/static/js/angular/controllers/tests/test_vlan_details.js (+57/-7)
src/maasserver/static/js/angular/controllers/vlan_details.js (+131/-32)
src/maasserver/static/js/angular/directives/call_to_action.js (+4/-6)
src/maasserver/static/js/angular/directives/error_overlay.js (+1/-1)
src/maasserver/static/js/angular/directives/notifications.js (+102/-0)
src/maasserver/static/js/angular/directives/os_select.js (+25/-18)
src/maasserver/static/js/angular/directives/power_parameters.js (+2/-2)
src/maasserver/static/js/angular/directives/tests/test_notifications.js (+192/-0)
src/maasserver/static/js/angular/directives/tests/test_power_parameters.js (+2/-2)
src/maasserver/static/js/angular/directives/tests/test_window_width.js (+53/-0)
src/maasserver/static/js/angular/directives/version_reloader.js (+10/-5)
src/maasserver/static/js/angular/directives/window_width.js (+33/-0)
src/maasserver/static/js/angular/factories/events.js (+1/-1)
src/maasserver/static/js/angular/factories/notifications.js (+34/-0)
src/maasserver/static/js/angular/factories/tests/test_events.js (+1/-1)
src/maasserver/static/js/angular/factories/tests/test_notifications.js (+47/-0)
src/maasserver/static/js/angular/factories/tests/test_region.js (+6/-2)
src/maasserver/static/js/angular/factories/tests/test_vlans.js (+6/-3)
src/maasserver/static/js/angular/factories/vlans.js (+12/-7)
src/maasserver/static/js/angular/filters/by_space.js (+16/-4)
src/maasserver/static/js/angular/filters/by_vlan.js (+0/-15)
src/maasserver/static/js/angular/maas.js (+15/-0)
src/maasserver/static/js/angular/services/log.js (+93/-0)
src/maasserver/static/js/angular/services/tests/test_log.js (+112/-0)
src/maasserver/static/js/angular/testing/setup.js (+19/-0)
src/maasserver/static/js/prefs.js (+2/-2)
src/maasserver/static/js/tests/test_prefs.js (+1/-1)
src/maasserver/static/partials/boot-images.html (+23/-23)
src/maasserver/static/partials/dashboard.html (+188/-0)
src/maasserver/static/partials/domain-details.html (+15/-8)
src/maasserver/static/partials/domains-list.html (+10/-6)
src/maasserver/static/partials/error.html (+4/-0)
src/maasserver/static/partials/fabric-details.html (+16/-8)
src/maasserver/static/partials/intro-user.html (+33/-0)
src/maasserver/static/partials/intro.html (+71/-0)
src/maasserver/static/partials/ipranges.html (+25/-19)
src/maasserver/static/partials/networks-list.html (+60/-38)
src/maasserver/static/partials/node-details.html (+1052/-826)
src/maasserver/static/partials/node-events.html (+7/-3)
src/maasserver/static/partials/node-result.html (+9/-1)
src/maasserver/static/partials/nodes-list.html (+220/-144)
src/maasserver/static/partials/settings.html (+209/-72)
src/maasserver/static/partials/space-details.html (+11/-3)
src/maasserver/static/partials/ssh-keys.html (+14/-2)
src/maasserver/static/partials/subnet-details.html (+85/-28)
src/maasserver/static/partials/vlan-details.html (+112/-32)
src/maasserver/static/scss/_base.definition-list.scss (+0/-35)
src/maasserver/static/scss/_base.maas-gui-vanilla-theme.scss (+80/-0)
src/maasserver/static/scss/_base.main.scss (+0/-18)
src/maasserver/static/scss/_base.typography.scss (+0/-78)
src/maasserver/static/scss/_components.code.scss (+0/-44)
src/maasserver/static/scss/_components.list-tree.scss (+0/-57)
src/maasserver/static/scss/_components.tabs.scss (+0/-51)
src/maasserver/static/scss/_components.tooltips.scss (+0/-125)
src/maasserver/static/scss/_helpers.animations.scss (+0/-45)
src/maasserver/static/scss/_helpers.borders.scss (+0/-45)
src/maasserver/static/scss/_helpers.mixins.scss (+0/-59)
src/maasserver/static/scss/_helpers.state.scss (+0/-37)
src/maasserver/static/scss/_helpers.vertical-alignment.scss (+0/-15)
src/maasserver/static/scss/_layout.row.scss (+0/-19)
src/maasserver/static/scss/_layout.wrapper.scss (+0/-42)
src/maasserver/static/scss/_pages.scratch.scss (+14/-2)
src/maasserver/static/scss/_patterns.accordion.scss (+0/-122)
src/maasserver/static/scss/_patterns.action-card.scss (+0/-34)
src/maasserver/static/scss/_patterns.header.scss (+0/-64)
src/maasserver/static/scss/_patterns.search.scss (+0/-85)
src/maasserver/static/scss/_settings.defaults.scss (+0/-80)
src/maasserver/static/scss/_settings.fonts.scss (+0/-31)
src/maasserver/static/scss/build.scss (+4/-74)
src/maasserver/templates/maasserver/base.html (+31/-31)
src/maasserver/templates/maasserver/index.html (+10/-12)
src/maasserver/templates/maasserver/logout_confirm.html (+15/-9)
src/maasserver/templates/maasserver/prefs.html (+3/-3)
src/maasserver/templates/maasserver/prefs_add_sslkey.html (+4/-2)
src/maasserver/templates/maasserver/settings.html (+24/-18)
src/maasserver/templates/maasserver/settings_add_commissioning_script.html (+4/-2)
src/maasserver/templates/maasserver/settings_add_license_key.html (+4/-2)
src/maasserver/templates/maasserver/settings_commissioning_scripts.html (+1/-1)
src/maasserver/templates/maasserver/settings_confirm_delete_commissioning_script.html (+4/-2)
src/maasserver/templates/maasserver/settings_confirm_delete_license_key.html (+4/-2)
src/maasserver/templates/maasserver/settings_edit_license_key.html (+1/-1)
src/maasserver/templates/maasserver/settings_license_keys.html (+1/-1)
src/maasserver/templates/maasserver/user_add.html (+4/-2)
src/maasserver/templates/maasserver/user_confirm_delete.html (+4/-2)
src/maasserver/templates/maasserver/user_edit.html (+8/-4)
src/maasserver/templates/maasserver/user_view.html (+2/-2)
src/maasserver/templates/maasserver/zone_add.html (+1/-1)
src/maasserver/templates/maasserver/zone_confirm_delete.html (+4/-2)
src/maasserver/templates/maasserver/zone_detail.html (+2/-2)
src/maasserver/templates/maasserver/zone_edit.html (+4/-2)
src/maasserver/templates/maasserver/zone_list.html (+6/-6)
src/maasserver/templates/registration/login.html (+18/-21)
src/maasserver/testing/api.py (+0/-1)
src/maasserver/testing/factory.py (+198/-73)
src/maasserver/testing/initial.maas_test.sql (+13594/-0)
src/maasserver/testing/matchers.py (+34/-2)
src/maasserver/testing/resources.py (+266/-0)
src/maasserver/testing/sampledata.py (+66/-7)
src/maasserver/testing/testcase.py (+112/-154)
src/maasserver/testing/tests/test_sampledata.py (+0/-5)
src/maasserver/tests/test_auth.py (+0/-5)
src/maasserver/tests/test_bootresources.py (+7/-0)
src/maasserver/tests/test_bootsources.py (+10/-6)
src/maasserver/tests/test_commands.py (+4/-1)
src/maasserver/tests/test_commands_dbupgrade.py (+3/-1)
src/maasserver/tests/test_components.py (+9/-20)
src/maasserver/tests/test_compose_preseed.py (+83/-26)
src/maasserver/tests/test_dbviews.py (+6/-11)
src/maasserver/tests/test_dhcp.py (+56/-83)
src/maasserver/tests/test_docs.py (+54/-0)
src/maasserver/tests/test_eventloop.py (+2/-1)
src/maasserver/tests/test_fields.py (+23/-9)
src/maasserver/tests/test_node_action.py (+136/-54)
src/maasserver/tests/test_node_constraint_filter_forms.py (+105/-5)
src/maasserver/tests/test_ntp.py (+0/-14)
src/maasserver/tests/test_plugin.py (+1/-1)
src/maasserver/tests/test_populate_tags.py (+33/-10)
src/maasserver/tests/test_preseed.py (+27/-10)
src/maasserver/tests/test_preseed_network.py (+4/-4)
src/maasserver/tests/test_routablepairs.py (+0/-5)
src/maasserver/tests/test_service_monitor.py (+1/-1)
src/maasserver/tests/test_start_up.py (+13/-0)
src/maasserver/tests/test_storage_layouts.py (+3/-3)
src/maasserver/tests/test_third_party_drivers.py (+17/-8)
src/maasserver/tests/test_x509.py (+2/-2)
src/maasserver/third_party_drivers.py (+11/-8)
src/maasserver/triggers/system.py (+58/-1)
src/maasserver/triggers/testing.py (+26/-11)
src/maasserver/triggers/tests/test_init.py (+227/-1)
src/maasserver/triggers/tests/test_system_listener.py (+148/-25)
src/maasserver/triggers/tests/test_websocket.py (+0/-127)
src/maasserver/triggers/tests/test_websocket_listener.py (+186/-11)
src/maasserver/triggers/websocket.py (+113/-10)
src/maasserver/urls_api.py (+25/-0)
src/maasserver/utils/orm.py (+102/-20)
src/maasserver/utils/osystems.py (+1/-1)
src/maasserver/utils/tests/test_dblocks.py (+30/-15)
src/maasserver/utils/tests/test_dbtasks.py (+1/-1)
src/maasserver/utils/tests/test_mac.py (+3/-3)
src/maasserver/utils/tests/test_orm.py (+204/-1)
src/maasserver/utils/tests/test_osystems.py (+4/-4)
src/maasserver/utils/tests/test_signals.py (+2/-2)
src/maasserver/utils/tests/test_threads.py (+3/-2)
src/maasserver/views/combo.py (+5/-0)
src/maasserver/views/tests/test_account.py (+7/-4)
src/maasserver/views/tests/test_general.py (+4/-36)
src/maasserver/websockets/handlers/__init__.py (+8/-29)
src/maasserver/websockets/handlers/config.py (+1/-1)
src/maasserver/websockets/handlers/controller.py (+5/-2)
src/maasserver/websockets/handlers/device.py (+7/-2)
src/maasserver/websockets/handlers/dhcpsnippet.py (+1/-1)
src/maasserver/websockets/handlers/fabric.py (+1/-1)
src/maasserver/websockets/handlers/general.py (+4/-4)
src/maasserver/websockets/handlers/iprange.py (+1/-1)
src/maasserver/websockets/handlers/machine.py (+4/-3)
src/maasserver/websockets/handlers/node.py (+48/-27)
src/maasserver/websockets/handlers/notification.py (+73/-0)
src/maasserver/websockets/handlers/packagerepository.py (+1/-1)
src/maasserver/websockets/handlers/space.py (+6/-6)
src/maasserver/websockets/handlers/staticroute.py (+1/-1)
src/maasserver/websockets/handlers/subnet.py (+23/-2)
src/maasserver/websockets/handlers/tests/test_config.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_controller.py (+6/-0)
src/maasserver/websockets/handlers/tests/test_device.py (+0/-6)
src/maasserver/websockets/handlers/tests/test_dhcpsnippet.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_discovery.py (+0/-5)
src/maasserver/websockets/handlers/tests/test_domain.py (+9/-4)
src/maasserver/websockets/handlers/tests/test_general.py (+11/-8)
src/maasserver/websockets/handlers/tests/test_machine.py (+58/-31)
src/maasserver/websockets/handlers/tests/test_notification.py (+252/-0)
src/maasserver/websockets/handlers/tests/test_packagerepository.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_space.py (+4/-4)
src/maasserver/websockets/handlers/tests/test_subnet.py (+111/-8)
src/maasserver/websockets/handlers/tests/test_vlan.py (+19/-3)
src/maasserver/websockets/handlers/vlan.py (+16/-9)
src/maasserver/websockets/tests/test_protocol.py (+11/-6)
src/maastesting/djangotestcase.py (+14/-2)
src/maastesting/fixtures.py (+24/-13)
src/maastesting/karma.conf.js (+1/-0)
src/maastesting/matchers.py (+54/-0)
src/maastesting/noseplug.py (+208/-16)
src/maastesting/parallel.py (+399/-0)
src/maastesting/testcase.py (+44/-24)
src/maastesting/tests/test_conflict_markers.py (+20/-17)
src/maastesting/tests/test_factory.py (+13/-10)
src/maastesting/tests/test_fixtures.py (+12/-15)
src/maastesting/tests/test_matchers.py (+89/-0)
src/maastesting/tests/test_noseplug.py (+132/-2)
src/maastesting/tests/test_parallel.py (+242/-0)
src/maastesting/tests/test_testcase.py (+28/-0)
src/maastesting/twisted.py (+19/-0)
src/maastesting/typecheck.py (+21/-0)
src/maastesting/utils.py (+2/-109)
src/metadataserver/address.py (+1/-1)
src/metadataserver/api.py (+423/-128)
src/metadataserver/builtin_scripts/__init__.py (+126/-0)
src/metadataserver/builtin_scripts/smartctl.py (+215/-0)
src/metadataserver/builtin_scripts/tests/test_builtin_scripts.py (+103/-0)
src/metadataserver/builtin_scripts/tests/test_smartctl.py (+262/-0)
src/metadataserver/enum.py (+38/-1)
src/metadataserver/fixtures/initial_data.yaml (+0/-13)
src/metadataserver/migrations/builtin/0002_script_models.py (+83/-0)
src/metadataserver/migrations/builtin/0003_remove_noderesult.py (+83/-0)
src/metadataserver/migrations/builtin/0004_aborted_script_status.py (+22/-0)
src/metadataserver/migrations/builtin/0005_store_powerstate_on_scriptset_creation.py (+22/-0)
src/metadataserver/models/__init__.py (+8/-8)
src/metadataserver/models/commissioningscript.py (+7/-99)
src/metadataserver/models/noderesult.py (+0/-126)
src/metadataserver/models/script.py (+91/-0)
src/metadataserver/models/scriptresult.py (+146/-0)
src/metadataserver/models/scriptset.py (+195/-0)
src/metadataserver/models/tests/test_commissioningscript.py (+1/-138)
src/metadataserver/models/tests/test_nodecommissionresult.py (+0/-157)
src/metadataserver/models/tests/test_script.py (+89/-0)
src/metadataserver/models/tests/test_scriptresult.py (+231/-0)
src/metadataserver/models/tests/test_scriptset.py (+264/-0)
src/metadataserver/nodeinituser.py (+5/-12)
src/metadataserver/tests/test_api.py (+909/-147)
src/metadataserver/tests/test_api_status.py (+85/-35)
src/metadataserver/tests/test_fields.py (+2/-2)
src/metadataserver/tests/test_vendor_data.py (+0/-2)
src/metadataserver/urls.py (+9/-3)
src/metadataserver/user_data/__init__.py (+33/-9)
src/metadataserver/user_data/commissioning.py (+0/-22)
src/metadataserver/user_data/disk_erasing.py (+0/-25)
src/metadataserver/user_data/poweroff.py (+0/-24)
src/metadataserver/user_data/rescue_mode.py (+0/-24)
src/metadataserver/user_data/snippets.py (+5/-6)
src/metadataserver/user_data/templates/base_user_data.sh (+94/-0)
src/metadataserver/user_data/templates/commissioning.template (+57/-196)
src/metadataserver/user_data/templates/disk_erasing.template (+9/-101)
src/metadataserver/user_data/templates/poweroff.template (+2/-2)
src/metadataserver/user_data/templates/rescue_mode.template (+10/-101)
src/metadataserver/user_data/templates/snippets/maas_ipmi_autodetect_tool.py (+8/-0)
src/metadataserver/user_data/templates/snippets/maas_run_remote_scripts.py (+225/-0)
src/metadataserver/user_data/templates/snippets/maas_signal.py (+29/-161)
src/metadataserver/user_data/templates/snippets/maas_wedge_autodetect.sh (+154/-0)
src/metadataserver/user_data/templates/snippets/tests/test_maas_run_remote_scripts.py (+177/-0)
src/metadataserver/user_data/templates/testing.template (+26/-0)
src/metadataserver/user_data/tests/test_commissioning.py (+0/-65)
src/metadataserver/user_data/tests/test_disk_erasing.py (+0/-75)
src/metadataserver/user_data/tests/test_generate_user_data.py (+183/-0)
src/metadataserver/user_data/tests/test_poweroff.py (+0/-37)
src/metadataserver/user_data/tests/test_rescue_mode.py (+0/-37)
src/metadataserver/user_data/tests/test_snippets.py (+7/-6)
src/provisioningserver/boot/__init__.py (+19/-13)
src/provisioningserver/boot/pxe.py (+7/-1)
src/provisioningserver/boot/tests/test_boot.py (+6/-0)
src/provisioningserver/boot/uefi_amd64.py (+12/-2)
src/provisioningserver/dhcp/__init__.py (+5/-5)
src/provisioningserver/dhcp/tests/test_config.py (+31/-102)
src/provisioningserver/diskless.py (+0/-237)
src/provisioningserver/drivers/__init__.py (+78/-104)
src/provisioningserver/drivers/diskless/__init__.py (+0/-102)
src/provisioningserver/drivers/diskless/tests/test_base.py (+0/-163)
src/provisioningserver/drivers/hardware/tests/test_virsh.py (+14/-0)
src/provisioningserver/drivers/hardware/virsh.py (+3/-1)
src/provisioningserver/drivers/osystem/tests/test_windows.py (+1/-1)
src/provisioningserver/drivers/osystem/windows.py (+1/-0)
src/provisioningserver/drivers/pod/__init__.py (+329/-0)
src/provisioningserver/drivers/pod/registry.py (+36/-0)
src/provisioningserver/drivers/pod/rsd.py (+806/-0)
src/provisioningserver/drivers/pod/tests/test_base.py (+696/-0)
src/provisioningserver/drivers/pod/tests/test_registry.py (+56/-0)
src/provisioningserver/drivers/pod/tests/test_rsd.py (+1541/-0)
src/provisioningserver/drivers/pod/tests/test_virsh.py (+1379/-0)
src/provisioningserver/drivers/pod/virsh.py (+930/-0)
src/provisioningserver/drivers/power/__init__.py (+116/-78)
src/provisioningserver/drivers/power/amt.py (+11/-2)
src/provisioningserver/drivers/power/apc.py (+17/-2)
src/provisioningserver/drivers/power/dli.py (+17/-2)
src/provisioningserver/drivers/power/fence_cdu.py (+18/-2)
src/provisioningserver/drivers/power/hmc.py (+19/-2)
src/provisioningserver/drivers/power/ipmi.py (+31/-2)
src/provisioningserver/drivers/power/manual.py (+3/-1)
src/provisioningserver/drivers/power/moonshot.py (+16/-2)
src/provisioningserver/drivers/power/mscm.py (+19/-2)
src/provisioningserver/drivers/power/msftocs.py (+17/-2)
src/provisioningserver/drivers/power/nova.py (+21/-2)
src/provisioningserver/drivers/power/registry.py (+74/-0)
src/provisioningserver/drivers/power/seamicro.py (+27/-2)
src/provisioningserver/drivers/power/tests/test_base.py (+76/-43)
src/provisioningserver/drivers/power/tests/test_registry.py (+70/-0)
src/provisioningserver/drivers/power/ucsm.py (+18/-2)
src/provisioningserver/drivers/power/virsh.py (+18/-2)
src/provisioningserver/drivers/power/vmware.py (+25/-2)
src/provisioningserver/drivers/power/wedge.py (+13/-2)
src/provisioningserver/drivers/tests/test_base.py (+152/-62)
src/provisioningserver/events.py (+87/-6)
src/provisioningserver/import_images/boot_resources.py (+52/-10)
src/provisioningserver/import_images/keyrings.py (+2/-5)
src/provisioningserver/import_images/tests/test_boot_resources.py (+56/-18)
src/provisioningserver/import_images/tests/test_keyrings.py (+3/-1)
src/provisioningserver/plugin.py (+18/-0)
src/provisioningserver/power/change.py (+0/-269)
src/provisioningserver/power/poweraction.py (+0/-136)
src/provisioningserver/power/query.py (+0/-206)
src/provisioningserver/power/schema.py (+0/-476)
src/provisioningserver/power/tests/test_change.py (+0/-563)
src/provisioningserver/power/tests/test_query.py (+0/-557)
src/provisioningserver/rackdservices/node_power_monitor_service.py (+1/-1)
src/provisioningserver/rackdservices/tests/test_tftp.py (+3/-3)
src/provisioningserver/rackdservices/tftp.py (+2/-2)
src/provisioningserver/rackdservices/tftp_offload.py (+207/-0)
src/provisioningserver/refresh/__init__.py (+29/-55)
src/provisioningserver/refresh/maas_api_helper.py (+104/-2)
src/provisioningserver/refresh/node_info_scripts.py (+19/-13)
src/provisioningserver/refresh/tests/test_maas_api_helper.py (+320/-14)
src/provisioningserver/refresh/tests/test_node_info_scripts.py (+2/-2)
src/provisioningserver/refresh/tests/test_refresh.py (+58/-121)
src/provisioningserver/rpc/arguments.py (+68/-0)
src/provisioningserver/rpc/cluster.py (+87/-1)
src/provisioningserver/rpc/clusterservice.py (+42/-9)
src/provisioningserver/rpc/exceptions.py (+13/-0)
src/provisioningserver/rpc/pods.py (+174/-0)
src/provisioningserver/rpc/power.py (+432/-31)
src/provisioningserver/rpc/tests/test_arguments.py (+107/-0)
src/provisioningserver/rpc/tests/test_clusterservice.py (+165/-20)
src/provisioningserver/rpc/tests/test_pods.py (+415/-0)
src/provisioningserver/rpc/tests/test_power.py (+1109/-145)
src/provisioningserver/templates/commissioning-user-data/snippets/maas_api_helper.py (+0/-110)
src/provisioningserver/templates/commissioning-user-data/snippets/maas_get.py (+0/-47)
src/provisioningserver/templates/dns/zone.template (+1/-1)
src/provisioningserver/testing/network.py (+0/-40)
src/provisioningserver/tests/test_config.py (+4/-2)
src/provisioningserver/tests/test_diskless.py (+0/-493)
src/provisioningserver/tests/test_events.py (+22/-7)
src/provisioningserver/tests/test_plugin.py (+21/-1)
src/provisioningserver/tests/test_service_monitor.py (+1/-1)
src/provisioningserver/utils/fs.py (+10/-7)
src/provisioningserver/utils/network.py (+4/-3)
src/provisioningserver/utils/service_monitor.py (+5/-2)
src/provisioningserver/utils/tests/test_enum.py (+3/-3)
src/provisioningserver/utils/tests/test_env.py (+1/-0)
src/provisioningserver/utils/tests/test_fs.py (+15/-10)
src/provisioningserver/utils/tests/test_network.py (+8/-5)
src/provisioningserver/utils/tests/test_service_monitor.py (+18/-1)
src/provisioningserver/utils/tests/test_utils.py (+8/-12)
utilities/check-imports (+71/-55)
utilities/regiond-storm (+127/-0)
utilities/remote-reinstall (+0/-4)
versions.cfg (+29/-22)
- Andres Rodriguez (community): Approve on 2017-03-02
- Blake Rouse (community): Approve on 2017-03-01
-
Diff: 126 lines (+89/-1)3 files modifieddocs/changelog.rst (+2/-0)
src/provisioningserver/refresh/node_info_scripts.py (+7/-1)
src/provisioningserver/refresh/tests/test_node_info_scripts.py (+80/-0)
John George (jog) wrote : | #1 |
John George (jog) wrote : | #2 |
Andres Rodriguez (andreserl) wrote : | #3 |
Andres Rodriguez (andreserl) wrote : | #4 |
Ok, So the reason for this is that MAAS handles a FilePath of maximum 100 characters. The one being found here is way more than that.
The interesting thing is that Ubuntu has changed the lenght of this file path and this could cause regressions not just in MAAS but in other places. IMHO, this needs to be looked at in Ubuntu as well.
Changed in maas: | |
milestone: | none → 2.2.0 |
status: | New → Confirmed |
Lee Trager (ltrager) wrote : | #5 |
In 00-maas-
https:/
tags: |
added: cdo-qa cdo-qa-blocker removed: cdoqa-blocker |
John George (jog) wrote : | #6 |
When commissioning with the HWE kernel the ID_PATH is shorter:
{
"MODEL": "INTEL SSDPEDME400G4",
"SERIAL": "CVMD434500BN40
"ROTA": "0",
"ID_PATH": "/dev/disk/
"PATH": "/dev/nvme0n1",
"NAME": "nvme0n1",
"BLOCK_SIZE": "4096",
"RO": "0",
"RM": "0",
"SIZE": "400088457216"
}
Changed in maas: | |
status: | Confirmed → Fix Committed |
John George (jog) wrote : | #7 |
I'm seeing the same issue in 2.1.3+bzr5573, with both the default or HWE commissioning kernel.
Andres Rodriguez (andreserl) wrote : | #8 |
We cannot fix this in 2.1 provided that this requires a migration and we cannot backport migrations. It would be interesting to see what created this and how we can address it.
The issue is that something changed in the OS as this was previously working.
John George (jog) wrote : | #10 |
When ssh'ing into the commissioning machine I can see that there are two links to nvme0n1. It seems like the first is the one that MAAS really needs to use. Does the commissioning script need to filter?
ubuntu@azurill:~$ ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 13 Feb 22 22:15 nvme-INTEL_
lrwxrwxrwx 1 root root 13 Feb 22 22:15 nvme-nvme.
lrwxrwxrwx 1 root root 9 Feb 22 22:15 scsi-3600000000
lrwxrwxrwx 1 root root 9 Feb 22 22:15 scsi-3600508b10
lrwxrwxrwx 1 root root 9 Feb 22 22:15 scsi-3600508b10
lrwxrwxrwx 1 root root 10 Feb 22 22:15 scsi-3600508b10
lrwxrwxrwx 1 root root 10 Feb 22 22:15 scsi-3600508b10
lrwxrwxrwx 1 root root 9 Feb 22 22:15 wwn-0x600000000
lrwxrwxrwx 1 root root 9 Feb 22 22:15 wwn-0x600508b10
lrwxrwxrwx 1 root root 9 Feb 22 22:15 wwn-0x600508b10
lrwxrwxrwx 1 root root 10 Feb 22 22:15 wwn-0x600508b10
lrwxrwxrwx 1 root root 10 Feb 22 22:15 wwn-0x600508b10
Andres Rodriguez (andreserl) wrote : | #11 |
This is the script that gathers the block devices. I looked into it and it seems that it is doing the right thing as it is getting the by-id link based on the /dev/nvme* path.
John George (jog) wrote : | #12 |
Here is the output from running that script.
http://
Andres Rodriguez (andreserl) wrote : | #13 |
I've attache a work around path in the bug, but it is an ugly work around. That said, I noticed some strange behavior. Links format are completely different to how the links format is handled for scsi devices:
For example: 'sdb' we see two links:
Checking that path [/dev/sdb] and is same as link [wwn-0x600508b1
Checking that path [/dev/sdb] and is same as link [scsi-3600508b1
For 'nvme' we also see two with completely different format:
Checking that path [/dev/nvme0n1] and is same as link [nvme-nvme.
Checking that path [/dev/nvme0n1] and is same as link [nvme-INTEL_
Dan Streetman (ddstreet) wrote : | #14 |
> Checking that path [/dev/nvme0n1] and is same as link [nvme-nvme.8086-
> 43564d443433343
this is the wwid symlink, created by:
SYMLINK+
> Checking that path [/dev/nvme0n1] and is same as link [nvme-
> INTEL_SSDPEDME4
this is the model/serial symlink, created by:
ENV{ID_
> This is the script that gathers the block devices. I looked into it and it seems that it is
> doing the right thing as it is getting the by-id link based on the /dev/nvme* path.
def _path_to_
"""Searches dev_disk_byid for a device symlinked to /dev/[path]"""
if os.path.
for link in os.listdir(
if os.path.
return None
this just searches all the symlinks in /dev/disk/by-id/ and uses the first one that points to the target device or partition. That's fine if you don't actually care about which of the symlinks you use.
> The result is being rejected because the file path is currently to long for the field.
well the max path size needs to be increased then.
Andres Rodriguez (andreserl) wrote : Re: [Bug 1665143] Re: commissioning does not discover block devices on HP ProLiant DL360 Gen9 servers | #15 |
Hi Dan,
Thanks for the explanation. Question inline:
On Thu, Feb 23, 2017 at 9:26 AM, Dan Streetman <
<email address hidden>> wrote:
> > Checking that path [/dev/nvme0n1] and is same as link [nvme-nvme.8086-
> > 43564d443433343
> 30304734-00000001]
>
> this is the wwid symlink, created by:
> SYMLINK+
>
> > Checking that path [/dev/nvme0n1] and is same as link [nvme-
> > INTEL_SSDPEDME4
>
> this is the model/serial symlink, created by:
> ENV{ID_
> SYMLINK+
>
What seems strange to me is that both links above completely differ in
format from those of a 'scsi' device, which is why I was comparing these to:
>
>
> > This is the script that gathers the block devices. I looked into it and
> it seems that it is
> > doing the right thing as it is getting the by-id link based on the
> /dev/nvme* path.
>
> def _path_to_
> """Searches dev_disk_byid for a device symlinked to /dev/[path]"""
> if os.path.
> for link in os.listdir(
> if os.path.
> os.path.
> return os.path.
> return None
>
>
> this just searches all the symlinks in /dev/disk/by-id/ and uses the first
> one that points to the target device or partition. That's fine if you
> don't actually care about which of the symlinks you use.
>
> > The result is being rejected because the file path is currently to
> long for the field.
>
> well the max path size needs to be increased then.
>
> --
> You received this bug notification because you are subscribed to MAAS.
> https:/
>
> Title:
> commissioning does not discover block devices on HP ProLiant DL360
> Gen9 servers
>
> To manage notifications about this bug go to:
> https:/
>
--
Andres Rodriguez (RoAkSoAx)
Ubuntu Server Developer
MSc. Telecom & Networking
Systems Engineer
Andres Rodriguez (andreserl) wrote : | #16 |
On Thu, Feb 23, 2017 at 9:26 AM, Dan Streetman <
<email address hidden>> wrote:
> > Checking that path [/dev/nvme0n1] and is same as link [nvme-nvme.8086-
> > 43564d443433343
> 30304734-00000001]
>
> this is the wwid symlink, created by:
> SYMLINK+
>
> > Checking that path [/dev/nvme0n1] and is same as link [nvme-
> > INTEL_SSDPEDME4
>
> this is the model/serial symlink, created by:
> ENV{ID_
> SYMLINK+
>
What seems strange to me is that both links above completely differ in
format from those of a 'scsi' device, which is why I was comparing these to:
For example:
sdb's [wwn-0x600508b1
8086-43564d4434
30304734-00000001]
or
sdb's [scsi-3600508b1
SSDPEDME400G4_
This seems a bit inconsistent to me, for example the symlink for sdb's does
not include Model/Serial, where as they do for nvme's. That alone is a
format difference on how the symlinks are being created and which is why I
was asking, as it seems weird to me.
Thanks.
>
>
> > This is the script that gathers the block devices. I looked into it and
> it seems that it is
> > doing the right thing as it is getting the by-id link based on the
> /dev/nvme* path.
>
> def _path_to_
> """Searches dev_disk_byid for a device symlinked to /dev/[path]"""
> if os.path.
> for link in os.listdir(
> if os.path.
> os.path.
> return os.path.
> return None
>
>
> this just searches all the symlinks in /dev/disk/by-id/ and uses the first
> one that points to the target device or partition. That's fine if you
> don't actually care about which of the symlinks you use.
>
> > The result is being rejected because the file path is currently to
> long for the field.
>
> well the max path size needs to be increased then.
>
> --
> You received this bug notification because you are subscribed to MAAS.
> https:/
>
> Title:
> commissioning does not discover block devices on HP ProLiant DL360
> Gen9 servers
>
> To manage notifications about this bug go to:
> https:/
>
--
Andres Rodriguez (RoAkSoAx)
Ubuntu Server Developer
MSc. Telecom & Networking
Systems Engineer
description: | updated |
description: | updated |
summary: |
- commissioning does not discover block devices on HP ProLiant DL360 Gen9 - servers + Commission scripts select the wrong nvme device link, then fail to + report any storage |
John George (jog) wrote : Re: Commission scripts select the wrong nvme device link, then fail to report any storage | #17 |
Please mark this bug critical, as it blocks all integration testing.
Dan Streetman (ddstreet) wrote : | #18 |
> This seems a bit inconsistent to me, for example the symlink for sdb's does
> not include Model/Serial, where as they do for nvme's. That alone is a
> format difference on how the symlinks are being created and which is why I
> was asking, as it seems weird to me.
there's no required format for any of the /dev/disk/by-id/ symlinks that I'm aware of.
tags: | added: sts |
summary: |
- Commission scripts select the wrong nvme device link, then fail to + Commission scripts select the wrong nvme device link, then fails to report any storage |
Andres Rodriguez (andreserl) wrote : | #19 |
I've attached a patch that can be applied in 2.1. https:/
John George (jog) wrote : | #20 |
I applied the patch to /usr/lib/
Storage was reported as expected, after re-commission of existing nodes; I also removed a node, re-enlisted and commissioned. The test was done with both the default and HWE 16.06 commissioning kernels.
Changed in maas: | |
importance: | Undecided → High |
Changed in maas: | |
status: | Fix Committed → Fix Released |
Launchpad Janitor (janitor) wrote : | #21 |
Status changed to 'Confirmed' because the bug affects multiple users.
Changed in udev (Ubuntu): | |
status: | New → Confirmed |
tags: | removed: cdo-qa-blocker |
affects: | udev (Ubuntu) → systemd (Ubuntu) |
Dan Streetman (ddstreet) wrote : | #22 |
marking as invalid for systemd as i believe the bug was in maas, per previous comments.
Changed in systemd (Ubuntu): | |
status: | Confirmed → Invalid |
Frmo the logs above:
2017-02-15 20:22:04 maasserver: [error] ####### ####### ####### ####### #### Exception: value too long for type character varying(100) ####### ####### ####### ##### python3/ dist-packages/ django/ db/backends/ utils.py" , line 64, in execute execute( sql, params)
######
2017-02-15 20:22:04 maasserver: [error] Traceback (most recent call last):
File "/usr/lib/
return self.cursor.
psycopg2.DataError: value too long for type character varying(100)
The above exception was the direct cause of the following exception:
Traceback (most recent call last): python3/ dist-packages/ django/ core/handlers/ base.py" , line 132, in get_response callback( request, *callback_args, **callback_kwargs) python3/ dist-packages/ maasserver/ utils/views. py", line 177, in view_atomic_ with_post_ commit_ savepoint python3. 5/contextlib. py", line 30, in inner python3/ dist-packages/ maasserver/ api/support. py", line 59, in __call__ python3/ dist-packages/ django/ views/decorator s/vary. py", line 21, in inner_func python3/ dist-packages/ piston3/ resource. py", line 190, in __call__ handler( e, request, meth, em_format) python3/ dist-packages/ piston3/ resource. py", line 188, in __call__ python3/ dist-packages/ maasserver/ api/support. py", line 298, in dispatch python3/ dist-packages/ metadataserver/ api.py" , line 704, in signal python3/ dist-packages/ metadataserver/ api.py" , line 567, in _process_ commissioning commissioning_ script_ set, request, status) python3/ dist-packages/ metadataserver/ api.py" , line 532, in _store_results result. store_result( **args) python3/ dist-packages/ metadataserver/ models/ scriptresult. py", line 144, in store_result status= self.exit_ status) python3/ dist-packages/ metadataserver/ models/ commissioningsc ript.py" , line 348, in update_ node_physical_ block_devices python3/ dist-packages/ django/ db/models/ manager. py", line 127, in manager_method self.get_ queryset( ), name)(*args, **kwargs) python3/ dist-packages/ django/ db/models/ query.py" , line 348, in create save(force_ insert= True, using=self.db) python3/ dist-packages/ maasserver/ models/ cleansave. py", line 29, in save python3/ dist-packages/ maasserver/ models/ timestampedmode l.py", line 72, in save edModel, self).save(*args, **kwargs) python3/ dist-packages/ django/ db/models/ base.py" , line 734, in save update= force_update, update_ fields= update_ fields) python3/ dist-packages/ django/ db/models/ base.py" ...
File "/usr/lib/
response = wrapped_
File "/usr/lib/
return view_atomic(*args, **kwargs)
File "/usr/lib/
return func(*args, **kwds)
File "/usr/lib/
response = upcall(request, *args, **kwargs)
File "/usr/lib/
response = func(*args, **kwargs)
File "/usr/lib/
result = self.error_
File "/usr/lib/
result = meth(request, *args, **kwargs)
File "/usr/lib/
return function(self, request, *args, **kwargs)
File "/usr/lib/
target_status = process(node, request, status)
File "/usr/lib/
node, node.current_
File "/usr/lib/
script_
File "/usr/lib/
exit_
File "/usr/lib/
serial=serial,
File "/usr/lib/
return getattr(
File "/usr/lib/
obj.
File "/usr/lib/
return super(CleanSave, self).save(*args, **kwargs)
File "/usr/lib/
return super(Timestamp
File "/usr/lib/
force_
File "/usr/lib/