Fixes for collaborator field 43/72943/6
authorSawyer Bergeron <sbergeron@iol.unh.edu>
Thu, 30 Sep 2021 20:33:01 +0000 (16:33 -0400)
committerSawyer Bergeron <sbergeron@iol.unh.edu>
Fri, 1 Oct 2021 18:42:32 +0000 (14:42 -0400)
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
Change-Id: I3dbdedf26fa84617ea7680a0f99e032d88f1ea98
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
src/api/models.py
src/booking/quick_deployer.py
src/resource_inventory/models.py

index ec163a1..1f03deb 100644 (file)
@@ -378,17 +378,17 @@ class GeneratedCloudConfig(models.Model):
         """
         user_array = ["default"]
         users = list(self.booking.collaborators.all())
-        users.append(self.booking.owner.userprofile)
+        users.append(self.booking.owner)
         for collaborator in users:
             userdict = {}
 
             # TODO: validate if usernames are valid as linux usernames (and provide an override potentially)
-            userdict['name'] = self._normalize_username(collaborator.user.username)
+            userdict['name'] = self._normalize_username(collaborator.username)
 
             userdict['groups'] = "sudo"
             userdict['sudo'] = "ALL=(ALL) NOPASSWD:ALL"
 
-            userdict['ssh_authorized_keys'] = [self._get_ssh_string(collaborator.user.username)]
+            userdict['ssh_authorized_keys'] = [self._get_ssh_string(collaborator.username)]
 
             user_array.append(userdict)
 
index 1fd6a9c..2ab18a6 100644 (file)
@@ -269,7 +269,7 @@ def create_from_form(form, request):
     booking.pdf = PDFTemplater.makePDF(booking)
 
     for collaborator in users_field:  # list of Users (not UserProfile)
-        booking.collaborators.add(collaborator)
+        booking.collaborators.add(collaborator.user)
 
     booking.save()
 
index 941c38f..71046a8 100644 (file)
@@ -170,7 +170,8 @@ class CloudInitFile(models.Model):
     @classmethod
     def create(cls, text="", priority=0):
         prepended_text = "#cloud-config\n"
-        prepended_text = prepended_text + yaml.dump(CloudInitFile.merge_strategy()) + "\n"
+        mstrat = CloudInitFile.merge_strategy()
+        prepended_text = prepended_text + yaml.dump({"merge_strategy": mstrat}) + "\n"
         print("in cloudinitfile create")
         text = prepended_text + text
         cloud_dict = {
@@ -184,7 +185,7 @@ class CloudInitFile(models.Model):
                 },
                 "datasource_list": ["None"],
             }
-        return CloudInitFile.objects.create(priority=priority, text=json.dumps(cloud_dict))
+        return CloudInitFile.objects.create(priority=priority, text=yaml.dump(cloud_dict))
 
 class ResourceTemplate(models.Model):
     """