def core_index(request):
    sites = Site.objects.all()

    def width_helper(text):
        return len(text) * 8  # hackhackhack

    def get_security_zone(network):
        kv = network.keyvalue_set.filter(key='security_zone')
        if kv:
            return to_a(kv[0].value, kv[0])
        else:
            return ''

    table_meta_template = {
        'caption':
        '',
        'vlans':
        None,
        'sites':
        None,
        'headers': [('name', lambda v: to_a(v.name, v)),
                    ('number', lambda v: to_a(v.number, v))],
        'network_data': [
            # This will be applied per network in a vlan and
            # wll be the stored in the td
            ('security_zone', get_security_zone),
            ('network', lambda n: to_a(n.network_str, n))
        ]
    }

    tables = []

    all_names = (Site.objects.order_by('name').values_list(
        'name', flat=True).distinct())

    def make_table(caption, sites):
        nets = []
        for site in sites:
            nets.append(
                site.network_set.filter(site=site).filter(~Q(vlan=None)))
        flat_nets = list(itertools.chain(*nets))

        vlans = set(map(lambda n: n.vlan, flat_nets))
        table = table_meta_template.copy()
        table['caption'] = caption
        table['vlans'] = vlans
        table['sites'] = sites
        return table

    for site_name in all_names:
        sites = Site.objects.filter(name=site_name)
        tables.append(make_table(site_name.title(), sites))

    return render(request, 'core/core_index.html', {
        'sites': sites,
        'tables': tables,
        'width_helper': width_helper
    })
 def details(self):
     details = [
         ('Name', self.full_name),
     ]
     if self.parent:
         details.append(
             ('Parent Site', to_a(self.parent.full_name, self.parent)))
     else:
         details.append(('All sites',
                         to_a('Global Site View',
                              reverse('site-list'),
                              use_absolute_url=False)))
     return details
Exemplo n.º 3
0
    def details(self):
        details = [
            ('Network', self.network_str),
        ]
        if self.vlan:
            details.append(
                ('Vlan',
                 to_a("{0}:{1}".format(self.vlan.name, self.vlan.number),
                      self.vlan)))
        if self.site:
            details.append(('Site', to_a(self.site.full_name, self.site)))

        return details
Exemplo n.º 4
0
    def details(self):
        r = [
            # Name and site are always present
            ('Name', self.name),
            (
                'Site',
                to_a(self.site.full_name, self.site)
                if self.site else "No site"
            )
        ]
        if self.alias:
            r.append(('Alias', self.get_attr('alias')))
        if self.impact:
            r.append(('Impact', self.get_attr('impact')))
        if self.used_by:
            r.append(('Used By', self.get_attr('used_by')))
        if self.category:
            r.append(('Category', self.get_attr('category')))
        if self.tech_owner:
            r.append(('Tech Owner', mozillian_a(self.get_attr('tech_owner'))))
        if self.business_owner:
            r.append((
                'Business Owner',
                mozillian_a(self.get_attr('business_owner'))
            ))
        if self.description:
            r.append(('Description', self.get_attr('description')))
        if self.parent_service:
            r.append((
                'Parent Service',
                to_a(self.parent_service.name, self.parent_service)
            ))

        if self.providers.exists():
            providers = ', '.join([
                to_a(str(d.provider), d.provider)
                for d in self.providers.all()
            ])
            r.append(('Depends on', providers))

        if self.dependants.exists():
            dependants = ', '.join([
                to_a(str(d.dependant), d.dependant)
                for d in self.dependants.all()
            ])
            r.append(('Depended on by', dependants))

        if self.allocations.exists():
            r.append(('IT Owners', self.get_allocations_str()))

        return r
Exemplo n.º 5
0
 def details(self):
     details = [
         ('Name', self.full_name),
     ]
     if self.parent:
         details.append(
             ('Parent Site', to_a(self.parent.full_name, self.parent))
         )
     else:
         details.append(
             ('All sites', to_a('Global Site View', reverse('site-list'),
                                use_absolute_url=False))
         )
     return details
Exemplo n.º 6
0
    def details(self):
        details = [("Network", self.network_str), ("Reserved", self.is_reserved)]
        if self.vlan:
            details.append(("Vlan", to_a("{0}:{1}".format(self.vlan.name, self.vlan.number), self.vlan)))
        else:
            details.append(("Vlan", "None"))

        if self.site:
            details.append(("Site", to_a(self.site.full_name, self.site)))
        else:
            details.append(("Site", "None"))

        details.append(("DHCP Scope Name", self.calc_dhcp_scope_name() or "No Valid Scope"))

        return details
Exemplo n.º 7
0
def core_index(request):
    sites = Site.objects.all()

    def width_helper(text):
        return len(text) * 8  # hackhackhack

    def get_security_zone(network):
        kv = network.keyvalue_set.filter(key="security_zone")
        if kv:
            return to_a(kv[0].value, kv[0])
        else:
            return ""

    table_meta_template = {
        "caption": "",
        "vlans": None,
        "sites": None,
        "headers": [("name", lambda v: to_a(v.name, v)), ("number", lambda v: to_a(v.number, v))],
        "network_data": [
            # This will be applied per network in a vlan and
            # wll be the stored in the td
            ("security_zone", get_security_zone),
            ("network", lambda n: to_a(n.network_str, n)),
        ],
    }

    tables = []

    all_names = Site.objects.order_by("name").values_list("name", flat=True).distinct()

    def make_table(caption, sites):
        nets = []
        for site in sites:
            nets.append(site.network_set.filter(site=site).filter(~Q(vlan=None)))
        flat_nets = list(itertools.chain(*nets))

        vlans = set(map(lambda n: n.vlan, flat_nets))
        table = table_meta_template.copy()
        table["caption"] = caption
        table["vlans"] = vlans
        table["sites"] = sites
        return table

    for site_name in all_names:
        sites = Site.objects.filter(name=site_name)
        tables.append(make_table(site_name.title(), sites))

    return render(request, "core/core_index.html", {"sites": sites, "tables": tables, "width_helper": width_helper})
Exemplo n.º 8
0
    def details(self):
        r = [
            # Name and site are always present
            ('Name', self.name),
            ('Site',
             to_a(self.site.full_name, self.site) if self.site else "No site")
        ]
        if self.alias:
            r.append(('Alias', self.get_attr('alias')))
        if self.impact:
            r.append(('Impact', self.get_attr('impact')))
        if self.used_by:
            r.append(('Used By', self.get_attr('used_by')))
        if self.category:
            r.append(('Category', self.get_attr('category')))
        if self.tech_owner:
            r.append(('Tech Owner', mozillian_a(self.get_attr('tech_owner'))))
        if self.business_owner:
            r.append(('Business Owner',
                      mozillian_a(self.get_attr('business_owner'))))
        if self.description:
            r.append(('Description', self.get_attr('description')))
        if self.parent_service:
            r.append(('Parent Service',
                      to_a(self.parent_service.name, self.parent_service)))

        if self.providers.exists():
            providers = ', '.join([
                to_a(str(d.provider), d.provider)
                for d in self.providers.all()
            ])
            r.append(('Depends on', providers))

        if self.dependants.exists():
            dependants = ', '.join([
                to_a(str(d.dependant), d.dependant)
                for d in self.dependants.all()
            ])
            r.append(('Depended on by', dependants))

        if self.allocations.exists():
            r.append(('IT Owners', self.get_allocations_str()))

        return r
Exemplo n.º 9
0
    def details(self):
        details = [
            ('Network', self.network_str),
            ('Reserved', str(self.is_reserved)),
        ]
        if self.vlan:
            details.append(
                ('Vlan',
                 to_a("{0}:{1}".format(self.vlan.name, self.vlan.number),
                      self.vlan)))
        else:
            details.append(('Vlan', 'None'))

        if self.site:
            details.append(('Site', to_a(self.site.full_name, self.site)))
        else:
            details.append(('Site', 'None'))

        return details
    def details(self):
        details = [
            ('Network', self.network_str),
            ('Reserved', self.is_reserved),
        ]
        if self.vlan:
            details.append(
                ('Vlan',
                 to_a("{0}:{1}".format(self.vlan.name, self.vlan.number),
                      self.vlan)))
        else:
            details.append(('Vlan', 'None'))

        if self.site:
            details.append(('Site', to_a(self.site.full_name, self.site)))
        else:
            details.append(('Site', 'None'))

        details.append((
            'DHCP Scope Name',
            self.calc_dhcp_scope_name() or 'No Valid Scope'
        ))

        return details
Exemplo n.º 11
0
 def get_security_zone(network):
     kv = network.keyvalue_set.filter(key="security_zone")
     if kv:
         return to_a(kv[0].value, kv[0])
     else:
         return ""
 def get_security_zone(network):
     kv = network.keyvalue_set.filter(key='security_zone')
     if kv:
         return to_a(kv[0].value, kv[0])
     else:
         return ''
Exemplo n.º 13
0
 def details(self):
     details = [("Name", self.full_name)]
     if self.parent:
         details.append(("Parent Site", to_a(self.parent.full_name, self.parent)))
     return details