~maas-committers/maas/trunk

« back to all changes in this revision

Viewing changes to src/maasserver/models/node.py

[r=allenap][bug=][author=jtv] Make commissioning nodes download their commissioning scripts (such as lshw) from the metadata service.  And componentize the big commissioning script.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
    repeat,
25
25
    )
26
26
import math
27
 
import os
28
27
import random
29
28
from string import whitespace
30
29
from uuid import uuid1
31
30
 
32
 
from django.conf import settings
33
31
from django.contrib.auth.models import User
34
32
from django.core.exceptions import (
35
33
    PermissionDenied,
634
632
    def start_commissioning(self, user):
635
633
        """Install OS and self-test a new node."""
636
634
        # Avoid circular imports.
 
635
        from metadataserver.commissioning.user_data import generate_user_data
637
636
        from metadataserver.models import NodeCommissionResult
638
637
 
639
 
        path = settings.COMMISSIONING_SCRIPT
640
 
        if not os.path.exists(path):
641
 
            raise ValidationError(
642
 
                "Commissioning script is missing: %s" % path)
643
 
        with open(path, 'r') as f:
644
 
            commissioning_user_data = f.read()
645
 
 
 
638
        commissioning_user_data = generate_user_data()
646
639
        NodeCommissionResult.objects.clear_results(self)
647
640
        self.status = NODE_STATUS.COMMISSIONING
648
641
        self.owner = user