[Bug 1028068] [NEW] Enlistment failure leaves node in cobbler, not in MAAS

Andres Rodriguez andreserl at ubuntu-pe.org
Mon Jul 23 18:04:34 UTC 2012


Public bug reported:

If enlistment from a machine with multiple NIC's fail due to duplicated
MAC address, then a system is left in cobbler but not in MAAS.

curl --data
op=new&mac_addresses=2c:76:8a:4f:64:20&mac_addresses=2c:76:8a:4f:64:21&mac_addresses=2c:76:8a:4f:64:22&mac_addresses=2c:76:8a:4f:64:23&mac_addresses=2c:76:8a:4f:64:21&hostname=&architecture=amd64&after_commissioning_action=0
http://localhost/MAAS/api/1.0/nodes/

ubuntu at cofgod:~$ tail -f /var/log/maas/maas.log
ERROR 2012-07-23 14:04:03,546 maas.maasserver ################################ Exception: {'mac_address': [u'Mac address with this Mac address already exists.']} ################################
ERROR 2012-07-23 14:04:03,547 maas.maasserver Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/decorators/vary.py", line 22, in inner_func
    response = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 166, in __call__
    result = self.error_handler(e, request, meth, em_format)
  File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 164, in __call__
    result = meth(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 251, in dispatcher
    self, request, request.method, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 193, in perform_api_operation
    return method(handler, request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 438, in new
    return create_node(request)
  File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 418, in create_node
    return form.save()
  File "/usr/lib/python2.7/dist-packages/maasserver/forms.py", line 236, in save
    node.add_mac_address(mac)
  File "/usr/lib/python2.7/dist-packages/maasserver/models.py", line 572, in add_mac_address
    mac.save()
  File "/usr/lib/python2.7/dist-packages/maasserver/models.py", line 113, in save
    self.full_clean()
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 828, in full_clean
    raise ValidationError(errors)
ValidationError: {'mac_address': [u'Mac address with this Mac address already exists.']}


ubuntu at cofgod:~$ sudo cobbler system list
   default
   node-c91c5846-d4f0-11e1-a3db-2c768a4f6420

** Affects: maas
     Importance: Undecided
         Status: New

** Affects: maas (Ubuntu)
     Importance: Undecided
         Status: New

** Summary changed:

- Enlistment fails if node has multiple NICS
+ Enlistment failure leaves node in cobbler, not in MAAS

** Description changed:

- Enlistment of machines fails from the API if the machine to be enlisted
- has multiple NIC's:
+ If enlistment from a machine with multiple NIC's fail due to duplicated
+ MAC address, then a system is left in cobbler but not in MAAS.
  
- ubuntu at cofgod:~$ tail -f /var/log/maas/maas.log 
+ curl --data
+ op=new&mac_addresses=2c:76:8a:4f:64:20&mac_addresses=2c:76:8a:4f:64:21&mac_addresses=2c:76:8a:4f:64:22&mac_addresses=2c:76:8a:4f:64:23&mac_addresses=2c:76:8a:4f:64:21&hostname=&architecture=amd64&after_commissioning_action=0
+ http://localhost/MAAS/api/1.0/nodes/
+ 
+ ubuntu at cofgod:~$ tail -f /var/log/maas/maas.log
  ERROR 2012-07-23 14:04:03,546 maas.maasserver ################################ Exception: {'mac_address': [u'Mac address with this Mac address already exists.']} ################################
  ERROR 2012-07-23 14:04:03,547 maas.maasserver Traceback (most recent call last):
-   File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response
-     response = callback(request, *callback_args, **callback_kwargs)
-   File "/usr/lib/python2.7/dist-packages/django/views/decorators/vary.py", line 22, in inner_func
-     response = func(*args, **kwargs)
-   File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 166, in __call__
-     result = self.error_handler(e, request, meth, em_format)
-   File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 164, in __call__
-     result = meth(request, *args, **kwargs)
-   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 251, in dispatcher
-     self, request, request.method, *args, **kwargs)
-   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 193, in perform_api_operation
-     return method(handler, request, *args, **kwargs)
-   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 438, in new
-     return create_node(request)
-   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 418, in create_node
-     return form.save()
-   File "/usr/lib/python2.7/dist-packages/maasserver/forms.py", line 236, in save
-     node.add_mac_address(mac)
-   File "/usr/lib/python2.7/dist-packages/maasserver/models.py", line 572, in add_mac_address
-     mac.save()
-   File "/usr/lib/python2.7/dist-packages/maasserver/models.py", line 113, in save
-     self.full_clean()
-   File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 828, in full_clean
-     raise ValidationError(errors)
+   File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response
+     response = callback(request, *callback_args, **callback_kwargs)
+   File "/usr/lib/python2.7/dist-packages/django/views/decorators/vary.py", line 22, in inner_func
+     response = func(*args, **kwargs)
+   File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 166, in __call__
+     result = self.error_handler(e, request, meth, em_format)
+   File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 164, in __call__
+     result = meth(request, *args, **kwargs)
+   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 251, in dispatcher
+     self, request, request.method, *args, **kwargs)
+   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 193, in perform_api_operation
+     return method(handler, request, *args, **kwargs)
+   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 438, in new
+     return create_node(request)
+   File "/usr/lib/python2.7/dist-packages/maasserver/api.py", line 418, in create_node
+     return form.save()
+   File "/usr/lib/python2.7/dist-packages/maasserver/forms.py", line 236, in save
+     node.add_mac_address(mac)
+   File "/usr/lib/python2.7/dist-packages/maasserver/models.py", line 572, in add_mac_address
+     mac.save()
+   File "/usr/lib/python2.7/dist-packages/maasserver/models.py", line 113, in save
+     self.full_clean()
+   File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 828, in full_clean
+     raise ValidationError(errors)
  ValidationError: {'mac_address': [u'Mac address with this Mac address already exists.']}
+ 
+ 
+ ubuntu at cofgod:~$ sudo cobbler system list
+    default
+    node-c91c5846-d4f0-11e1-a3db-2c768a4f6420

** Also affects: maas
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to maas in Ubuntu.
https://bugs.launchpad.net/bugs/1028068

Title:
  Enlistment failure leaves node in cobbler, not in MAAS

To manage notifications about this bug go to:
https://bugs.launchpad.net/maas/+bug/1028068/+subscriptions



More information about the Ubuntu-server-bugs mailing list