Ejemplo n.º 1
0
def key_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/passwords/display_passwordkey.html', 'password')
    pm.section('password')

    pk = pm.setVar('password_key', pm.object_store.getOID(oid))
    pm.path(pk)

    view = pk.getParent('view')
    view_tree = view.parent
    user_manager = view_tree.user_manager
    user_list = []
    
    # Enumerate list of users connected to the key
    if request.session['administrator']:
        for users in user_manager.listChildren():
            try:
                username = users.username
                for subkey in users.listChildren(include=['sub key']):
                    if subkey.password_key is pk:
                        user_list.append(users)
            except:
                continue

    pm.render_var['user_list'] = user_list
    pm.render_var['parent'] = pk.parent
    pm.render_var['password_key_list'] = pk.parent.listChildren(include = ['password key'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(pk)
    return pm.render()
Ejemplo n.º 2
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/networktrees/networks/display.html')
    network = pm.object_store.getOID(oid)
    network_tree = network.getNetworkTree()
#    pm.render_var['network_tree_list'] = network_tree.parent.listChildren(include = ['network tree'])

    pm.render_var['browsable_path'] = []
    pm.render_var['network_tree'] = network_tree
    pm.render_var['network'] = network
    pm.render_var['template_list'] = network.listChildren(include = ['device template', 'network template'])
    pm.render_var['permission_list'] = network.listChildren(include = ['permission'])
    if request.GET.get('display_missing', '') == 'true':
        pm.render_var['network_list'] = list(network.listNetworks(include_missing = True))
    else:
        pm.render_var['network_list'] = list(network.listNetworks())
    for n in pm.render_var['network_list']:
        n.device_association_list = make_device_association_list(n)
    pm.render_var['network_range_list'] = network.listNetworkRanges()
    pm.render_var['attribute_list'] = attribute.parse_attributes(network)
    pm.render_var['config_list'] = config.parse_config(network)
    pm.render_var['device_list'] = network.listReferences(include = ['device', 'device category'])
    pm.render_var['template_add_type'] = 'network'
    assoc_list = make_device_association_list(network)
    pm.render_var['device_association_list'] = assoc_list
    pm.path(network)

    if pm.tagged_oid and pm.tagged_oid.class_name in ['ipv4 network', 'ipv6 network']:
        if network == network_tree:
            tagged_network_tree = pm.tagged_oid.getNetworkTree()
            if tagged_network_tree != network_tree:
                if tagged_network_tree.protocol == network_tree.protocol:
                    pm.render_var['valid_tag_target'] = True

    return pm.render()
Ejemplo n.º 3
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user.html')

    user = pm.setVar('user', pm.object_store.getOID(oid))

    # Set a render variable to indicate if the user has logged in before based
    # on whether or not they have a public key.
    user_pk = user.listChildren(include=['public key'])
    if not len(user_pk):
        has_public_key = False
    else:
        has_public_key = True
    has_logged_in = pm.setVar('has_logged_in', has_public_key)

    pm.render_var['attribute_list'] = attribute.parse_attributes(user)
    subkey_list = []
    for subkey in user.listChildren(include=['sub key']):
        try:
            pw_key = subkey.password_key
        except siptracklib.errors.NonExistent as e:
            subkey_list.append({'oid': subkey.oid, 'exists': False})
            continue
        subkey_list.append(subkey)

    # Sort the list of subkeys to easier find them
    sorted_subkey_list = sorted(
        subkey_list,
        key=lambda k: k.password_key.attributes.get('name')
    )

    pm.render_var['subkey_list'] = sorted_subkey_list
    pm.path(user)
    return pm.render()
Ejemplo n.º 4
0
def key_display(request, oid):
    pm = helpers.PageManager(request,
                             'stweb/passwords/display_passwordkey.html',
                             'password')
    pm.section('password')

    pk = pm.setVar('password_key', pm.object_store.getOID(oid))
    pm.path(pk)

    view = pk.getParent('view')
    view_tree = view.parent
    user_manager = view_tree.user_manager
    user_list = []

    # Enumerate list of users connected to the key
    if request.session['administrator']:
        for users in user_manager.listChildren():
            try:
                username = users.username
                for subkey in users.listChildren(include=['sub key']):
                    if subkey.password_key is pk:
                        user_list.append(users)
            except:
                continue

    pm.render_var['user_list'] = user_list
    pm.render_var['parent'] = pk.parent
    pm.render_var['password_key_list'] = pk.parent.listChildren(
        include=['password key'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(pk)
    return pm.render()
Ejemplo n.º 5
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/events/display_python_rule.html')

    node = pm.setVar('rule', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.path(node)
    return pm.render()
Ejemplo n.º 6
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user.html')

    user = pm.setVar('user', pm.object_store.getOID(oid))
    pm.render_var['attribute_list'] = attribute.parse_attributes(user)
    pm.render_var['subkey_list'] = user.listChildren(include = ['sub key'])
    pm.path(user)
    return pm.render()
Ejemplo n.º 7
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/events/display_python_rule.html')

    node = pm.setVar('rule', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.path(node)
    return pm.render()
Ejemplo n.º 8
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/counters/display.html')

    counter = pm.setVar('counter', pm.object_store.getOID(oid))
    pm.render_var['parent'] = counter.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(counter)
    pm.path(counter)
    return pm.render()
Ejemplo n.º 9
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/commands/display_command.html')

    node = pm.setVar('command', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.path(node)
    return pm.render()
Ejemplo n.º 10
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/counters/display.html')

    counter = pm.setVar('counter', pm.object_store.getOID(oid))
    pm.render_var['parent'] = counter.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(counter)
    pm.path(counter)
    return pm.render()
Ejemplo n.º 11
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/permissions/display.html')

    permission = pm.setVar('permission', pm.object_store.getOID(oid))
    pm.render_var['parent'] = permission.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(permission)
    pm.render_var['permission'] = permission
    pm.path(permission)
    return pm.render()
Ejemplo n.º 12
0
def group_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_group.html')
    pm.section('user')

    group = pm.object_store.getOID(oid)
    pm.render_var['group'] = group
    pm.render_var['attribute_list'] = attribute.parse_attributes(group)
    pm.path(group)
    return pm.render()
Ejemplo n.º 13
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/permissions/display.html')

    permission = pm.setVar('permission', pm.object_store.getOID(oid))
    pm.render_var['parent'] = permission.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(permission)
    pm.render_var['permission'] = permission
    pm.path(permission)
    return pm.render()
Ejemplo n.º 14
0
def display(request, oid):
    pm = helpers.PageManager(request,
                             'stweb/views/commands/display_command.html')

    node = pm.setVar('command', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.path(node)
    return pm.render()
Ejemplo n.º 15
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/commands/display_queue.html')

    node = pm.setVar('queue', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.render_var['command_list'] = node.listChildren(include = ['command'])
    pm.path(node)
    return pm.render()
Ejemplo n.º 16
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/events/display_trigger.html')

    node = pm.setVar('trigger', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.render_var['python_rule_list'] = node.listChildren(include = ['event trigger rule python'])
    pm.path(node)
    return pm.render()
Ejemplo n.º 17
0
def group_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_group.html')
    pm.section('user')

    group = pm.object_store.getOID(oid)
    pm.render_var['group'] = group
    pm.render_var['attribute_list'] = attribute.parse_attributes(group)
    pm.path(group)
    return pm.render()
Ejemplo n.º 18
0
def category_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/passwords/display_category.html', 'password')

    pc = pm.setVar('password_category', pm.object_store.getOID(oid))
    pm.path(pc)
    pm.render_var['parent'] = pc
    pm.render_var['attribute_list'] = attribute.parse_attributes(pc)
    pm.render_var['password_category_list'] = pc.listChildren(include = ['password category'])
    pm.render_var['password_list'] = pc.listChildren(include = ['password'])
    return pm.render()
Ejemplo n.º 19
0
def key_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/passwords/display_passwordkey.html', 'password')
    pm.section('password')

    pk = pm.setVar('password_key', pm.object_store.getOID(oid))
    pm.path(pk)
    pm.render_var['parent'] = pk.parent
    pm.render_var['password_key_list'] = pk.parent.listChildren(include = ['password key'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(pk)
    return pm.render()
Ejemplo n.º 20
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/events/display_trigger.html')

    node = pm.setVar('trigger', pm.object_store.getOID(oid))
    pm.render_var['parent'] = node.parent
    pm.render_var['attribute_list'] = attribute.parse_attributes(node)
    pm.render_var['python_rule_list'] = node.listChildren(
        include=['event trigger rule python'])
    pm.path(node)
    return pm.render()
Ejemplo n.º 21
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user.html')

    user = pm.setVar('user', pm.object_store.getOID(oid))

    # Set a render variable to indicate if the user has logged in before based
    # on whether or not they have a public key.
    user_pk = user.listChildren(include=['public key'])
    if not len(user_pk):
        has_public_key = False
    else:
        has_public_key = True
    has_logged_in = pm.setVar('has_logged_in', has_public_key)

    pm.render_var['attribute_list'] = attribute.parse_attributes(user)
    subkey_list = []
    for subkey in user.listChildren(include=['sub key']):
        pw_key_exists = True
        try:
            pw_key = subkey.password_key
        except siptracklib.errors.NonExistent:
            pw_key = None
            pw_key_exists = False

        try:
            name = subkey.password_key.attributes.get('name')
            description = subkey.password_key.attributes.get('description')
        except Exception as e:
            pm.render_var['message'] = (
                'Failed to get name/description of subkey: {error}'
            ).format(
                error=str(e)
            )
            name = 'Unknown'
            description = ''
            pass

        subkey_list.append({
            'oid': subkey.oid,
            'exists': pw_key_exists,
            'subkey': subkey,
            'name': name,
            'description': description
        })

    # Sort the list of subkeys to easier find them
    sorted_subkey_list = sorted(
        subkey_list,
        key=lambda k: k['name']
    )

    pm.render_var['subkey_list'] = sorted_subkey_list
    pm.path(user)
    return pm.render()
Ejemplo n.º 22
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/display.html')
    view = pm.setVar('view', pm.object_store.getOID(oid))
    pm.render_var['attribute_list'] = attribute.parse_attributes(view)
    pm.render_var['config_list'] = config.parse_config(view)
    pm.render_var['permission_list'] = view.listChildren(include = ['permission'])
    pm.render_var['network_tree_list'] = list(view.listChildren(include = ['network tree']))
    device_tree = view.getChildByName('default', include = ['device tree'])
    pm.render_var['device_list'] = device_tree.listChildren(include = ['device'])
    pm.render_var['category_list'] = device_tree.listChildren(include = ['device category'])
    pm.path(view)
    pm.section('view')
    return pm.render()
Ejemplo n.º 23
0
def display(request, pm, device):
    pm.render_path = 'stweb/views/devices/categories/display.html'
    pm.render_var['device'] = device
    # We do a manual fetch to avoid fetching associations/references that
    # are never used when displaying categories. Certain categories tend
    # to contain children that have large numbers of associations.
    # Without this, the first call to listChildren would trigger a fetch
    # of all children and all their associations/references.
    # Simon - 090219.
    device.fetch(max_depth=1,
                 include_associations=False,
                 include_references=False)
    device.fetched_children = True
    pm.setVar('device_tree', device.getDeviceTree())
    pm.render_var['device_list'] = device.listChildren(include=['device'])
    sort_method = device.attributes.get('web-device-sort-method')
    if sort_method == 'reverse':
        pm.render_var['device_list'].reverse()
    elif sort_method == 'letter-number':
        pm.render_var['device_list'].sort(
            cmp=helpers.device_letter_number_sorter)
    else:
        pass
    if device.attributes.get('reverse-device-sort-order', False):
        pm.render_var['device_list'].reverse()
    pm.render_var['category_list'] = device.listChildren(
        include=['device category'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(device)
    pm.render_var['config_list'] = config.parse_config(device)
    pm.render_var['template_list'] = device.listChildren(
        include=['device template', 'network template'])
    pm.render_var['permission_list'] = device.listChildren(
        include=['permission'])
    pm.render_var['device_association_list'] = make_device_association_list(
        device)
    networks = device.listNetworks()
    hosts = [n for n in networks if n.isHost()]
    subnets = [n for n in networks if not n.isHost()]
    pm.render_var['network_host_list'] = hosts
    pm.render_var['network_subnet_list'] = subnets
    pm.render_var['template_add_type'] = 'device'

    if pm.tagged_oid and pm.tagged_oid.oid != device.oid and \
            pm.tagged_oid.class_name in ['device', 'device category']:
        pm.render_var['valid_tag_target'] = True
        if pm.tagged_oid.class_name == 'device':
            pm.render_var['valid_tag_link_target'] = True

    pm.path(device)
    return pm.render()
Ejemplo n.º 24
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/templates/display.html')

    template = pm.setVar('template', pm.object_store.getOID(oid))
    pm.render_var['rules'] = sort_rules(template)
    pm.render_var['attribute_list'] = attribute.parse_attributes(template)
    if template.class_name == 'device template':
        if pm.tagged_oid and pm.tagged_oid.class_name in ['device category', 'device tree']:
            pm.render_var['valid_copy_target'] = True
    if template.class_name == 'network template':
        if pm.tagged_oid and pm.tagged_oid.class_name in ['network tree', 'ipv4 network', 'ipv6 network']:
            pm.render_var['valid_copy_target'] = True
    pm.path(template)
    return pm.render()
Ejemplo n.º 25
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user.html')

    user = pm.setVar('user', pm.object_store.getOID(oid))

    # Set a render variable to indicate if the user has logged in before based
    # on whether or not they have a public key.
    user_pk = user.listChildren(include=['public key'])
    if not len(user_pk):
        has_public_key = False
    else:
        has_public_key = True
    has_logged_in = pm.setVar('has_logged_in', has_public_key)

    pm.render_var['attribute_list'] = attribute.parse_attributes(user)
    subkey_list = []
    for subkey in user.listChildren(include=['sub key']):
        pw_key_exists = True
        try:
            pw_key = subkey.password_key
        except siptracklib.errors.NonExistent:
            pw_key = None
            pw_key_exists = False

        try:
            name = subkey.password_key.attributes.get('name')
            description = subkey.password_key.attributes.get('description')
        except Exception as e:
            pm.render_var['message'] = (
                'Failed to get name/description of subkey: {error}').format(
                    error=str(e))
            name = 'Unknown'
            description = ''
            pass

        subkey_list.append({
            'oid': subkey.oid,
            'exists': pw_key_exists,
            'subkey': subkey,
            'name': name,
            'description': description
        })

    # Sort the list of subkeys to easier find them
    sorted_subkey_list = sorted(subkey_list, key=lambda k: k['name'])

    pm.render_var['subkey_list'] = sorted_subkey_list
    pm.path(user)
    return pm.render()
Ejemplo n.º 26
0
def category_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/passwords/display_category.html', 'password')

    pc = pm.setVar('password_category', pm.object_store.getOID(oid))
    pm.path(pc)
    pm.render_var['parent'] = pc
    pm.render_var['attribute_list'] = attribute.parse_attributes(pc)
    pm.render_var['password_category_list'] = pc.listChildren(include = ['password category'])
    pm.render_var['password_list'] = pc.listChildren(include = ['password'])

    if pm.tagged_oid and pm.tagged_oid.oid != pc.oid and \
            pm.tagged_oid.class_name == 'device':
        pm.render_var['valid_tag_target'] = True

    return pm.render()
Ejemplo n.º 27
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/passwords/display.html',
                             'password')
    pm.section('password')

    password = pm.setVar('password', pm.object_store.getOID(oid))
    pm.path(password)

    pm.render_var['attribute_list'] = attribute.parse_attributes(password)

    if pm.tagged_oid and pm.tagged_oid.oid != password.oid and \
            pm.tagged_oid.class_name == 'device':
        pm.render_var['valid_tag_target'] = True

    return pm.render()
Ejemplo n.º 28
0
def manager_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user_manager.html')
    pm.section('user')
    if not request.session['administrator']:
        user = pm.object_store.getSessionUser()
        return pm.redirect('display.display', (user.oid,))

    um = pm.object_store.getOID(oid)
    pm.render_var['user_manager'] = um
    pm.render_var['user_list'] = um.listChildren(include = ['user local',
        'user ldap', 'user active directory'])
    pm.render_var['group_list'] = um.listChildren(include = ['user group', 'user group ldap', 'user group active directory'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(um)
    pm.path(um)
    return pm.render()
Ejemplo n.º 29
0
def manager_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user_manager.html')
    pm.section('user')
    if not request.session['administrator']:
        user = pm.object_store.getSessionUser()
        return pm.redirect('display.display', (user.oid,))

    um = pm.object_store.getOID(oid)
    pm.render_var['user_manager'] = um
    pm.render_var['user_list'] = um.listChildren(include = ['user local',
        'user ldap', 'user active directory'])
    pm.render_var['group_list'] = um.listChildren(include = ['user group', 'user group ldap', 'user group active directory'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(um)
    pm.path(um)
    return pm.render()
Ejemplo n.º 30
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/networktrees/networks/display_range.html')
    range = pm.object_store.getOID(oid)
    network_tree = range.getNetworkTree()
    pm.render_var['network_tree_list'] = network_tree.parent.listChildren(include = ['network tree'])

    pm.render_var['browsable_path'] = []
    pm.render_var['network_tree'] = network_tree
    pm.render_var['network_range'] = range
    pm.render_var['network'] = range
    pm.render_var['template_list'] = range.listChildren(include = ['device template', 'network template'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(range)
    pm.render_var['config_list'] = config.parse_config(range)
    pm.render_var['device_list'] = range.listReferences(include = ['device', 'device category'])
    pm.path(range)
    return pm.render()
Ejemplo n.º 31
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/users/display_user.html')

    user = pm.setVar('user', pm.object_store.getOID(oid))
    pm.render_var['attribute_list'] = attribute.parse_attributes(user)
    subkey_list = []
    for subkey in user.listChildren(include=['sub key']):
        try:
            pw_key = subkey.password_key
        except siptracklib.errors.NonExistent as e:
            subkey_list.append({'oid': subkey.oid, 'exists': False})
            continue
        subkey_list.append(subkey)
    pm.render_var['subkey_list'] = subkey_list
    pm.path(user)
    return pm.render()
Ejemplo n.º 32
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/views/display.html')
    view = pm.setVar('view', pm.object_store.getOID(oid))
    pm.render_var['attribute_list'] = attribute.parse_attributes(view)
    pm.render_var['config_list'] = config.parse_config(view)
    pm.render_var['permission_list'] = view.listChildren(
        include=['permission'])
    pm.render_var['network_tree_list'] = list(
        view.listChildren(include=['network tree']))
    device_tree = view.getChildByName('default', include=['device tree'])
    pm.render_var['device_list'] = device_tree.listChildren(include=['device'])
    pm.render_var['category_list'] = device_tree.listChildren(
        include=['device category'])
    pm.path(view)
    pm.section('view')
    return pm.render()
Ejemplo n.º 33
0
def category_display(request, oid):
    pm = helpers.PageManager(request, 'stweb/passwords/display_category.html',
                             'password')

    pc = pm.setVar('password_category', pm.object_store.getOID(oid))
    pm.path(pc)
    pm.render_var['parent'] = pc
    pm.render_var['attribute_list'] = attribute.parse_attributes(pc)
    pm.render_var['password_category_list'] = pc.listChildren(
        include=['password category'])
    pm.render_var['password_list'] = pc.listChildren(include=['password'])

    if pm.tagged_oid and pm.tagged_oid.oid != pc.oid and \
            pm.tagged_oid.class_name == 'device':
        pm.render_var['valid_tag_target'] = True

    return pm.render()
Ejemplo n.º 34
0
def display(request, oid):
    pm = helpers.PageManager(
        request,
        'stweb/passwords/display.html',
        'password'
    )
    pm.section('password')

    password = pm.setVar('password', pm.object_store.getOID(oid))
    pm.path(password)

    pm.render_var['attribute_list'] = attribute.parse_attributes(password)

    if pm.tagged_oid and pm.tagged_oid.oid != password.oid and \
            pm.tagged_oid.class_name == 'device':
        pm.render_var['valid_tag_target'] = True

    return pm.render()
Ejemplo n.º 35
0
def display(request, oid):
    pm = helpers.PageManager(request, 'stweb/templates/display.html')

    template = pm.setVar('template', pm.object_store.getOID(oid))
    pm.render_var['rules'] = sort_rules(template)
    pm.render_var['attribute_list'] = attribute.parse_attributes(template)
    if template.class_name == 'device template':
        if pm.tagged_oid and pm.tagged_oid.class_name in [
                'device category', 'device tree'
        ]:
            pm.render_var['valid_copy_target'] = True
    if template.class_name == 'network template':
        if pm.tagged_oid and pm.tagged_oid.class_name in [
                'network tree', 'ipv4 network', 'ipv6 network'
        ]:
            pm.render_var['valid_copy_target'] = True
    pm.path(template)
    return pm.render()
Ejemplo n.º 36
0
def display(request, pm, device):
    pm.render_path = 'stweb/views/devices/categories/display.html'
    pm.render_var['device'] = device
    # We do a manual fetch to avoid fetching associations/references that
    # are never used when displaying categories. Certain categories tend
    # to contain children that have large numbers of associations.
    # Without this, the first call to listChildren would trigger a fetch
    # of all children and all their associations/references.
    # Simon - 090219.
    device.fetch(max_depth = 1, include_associations = False,
            include_references = False)
    device.fetched_children = True
    pm.setVar('device_tree', device.getDeviceTree())
    pm.render_var['device_list'] = device.listChildren(include = ['device'])
    sort_method = device.attributes.get('web-device-sort-method')
    if sort_method == 'reverse':
        pm.render_var['device_list'].reverse()
    elif sort_method == 'letter-number':
        pm.render_var['device_list'].sort(cmp = helpers.device_letter_number_sorter)
    else:
        pass
    if device.attributes.get('reverse-device-sort-order', False):
        pm.render_var['device_list'].reverse()
    pm.render_var['category_list'] = device.listChildren(include = ['device category'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(device)
    pm.render_var['config_list'] = config.parse_config(device)
    pm.render_var['template_list'] = device.listChildren(include = ['device template', 'network template'])
    pm.render_var['permission_list'] = device.listChildren(include = ['permission'])
    pm.render_var['device_association_list'] = make_device_association_list(device)
    networks = device.listNetworks()
    hosts = [n for n in networks if n.isHost()]
    subnets = [n for n in networks if not n.isHost()]
    pm.render_var['network_host_list'] = hosts
    pm.render_var['network_subnet_list'] = subnets
    pm.render_var['template_add_type'] = 'device'

    if pm.tagged_oid and pm.tagged_oid.oid != device.oid and \
            pm.tagged_oid.class_name in ['device', 'device category']:
        pm.render_var['valid_tag_target'] = True
        if pm.tagged_oid.class_name == 'device':
            pm.render_var['valid_tag_link_target'] = True

    pm.path(device)
    return pm.render()
Ejemplo n.º 37
0
def display(request, oid):
    pm = helpers.PageManager(
        request, 'stweb/views/networktrees/networks/display_range.html')
    range = pm.object_store.getOID(oid)
    network_tree = range.getNetworkTree()
    pm.render_var['network_tree_list'] = network_tree.parent.listChildren(
        include=['network tree'])

    pm.render_var['browsable_path'] = []
    pm.render_var['network_tree'] = network_tree
    pm.render_var['network_range'] = range
    pm.render_var['network'] = range
    pm.render_var['template_list'] = range.listChildren(
        include=['device template', 'network template'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(range)
    pm.render_var['config_list'] = config.parse_config(range)
    pm.render_var['device_list'] = range.listReferences(
        include=['device', 'device category'])
    pm.path(range)
    return pm.render()
Ejemplo n.º 38
0
def display(request, oid):
    pm = helpers.PageManager(request,
                             'stweb/views/networktrees/networks/display.html')
    network = pm.object_store.getOID(oid)
    network_tree = network.getNetworkTree()
    #    pm.render_var['network_tree_list'] = network_tree.parent.listChildren(include = ['network tree'])

    pm.render_var['browsable_path'] = []
    pm.render_var['network_tree'] = network_tree
    pm.render_var['network'] = network
    pm.render_var['template_list'] = network.listChildren(
        include=['device template', 'network template'])
    pm.render_var['permission_list'] = network.listChildren(
        include=['permission'])
    if request.GET.get('display_missing', '') == 'true':
        pm.render_var['network_list'] = list(
            network.listNetworks(include_missing=True))
    else:
        pm.render_var['network_list'] = list(network.listNetworks())
    for n in pm.render_var['network_list']:
        n.device_association_list = make_device_association_list(n)
    pm.render_var['network_range_list'] = network.listNetworkRanges()
    pm.render_var['attribute_list'] = attribute.parse_attributes(network)
    pm.render_var['config_list'] = config.parse_config(network)
    pm.render_var['device_list'] = network.listReferences(
        include=['device', 'device category'])
    pm.render_var['template_add_type'] = 'network'
    assoc_list = make_device_association_list(network)
    pm.render_var['device_association_list'] = assoc_list
    pm.path(network)

    if pm.tagged_oid and pm.tagged_oid.class_name in [
            'ipv4 network', 'ipv6 network'
    ]:
        if network == network_tree:
            tagged_network_tree = pm.tagged_oid.getNetworkTree()
            if tagged_network_tree != network_tree:
                if tagged_network_tree.protocol == network_tree.protocol:
                    pm.render_var['valid_tag_target'] = True

    return pm.render()
Ejemplo n.º 39
0
def display_device(request, pm, device):
    pm.render_path = 'stweb/views/devices/display.html'
    pm.render_var['device'] = device
    pm.setVar('device_tree', device.getDeviceTree())
    pm.render_var['device_list'] = make_device_list_with_links(device)
    sort_method = device.attributes.get('web-device-sort-method')
    if sort_method == 'reverse':
        pm.render_var['device_list'].reverse()
    elif sort_method == 'letter-number':
        pm.render_var['device_list'].sort(cmp = helpers.device_letter_number_sorter)
    else:
        pass
    if device.attributes.get('reverse-device-sort-order', False):
        pm.render_var['device_list'].reverse()
    pm.render_var['password_list'] = device.listChildren(include = ['password'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(device)
    pm.render_var['config_list'] = config.parse_config(device)
    pm.render_var['permission_list'] = device.listChildren(include = ['permission'])
    pm.render_var['device_config_list'] = device.listChildren(include = ['device config'])
    for device_config in pm.render_var['device_config_list']:
        device_config.stats = device_config.getStats()
        if device_config.stats['latest_timestamp']:
            device_config.stats['pretty_latest_timestamp'] = time.ctime(device_config.stats['latest_timestamp'])
        else:
            device_config.stats['pretty_latest_timestamp'] = 'Nothing received'
    pm.render_var['device_config_template_list'] = device.listChildren(include = ['device config template'])
    if 'assigned network' in request.session:
        pm.render_var['assigned_network'] = request.session['assigned network']
        del request.session['assigned network']
    networks = device.listNetworks()
    hosts = [n for n in networks if n.isHost()]
    subnets = [n for n in networks if not n.isHost()]
    pm.render_var['network_host_list'] = hosts
    pm.render_var['network_subnet_list'] = subnets
    pm.render_var['interface_network_host_list'] = device.listInterfaceNetworks()
    assoc_list = make_device_association_list(device)
    pm.render_var['device_association_list'] = assoc_list
    pm.render_var['device_rack'] = make_device_rack(device)

    pm.render_var['primary_network'] = None
    pm.render_var['default_gateway_guessed'] = True
    if len(hosts) == 1:
        pm.render_var['primary_network'] = hosts[0]
    else:
        for host in hosts:
            if not host.attributes.get('secondary'):
                if pm.render_var['primary_network']:
                    pm.render_var['primary_network'] = None
                    break
                pm.render_var['primary_network'] = host
    if pm.render_var['primary_network']:
        host = pm.render_var['primary_network']
        if host.parent.class_id == host.class_id:
            parent = host.parent
            gateway = None
            for net in parent.listNetworks():
                if net.attributes.get('gateway'):
                    pm.render_var['default_gateway_guessed'] = False
                    gateway = net
                    break
            if parent.class_name == 'ipv4 network':
                if not gateway:
                    pm.render_var['default_gateway'] = parent.address.inc().strAddress()
                else:
                    pm.render_var['default_gateway'] = gateway.address.strAddress()
            elif parent.class_name == 'ipv6 network':
                if gateway:
                    pm.render_var['default_gateway'] = gateway.address.first
                else:
                    pm.render_var['default_gateway'] = parent.address.first
            else:
                pm.render_var['primary_network'] = None
        else:
            pm.render_var['primary_network'] = None


    if pm.tagged_oid and pm.tagged_oid.oid != device.oid and \
            pm.tagged_oid.class_name == 'device':
        pm.render_var['valid_tag_target'] = True

    if pm.tagged_oid and pm.tagged_oid.oid != device.oid and \
            pm.tagged_oid.class_name in ['device category', 'device tree']:
        pm.render_var['valid_copy_target'] = True

    pm.path(device)

    return pm.render()
Ejemplo n.º 40
0
def display_device(request, pm, device):
    pm.render_path = 'stweb/views/devices/display.html'
    pm.render_var['device'] = device
    pm.setVar('device_tree', device.getDeviceTree())
    pm.render_var['device_list'] = make_device_list_with_links(device)
    sort_method = device.attributes.get('web-device-sort-method')
    if sort_method == 'reverse':
        pm.render_var['device_list'].reverse()
    elif sort_method == 'letter-number':
        pm.render_var['device_list'].sort(cmp = helpers.device_letter_number_sorter)
    else:
        pass
    if device.attributes.get('reverse-device-sort-order', False):
        pm.render_var['device_list'].reverse()
    pm.render_var['password_list'] = device.listChildren(include = ['password'])
    pm.render_var['attribute_list'] = attribute.parse_attributes(device)
    pm.render_var['config_list'] = config.parse_config(device)
    pm.render_var['permission_list'] = device.listChildren(include = ['permission'])
    if 'assigned network' in request.session:
        pm.render_var['assigned_network'] = request.session['assigned network']
        del request.session['assigned network']
    networks = device.listNetworks()
    hosts = [n for n in networks if n.isHost()]
    subnets = [n for n in networks if not n.isHost()]
    pm.render_var['network_host_list'] = hosts
    pm.render_var['network_subnet_list'] = subnets
    pm.render_var['interface_network_host_list'] = device.listInterfaceNetworks()
    assoc_list = make_device_association_list(device)
    pm.render_var['device_association_list'] = assoc_list
    pm.render_var['device_rack'] = make_device_rack(device)

    pm.render_var['primary_network'] = None
    pm.render_var['default_gateway_guessed'] = True
    if len(hosts) == 1:
        pm.render_var['primary_network'] = hosts[0]
    else:
        for host in hosts:
            if not host.attributes.get('secondary'):
                if pm.render_var['primary_network']:
                    pm.render_var['primary_network'] = None
                    break
                pm.render_var['primary_network'] = host
    if pm.render_var['primary_network']:
        host = pm.render_var['primary_network']
        if host.parent.class_id == host.class_id:
            parent = host.parent
            gateway = None
            for net in parent.listNetworks():
                if net.attributes.get('gateway'):
                    pm.render_var['default_gateway_guessed'] = False
                    gateway = net
                    break
            if parent.class_name == 'ipv4 network':
                if not gateway:
                    pm.render_var['default_gateway'] = parent.address.inc().strAddress()
                else:
                    pm.render_var['default_gateway'] = gateway.address.strAddress()
            elif parent.class_name == 'ipv6 network':
                if gateway:
                    pm.render_var['default_gateway'] = gateway.address.first
                else:
                    pm.render_var['default_gateway'] = parent.address.first
            else:
                pm.render_var['primary_network'] = None
        else:
            pm.render_var['primary_network'] = None


    if pm.tagged_oid and pm.tagged_oid.oid != device.oid and \
            pm.tagged_oid.class_name == 'device':
        pm.render_var['valid_tag_target'] = True

    if pm.tagged_oid and pm.tagged_oid.oid != device.oid and \
            pm.tagged_oid.class_name in ['device category', 'device tree']:
        pm.render_var['valid_copy_target'] = True

    pm.path(device)

    return pm.render()