def get_mp_formset()

in community/front-end/ofe/website/ghpcfe/views/clusters.py [0:0]


    def get_mp_formset(self, **kwargs):
        def formfield_cb(model_field, **kwargs):
            field = model_field.formfield(**kwargs)
            cluster = self.object
            
            if model_field.name == "export":
                if cluster.shared_fs is None:
                    # Create and save the shared filesystem, exports, and mount points
                    shared_fs = Filesystem(
                        name=f"{cluster.name}-sharedfs",
                        cloud_credential=cluster.cloud_credential,
                        cloud_id=cluster.cloud_id,
                        cloud_state=cluster.cloud_state,
                        cloud_region=cluster.cloud_region,
                        cloud_zone=cluster.cloud_zone,
                        subnet=cluster.subnet,
                        fstype="n",
                        impl_type=FilesystemImpl.BUILT_IN,
                    )
                    shared_fs.save()

                    export = FilesystemExport(filesystem=shared_fs, export_name="/opt/cluster")
                    export.save()
                    export = FilesystemExport(filesystem=shared_fs, export_name="/home")
                    export.save()

                    cluster.shared_fs = shared_fs
                    cluster.save()

                    # Create and save mount points
                    export = cluster.shared_fs.exports.all()[0]
                    mp = MountPoint(
                        export=export,
                        cluster=cluster,
                        mount_order=0,
                        mount_options="defaults,nofail,nosuid",
                        mount_path="/opt/cluster",
                    )
                    mp.save()
                    export = cluster.shared_fs.exports.all()[1]
                    mp = MountPoint(
                        export=export,
                        cluster=cluster,
                        mount_order=1,
                        mount_options="defaults,nofail,nosuid",
                        mount_path="/home",
                    )
                    mp.save()
            
            # Continue with the usual logic for handling exports
            if cluster.shared_fs is not None:
                fsquery = (
                    Filesystem.objects.exclude(
                        impl_type=FilesystemImpl.BUILT_IN
                    )
                    .filter(cloud_state__in=["m", "i"])
                    .values_list("pk", flat=True)
                )
                # Add back our cluster's filesystem
                fsystems = list(fsquery) + [cluster.shared_fs.id]
                field.queryset = FilesystemExport.objects.filter(
                    filesystem__in=fsystems
                )
            
            return field


        # This creates a new class on the fly
        FormClass = inlineformset_factory(  # pylint: disable=invalid-name
            Cluster,
            MountPoint,
            form=ClusterMountPointForm,
            formfield_callback=formfield_cb,
            can_delete=True,
            extra=0,
        )

        if self.request.POST:
            kwargs["data"] = self.request.POST
        return FormClass(instance=self.object, **kwargs)