components/net-snmp/sun/masfcnv
author April Chin <april.chin@oracle.com>
Tue, 06 Nov 2012 13:34:39 -0800
changeset 1041 15d904c514ee
parent 252 ee0fb1eabcbf
permissions -rw-r--r--
14850346 Update texinfo license file to match TPNO
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
252
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     1
#
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     2
# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     3
#
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     4
# ident  "@(#)migration.pl	1.5 03/06/26 SMI"
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     5
#
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     6
# $Id: masfcnv,v 1.3 2004/01/09 14:04:14 rr144420 Exp $
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     7
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     8
=head1 NAME
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
     9
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    10
masfcnv - SNMP configuration migration script
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    11
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    12
=head1 SYNOPSIS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    13
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    14
masfcnv S<[ -cimnrs ]> S<[ -l agent|master ]> S<[ -p enable|disable|error ]>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    15
S<[ -t none|add ]> S<[ -u agent|master|error ]> S<[ -y agent|master|error ]>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    16
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    17
masfcnv [ -V ]
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    18
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    19
masfcnv [ -? ]
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    20
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    21
=head1 DESCRIPTION
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    22
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    23
The masfcnv script is used to assist the system administrator in migrating an
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    24
existing set of configuration files for the Sun SNMP Management Agent for Sun
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    25
Fire and Netra Systems (MASF) to the Systems Management Agent (SMA).
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    26
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    27
The script accepts as input the currently installed set of MASF and SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    28
configuration files and outputs a new set of SMA configuration files. Existing
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    29
SMA configuration files are backed up by appending ".bak" to the filename. The
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    30
administrator may choose to output the new configuration to the standard output
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    31
instead of replacing the current configuration by specifying the -n option.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    32
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    33
The migration script must be run as the superuser and failure to do so will
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    34
cause the script to exit with an error message. Before running the script the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    35
administrator should ensure that both the SMA and MASF agents are not running.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    36
If the agents are running they will be shut down by the script.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    37
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    38
The migration script will install a new startup script for the MASF agent in
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    39
/etc/init.d and backup the old script. During migration, MASF will be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    40
configured as an AgentX subagent of SMA. All migration settings will be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    41
migrated to the SMA configuration file.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    42
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    43
The migration script will abort if any unrecognised directives are found in
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    44
either the MASF configuration files or the SMA configuration files. This may
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    45
be overridden with the -i option. If this option is selected, the behaviour is
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    46
to retain unrecognised directives which were present in the SMA configuration,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    47
but remove those present in the MASF configuration.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    48
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    49
The migration script will then proceed to migrate access control and trap
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    50
configuration. As a side-effect of running the migration script, the following
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    51
directives may be expanded by the script into multiple directives with
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    52
an equivalent interpretation:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    53
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    54
=over
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    55
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    56
=item rwcommunity
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    57
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    58
=item rocommunity
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    59
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    60
=item rwuser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    61
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    62
=item rouser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    63
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    64
=item trapcommunity
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    65
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    66
=item trapsink
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    67
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    68
=item trap2sink
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    69
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    70
=item informsink
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    71
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    72
=back
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    73
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    74
=head2 Access Control Migration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    75
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    76
Access control directives will be expanded into the equivalent com2sec, group,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    77
access and view directives. Existing group names will be renamed by prepending
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    78
a prefix to avoid conflict with any which may already be defined in SMA.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    79
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    80
When migrating SNMPv1 or v2c access control, a conflict may occur if both MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    81
and SMA configuration files have defined access permissions for the same
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    82
community and source address. The default behaviour is to abort with a
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    83
message, unless the -y option specifies otherwise. If "-y agent" was specified
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    84
then the MASF configuration will take precedence. If "-y master" was specified
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    85
then the SMA configuration will be retained.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    86
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    87
When migrating USM configuration (SNMPv3), a conflict may occur if both SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    88
and MASF configurations define a user with the same securityName. If this
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    89
occurs then the behaviour of the script is determined by the -u option.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    90
If "-u agent" has been selected then the configuration of the user defined in
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    91
the MASF configuration files will be the one that is retained. Otherwise, if
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    92
the "-u master" option has been selected, the one defined in the SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    93
configuration files will be retained.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    94
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    95
The migration script will by default attempt to migrate USM users from MASF to
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    96
SMA. The script will determine whether there are any existing SNMPv3 users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    97
present in the SMA configuration and whether or not the default engineID has
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    98
been overridden in the SMA configuration files. If neither of these are found to
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
    99
be the case then the any usmUser statements containing localised
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   100
authentication keys can be migrated to SMA, along with the MASF engineID. This
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   101
will result in the engineID of SMA master agent changing.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   102
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   103
If the script determines that there are existing SNMPv3 users or a manually
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   104
configured engineID present in the SMA configuration, then only those users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   105
defined in createUser statements will be transferred. Those users which were
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   106
defined in usmUser statements will be transferred but will have their
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   107
passwords reset to a random value. The administrator is advised to notify
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   108
their users of their new password and/or reset the password themselves by
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   109
editing the newly-generated configuration file themselves.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   110
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   111
=head2 Trap/Inform Migration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   112
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   113
The migration script will perform a check to determine whether a trap
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   114
destination defined for MASF is already specified in an existing SMA trapsink,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   115
trap2sink or informsink directive. If this is the case then the directive in
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   116
the MASF configuration will be discarded to avoid duplicate traps/informs being
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   117
received.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   118
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   119
trapsink, trap2sink and informsink directives specified in the existing SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   120
configuration are considered valid destinations for MASF traps/informs and will
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   121
receive them from the MASF subagent after migration.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   122
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   123
If the "-t none" option was specified on the command line, then the migration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   124
script will carry over any remaining MASF trap/inform directives without
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   125
modification.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   126
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   127
If the "-t add" option was specified (the default), then the migration script
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   128
will expand any trapsink, trap2sink or informsink directives to use the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   129
TARGET-MIB and NOTIFICATION-MIB. The TARGET-MIB specifies targets using IP
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   130
addresses, so it may be desirable to use the "-t none" option if, for example,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   131
the network allocates IP addresses to hostnames dynamically via DHCP.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   132
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   133
The expanded directives will define filters specific to the MASF agent so that
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   134
traps from other subagents will not be received by migrated trap destinations.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   135
Existing filters present in the SMA configuration will by default not be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   136
modified and may or may not receive MASF traps depending upon the filters
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   137
which were originally defined for them.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   138
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   139
If the -l option is specified, then any filters already defined in the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   140
TARGET-MIB and the NOTIFICATION-MIB for SMA will be extended to include traps
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   141
from MASF. In the event that a trap destination is already configured in the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   142
TARGET-MIB with the same target address and community as an existing MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   143
trap/inform sink, a conflict will arise. 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   144
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   145
If "-l agent" was specified and a conflict arises, then the migration script
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   146
will use the target SNMP parameters (i.e. SNMP version and choise of
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   147
trap/inform) defined by the MASF trap/informsink directive to send traps to
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   148
this destination. Otherwise if the "-l master" option was specified, then the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   149
conflict will be resolved using the target SNMP parameters specified in the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   150
SMA configuration.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   151
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   152
=head2 Miscellaneous
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   153
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   154
If the migration script encounters any of the following directives in the MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   155
configuration file and they are either not present or differ in the SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   156
configuration, the script will log a warning message:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   157
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   158
=over
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   159
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   160
=item syslocation
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   161
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   162
=item syscontact
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   163
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   164
=item sysname
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   165
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   166
=item sysservices
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   167
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   168
=item agentgroup
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   169
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   170
=item agentuser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   171
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   172
=item authtrapenable
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   173
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   174
=back
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   175
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   176
=head1 OPTIONS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   177
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   178
=over
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   179
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   180
=item B<-?>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   181
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   182
=item B<--help>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   183
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   184
Displays usage information.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   185
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   186
=item B<-c>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   187
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   188
=item B<--no-community>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   189
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   190
Do not transfer v1/v2c communities
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   191
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   192
=item B<-i>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   193
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   194
=item B<--ignore-unrecognized-directives>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   195
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   196
Continue processing if unrecognised directives are present.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   197
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   198
=item B<-l> I<agent|master>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   199
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   200
=item B<--master-trap-target>=I<agent|master>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   201
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   202
If 'agent' is specified then the existing SMA trap targets will be configured
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   203
to receive traps that were previously sent to destinations for the Sun Fire
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   204
SNMP agent. If 'master' is specified then the targets will be configured to
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   205
receive Sun Fire SNMP traps but existing SNMP target parameters will be used.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   206
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   207
=item B<-m>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   208
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   209
=item B<--no-usmuser>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   210
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   211
Do not transfer usm (v3) users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   212
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   213
=item B<-n>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   214
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   215
=item B<--dry-run>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   216
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   217
Run the migration without modifying any files. If any error arises then
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   218
continue processing. This can be used to determine the likely migration issues.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   219
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   220
=item B<-p> I<enable|disable|error>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   221
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   222
=item B<--use-agent-port>=I<enable|disable|error>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   223
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   224
Indicates whether the port originally used by the Sun Fire SNMP agent should be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   225
used by the SMA agent after migration (if the two agents are using different
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   226
ports). If 'enable' is specified then the port used by the Sun Fire SNMP agent
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   227
will also be used by the SMA agent after migration. If 'disable' is specified
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   228
then the ports used by SMA will not be updated by the migration tool.  If
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   229
the 'error' option is specified and the SMA agent is not already using the same
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   230
ports as those used by the original Sun Fire SNMP agent then an error will be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   231
reported and the migration process will be terminated. If no option is
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   232
specified the default behaviour is equivalent to the 'error' flag.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   233
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   234
=item B<-r>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   235
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   236
=item B<--no-trap>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   237
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   238
Do not transfer trap destinations
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   239
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   240
=item B<-s>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   241
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   242
=item B<--skip-user>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   243
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   244
If a user is found in the MASF configuration file that cannot be created in the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   245
new configuration due to a change in the engine ID, then output a message
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   246
indicating that the user could not be migrated (needs to be manually recreated)
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   247
and continue processing. If this option is not present then the migration tool
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   248
will consider such a situation as an error and abort.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   249
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   250
=item B<-t> I<none|add>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   251
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   252
=item B<--trap-filter>=I<none|add>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   253
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   254
If 'none' is specified then the script will copy trap directives directly. The
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   255
administrator may need to manually update the configuration file to ensure
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   256
traps are only delivered to their intended destinations.  If 'add' is specifed
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   257
then trap filters will be constructed so that traps originating from the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   258
original Sun Fire SNMP agent are only delivered to the destinations that
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   259
originally received them. 'add' is the default behaviour.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   260
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   261
=item B<-u> I<agent|master|error>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   262
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   263
=item B<--select-user>=I<agent|master|error>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   264
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   265
Specifies that if a user with the same name is found in both configuration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   266
files that the conflict is to be resolved using the specified configuration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   267
file as input.  Selecting a user from a particular will also cause the group
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   268
declaration for that user to be taken from the same file. If 'agent' is
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   269
specified then the user will be taken from the configuration file for the Sun
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   270
Fire SNMP Agent. If 'master' is specified then the user will be taken from the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   271
SMA configuration.  Otherwise if 'error' is given, the script will terminate.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   272
If this option is not present then the default behaviour is equivalent to
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   273
the 'error' flag.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   274
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   275
=item B<-V>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   276
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   277
=item B<--version>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   278
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   279
Display the version of this script.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   280
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   281
=item B<-y> I<agent|master|error>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   282
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   283
=item B<--select-community>=I<agent|master|error>
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   284
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   285
Specifies that if a community and source (hostname, IP addr or range of IP
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   286
addresses) is found to be conflicting in the two configurations, which
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   287
combination should be selected when mapping to a security name.  If 'agent' is
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   288
specified then the community and source information will be taken from the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   289
configuration for the Sun Fire SNMP agent.  If 'master' is specified it will be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   290
taken from the SMA agent.  Otherwise if 'error' is specified an error will be
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   291
reported and the migration will terminate.  If this option is not present then
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   292
the default behaviour is equivalent to the 'error' flag.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   293
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   294
=back
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   295
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   296
=head1 EXIT STATUS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   297
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   298
The script will exit with 0 if migration was successful, non-zero if a problem
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   299
occurred during migration.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   300
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   301
=head1 EXAMPLES
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   302
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   303
For a simple migration which will fail if there are any potential conflicts:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   304
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   305
masfcnv
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   306
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   307
To migrate the MASF configuration such that it will always succeed, MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   308
settings will override in the event of a conflict with SMA and access will
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   309
still be provided on the original MASF port:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   310
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   311
masfcnv -is -l agent -p enable -u agent -y agent
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   312
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   313
To attempt a dry run and migrate the configuration such that any conflicts
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   314
will be resolved by retaining existing SMA settings:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   315
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   316
masfcnv -l master -u master -y master
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   317
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   318
=head1 FILES
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   319
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   320
=over
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   321
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   322
=item /etc/sma/snmp/snmpd.conf
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   323
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   324
=item /var/sma_snmp/snmpd.conf
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   325
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   326
SMA configuration files
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   327
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   328
=back
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   329
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   330
=over
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   331
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   332
=item /etc/opt/SUNWmasf/conf/snmpd.conf
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   333
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   334
=item /var/opt/SUNWmasf/snmpd.dat
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   335
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   336
MASF configuration files
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   337
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   338
=back
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   339
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   340
=over
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   341
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   342
=item /tmp/sma_migration.log
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   343
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   344
masfcnv log file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   345
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   346
=back
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   347
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   348
=cut
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   349
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   350
use strict;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   351
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   352
# Text::ParseWords requires 5.005
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   353
require 5.005;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   354
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   355
use Getopt::Long 2.17;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   356
use Text::ParseWords;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   357
use Net::hostent;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   358
use Socket;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   359
use Data::Dumper;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   360
use File::Copy;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   361
use Text::Wrap;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   362
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   363
##############################################################################
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   364
# global defaults
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   365
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   366
# storage for new lines
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   367
%::ADDED_CONFIGS = ('prepend'=>[],
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   368
	'append'=>[]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   369
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   370
use vars qw ($INTERNET_OID
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   371
    $LOG_FILE
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   372
    $DATA_DIR
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   373
    $FILTER_TYPE_INCLUDED
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   374
    $FILTER_TYPE_EXCLUDED
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   375
    $ENTITY_MIB_OID
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   376
    $SUNPLAT_MIB_OID
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   377
    $SNMP_UDP_DOMAIN
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   378
    $DEFAULT_ROW_STATUS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   379
    $DEFAULT_STORAGE_TYPE
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   380
    $MPMODEL_SNMPV1
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   381
    $MPMODEL_SNMPV2C
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   382
    $MPMODEL_SNMPV2U
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   383
    $MPMODEL_SNMPV3
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   384
    $SECURITY_MODEL_ANY
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   385
    $SECURITY_MODEL_SNMPV1
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   386
    $SECURITY_MODEL_SNMPV2C
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   387
    $SECURITY_MODEL_USM
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   388
    $SECURITY_LEVEL_NOAUTHNOPRIV
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   389
    $SECURITY_LEVEL_AUTHNOPRIV
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   390
    $SECURITY_LEVEL_AUTHPRIV
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   391
    $NOTIFY_TYPE_TRAP
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   392
    $NOTIFY_TYPE_INFORM);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   393
# location where template files, etc. are stored.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   394
*LOG_FILE = \"/tmp/sma_migration.log";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   395
*INTERNET_OID = \".1.3.6.1";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   396
*DATA_DIR = \"/usr/lib/net_snmp";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   397
*FILTER_TYPE_INCLUDED = \1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   398
*FILTER_TYPE_EXCLUDED = \2;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   399
*ENTITY_MIB_OID = \".1.3.6.1.2.1.47";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   400
*SUNPLAT_MIB_OID = \".1.3.6.1.4.1.42.2.70.101";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   401
*SNMP_UDP_DOMAIN = \".1.3.6.1.6.1.1";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   402
*DEFAULT_ROW_STATUS = \1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   403
*DEFAULT_STORAGE_TYPE = \3;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   404
*MPMODEL_SNMPV1 = \0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   405
*MPMODEL_SNMPV2C = \1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   406
*MPMODEL_SNMPV2U = \2;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   407
*MPMODEL_SNMPV3 = \3;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   408
*SECURITY_MODEL_ANY = \0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   409
*SECURITY_MODEL_SNMPV1 = \1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   410
*SECURITY_MODEL_SNMPV2C = \2;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   411
*SECURITY_MODEL_USM = \3;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   412
*SECURITY_LEVEL_NOAUTHNOPRIV = \1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   413
*SECURITY_LEVEL_AUTHNOPRIV = \2;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   414
*SECURITY_LEVEL_AUTHPRIV = \3;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   415
*NOTIFY_TYPE_TRAP = \1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   416
*NOTIFY_TYPE_INFORM = \2;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   417
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   418
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   419
##############################################################################
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   420
# misc functions
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   421
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   422
sub log_message
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   423
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   424
	my ($msg, $line) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   425
	if (defined $line && exists $line->{'file'} && exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   426
		$line->{'lineno'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   427
		$msg = $line->{'file'}.', line '.($line->{'lineno'} + 1).
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   428
		    ': '.$msg;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   429
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   430
	$msg = wrap('', '', $msg);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   431
	if ($::AUTOMATED) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   432
	  open (LOG, ">> $LOG_FILE") || 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   433
	  	die "Couldn't open log file $LOG_FILE\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   434
	  print LOG $msg;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   435
	  print STDERR $msg;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   436
	  close LOG;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   437
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   438
		print STDERR $msg;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   439
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   440
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   441
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   442
sub get_backup_filename
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   443
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   444
    my ($fname) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   445
    if ( -e $fname.'.bak') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   446
	my ($i) = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   447
	while ( -e $fname.".bak.$i" ) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   448
	    $i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   449
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   450
	return $fname.".bak.$i";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   451
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   452
    return $fname.".bak";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   453
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   454
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   455
sub backup_files
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   456
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   457
    log_message "Backing up original files\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   458
    my ($f, $newf);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   459
    for $f (@::MASF_CONFIG_FILES, $::MASF_PERSISTENT_FILE, @::SMA_CONFIG_FILES,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   460
	    $::SMA_PERSISTENT_FILE) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   461
	if (! -e $f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   462
	    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   463
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   464
	$newf = get_backup_filename($f);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   465
	log_message "Backing up $f to $newf\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   466
	if (0 == copy $f, $newf) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   467
	    log_message "Couldn't backup $f - aborting\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   468
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   469
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   470
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   471
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   472
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   473
sub remove_masf_persistent_file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   474
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   475
    if (! -e $::MASF_PERSISTENT_FILE) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   476
	return;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   477
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   478
    log_message "Removing $::MASF_PERSISTENT_FILE\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   479
    if (0 == unlink $::MASF_PERSISTENT_FILE) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   480
	log_message "Couldn't remove MASF persistent storage file\n".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   481
	"$::MASF_PERSISTENT_FILE - Aborting\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   482
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   483
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   484
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   485
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   486
sub version
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   487
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   488
    my ($rev) = '$Revision: 1.3 $';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   489
    $rev=~s/^\$Revision: //;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   490
    $rev=~s/ \$$//;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   491
    print STDERR "$0 $rev\n".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   492
	"Copyright 2003 Sun Microsystems, Inc.\n".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   493
	"All rights reserved.\n".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   494
	"Use is subject to license terms.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   495
    exit 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   496
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   497
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   498
sub stop_sma_running
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   499
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   500
    `/etc/init.d/init.sma stop`;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   501
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   502
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   503
sub stop_masf_running
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   504
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   505
    `/etc/init.d/masfd stop`;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   506
    if (($? >> 8) > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   507
	log_message "Couldn't stop the MASF agent\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   508
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   509
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   510
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   511
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   512
sub set_umask
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   513
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   514
    # only root should be able to read the config file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   515
    umask 0077;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   516
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   517
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   518
sub install_new_wrapper_script
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   519
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   520
    log_message "Installing new MASF startup script\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   521
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   522
    my $pkgInstance='SUNWmasfr';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   523
    my @commands=("/usr/sbin/installf $pkgInstance /etc/init.d/masfd f 744 root sys",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   524
    "/usr/sbin/installf $pkgInstance /etc/rc0.d/K40masfd=/etc/init.d/masfd l",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   525
    "/usr/sbin/installf $pkgInstance /etc/rc1.d/K40masfd=/etc/init.d/masfd l",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   526
    "/usr/sbin/installf $pkgInstance /etc/rc2.d/K40masfd=/etc/init.d/masfd l",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   527
    "/usr/sbin/installf $pkgInstance /etc/rc3.d/S90masfd=/etc/init.d/masfd l",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   528
    "/usr/sbin/installf $pkgInstance /etc/rcS.d/K40masfd=/etc/init.d/masfd l",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   529
    "/usr/sbin/install -f /etc/init.d -m 0744 -u root -g sys $DATA_DIR/masfd",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   530
    "/usr/sbin/installf -f $pkgInstance",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   531
    "/usr/sbin/removef $pkgInstance /etc/rc3.d/S80masfd",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   532
    "/usr/bin/rm /etc/rc3.d/S80masfd",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   533
    "/usr/sbin/removef -f $pkgInstance"
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   534
    );
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   535
    my $command;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   536
    for $command (@commands) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   537
	`$command`;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   538
	if ($? >> 8) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   539
	    log_message "A problem occurred whilst installing the MASF startup ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   540
		"script\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   541
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   542
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   543
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   544
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   545
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   546
sub install_template_config_file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   547
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   548
    if (copy($DATA_DIR.'/snmpd.conf', $::MASF_CONFIG_FILES[0]) == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   549
	log_message "Couldn't copy template configuration file to ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   550
	    $::MASF_CONFIG_FILES[0]."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   551
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   552
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   553
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   554
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   555
sub are_we_root
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   556
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   557
	if ($> != 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   558
		log_message "You are not running this as root.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   559
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   560
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   561
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   562
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   563
sub sma_config_sanity_check
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   564
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   565
	my ($files, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   566
	# check we can read the main config file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   567
	if ( ! -r $::SMA_CONFIG_FILES[0] ) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   568
		log_message "Couldn't read SMA config file ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   569
		$::SMA_CONFIG_FILES[0]."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   570
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   571
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   572
	for ($i = 0; $i < @::SMA_CONFIG_FILES; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   573
		if (! -r $::SMA_CONFIG_FILES[$i]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   574
			splice @::SMA_CONFIG_FILES, $i--, 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   575
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   576
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   577
	# check that if the persistent storage file isn't present, that there
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   578
	# aren't any stale backups indicating it failed to update it properly
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   579
	if ( ! -e $::SMA_PERSISTENT_FILE ) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   580
		$files = `/bin/ls $::SMA_PERSISTENT_DIR/sma.*.dat 2>/dev/null`;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   581
		if ($files ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   582
			log_message "Stale SMA agent config files found. The ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   583
			"SMA agent may not have been shut down cleanly.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   584
			exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   585
		} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   586
			# Assume this is because the agent was never run
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   587
			log_message "WARNING: no SMA persistent storage file found\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   588
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   589
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   590
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   591
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   592
sub masf_config_sanity_check
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   593
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   594
    my ($files, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   595
    # check we can read the main config file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   596
    if ( ! -r $::MASF_CONFIG_FILES[0] ) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   597
	log_message "Couldn't read MASF config file ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   598
	    $::MASF_CONFIG_FILES[0]."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   599
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   600
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   601
    for ($i = 0; $i < @::MASF_CONFIG_FILES; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   602
	if (! -r $::MASF_CONFIG_FILES[$i]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   603
	    splice @::MASF_CONFIG_FILES, $i--, 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   604
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   605
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   606
    # check that if the persistent storage file isn't present, that there
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   607
    # aren't any stale backups indicating it failed to update it properly
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   608
    if ( ! -e $::MASF_PERSISTENT_FILE ) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   609
	$files = `/bin/ls $::MASF_PERSISTENT_DIR/snmpd.*.dat 2>/dev/null`;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   610
	if ($files ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   611
	    log_message "Stale MASF agent config files found. The MASF agent ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   612
	    "may not have been shut down cleanly.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   613
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   614
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   615
	    # Assume this is because the agent was never run
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   616
	    log_message "WARNING: no MASF persistent storage file found\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   617
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   618
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   619
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   620
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   621
sub hostnameToUDPDomain
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   622
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   623
        my ($target) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   624
        my ($hostname, $port, $hostent);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   625
        my @dotted_decimal;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   626
        ($hostname, $port) = ($target=~/^([^:]+):(\d+)$/);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   627
        if ($port eq "") {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   628
                $port = 162;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   629
        } 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   630
        ($hostent) = gethostbyname($hostname);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   631
        @dotted_decimal = unpack ('C4', $hostent->addr_list->[0]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   632
        return sprintf "0x%02x%02x%02x%02x%04x", @dotted_decimal, $port;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   633
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   634
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   635
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   636
sub help
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   637
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   638
	my ($name) = ($0=~/([^\/]*)$/);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   639
        print STDERR "Usage:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   640
$name	[ -cimnrs ] [ -l agent|master ] [ -p enable|disable|error ] 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   641
	[ -t none|add  ] [ -u agent|master|error ] [ -y agent|master|error ]
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   642
	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   643
$name	[ -V ]
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   644
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   645
$name	[ -? ]
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   646
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   647
        Migrates the configuration of the SNMP Agent for 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   648
        Sun Fire Servers to the SMA SNMP Agent
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   649
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   650
Option  Interpretation
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   651
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   652
-? 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   653
--help
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   654
        Display this help message.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   655
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   656
-c
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   657
--no-community
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   658
        Do not transfer v1/v2c communities
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   659
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   660
-i
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   661
--ignore-unrecognized-directives
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   662
        Continue processing if unrecognised directives are present.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   663
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   664
-l agent|master
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   665
--master-trap-target=agent|master
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   666
        If 'agent' is specified then the existing SMA trap targets will
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   667
        be configured to receive traps that were previously sent to
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   668
        destinations for the Sun Fire SNMP agent. If 'master' is
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   669
        specified then the targets will be configured to receive Sun
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   670
        Fire SNMP traps but existing SNMP target parameters will be used. This
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   671
	option may not be used with the \"-t none\" option.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   672
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   673
-m
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   674
--no-usmuser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   675
        Do not transfer usm (v3) users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   676
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   677
-n
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   678
--dry-run
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   679
        Run the migration without modifying any files. If any error 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   680
        arises then continue processing. This can be used to determine the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   681
        likely migration issues.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   682
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   683
-p enable|disable|error
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   684
--use-agent-port=enable|disable|error
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   685
        Indicates whether the port originally used by the Sun Fire SNMP
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   686
        agent should be used by the SMA agent after migration (if the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   687
        two agents are using different ports). If 'enable' is specified
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   688
        then the port used by the Sun Fire SNMP agent will also be used
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   689
        by the SMA agent after migration. If 'disable' is specified then
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   690
        the ports used by SMA will not be updated by the migration tool.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   691
        If the 'error' option is specified and the SMA agent is not 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   692
        already using the same ports as those used by the original Sun
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   693
        Fire SNMP agent then an error will be reported and the migration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   694
        process will be terminated. If no option is specified the default
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   695
        behaviour is equivalent to the 'error' flag.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   696
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   697
-r
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   698
--no-trap
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   699
        Do not transfer trap destinations
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   700
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   701
-s
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   702
--skip-user
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   703
        If a user is found in the MASF configuration file that 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   704
        cannot be created in the new configuration due to a change
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   705
        in the engine ID, then output a message indicating that
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   706
        the user could not be migrated (needs to be manually
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   707
        recreated) and continue processing. If this option is not
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   708
        present then the migration tool will consider such a 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   709
        situation as an error and abort.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   710
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   711
-t none|add
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   712
--trap-filter=none|add
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   713
        If 'none' is specified then the script will copy trap directives
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   714
        directly. The administrator may need to manually update the 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   715
        configuration file to ensure traps are only delivered to their
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   716
        intended destinations.  If 'add' is specifed then trap filters
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   717
        will be constructed so that traps originating from the original
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   718
        Sun Fire SNMP agent are only delivered to the destinations that
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   719
        originally received them. 'add' is the default behaviour.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   720
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   721
-u agent|master|error
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   722
--select-user=agent|master|error
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   723
        Specifies that if a user with the same name is found in both
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   724
        configuration files that the conflict is to be resolved using
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   725
        the specified configuration file as input.  Selecting a user
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   726
        from a particular will also cause the group declaration for 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   727
        that user to be taken from the same file. If 'agent' is 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   728
        specified then the user will be taken from the configuration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   729
        file for the Sun Fire SNMP Agent. If 'master' is specified then
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   730
        the user will be taken from the SMA configuration.  Otherwise
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   731
        if 'error' is given, the script will terminate.  If this option
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   732
        is not present then the default behaviour is equivalent to the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   733
        'error' flag.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   734
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   735
-V 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   736
--version
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   737
        Display the version of this script.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   738
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   739
-y agent|master|error
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   740
--select-community=agent|master|error
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   741
        Specifies that if a community and source (hostname, IP addr
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   742
        or range of IP addresses) is found to be conflicting in the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   743
        two configurations, which combination should be selected when
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   744
        mapping to a security name.  If 'agent' is specified then the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   745
        community and source information will be taken from the 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   746
        configuration for the Sun Fire SNMP agent.  If 'master' is
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   747
        specified it will be taken from the SMA agent.  Otherwise if 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   748
        'error' is specified an error will be reported and the 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   749
        migration will terminate.  If this option is not present then
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   750
        the default behaviour is equivalent to the 'error' flag.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   751
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   752
";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   753
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   754
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   755
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   756
%::SMA_CONFIGS = ();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   757
%::MASF_CONFIGS = ();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   758
sub strip_cr_nl
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   759
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   760
    # remove \r and \n
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   761
    my ($lines, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   762
    for $lines (values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   763
    	for ($i = 0; $i < @$lines; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   764
		chomp $lines->[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   765
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   766
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   767
    for $lines (values %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   768
    	for ($i = 0; $i < @$lines; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   769
		chomp $lines->[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   770
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   771
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   772
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   773
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   774
sub read_config_files
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   775
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   776
    my ($i, @lines);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   777
    for ($i = 0; $i < @::SMA_CONFIG_FILES; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   778
	open (FH, '< '.$::SMA_CONFIG_FILES[$i]) || do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   779
		log_message("Couldn't read config file ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   780
		$::SMA_CONFIG_FILES[$i]."\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   781
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   782
	};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   783
	@lines=<FH>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   784
	close FH;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   785
	$::SMA_CONFIGS{$::SMA_CONFIG_FILES[$i]} = [@lines];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   786
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   787
    if (-e $::SMA_PERSISTENT_FILE) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   788
	open (FH, '< '.$::SMA_PERSISTENT_FILE) || do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   789
	    log_message("Couldn't read config file ".$::SMA_PERSISTENT_FILE."\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   790
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   791
	};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   792
	@lines=<FH>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   793
	close FH;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   794
	$::SMA_CONFIGS{$::SMA_PERSISTENT_FILE} = [@lines];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   795
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   796
    for ($i = 0; $i < @::MASF_CONFIG_FILES; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   797
	open (FH, '< '.$::MASF_CONFIG_FILES[$i]) || do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   798
	    log_message("Couldn't read config file ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   799
		    $::MASF_CONFIG_FILES[$i]."\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   800
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   801
	};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   802
	@lines=<FH>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   803
	close FH;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   804
	$::MASF_CONFIGS{$::MASF_CONFIG_FILES[$i]} = [@lines];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   805
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   806
    if (-e $::MASF_PERSISTENT_FILE) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   807
	open (FH, '< '.$::MASF_PERSISTENT_FILE) || do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   808
	    log_message("Couldn't read config file ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   809
		    $::MASF_PERSISTENT_FILE."\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   810
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   811
	};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   812
	@lines=<FH>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   813
	close FH;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   814
	$::MASF_CONFIGS{$::MASF_PERSISTENT_FILE} = [@lines];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   815
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   816
    strip_cr_nl();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   817
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   818
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   819
sub prompt_yes_no
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   820
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   821
	my ($prompt, $default) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   822
	my $response = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   823
	print STDOUT $prompt," [".$default."]:";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   824
	$response = <STDIN>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   825
	chomp $response;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   826
	if ($response eq '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   827
		$response = $default;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   828
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   829
	while (uc($response)!~/^Y|N/) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   830
	    print STDERR "Response must be (y)es or (n)o:";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   831
	    $response = <STDIN>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   832
		chomp $response;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   833
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   834
	return $response=~/^[yY]/ ? 'yes' : 'no';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   835
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   836
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   837
sub prompt
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   838
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   839
	my ($prompt, $default, $options) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   840
	my $response = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   841
	print STDOUT $prompt," [".$default."]:";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   842
	$response = <STDIN>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   843
	chomp $response;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   844
	if ($response eq '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   845
		$response = $default;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   846
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   847
	while (scalar (grep $response eq $_, @$options) != 1) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   848
	    print STDERR "Invalid response:";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   849
	    $response = <STDIN>;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   850
		chomp $response;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   851
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   852
	return $response;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   853
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   854
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   855
sub parse_agentaddress
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   856
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   857
    my ($line)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   858
    my ($directive, $addresses)=($line=~/^\s*(agentaddress)\s+(.*\S)\s*$/);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   859
    my ($addr, $spec, @addrs, $has_transport_specifier);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   860
    @addrs=split /,/,$addresses;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   861
    foreach $addr (@addrs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   862
	$has_transport_specifier=($addr=~/:/);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   863
	if (! $has_transport_specifier) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   864
	    if ($addr=~/^\//) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   865
		$spec = "unix";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   866
	    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   867
		$spec = "udp";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   868
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   869
	    $addr = $spec.':'.$addr;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   870
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   871
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   872
    return @addrs;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   873
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   874
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   875
sub parse_config_line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   876
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   877
    my ($line)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   878
    my @words;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   879
    # strip whitespace
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   880
    $line=~s/^\s*//;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   881
    $line=~s/\s*$//;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   882
    # check to see if comment
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   883
    if ((substr $line, 0, 1) eq '#') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   884
	return ('', ());
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   885
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   886
    @words = &parse_line('\s+', 0, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   887
    if (! defined $words[0]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   888
	$words[0] = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   889
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   890
    return @words;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   891
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   892
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   893
sub sanity_check_config_files 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   894
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   895
	my @smaTokens = (
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   896
		'master',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   897
		'agentxTimeout',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   898
		'agentxRetries',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   899
		'agentxPingInterval',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   900
		'targetParams',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   901
		'targetAddr',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   902
		'snmpNotifyFilterProfileTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   903
		'snmpNotifyTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   904
		'snmpNotifyFilterTable'
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   905
			);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   906
	my @commonTokens = (
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   907
		'rocommunity',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   908
		'rwcommunity',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   909
		'rouser',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   910
		'rwuser',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   911
		'agentaddress',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   912
		'trapsink',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   913
		'trap2sink',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   914
		'informsink',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   915
		'trapcommunity',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   916
		'com2sec',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   917
		'group',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   918
		'access',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   919
		'view',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   920
		'engineID',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   921
		'createUser',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   922
		'agentgroup',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   923
		'agentuser',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   924
		'authtrapenable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   925
		'syslocation',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   926
		'syscontact',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   927
		'sysname',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   928
		'sysservices',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   929
		'engineBoots',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   930
		'oldEngineID',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   931
		'usmUser'
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   932
		  );
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   933
	my ($file, $i, $j, $directive, @tokens, $found, $warned, $answer);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   934
	# check sma config files
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   935
	$warned = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   936
	for $file (keys %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   937
	    for ($i = 0; $i < @{$::SMA_CONFIGS{$file}}; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   938
		$found = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   939
		($directive, @tokens) = parse_config_line($::SMA_CONFIGS{$file}->[$i]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   940
		if ($directive eq '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   941
			next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   942
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   943
		
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   944
		for ($j = 0; $j < @smaTokens; $j++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   945
		    if ($directive eq $smaTokens[$j]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   946
			$found = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   947
			last;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   948
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   949
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   950
		if ($found) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   951
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   952
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   953
		for ($j = 0; $j < @commonTokens; $j++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   954
		    if ($directive eq $commonTokens[$j]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   955
			$found = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   956
			last;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   957
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   958
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   959
		if ($found) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   960
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   961
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   962
		# token was not recognised
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   963
		log_message("WARNING: Unrecognised token ".$directive.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   964
		" found in file ".$file." at line ".($i + 1)."\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   965
		$warned = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   966
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   967
	}	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   968
	for $file (keys %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   969
	    for ($i = 0; $i < @{$::MASF_CONFIGS{$file}}; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   970
		$found = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   971
		($directive, @tokens) = parse_config_line($::MASF_CONFIGS{$file}->[$i]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   972
		if ($directive eq '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   973
			next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   974
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   975
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   976
		for ($j = 0; $j < @commonTokens; $j++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   977
		    if ($directive eq $commonTokens[$j]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   978
			$found = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   979
			last;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   980
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   981
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   982
		if ($found) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   983
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   984
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   985
		# token was not recognised
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   986
		log_message("WARNING: Unrecognised token ".$directive.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   987
		" found in file ".$file." at line ".($i + 1)."\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   988
		$warned = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   989
		# remove the unrecognised token
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   990
		splice @{$::MASF_CONFIGS{$file}}, $i--, 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   991
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   992
	}	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   993
	if ($warned && ! $::IGNORE_UNRECOGNIZED_DIRECTIVES) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   994
		if ($::AUTOMATED) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   995
		    log_message("Unrecognised tokens found in configuration ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   996
		    "file(s) - aborting\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   997
		    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   998
		} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
   999
			$answer = prompt_yes_no("Unrecognised tokens were found. Continue?", 'n');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1000
			if ($answer eq 'no') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1001
				exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1002
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1003
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1004
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1005
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1006
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1007
sub print_line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1008
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1009
    my ($fh, $line) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1010
    if (exists $line->{'orig'} && exists $line->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1011
	if ($line->{'orig'} ne $line->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1012
	    print $fh "# ### CHANGED BY $0 ###\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1013
	    print $fh '# ',$line->{'orig'},"\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1014
	    if (exists $line->{'comment'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1015
		print $fh $line->{'comment'},"\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1016
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1017
	    print $fh $line->{'new'},"\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1018
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1019
	    print $fh $line->{'orig'},"\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1020
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1021
    } elsif (exists $line->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1022
	if (exists $line->{'comment'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1023
	    print $fh $line->{'comment'},"\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1024
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1025
	print $fh $line->{'new'},"\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1026
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1027
    
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1028
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1029
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1030
@::SMA_PERSISTENT_FILE_TOKENS = (
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1031
	'targetParams', 'targetAddr',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1032
	'snmpNotifyFilterProfileTable', 'snmpNotifyTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1033
	'snmpNotifyFilterTable', 'engineBoots', 'usmUser', 'oldEngineID',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1034
	'createUser');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1035
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1036
# extract those directives destined for persistent storage
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1037
sub dump_persistent_storage
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1038
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1039
    my ($file, $persistent_file, $config) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1040
    #list of tokens which should be in persistent storage
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1041
    my ($f, $l, $lines);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1042
    for $f (keys %$config) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1043
	print $file "# ### IMPORTED FROM $f ###\n\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1044
	for $l (@{$config->{$f}}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1045
	    if (! exists $l->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1046
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1047
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1048
	    my ($directive, @toks) = parse_config_line($l->{'new'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1049
	    if ($directive) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1050
		my (@match) = grep ($_ eq $directive, @::SMA_PERSISTENT_FILE_TOKENS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1051
		if (@match == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1052
		    # skip this line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1053
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1054
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1055
	    } elsif ($f ne $persistent_file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1056
		# skip all comments/blank lines which are not in the persistent
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1057
		# storage file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1058
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1059
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1060
	    print_line($file, $l);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1061
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1062
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1063
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1064
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1065
sub dump_config
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1066
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1067
    my ($file, $persistent_file, $config) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1068
    #list of tokens which should be in persistent storage
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1069
    my ($f, $l, $lines);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1070
    for $f (keys %$config) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1071
	print $file "# ### IMPORTED FROM $f ###\n\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1072
	for $l (@{$config->{$f}}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1073
	    if (! exists $l->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1074
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1075
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1076
	    my ($directive, @toks) = parse_config_line($l->{'new'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1077
	    if ($directive) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1078
		my (@match) = grep ($_ eq $directive, @::SMA_PERSISTENT_FILE_TOKENS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1079
		if (@match > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1080
		    if ($f ne $persistent_file && exists $l->{'orig'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1081
			print $file "# moved to $::SMA_PERSISTENT_FILE >>> ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1082
			$l->{'orig'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1083
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1084
		    # skip this line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1085
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1086
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1087
	    } elsif ($f eq $persistent_file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1088
		# skip all comments/blank lines which are not in the persistent
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1089
		# storage file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1090
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1091
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1092
	    print_line($file, $l);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1093
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1094
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1095
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1096
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1097
sub set_union {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1098
	my ($seta, $setb) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1099
	my ($i, $j, $found, @out);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1100
	for $i (@$seta, @$setb) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1101
		$found = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1102
		for $j (@out) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1103
			if ($j eq $i) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1104
				$found = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1105
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1106
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1107
		if (! $found) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1108
			push @out, $i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1109
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1110
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1111
	return @out;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1112
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1113
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1114
sub in_addr_to_number
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1115
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1116
	my ($in_addr) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1117
	my ($i, $N) = (0, 0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1118
	my (@n) = (unpack 'C4', $in_addr);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1119
	for ($i = 0; $i < @n; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1120
			$N = $N << 8;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1121
			$N += $n[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1122
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1123
	return $N;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1124
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1125
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1126
sub splice_line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1127
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1128
    my ($config, $line, $length, $offset, @lines) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1129
    my ($i, $f);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1130
    for $i (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1131
	# mark all the lines as changed
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1132
	$i->{'changed'} = undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1133
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1134
    for $f (values %$config) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1135
	for ($i = 0; $i < @$f; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1136
	    if ($f->[$i] eq $line) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1137
		if (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1138
		    splice @$f, $i + $offset, $length, @lines;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1139
		} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1140
		    splice @$f, $i + $offset, $length;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1141
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1142
		return;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1143
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1144
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1145
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1146
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1147
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1148
sub prepend_line {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1149
    my ($line) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1150
    $line->{'changed'} = undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1151
    push @{$::ADDED_CONFIGS{'prepend'}}, $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1152
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1153
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1154
sub append_line {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1155
    my ($line) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1156
    $line->{'changed'} = undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1157
    push @{$::ADDED_CONFIGS{'append'}}, $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1158
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1159
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1160
sub replace_line {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1161
    my ($config, $line, @lines) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1162
    $line->{'meta'} = $lines[0]->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1163
    if (exists $lines[0]->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1164
	$line->{'new'} = $lines[0]->{'new'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1165
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1166
	delete $line->{'new'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1167
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1168
    $lines[0] = $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1169
    splice_line($config, $line, 1, 0, @lines);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1170
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1171
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1172
sub insert_lines {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1173
    my ($config, $line, $after, @lines) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1174
    my ($offset) = ($after ? 1 : 0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1175
    splice_line($config, $line, 0, $offset, @lines);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1176
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1177
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1178
sub get_lines
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1179
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1180
    my ($directive, $config)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1181
    my ($line, $lines, @matches);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1182
    for $lines (values %$config) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1183
	for $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1184
	    if (exists $line->{'meta'}->{'directive'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1185
		$line->{'meta'}->{'directive'} eq $directive) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1186
		    push @matches, $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1187
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1188
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1189
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1190
    return @matches;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1191
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1192
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1193
##############################################################################
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1194
# Traps
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1195
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1196
sub remove_trap_destinations
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1197
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1198
    my (@sinkLines) = (get_lines('trapsink', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1199
	get_lines('trap2sink', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1200
	get_lines('informsink', \%::MASF_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1201
    my ($line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1202
    for $line (@sinkLines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1203
	replace_line(\%::MASF_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1204
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1205
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1206
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1207
sub get_filters
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1208
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1209
    my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1210
    my ($f, $l, @filters);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1211
    for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1212
	for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1213
	    if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1214
		    ($l->{'meta'}->{'directive'} ne 'snmpNotifyFilterTable')) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1215
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1216
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1217
	    if (exists $keys->{'profileName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1218
		    $l->{'meta'}->{'profileName'} ne $keys->{'profileName'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1219
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1220
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1221
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1222
	    push @filters, $l;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1223
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1224
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1225
    return @filters;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1226
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1227
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1228
sub get_filterProfiles
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1229
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1230
    my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1231
    my ($f, $l, @targetAddrs);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1232
    for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1233
	for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1234
	    if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1235
		    ($l->{'meta'}->{'directive'} ne 'snmpNotifyFilterProfileTable')) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1236
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1237
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1238
	    if (exists $keys->{'paramName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1239
		    $l->{'meta'}->{'paramName'} ne $keys->{'paramName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1240
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1241
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1242
	    if (exists $keys->{'profileName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1243
		    $l->{'meta'}->{'profileName'} ne $keys->{'profileName'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1244
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1245
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1246
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1247
	    push @targetAddrs, $l;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1248
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1249
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1250
    return @targetAddrs;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1251
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1252
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1253
sub tag_in_taglist
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1254
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1255
    my ($tag, $taglist) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1256
    my (@tags) = split /[ \t\r\n]/,$taglist;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1257
    my ($t);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1258
    for $t (@tags) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1259
	if ($t eq $tag) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1260
	    return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1261
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1262
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1263
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1264
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1265
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1266
sub notifyName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1267
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1268
    my ($name) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1269
    my ($file, $line, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1270
    for $file (values %::MASF_CONFIGS, values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1271
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1272
	    $meta=$line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1273
	    if (exists $meta->{'notifyName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1274
		    $meta->{'notifyName'} eq $name) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1275
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1276
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1277
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1278
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1279
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1280
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1281
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1282
sub tag_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1283
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1284
    my ($tag) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1285
    my ($file, $line, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1286
    for $file (values %::MASF_CONFIGS, values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1287
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1288
	    $meta = $line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1289
	    if (exists $meta->{'tagList'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1290
			tag_in_taglist ($tag, $meta->{'tagList'})) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1291
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1292
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1293
	    if (exists $meta->{'notifyTag'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1294
		$tag eq $meta->{'notifyTag'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1295
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1296
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1297
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1298
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1299
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1300
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1301
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1302
sub get_new_profileName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1303
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1304
    my ($i) = (0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1305
    my ($try) = ('masfProfile'.$i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1306
    while (profileName_exists($try)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1307
	$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1308
	$try = 'masfProfile'.$i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1309
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1310
    if (length $try > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1311
	log_message "Unable to generate unique profileName\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1312
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1313
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1314
    return $try;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1315
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1316
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1317
sub generate_notify_tags
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1318
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1319
    my ($prefix) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1320
    my ($i) = (0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1321
    while (tag_exists ($prefix.$i) ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1322
	notifyName_exists ($prefix.$i)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1323
	$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1324
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1325
    if (length ($prefix.$i) > 255) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1326
	log_message "Unable to generate valid tag for prefix ".$prefix."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1327
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1328
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1329
    return $prefix.$i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1330
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1331
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1332
sub get_new_paramName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1333
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1334
    my ($i) = (0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1335
    while (paramName_exists('masfParam'.$i)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1336
	$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1337
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1338
    if (length 'masfParam'.$i > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1339
	log_message "Unable to generate unique paramName.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1340
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1341
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1342
    return 'masfParam'.$i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1343
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1344
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1345
sub get_new_targetName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1346
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1347
    my ($host)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1348
    my ($i)=(0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1349
    my ($try)=('masfTarget'.$i.$host);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1350
    while (targetName_exists($try) || length $try > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1351
	if (length $try > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1352
	    chop $host;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1353
	    if (length $host == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1354
		log_message "Unable to generate unique targetName\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1355
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1356
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1357
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1358
	    $i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1359
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1360
	$try = 'masfTarget'.$i.$host;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1361
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1362
    return $try;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1363
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1364
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1365
sub paramName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1366
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1367
    my ($paramName) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1368
    my ($keys) = ({'paramName'=>$paramName});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1369
    my (@lines) = (get_targetParams($keys, \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1370
	get_targetParams($keys, \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1371
	get_targetAddrs($keys, \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1372
	get_targetAddrs($keys, \%::MASF_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1373
    if (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1374
	return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1375
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1376
	return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1377
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1378
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1379
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1380
sub profileName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1381
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1382
    my ($name) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1383
    my ($file, $line, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1384
    for $file (values %::MASF_CONFIGS, values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1385
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1386
	    $meta=$line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1387
	    if (exists $meta->{'profileName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1388
		    $meta->{'profileName'} eq $name) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1389
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1390
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1391
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1392
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1393
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1394
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1395
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1396
sub targetName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1397
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1398
    my ($targetName) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1399
    my ($keys) = ({'targetName'=>$targetName});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1400
    my (@lines) = (get_targetAddrs($keys, \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1401
	get_targetAddrs($keys, \%::MASF_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1402
    if (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1403
	return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1404
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1405
	return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1406
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1407
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1408
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1409
# get all target addresses with the specified keys
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1410
sub get_targetAddrs
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1411
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1412
    my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1413
    my ($f, $l, @targetAddrs);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1414
    for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1415
	for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1416
	    if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1417
		    ($l->{'meta'}->{'directive'} ne 'targetAddr')) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1418
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1419
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1420
	    if (exists $keys->{'paramName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1421
		    $l->{'meta'}->{'paramName'} ne $keys->{'paramName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1422
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1423
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1424
	    if (exists $keys->{'TDomain'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1425
		    $l->{'meta'}->{'TDomain'} ne $keys->{'TDomain'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1426
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1427
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1428
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1429
	    if (exists $keys->{'TAddress'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1430
		    $l->{'meta'}->{'TAddress'} ne $keys->{'TAddress'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1431
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1432
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1433
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1434
	    if (exists $keys->{'targetName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1435
		    $l->{'meta'}->{'targetName'} ne $keys->{'targetName'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1436
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1437
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1438
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1439
	    push @targetAddrs, $l;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1440
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1441
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1442
    return @targetAddrs;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1443
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1444
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1445
# get all target parameters with the specified keys
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1446
sub get_targetParams
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1447
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1448
    my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1449
    my ($f, $l, @targetParams);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1450
    for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1451
	for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1452
	    if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1453
		    ($l->{'meta'}->{'directive'} ne 'targetParams')) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1454
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1455
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1456
	    if (exists $keys->{'paramName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1457
		    $l->{'meta'}->{'paramName'} ne $keys->{'paramName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1458
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1459
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1460
	    if (exists $keys->{'securityModel'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1461
		    $l->{'meta'}->{'securityModel'} ne $keys->{'securityModel'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1462
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1463
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1464
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1465
	    if (exists $keys->{'securityLevel'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1466
		    $l->{'meta'}->{'securityLevel'} ne $keys->{'securityLevel'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1467
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1468
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1469
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1470
	    if (exists $keys->{'securityName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1471
		    $l->{'meta'}->{'securityName'} ne $keys->{'securityName'})
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1472
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1473
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1474
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1475
	    push @targetParams, $l;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1476
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1477
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1478
    return @targetParams;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1479
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1480
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1481
sub process_trapsink
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1482
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1483
    my ($sinkLine, $informTag, $trapTag) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1484
    my ($paramName, @paramLines, $community, @result, $secModel,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1485
	$MPModel, $notifyType, %profiles, $foundParams);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1486
    log_message "Migrating trapsink: ".$sinkLine->{'new'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1487
    if ($sinkLine->{'meta'}->{'directive'} eq 'trapsink') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1488
	$secModel = $SECURITY_MODEL_SNMPV1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1489
	$MPModel = $MPMODEL_SNMPV1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1490
    } elsif ($sinkLine->{'meta'}->{'directive'} eq 'trap2sink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1491
	    $sinkLine->{'meta'}->{'directive'} eq 'informsink') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1492
	$secModel = $SECURITY_MODEL_SNMPV2C;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1493
	$MPModel = $MPMODEL_SNMPV2C;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1494
    } 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1495
    if ($sinkLine->{'meta'}->{'directive'} eq 'informsink') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1496
	$notifyType = $NOTIFY_TYPE_INFORM;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1497
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1498
	$notifyType = $NOTIFY_TYPE_TRAP;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1499
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1500
    $community = $sinkLine->{'meta'}->{'community'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1501
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1502
    # try to find an existing target param in SMA config but don't bother if we
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1503
    # don't care about overlap
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1504
    if ($::EXTEND_SMA_FILTERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1505
    @paramLines = (get_targetParams({'securityName'=>$community,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1506
		'securityModel'=>$SECURITY_MODEL_SNMPV2C}, \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1507
	    get_targetParams({'securityName'=>$community,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1508
		'securityModel'=>$SECURITY_MODEL_SNMPV1}, \%::SMA_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1509
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1510
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1511
    my ($smaParamLine, $smaTargetLine);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1512
    my ($targetName, @targetAddrs);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1513
    my ($host) = $sinkLine->{'meta'}->{'host'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1514
    my ($port) = $sinkLine->{'meta'}->{'port'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1515
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1516
    if (@paramLines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1517
	my ($paramLine);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1518
	for $paramLine (@paramLines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1519
	    $paramName = $paramLine->{'meta'}->{'paramName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1520
	    push @targetAddrs, get_targetAddrs({'TDomain'=>$SNMP_UDP_DOMAIN,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1521
		    'TAddress'=>hostnameToUDPDomain($host.':'.$port),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1522
		    'paramName'=>$paramName}, \%::SMA_CONFIGS)
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1523
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1524
	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1525
	# try to use an existing targetAddr if it was defined
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1526
	if (@targetAddrs > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1527
	    $smaTargetLine = $targetAddrs[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1528
	    ($smaParamLine) = get_targetParams({'paramName'=>$smaTargetLine->{'meta'}->{'paramName'}}, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1529
	    $foundParams = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1530
	} 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1531
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1532
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1533
    if (! $foundParams || ! $::KEEP_SNMP_TARGET_PARAMS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1534
	# we need to generate a new set of params
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1535
	$paramName = get_new_paramName();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1536
	push @result, {'meta'=>{'directive'=>'targetParams',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1537
	    'paramName'=>$paramName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1538
	    'MPModel'=>$MPModel,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1539
	    'securityModel'=>$secModel,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1540
	    'securityName'=>$community,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1541
	    'securityLevel'=>$SECURITY_LEVEL_AUTHNOPRIV,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1542
	    'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1543
	    'rowStatus'=>$DEFAULT_ROW_STATUS}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1544
	};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1545
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1546
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1547
    my (@profiles, $profileName);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1548
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1549
    if (! $foundParams) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1550
	# no equivalent SMA target found - only MASF traps to be delivered
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1551
	# generate our own targetAddr
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1552
	my ($i) = (0);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1553
	$targetName = get_new_targetName($host);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1554
	push @result, {'meta'=>{'directive'=>'targetAddr',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1555
	    'targetName'=>$targetName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1556
	    'TDomain'=>$SNMP_UDP_DOMAIN,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1557
	    'TAddress'=>hostnameToUDPDomain($host.':'.$port),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1558
	    'timeout'=>1500,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1559
	    'retryCount'=>3,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1560
	    'tagList'=>$notifyType == $NOTIFY_TYPE_INFORM ? $informTag :
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1561
		$trapTag,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1562
	    'paramName'=>$paramName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1563
	    'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1564
	    'rowStatus'=>$DEFAULT_ROW_STATUS}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1565
	# need to add a filter profile
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1566
	    $profileName = get_new_profileName();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1567
    } elsif (! $::KEEP_SNMP_TARGET_PARAMS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1568
	# we need to change the targetAddr to refer to the new set of params 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1569
	$targetName = $smaTargetLine->{'meta'}->{'targetName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1570
	$smaTargetLine->{'meta'}->{'paramName'} = $paramName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1571
	$smaTargetLine->{'meta'}->{'tagList'} =
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1572
	    ($notifyType == $NOTIFY_TYPE_INFORM ? $informTag : $trapTag);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1573
	replace_line(\%::SMA_CONFIGS, $smaTargetLine, $smaTargetLine);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1574
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1575
	# set our params to use the new set of filter profiles
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1576
	@profiles = get_filterProfiles(
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1577
		{'paramName'=>$smaParamLine->{'meta'}->{'paramName'}},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1578
		\%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1579
	if (@profiles > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1580
	    $profileName = $profiles[0]->{'meta'}->{'profileName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1581
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1582
	    # no filter profiles defined
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1583
	    return @result;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1584
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1585
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1586
	# don't change existing target specification
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1587
	# SMA profiles already have MASF added.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1588
	return @result;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1589
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1590
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1591
    push @result, {'meta'=>{'directive'=>'snmpNotifyFilterProfileTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1592
	'paramName'=>$paramName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1593
	'profileName'=>$profileName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1594
	'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1595
	'rowStatus'=>$DEFAULT_ROW_STATUS}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1596
    };
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1597
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1598
    if ($foundParams) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1599
	return @result;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1600
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1601
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1602
    # add some filters
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1603
    push @result, 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1604
    {'comment'=>'# Include ENTITY-MIB and SUN-PLATFORM-MIB in profile',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1605
	'meta'=>{'directive'=>'snmpNotifyFilterTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1606
	    'profileName'=>$profileName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1607
	    'subtree'=>$ENTITY_MIB_OID,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1608
	    'mask'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1609
	    'filterType'=>$FILTER_TYPE_INCLUDED,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1610
	    'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1611
	    'rowStatus'=>$DEFAULT_ROW_STATUS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1612
	}},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1613
	{'meta'=>{'directive'=>'snmpNotifyFilterTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1614
		     'profileName'=>$profileName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1615
		     'subtree'=>$SUNPLAT_MIB_OID,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1616
		     'mask'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1617
		     'filterType'=>$FILTER_TYPE_INCLUDED,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1618
		     'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1619
		     'rowStatus'=>$DEFAULT_ROW_STATUS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1620
		 }};	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1621
    return @result;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1622
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1623
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1624
sub process_trapsinks
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1625
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1626
    # grab all the trapsink, trap2sink and informsink lines in MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1627
    my (@sinkLines) = (get_lines('trapsink', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1628
	get_lines('trap2sink', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1629
	get_lines('informsink', \%::MASF_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1630
    my ($sinkLine, $paramName, @paramLines, $community, @result, $secModel,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1631
	$MPModel, $notifyType, $informTag, $trapTag, %profiles, $foundParams);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1632
    %profiles=();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1633
    foreach $sinkLine (@sinkLines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1634
	$paramName = undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1635
	@result = ();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1636
	$foundParams = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1637
	log_message "Processing trapsink: ".$sinkLine->{'new'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1638
	if (!defined $informTag) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1639
	    $informTag = generate_notify_tags('masfInformTag');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1640
	    log_message "Using tag ".$informTag." for informs\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1641
	    $trapTag = generate_notify_tags('masfTrapTag');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1642
	    log_message "Using tag ".$trapTag." for traps\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1643
	    push @result, {'meta'=>{'directive'=>'snmpNotifyTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1644
		'notifyName'=>$informTag,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1645
		'notifyTag'=>$informTag,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1646
		'notifyType'=>$NOTIFY_TYPE_INFORM,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1647
		'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1648
		'rowStatus'=>$DEFAULT_ROW_STATUS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1649
	    }},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1650
	    {'meta'=>{'directive'=>'snmpNotifyTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1651
			 'notifyName'=>$trapTag,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1652
			 'notifyTag'=>$trapTag,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1653
			 'notifyType'=>$NOTIFY_TYPE_TRAP,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1654
			 'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1655
			 'rowStatus'=>$DEFAULT_ROW_STATUS
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1656
		     }};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1657
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1658
	push @result, process_trapsink($sinkLine, $informTag, $trapTag);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1659
	replace_line(\%::MASF_CONFIGS, $sinkLine, @result);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1660
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1661
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1662
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1663
sub extend_sma_trap_filters
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1664
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1665
    my (@lines, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1666
    @lines = get_lines('snmpNotifyFilterTable', \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1667
    my (%hash);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1668
    foreach $line (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1669
	if (!exists $hash{$line->{'meta'}->{'profileName'}}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1670
	    log_message "Adding ENTITY-MIB and SUN-PLATFORM-MIB traps to ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1671
	    "trap filter profile ".$line->{'meta'}->{'profileName'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1672
	    $hash{$line->{'meta'}->{'profileName'}}=undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1673
	    insert_lines(\%::SMA_CONFIGS, $line, 0,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1674
		{'comment'=>'# Include ENTITY-MIB and SUN-PLATFORM-MIB in profile',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1675
		'meta'=>{'directive'=>'snmpNotifyFilterTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1676
		    'profileName'=>$line->{'meta'}->{'profileName'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1677
		    'subtree'=>$ENTITY_MIB_OID,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1678
		    'mask'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1679
		    'filterType'=>$FILTER_TYPE_INCLUDED,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1680
		    'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1681
		    'rowStatus'=>$DEFAULT_ROW_STATUS}},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1682
		{'meta'=>{'directive'=>'snmpNotifyFilterTable',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1683
		    'profileName'=>$line->{'meta'}->{'profileName'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1684
		    'subtree'=>$SUNPLAT_MIB_OID,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1685
		    'mask'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1686
		    'filterType'=>$FILTER_TYPE_INCLUDED,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1687
		    'storageType'=>$DEFAULT_STORAGE_TYPE,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1688
		    'rowStatus'=>$DEFAULT_ROW_STATUS}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1689
	}	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1690
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1691
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1692
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1693
sub process_trapcommunity
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1694
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1695
    my ($configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1696
    my ($i, $file, $trapcommunity, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1697
    $trapcommunity = 'public';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1698
    foreach $file (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1699
	for ($i = 0; $i < @$file; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1700
	    $meta = $file->[$i]->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1701
	    if (! exists $file->[$i]->{'meta'}->{'directive'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1702
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1703
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1704
	    if ($meta->{'directive'} eq 'trapcommunity') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1705
		$trapcommunity = $meta->{'community'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1706
		replace_line($configs, $file->[$i], {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1707
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1708
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1709
	    if ($meta->{'directive'} eq 'trapsink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1710
		    $meta->{'directive'} eq 'trap2sink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1711
		    $meta->{'directive'} eq 'informsink') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1712
		if (! exists $meta->{'community'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1713
			$meta->{'community'} = $trapcommunity;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1714
			replace_line($configs, $file->[$i], $file->[$i]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1715
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1716
		if (! exists $meta->{'port'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1717
		    $meta->{'port'} = 162;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1718
		    replace_line($configs, $file->[$i], $file->[$i]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1719
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1720
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1721
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1722
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1723
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1724
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1725
sub check_duplicate_trap_destinations 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1726
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1727
    my (@smaTraps) = (get_lines('informsink', \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1728
	get_lines('trapsink', \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1729
	get_lines('trap2sink', \%::SMA_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1730
    my (@masfTraps) = (get_lines('informsink', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1731
	get_lines('trapsink', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1732
	get_lines('trap2sink', \%::MASF_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1733
    my ($trap, @matches, $match);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1734
    for $trap (@masfTraps) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1735
	@matches = grep (
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1736
	    ($_->{'meta'}->{'community'} eq $trap->{'meta'}->{'community'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1737
	     $_->{'meta'}->{'host'} eq $trap->{'meta'}->{'host'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1738
	     $_->{'meta'}->{'port'} eq $trap->{'meta'}->{'port'}), @smaTraps);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1739
	if (@matches) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1740
	    # remove this duplicate
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1741
	    log_message "Removing duplicate ".$trap->{'meta'}->{'directive'}." directive\n", $trap;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1742
	    replace_line(\%::MASF_CONFIGS, $trap, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1743
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1744
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1745
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1746
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1747
##############################################################################
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1748
# Access control, groups and users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1749
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1750
$::SEEDED = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1751
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1752
sub remove_v3_users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1753
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1754
    my (@users) = get_securityNames({'securityModel'=>'usm'}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1755
    my ($user, @groups, $group);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1756
    for $user (@users) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1757
	replace_line(\%::MASF_CONFIGS, $user, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1758
	@groups = get_groups($user->{'meta'}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1759
	for $group (@groups) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1760
	    replace_line(\%::MASF_CONFIGS, $group, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1761
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1762
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1763
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1764
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1765
sub remove_v1v2c_users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1766
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1767
    my (@users) = get_securityNames({'securityModel'=>'v1'}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1768
    my ($user, @groups, $group);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1769
    for $user (@users) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1770
	replace_line(\%::MASF_CONFIGS, $user, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1771
	@groups = get_groups($user->{'meta'}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1772
	for $group (@groups) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1773
	    replace_line(\%::MASF_CONFIGS, $group, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1774
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1775
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1776
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1777
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1778
sub generate_password
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1779
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1780
    my ($i, $r, $pwd);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1781
    if (! $::SEEDED) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1782
	srand;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1783
	$::SEEDED=1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1784
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1785
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1786
    for ($i = 0; $i < 8; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1787
	do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1788
	    $r = chr (int (rand 127));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1789
	} while ($r!~/^[a-zA-Z0-9]$/);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1790
	$pwd.=$r;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1791
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1792
    return $pwd;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1793
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1794
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1795
# check to see whether MASF UsmUser directives can be transferred without
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1796
# alteration, if not then convert to a template createUser statement
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1797
sub process_engineIDs
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1798
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1799
    log_message "\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1800
    log_message "Checking to see if USM users defined in usmUser directives can be migrated without modification:\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1801
    my ($lines, $line, $can_migrate);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1802
    $can_migrate = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1803
    # check that no v3 users have been specified in SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1804
    my (@v3_sma_users) = (get_securityNames({'securityModel'=>'usm'}, \%::SMA_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1805
    if (@v3_sma_users > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1806
	log_message "V3 users were specified in SMA config - cannot migrate without modification.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1807
	$can_migrate = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1808
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1809
    # If the engineID was specified in MASF then we cannot migrate. Remove it
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1810
    # from the migrated configuration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1811
    for $line (get_lines('engineID', \%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1812
	$can_migrate = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1813
	log_message "engineID specified in configuration file - cannot migrate without modification.\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1814
	replace_line(\%::MASF_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1815
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1816
    # check that engineID isn't specified anywhere in SMA config
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1817
    for $line (get_lines('engineID', \%::SMA_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1818
	log_message "engineID specified in configuration file - cannot migrate without modification.\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1819
	$can_migrate = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1820
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1821
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1822
    if (! $can_migrate) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1823
	for $line (get_lines('usmUser', \%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1824
	    if (! $::IGNORE_ENGINEID) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1825
		log_message "User with securityName ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1826
		$line->{'meta'}->{'securityName'}." cannot be migrated ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1827
		"because the engineID has changed - aborting.\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1828
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1829
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1830
	    log_message "\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1831
	    log_message "***************************************************************************\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1832
	    log_message 'User with securityName '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1833
	    $line->{'meta'}->{'securityName'}." has had their password reset.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1834
	    log_message "You will need to edit the configuration file after ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1835
	    "this script has finished\n".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1836
		"in order to enable their account\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1837
	    log_message "***************************************************************************\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1838
	    replace_line(\%::MASF_CONFIGS, $line,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1839
		    {'comment'=>'# XXX Change the password if necessary',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1840
		    'meta'=>{'directive'=>'createUser',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1841
		    'securityModel'=>'usm',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1842
		    'securityName'=>$line->{'meta'}->{'securityName'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1843
		    'authPassword'=>generate_password(),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1844
		    'authProtocol'=>'MD5'}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1845
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1846
	# if we can't migrate the engineID, then remove any oldEngineID
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1847
	# statements and engineBoots statements
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1848
	for $line (get_lines('oldEngineID', \%::MASF_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1849
		get_lines('engineBoots', \%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1850
	    replace_line(\%::MASF_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1851
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1852
	return;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1853
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1854
	log_message "OK to migrate usm users\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1855
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1856
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1857
    # check to see if oldEngineID or engineBoots is defined in SMA config - if
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1858
    # so then squash it in favour of new one from MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1859
    for $line (get_lines('oldEngineID', \%::SMA_CONFIGS),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1860
	    get_lines('engineBoots', \%::SMA_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1861
	replace_line(\%::SMA_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1862
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1863
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1864
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1865
# ensure that if a createUser and usmUser directive is present for the same
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1866
# securityName then the createUser directive takes precedence
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1867
sub check_usm_securityNames
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1868
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1869
    my (@masfUserLines)=(get_securityNames({'securityModel'=>'usm'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1870
	\%::MASF_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1871
    my (@smaUserLines)=(get_securityNames({'securityModel'=>'usm'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1872
	\%::SMA_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1873
    my ($usmUser, $user, $config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1874
    for $config (\%::MASF_CONFIGS, \%::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1875
	my (@userLines) = (get_securityNames({'securityModel'=>'usm'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1876
	$config));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1877
	my (@createUsers) = (grep 'createUser' eq $_->{'meta'}->{'directive'}, @userLines);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1878
	for $user (@createUsers) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1879
	    my (@usmUsers) = (grep (('usmUser' eq $_->{'meta'}->{'directive'}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1880
		&& $user->{'meta'}->{'securityName'} eq
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1881
		$_->{'meta'}->{'securityName'}), @userLines));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1882
	    for $usmUser (@usmUsers) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1883
		replace_line($config, $usmUser, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1884
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1885
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1886
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1887
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1888
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1889
sub choose_group_membership
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1890
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1891
	my ($smaSecurityName, $masfSecurityName) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1892
	# interactive mode
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1893
	convert_metadata();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1894
	log_message "\nThis user is defined in SMA with the following configuration:\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1895
	# get the config:
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1896
	my ($o, $n) = get_old_new_config($smaSecurityName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1897
			\%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1898
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1899
	log_message "Original configuration:\n".join ("\n",@$o);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1900
	log_message "\n\nProposed configuration 1:\n".join ("\n",@$n);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1901
	($o, $n) = get_old_new_config($masfSecurityName, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1902
	log_message "\n\nIt conflicts with the following MASF configuration:\nOriginal configuration:\n".join ("\n", @$o);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1903
	log_message "\n\nProposed configuration 2:\n".join ("\n",@$n)."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1904
	my ($response) = (prompt ("Please choose one of the".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1905
				" proposed configurations", 1, [1,2]));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1906
	if ($response == 1) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1907
		remove_com2sec_user ({'securityName'=>$masfSecurityName}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1908
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1909
		remove_com2sec_user ({'securityName'=>$smaSecurityName}, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1910
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1911
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1912
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1913
sub process_usm_securityNames
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1914
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1915
    my ($file, $line, $fileb, $lineb, $snameLine, $sname, $conflicted);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1916
    for $snameLine (get_securityNames({'securityModel'=>'usm'}, \%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1917
	$sname = $snameLine->{'meta'}->{'securityName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1918
	$conflicted = undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1919
	for $file (values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1920
	    for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1921
		if (exists $line->{'meta'}->{'securityName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1922
			$line->{'meta'}->{'securityName'} eq $sname) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1923
		    $conflicted=$line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1924
		    last;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1925
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1926
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1927
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1928
	if (defined $conflicted) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1929
	    # there is a clash
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1930
	    log_message "MASF securityName ".$sname." conflicts with one already defined in SMA\n", $snameLine;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1931
	    if ($::KEEP_SMA_USM_USERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1932
		remove_com2sec_user($snameLine->{'meta'}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1933
	    } elsif ($::KEEP_MASF_USM_USERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1934
		remove_com2sec_user($conflicted->{'meta'}, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1935
	    } elsif ($::AUTOMATED) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1936
		log_message "Conflicting securityNames found - aborting.  Please resolve these conflicts\n".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1937
		"manually.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1938
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1939
	    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1940
		choose_group_membership($conflicted->{'meta'}->{'securityName'}, $sname);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1941
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1942
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1943
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1944
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1945
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1946
sub remove_com2sec_user
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1947
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1948
    my ($keys, $config)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1949
    my ($securityName)=($keys->{'securityName'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1950
    my ($f, $l);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1951
    for $l (get_securityNames($keys, $config)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1952
	replace_line ($config, $l, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1953
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1954
    for $f (values %$config) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1955
	for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1956
	    if (exists $l->{'meta'}->{'directive'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1957
		    $l->{'meta'}->{'directive'} eq 'group' &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1958
		    $l->{'meta'}->{'securityName'} eq $securityName) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1959
		replace_line($config, $l, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1960
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1961
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1962
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1963
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1964
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1965
# get all lines which define a security name i.e. com2sec, createUser or
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1966
# usmUser, according to specified keys
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1967
sub get_securityNames
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1968
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1969
	my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1970
	my ($f, $l, @securityNames);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1971
	for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1972
		for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1973
			if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1974
					($l->{'meta'}->{'directive'} ne 'createUser' &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1975
					$l->{'meta'}->{'directive'} ne 'usmUser' &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1976
					$l->{'meta'}->{'directive'} ne 'com2sec')) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1977
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1978
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1979
			if (exists $keys->{'securityName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1980
					$l->{'meta'}->{'securityName'} ne $keys->{'securityName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1981
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1982
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1983
			if (exists $keys->{'securityModel'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1984
				my ($sm) = ('usm'); 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1985
				if ($keys->{'securityModel'} eq 'v2c' || 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1986
					$keys->{'securityModel'} eq 'v1') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1987
					$sm = 'v1';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1988
				}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1989
				if (($sm eq 'v1' &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1990
				$l->{'meta'}->{'directive'} ne 'com2sec') ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1991
				($sm eq 'usm' &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1992
				($l->{'meta'}->{'directive'} ne 'createUser' &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1993
				$l->{'meta'}->{'directive'} ne 'usmUser'))) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1994
					next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1995
				}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1996
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1997
			push @securityNames, $l;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1998
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  1999
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2000
	return @securityNames;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2001
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2002
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2003
sub get_groups
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2004
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2005
	my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2006
	my ($f, $l, @groups);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2007
	for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2008
		for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2009
			if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2010
					$l->{'meta'}->{'directive'} ne 'group') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2011
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2012
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2013
			if (exists $keys->{'securityName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2014
					$l->{'meta'}->{'securityName'} ne $keys->{'securityName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2015
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2016
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2017
			if (exists $keys->{'securityModel'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2018
					$l->{'meta'}->{'securityModel'} ne $keys->{'securityModel'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2019
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2020
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2021
			if (exists $keys->{'groupName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2022
				$l->{'meta'}->{'groupName'} ne $keys->{'groupName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2023
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2024
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2025
			push @groups, $l
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2026
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2027
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2028
	return @groups;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2029
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2030
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2031
sub get_access {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2032
	my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2033
	my ($f, $l, @access);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2034
	for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2035
		for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2036
			if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2037
					$l->{'meta'}->{'directive'} ne 'access') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2038
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2039
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2040
			if (exists $keys->{'groupName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2041
					$l->{'meta'}->{'groupName'} ne $keys->{'groupName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2042
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2043
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2044
			if (exists $keys->{'viewName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2045
				($l->{'meta'}->{'readView'} ne $keys->{'viewName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2046
				$l->{'meta'}->{'writeView'} ne $keys->{'viewName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2047
				$l->{'meta'}->{'notifyView'} ne $keys->{'viewName'})) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2048
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2049
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2050
			push @access, $l
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2051
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2052
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2053
	return @access;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2054
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2055
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2056
sub get_views {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2057
	my ($keys, $configs)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2058
	my ($f, $l, @views);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2059
	if (exists $keys->{'viewName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2060
		$keys->{'viewName'} eq '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2061
		return ();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2062
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2063
	for $f (values %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2064
		for $l (@$f) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2065
			if (! exists $l->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2066
					$l->{'meta'}->{'directive'} ne 'view') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2067
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2068
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2069
			if (exists $keys->{'viewName'} && 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2070
					$l->{'meta'}->{'viewName'} ne $keys->{'viewName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2071
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2072
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2073
			push @views, $l
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2074
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2075
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2076
	return @views;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2077
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2078
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2079
sub get_old_new_config
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2080
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2081
	my ($securityName, $configs) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2082
	my ($line, @secNames, @groups, $group, $access, @accesses, @views, @old, @new);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2083
	my (@a, $keys);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2084
	$keys = {'securityName'=>$securityName};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2085
	@secNames = get_securityNames($keys, $configs);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2086
	@groups = get_groups ({'securityName'=>$securityName}, $configs);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2087
	# get other members of this group
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2088
	if (@groups > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2089
		@groups = set_union([get_groups({'groupName'=>$groups[0]->{'meta'}->{'groupName'}}, $configs)], \@groups);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2090
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2091
	for $group (@groups) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2092
		(@accesses) = (set_union(\@accesses, [get_access($group->{'meta'}, $configs)]));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2093
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2094
	for $access (@accesses) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2095
		$keys = {'viewName'=>$access->{'meta'}->{'readView'}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2096
		(@views) = (set_union(\@views, [get_views($keys, $configs)]));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2097
		$keys->{'viewName'}=$access->{'meta'}->{'writeView'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2098
		(@views) = (set_union(\@views, [get_views($keys, $configs)]));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2099
		$keys->{'viewName'}=$access->{'meta'}->{'notifyView'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2100
		(@views) = (set_union(\@views, [get_views($keys, $configs)]));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2101
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2102
	for $line (@secNames, @groups, @accesses, @views) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2103
		if (exists $line->{'orig'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2104
			push @old, $line->{'orig'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2105
		} 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2106
		if (exists $line->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2107
			push @new, $line->{'new'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2108
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2109
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2110
	return [@old], [@new];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2111
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2112
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2113
sub parse_source
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2114
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2115
	my ($line) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2116
	my ($source) = $line->{'meta'}->{'source'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2117
	my ($hostIP, $mask, $ipSegment);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2118
	# was it 'default'
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2119
	if ($source eq 'default' || $source eq '0.0.0.0') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2120
		return (inet_aton('0.0.0.0'), inet_aton('0.0.0.0'));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2121
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2122
	# try to resolve as a plain IP address or a hostname
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2123
	$ipSegment=$source;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2124
	($ipSegment, $mask) = split /\//, $source;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2125
	# try to resolve hostname as an IP address
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2126
	my ($hostent) = gethostbyname($ipSegment);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2127
	if (defined $hostent) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2128
		if ($hostent->addrtype ne AF_INET) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2129
			log_message "Unsupported address family in source $source\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2130
			exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2131
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2132
		my (@hostIPs) = @{$hostent->addr_list};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2133
		log_message "resolved $source to ".inet_ntoa($hostIPs[0])."\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2134
		$hostIP = $hostIPs[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2135
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2136
		log_message "Couldn't resolve $ipSegment as a hostname or IP address\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2137
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2138
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2139
	# try to resolve as subnet/mask
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2140
	if (defined $mask && $mask ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2141
		my $netmask;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2142
		$netmask = inet_aton($mask);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2143
		if (! defined $netmask) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2144
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2145
			# try to interpret as number between 0 and 32
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2146
			my ($bit) = (0x80000000);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2147
			$netmask = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2148
			if ($mask < 0 || $mask > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2149
				log_message "$source did not contain a valid netmask.\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2150
				exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2151
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2152
			while ($mask > 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2153
				$netmask |= $bit;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2154
				$bit = $bit >> 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2155
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2156
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2157
		my ($N, $H) = (in_addr_to_number ($netmask), in_addr_to_number
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2158
			($hostIP));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2159
		if ($H & ~$N) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2160
			log_message("source/mask mismatch - ".inet_ntoa($hostIP).'/'.inet_ntoa($netmask)."\n", $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2161
			exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2162
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2163
		return ($hostIP, $netmask);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2164
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2165
		# no netmask specified - exact match
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2166
		return ($hostIP, inet_aton('255.255.255.255'));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2167
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2168
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2169
		
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2170
sub source_overlap
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2171
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2172
	my ($linea, $lineb) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2173
	my ($ipa, $maska) = parse_source($linea);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2174
	my ($ipb, $maskb) = parse_source($lineb);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2175
	my $mask_overlap;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2176
	$ipa = in_addr_to_number($ipa);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2177
	$ipb = in_addr_to_number($ipb);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2178
	$mask_overlap = in_addr_to_number($maska) & in_addr_to_number($maskb);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2179
	my $complement = 0xffffffff & (~$mask_overlap);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2180
	if (($ipa & $mask_overlap | $complement) == ($ipb & $mask_overlap | $complement)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2181
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2182
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2183
	return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2184
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2185
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2186
sub community_conflicts
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2187
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2188
	my ($linea)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2189
	my ($community, $source) = ($linea->{'meta'}->{'community'}, $linea->{'meta'}->{'source'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2190
	my ($lines, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2191
	for $lines (values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2192
		for $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2193
			if (! exists $line->{'meta'}->{'community'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2194
				$line->{'meta'}->{'community'} ne $community) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2195
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2196
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2197
			if (! exists $line->{'meta'}->{'source'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2198
				next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2199
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2200
			if (source_overlap ($line, $linea)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2201
				return ($line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2202
			}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2203
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2204
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2205
	return undef;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2206
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2207
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2208
sub process_com2sec
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2209
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2210
    my ($lines, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2211
    my $conflict;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2212
    for $lines (values %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2213
	for $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2214
	    if (! exists $line->{'meta'}->{'directive'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2215
		    $line->{'meta'}->{'directive'} ne 'com2sec') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2216
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2217
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2218
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2219
	    $conflict = community_conflicts($line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2220
	    if (defined $conflict) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2221
		log_message "MASF source ".$line->{'meta'}->{'source'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2222
		    " conflicts with SMA source ".$conflict->{'meta'}->{'source'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2223
		    " defined for community ".$line->{'meta'}->{'community'}."\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2224
		if ($::KEEP_SMA_GROUPS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2225
		    # remove user from MASF config
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2226
		    remove_com2sec_user ($line->{'meta'}, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2227
		} elsif ($::KEEP_MASF_GROUPS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2228
		    # remove user from SMA config
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2229
		    remove_com2sec_user ($line->{'meta'}, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2230
		} elsif ($::AUTOMATED) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2231
		    # didn't define what to do so stop!
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2232
		    log_message "Conflicting source/communities found - ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2233
		    "aborting. Please resolve these conflicts manually.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2234
		    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2235
		} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2236
		    choose_group_membership($conflict->{'meta'}->{'securityName'}, $line->{'meta'}->{'securityName'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2237
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2238
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2239
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2240
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2241
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2242
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2243
sub uniquify_viewNames
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2244
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2245
    my ($prefix) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2246
    my %mappings=();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2247
    my ($lines, $line, $securityName, $i, @keys, $key, $from);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2248
    @keys = ('viewName', 'readView', 'writeView', 'notifyView');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2249
    for $lines (values %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2250
	foreach $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2251
	    for $key (@keys) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2252
		if (exists $line->{'meta'}->{$key} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2253
			$line->{'meta'}->{$key} ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2254
		    $from = $line->{'meta'}->{$key};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2255
		} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2256
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2257
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2258
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2259
		# is there already a mapping for this securityName ?
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2260
		if (exists $mappings{$from}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2261
		    $line->{'meta'}->{$key} = $mappings{$from};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2262
		    replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2263
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2264
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2265
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2266
		# generate a new securityName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2267
		$i = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2268
		while (viewName_exists($prefix.$i.$from))
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2269
		{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2270
		    $i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2271
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2272
		if (length $prefix.$i.$from > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2273
		    log_message ("Couldn't render viewName $from unique\n", $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2274
		    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2275
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2276
		$mappings{$from}=$prefix.$i.$from;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2277
		$line->{'meta'}->{$key} = $prefix.$i.$from;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2278
		replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2279
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2280
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2281
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2282
    # remove redundant view names
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2283
    my (@viewLines, @accessLines, $view, $config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2284
    for $config (\%::MASF_CONFIGS, \%::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2285
	@viewLines = get_views({}, $config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2286
	for $view (@viewLines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2287
	    @accessLines = (get_access($view->{'meta'}, \%::MASF_CONFIGS), get_access($view->{'meta'}, \%::SMA_CONFIGS));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2288
	    if (@accessLines == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2289
		replace_line($config, $view, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2290
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2291
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2292
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2293
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2294
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2295
sub uniquify_groupNames
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2296
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2297
    my ($prefix) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2298
    my %mappings=();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2299
    my ($lines, $line, $securityName, $i, $from);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2300
    for $lines (values %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2301
	foreach $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2302
	    if (exists $line->{'meta'}->{'groupName'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2303
		$from = $line->{'meta'}->{'groupName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2304
	    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2305
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2306
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2307
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2308
	    # is there already a mapping for this securityName ?
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2309
	    if (exists $mappings{$from}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2310
		$line->{'meta'}->{'groupName'} = $mappings{$from};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2311
		replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2312
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2313
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2314
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2315
	    # generate a new securityName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2316
	    $i = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2317
	    while (groupName_exists($prefix.$i.$from))
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2318
	    {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2319
		$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2320
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2321
	    if (length $prefix.$i.$from > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2322
		log_message ("Couldn't render groupName $from unique\n", $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2323
		exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2324
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2325
	    $mappings{$from}=$prefix.$i.$from;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2326
	    $line->{'meta'}->{'groupName'} = $prefix.$i.$from;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2327
	    replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2328
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2329
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2330
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2331
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2332
# remove group directives referring to undefined users
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2333
sub clean_group_membership
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2334
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2335
    my ($config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2336
    for $config (\%::MASF_CONFIGS, \%::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2337
	my (@groups) = get_lines('group', $config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2338
	my ($group);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2339
	for $group (@groups) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2340
	    my (@securityNames) = get_securityNames($group->{'meta'}, $config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2341
	    if (@securityNames == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2342
		# no securityName was defined for this directive - remove the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2343
		# directive
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2344
		log_message "Removing undefined user ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2345
		$group->{'meta'}->{'securityName'}." from group ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2346
		$group->{'meta'}->{'groupName'}."\n", $group;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2347
		replace_line($config, $group, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2348
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2349
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2350
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2351
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2352
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2353
sub uniquify_securityNames
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2354
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2355
    my ($prefix) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2356
    my ($to);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2357
    my ($lines, $line, $securityName, $i, $from, $fromLine);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2358
    for $fromLine (get_securityNames({'securityModel'=>'v1'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2359
		\%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2360
	# generate a new securityName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2361
	$from = $fromLine->{'meta'}->{'securityName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2362
	$to = get_new_securityName($prefix.$from);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2363
	for $lines (values %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2364
	    foreach $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2365
		if (! exists $line->{'meta'}->{'securityName'} ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2366
			$line->{'meta'}->{'securityName'} ne $from) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2367
		    next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2368
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2369
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2370
		$line->{'meta'}->{'securityName'} = $to;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2371
		replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2372
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2373
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2374
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2375
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2376
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2377
sub check_tokens
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2378
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2379
    my ($line, $minTokens, $maxTokens, @tokens) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2380
    my ($directive) = $line->{'meta'}->{'directive'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2381
    if (@tokens < $minTokens || @tokens > $maxTokens) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2382
	log_message "Invalid number of parameters for $directive directive ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2383
	"- Aborting\n", $line;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2384
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2385
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2386
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2387
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2388
# convert simple array of lines into hash containing data which is what we
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2389
# subsequently modify
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2390
sub add_metadata
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2391
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2392
    my ($lines, $file, $line, $i, $s, $directive, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2393
    my ($key, $j);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2394
    for $key (keys %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2395
	for ($i = 0; $i < @{$::SMA_CONFIGS{$key}}; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2396
	    $line = $::SMA_CONFIGS{$key}->[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2397
	    $::SMA_CONFIGS{$key}->[$i] = {'orig'=>$line,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2398
		'new'=>$line,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2399
		# NB the 'meta' hash doesn't contain metadata, only real data...
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2400
		'meta'=>{},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2401
		'lineno'=>$i,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2402
		'file'=>$key};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2403
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2404
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2405
    for $key (keys %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2406
	for ($i = 0; $i < @{$::MASF_CONFIGS{$key}}; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2407
	    $line = $::MASF_CONFIGS{$key}->[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2408
	    $::MASF_CONFIGS{$key}->[$i] = {'orig'=>$line,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2409
		'new'=>$line,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2410
		'meta'=>{},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2411
		'lineno'=>$i,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2412
		'file'=>$key};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2413
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2414
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2415
    for $lines (values %::SMA_CONFIGS, values %::MASF_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2416
	for $line (@$lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2417
	    ($directive, @tokens) = parse_config_line($line->{'new'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2418
	    if ($directive ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2419
		$line->{'meta'}->{'directive'} = $directive;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2420
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2421
	    if ($directive eq 'com2sec') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2422
		check_tokens($line, 3, 3, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2423
		$line->{'meta'}->{'securityName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2424
		$line->{'meta'}->{'source'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2425
		$line->{'meta'}->{'community'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2426
	    } elsif ($directive eq 'group') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2427
		check_tokens($line, 3, 3, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2428
		$line->{'meta'}->{'groupName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2429
		$line->{'meta'}->{'securityModel'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2430
		$line->{'meta'}->{'securityName'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2431
	    } elsif ($directive eq 'rouser' || $directive eq 'rwuser') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2432
		check_tokens($line, 1, 3, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2433
		$line->{'meta'}->{'securityName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2434
		if (defined $tokens[1]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2435
		    $line->{'meta'}->{'securityLevel'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2436
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2437
		if (defined $tokens[2]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2438
		    $line->{'meta'}->{'oid'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2439
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2440
	    } elsif ($directive eq 'createUser') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2441
		check_tokens($line, 3, 5, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2442
		$line->{'meta'}->{'securityName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2443
		$line->{'meta'}->{'authProtocol'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2444
		$line->{'meta'}->{'authPassword'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2445
		$line->{'meta'}->{'securityModel'} = 'usm';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2446
		if (defined $tokens[3]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2447
		    $line->{'meta'}->{'privProtocol'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2448
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2449
		if (defined $tokens[4]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2450
		    $line->{'meta'}->{'privPassword'} = $tokens[4];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2451
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2452
	    } elsif ($directive eq 'usmUser') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2453
		check_tokens($line, 11, 11, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2454
		$line->{'meta'}->{'securityName'} = securityName_from_usmUser($directive, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2455
		$line->{'meta'}->{'securityModel'} = 'usm';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2456
	    } elsif ($directive eq 'access') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2457
		check_tokens($line, 8, 8, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2458
		$line->{'meta'}->{'groupName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2459
		$line->{'meta'}->{'contextPrefix'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2460
		$line->{'meta'}->{'securityModel'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2461
		$line->{'meta'}->{'securityLevel'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2462
		$line->{'meta'}->{'contextMatch'} = $tokens[4];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2463
		$line->{'meta'}->{'readView'} = $tokens[5];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2464
		$line->{'meta'}->{'writeView'} = $tokens[6];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2465
		$line->{'meta'}->{'notifyView'} = $tokens[7];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2466
	    } elsif ($directive eq 'view') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2467
		check_tokens($line, 3, 4, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2468
		$line->{'meta'}->{'viewName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2469
		$line->{'meta'}->{'viewType'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2470
		$line->{'meta'}->{'oid'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2471
		if (defined $tokens[3]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2472
		    $line->{'meta'}->{'mask'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2473
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2474
	    } elsif ($directive eq 'rocommunity' || $directive eq 'rwcommunity') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2475
		check_tokens($line, 1, 3, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2476
		$line->{'meta'}->{'community'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2477
		if (defined $tokens[1]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2478
		    $line->{'meta'}->{'source'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2479
		} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2480
		    $line->{'meta'}->{'source'} = "0.0.0.0/0.0.0.0";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2481
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2482
		if (defined $tokens[2]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2483
		    $line->{'meta'}->{'oid'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2484
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2485
	    } elsif ($directive eq 'trapcommunity') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2486
		check_tokens($line, 1, 1, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2487
		$line->{'meta'}->{'community'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2488
	    } elsif ($directive eq 'trapsink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2489
		    $directive eq 'trap2sink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2490
		    $directive eq 'informsink') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2491
		check_tokens($line, 1, 3, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2492
		$line->{'meta'}->{'host'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2493
		if (defined $tokens[1]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2494
		    $line->{'meta'}->{'community'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2495
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2496
		if (defined $tokens[2]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2497
		    $line->{'meta'}->{'port'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2498
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2499
	    } elsif ($directive eq 'snmpNotifyFilterTable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2500
		check_tokens($line, 6, 6, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2501
		$line->{'meta'}->{'profileName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2502
		$line->{'meta'}->{'subtree'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2503
		$line->{'meta'}->{'mask'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2504
		$line->{'meta'}->{'filterType'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2505
		$line->{'meta'}->{'storageType'} = $tokens[4];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2506
		$line->{'meta'}->{'rowStatus'} = $tokens[5];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2507
	    } elsif ($directive eq 'targetParams') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2508
		check_tokens($line, 7, 7, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2509
		$line->{'meta'}->{'paramName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2510
		$line->{'meta'}->{'MPModel'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2511
		$line->{'meta'}->{'securityModel'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2512
		$line->{'meta'}->{'securityName'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2513
		$line->{'meta'}->{'securityLevel'} = $tokens[4];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2514
		$line->{'meta'}->{'storageType'} = $tokens[5];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2515
		$line->{'meta'}->{'rowStatus'} = $tokens[6];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2516
	    } elsif ($directive eq 'targetAddr') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2517
		check_tokens($line, 9, 9, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2518
		$line->{'meta'}->{'targetName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2519
		$line->{'meta'}->{'TDomain'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2520
		$line->{'meta'}->{'TAddress'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2521
		$line->{'meta'}->{'timeout'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2522
		$line->{'meta'}->{'retryCount'} = $tokens[4];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2523
		$line->{'meta'}->{'tagList'} = $tokens[5];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2524
		$line->{'meta'}->{'paramName'} = $tokens[6];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2525
		$line->{'meta'}->{'storageType'} = $tokens[7];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2526
		$line->{'meta'}->{'rowStatus'} = $tokens[8];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2527
	    } elsif ($directive eq 'snmpNotifyTable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2528
		check_tokens($line, 5, 5, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2529
		$line->{'meta'}->{'notifyName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2530
		$line->{'meta'}->{'notifyTag'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2531
		$line->{'meta'}->{'notifyType'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2532
		$line->{'meta'}->{'storageType'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2533
		$line->{'meta'}->{'rowStatus'} = $tokens[4];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2534
	    } elsif ($directive eq 'snmpNotifyFilterProfileTable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2535
		check_tokens($line, 4, 4, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2536
		$line->{'meta'}->{'paramName'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2537
		$line->{'meta'}->{'profileName'} = $tokens[1];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2538
		$line->{'meta'}->{'storageType'} = $tokens[2];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2539
		$line->{'meta'}->{'rowStatus'} = $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2540
	    } elsif ($directive eq 'master') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2541
		check_tokens($line, 1, 1, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2542
	    	$line->{'meta'}->{'masterMode'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2543
	    } elsif ($directive eq 'agentxTimeout') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2544
		check_tokens($line, 1, 1, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2545
		$line->{'meta'}->{'agentxTimeout'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2546
	    } elsif ($directive eq 'agentxRetries') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2547
		check_tokens($line, 1, 1, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2548
		$line->{'meta'}->{'agentxRetries'} = $tokens[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2549
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2550
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2551
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2552
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2553
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2554
sub convert_metadata
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2555
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2556
    my ($line, $file, $meta, $directive);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2557
    my %mps = ($MPMODEL_SNMPV1=>'v1',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2558
	    $MPMODEL_SNMPV2C=>'v2c',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2559
	    $MPMODEL_SNMPV2U=>'v2u',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2560
	    $MPMODEL_SNMPV3=>'v3');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2561
    my %sms = ($SECURITY_MODEL_ANY=>'any',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2562
	    $SECURITY_MODEL_SNMPV1=>'v1',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2563
	    $SECURITY_MODEL_SNMPV2C=>'v2c',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2564
	    $SECURITY_MODEL_USM=>'usm');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2565
    my %sls = ($SECURITY_LEVEL_NOAUTHNOPRIV=>'noAuthNoPriv',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2566
	    $SECURITY_LEVEL_AUTHNOPRIV=>'authNoPriv',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2567
	    $SECURITY_LEVEL_AUTHPRIV=>'authPriv');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2568
    my %nts = ($NOTIFY_TYPE_TRAP=>'trap',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2569
	    $NOTIFY_TYPE_INFORM=>'inform');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2570
    for $file (values %::ADDED_CONFIGS, values %::MASF_CONFIGS, values
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2571
	    %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2572
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2573
	    $meta = $line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2574
	    if (exists $meta->{'directive'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2575
		    exists $line->{'changed'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2576
		delete $line->{'changed'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2577
		$directive = $meta->{'directive'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2578
		if ($directive eq 'com2sec') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2579
		    # don't quote securityName or community
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2580
		    $line->{'new'} = "com2sec ".$meta->{'securityName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2581
			' '.$meta->{'source'}.' '.$meta->{'community'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2582
		} elsif ($directive eq 'group') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2583
		    # don't quote groupName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2584
		    $line->{'new'} = 'group '.$meta->{'groupName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2585
			' '.$meta->{'securityModel'}.' '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2586
			# don't quote securityName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2587
			$meta->{'securityName'}.'';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2588
		} elsif ($directive eq 'access') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2589
		my ($readView, $writeView, $notifyView) =
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2590
		    map { $_ eq '' ? 'none' : $_ }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2591
		($meta->{'readView'}, $meta->{'writeView'},
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2592
		 $meta->{'notifyView'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2593
		# don't quote groupName, or viewNames 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2594
		$line->{'new'} = 'access '.$meta->{'groupName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2595
		    ' "'.$meta->{'contextPrefix'}.'" '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2596
		    $meta->{'securityModel'}.' '.$meta->{'securityLevel'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2597
		    ' '.$meta->{'contextMatch'}.' '.$readView.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2598
		    ' '.$writeView.' '.$notifyView;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2599
		} elsif ($directive eq 'view') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2600
		# don't quote viewName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2601
		    $line->{'new'} = 'view '.$meta->{'viewName'}.' '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2602
			$meta->{'viewType'}.' '.$meta->{'oid'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2603
		    if (exists $meta->{'mask'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2604
			$line->{'new'}.=' '.$meta->{'mask'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2605
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2606
		} elsif ($directive eq 'createUser') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2607
		    $line->{'new'} = 'createUser "'.$meta->{'securityName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2608
			'" '.$meta->{'authProtocol'}.' "'.$meta->{'authPassword'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2609
			'"';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2610
		    if (exists $meta->{'privProtocol'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2611
			$line->{'new'}.=' '.$meta->{'privProtocol'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2612
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2613
		    if (exists $meta->{'privPassword'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2614
			$line->{'new'}.=' "'.$meta->{'privPassword'}.'" ';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2615
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2616
		} elsif ($directive eq 'trap2sink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2617
			$directive eq 'trapsink' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2618
			$directive eq 'informsink') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2619
		    $line->{'new'} = $directive.' '.$meta->{'host'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2620
		    if (exists $meta->{'community'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2621
			# don't quote community
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2622
			$line->{'new'}.=' '.$meta->{'community'}.'';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2623
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2624
		    if (exists $meta->{'port'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2625
			$line->{'new'}.=' '.$meta->{'port'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2626
		    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2627
		} elsif ($directive eq 'snmpNotifyFilterTable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2628
		    $line->{'new'} = 'snmpNotifyFilterTable "'.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2629
			$meta->{'profileName'}.'" '.$meta->{'subtree'}.' "'.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2630
			$meta->{'mask'}.'" '.$meta->{'filterType'}.' '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2631
			$meta->{'storageType'}.' '.$meta->{'rowStatus'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2632
		} elsif ($directive eq 'targetParams') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2633
		    $line->{'comment'} = '# targetParams '.$meta->{'paramName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2634
		    ' '.$mps{$meta->{'MPModel'}}.' '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2635
		    $sms{$meta->{'securityModel'}}.' '.$meta->{'securityName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2636
		    ' '.$sls{$meta->{'securityLevel'}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2637
		    $line->{'new'} = 'targetParams "'.$meta->{'paramName'}.'" '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2638
		    $meta->{'MPModel'}.' '.$meta->{'securityModel'}.' "'.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2639
		    $meta->{'securityName'}.'" '.$meta->{'securityLevel'}.' '.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2640
		    $meta->{'storageType'}.' '.$meta->{'rowStatus'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2641
		} elsif ($directive eq 'targetAddr') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2642
		    $line->{'new'} = 'targetAddr "'.$meta->{'targetName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2643
			'" '.$meta->{'TDomain'}.' '.$meta->{'TAddress'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2644
			' '.$meta->{'timeout'}.' '.$meta->{'retryCount'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2645
			' "'.$meta->{'tagList'}.'" "'.$meta->{'paramName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2646
			'" '.$meta->{'storageType'}.' '.$meta->{'rowStatus'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2647
		} elsif ($directive eq 'snmpNotifyTable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2648
		    $line->{'comment'} = '# snmpNotifyTable '.$meta->{'notifyName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2649
		    ' '.$meta->{'notifyTag'}.' '.$nts{$meta->{'notifyType'}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2650
		    $line->{'new'} = 'snmpNotifyTable "'.$meta->{'notifyName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2651
		    '" "'.$meta->{'notifyTag'}.'" '.$meta->{'notifyType'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2652
		    ' '.$meta->{'storageType'}.' '.$meta->{'rowStatus'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2653
		} elsif ($directive eq 'snmpNotifyFilterProfileTable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2654
		    $line->{'new'} = 'snmpNotifyFilterProfileTable "'.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2655
			$meta->{'paramName'}.'" "'.$meta->{'profileName'}.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2656
			'" '.$meta->{'storageType'}.' '.$meta->{'rowStatus'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2657
		} elsif ($directive eq 'master') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2658
		    $line->{'new'} = 'master '.$meta->{'masterMode'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2659
		} elsif ($directive eq 'agentxTimeout') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2660
		    $line->{'new'} = 'agentxTimeout '.$meta->{'agentxTimeout'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2661
		} elsif ($directive eq 'agentxRetries') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2662
		    $line->{'new'} = 'agentxRetries '.$meta->{'agentxRetries'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2663
		}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2664
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2665
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2666
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2667
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2668
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2669
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2670
# convert all rwuser directives to rouser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2671
sub convert_rwusers
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2672
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2673
    my ($line, $file);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2674
    my ($directive, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2675
    for $line (get_lines('rwuser', \%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2676
	$line->{'meta'}->{'directive'} = 'rouser';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2677
	replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2678
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2679
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2680
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2681
# convert all rwcommunity directives to rocommunity
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2682
sub convert_rwcommunities
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2683
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2684
    my ($line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2685
    for $line (get_lines('rwcommunity', \%::MASF_CONFIGS)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2686
	$line->{'meta'}->{'directive'} = 'rocommunity';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2687
	replace_line(\%::MASF_CONFIGS, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2688
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2689
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2690
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2691
sub securityName_from_usmUser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2692
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2693
    my ($directive, @tokens) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2694
    my ($string);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2695
    $tokens[3]=~s/^0x//;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2696
    $string = pack 'H*', $tokens[3];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2697
    return unpack 'Z*', $string;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2698
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2699
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2700
sub viewName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2701
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2702
    my ($viewName) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2703
    my ($file, $line, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2704
    for $file (values %::MASF_CONFIGS, values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2705
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2706
	    $meta=$line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2707
	    if ((exists $meta->{'readView'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2708
			$meta->{'readView'} eq $viewName) ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2709
		    (exists $meta->{'writeView'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2710
		     $meta->{'writeView'} eq $viewName) ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2711
		    (exists $meta->{'notifyView'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2712
		     $meta->{'notifyView'} eq $viewName) ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2713
		    (exists $meta->{'viewName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2714
		     $meta->{'viewName'} eq $viewName)) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2715
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2716
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2717
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2718
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2719
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2720
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2721
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2722
sub get_new_viewName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2723
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2724
    my ($prefix)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2725
    my ($viewName, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2726
    $i = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2727
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2728
    do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2729
	$viewName = $prefix.$i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2730
	if (length $viewName > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2731
	    log_message("viewName $viewName was longer than 32 characters\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2732
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2733
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2734
	$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2735
    } while (viewName_exists($viewName));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2736
    return $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2737
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2738
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2739
sub groupName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2740
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2741
    my ($groupName) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2742
    my ($file, $line, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2743
    for $file (values %::MASF_CONFIGS, values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2744
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2745
	    $meta=$line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2746
	    if (exists $meta->{'groupName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2747
		    $meta->{'groupName'} eq $groupName) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2748
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2749
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2750
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2751
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2752
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2753
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2754
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2755
sub get_new_groupName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2756
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2757
    my ($prefix)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2758
    my ($groupName, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2759
    $i = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2760
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2761
    do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2762
	$groupName = $prefix.$i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2763
	if (length $groupName > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2764
	    log_message("groupName $groupName was longer than 32 characters\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2765
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2766
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2767
	$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2768
    } while (groupName_exists($groupName));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2769
    return $groupName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2770
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2771
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2772
sub securityName_exists
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2773
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2774
    my ($securityName) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2775
    my ($file, $line, $meta);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2776
    for $file (values %::MASF_CONFIGS, values %::SMA_CONFIGS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2777
	for $line (@$file) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2778
	    $meta=$line->{'meta'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2779
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2780
	    if (exists $meta->{'securityName'} &&
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2781
		    $meta->{'securityName'} eq $securityName) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2782
		return 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2783
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2784
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2785
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2786
    return 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2787
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2788
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2789
sub get_new_securityName
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2790
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2791
    my ($prefix)=@_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2792
    my ($securityName, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2793
    $i = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2794
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2795
    do {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2796
	$securityName = $prefix.$i;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2797
	# check to see if length is more than 32 characters permitted
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2798
	# by VACM
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2799
	if (length $securityName > 32) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2800
	    log_message("securityName $securityName was longer".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2801
		    " than 32 characters\n");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2802
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2803
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2804
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2805
	$i++;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2806
    } while (securityName_exists($securityName));
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2807
    return $securityName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2808
}	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2809
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2810
sub expand_rouser
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2811
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2812
    my ($line, $default_oids) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2813
    my ($securityName, $groupName, $viewName, $secLevel, $oid);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2814
    my (@output, $readView, $writeView, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2815
    @output = ($line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2816
    $securityName = $line->{'meta'}->{'securityName'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2817
    if (! defined $line->{'meta'}->{'securityLevel'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2818
    	$secLevel = "auth";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2819
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2820
	$secLevel = $line->{'meta'}->{'securityLevel'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2821
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2822
    if (! defined $line->{'meta'}->{'oid'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2823
    	$oid = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2824
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2825
	$oid = $line->{'meta'}->{'oid'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2826
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2827
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2828
    $groupName = get_new_groupName("Group");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2829
    $viewName = get_new_viewName("View");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2830
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2831
    if ($line->{'meta'}->{'directive'} eq 'rouser') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2832
	$readView = $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2833
	$writeView = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2834
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2835
	$readView = $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2836
	$writeView = $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2837
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2838
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2839
    $output[0]->{'meta'} = {'directive'=>'group',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2840
	'groupName'=>$groupName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2841
	'securityModel'=>'usm',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2842
	'securityName'=>$securityName};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2843
    push @output, {'meta'=>{'directive'=>'access',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2844
	'groupName'=>$groupName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2845
	'contextPrefix'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2846
	'securityModel'=>'usm',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2847
	'securityLevel'=>$secLevel,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2848
	'contextMatch'=>'exact',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2849
	'readView'=>$readView,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2850
	'writeView'=>$writeView,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2851
	'notifyView'=>''}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2852
    };
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2853
    if ($oid ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2854
	push @output, {'meta'=>{'directive'=>'view',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2855
	    'viewName'=>$viewName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2856
	    'viewType'=>'included',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2857
	    'oid'=>$oid}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2858
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2859
	for ($i = 0; $i < @$default_oids; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2860
	    push @output,{'meta'=>{'directive'=>'view',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2861
		'viewName'=>$viewName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2862
		'viewType'=>'included',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2863
		'oid'=>$default_oids->[$i]}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2864
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2865
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2866
    return @output;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2867
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2868
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2869
sub expand_rocommunity
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2870
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2871
    my ($line, $default_oids) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2872
    my ($securityName, $groupName, $viewName, $community, $source, $oid);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2873
    my (@output, $readView, $writeView, $i);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2874
    @output = ($line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2875
    $community = $line->{'meta'}->{'community'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2876
    $source = $line->{'meta'}->{'source'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2877
    if (defined $line->{'meta'}->{'oid'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2878
	$oid = $line->{'meta'}->{'oid'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2879
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2880
	$oid = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2881
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2882
    	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2883
    $securityName = get_new_securityName("User");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2884
    $groupName = get_new_groupName("Group");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2885
    $viewName = get_new_viewName("View");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2886
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2887
    if ($line->{'meta'}->{'directive'} eq 'rocommunity') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2888
		$readView = $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2889
		$writeView = '';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2890
    } else { 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2891
		$readView = $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2892
		$writeView = $viewName;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2893
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2894
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2895
    $output[0]->{'meta'} = {'directive'=>"com2sec",
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2896
	'securityName'=>$securityName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2897
	'source'=>$source,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2898
	'community'=>$community
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2899
    };
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2900
    push @output, {'meta'=>{'directive'=>'group',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2901
	'groupName'=>$groupName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2902
	'securityModel'=>'v1',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2903
	'securityName'=>$securityName}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2904
    },
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2905
    {'meta'=>{'directive'=>'group',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2906
		 'groupName'=>$groupName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2907
		 'securityModel'=>'v2c',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2908
		 'securityName'=>$securityName}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2909
    },
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2910
    {'meta'=>{'directive'=>'access',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2911
		 'groupName'=>$groupName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2912
		 'contextPrefix'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2913
		 'securityModel'=>'v1',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2914
		 'securityLevel'=>'noauth',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2915
		 'contextMatch'=>'exact',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2916
		 'readView'=>$readView,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2917
		 'writeView'=>$writeView,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2918
		'notifyView'=>''}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2919
    },
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2920
    {'meta'=>{'directive'=>'access',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2921
		 'groupName'=>$groupName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2922
		 'contextPrefix'=>'',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2923
		 'securityModel'=>'v2c',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2924
		 'securityLevel'=>'noauth',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2925
		 'contextMatch'=>'exact',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2926
		 'readView'=>$readView,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2927
		 'writeView'=>$writeView,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2928
		 'notifyView'=>''}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2929
    };
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2930
    if ($oid ne '') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2931
	push @output, {'meta'=>{'directive'=>'view',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2932
	    'viewName'=>$viewName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2933
	    'viewType'=>'included',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2934
	    'oid'=>$oid}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2935
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2936
	for ($i = 0; $i < @$default_oids; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2937
	    push @output, {'meta'=>{'directive'=>'view',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2938
		'viewName'=>$viewName,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2939
		'viewType'=>'included',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2940
		'oid'=>$default_oids->[$i]}};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2941
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2942
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2943
    return @output;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2944
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2945
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2946
sub expand_rousers
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2947
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2948
    my ($configs, $default_oids) = @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2949
    my ($file, $lines, $i, $output, $line, $directive, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2950
    my (@expanded);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2951
    for $file (keys %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2952
	$lines = $configs->{$file};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2953
	$output=[];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2954
	for ($i = 0; $i < @$lines; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2955
	    $line = $lines->[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2956
	    if (! exists $line->{'meta'}->{'directive'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2957
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2958
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2959
	    $directive = $line->{'meta'}->{'directive'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2960
	    if ($directive eq 'rouser' || $directive eq 'rwuser') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2961
		# expand rocommunity directive
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2962
		@expanded = expand_rouser($line, $default_oids);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2963
		splice @$lines, $i, 1, @expanded;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2964
		$i += $#expanded;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2965
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2966
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2967
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2968
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2969
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2970
sub expand_rocommunities
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2971
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2972
    my ($configs, $default_oids)= @_;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2973
    my ($file, $lines, $i, $output, $line, $directive, @tokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2974
    my (@expanded);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2975
    for $file (keys %$configs) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2976
	$lines = $configs->{$file};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2977
	$output=[];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2978
	for ($i = 0; $i < @$lines; $i++) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2979
	    $line = $lines->[$i];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2980
	    if (! exists $line->{'meta'}->{'directive'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2981
		next;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2982
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2983
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2984
	    if ($line->{'meta'}->{'directive'} eq 'rocommunity' ||
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2985
		    $line->{'meta'}->{'directive'} eq 'rwcommunity') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2986
		# expand rocommunity directive
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2987
		@expanded = expand_rocommunity($line, $default_oids);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2988
		splice @$lines, $i, 1, @expanded;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2989
		$i += $#expanded;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2990
	    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2991
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2992
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2993
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2994
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2995
##############################################################################
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2996
# General configuration
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2997
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2998
sub install_agentx_config
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  2999
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3000
    my (@lines) = get_lines('master', \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3001
    if (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3002
	if (grep (($lines[0]->{'meta'}->{'masterMode'} eq $_),
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3003
		    ('agentx', 'all', 'yes', 'on'))) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3004
	    # master mode is enabled anyway
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3005
	} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3006
	    # master mode was disabled!
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3007
	    log_message "AgentX mastering capability has been explicitly ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3008
	    "disabled in the SMA config - Aborting.\n", $lines[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3009
	    exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3010
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3011
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3012
	# master mode has not been specified, add it.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3013
	log_message "Enabling agentX mastering for SMA.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3014
	prepend_line({'meta'=>{'directive'=>'master', 'masterMode'=>'agentx'}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3015
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3016
    @lines = get_lines('agentxTimeout', \%::SMA_CONFIGS); 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3017
    if (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3018
	if ($lines[0]->{'agentxTimeout'} < 2) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3019
	    $lines[0]->{'agentxTimeout'} = 2;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3020
	    replace_line(\%::SMA_CONFIGS, $lines[0], $lines[0]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3021
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3022
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3023
	prepend_line({'meta'=>{'directive'=>'agentxTimeout', 'agentxTimeout'=>2}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3024
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3025
    @lines = get_lines('agentxRetries', \%::SMA_CONFIGS); 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3026
    if (@lines) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3027
	if ($lines[0]->{'agentxRetries'} < 4) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3028
	    $lines[0]->{'agentxRetries'} = 4;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3029
	    replace_line(\%::SMA_CONFIGS, $lines[0], $lines[0]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3030
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3031
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3032
	prepend_line({'meta'=>{'directive'=>'agentxRetries', 'agentxRetries'=>4}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3033
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3034
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3035
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3036
sub check_agent_configs
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3037
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3038
    my ($directive, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3039
    for $directive ('agentgroup', 'agentuser', 'authtrapenable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3040
	my (@masf) = get_lines($directive, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3041
	my (@sma) = get_lines($directive, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3042
	if (@masf > 0 && @sma == 0)  {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3043
	    log_message "The following $directive directive was found in ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3044
	    "the MASF configuration but is not configured for SMA:\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3045
	    log_message $masf[0]->{'new'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3046
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3047
	} elsif (@masf > 0 && @sma > 0 && $sma[0] ne $masf[0]) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3048
	    log_message "The following $directive directive was found in ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3049
	    "the MASF configuration but differs in the  SMA configuration:\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3050
	    log_message $masf[0]->{'new'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3051
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3052
	for $line (@masf) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3053
	    # delete the line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3054
	    replace_line(\%::MASF_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3055
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3056
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3057
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3058
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3059
sub check_system_configs
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3060
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3061
    my ($directive, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3062
    for $directive ('syslocation', 'syscontact', 'sysname', 'sysservices') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3063
	my (@masf) = get_lines($directive, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3064
	my (@sma) = get_lines($directive, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3065
	if (@masf > 0 && @sma == 0)  {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3066
	    log_message "The following $directive directive was found in ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3067
	    "the MASF configuration but is not configured for SMA:\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3068
	    log_message $masf[0]->{'new'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3069
	    log_message "You may wish to set this parameter in the SMA ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3070
	    "configuration file after this script completes migration.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3071
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3072
	} elsif (@masf > 0 && @sma > 0 && $sma[0]->{'new'} ne $masf[0]->{'new'}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3073
	    log_message "The following $directive directive was found in ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3074
	    "the MASF configuration but differs in the  SMA configuration:\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3075
	    log_message $masf[0]->{'new'}."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3076
	    log_message "You may wish to set this parameter in the SMA ".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3077
	    "configuration file after this script completes migration.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3078
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3079
	for $line (@masf) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3080
	    # delete the line
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3081
	    replace_line(\%::MASF_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3082
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3083
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3084
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3085
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3086
sub process_agentaddress
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3087
{
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3088
    my ($line, $lines, @masfAgentAddress, $smaAgentAddress, $config);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3089
    (@masfAgentAddress) = get_lines ('agentaddress', \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3090
    if (@masfAgentAddress == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3091
	log_message "No agentaddress directive found for MASF\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3092
	return;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3093
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3094
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3095
    # if more than one MASF agentaddress line was specified then all but the
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3096
    # last are ignored so we should delete them
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3097
    while (@masfAgentAddress > 1) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3098
	$line = shift @masfAgentAddress;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3099
	replace_line (\%::MASF_CONFIGS, $line, {'meta'=>{}});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3100
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3101
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3102
    my (@smaTokens, @masfTokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3103
    ($smaAgentAddress) = get_lines ('agentaddress', \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3104
    if (! defined $smaAgentAddress) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3105
	log_message "SMA uses default 161 port\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3106
	@smaTokens = ('udp:161');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3107
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3108
	@smaTokens = parse_agentaddress ($smaAgentAddress->{'new'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3109
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3110
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3111
    if (defined $smaAgentAddress) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3112
	$line = $smaAgentAddress;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3113
	$config = \%::SMA_CONFIGS;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3114
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3115
	$line = $masfAgentAddress[0];
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3116
	$config = \%::MASF_CONFIGS;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3117
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3118
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3119
    if ($::DISABLE_MASF_PORT && @masfAgentAddress) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3120
	log_message "Disabling access via old MASF port\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3121
	delete $masfAgentAddress[0]->{'new'};
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3122
	return;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3123
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3124
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3125
    @masfTokens = parse_agentaddress ($masfAgentAddress[0]->{'new'});
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3126
    
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3127
    # MASF addresses must be a subset of SMA
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3128
    my ($i, $j, $okToMigrate);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3129
    $okToMigrate = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3130
    for $i (@masfTokens) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3131
	if (grep(($i eq $_), @smaTokens) == 0) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3132
	    log_message "MASF port configuration for port $i conflicts with SMA\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3133
	    $okToMigrate = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3134
	}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3135
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3136
    
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3137
    if (! $okToMigrate && ! $::USE_MASF_PORT && ! $::DISABLE_MASF_PORT) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3138
	log_message "Unable to resolve conflict - aborting\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3139
	exit 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3140
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3141
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3142
    if ($::USE_MASF_PORT) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3143
	push @smaTokens, @masfTokens;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3144
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3145
    $line->{'new'} = 'agentaddress '.(join ',',@smaTokens);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3146
    replace_line($config, $line, $line);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3147
    return;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3148
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3149
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3150
##############################################################################
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3151
# Main section starts here
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3152
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3153
# configure Getopt for CLIP compliance
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3154
Getopt::Long::Configure('bundling', 'require_order',
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3155
	'no_getopt_compat', 'no_auto_abbrev', 'no_ignore_case');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3156
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3157
my ($selectCommunity, $selectUser, $useAgentPort, $trapFilter,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3158
	$masterTrapTarget, $version, $help);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3159
$selectCommunity = 'error';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3160
$selectUser = 'error';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3161
$useAgentPort = 'error';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3162
$trapFilter = 'add';
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3163
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3164
my $result = GetOptions(
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3165
	'i|ignore-unrecognized-directives'=>\$::IGNORE_UNRECOGNIZED_DIRECTIVES,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3166
	's|skip-user'=>\$::IGNORE_ENGINEID,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3167
	'y|select-community=s'=>\$selectCommunity,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3168
	'u|select-user=s'=>\$selectUser,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3169
	'p|use-agent-port=s'=>\$useAgentPort,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3170
	't|trap-filter=s'=>\$trapFilter,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3171
	'l|master-trap-target=s'=>\$masterTrapTarget,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3172
	'c|no-community'=>\$::DONT_KEEP_V1V2C_USERS,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3173
	'r|no-trap'=>\$::DONT_KEEP_TRAP_DESTS,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3174
	'm|no-usmuser'=>\$::DONT_KEEP_V3_USERS,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3175
	'n|dry-run'=>\$::DRY_RUN,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3176
	'V|version'=>\$version,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3177
	'help|?'=>\$help);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3178
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3179
if (! $result) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3180
	print STDERR "An unrecognized option was present.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3181
	help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3182
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3183
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3184
if ($version) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3185
	version();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3186
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3187
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3188
# no interactive mode
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3189
$::AUTOMATED = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3190
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3191
$::KEEP_MASF_GROUPS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3192
$::KEEP_SMA_GROUPS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3193
if ($selectCommunity eq 'agent') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3194
    $::KEEP_MASF_GROUPS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3195
} elsif ($selectCommunity eq 'master') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3196
    $::KEEP_SMA_GROUPS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3197
} elsif ($selectCommunity ne 'error') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3198
    print STDERR "Invalid --select-community option $selectCommunity".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3199
	" specified.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3200
    help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3201
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3202
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3203
$::KEEP_MASF_USM_USERS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3204
$::KEEP_SMA_USM_USERS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3205
if ($selectUser eq 'agent') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3206
    $::KEEP_MASF_USM_USERS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3207
} elsif ($selectUser eq 'master') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3208
    $::KEEP_SMA_USM_USERS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3209
} elsif ($selectUser ne 'error') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3210
    print STDERR "Invalid --select-user option $selectUser".
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3211
	" specified.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3212
    help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3213
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3214
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3215
$::USE_MASF_PORT = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3216
$::DISABLE_MASF_PORT = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3217
if ($useAgentPort eq 'enable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3218
    $::USE_MASF_PORT = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3219
} elsif ($useAgentPort eq 'disable') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3220
    $::DISABLE_MASF_PORT = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3221
} elsif ($useAgentPort ne 'error') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3222
    print STDERR "Invalid --use-agent-port option $useAgentPort specified\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3223
    help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3224
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3225
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3226
if ($trapFilter eq 'none') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3227
    $::NO_TRAP_FILTERS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3228
} elsif ($trapFilter eq 'add') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3229
    $::NO_TRAP_FILTERS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3230
} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3231
    print STDERR "Invalid --trap-filter option $trapFilter\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3232
    help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3233
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3234
	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3235
$::EXTEND_SMA_FILTERS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3236
$::KEEP_SNMP_TARGET_PARAMS = 0;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3237
if (defined $masterTrapTarget) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3238
    if ($trapFilter eq 'none') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3239
	print STDERR "--master-trap-target cannot be used with --trap-filter=none\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3240
	help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3241
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3242
    if ($masterTrapTarget eq 'agent') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3243
	$::EXTEND_SMA_FILTERS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3244
    } elsif ($masterTrapTarget eq 'master') {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3245
	$::KEEP_SNMP_TARGET_PARAMS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3246
	$::EXTEND_SMA_FILTERS = 1;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3247
    } else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3248
	print STDERR "Invalid --master-trap-target option $masterTrapTarget specified.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3249
	help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3250
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3251
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3252
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3253
if ($help) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3254
    help();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3255
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3256
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3257
# set the umask before writing to the log file
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3258
set_umask();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3259
log_message "masfcnv ".localtime()."\n\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3260
are_we_root();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3261
stop_sma_running();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3262
stop_masf_running();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3263
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3264
@::MASF_CONFIG_FILES = ("/etc/opt/SUNWmasf/conf/snmpd.conf");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3265
$::MASF_PERSISTENT_FILE = "/var/opt/SUNWmasf/snmpd.dat";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3266
$::MASF_PERSISTENT_DIR = "/var/opt/SUNWmasf";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3267
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3268
@::SMA_CONFIG_FILES = ("/usr/lib/net-snmp/snmpd.conf");
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3269
$::SMA_PERSISTENT_FILE = "/var/net-snmp/snmpd.conf";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3270
$::SMA_PERSISTENT_DIR = "/var/net-snmp";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3271
sma_config_sanity_check();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3272
masf_config_sanity_check();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3273
read_config_files();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3274
sanity_check_config_files();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3275
add_metadata();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3276
install_agentx_config();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3277
process_agentaddress();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3278
convert_rwcommunities();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3279
expand_rocommunities(\%::MASF_CONFIGS, [$ENTITY_MIB_OID, $SUNPLAT_MIB_OID]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3280
expand_rocommunities(\%::SMA_CONFIGS, [$INTERNET_OID]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3281
convert_rwusers();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3282
expand_rousers(\%::MASF_CONFIGS, [$ENTITY_MIB_OID, $SUNPLAT_MIB_OID]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3283
expand_rousers(\%::SMA_CONFIGS, [$INTERNET_OID]);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3284
clean_group_membership();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3285
if (! $::DONT_KEEP_V1V2C_USERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3286
    uniquify_securityNames('masf');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3287
    process_com2sec();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3288
} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3289
    remove_v1v2c_users();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3290
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3291
uniquify_groupNames('masf');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3292
check_usm_securityNames();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3293
process_engineIDs();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3294
if (! $::DONT_KEEP_V3_USERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3295
    process_usm_securityNames();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3296
} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3297
    remove_v3_users();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3298
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3299
uniquify_viewNames('masf');
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3300
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3301
process_trapcommunity(\%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3302
process_trapcommunity(\%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3303
if ($::DONT_KEEP_TRAP_DESTS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3304
    remove_trap_destinations();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3305
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3306
check_duplicate_trap_destinations();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3307
if ($::NO_TRAP_FILTERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3308
    # simplistic trap processing
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3309
    # no further filtering
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3310
} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3311
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3312
    if ($::EXTEND_SMA_FILTERS) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3313
	# "master"
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3314
	# if the administrator selects EXTEND_SMA_FILTERS and
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3315
	# KEEP_SNMP_TARGET_PARAMS is selected then: MASF trap destinations are
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3316
	# migrated using existing SMA targetParams, targetAddrs, filterProfiles
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3317
	# if possible. SMA trap destinations keep existing targetParams and
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3318
	# have filterProfiles updated to INCLUDE MASF traps. Targets present in
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3319
	# both SMA and MASF configs end up receiving all traps with SMA params.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3320
	# 1. Update SMA filterProfiles to include MASF traps
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3321
	# 2. Expand existing MASF trapsinks to targetAddrs, params, and profiles
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3322
	# identifying overlapping trap destinations and using them where
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3323
	# appropriate
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3324
	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3325
	# "agent"
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3326
	# if the administrator selects EXTEND_SMA_FILTERS and
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3327
	# KEEP_SNMP_TARGET_PARAMS is not selected then: MASF trap destinations
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3328
	# are migrated using MASF targetParams, targetAddrs, filterProfiles.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3329
	# All SMA trap destinations not in MASF use SMA params and have MASF
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3330
	# traps INCLUDED.  New params are created for targets present in both
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3331
	# SMA and MASF which use tag specifically for MASF. Targets present in
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3332
	# both SMA and MASF configs end up receiving all traps with MASF params.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3333
	# 1. Update SMA filterProfiles to include MASF traps 
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3334
	# 2. Expand existing MASF trapsinks to new targetAddrs, params,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3335
	# profiles, identifying overlapping trap destinations and profiles,
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3336
	# transferring them to new SMA params and retain original profiles.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3337
	
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3338
	# selecting KEEP_SNMP_TARGET_PARAMS without EXTEND_SMA_FILTERS is not an
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3339
	# option
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3340
	extend_sma_trap_filters();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3341
    }
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3342
    # "add"
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3343
    # if the administrator selects neither option then: All MASF trap
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3344
    # configurations are translated to new params, targetAddrs, filters which
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3345
    # have ONLY MASF traps included in the profile.  Targets present in both
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3346
    # MASF and SMA may receive duplicate traps, depending upon the SMA filter
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3347
    # profile.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3348
    # 1. Expand existing MASF trapsinks to new targetAddrs, params, profiles.
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3349
    process_trapsinks();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3350
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3351
check_system_configs();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3352
check_agent_configs();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3353
convert_metadata();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3354
if (! $::DRY_RUN) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3355
    backup_files();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3356
    remove_masf_persistent_file();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3357
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3358
if ($::DRY_RUN) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3359
    print "Contents of ".$::SMA_CONFIG_FILES[0]."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3360
    print "\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3361
    *FH = *STDOUT;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3362
} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3363
    open (FH, "> ".$::SMA_CONFIG_FILES[0]) || die "Couldn't open file ".$::SMA_CONFIG_FILES[0]." for writing.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3364
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3365
my ($l);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3366
for $l (@{$::ADDED_CONFIGS{'prepend'}}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3367
    print_line (\*FH, $l);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3368
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3369
dump_config(\*FH, $::SMA_PERSISTENT_FILE, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3370
dump_config(\*FH, $::MASF_PERSISTENT_FILE, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3371
for $l (@{$::ADDED_CONFIGS{'append'}}) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3372
    print_line (\*FH, $l);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3373
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3374
if ($::DRY_RUN) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3375
    print "=======================\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3376
    print "Contents of ".$::SMA_PERSISTENT_FILE."\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3377
    print "=======================\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3378
} else {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3379
    close FH;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3380
    open (FH, "> ".$::SMA_PERSISTENT_FILE) || die "Couldn't open file ".$::SMA_PERSISTENT_FILE." for writing.\n";
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3381
}
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3382
dump_persistent_storage(\*FH, $::SMA_PERSISTENT_FILE, \%::SMA_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3383
dump_persistent_storage(\*FH, $::MASF_PERSISTENT_FILE, \%::MASF_CONFIGS);
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3384
if (! $::DRY_RUN) {
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3385
    close FH;
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3386
    install_template_config_file();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3387
    install_new_wrapper_script();
ee0fb1eabcbf 7041085 move net-snmp to userland
gowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
parents:
diff changeset
  3388
}