I have two data sources - 1. Discovered data. Can be either a lookup file or a db table. Let's assume db table. I'm pulling data from table using splunk app for DB connect. 2. A lookup file.
Scenar...
See more...
I have two data sources - 1. Discovered data. Can be either a lookup file or a db table. Let's assume db table. I'm pulling data from table using splunk app for DB connect. 2. A lookup file.
Scenario: I will have two columns OS_name and OS_Version coming from the discovery_data db table. I will also have a os_latest_release.csv lookup file which will have three columns - OperatingSystem, Existing_OSType, Latest_Available_Version.
OperatingSystem
ExistingOSType
Latest_Available_Version
AIX
any
7.3
HP-UX
any
11i v3
Linux
any
RHEL 9.1
Linux
SuSE Enterprise Server 11 (3.0.101-108.2
SUSE Linux Enterprise Server 15
Linux
ubuntu_12_04
Ubuntu 22.10
Linux
Oracle Linux Server 7.9
Oracle Linux 9.1
Linux Debian
any
Debian version 11
Linux Lincase
any
LINUX Lincase SL 7.9
Other
other
TBC
Solaris
any
Solaris 11.4
SunOS/Solaris
any
Solaris 11.4
VMware
any
vSphere ESXi 8.0
Windows
Windows 10
Windows 11 version 22H2
Win2012R2 6.3.9600
any
Windows Server 2022
Windows
any
Windows Server 2022
For every OS_name and OS_version there will be a matching combination/entry in the lookup file.
The ExistingOSType column in lookup file will either have the version details similar (not necessarily same, strings may not match as-is) to discovered data or will have 'any' as field value (i.e., no matter which discovered version or os type be, the latest version will be same for the given OS_name).
Now I have to come up with latest Latest_Available_Version column for each row of data coming from db table. Conditions to be considered - 1. if db.OS_name=L.OperatingSystem and db.OS_version=L.Existing_OSType then Latest_Available_Version . if there's no match, then 2. set db.Latest_Available_Version =l.Latest_Available_Version where db.OS_name=L.OperatingSystem and L.Existing_OSType=any
Any help, please?