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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()