Removing project content and adding a note
[laas.git] / src / resource_inventory / pdf_templater.py
diff --git a/src/resource_inventory/pdf_templater.py b/src/resource_inventory/pdf_templater.py
deleted file mode 100644 (file)
index c4b22fe..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-##############################################################################
-# Copyright (c) 2018 Parker Berberian, Sawyer Bergeron, and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-
-from django.template.loader import render_to_string
-import booking
-from resource_inventory.models import Server
-
-
-class PDFTemplater:
-    """Utility class to create a full PDF yaml file."""
-
-    @classmethod
-    def makePDF(cls, booking):
-        """Fill the pod descriptor file template with info about the resource."""
-        template = "dashboard/pdf.yaml"
-        info = {}
-        info['details'] = cls.get_pdf_details(booking.resource)
-        try:
-            info['jumphost'] = cls.get_pdf_jumphost(booking)
-        except Exception:
-            # filling in jumphost info can be optional in some cases, this shouldn't be a hard error
-            info['jumphost'] = {}
-        info['nodes'] = cls.get_pdf_nodes(booking)
-
-        return render_to_string(template, context=info)
-
-    @classmethod
-    def get_pdf_details(cls, resource):
-        """Info for the "details" section."""
-        details = {}
-        owner = "Anon"
-        email = "email@mail.com"
-        resource_lab = resource.template.lab
-        lab = resource_lab.name
-        location = resource_lab.location
-        pod_type = "development"
-        link = resource_lab.lab_info_link
-
-        try:
-            # try to get more specific info that may fail, we dont care if it does
-            booking_owner = booking.models.Booking.objects.get(resource=resource).owner
-            owner = booking_owner.username
-            email = booking_owner.userprofile.email_addr
-        except Exception:
-            pass
-
-        details['contact'] = email
-        details['lab'] = lab
-        details['link'] = link
-        details['owner'] = owner
-        details['location'] = location
-        details['type'] = pod_type
-
-        return details
-
-    @classmethod
-    def get_jumphost(cls, booking):
-        """Return the host designated as the Jumphost for the booking."""
-        jumphost = None
-        if booking.opnfv_config:
-            jumphost_opnfv_config = booking.opnfv_config.host_opnfv_config.get(
-                role__name__iexact="jumphost"
-            )
-            jumphost = booking.resource.hosts.get(config=jumphost_opnfv_config.host_config)
-        else:  # if there is no opnfv config, use headnode
-            jumphost = Server.objects.filter(
-                bundle=booking.resource,
-                config__is_head_node=True
-            ).first()
-
-        return jumphost
-
-    @classmethod
-    def get_pdf_jumphost(cls, booking):
-        """Return a dict of all the info for the "jumphost" section."""
-        jumphost = cls.get_jumphost(booking)
-        jumphost_info = cls.get_pdf_host(jumphost)
-        jumphost_info['os'] = jumphost.config.image.os.name
-        return jumphost_info
-
-    @classmethod
-    def get_pdf_nodes(cls, booking):
-        """Return a list of all the "nodes" (every host except jumphost)."""
-        pdf_nodes = []
-        nodes = set(Server.objects.filter(bundle=booking.resource))
-        nodes.discard(cls.get_jumphost(booking))
-
-        for node in nodes:
-            pdf_nodes.append(cls.get_pdf_host(node))
-
-        return pdf_nodes
-
-    @classmethod
-    def get_pdf_host(cls, host):
-        """
-        Gather all needed info about a host.
-
-        returns a dictionary
-        """
-        host_info = {}
-        host_info['name'] = host.name
-        host_info['node'] = cls.get_pdf_host_node(host)
-        host_info['disks'] = []
-        for disk in host.profile.storageprofile.all():
-            host_info['disks'].append(cls.get_pdf_host_disk(disk))
-
-        host_info['interfaces'] = []
-        for interface in host.interfaces.all():
-            host_info['interfaces'].append(cls.get_pdf_host_iface(interface))
-
-        host_info['remote'] = cls.get_pdf_host_remote_management(host)
-
-        return host_info
-
-    @classmethod
-    def get_pdf_host_node(cls, host):
-        """Return "node" info for a given host."""
-        d = {}
-        d['type'] = "baremetal"
-        d['vendor'] = host.vendor
-        d['model'] = host.model
-        d['memory'] = str(host.profile.ramprofile.first().amount) + "G"
-
-        cpu = host.profile.cpuprofile.first()
-        d['arch'] = cpu.architecture
-        d['cpus'] = cpu.cpus
-        d['cores'] = cpu.cores
-        cflags = cpu.cflags
-        if cflags and cflags.strip():
-            d['cpu_cflags'] = cflags
-        else:
-            d['cpu_cflags'] = "none"
-
-        return d
-
-    @classmethod
-    def get_pdf_host_disk(cls, disk):
-        """Return a dict describing the given disk."""
-        disk_info = {}
-        disk_info['name'] = disk.name
-        disk_info['capacity'] = str(disk.size) + "G"
-        disk_info['type'] = disk.media_type
-        disk_info['interface'] = disk.interface
-        disk_info['rotation'] = disk.rotation
-        return disk_info
-
-    @classmethod
-    def get_pdf_host_iface(cls, interface):
-        """Return a dict describing given interface."""
-        iface_info = {}
-        iface_info['features'] = "none"
-        iface_info['mac_address'] = interface.mac_address
-        iface_info['name'] = interface.profile.name
-        speed = str(int(interface.profile.speed / 1000)) + "gb"
-        iface_info['speed'] = speed
-        return iface_info
-
-    @classmethod
-    def get_pdf_host_remote_management(cls, host):
-        """Get the remote params of the host."""
-        man = host.remote_management
-        mgmt = {}
-        mgmt['address'] = man.address
-        mgmt['mac_address'] = man.mac_address
-        mgmt['pass'] = man.password
-        mgmt['type'] = man.management_type
-        mgmt['user'] = man.user
-        mgmt['versions'] = [man.versions]
-        return mgmt