diff --git a/webapp/sources/ldap-inventory/inventory-api/src/main/scala/com/normation/inventory/services/core/FullInventoryRepository.scala b/webapp/sources/ldap-inventory/inventory-api/src/main/scala/com/normation/inventory/services/core/FullInventoryRepository.scala index 4d3ae4e510b..5fba87c8d5d 100644 --- a/webapp/sources/ldap-inventory/inventory-api/src/main/scala/com/normation/inventory/services/core/FullInventoryRepository.scala +++ b/webapp/sources/ldap-inventory/inventory-api/src/main/scala/com/normation/inventory/services/core/FullInventoryRepository.scala @@ -98,21 +98,9 @@ trait WriteOnlyMachineRepository[R] { trait MachineRepository[R] extends ReadOnlyMachineRepository with WriteOnlyMachineRepository[R] trait ReadOnlyFullInventoryRepository { - - /** - * Retrieve a full ServerAndMachine. - * TODO: allows to lazy-load some heavy parts, like software, machine elements, etc. - */ def get(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[FullInventory]] def get(id: NodeId): IOResult[Option[FullInventory]] def getMachineId(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[(MachineUuid, InventoryStatus)]] - - def getAllInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, FullInventory]] - - // get inventories for a set of nodes - def getInventories(inventoryStatus: InventoryStatus, nodeIds: Set[NodeId]): IOResult[Map[NodeId, FullInventory]] - - def getAllNodeInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, NodeInventory]] } trait WriteOnlyFullInventoryRepository[R] { diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionInventoryParser.scala b/webapp/sources/ldap-inventory/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionInventoryParser.scala index ec80c6848b8..ee1b8350656 100644 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionInventoryParser.scala +++ b/webapp/sources/ldap-inventory/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionInventoryParser.scala @@ -492,6 +492,8 @@ class FusionInventoryParser( .setTo(NodeId(policyServerId)) .modify(_.node.main.id) .setTo(NodeId(uuid)) + .modify(_.machine.id.value) + .setTo(IdGenerator.md5Hash(uuid)) .modify(_.node.agents) .setTo(agents.map(_._1.copy(capabilities = capabilities))) .modify(_.node.customProperties) diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs deleted file mode 100644 index 3a243778326..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs +++ /dev/null @@ -1,3691 +0,0 @@ - - - - - - -www-data -zabbix -sync -munin -list -nicolas -nicolas.charles -mcerda -irc -libuuid -daemon -ntp -news -Debian-exim -statd -gnats -man -alice -sys -nobody -uucp -lp -snmp -bin -proxy -sshd -backup -nperron -mail -games -francois.armand -jclarke - - - 2017-02-01 17:06:35 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - PIIX_IDE - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371SB PIIX3 USB [Natoma/Triton II] - uhci_hcd - Intel Corporation - 82371SB PIIX3 USB [Natoma/Triton II] - 0c03 - 00:01.2 - 7020 - 01 - USB controller - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - GD 5446 - Cirrus Logic - GD 5446 - 0300 - 00:02.0 - 00b8 - VGA compatible controller - 1013 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 0500 - 00:03.0 - 1002 - RAM memory - 1af4 - - - 53c895a - sym53c8xx - LSI Logic / Symbios Logic - 53c895a - 0100 - 00:04.0 - 0012 - SCSI storage controller - 1000 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:05.0 - 1000 - Ethernet controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:06.0 - 1001 - SCSI storage controller - 1af4 - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext3 - 6119 - bf0779e8-397c-4928-a5c6-6f3c93de451f - 7666 - / - /dev/vda1 - - - LOGNAME - root - - - TERM - xterm - - - RUDDER_BIN - /opt/rudder/bin/rudder - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - - - SHELL - /bin/bash - - - CUSTOMREF - debian-5-64-52:54:00:49:45:ac - - - _ - /opt/rudder/bin/perl - - - SSH_CONNECTION - 192.168.90.10 37942 192.168.110.21 22 - - - MAIL - /var/mail/root - - - DPKG_MAINTSCRIPT_PACKAGE - rudder-agent - - - BASEDIR - /opt/rudder/share/commands - - - HOME - /root - - - DPKG_NO_TSTP - yes - - - SHLVL - 7 - - - CLIENTREF - Labo Normation - - - SSH_TTY - /dev/pts/0 - - - USER - root - - - DPKG_RUNNING_VERSION - 1.14.31 - - - SSH_CLIENT - 192.168.90.10 37942 22 - - - PWD - /var/rudder - - - DEBIAN_FRONTEND - noninteractive - - - x86_64-linux-thread-multi - Other - 131071 - Wed Feb 1 14:57 - 192.168.110.1 - 192.168.110.1 - 2 - 192.168.110.21 - root - 89 - debian-5-64 - #1 SMP Sun Mar 4 21:48:06 UTC 2012 - Debian GNU/Linux 5.0.10 - 2.6.26-2-amd64 - 1 - QEMU Virtual CPU version 0.12 - 400 - root - 41E38FBE-8241-2252-621E-5D6FE1DB22EB - QEMU - labo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - Keyboard - - - PC Speaker - PC Speaker - Keyboard - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 20 - jclarke - dialout - - - 24 - jclarke - cdrom - - - 25 - jclarke - floppy - - - 27 - mcerda - sudo - - - 29 - jclarke - audio - - - 44 - jclarke - video - - - 46 - jclarke - plugdev - - - 1002 - mcerda - testgroup - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /bin/sh - - - /bin - 2 - bin - bin - /bin/sh - - - /dev - 3 - sys - sys - /bin/sh - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /bin/sh - - - /var/cache/man - 6 - man - man - /bin/sh - - - /var/spool/lpd - 7 - lp - lp - /bin/sh - - - /var/mail - 8 - mail - mail - /bin/sh - - - /var/spool/news - 9 - news - news - /bin/sh - - - /var/spool/uucp - 10 - uucp - uucp - /bin/sh - - - /bin - 13 - proxy - proxy - /bin/sh - - - /var/www - 33 - www-data - www-data - /bin/sh - - - /var/backups - 34 - backup - backup - /bin/sh - - - /var/list - 38 - list - Mailing List Manager - /bin/sh - - - /var/run/ircd - 39 - irc - ircd - /bin/sh - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /bin/sh - - - /nonexistent - 65534 - nobody - nobody - /bin/sh - - - /var/lib/libuuid - 100 - libuuid - - /bin/sh - - - /var/spool/exim4 - 101 - Debian-exim - - /bin/false - - - /var/lib/nfs - 102 - statd - - /bin/false - - - /home/jclarke - 1000 - jclarke - Jonathan Clarke,,, - /bin/bash - - - /var/run/sshd - 103 - sshd - - /usr/sbin/nologin - - - /var/lib/munin - 104 - munin - - /bin/false - - - /var/lib/snmp - 105 - snmp - - /bin/false - - - /home/ntp - 106 - ntp - - /bin/false - - - /home/mcerda - 1001 - mcerda - Matthieu CERDA,,, - /bin/bash - - - /home/nperron - 1002 - nperron - ,,, - /bin/bash - - - /home/alice - 1003 - alice - Alice - /bin/bash - - - /var/run/zabbix-server/ - 107 - zabbix - - /bin/false - - - /home/nicolas.charles - 1004 - nicolas.charles - Nicolas CHARLES - /bin/bash - - - /home/francois.armand - 1005 - francois.armand - Fran?ois ARMAND - /bin/bash - - - /home/nicolas - 1006 - nicolas - Nicolas Charles - /bin/bash - - - 96 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.110.21 - 192.168.110.1 - 255.255.255.0 - 192.168.110.0 - 52:54:00:49:45:ac - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fe49:45ac - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:49:45:ac - Up - ethernet - 0 - - - 2017-02-01 14:37:55 - labo.normation.com - debian-5-64.labo.normation.com - Debian GNU/Linux 5.0.10 - linux - 2.6.26-2-amd64 - Debian - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAunDs7Zo+0GdoPTUawDtaChvIL5IhLE7RLPKm7GPFHwEheQiEDfvTDOAysMfdJPVE1Cej1+VXOGUwRSjkCYa2SGZk08ZzOSNtGAkbwhdPKLBFB3qomiH9xz5m2Ctll6Wt2tC37q/OflU8+SI/1ipTYZcLPmVNTVKFiWqleEiTJScW+/NUQFrC+f6GyvmGNp7TlXLdllbC9ngN5uO0xUH7NuQHHa3S0dhETXrMIWRKnldgCbiuG/zCpe7iQv2swiP5dlA4hbYNp05wdugsg+YGgW/BQGlI7ow+v0KcIY/L/jxFEocrtGlDXgJb3mtwCjzySB3gm+Y+DqYDjj98hDj8WQ== - - CET - +0100 - - 5.0.10 - - - init [2] - 0.0 - 0.6 - 1 - 2017-02-01 14:37 - ? - root - 10316 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2017-02-01 14:37 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 3 - 2017-02-01 14:37 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 4 - 2017-02-01 14:37 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 5 - 2017-02-01 14:37 - ? - root - 0 - - - [events/0] - 0.0 - 0.0 - 6 - 2017-02-01 14:37 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 7 - 2017-02-01 14:37 - ? - root - 0 - - - [kblockd/0] - 0.0 - 0.0 - 41 - 2017-02-01 14:37 - ? - root - 0 - - - [kacpid] - 0.0 - 0.0 - 43 - 2017-02-01 14:37 - ? - root - 0 - - - [kacpi_notify] - 0.0 - 0.0 - 44 - 2017-02-01 14:37 - ? - root - 0 - - - [ksuspend_usbd] - 0.0 - 0.0 - 88 - 2017-02-01 14:37 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 94 - 2017-02-01 14:37 - ? - root - 0 - - - [kseriod] - 0.0 - 0.0 - 97 - 2017-02-01 14:37 - ? - root - 0 - - - [pdflush] - 0.0 - 0.0 - 137 - 2017-02-01 14:37 - ? - root - 0 - - - [pdflush] - 0.0 - 0.0 - 138 - 2017-02-01 14:37 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 139 - 2017-02-01 14:37 - ? - root - 0 - - - [aio/0] - 0.0 - 0.0 - 140 - 2017-02-01 14:37 - ? - root - 0 - - - [ata/0] - 0.0 - 0.0 - 556 - 2017-02-01 14:37 - ? - root - 0 - - - [ata_aux] - 0.0 - 0.0 - 557 - 2017-02-01 14:37 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 636 - 2017-02-01 14:38 - ? - root - 0 - - - [kjournald] - 0.0 - 0.0 - 708 - 2017-02-01 14:38 - ? - root - 0 - - - udevd --daemon - 0.0 - 0.4 - 784 - 2017-02-01 14:38 - ? - root - 16916 - - - [kpsmoused] - 0.0 - 0.0 - 1095 - 2017-02-01 14:38 - ? - root - 0 - - - [vballoon] - 0.0 - 0.0 - 1108 - 2017-02-01 14:38 - ? - root - 0 - - - /sbin/portmap - 0.0 - 0.4 - 1421 - 2017-02-01 14:38 - ? - daemon - 8024 - - - /sbin/rpc.statd - 0.0 - 0.5 - 1432 - 2017-02-01 14:38 - ? - statd - 10140 - - - /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1 - 0.0 - 1.3 - 1629 - 2017-02-01 14:38 - ? - snmp - 49740 - - - /usr/sbin/rsyslogd -c3 - 0.1 - 1.5 - 1646 - 2017-02-01 14:38 - ? - root - 82876 - - - /usr/sbin/acpid - 0.0 - 0.5 - 1663 - 2017-02-01 14:38 - ? - root - 3800 - - - /usr/sbin/cron - 0.0 - 0.9 - 1684 - 2017-02-01 14:38 - ? - root - 19836 - - - /usr/sbin/ntpd -p /var/run/ntpd.pid -u 106:107 -g - 0.0 - 1.0 - 1698 - 2017-02-01 14:38 - ? - ntp - 22388 - - - /usr/sbin/munin-node - 0.0 - 2.6 - 1769 - 2017-02-01 14:38 - ? - root - 38296 - - - dhclient3 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0 - 0.0 - 0.5 - 2010 - 2017-02-01 14:38 - ? - root - 6304 - - - /usr/sbin/sshd - 0.0 - 0.6 - 2033 - 2017-02-01 14:38 - ? - root - 48872 - - - /sbin/getty 38400 tty2 - 0.0 - 0.5 - 3205 - 2017-02-01 14:38 - tty2 - root - 3800 - - - /sbin/getty 38400 tty3 - 0.0 - 0.5 - 3206 - 2017-02-01 14:38 - tty3 - root - 3800 - - - /sbin/getty 38400 tty4 - 0.0 - 0.5 - 3207 - 2017-02-01 14:38 - tty4 - root - 3800 - - - /sbin/getty 38400 tty5 - 0.0 - 0.5 - 3208 - 2017-02-01 14:38 - tty5 - root - 3800 - - - /sbin/getty 38400 tty6 - 0.0 - 0.5 - 3209 - 2017-02-01 14:38 - tty6 - root - 3800 - - - /sbin/getty 38400 tty1 - 0.0 - 0.5 - 3253 - 2017-02-01 14:39 - tty1 - root - 3800 - - - sshd: root@pts/0 - 0.0 - 2.5 - 8527 - 2017-02-01 14:57 - ? - root - 65936 - - - -bash - 0.0 - 1.8 - 8529 - 2017-02-01 14:57 - pts/0 - root - 18832 - - - /var/rudder/cfengine-community/bin/cf-serverd - 0.0 - 6.2 - 24532 - 2017-02-01 17:04 - ? - root - 44244 - - - /var/rudder/cfengine-community/bin/cf-execd - 0.0 - 4.6 - 24695 - 2017-02-01 17:04 - ? - root - 43576 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf && "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 1.2 - 26352 - 2017-02-01 17:06 - ? - root - 8836 - - - /var/rudder/cfengine-community/bin/cf-agent - 40.5 - 18.2 - 26363 - 2017-02-01 17:06 - ? - root - 55424 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs --scan-homedirs - 0.0 - 1.3 - 27242 - 2017-02-01 17:06 - ? - root - 8856 - - - /opt/rudder/bin/perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --local=/var/rudder/tmp/inventory/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs --scan-homedirs - 22.6 - 44.9 - 27254 - 2017-02-01 17:06 - ? - root - 105936 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 1.2 - 27261 - 2017-02-01 17:06 - ? - root - 8840 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 1.0 - 27262 - 2017-02-01 17:06 - ? - root - 14732 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEA7HZ4QZNfe+/ek0wKi6PmyhRewFVYYsBGauPclzHaT2995TlOzxWA -sJrRWxLsCgTbIy7i369SV6v1gtv5KRxsyapvbMixWgBL7U2QN2s7UEw0kms728Bn -tN2TYBnItwepl7ACdjl7MVTSUcMVsFdqZOhSKSIvZIEuo4ZNU7lI7CmOVFJLyFFa -pun5zwRuvidIm0PF5Ko/2fFpfUf5sTjlBcpMTL/76psRhZJhooDAL8TVm0ndwbWS -qQKDZ5kVLp6wRYwnvCXDHsecUWsHKqdxBNAYn1VVOp8HS3U1PShinW4+UY2oMEdW -PNdnwYzJMtkuVsNoEeSLq0KK652KS3Km3wIBIw== ------END RSA PUBLIC KEY----- - - root - orchestrateur-4 - root - - - cfengine - dumpdatastate - bodydefault - - debian-5-64.labo.normation.com - - 8b168194-c0b4-41ab-b2b5-9571a8906d59 - - - all - 88 - deb - acpi-support-base - 0.109-11 - - - amd64 - 196 - deb - acpid - 1.0.8-1lenny4 - - - all - 944 - deb - adduser - 3.110 - - - amd64 - 3608 - deb - apache2.2-common - 2.2.9-10+lenny12 - - - amd64 - 4652 - deb - apt - 0.7.20.2+lenny2 - - - amd64 - 396 - deb - apt-utils - 0.7.20.2+lenny2 - - - amd64 - 9808 - deb - aptitude - 0.4.11.11-1~lenny2 - - - amd64 - 1180 - deb - aspell - 0.60.6-1 - - - all - 644 - deb - aspell-fr - 0.50-3-6 - - - amd64 - 432 - deb - base-files - 5lenny11 - - - amd64 - 188 - deb - base-passwd - 3.5.20 - - - amd64 - 1300 - deb - bash - 3.2-4 - - - all - 448 - deb - bash-completion - 20080705 - - - amd64 - 204 - deb - bc - 1.06.94-3 - - - amd64 - 144 - deb - bind9-host - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 7912 - deb - binutils - 2.18.1~cvs20080103-7 - - - amd64 - 644 - deb - bsdmainutils - 6.1.10 - - - amd64 - 168 - deb - bsdutils - 1:2.13.1.1-1 - - - amd64 - 48 - deb - build-essential - 11.4 - - - amd64 - 572 - deb - busybox - 1:1.10.2-2 - - - amd64 - 160 - deb - bzip2 - 1.0.5-1+lenny1 - - - all - 748 - deb - ca-certificates - 20080809 - - - all - 76 - deb - chkconfig - 11.0-79.1-1 - - - all - 428 - deb - console-common - 0.7.80 - - - all - 3332 - deb - console-data - 2:1.07-11 - - - all - 1204 - deb - console-setup - 1.28 - - - all - 676 - deb - console-terminus - 4.26-2.1 - - - amd64 - 948 - deb - console-tools - 1:0.2.3dbs-65.1 - - - amd64 - 11448 - deb - coreutils - 6.10-6 - - - amd64 - 696 - deb - cpio - 2.9-13lenny1 - - - amd64 - 72 - deb - cpp - 4:4.3.2-2 - - - amd64 - 8116 - deb - cpp-4.3 - 4.3.2-1.1 - - - amd64 - 320 - deb - cron - 3.0pl1-105 - - - amd64 - 320 - deb - curl - 7.18.2-8lenny6 - - - all - 1928 - deb - dbconfig-common - 1.8.39 - - - amd64 - 216 - deb - dc - 1.06.94-3 - - - all - 1508 - deb - debconf - 1.5.24 - - - all - 1100 - deb - debconf-i18n - 1.5.24 - - - all - 1348 - deb - debhelper - 7.0.15 - - - all - 64 - deb - debian-archive-keyring - 2010.08.28~lenny1 - - - all - 1190 - deb - debian-faq - 4.0.4 - - - amd64 - 276 - deb - debianutils - 2.30 - - - amd64 - 532 - deb - dhcp3-client - 3.1.1-6+lenny6 - - - amd64 - 540 - deb - dhcp3-common - 3.1.1-6+lenny6 - - - all - 825 - deb - dictionaries-common - 0.98.12 - - - amd64 - 764 - deb - diff - 2.8.1-12 - - - amd64 - 184 - deb - dmidecode - 2.9-1 - - - amd64 - 364 - deb - dnsutils - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - all - 376 - deb - doc-debian - 4.0.1 - - - all - 1872 - deb - doc-debian-fr - 3.1.3.1 - - - all - 4804 - deb - doc-linux-fr-text - 2005.08-1 - - - all - 8616 - deb - doc-linux-text - 2008.08-1 - - - amd64 - 6712 - deb - dpkg - 1.14.31 - - - all - 1960 - deb - dpkg-dev - 1.14.31 - - - amd64 - 312 - deb - e2fslibs - 1.41.3-1 - - - amd64 - 2088 - deb - e2fsprogs - 1.41.3-1 - - - amd64 - 156 - deb - ed - 0.7-3 - - - amd64 - 320 - deb - eject - 2.1.5+deb1-4 - - - amd64 - 1656 - deb - exim4-base - 4.69-9+lenny4 - - - all - 1104 - deb - exim4-config - 4.69-9+lenny4 - - - amd64 - 140 - deb - file - 4.26-1 - - - amd64 - 1692 - deb - findutils - 4.4.0-2 - - - amd64 - 160 - deb - ftp - 0.17-18 - - - amd64 - 2264 - deb - fusioninventory-agent - 2.1.9-3 - - - amd64 - 40 - deb - g++ - 4:4.3.2-2 - - - amd64 - 8808 - deb - g++-4.3 - 4.3.2-1.1 - - - amd64 - 1794 - deb - gawk - 1:3.1.5.dfsg-4.1 - - - amd64 - 64 - deb - gcc - 4:4.3.2-2 - - - amd64 - 140 - deb - gcc-4.2-base - 4.2.4-6 - - - amd64 - 4324 - deb - gcc-4.3 - 4.3.2-1.1 - - - amd64 - 160 - deb - gcc-4.3-base - 4.3.2-1.1 - - - amd64 - 8052 - deb - gettext - 0.17-4 - - - amd64 - 984 - deb - gettext-base - 0.17-4 - - - amd64 - 4976 - deb - gnupg - 1.4.9-3+lenny1 - - - amd64 - 336 - deb - gpgv - 1.4.9-3+lenny1 - - - amd64 - 1204 - deb - grep - 2.5.3~dfsg-6 - - - amd64 - 2604 - deb - groff-base - 1.18.1.1-21 - - - amd64 - 1884 - deb - grub - 0.97-47lenny2 - - - amd64 - 332 - deb - grub-common - 1.96+20080724-16 - - - amd64 - 248 - deb - gzip - 1.3.12-6+lenny1 - - - amd64 - 84 - deb - hostname - 2.95 - - - amd64 - 288 - deb - html2text - 1.3.2a-5 - - - amd64 - 188 - deb - htop - 0.7-1 - - - amd64 - 1968 - deb - iamerican - 3.1.20.0-4.4 - - - amd64 - 1968 - deb - ibritish - 3.1.20.0-4.4 - - - amd64 - 8768 - deb - ifrench-gut - 1:1.0-24 - - - amd64 - 228 - deb - ifupdown - 0.6.8+nmu1 - - - amd64 - 376 - deb - info - 4.11.dfsg.1-4 - - - all - 412 - deb - initramfs-tools - 0.92o - - - amd64 - 392 - deb - initscripts - 2.86.ds1-61 - - - amd64 - 264 - deb - insserv - 1.12.0-4 - - - all - 108 - deb - installation-report - 2.38 - - - all - 112 - deb - intltool-debian - 0.35.0+20060710.1 - - - amd64 - 984 - deb - iproute - 20080725-2 - - - amd64 - 1356 - deb - iptables - 1.4.2-6 - - - amd64 - 128 - deb - iputils-ping - 3:20071127-1+lenny1 - - - amd64 - 424 - deb - ispell - 3.1.20.0-4.4 - - - amd64 - 432 - deb - klibc-utils - 1.5.12-2lenny1 - - - all - 1316 - deb - language-env - 0.69 - - - amd64 - 56 - deb - laptop-detect - 0.13.6 - - - amd64 - 244 - deb - less - 418-1 - - - amd64 - 52 - deb - libacl1 - 2.2.47-2 - - - amd64 - 280 - deb - libacl1-dev - 2.2.47-2 - - - amd64 - 304 - deb - libapr1 - 1.2.12-5+lenny5 - - - amd64 - 212 - deb - libaprutil1 - 1.2.12+dfsg-8+lenny5 - - - amd64 - 2512 - deb - libaspell15 - 0.60.6-1 - - - amd64 - 40 - deb - libattr1 - 1:2.4.43-2 - - - amd64 - 104 - deb - libattr1-dev - 1:2.4.43-2 - - - amd64 - 100 - deb - libbind9-40 - 1:9.5.1.dfsg.P3-1+lenny1 - - - amd64 - 80 - deb - libbind9-50 - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 132 - deb - libblkid1 - 1.41.3-1 - - - amd64 - 124 - deb - libbz2-1.0 - 1.0.5-1+lenny1 - - - amd64 - 11472 - deb - libc6 - 2.7-18lenny7 - - - amd64 - 10964 - deb - libc6-dev - 2.7-18lenny7 - - - amd64 - 9224 - deb - libc6-i386 - 2.7-18lenny7 - - - amd64 - 64 - deb - libcap1 - 1:1.10-14 - - - amd64 - 72 - deb - libcap2 - 2.11-2 - - - amd64 - 96 - deb - libcomerr2 - 1.41.3-1 - - - amd64 - 236 - deb - libcompress-raw-zlib-perl - 2.012-1lenny1 - - - all - 156 - deb - libcompress-zlib-perl - 2.012-1 - - - amd64 - 528 - deb - libconsole - 1:0.2.3dbs-65.1 - - - amd64 - 464 - deb - libcurl3 - 7.18.2-8lenny6 - - - amd64 - 888 - deb - libcwidget3 - 0.5.12-4 - - - amd64 - 1288 - deb - libdb4.5 - 4.5.20-13 - - - amd64 - 1372 - deb - libdb4.6 - 4.6.21-11 - - - amd64 - 176 - deb - libdevmapper1.02.1 - 2:1.02.27-4 - - - all - 80 - deb - libdigest-hmac-perl - 1.01-7 - - - amd64 - 116 - deb - libdigest-sha1-perl - 2.11-2+b1 - - - amd64 - 1420 - deb - libdns45 - 1:9.5.1.dfsg.P3-1+lenny1 - - - amd64 - 1548 - deb - libdns58 - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 176 - deb - libedit2 - 2.11~20080614-1 - - - amd64 - 548 - deb - libept0 - 0.5.22 - - - amd64 - 116 - deb - libevent1 - 1.3e-3 - - - amd64 - 364 - deb - libexpat1 - 2.0.1-4+lenny3 - - - all - 64 - deb - libfile-remove-perl - 1.42-1 - - - all - 120 - deb - libfont-afm-perl - 1.20-1 - - - amd64 - 264 - deb - libgc1c2 - 1:6.8-1.1 - - - amd64 - 132 - deb - libgcc1 - 1:4.3.2-1.1 - - - amd64 - 504 - deb - libgcrypt11 - 1.4.1-1 - - - amd64 - 88 - deb - libgdbm3 - 1.8.3-3 - - - amd64 - 444 - deb - libgmp3c2 - 2:4.2.2+dfsg-3 - - - amd64 - 1108 - deb - libgnutls26 - 2.4.2-6+lenny2 - - - amd64 - 64 - deb - libgomp1 - 4.3.2-1.1 - - - amd64 - 200 - deb - libgpg-error0 - 1.4-2 - - - amd64 - 92 - deb - libgpm2 - 1.20.4-3.1 - - - amd64 - 72 - deb - libgssglue1 - 0.1-2 - - - all - 152 - deb - libhtml-format-perl - 2.04-2 - - - amd64 - 312 - deb - libhtml-parser-perl - 3.56-1+lenny1 - - - all - 76 - deb - libhtml-tagset-perl - 3.20-2 - - - all - 464 - deb - libhtml-tree-perl - 3.23-1 - - - amd64 - 312 - deb - libidn11 - 1.8+20080606-1 - - - all - 228 - deb - libio-compress-base-perl - 2.012-1 - - - all - 540 - deb - libio-compress-zlib-perl - 2.012-1 - - - all - 108 - deb - libio-multiplex-perl - 1.09-2 - - - all - 352 - deb - libio-stringy-perl - 2.110-4 - - - amd64 - 392 - deb - libisc45 - 1:9.5.1.dfsg.P3-1+lenny1 - - - amd64 - 388 - deb - libisc50 - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 92 - deb - libisccc40 - 1:9.5.1.dfsg.P3-1+lenny1 - - - amd64 - 68 - deb - libisccc50 - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 176 - deb - libisccfg40 - 1:9.5.1.dfsg.P3-1+lenny1 - - - amd64 - 160 - deb - libisccfg50 - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 56 - deb - libkeyutils1 - 1.2-9 - - - amd64 - 96 - deb - libklibc - 1.5.12-2lenny1 - - - amd64 - 1256 - deb - libkrb53 - 1.6.dfsg.4~beta1-5lenny7 - - - amd64 - 480 - deb - libldap-2.4-2 - 2.4.11-1+lenny2.1 - - - amd64 - 104 - deb - liblocale-gettext-perl - 1.05-4 - - - amd64 - 56 - deb - liblockfile1 - 1.08-3 - - - amd64 - 132 - deb - liblwres40 - 1:9.5.1.dfsg.P3-1+lenny1 - - - amd64 - 116 - deb - liblwres50 - 1:9.6.ESV.R4+dfsg-0+lenny4 - - - amd64 - 196 - deb - liblzo2-2 - 2.03-1 - - - amd64 - 2420 - deb - libmagic1 - 4.26-1 - - - all - 3352 - deb - libmail-box-perl - 2.082-2 - - - all - 88 - deb - libmail-sendmail-perl - 0.79-5 - - - all - 316 - deb - libmailtools-perl - 2.03-1 - - - all - 120 - deb - libmime-types-perl - 1.24-1 - - - amd64 - 540 - deb - libmpfr1ldbl - 2.3.1.dfsg.1-2 - - - amd64 - 4304 - deb - libmysqlclient15off - 5.0.51a-24+lenny5 - - - amd64 - 664 - deb - libncurses5 - 5.7+20081213-1 - - - amd64 - 704 - deb - libncursesw5 - 5.7+20081213-1 - - - all - 88 - deb - libnet-cidr-perl - 0.11-3 - - - all - 164 - deb - libnet-ip-perl - 1.25-2 - - - all - 432 - deb - libnet-server-perl - 0.97-1 - - - all - 520 - deb - libnet-snmp-perl - 5.2.0-1 - - - amd64 - 976 - deb - libnet-ssleay-perl - 1.35-1 - - - amd64 - 836 - deb - libnewt0.52 - 0.52.2-11.3+lenny1 - - - amd64 - 68 - deb - libnfsidmap2 - 0.20-1 - - - all - 88 - deb - libobject-realize-later-perl - 0.18-1 - - - amd64 - 972 - deb - libpam-modules - 1.0.1-5+lenny1 - - - all - 952 - deb - libpam-runtime - 1.0.1-5+lenny1 - - - amd64 - 240 - deb - libpam0g - 1.0.1-5+lenny1 - - - amd64 - 260 - deb - libpcap0.8 - 0.9.8-5 - - - amd64 - 88 - deb - libpci3 - 1:3.0.0-6 - - - amd64 - 416 - deb - libpcre3 - 7.6-2.1 - - - amd64 - 24 - deb - libperl5.10 - 5.10.0-19lenny5 - - - amd64 - 180 - deb - libpkcs11-helper1 - 1.05-1 - - - amd64 - 464 - deb - libpopt0 - 1.14-4 - - - amd64 - 1180 - deb - libpq5 - 8.3.17-0lenny1 - - - all - 76 - deb - libproc-daemon-perl - 0.03-2 - - - all - 76 - deb - libproc-pid-file-perl - 1.24-6 - - - amd64 - 388 - deb - libreadline5 - 5.2-3.1 - - - amd64 - 88 - deb - librpcsecgss3 - 0.18-1 - - - amd64 - 240 - deb - libsasl2-2 - 2.1.22.dfsg1-23+lenny1 - - - amd64 - 204 - deb - libselinux1 - 2.0.65-5 - - - amd64 - 540 - deb - libsensors3 - 1:2.10.7-1 - - - amd64 - 360 - deb - libsepol1 - 2.0.30-2 - - - amd64 - 92 - deb - libsigc++-2.0-0c2a - 2.0.18-2 - - - amd64 - 1368 - deb - libslang2 - 2.1.3-3 - - - all - 3476 - deb - libsnmp-base - 5.4.1~dfsg-12 - - - amd64 - 3956 - deb - libsnmp15 - 5.4.1~dfsg-12 - - - amd64 - 508 - deb - libsqlite3-0 - 3.5.9-6 - - - amd64 - 108 - deb - libss2 - 1.41.3-1 - - - amd64 - 208 - deb - libssh2-1 - 0.18-1 - - - amd64 - 7000 - deb - libssl-dev - 0.9.8g-15+lenny16 - - - amd64 - 2360 - deb - libssl0.9.8 - 0.9.8g-15+lenny16 - - - amd64 - 1236 - deb - libstdc++6 - 4.3.2-1.1 - - - amd64 - 10484 - deb - libstdc++6-4.3-dev - 4.3.2-1.1 - - - all - 84 - deb - libsys-hostname-long-perl - 1.4-2 - - - amd64 - 116 - deb - libsysfs2 - 2.1.0-5 - - - amd64 - 168 - deb - libtasn1-3 - 1.4-1 - - - amd64 - 92 - deb - libtext-charwidth-perl - 0.04-5+b1 - - - amd64 - 100 - deb - libtext-iconv-perl - 1.7-1+b1 - - - all - 28 - deb - libtext-wrapi18n-perl - 0.06-6 - - - all - 212 - deb - libtimedate-perl - 1.1600-9 - - - amd64 - 656 - deb - libtokyocabinet-dev - 1.2.1-1 - - - amd64 - 276 - deb - libtokyocabinet3 - 1.2.1-1 - - - all - 64 - deb - libuniversal-require-perl - 0.11-1 - - - all - 384 - deb - liburi-perl - 1.35.dfsg.1-1 - - - amd64 - 96 - deb - libusb-0.1-4 - 2:0.1.12-13 - - - all - 304 - deb - libuser-identity-perl - 0.92-2 - - - amd64 - 112 - deb - libuuid1 - 1.41.3-1 - - - amd64 - 120 - deb - libvolume-id0 - 0.125-7+lenny3 - - - amd64 - 100 - deb - libwrap0 - 7.6.q-16 - - - all - 1004 - deb - libwww-perl - 5.813-1+lenny2 - - - amd64 - 1288 - deb - libx11-6 - 2:1.1.5-2 - - - all - 3108 - deb - libx11-data - 2:1.1.5-2 - - - amd64 - 1740 - deb - libxapian15 - 1.0.7-4 - - - amd64 - 68 - deb - libxau6 - 1:1.0.3-3 - - - amd64 - 68 - deb - libxcb-xlib0 - 1.1-1.2 - - - amd64 - 176 - deb - libxcb1 - 1.1-1.2 - - - amd64 - 76 - deb - libxdmcp6 - 1:1.0.2-3 - - - amd64 - 108 - deb - libxext6 - 2:1.0.4-2 - - - all - 48 - deb - libxml-namespacesupport-perl - 1.09-3 - - - amd64 - 740 - deb - libxml-parser-perl - 2.36-1.1+b1 - - - all - 108 - deb - libxml-sax-expat-perl - 0.40-1 - - - all - 448 - deb - libxml-sax-perl - 0.16+dfsg-3 - - - all - 216 - deb - libxml-simple-perl - 2.18-1 - - - amd64 - 1736 - deb - libxml2 - 2.6.32.dfsg-5+lenny5 - - - amd64 - 2672 - deb - libxml2-dev - 2.6.32.dfsg-5+lenny5 - - - amd64 - 68 - deb - libxmuu1 - 2:1.0.4-1 - - - amd64 - 32 - deb - linux-image-2.6-amd64 - 2.6.26+17+lenny1 - - - amd64 - 78340 - deb - linux-image-2.6.26-2-amd64 - 2.6.26-29 - - - amd64 - 3784 - deb - linux-libc-dev - 2.6.26-29 - - - all - 11584 - deb - locales - 2.7-18lenny7 - - - amd64 - 2416 - deb - login - 1:4.1.1-6+lenny1 - - - amd64 - 164 - deb - logrotate - 3.7.1-5 - - - all - 72 - deb - lsb-base - 3.2-20 - - - amd64 - 424 - deb - lsof - 4.78.dfsg.1-4 - - - amd64 - 172 - deb - lzma - 4.43-14 - - - amd64 - 616 - deb - m4 - 1.4.11-1 - - - amd64 - 1220 - deb - make - 3.81-5 - - - all - 148 - deb - makedev - 2.3.1-88 - - - amd64 - 2196 - deb - man-db - 2.5.2-5 - - - all - 972 - deb - manpages - 3.05-1 - - - all - 832 - deb - manpages-fr - 3.07.1-1 - - - all - 1836 - deb - manpages-fr-extra - 20080921 - - - amd64 - 244 - deb - mawk - 1.3.3-11.1 - - - all - 192 - deb - mime-support - 3.44-1 - - - amd64 - 64 - deb - mktemp - 1.5-9 - - - amd64 - 440 - deb - mlocate - 0.21.1-1 - - - amd64 - 312 - deb - module-init-tools - 3.4-1 - - - amd64 - 320 - deb - mount - 2.13.1.1-1 - - - all - 1396 - deb - munin-node - 1.2.6-10~lenny2 - - - amd64 - 5396 - deb - mutt - 1.5.18-6 - - - all - 140 - deb - mysql-common - 5.0.51a-24+lenny5 - - - amd64 - 1728 - deb - nano - 2.0.7-5 - - - all - 484 - deb - ncurses-base - 5.7+20081213-1 - - - amd64 - 508 - deb - ncurses-bin - 5.7+20081213-1 - - - all - 6532 - deb - ncurses-term - 5.7+20081213-1 - - - amd64 - 888 - deb - net-tools - 1.60-22 - - - all - 96 - deb - netbase - 4.34 - - - amd64 - 244 - deb - netcat-traditional - 1.10-38 - - - amd64 - 464 - deb - nfs-common - 1:1.1.2-6lenny2 - - - amd64 - 1156 - deb - ntp - 1:4.2.4p4+dfsg-8lenny3 - - - all - 772 - deb - ocsinventory-agent - 1:0.0.9.2repack1-4lenny1 - - - amd64 - 132 - deb - openbsd-inetd - 0.20080125-2 - - - all - 4092 - deb - openssh-blacklist - 0.4.1 - - - all - 4100 - deb - openssh-blacklist-extra - 0.4.1 - - - amd64 - 2080 - deb - openssh-client - 1:5.1p1-5 - - - amd64 - 812 - deb - openssh-server - 1:5.1p1-5 - - - amd64 - 2340 - deb - openssl - 0.9.8g-15+lenny16 - - - all - 12240 - deb - openssl-blacklist - 0.4.2 - - - amd64 - 1192 - deb - openvpn - 2.1~rc11-1 - - - all - 2100 - deb - openvpn-blacklist - 0.3 - - - amd64 - 2264 - deb - passwd - 1:4.1.1-6+lenny1 - - - amd64 - 204 - deb - patch - 2.5.9-5 - - - amd64 - 708 - deb - pciutils - 1:3.0.0-6 - - - amd64 - 18880 - deb - perl - 5.10.0-19lenny5 - - - amd64 - 4608 - deb - perl-base - 5.10.0-19lenny5 - - - all - 14520 - deb - perl-modules - 5.10.0-19lenny5 - - - amd64 - 728 - deb - php5-common - 5.2.6.dfsg.1-1+lenny16 - - - all - 436 - deb - po-debconf - 1.0.15 - - - amd64 - 124 - deb - portmap - 6.0-9 - - - amd64 - 360 - deb - procmail - 3.22-16 - - - amd64 - 748 - deb - procps - 1:3.2.7-11 - - - amd64 - 508 - deb - psmisc - 22.6-1 - - - all - 612 - deb - python - 2.5.2-3 - - - all - 256 - deb - python-central - 0.6.8 - - - all - 84 - deb - python-minimal - 2.5.2-3 - - - amd64 - 10752 - deb - python2.5 - 2.5.2-15+lenny1 - - - amd64 - 4644 - deb - python2.5-minimal - 2.5.2-15+lenny1 - - - all - 136 - deb - readline-common - 5.2-3.1 - - - all - 456 - deb - reportbug - 3.48 - - - amd64 - 540 - deb - rsyslog - 3.18.6-4 - - - amd64 - 100 - deb - rsyslog-pgsql - 3.18.6-4 - - - amd64 - 91948 - deb - rudder-agent - 4.1.0~beta2~git201702010115-lenny0 - - - amd64 - 1036 - deb - screen - 4.0.3-11+lenny1 - - - amd64 - 944 - deb - sed - 4.1.5-6 - - - amd64 - 1220 - deb - snmpd - 5.4.1~dfsg-12 - - - amd64 - 420 - deb - strace - 4.5.17+cvs080723-2 - - - amd64 - 376 - deb - sudo - 1.6.9p17-3 - - - all - 260 - deb - sysv-rc - 2.86.ds1-61 - - - amd64 - 304 - deb - sysvinit - 2.86.ds1-61 - - - amd64 - 184 - deb - sysvinit-utils - 2.86.ds1-61 - - - amd64 - 1965 - deb - tar - 1.20-1+lenny1 - - - all - 900 - deb - tasksel - 2.78 - - - all - 1000 - deb - tasksel-data - 2.78 - - - amd64 - 212 - deb - tcpd - 7.6.q-16 - - - amd64 - 728 - deb - tcpdump - 3.9.8-4 - - - amd64 - 200 - deb - telnet - 0.17-36 - - - amd64 - 2184 - deb - texinfo - 4.11.dfsg.1-4 - - - amd64 - 152 - deb - time - 1.7-23 - - - amd64 - 184 - deb - traceroute - 2.0.11-2 - - - amd64 - 96 - deb - tree - 1.5.2-1 - - - all - 6016 - deb - tzdata - 2011k-0lenny1 - - - all - 256 - deb - ucf - 3.0016 - - - amd64 - 724 - deb - udev - 0.125-7+lenny3 - - - all - 120 - deb - update-inetd - 4.31 - - - amd64 - 584 - deb - usbutils - 0.73-10lenny2 - - - amd64 - 1744 - deb - util-linux - 2.13.1.1-1 - - - amd64 - 140 - deb - uuid-runtime - 1.41.3-1 - - - amd64 - 1720 - deb - vim - 1:7.1.314-3+lenny2 - - - amd64 - 540 - deb - vim-common - 1:7.1.314-3+lenny2 - - - all - 22812 - deb - vim-runtime - 1:7.1.314-3+lenny2 - - - amd64 - 824 - deb - vim-tiny - 1:7.1.314-3+lenny2 - - - amd64 - 1860 - deb - w3m - 0.5.2-2+lenny1 - - - all - 1020 - deb - wamerican - 6-2.3 - - - all - 1600 - deb - wfrench - 1.2.3-6 - - - amd64 - 1588 - deb - wget - 1.11.4-2+lenny2 - - - amd64 - 96 - deb - whiptail - 0.52.2-11.3+lenny1 - - - amd64 - 336 - deb - whois - 4.7.30 - - - all - 696 - deb - x11-common - 1:7.3+20 - - - amd64 - 100 - deb - xauth - 1:1.0.3-2 - - - all - 3948 - deb - xkb-data - 1.3-2 - - - amd64 - 172 - deb - zlib1g - 1:1.2.3.3.dfsg-12 - - - amd64 - 400 - deb - zlib1g-dev - 1:1.2.3.3.dfsg-12 - - - Virtual - 9437 - 6900 - vda - disk - - - root - - FusionInventory-Agent_v2.3.17 - - debian-5-64-2015-12-23-09-48-12 -8b168194-c0b4-41ab-b2b5-9571a8906d59 -root - -Community - -41E38FBE-8241-2252-621E-5D6FE1DB22EB ------BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEA7HZ4QZNfe+/ek0wKi6PmyhRewFVYYsBGauPclzHaT2995TlOzxWA -sJrRWxLsCgTbIy7i369SV6v1gtv5KRxsyapvbMixWgBL7U2QN2s7UEw0kms728Bn -tN2TYBnItwepl7ACdjl7MVTSUcMVsFdqZOhSKSIvZIEuo4ZNU7lI7CmOVFJLyFFa -pun5zwRuvidIm0PF5Ko/2fFpfUf5sTjlBcpMTL/76psRhZJhooDAL8TVm0ndwbWS -qQKDZ5kVLp6wRYwnvCXDHsecUWsHKqdxBNAYn1VVOp8HS3U1PShinW4+UY2oMEdW -PNdnwYzJMtkuVsNoEeSLq0KK652KS3Km3wIBIw== ------END RSA PUBLIC KEY----- -root - - - GenuineIntel - 6 - 2 - QEMU Virtual CPU version 0.12 - 3 - 1861.824 - - - - - - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs.sign deleted file mode 100644 index 14bc5305a62..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-5-64-8b168194-c0b4-41ab-b2b5-9571a8906d59.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=417d8f6add2d2ffa218c056b32701d5ba7b9dac94400f1a09ace2bada220342e2ffd803ee833c007a5b9f93454de2c9aee007be2f818b6e98c8354731a7b23ff35378b59eed9f7fdb3b88ab82302a31ebb29d38a007c3cec3348afed04ce8e47821ee6f5d1bed9790c6014fb3408154fbe4a350303b24d48d9395f0ff9f95e8d391aedf4f1f97ce40a2276ef1f9f040b24273ad5a91a1e830421534c6aac8c685e151f75ceed5aab3c53e81fc94c4c14e10f52f603804432301202c11b9fada42b120cd2777d7a3b84560af76ae5723b28623fa4f2bfc7e9b6ecee88debf35f5870c7c9eebee5f5495f63eb5007e0ed63a428a2ba17b6f15784f3d499a106695 -hostname=debian-5-64 -keydate=2015-12-23 09:47:33.000000000 +0100 -keyid=4B72A6DF diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs deleted file mode 100644 index 16decb942a7..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs +++ /dev/null @@ -1,5703 +0,0 @@ - - - - - - -www-data -sync -list -uuidd -systemd-resolve -postgres -mcerda -irc -daemon -ntp -news -Debian-exim -statd -gnats -test1 -man -systemd-bus-proxy -systemd-timesync -sys -systemd-network -nobody -uucp -lp -bin -proxy -messagebus -sshd -backup -mail -games - - - 2018-08-22 05:56:19 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371SB PIIX3 USB [Natoma/Triton II] - uhci_hcd - Intel Corporation - 82371SB PIIX3 USB [Natoma/Triton II] - 0c03 - 00:01.2 - 7020 - 01 - USB controller - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - GD 5446 - Cirrus Logic - GD 5446 - 0300 - 00:02.0 - 00b8 - VGA compatible controller - 1013 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 0500 - 00:03.0 - 1002 - RAM memory - 1af4 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:04.0 - 1000 - Ethernet controller - 1af4 - - - 53c895a - sym53c8xx - LSI Logic / Symbios Logic - 53c895a - 0100 - 00:05.0 - 0012 - SCSI storage controller - 1000 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:06.0 - 1001 - SCSI storage controller - 1af4 - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext4 - 2467 - 9fd36e1c-a625-478c-b463-7de6b0871d27 - 6927 - / - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - MANPATH - /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/rudder/share/man:/opt/rudder/share/man - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/rudder/cfengine-community/bin - - - PWD - /var/rudder - - - x86_64-linux-thread-multi - Other - 131071 - 192.168.180.1 - 192.168.180.1/8.8.8.8 - 3 - 192.168.180.85 - 494 - debian-8-64 - #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08) - Debian GNU/Linux 8.0 (jessie) - 3.16.0-4-amd64 - 1 - QEMU Virtual CPU version 0.12 - root - 2F825215-E66D-9F31-7DC5-04427112B6A9 - QEMU - normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - PC Speaker - PC Speaker - Keyboard - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 24 - mcerda - cdrom - - - 25 - mcerda - floppy - - - 29 - mcerda - audio - - - 30 - mcerda - dip - - - 44 - mcerda - video - - - 46 - mcerda - plugdev - - - 114 - postgres - ssl-cert - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /usr/sbin/nologin - - - /bin - 2 - bin - bin - /usr/sbin/nologin - - - /dev - 3 - sys - sys - /usr/sbin/nologin - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /usr/sbin/nologin - - - /var/cache/man - 6 - man - man - /usr/sbin/nologin - - - /var/spool/lpd - 7 - lp - lp - /usr/sbin/nologin - - - /var/mail - 8 - mail - mail - /usr/sbin/nologin - - - /var/spool/news - 9 - news - news - /usr/sbin/nologin - - - /var/spool/uucp - 10 - uucp - uucp - /usr/sbin/nologin - - - /bin - 13 - proxy - proxy - /usr/sbin/nologin - - - /var/www - 33 - www-data - www-data - /usr/sbin/nologin - - - /var/backups - 34 - backup - backup - /usr/sbin/nologin - - - /var/list - 38 - list - Mailing List Manager - /usr/sbin/nologin - - - /var/run/ircd - 39 - irc - ircd - /usr/sbin/nologin - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /usr/sbin/nologin - - - /nonexistent - 65534 - nobody - nobody - /usr/sbin/nologin - - - /home/mcerda - 1000 - mcerda - Matthieu CERDA,,, - /bin/bash - - - /run/uuidd - 100 - uuidd - - /bin/false - - - /run/systemd - 101 - systemd-timesync - systemd Time Synchronization,,, - /bin/false - - - /run/systemd/netif - 102 - systemd-network - systemd Network Management,,, - /bin/false - - - /run/systemd/resolve - 103 - systemd-resolve - systemd Resolver,,, - /bin/false - - - /run/systemd - 104 - systemd-bus-proxy - systemd Bus Proxy,,, - /bin/false - - - /var/run/sshd - 105 - sshd - - /usr/sbin/nologin - - - /var/spool/exim4 - 106 - Debian-exim - - /bin/false - - - /var/run/dbus - 107 - messagebus - - /bin/false - - - /var/lib/nfs - 108 - statd - - /bin/false - - - /var/lib/postgresql - 109 - postgres - PostgreSQL administrator,,, - /bin/bash - - - /bin/zsh - 1001 - test1 - Matthieu Cerdou - /bin/zsh - - - /home/ntp - 110 - ntp - - /bin/false - - - 512 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.180.85 - 192.168.180.1 - 255.255.255.0 - 192.168.180.0 - 52:54:00:ce:b2:0f - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fece:b20f - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:ce:b2:0f - Up - ethernet - 0 - - - x86_64 - 2018-05-24 17:01:46 - normation.com - debian-8-64.normation.com - Debian GNU/Linux 8.0 (jessie) - 007f0101 - linux - 3.16.0-4-amd64 - Debian - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9FAt5WCr7sPn1WIFNtkgtmNq1ZdGxYSqdoFnG84S/6aARrgHFxXIuhiWQoz2IZKQX59X1BFJv35D0MdJxx0qLQWZFNCSaJ+VaxrMVg7ZFXFOzv75TUaRiHl5+38jfgjDO50KtXhM2RszxkBOsqtZc999cbr6ERhfpDhFdlORkoMcHD5FmpidZ1gx7vQC6Jk8pYH6AyQ8oQN56w2D2QnUeHhZOfmJaI2b5Nj+0bosmEzeF0ClJVdDu2xkYUtz872QZiZu87VTI1nh7FAENueJNJIDKye0XqB43jRphFsBRgycd06bRdyECqrPFoIgBoclu/r7owcbXx+NfoQ0DLKLN - - CEST - +0200 - - 8.0 - - - /sbin/init - 0.0 - 0.7 - 1 - 2018-05-24 17:01 - ? - root - 28588 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2018-05-24 17:01 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2018-05-24 17:01 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2018-05-24 17:01 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 7 - 2018-05-24 17:01 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 8 - 2018-05-24 17:01 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 9 - 2018-05-24 17:01 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 10 - 2018-05-24 17:01 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 11 - 2018-05-24 17:01 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 12 - 2018-05-24 17:01 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 13 - 2018-05-24 17:01 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 14 - 2018-05-24 17:01 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 15 - 2018-05-24 17:01 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 16 - 2018-05-24 17:01 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 17 - 2018-05-24 17:01 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 18 - 2018-05-24 17:01 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 19 - 2018-05-24 17:01 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 20 - 2018-05-24 17:01 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 22 - 2018-05-24 17:01 - ? - root - 0 - - - [fsnotify_mark] - 0.0 - 0.0 - 23 - 2018-05-24 17:01 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 29 - 2018-05-24 17:01 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 30 - 2018-05-24 17:01 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 31 - 2018-05-24 17:01 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 64 - 2018-05-24 17:01 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 65 - 2018-05-24 17:01 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 66 - 2018-05-24 17:01 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 67 - 2018-05-24 17:01 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 68 - 2018-05-24 17:01 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 70 - 2018-05-24 17:01 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 71 - 2018-05-24 17:01 - ? - root - 0 - - - [scsi_eh_2] - 0.0 - 0.0 - 72 - 2018-05-24 17:01 - ? - root - 0 - - - [scsi_tmf_2] - 0.0 - 0.0 - 73 - 2018-05-24 17:01 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 90 - 2018-05-24 17:01 - ? - root - 0 - - - [ext4-rsv-conver] - 0.0 - 0.0 - 91 - 2018-05-24 17:01 - ? - root - 0 - - - /lib/systemd/systemd-journald - 0.0 - 1.2 - 125 - 2018-05-24 17:01 - ? - root - 37432 - - - [kauditd] - 0.0 - 0.0 - 126 - 2018-05-24 17:01 - ? - root - 0 - - - /lib/systemd/systemd-udevd - 0.0 - 0.4 - 139 - 2018-05-24 17:01 - ? - root - 40776 - - - [vballoon] - 0.0 - 0.0 - 230 - 2018-05-24 17:01 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 235 - 2018-05-24 17:01 - ? - root - 0 - - - dhclient -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 - 0.0 - 1.6 - 345 - 2018-05-24 17:01 - ? - root - 25392 - - - /sbin/rpcbind -w - 0.0 - 0.2 - 366 - 2018-05-24 17:01 - ? - root - 37076 - - - /sbin/rpc.statd - 0.0 - 0.4 - 375 - 2018-05-24 17:01 - ? - statd - 37276 - - - [rpciod] - 0.0 - 0.0 - 380 - 2018-05-24 17:01 - ? - root - 0 - - - [nfsiod] - 0.0 - 0.0 - 382 - 2018-05-24 17:01 - ? - root - 0 - - - /usr/sbin/rpc.idmapd - 0.0 - 0.0 - 389 - 2018-05-24 17:01 - ? - root - 23356 - - - /usr/sbin/atd -f - 0.0 - 0.2 - 390 - 2018-05-24 17:03 - ? - daemon - 19020 - - - /usr/sbin/sshd -D - 0.0 - 0.5 - 391 - 2018-05-24 17:03 - ? - root - 55168 - - - /lib/systemd/systemd-logind - 0.0 - 0.0 - 393 - 2018-05-24 17:03 - ? - root - 19856 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation - 0.0 - 0.3 - 402 - 2018-05-24 17:03 - ? - message+ - 42116 - - - /usr/sbin/apache2 -k start - 0.0 - 0.6 - 444 - 2018-05-24 17:03 - ? - root - 75624 - - - /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 110:116 - 0.0 - 0.5 - 505 - 2018-05-24 17:03 - ? - ntp - 33372 - - - /usr/sbin/rsyslogd -n - 0.0 - 0.8 - 513 - 2018-05-24 17:03 - ? - root - 489568 - - - /usr/sbin/acpid - 0.0 - 0.2 - 522 - 2018-05-24 17:03 - ? - root - 4256 - - - /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf - 0.0 - 2.8 - 529 - 2018-05-24 17:03 - ? - postgres - 229492 - - - /bin/login -- - 0.0 - 0.4 - 558 - 2018-05-24 17:03 - tty1 - root - 63308 - - - postgres: checkpointer process - 0.0 - 0.2 - 578 - 2018-05-24 17:03 - ? - postgres - 229632 - - - postgres: writer process - 0.0 - 0.6 - 579 - 2018-05-24 17:03 - ? - postgres - 229632 - - - postgres: wal writer process - 0.0 - 0.4 - 580 - 2018-05-24 17:03 - ? - postgres - 229632 - - - postgres: autovacuum launcher process - 0.0 - 0.7 - 581 - 2018-05-24 17:03 - ? - postgres - 229900 - - - postgres: stats collector process - 0.0 - 0.5 - 582 - 2018-05-24 17:03 - ? - postgres - 84768 - - - /usr/sbin/exim4 -bd -q30m - 0.0 - 0.4 - 1030 - 2018-05-24 17:03 - ? - Debian-+ - 53240 - - - [kworker/u2:0] - 0.0 - 0.0 - 14655 - 2018-08-21 23:35 - ? - root - 0 - - - [kworker/u2:1] - 0.0 - 0.0 - 14832 - 2018-08-22 03:10 - ? - root - 0 - - - -bash - 0.0 - 0.7 - 16141 - 2018-07-16 12:51 - tty1 - root - 23420 - - - tail -f /var/log/auth.log - 0.0 - 0.0 - 16181 - 2018-07-16 12:52 - tty1 - root - 5844 - - - /var/rudder/cfengine-community/bin/cf-serverd - 0.0 - 1.6 - 16629 - 2018-08-09 13:11 - ? - root - 43716 - - - /var/rudder/cfengine-community/bin/cf-execd - 0.0 - 1.2 - 16812 - 2018-08-09 13:11 - ? - root - 108628 - - - [kworker/0:1] - 0.0 - 0.0 - 18983 - 2018-08-22 05:42 - ? - root - 0 - - - [kworker/0:0] - 0.0 - 0.0 - 21242 - 2018-08-22 05:47 - ? - root - 0 - - - [kworker/0:2] - 0.0 - 0.0 - 23501 - 2018-08-22 05:52 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.1 - 24352 - 2018-08-22 05:55 - ? - root - 4336 - - - /var/rudder/cfengine-community/bin/cf-agent - 12.2 - 5.2 - 24363 - 2018-08-22 05:55 - ? - root - 64912 - - - /usr/sbin/cron -f - 0.0 - 0.4 - 25632 - 2018-08-22 05:55 - ? - root - 27500 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs - 0.0 - 0.2 - 25697 - 2018-08-22 05:56 - ? - root - 4336 - - - /opt/rudder/bin/perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs - 19.3 - 8.7 - 25704 - 2018-08-22 05:56 - ? - root - 97136 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.1 - 25713 - 2018-08-22 05:56 - ? - root - 4336 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.3 - 25714 - 2018-08-22 05:56 - ? - root - 17500 - - - /usr/sbin/apache2 -k start - 0.0 - 0.5 - 32736 - 2018-08-21 06:25 - ? - www-data - 75624 - - - /usr/sbin/apache2 -k start - 0.0 - 0.5 - 32737 - 2018-08-21 06:25 - ? - www-data - 364780 - - - /usr/sbin/apache2 -k start - 0.0 - 0.5 - 32738 - 2018-08-21 06:25 - ? - www-data - 364780 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEAsGbsqyCdVSs3lSKEqoJ+O0MEh4X84LwCtls5Khj+wdK6uHz9bFTe -vrYdFF++HF4wh0+mp/mpijR15LpyXdrsRZF/mzYfyfjikKvAPhVrQdPG9ZSRDWuo -CpswxJbzhcX5jjY/SqiDS0eRbBLS8sofJW5ms223aJzAR+Smn61OYmuM2xHt6+Mc -/3pTbj2bCwhPTNXC0exaQ28YT7yvfO6b4SaxghQmaI0z3xKsx9Pe+jchywmztR0E -+QRbzgRDemmPwJgBqRn8BtjeaIQzmUvqVNfIpG+KKwmOQk1O2vHeVx26luS+knxs -ETFxmh2TQoieoQzq6E25b9gUGW2i9t1fywIBIw== ------END RSA PUBLIC KEY----- - - root - orchestrateur-4.labo.normation.com - root - - - cfengine - dumpdatastate - bodydefault - - debian-8-64.labo.normation.com - - 717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f - - - amd64 - 258 - deb - acl - Debian - 2.2.52-2 - - - amd64 - 71 - deb - acpi - Debian - 1.7-1 - - - all - 68 - deb - acpi-support-base - Debian - 0.142-6 - - - amd64 - 181 - deb - acpid - Debian - 1:2.0.23-2 - - - all - 1066 - deb - adduser - Debian - 3.113+nmu3 - - - amd64 - 506 - deb - apache2 - Debian - 2.4.10-10+deb8u4 - - - amd64 - 3684 - deb - apache2-bin - Debian - 2.4.10-10+deb8u4 - - - all - 697 - deb - apache2-data - Debian - 2.4.10-10+deb8u4 - - - amd64 - 386 - deb - apache2-utils - Debian - 2.4.10-10+deb8u4 - - - amd64 - 3775 - deb - apt - Debian - 1.0.9.4 - - - all - 446 - deb - apt-listchanges - Debian - 2.85.13+nmu1 - - - amd64 - 1392 - deb - apt-utils - Debian - 1.0.9.4 - - - amd64 - 4748 - deb - aptitude - Debian - 0.6.11-1+b1 - - - all - 9930 - deb - aptitude-common - Debian - 0.6.11-1 - - - amd64 - 1261 - deb - aspell - Debian - 0.60.7~20110707-1.3 - - - all - 636 - deb - aspell-fr - Debian - 0.50-3-7 - - - amd64 - 103 - deb - at - Debian - 3.1.16-1 - - - amd64 - 412 - deb - base-files - Debian - 8 - - - amd64 - 185 - deb - base-passwd - Debian - 3.5.37 - - - amd64 - 5010 - deb - bash - Debian - 4.3-11+b1 - - - all - 929 - deb - bash-completion - Debian - 1:2.1-4 - - - amd64 - 255 - deb - bc - Debian - 1.06.95-9 - - - amd64 - 174 - deb - bind9-host - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 20566 - deb - binutils - Debian - 2.25-5 - - - amd64 - 183 - deb - bsd-mailx - Debian - 8.1.2-0.20140825cvs-1 - - - amd64 - 571 - deb - bsdmainutils - Debian - 9.0.6 - - - amd64 - 181 - deb - bsdutils - Debian - 1:2.25.2-4 - - - amd64 - 37 - deb - build-essential - Debian - 11.7 - - - amd64 - 724 - deb - busybox - Debian - 1:1.22.0-9+b1 - - - amd64 - 84 - deb - bzip2 - Debian - 1.0.6-7+b2 - - - all - 452 - deb - ca-certificates - Debian - 20141019 - - - all - 467 - deb - console-setup - Debian - 1.114 - - - all - 1042 - deb - console-setup-linux - Debian - 1.114 - - - amd64 - 13855 - deb - coreutils - Debian - 8.23-3 - - - amd64 - 648 - deb - cpio - Debian - 2.11+dfsg-2+b1 - - - amd64 - 65 - deb - cpp - Debian - 4:4.9.2-2 - - - amd64 - 16406 - deb - cpp-4.9 - Debian - 4.9.2-10 - - - amd64 - 194 - deb - cron - Debian - 3.0pl1-127 - - - amd64 - 325 - deb - curl - Debian - 7.38.0-4+deb8u3 - - - amd64 - 191 - deb - dash - Debian - 0.5.7-4+b1 - - - all - 1392 - deb - dbconfig-common - Debian - 1.8.47+nmu3 - - - amd64 - 1003 - deb - dbus - Debian - 1.8.12-1 - - - amd64 - 168 - deb - dc - Debian - 1.06.95-9 - - - all - 613 - deb - debconf - Debian - 1.5.54 - - - all - 1080 - deb - debconf-i18n - Debian - 1.5.54 - - - all - 108 - deb - debian-archive-keyring - Debian - 2014.3 - - - all - 1294 - deb - debian-faq - Debian - 5.0.3 - - - all - 3684 - deb - debian-policy - Debian - 3.9.6.1 - - - amd64 - 147 - deb - debianutils - Debian - 4.4+b1 - - - all - 229 - deb - debootstrap - Debian - 1.0.67 - - - all - 1281 - deb - developers-reference-fr - Debian - 3.4.14 - - - all - 814 - deb - dictionaries-common - Debian - 1.23.17 - - - amd64 - 950 - deb - diffutils - Debian - 1:3.3-1+b1 - - - amd64 - 122 - deb - discover - Debian - 2.1.2-7 - - - all - 4392 - deb - discover-data - Debian - 2.2013.01.11 - - - amd64 - 170 - deb - dmidecode - Debian - 2.12-3 - - - amd64 - 123 - deb - dmsetup - Debian - 2:1.02.90-2 - - - amd64 - 378 - deb - dnsutils - Debian - 1:9.9.5.dfsg-6 - - - all - 147 - deb - doc-debian - Debian - 6.2 - - - all - 1872 - deb - doc-debian-fr - Debian - 3.1.3.1 - - - all - 4567 - deb - doc-linux-fr-text - Debian - 2013.01-2 - - - all - 550 - deb - docutils-common - Debian - 0.12+dfsg-1 - - - all - 4068 - deb - docutils-doc - Debian - 0.12+dfsg-1 - - - amd64 - 6729 - deb - dpkg - Debian - 1.17.21 - - - all - 1791 - deb - dpkg-dev - Debian - 1.17.27 - - - amd64 - 417 - deb - e2fslibs - Debian - 1.42.12-1 - - - amd64 - 2957 - deb - e2fsprogs - Debian - 1.42.12-1 - - - amd64 - 128 - deb - ed - Debian - 1.10-2 - - - amd64 - 341 - deb - eject - Debian - 2.1.5+deb1+cvs20081104-13.1 - - - all - 136 - deb - emacsen-common - Debian - 2.0.8 - - - all - 44 - deb - exim4 - Debian - 4.84-3 - - - amd64 - 1452 - deb - exim4-base - Debian - 4.84-3 - - - all - 1101 - deb - exim4-config - Debian - 4.84-3 - - - amd64 - 1220 - deb - exim4-daemon-light - Debian - 4.84-3 - - - amd64 - 252 - deb - fakeroot - Debian - 1.20.2-1 - - - amd64 - 117 - deb - file - Debian - 1:5.20-2 - - - amd64 - 1406 - deb - findutils - Debian - 4.4.2-9+b1 - - - all - 88 - deb - firmware-linux-free - Debian - 3.3 - - - amd64 - 547 - deb - fontconfig - Debian - 2.11.0-6.3 - - - all - 425 - deb - fontconfig-config - Debian - 2.11.0-6.3 - - - all - 2896 - deb - fonts-dejavu-core - Debian - 2.34-1 - - - amd64 - 145 - deb - ftp - Debian - 0.17-31 - - - amd64 - 34 - deb - g++ - Debian - 4:4.9.2-2 - - - amd64 - 32881 - deb - g++-4.9 - Debian - 4.9.2-10 - - - amd64 - 42 - deb - gcc - Debian - 4:4.9.2-2 - - - amd64 - 17634 - deb - gcc-4.9 - Debian - 4.9.2-10 - - - amd64 - 218 - deb - gcc-4.9-base - Debian - 4.9.2-10 - - - all - 4741 - deb - geoip-database - Debian - 20141027-1 - - - amd64 - 965 - deb - gettext-base - Debian - 0.19.3-2 - - - amd64 - 21645 - deb - git - Debian - 1:2.1.4-2.1+deb8u2 - - - all - 1299 - deb - git-man - Debian - 1:2.1.4-2.1+deb8u2 - - - amd64 - 4888 - deb - gnupg - Debian - 1.4.18-6 - - - amd64 - 943 - deb - gnupg-agent - Debian - 2.0.26-3 - - - amd64 - 5466 - deb - gnupg2 - Debian - 2.0.26-3 - - - amd64 - 410 - deb - gpgv - Debian - 1.4.18-6 - - - amd64 - 1272 - deb - grep - Debian - 2.20-4 - - - amd64 - 3203 - deb - groff-base - Debian - 1.22.2-8 - - - amd64 - 14996 - deb - grub-common - Debian - 2.02~beta2-18 - - - amd64 - 561 - deb - grub-pc - Debian - 2.02~beta2-18 - - - amd64 - 2799 - deb - grub-pc-bin - Debian - 2.02~beta2-18 - - - amd64 - 1126 - deb - grub2-common - Debian - 2.02~beta2-18 - - - amd64 - 11438 - deb - guile-2.0-libs - Debian - 2.0.11+1-9 - - - amd64 - 239 - deb - gzip - Debian - 1.6-4 - - - all - 1415 - deb - hicolor-icon-theme - Debian - 0.13-1 - - - all - 49 - deb - host - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 59 - deb - hostname - Debian - 3.15 - - - amd64 - 8224 - deb - ifrench-gut - Debian - 1:1.0-30 - - - amd64 - 122 - deb - ifupdown - Debian - 0.7.50 - - - amd64 - 396 - deb - info - Debian - 5.2.0.dfsg.1-6 - - - amd64 - 29 - deb - init - Debian - 1.22 - - - all - 97 - deb - init-system-helpers - Debian - 1.22 - - - all - 327 - deb - initramfs-tools - Debian - 0.116 - - - amd64 - 278 - deb - initscripts - Debian - 2.88dsf-58 - - - amd64 - 183 - deb - insserv - Debian - 1.14.0-5 - - - amd64 - 213 - deb - install-info - Debian - 5.2.0.dfsg.1-6 - - - all - 74 - deb - installation-report - Debian - 2.57 - - - all - 16 - deb - iproute - Debian - 1:3.16.0-2 - - - amd64 - 1093 - deb - iproute2 - Debian - 3.16.0-2 - - - amd64 - 3557 - deb - iptables - Debian - 1.4.21-2+b1 - - - amd64 - 116 - deb - iputils-ping - Debian - 3:20121221-5+b2 - - - amd64 - 117 - deb - irqbalance - Debian - 1.0.6-3 - - - amd64 - 560 - deb - isc-dhcp-client - Debian - 4.3.1-5 - - - amd64 - 451 - deb - isc-dhcp-common - Debian - 4.3.1-5 - - - all - 16136 - deb - iso-codes - Debian - 3.57-1 - - - amd64 - 319 - deb - ispell - Debian - 3.3.02-6 - - - all - 68 - deb - javascript-common - Debian - 11 - - - amd64 - 1537 - deb - kbd - Debian - 1.15.5-2 - - - all - 2470 - deb - keyboard-configuration - Debian - 1.114 - - - amd64 - 342 - deb - klibc-utils - Debian - 2.0.4-2 - - - amd64 - 274 - deb - kmod - Debian - 18-3 - - - all - 2665 - deb - krb5-locales - Debian - 1.12.1+dfsg-15 - - - amd64 - 56 - deb - laptop-detect - Debian - 0.13.7 - - - amd64 - 253 - deb - less - Debian - 458-3 - - - amd64 - 80 - deb - libacl1 - Debian - 2.2.52-2 - - - all - 137 - deb - libalgorithm-diff-perl - Debian - 1.19.02-3 - - - amd64 - 25 - deb - libalgorithm-diff-xs-perl - Debian - 0.04-3+b1 - - - all - 44 - deb - libalgorithm-merge-perl - Debian - 0.08-2 - - - amd64 - 285 - deb - libapr1 - Debian - 1.5.1-3 - - - amd64 - 264 - deb - libaprutil1 - Debian - 1.5.4-1 - - - amd64 - 73 - deb - libaprutil1-dbd-sqlite3 - Debian - 1.5.4-1 - - - amd64 - 64 - deb - libaprutil1-ldap - Debian - 1.5.4-1 - - - amd64 - 724 - deb - libapt-inst1.5 - Debian - 1.0.9.4 - - - amd64 - 3032 - deb - libapt-pkg4.12 - Debian - 1.0.9.4 - - - amd64 - 713 - deb - libasan1 - Debian - 4.9.2-10 - - - amd64 - 2286 - deb - libaspell15 - Debian - 0.60.7~20110707-1.3 - - - amd64 - 71 - deb - libasprintf0c2 - Debian - 0.19.3-2 - - - amd64 - 118 - deb - libassuan0 - Debian - 2.1.2-2 - - - amd64 - 217 - deb - libatk1.0-0 - Debian - 2.14.0-1 - - - all - 962 - deb - libatk1.0-data - Debian - 2.14.0-1 - - - amd64 - 56 - deb - libatomic1 - Debian - 4.9.2-10 - - - amd64 - 30 - deb - libattr1 - Debian - 1:2.4.47-2 - - - all - 49 - deb - libaudit-common - Debian - 1:2.4-1 - - - amd64 - 157 - deb - libaudit1 - Debian - 1:2.4-1+b1 - - - all - 155 - deb - libauthen-sasl-perl - Debian - 2.1600-1 - - - amd64 - 136 - deb - libavahi-client3 - Debian - 0.6.31-4+b2 - - - amd64 - 794 - deb - libavahi-common-data - Debian - 0.6.31-4+b2 - - - amd64 - 121 - deb - libavahi-common3 - Debian - 0.6.31-4+b2 - - - amd64 - 107 - deb - libbind9-90 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 325 - deb - libblkid1 - Debian - 2.25.2-4 - - - amd64 - 170 - deb - libboost-iostreams1.49.0 - Debian - 1.49.0-3.2 - - - amd64 - 164 - deb - libboost-iostreams1.55.0 - Debian - 1.55.0+dfsg-3 - - - amd64 - 121 - deb - libbsd0 - Debian - 0.7.0-2 - - - amd64 - 83 - deb - libbz2-1.0 - Debian - 1.0.6-7+b2 - - - amd64 - 114 - deb - libc-ares2 - Debian - 1.10.0-2+deb8u1 - - - amd64 - 3261 - deb - libc-bin - Debian - 2.19-13 - - - amd64 - 341 - deb - libc-dev-bin - Debian - 2.19-18+deb8u7 - - - amd64 - 10229 - deb - libc6 - Debian - 2.19-18+deb8u7 - - - amd64 - 11673 - deb - libc6-dev - Debian - 2.19-18+deb8u7 - - - amd64 - 1424 - deb - libcairo2 - Debian - 1.14.0-2.1 - - - amd64 - 59 - deb - libcap-ng0 - Debian - 0.7.4-2 - - - amd64 - 61 - deb - libcap2 - Debian - 1:2.24-6 - - - amd64 - 110 - deb - libcap2-bin - Debian - 1:2.24-6 - - - amd64 - 157 - deb - libcilkrts5 - Debian - 4.9.2-10 - - - all - 53 - deb - libclass-isa-perl - Debian - 0.36-5 - - - amd64 - 204 - deb - libcloog-isl4 - Debian - 0.18.2-1+b2 - - - amd64 - 100 - deb - libcomerr2 - Debian - 1.42.12-1 - - - amd64 - 231 - deb - libcryptsetup4 - Debian - 2:1.6.6-3 - - - amd64 - 600 - deb - libcups2 - Debian - 1.7.5-9 - - - amd64 - 586 - deb - libcurl3 - Debian - 7.38.0-4+deb8u3 - - - amd64 - 557 - deb - libcurl3-gnutls - Debian - 7.38.0-3 - - - amd64 - 1529 - deb - libcwidget3 - Debian - 0.5.17-2 - - - amd64 - 85 - deb - libdatrie1 - Debian - 0.2.8-1 - - - amd64 - 1601 - deb - libdb5.1 - Debian - 5.1.29-5 - - - amd64 - 1812 - deb - libdb5.3 - Debian - 5.3.28-7~deb8u1 - - - amd64 - 405 - deb - libdbus-1-3 - Debian - 1.8.12-1 - - - amd64 - 53 - deb - libdebconfclient0 - Debian - 0.192 - - - amd64 - 330 - deb - libdevmapper1.02.1 - Debian - 2:1.02.90-2 - - - amd64 - 288 - deb - libdiscover2 - Debian - 2.1.2-7 - - - amd64 - 1281 - deb - libdns-export100 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 1946 - deb - libdns100 - Debian - 1:9.9.5.dfsg-6 - - - all - 2211 - deb - libdpkg-perl - Debian - 1.17.27 - - - amd64 - 277 - deb - libedit2 - Debian - 3.1-20140620-2 - - - all - 59 - deb - libencode-locale-perl - Debian - 1.03-1 - - - amd64 - 446 - deb - libept1.4.12 - Debian - 1.0.12.1 - - - all - 40 - deb - liberror-perl - Debian - 0.17-1.1 - - - amd64 - 50 - deb - libestr0 - Debian - 0.1.9-1.1 - - - amd64 - 328 - deb - libevent-2.0-5 - Debian - 2.0.21-stable-1.1 - - - amd64 - 386 - deb - libexpat1 - Debian - 2.1.0-6+b3 - - - amd64 - 172 - deb - libfakeroot - Debian - 1.20.2-1 - - - amd64 - 71 - deb - libffi6 - Debian - 3.1-2+b2 - - - amd64 - 168 - deb - libfile-fcntllock-perl - Debian - 0.22-1+b1 - - - all - 56 - deb - libfile-listing-perl - Debian - 6.04-1 - - - all - 120 - deb - libfont-afm-perl - Debian - 1.20-1 - - - amd64 - 498 - deb - libfontconfig1 - Debian - 2.11.0-6.3 - - - amd64 - 923 - deb - libfreetype6 - Debian - 2.5.2-2 - - - amd64 - 366 - deb - libfuse2 - Debian - 2.9.3-15+b1 - - - amd64 - 253 - deb - libgc1c2 - Debian - 1:7.2d-6.4 - - - amd64 - 10148 - deb - libgcc-4.9-dev - Debian - 4.9.2-10 - - - amd64 - 129 - deb - libgcc1 - Debian - 1:4.9.2-10 - - - amd64 - 590 - deb - libgcrypt11 - Debian - 1.5.0-5+deb7u2 - - - amd64 - 997 - deb - libgcrypt20 - Debian - 1.6.2-4+b1 - - - amd64 - 85 - deb - libgdbm3 - Debian - 1.8.3-13.1 - - - amd64 - 527 - deb - libgdk-pixbuf2.0-0 - Debian - 2.31.1-2+b1 - - - all - 3048 - deb - libgdk-pixbuf2.0-common - Debian - 2.31.1-2 - - - amd64 - 261 - deb - libgeoip1 - Debian - 1.6.2-2 - - - amd64 - 4629 - deb - libglib2.0-0 - Debian - 2.42.1-1 - - - all - 9045 - deb - libglib2.0-data - Debian - 2.42.1-1 - - - amd64 - 556 - deb - libgmp10 - Debian - 2:6.0.0+dfsg-6 - - - amd64 - 1805 - deb - libgnutls-deb0-28 - Debian - 3.3.8-5 - - - amd64 - 172 - deb - libgnutls-openssl27 - Debian - 3.3.8-5 - - - amd64 - 1375 - deb - libgnutls26 - Debian - 2.12.20-8+deb7u2 - - - amd64 - 123 - deb - libgomp1 - Debian - 4.9.2-10 - - - amd64 - 444 - deb - libgpg-error0 - Debian - 1.17-3 - - - amd64 - 485 - deb - libgpgme11 - Debian - 1.5.1-6 - - - amd64 - 48 - deb - libgpm2 - Debian - 1.20.4-6.1+b2 - - - amd64 - 165 - deb - libgraphite2-3 - Debian - 1.2.4-3 - - - amd64 - 431 - deb - libgssapi-krb5-2 - Debian - 1.12.1+dfsg-15 - - - amd64 - 6224 - deb - libgtk2.0-0 - Debian - 2.24.25-1 - - - amd64 - 529 - deb - libgtk2.0-bin - Debian - 2.24.25-1 - - - all - 19823 - deb - libgtk2.0-common - Debian - 2.24.25-1 - - - amd64 - 738 - deb - libharfbuzz0b - Debian - 0.9.35-2 - - - amd64 - 196 - deb - libhogweed2 - Debian - 2.7.1-3+b1 - - - all - 89 - deb - libhtml-form-perl - Debian - 6.03-1 - - - all - 152 - deb - libhtml-format-perl - Debian - 2.11-1 - - - amd64 - 207 - deb - libhtml-parser-perl - Debian - 3.71-1+b3 - - - all - 76 - deb - libhtml-tagset-perl - Debian - 3.20-2 - - - all - 516 - deb - libhtml-tree-perl - Debian - 5.03-1 - - - all - 76 - deb - libhttp-cookies-perl - Debian - 6.01-1 - - - all - 71 - deb - libhttp-daemon-perl - Debian - 6.01-1 - - - all - 56 - deb - libhttp-date-perl - Debian - 6.02-1 - - - all - 206 - deb - libhttp-message-perl - Debian - 6.06-1 - - - all - 76 - deb - libhttp-negotiate-perl - Debian - 6.00-2 - - - amd64 - 27324 - deb - libicu52 - Debian - 52.1-6 - - - amd64 - 318 - deb - libidn11 - Debian - 1.29-1+b2 - - - all - 4501 - deb - libintl-perl - Debian - 1.23-1 - - - all - 40 - deb - libio-html-perl - Debian - 1.001-1 - - - all - 104 - deb - libio-socket-ip-perl - Debian - 0.32-1 - - - all - 462 - deb - libio-socket-ssl-perl - Debian - 2.002-2 - - - amd64 - 99 - deb - libirs-export91 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 377 - deb - libisc-export95 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 441 - deb - libisc95 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 87 - deb - libisccc90 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 109 - deb - libisccfg-export90 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 192 - deb - libisccfg90 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 1417 - deb - libisl10 - Debian - 0.12.2-2 - - - amd64 - 162 - deb - libitm1 - Debian - 4.9.2-10 - - - amd64 - 371 - deb - libjasper1 - Debian - 1.900.1-debian1-2.2 - - - amd64 - 101 - deb - libjbig0 - Debian - 2.1-3.1 - - - amd64 - 310 - deb - libjpeg62-turbo - Debian - 1:1.3.1-11 - - - all - 58 - deb - libjs-colors - Debian - 0.6.2-1 - - - amd64 - 88 - deb - libjson-c2 - Debian - 0.11-4 - - - amd64 - 312 - deb - libk5crypto3 - Debian - 1.12.1+dfsg-15 - - - amd64 - 55 - deb - libkeyutils1 - Debian - 1.5.9-5+b1 - - - amd64 - 93 - deb - libklibc - Debian - 2.0.4-2 - - - amd64 - 134 - deb - libkmod2 - Debian - 18-3 - - - amd64 - 1023 - deb - libkrb5-3 - Debian - 1.12.1+dfsg-15 - - - amd64 - 167 - deb - libkrb5support0 - Debian - 1.12.1+dfsg-15 - - - amd64 - 269 - deb - libksba8 - Debian - 1.3.2-1 - - - amd64 - 416 - deb - liblcms2-2 - Debian - 2.6-3+b3 - - - amd64 - 525 - deb - libldap-2.4-2 - Debian - 2.4.40-3 - - - amd64 - 37 - deb - liblocale-gettext-perl - Debian - 1.05-8+b1 - - - amd64 - 71 - deb - liblockfile-bin - Debian - 1.09-6 - - - amd64 - 57 - deb - liblockfile1 - Debian - 1.09-6 - - - amd64 - 56 - deb - liblogging-stdlog0 - Debian - 1.0.4-1 - - - amd64 - 98 - deb - liblognorm1 - Debian - 1.0.1-3 - - - amd64 - 257 - deb - liblsan0 - Debian - 4.9.2-10 - - - amd64 - 100 - deb - libltdl7 - Debian - 2.4.2-1.11 - - - amd64 - 404 - deb - liblua5.1-0 - Debian - 5.1.5-7.1 - - - all - 100 - deb - liblwp-mediatypes-perl - Debian - 6.02-1 - - - all - 56 - deb - liblwp-protocol-https-perl - Debian - 6.06-2 - - - amd64 - 131 - deb - liblwres90 - Debian - 1:9.9.5.dfsg-6 - - - amd64 - 309 - deb - liblzma5 - Debian - 5.1.1alpha+20120614-2+b3 - - - amd64 - 3123 - deb - libmagic1 - Debian - 1:5.20-2 - - - all - 233 - deb - libmailtools-perl - Debian - 2.13-1 - - - amd64 - 60 - deb - libmnl0 - Debian - 1.0.3-5 - - - amd64 - 356 - deb - libmount1 - Debian - 2.25.2-4 - - - amd64 - 128 - deb - libmpc3 - Debian - 1.0.2-1 - - - amd64 - 789 - deb - libmpfr4 - Debian - 3.1.2-2 - - - amd64 - 306 - deb - libncurses5 - Debian - 5.9+20140913-1+b1 - - - amd64 - 388 - deb - libncursesw5 - Debian - 5.9+20140913-1+b1 - - - all - 89 - deb - libnet-http-perl - Debian - 6.07-1 - - - all - 64 - deb - libnet-smtp-ssl-perl - Debian - 1.01-3 - - - amd64 - 1012 - deb - libnet-ssleay-perl - Debian - 1.65-1+b1 - - - amd64 - 14 - deb - libnetfilter-acct1 - Debian - 1.0.2-1.1 - - - amd64 - 300 - deb - libnettle4 - Debian - 2.7.1-3+b1 - - - amd64 - 171 - deb - libnewt0.52 - Debian - 0.52.17-1+b1 - - - amd64 - 61 - deb - libnfnetlink0 - Debian - 1.0.1-3 - - - amd64 - 126 - deb - libnfsidmap2 - Debian - 0.25-5 - - - amd64 - 92 - deb - libnuma1 - Debian - 2.0.10-1 - - - amd64 - 184 - deb - libopts25 - Debian - 1:5.18.4-3 - - - amd64 - 299 - deb - libp11-kit0 - Debian - 0.20.7-1 - - - amd64 - 852 - deb - libpam-modules - Debian - 1.1.8-3.1 - - - amd64 - 248 - deb - libpam-modules-bin - Debian - 1.1.8-3.1 - - - all - 1447 - deb - libpam-runtime - Debian - 1.1.8-3.1 - - - amd64 - 248 - deb - libpam0g - Debian - 1.1.8-3.1 - - - amd64 - 510 - deb - libpango-1.0-0 - Debian - 1.36.8-3 - - - amd64 - 235 - deb - libpangocairo-1.0-0 - Debian - 1.36.8-3 - - - amd64 - 274 - deb - libpangoft2-1.0-0 - Debian - 1.36.8-3 - - - amd64 - 69 - deb - libpaper-utils - Debian - 1.1.24+nmu4 - - - amd64 - 87 - deb - libpaper1 - Debian - 1.1.24+nmu4 - - - amd64 - 84 - deb - libpci3 - Debian - 1:3.2.1-3 - - - amd64 - 672 - deb - libpcre3 - Debian - 2:8.35-3.3 - - - all - 256 - deb - libperl4-corelibs-perl - Debian - 0.003-1 - - - amd64 - 63 - deb - libpipeline1 - Debian - 1.4.0-1 - - - amd64 - 1001 - deb - libpixman-1-0 - Debian - 0.32.6-3 - - - amd64 - 267 - deb - libpng12-0 - Debian - 1.2.50-2+b2 - - - amd64 - 131 - deb - libpopt0 - Debian - 1.16-10 - - - amd64 - 611 - deb - libpq5 - Debian - 9.4.2-0+deb8u1 - - - amd64 - 129 - deb - libprocps0 - Debian - 1:3.3.3-3 - - - amd64 - 132 - deb - libprocps3 - Debian - 2:3.3.9-8 - - - amd64 - 510 - deb - libpsl0 - Debian - 0.5.1-1 - - - amd64 - 143 - deb - libpth20 - Debian - 2.0.7-20 - - - amd64 - 30 - deb - libpython-stdlib - Debian - 2.7.8-2 - - - amd64 - 2681 - deb - libpython2.7-minimal - Debian - 2.7.8-11 - - - amd64 - 8352 - deb - libpython2.7-stdlib - Debian - 2.7.8-11 - - - amd64 - 275 - deb - libquadmath0 - Debian - 4.9.2-10 - - - amd64 - 419 - deb - libreadline6 - Debian - 6.3-8+b2 - - - amd64 - 1853 - deb - librecode0 - Debian - 3.6-21 - - - amd64 - 129 - deb - librtmp1 - Debian - 2.4+20131018.git79459a2-5 - - - amd64 - 206 - deb - libsasl2-2 - Debian - 2.1.26.dfsg1-12 - - - amd64 - 278 - deb - libsasl2-modules - Debian - 2.1.26.dfsg1-12 - - - amd64 - 118 - deb - libsasl2-modules-db - Debian - 2.1.26.dfsg1-12 - - - amd64 - 213 - deb - libselinux1 - Debian - 2.3-2 - - - all - 65 - deb - libsemanage-common - Debian - 2.3-1 - - - amd64 - 245 - deb - libsemanage1 - Debian - 2.3-1+b1 - - - amd64 - 339 - deb - libsepol1 - Debian - 2.3-2 - - - amd64 - 108 - deb - libsigc++-2.0-0c2a - Debian - 2.4.0-1 - - - amd64 - 71 - deb - libsigsegv2 - Debian - 2.10-4+b1 - - - amd64 - 1543 - deb - libslang2 - Debian - 2.3.0-2 - - - amd64 - 209 - deb - libsmartcols1 - Debian - 2.25.2-4 - - - amd64 - 873 - deb - libsqlite3-0 - Debian - 3.8.7.1-1 - - - amd64 - 113 - deb - libss2 - Debian - 1.42.12-1 - - - amd64 - 260 - deb - libssh2-1 - Debian - 1.4.3-4 - - - amd64 - 3055 - deb - libssl1.0.0 - Debian - 1.0.1j-1 - - - amd64 - 11901 - deb - libstdc++-4.9-dev - Debian - 4.9.2-10 - - - amd64 - 1319 - deb - libstdc++6 - Debian - 4.9.2-10 - - - all - 76 - deb - libswitch-perl - Debian - 2.17-2 - - - amd64 - 173 - deb - libsystemd0 - Debian - 215-7 - - - amd64 - 135 - deb - libtasn1-3 - Debian - 2.13-2+deb7u1 - - - amd64 - 96 - deb - libtasn1-6 - Debian - 4.2-2 - - - amd64 - 85 - deb - libtext-charwidth-perl - Debian - 0.04-7+b3 - - - amd64 - 92 - deb - libtext-iconv-perl - Debian - 1.7-5+b2 - - - all - 484 - deb - libtext-unidecode-perl - Debian - 1.22-1 - - - all - 28 - deb - libtext-wrapi18n-perl - Debian - 0.06-7 - - - all - 610 - deb - libthai-data - Debian - 0.1.21-1 - - - amd64 - 103 - deb - libthai0 - Debian - 0.1.21-1 - - - amd64 - 550 - deb - libtiff5 - Debian - 4.0.3-10+b4 - - - all - 96 - deb - libtimedate-perl - Debian - 2.3000-2 - - - amd64 - 480 - deb - libtinfo5 - Debian - 5.9+20140913-1+b1 - - - amd64 - 202 - deb - libtirpc1 - Debian - 0.2.5-1 - - - amd64 - 661 - deb - libtokyocabinet9 - Debian - 1.4.48-3 - - - amd64 - 768 - deb - libtsan0 - Debian - 4.9.2-10 - - - amd64 - 235 - deb - libubsan0 - Debian - 4.9.2-10 - - - amd64 - 158 - deb - libudev0 - Debian - 175-7.2 - - - amd64 - 92 - deb - libudev1 - Debian - 215-7 - - - amd64 - 1133 - deb - libunistring0 - Debian - 0.9.3-5.2+b1 - - - all - 229 - deb - liburi-perl - Debian - 1.64-1 - - - amd64 - 42 - deb - libusb-0.1-4 - Debian - 2:0.1.12-25 - - - amd64 - 111 - deb - libusb-1.0-0 - Debian - 2:1.0.19-1 - - - amd64 - 287 - deb - libustr-1.0-1 - Debian - 1.0.4-3+b2 - - - amd64 - 82 - deb - libuuid-perl - Debian - 0.05-1+b1 - - - amd64 - 89 - deb - libuuid1 - Debian - 2.25.2-4 - - - amd64 - 4301 - deb - libv8-3.14.5 - Debian - 3.14.5.8-8.1 - - - amd64 - 413 - deb - libwebp5 - Debian - 0.4.1-1.2+b2 - - - amd64 - 59 - deb - libwebpdemux1 - Debian - 0.4.1-1.2+b2 - - - amd64 - 75 - deb - libwebpmux1 - Debian - 0.4.1-1.2+b2 - - - amd64 - 86 - deb - libwrap0 - Debian - 7.6.q-25 - - - all - 416 - deb - libwww-perl - Debian - 6.08-1 - - - all - 80 - deb - libwww-robotrules-perl - Debian - 6.01-1 - - - amd64 - 1561 - deb - libx11-6 - Debian - 2:1.6.2-3 - - - all - 1582 - deb - libx11-data - Debian - 2:1.6.2-3 - - - amd64 - 2494 - deb - libxapian22 - Debian - 1.2.19-1 - - - amd64 - 61 - deb - libxau6 - Debian - 1:1.0.8-1 - - - amd64 - 53 - deb - libxcb-render0 - Debian - 1.10-3+b1 - - - amd64 - 23 - deb - libxcb-shm0 - Debian - 1.10-3+b1 - - - amd64 - 161 - deb - libxcb1 - Debian - 1.10-3+b1 - - - amd64 - 56 - deb - libxcomposite1 - Debian - 1:0.4.4-1 - - - amd64 - 62 - deb - libxcursor1 - Debian - 1:1.1.14-1+b1 - - - amd64 - 22 - deb - libxdamage1 - Debian - 1:1.1.4-2+b1 - - - amd64 - 38 - deb - libxdmcp6 - Debian - 1:1.1.1-1+b1 - - - amd64 - 142 - deb - libxext6 - Debian - 2:1.3.3-1 - - - amd64 - 38 - deb - libxfixes3 - Debian - 1:5.0.1-2+b2 - - - amd64 - 152 - deb - libxi6 - Debian - 2:1.7.4-1+b2 - - - amd64 - 26 - deb - libxinerama1 - Debian - 2:1.1.3-1+b1 - - - amd64 - 961 - deb - libxml-libxml-perl - Debian - 2.0116+dfsg-1+b1 - - - all - 70 - deb - libxml-namespacesupport-perl - Debian - 1.11-1 - - - amd64 - 605 - deb - libxml-parser-perl - Debian - 2.41-3 - - - all - 196 - deb - libxml-sax-base-perl - Debian - 1.07-1 - - - all - 52 - deb - libxml-sax-expat-perl - Debian - 0.40-2 - - - all - 226 - deb - libxml-sax-perl - Debian - 0.99+dfsg-2 - - - amd64 - 1756 - deb - libxml2 - Debian - 2.9.1+dfsg1-4 - - - amd64 - 66 - deb - libxmuu1 - Debian - 2:1.1.2-1 - - - amd64 - 64 - deb - libxrandr2 - Debian - 2:1.4.2-1+b1 - - - amd64 - 87 - deb - libxrender1 - Debian - 1:0.9.8-1+b1 - - - amd64 - 111 - deb - libxtables10 - Debian - 1.4.21-2+b1 - - - all - 139 - deb - linux-base - Debian - 3.5 - - - amd64 - 160588 - deb - linux-image-3.16.0-4-amd64 - Debian - 3.16.7-ckt2-1 - - - amd64 - 6 - deb - linux-image-amd64 - Debian - 3.16+63 - - - amd64 - 3389 - deb - linux-libc-dev - Debian - 3.16.39-1 - - - all - 16266 - deb - locales - Debian - 2.19-18+deb8u7 - - - amd64 - 2185 - deb - login - Debian - 1:4.2-3 - - - amd64 - 91 - deb - logrotate - Debian - 3.8.7-1+b1 - - - all - 72 - deb - lsb-base - Debian - 4.1+Debian13+nmu1 - - - all - 97 - deb - lsb-release - Debian - 4.1+Debian13+nmu1 - - - amd64 - 420 - deb - lsof - Debian - 4.86+dfsg-1 - - - amd64 - 389 - deb - m4 - Debian - 1.4.17-4 - - - all - 1078 - deb - maint-guide-fr - Debian - 1.2.35 - - - amd64 - 1291 - deb - make-guile - Debian - 4.0-8 - - - amd64 - 2514 - deb - man-db - Debian - 2.7.0.2-4 - - - all - 1047 - deb - manpages - Debian - 3.74-1 - - - all - 1919 - deb - manpages-dev - Debian - 3.74-1 - - - all - 860 - deb - manpages-fr - Debian - 3.65d1p1-1 - - - all - 1962 - deb - manpages-fr-extra - Debian - 20141109 - - - amd64 - 198 - deb - mawk - Debian - 1.3.3-17 - - - all - 146 - deb - mime-support - Debian - 3.57 - - - amd64 - 723 - deb - mlocate - Debian - 0.26-1 - - - all - 31 - deb - module-init-tools - Debian - 18-3 - - - amd64 - 356 - deb - mount - Debian - 2.25.2-4 - - - amd64 - 191 - deb - multiarch-support - Debian - 2.19-13 - - - amd64 - 6021 - deb - mutt - Debian - 1.5.23-3 - - - amd64 - 1667 - deb - nano - Debian - 2.2.6-3 - - - all - 371 - deb - ncurses-base - Debian - 5.9+20140913-1 - - - amd64 - 535 - deb - ncurses-bin - Debian - 5.9+20140913-1+b1 - - - all - 2187 - deb - ncurses-term - Debian - 5.9+20140913-1 - - - amd64 - 784 - deb - net-tools - Debian - 1.60-26+b1 - - - all - 66 - deb - netbase - Debian - 5.3 - - - amd64 - 157 - deb - netcat-traditional - Debian - 1.10-41 - - - amd64 - 54 - deb - nfacct - Debian - 1.0.1-1.1 - - - amd64 - 687 - deb - nfs-common - Debian - 1:1.2.8-9 - - - all - 40 - deb - node-colors - Debian - 0.6.2-1 - - - amd64 - 2873 - deb - nodejs - Debian - 0.10.29~dfsg-2 - - - amd64 - 1245 - deb - ntp - Debian - 1:4.2.6.p5+dfsg-7+deb8u2 - - - amd64 - 3758 - deb - openssh-client - Debian - 1:6.7p1-3 - - - amd64 - 949 - deb - openssh-server - Debian - 1:6.7p1-3 - - - amd64 - 130 - deb - openssh-sftp-server - Debian - 1:6.7p1-3 - - - amd64 - 1099 - deb - openssl - Debian - 1.0.1j-1 - - - amd64 - 140 - deb - os-prober - Debian - 1.65 - - - amd64 - 2132 - deb - passwd - Debian - 1:4.2-3 - - - amd64 - 172 - deb - patch - Debian - 2.7.1-6 - - - amd64 - 1069 - deb - pciutils - Debian - 1:3.2.1-3 - - - amd64 - 17081 - deb - perl - Debian - 5.20.1-3 - - - amd64 - 4642 - deb - perl-base - Debian - 5.20.1-3 - - - all - 15058 - deb - perl-modules - Debian - 5.20.1-3 - - - amd64 - 117 - deb - pinentry-gtk2 - Debian - 0.8.3-2 - - - all - 204 - deb - popularity-contest - Debian - 1.61 - - - all - 73 - deb - postgresql - Debian - 9.4+165 - - - amd64 - 18040 - deb - postgresql-9.4 - Debian - 9.4.2-0+deb8u1 - - - amd64 - 4415 - deb - postgresql-client-9.4 - Debian - 9.4.2-0+deb8u1 - - - all - 180 - deb - postgresql-client-common - Debian - 165 - - - all - 602 - deb - postgresql-common - Debian - 165 - - - amd64 - 314 - deb - procmail - Debian - 3.22-22 - - - amd64 - 670 - deb - procps - Debian - 2:3.3.9-8 - - - amd64 - 764 - deb - psmisc - Debian - 22.21-2 - - - amd64 - 571 - deb - python - Debian - 2.7.8-2 - - - amd64 - 671 - deb - python-apt - Debian - 0.9.3.11 - - - all - 916 - deb - python-apt-common - Debian - 0.9.3.11 - - - all - 454 - deb - python-chardet - Debian - 2.3.0-1 - - - all - 214 - deb - python-debian - Debian - 0.1.25 - - - all - 47 - deb - python-debianbts - Debian - 1.12 - - - all - 171 - deb - python-defusedxml - Debian - 0.4.1-2 - - - all - 1570 - deb - python-docutils - Debian - 0.12+dfsg-1 - - - amd64 - 120 - deb - python-minimal - Debian - 2.7.8-2 - - - amd64 - 1194 - deb - python-pil - Debian - 2.6.1-1+b1 - - - all - 183 - deb - python-pkg-resources - Debian - 5.5.1-1 - - - all - 2431 - deb - python-pygments - Debian - 2.0.1+dfsg-1 - - - all - 327 - deb - python-reportbug - Debian - 6.6.1 - - - all - 60 - deb - python-roman - Debian - 2.0.0-1 - - - all - 74 - deb - python-six - Debian - 1.8.0-1 - - - all - 304 - deb - python-soappy - Debian - 0.12.22-1 - - - all - 163 - deb - python-support - Debian - 1.0.15 - - - all - 434 - deb - python-wstools - Debian - 0.4.3-2 - - - amd64 - 357 - deb - python2.7 - Debian - 2.7.8-11 - - - amd64 - 3788 - deb - python2.7-minimal - Debian - 2.7.8-11 - - - all - 109 - deb - readline-common - Debian - 6.3-8 - - - amd64 - 780 - deb - recode - Debian - 3.6-21 - - - all - 222 - deb - reportbug - Debian - 6.6.1 - - - amd64 - 99 - deb - rpcbind - Debian - 0.2.1-6 - - - amd64 - 732 - deb - rsync - Debian - 3.1.1-3 - - - amd64 - 1834 - deb - rsyslog - Debian - 8.4.2-1 - - - amd64 - 226 - deb - rsyslog-pgsql - Debian - 8.4.2-1 - - - amd64 - 85811 - deb - rudder-agent - Debian - 4.1.14-jessie0 - - - amd64 - 921 - deb - sed - Debian - 4.2.2-4+b1 - - - all - 110 - deb - sensible-utils - Debian - 0.0.9 - - - all - 113 - deb - sgml-base - Debian - 1.26+nmu4 - - - amd64 - 4396 - deb - shared-mime-info - Debian - 1.3-1 - - - all - 102 - deb - ssl-cert - Debian - 1.0.35 - - - amd64 - 95 - deb - startpar - Debian - 0.59-3 - - - amd64 - 2334 - deb - sudo - Debian - 1.8.10p3-1+deb8u3 - - - amd64 - 11362 - deb - systemd - Debian - 215-7 - - - amd64 - 34 - deb - systemd-sysv - Debian - 215-7 - - - all - 223 - deb - sysv-rc - Debian - 2.88dsf-58 - - - amd64 - 153 - deb - sysvinit - Debian - 2.88dsf-58 - - - amd64 - 209 - deb - sysvinit-utils - Debian - 2.88dsf-58 - - - amd64 - 2619 - deb - tar - Debian - 1.27.1-2+b1 - - - all - 21 - deb - task-french - Debian - 3.29 - - - all - 718 - deb - tasksel - Debian - 3.29 - - - all - 551 - deb - tasksel-data - Debian - 3.29 - - - amd64 - 79 - deb - tcpd - Debian - 7.6.q-25 - - - amd64 - 200 - deb - telnet - Debian - 0.17-36 - - - amd64 - 3904 - deb - texinfo - Debian - 5.2.0.dfsg.1-6 - - - amd64 - 108 - deb - time - Debian - 1.7-25 - - - amd64 - 127 - deb - traceroute - Debian - 1:2.0.20-2+b1 - - - all - 1309 - deb - tzdata - Debian - 2014i-1 - - - all - 229 - deb - ucf - Debian - 3.0030 - - - amd64 - 5923 - deb - udev - Debian - 215-7 - - - amd64 - 640 - deb - usbutils - Debian - 1:007-2 - - - amd64 - 2733 - deb - util-linux - Debian - 2.25.2-4 - - - all - 5154 - deb - util-linux-locales - Debian - 2.25.2-4 - - - amd64 - 118 - deb - uuid-runtime - Debian - 2.25.2-6 - - - amd64 - 2233 - deb - vim - Debian - 2:7.4.488-7+deb8u2 - - - amd64 - 405 - deb - vim-common - Debian - 2:7.4.488-7+deb8u2 - - - all - 25557 - deb - vim-runtime - Debian - 2:7.4.488-7+deb8u2 - - - amd64 - 1051 - deb - vim-tiny - Debian - 2:7.4.488-7+deb8u2 - - - amd64 - 2156 - deb - w3m - Debian - 0.5.3-19 - - - all - 990 - deb - wamerican - Debian - 7.1-1 - - - all - 1565 - deb - wfrench - Debian - 1.2.3-10 - - - amd64 - 1725 - deb - wget - Debian - 1.16-1 - - - amd64 - 54 - deb - whiptail - Debian - 0.52.17-1+b1 - - - amd64 - 369 - deb - whois - Debian - 5.2.2 - - - amd64 - 98 - deb - xauth - Debian - 1:1.0.9-1 - - - amd64 - 169 - deb - xdg-user-dirs - Debian - 0.15-2 - - - all - 5578 - deb - xkb-data - Debian - 2.12-1 - - - all - 188 - deb - xml-core - Debian - 0.13+nmu2 - - - amd64 - 472 - deb - xz-utils - Debian - 5.1.1alpha+20120614-2+b3 - - - amd64 - 179 - deb - zlib1g - Debian - 1:1.2.8.dfsg-2+b1 - - - Virtual - 7344 - 0x1af4 - vda - disk - - - root - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /opt/rudder/bin/perl - v5.22.0 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - debian-8-64-2016-05-13-18-24-45 -717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f -root - -Community - -2F825215-E66D-9F31-7DC5-04427112B6A9 ------BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEAsGbsqyCdVSs3lSKEqoJ+O0MEh4X84LwCtls5Khj+wdK6uHz9bFTe -vrYdFF++HF4wh0+mp/mpijR15LpyXdrsRZF/mzYfyfjikKvAPhVrQdPG9ZSRDWuo -CpswxJbzhcX5jjY/SqiDS0eRbBLS8sofJW5ms223aJzAR+Smn61OYmuM2xHt6+Mc -/3pTbj2bCwhPTNXC0exaQ28YT7yvfO6b4SaxghQmaI0z3xKsx9Pe+jchywmztR0E -+QRbzgRDemmPwJgBqRn8BtjeaIQzmUvqVNfIpG+KKwmOQk1O2vHeVx26luS+knxs -ETFxmh2TQoieoQzq6E25b9gUGW2i9t1fywIBIw== ------END RSA PUBLIC KEY----- -root - - - GenuineIntel - 6 - 2 - QEMU Virtual CPU version 0.12 - 3 - 1995.191 - - - - - - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs.sign deleted file mode 100644 index 00bbf777506..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/debian-8-64-717b63d1-01fe-4d4f-a7e5-cfb7c0d47b4f.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=2704efed907081755250e0b9cdbc1ed1f3197a69254b7fcb45f192ac7109f966d228ccc0631f4dad3cb3a8d6541e2bb1b1390cc06e1ce9524f73f35f5eee9424766b65aad33b66d3ff0044c52850474dc4623bb1a66abca746aabbd85f44dc3e1276d72921960f2db892d1ed08be27d6aeee26959aa60e0da37089c7b8765f54a1c8de3357739b579ae570d521dcf96da07db1d29353b5d52c99cd1c30b1e27e1b0ff2e2328a1efaf3650642324db7c95f0132a00ab254eb6a0055874d499beaef2351cb662407f9b2d733d4f6ceed03e578e2852591a8fd320dbb76940c77011f0ffc1b73cc2d7e080ebca87a2e440e27c9cec95c7354b287b3a48fa14072b5 -hostname=debian-8-64 -keydate=2016-05-13 18:09:56.500000000 +0200 -keyid=F6DD5FCB diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/orchestrateur-5-root.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/orchestrateur-5-root.ocs deleted file mode 100644 index fdf6200a3da..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/orchestrateur-5-root.ocs +++ /dev/null @@ -1,6430 +0,0 @@ - - - - - - -sync -munin -gopher -postfix -bob -apache -postgres -dbus -daemon -halt -saslauth -ncf-api-venv -ftp -adm -shutdown -nobody -vcsa -uucp -lp -operator -bin -sshd -mail -games -rudder - - - 2019-09-13 02:05:55 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext4 - 3296 - 87ae4038-3c31-45d6-b7f3-216347fe537e - 10494 - / - /dev/mapper/VolGroup-lv_root - - - ext4 - 387 - c861dad4-9fd4-496e-8d62-9bab48b7cc51 - 476 - /boot - /dev/vda1 - - - CVS_RSH - ssh - - - LOGNAME - root - - - G_BROKEN_FILENAMES - 1 - - - PWD - /var/rudder - - - HOSTNAME - orchestrateur-5.labo.normation.com - - - MANPATH - /usr/local/share/man:/usr/share/man/en:/usr/share/man:/opt/rudder/share/man:/opt/rudder/share/man - - - HISTCONTROL - ignoredups - - - SHLVL - 3 - - - LS_COLORS - rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36: - - - LANG - en_US.UTF-8 - - - _ - /opt/rudder/bin/perl - - - MAIL - /var/spool/mail/root - - - HISTSIZE - 1000 - - - LESSOPEN - ||/usr/bin/lesspipe.sh %s - - - USER - root - - - DEBIAN_FRONTEND - noninteractive - - - PATH - /usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/var/rudder/cfengine-community/bin:/var/rudder/cfengine-community/bin - - - TERM - linux - - - x86_64-linux-thread-multi - Other - 131071 - Thu Sep 12 11:08 - 192.168.180.1 - 192.168.180.1 - 3 - 192.168.180.92 - root - 3830 - orchestrateur-5 - #1 SMP Tue Mar 21 19:29:05 UTC 2017 - Red Hat Enterprise Linux Server release 6.6 (Santiago) - 2.6.32-696.el6.x86_64 - 1 - QEMU Virtual CPU version 0.12 - 991 - 652372DA-B154-4429-95AA-0B8F4351DD2C - QEMU - labo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - Keyboard - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 1 - bin - daemon - bin - bin - - - 2 - bin - daemon - daemon - daemon - - - 3 - bin - adm - sys - - - 4 - adm - daemon - adm - adm - - - 7 - daemon - lp - lp - - - 12 - mail - postfix - mail - mail - - - 496 - ncf-api-venv - rudder - rudder - - - /root - 0 - root - root - /bin/bash - - - /bin - 1 - bin - bin - /sbin/nologin - - - /sbin - 2 - daemon - daemon - /sbin/nologin - - - /var/adm - 3 - adm - adm - /sbin/nologin - - - /var/spool/lpd - 4 - lp - lp - /sbin/nologin - - - /sbin - 5 - sync - sync - /bin/sync - - - /sbin - 6 - shutdown - shutdown - /sbin/shutdown - - - /sbin - 7 - halt - halt - /sbin/halt - - - /var/spool/mail - 8 - mail - mail - /sbin/nologin - - - /var/spool/uucp - 10 - uucp - uucp - /sbin/nologin - - - /root - 11 - operator - operator - /sbin/nologin - - - /usr/games - 12 - games - games - /sbin/nologin - - - /var/gopher - 13 - gopher - gopher - /sbin/nologin - - - /var/ftp - 14 - ftp - FTP User - /sbin/nologin - - - / - 99 - nobody - Nobody - /sbin/nologin - - - /dev - 69 - vcsa - virtual console memory owner - /sbin/nologin - - - /var/empty/saslauth - 499 - saslauth - Saslauthd user - /sbin/nologin - - - /var/spool/postfix - 89 - postfix - - /sbin/nologin - - - /var/empty/sshd - 74 - sshd - Privilege-separated SSH - /sbin/nologin - - - /var/lib/munin - 498 - munin - Munin user - /sbin/nologin - - - / - 81 - dbus - System message bus - /sbin/nologin - - - /var/www - 48 - apache - Apache - /sbin/nologin - - - /var/lib/ncf-api-venv - 497 - ncf-api-venv - ncf API,,, - /bin/false - - - /var/lib/pgsql - 26 - postgres - PostgreSQL Server - /bin/bash - - - /var/rudder - 496 - rudder - Rudder,,, - /bin/false - - - /home/bob - 500 - bob - - /bin/bash - - - -wi-ao---- - lv_root - hwZRmh-6zqp-1kRp-eRAY-RRxV-at8P-w49Pgy - 1 - 11316 - PGRKbG-zKfI-324b-fbKn-8fJd-hBgs-GXhv0Q - - - -wi-ao---- - lv_swap - ddsJ7d-UsAT-u8GB-5gnW-2zXA-gOCT-0Gazg5 - 1 - 1040 - PGRKbG-zKfI-324b-fbKn-8fJd-hBgs-GXhv0Q - - - 4096 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.180.92 - 192.168.180.1 - 255.255.255.128 - 192.168.180.0 - 52:54:00:a4:a1:36 - Up - ethernet - 0 - - - x86_64 - 2019-05-12 16:45:53 - priv.normation.com - orchestrateur-5.priv.normation.com - Red Hat Enterprise Linux Server release 6.6 (Santiago) - 007f0100 - linux - 2.6.32-696.el6.x86_64 - RedHatEnterpriseServer - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2nkjjQu6G6XRIuWMwyD2nc9rqOS708Sp0LTREoP4DTIFyR5RmzUwMAsZxkc0U2NfINEwuEJLCM1FNjm3wSOvXOeQWL1DSwrt2KER8IgdkL6LqKU4PQAw1jw57zV6yYfDR7SRmKyUGl7bbCPUmTuKm5ExQAGhAug//38vyvx2SYOt5EhZMEt0CXCKTaCJ0gpCmQdtaAv14cBE0XH6g5RFEIu/8j54dwsHWCQXOFFcXJ4z+MGEVZVGM35B3gXf6k7+FNpELvDI47j4ltIgR142vBLHH3qe3eubFBqZEcLsOOC8OiBNCdf1U3IpHNttfjbAbL7n8gx7ob0RaNRzj4jOhw== - - CEST - +0200 - - 6.6 - - - a--u - /dev/vda2 - lvm2 - 0 - 4 - 2946 - TGudH1-ThnE-I4La-LeB8-NFYM-r1yG-gU0XIN - 12356 - PGRKbG-zKfI-324b-fbKn-8fJd-hBgs-GXhv0Q - - - /sbin/init - 0.0 - 0.0 - 1 - 2019-05-12 16:45 - ? - root - 19364 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-05-12 16:45 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 3 - 2019-05-12 16:45 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 4 - 2019-05-12 16:45 - ? - root - 0 - - - [stopper/0] - 0.0 - 0.0 - 5 - 2019-05-12 16:45 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 6 - 2019-05-12 16:45 - ? - root - 0 - - - [events/0] - 0.0 - 0.0 - 7 - 2019-05-12 16:45 - ? - root - 0 - - - [events/0] - 0.0 - 0.0 - 8 - 2019-05-12 16:45 - ? - root - 0 - - - [events_long/0] - 0.0 - 0.0 - 9 - 2019-05-12 16:45 - ? - root - 0 - - - [events_power_ef] - 0.0 - 0.0 - 10 - 2019-05-12 16:45 - ? - root - 0 - - - [cgroup] - 0.0 - 0.0 - 11 - 2019-05-12 16:45 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 12 - 2019-05-12 16:45 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 13 - 2019-05-12 16:45 - ? - root - 0 - - - [async/mgr] - 0.0 - 0.0 - 14 - 2019-05-12 16:45 - ? - root - 0 - - - [pm] - 0.0 - 0.0 - 15 - 2019-05-12 16:45 - ? - root - 0 - - - [sync_supers] - 0.0 - 0.0 - 16 - 2019-05-12 16:45 - ? - root - 0 - - - [bdi-default] - 0.0 - 0.0 - 17 - 2019-05-12 16:45 - ? - root - 0 - - - [kintegrityd/0] - 0.0 - 0.0 - 18 - 2019-05-12 16:45 - ? - root - 0 - - - [kblockd/0] - 0.0 - 0.0 - 19 - 2019-05-12 16:45 - ? - root - 0 - - - [kacpid] - 0.0 - 0.0 - 20 - 2019-05-12 16:45 - ? - root - 0 - - - [kacpi_notify] - 0.0 - 0.0 - 21 - 2019-05-12 16:45 - ? - root - 0 - - - [kacpi_hotplug] - 0.0 - 0.0 - 22 - 2019-05-12 16:45 - ? - root - 0 - - - [ata_aux] - 0.0 - 0.0 - 23 - 2019-05-12 16:45 - ? - root - 0 - - - [ata_sff/0] - 0.0 - 0.0 - 24 - 2019-05-12 16:45 - ? - root - 0 - - - [ksuspend_usbd] - 0.0 - 0.0 - 25 - 2019-05-12 16:45 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 26 - 2019-05-12 16:45 - ? - root - 0 - - - [kseriod] - 0.0 - 0.0 - 27 - 2019-05-12 16:45 - ? - root - 0 - - - [md/0] - 0.0 - 0.0 - 28 - 2019-05-12 16:45 - ? - root - 0 - - - [md_misc/0] - 0.0 - 0.0 - 29 - 2019-05-12 16:45 - ? - root - 0 - - - [linkwatch] - 0.0 - 0.0 - 30 - 2019-05-12 16:45 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 31 - 2019-05-12 16:45 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 32 - 2019-05-12 16:45 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 33 - 2019-05-12 16:45 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 34 - 2019-05-12 16:45 - ? - root - 0 - - - [aio/0] - 0.0 - 0.0 - 35 - 2019-05-12 16:45 - ? - root - 0 - - - [crypto/0] - 0.0 - 0.0 - 36 - 2019-05-12 16:45 - ? - root - 0 - - - [kthrotld/0] - 0.0 - 0.0 - 43 - 2019-05-12 16:45 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 45 - 2019-05-12 16:45 - ? - root - 0 - - - [usbhid_resumer] - 0.0 - 0.0 - 46 - 2019-05-12 16:45 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 47 - 2019-05-12 16:45 - ? - root - 0 - - - [kdmremove] - 0.0 - 0.0 - 79 - 2019-05-12 16:45 - ? - root - 0 - - - [kstriped] - 0.0 - 0.0 - 80 - 2019-05-12 16:45 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 234 - 2019-05-12 16:45 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 235 - 2019-05-12 16:45 - ? - root - 0 - - - [scsi_eh_2] - 0.0 - 0.0 - 243 - 2019-05-12 16:45 - ? - root - 0 - - - [virtio-blk] - 0.0 - 0.0 - 261 - 2019-05-12 16:45 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 338 - 2019-05-12 16:46 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 340 - 2019-05-12 16:46 - ? - root - 0 - - - [flush-253:0] - 0.0 - 0.0 - 358 - 2019-05-12 16:46 - ? - root - 0 - - - [jbd2/dm-0-8] - 0.0 - 0.0 - 359 - 2019-05-12 16:46 - ? - root - 0 - - - [ext4-dio-unwrit] - 0.0 - 0.0 - 360 - 2019-05-12 16:46 - ? - root - 0 - - - /sbin/udevd -d - 0.0 - 0.0 - 442 - 2019-05-12 16:47 - ? - root - 11356 - - - [vballoon] - 0.0 - 0.0 - 615 - 2019-05-12 16:48 - ? - root - 0 - - - [virtio-net] - 0.0 - 0.0 - 619 - 2019-05-12 16:48 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 727 - 2019-05-12 16:50 - ? - root - 0 - - - [ext4-dio-unwrit] - 0.0 - 0.0 - 728 - 2019-05-12 16:50 - ? - root - 0 - - - [kauditd] - 0.0 - 0.0 - 790 - 2019-05-12 16:50 - ? - root - 0 - - - postgres: rudder rudder 127.0.0.1(38936) idle - 0.0 - 0.2 - 798 - 2019-09-13 01:38 - ? - postgres - 218188 - - - /sbin/dhclient -H orchestrateur-5 -1 -q -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0 - 0.0 - 0.0 - 1007 - 2019-05-12 16:51 - ? - root - 9124 - - - auditd - 0.0 - 0.0 - 1064 - 2019-05-12 16:52 - ? - root - 29772 - - - /sbin/rsyslogd -i /var/run/syslogd.pid -c 5 - 0.0 - 0.0 - 1086 - 2019-05-12 16:52 - ? - root - 473752 - - - dbus-daemon --system - 0.0 - 0.0 - 1110 - 2019-05-12 16:52 - ? - dbus - 31684 - - - /opt/rudder/libexec/slapd -h ldap://localhost:389 -n rudder-slapd -f /opt/rudder/etc/openldap/slapd.conf - 0.0 - 0.7 - 1308 - 2019-05-12 16:53 - ? - root - 105270456 - - - /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data - 0.0 - 0.0 - 1357 - 2019-05-12 16:54 - ? - postgres - 215988 - - - postgres: logger process - 0.0 - 0.0 - 1412 - 2019-05-12 16:56 - ? - postgres - 179000 - - - postgres: writer process - 0.0 - 0.8 - 1416 - 2019-05-12 16:56 - ? - postgres - 216184 - - - postgres: wal writer process - 0.0 - 0.0 - 1417 - 2019-05-12 16:56 - ? - postgres - 215988 - - - postgres: autovacuum launcher process - 0.0 - 0.0 - 1418 - 2019-05-12 16:56 - ? - postgres - 216260 - - - postgres: stats collector process - 0.0 - 0.0 - 1419 - 2019-05-12 16:56 - ? - postgres - 179132 - - - postgres: rudder rudder 127.0.0.1(47172) idle - 0.0 - 0.9 - 1461 - 2019-05-12 16:57 - ? - postgres - 217344 - - - postgres: rudder rudder 127.0.0.1(38938) idle - 0.0 - 0.0 - 1621 - 2019-09-13 01:40 - ? - postgres - 217200 - - - /var/rudder/cfengine-community/bin/cf-serverd - 0.0 - 0.1 - 1823 - 2019-05-12 16:58 - ? - root - 391696 - - - postgres: rudder rudder 127.0.0.1(38952) idle - 0.0 - 0.0 - 1982 - 2019-09-13 01:44 - ? - postgres - 217200 - - - /var/rudder/cfengine-community/bin/cf-execd - 0.0 - 0.0 - 1988 - 2019-05-12 16:59 - ? - root - 123676 - - - /usr/sbin/sshd - 0.0 - 0.0 - 2008 - 2019-05-12 16:59 - ? - root - 66260 - - - /usr/sbin/httpd - 0.0 - 0.1 - 2043 - 2019-05-12 16:59 - ? - root - 218400 - - - crond - 0.0 - 0.0 - 2121 - 2019-05-12 16:59 - ? - root - 116888 - - - /usr/sbin/atd - 0.0 - 0.0 - 2150 - 2019-05-12 16:59 - ? - root - 21112 - - - /usr/bin/rhsmcertd - 0.0 - 0.0 - 2167 - 2019-05-12 16:59 - ? - root - 108356 - - - /sbin/mingetty /dev/tty1 - 0.0 - 0.0 - 2181 - 2019-05-12 16:59 - tty1 - root - 4068 - - - /sbin/mingetty /dev/tty2 - 0.0 - 0.0 - 2183 - 2019-05-12 16:59 - tty2 - root - 4068 - - - /sbin/mingetty /dev/tty3 - 0.0 - 0.0 - 2185 - 2019-05-12 16:59 - tty3 - root - 4068 - - - /sbin/mingetty /dev/tty4 - 0.0 - 0.0 - 2187 - 2019-05-12 16:59 - tty4 - root - 4068 - - - /sbin/mingetty /dev/tty5 - 0.0 - 0.0 - 2189 - 2019-05-12 16:59 - tty5 - root - 4068 - - - /sbin/mingetty /dev/tty6 - 0.0 - 0.0 - 2191 - 2019-05-12 16:59 - tty6 - root - 4068 - - - /sbin/udevd -d - 0.0 - 0.0 - 2198 - 2019-05-12 16:59 - ? - root - 12408 - - - /sbin/udevd -d - 0.0 - 0.0 - 2199 - 2019-05-12 16:59 - ? - root - 12408 - - - postgres: rudder rudder 127.0.0.1(38966) idle - 0.0 - 0.0 - 3095 - 2019-09-13 01:46 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(38968) idle - 0.0 - 0.0 - 3115 - 2019-09-13 01:48 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(38970) idle - 0.0 - 0.0 - 3137 - 2019-09-13 01:49 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(38984) idle - 0.0 - 0.0 - 4243 - 2019-09-13 01:51 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(38986) idle - 0.0 - 0.0 - 4249 - 2019-09-13 01:51 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(38988) idle - 0.0 - 0.0 - 4270 - 2019-09-13 01:53 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(38990) idle - 0.0 - 0.0 - 4282 - 2019-09-13 01:54 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39004) idle - 0.0 - 0.0 - 5391 - 2019-09-13 01:56 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39006) idle - 0.0 - 0.0 - 5398 - 2019-09-13 01:57 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39008) idle - 0.0 - 0.0 - 5411 - 2019-09-13 01:58 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39010) idle - 0.0 - 0.0 - 5417 - 2019-09-13 01:58 - ? - postgres - 217200 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5483 - 2019-09-08 03:10 - ? - 497 - 291540 - - - /usr/sbin/httpd - 0.0 - 0.2 - 5484 - 2019-09-08 03:10 - ? - rudder - 433392 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5485 - 2019-09-08 03:10 - ? - apache - 220376 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5486 - 2019-09-08 03:10 - ? - apache - 220372 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5487 - 2019-09-08 03:10 - ? - apache - 220372 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5488 - 2019-09-08 03:10 - ? - apache - 220372 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5489 - 2019-09-08 03:10 - ? - apache - 220372 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5490 - 2019-09-08 03:10 - ? - apache - 220372 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5491 - 2019-09-08 03:10 - ? - apache - 220372 - - - /usr/sbin/httpd - 0.0 - 0.1 - 5492 - 2019-09-08 03:10 - ? - apache - 220372 - - - postgres: rudder rudder 127.0.0.1(39012) idle - 0.0 - 0.0 - 5549 - 2019-09-13 02:00 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39014) idle - 0.0 - 0.0 - 5550 - 2019-09-13 02:00 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39028) idle - 0.0 - 0.0 - 6601 - 2019-09-13 02:01 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39030) idle - 0.0 - 0.0 - 6607 - 2019-09-13 02:01 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39032) idle - 0.0 - 0.0 - 6616 - 2019-09-13 02:02 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39034) idle - 0.0 - 0.0 - 6627 - 2019-09-13 02:03 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39036) idle - 0.0 - 0.0 - 6633 - 2019-09-13 02:03 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39038) idle - 0.0 - 0.0 - 6637 - 2019-09-13 02:04 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39040) idle - 0.0 - 0.0 - 6653 - 2019-09-13 02:04 - ? - postgres - 217200 - - - postgres: rudder rudder 127.0.0.1(39042) idle - 0.0 - 0.0 - 6720 - 2019-09-13 02:05 - ? - postgres - 217200 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.0 - 7437 - 2019-09-13 02:05 - ? - root - 11308 - - - /var/rudder/cfengine-community/bin/cf-agent - 38.5 - 0.4 - 7447 - 2019-09-13 02:05 - ? - root - 78076 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/orchestrateur-5-root.ocs - 0.0 - 0.0 - 7681 - 2019-09-13 02:05 - ? - root - 108192 - - - /opt/rudder/bin/perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/orchestrateur-5-root.ocs - 17.0 - 0.9 - 7695 - 2019-09-13 02:05 - ? - root - 200972 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 7700 - 2019-09-13 02:05 - ? - root - 11308 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.0 - 7701 - 2019-09-13 02:05 - ? - root - 13372 - - - /usr/bin/java -server -Xms2000m -Xmx2000m -XX:+CMSClassUnloadingEnabled -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=500 -Dfile.encoding=UTF-8 -Drudder.configFile=/opt/rudder/etc/rudder-web.properties -Drudder.authFile=/opt/rudder/etc/rudder-users.xml -Dinventoryweb.configFile=/opt/rudder/etc/inventory-web.properties -Dlogback.configurationFile=/opt/rudder/etc/logback.xml -Drun.mode=production -Djetty.state=/opt/rudder/jetty7/jetty.state -Djetty.logs=/var/log/rudder/webapp/ -Djetty.home=/opt/rudder/jetty7 -Djava.io.tmpdir=/var/rudder/tmp/jetty -jar /opt/rudder/jetty7/start.jar OPTIONS=Server etc/jetty-logging.xml etc/jetty-started.xml - 0.4 - 40.9 - 25869 - 2019-07-17 12:13 - ? - root - 4331660 - - - postgres: rudder rudder 127.0.0.1(46836) idle - 0.0 - 0.1 - 25954 - 2019-07-17 12:13 - ? - postgres - 217960 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEAzzJ5l/ZBrT0ICvqB5jTMNkmlG88diAVUwFaA7XDIaJOv4buGz0q3 -aGNPolQX4xz2soFsObXnKiM3+d5LG3ZDSFY0p/gEpy/Mr31TBMmYsXSeVYibSsSV -LLgjcBonsZJr7pIuj+ChhaKPINYqW88NEojuScyTAUUCrxzIMcoeiPQEsqhr5W5P -sY1WRZCimE5qpadMRCstDKMviXyyoM3STNv0tSIJt96vXewuz8A47AsM1FhoVk6N -b+uwJ3divGWsU+wV9oGWFE5YA9r9zNJiDE0wOMP2n8U9MUHPigf5TFqs5BxllTuR -cm+Pmiqt4Id1j8IJcXMpObXz0bte8E2zZQIBIw== ------END RSA PUBLIC KEY----- - - root - 127.0.0.1 - orchestrateur-5 - - - cfengine - dumpdatastate - bodydefault - - orchestrateur-5.labo.normation.com - - rudder-webapp - rudder-reports - rudder-jetty - rudder-inventory-endpoint - rudder-db - rudder-server-root - rudder-ldap - rudder-inventory-ldap - - root - - - x86_64 - Library that implements an embeddable SQL database engine - 640060 - rpm - 06/07/2017 - sqlite - CentOS - 3.6.20-1.el6_7.2 - - - x86_64 - A module providing Perl interfaces to the zlib compression library - 52519 - rpm - 06/07/2017 - perl-Compress-Zlib - CentOS - 2.021-144.el6 - - - x86_64 - A database access API for perl - 1733631 - rpm - 29/08/2016 - perl-DBI - Red Hat, Inc. - 1.609-4.el6 - - - x86_64 - Library of functions for manipulating TIFF format image files - 966899 - rpm - 06/07/2017 - libtiff - CentOS - 3.9.4-21.el6_8 - - - noarch - XML-SAX Perl module - 262055 - rpm - 29/08/2016 - perl-XML-SAX - Red Hat, Inc. - 0.96-7.el6 - - - x86_64 - Dynamic library for extended attribute support - 18712 - rpm - 29/08/2016 - libattr - Red Hat, Inc. - 2.4.44-7.el6 - - - x86_64 - Command line interface parsing library - 71689 - rpm - 06/07/2017 - libss - CentOS - 1.41.12-23.el6 - - - x86_64 - A GNU collection of binary utilities - 9831280 - rpm - 06/07/2017 - binutils - CentOS - 2.20.51.0.2-5.46.el6 - - - noarch - Extensible, general Perl server engine - 524179 - rpm - 29/08/2016 - perl-Net-Server - Fedora Project - 2.007-2.el6 - - - x86_64 - An extensible library which provides authentication for applications - 2419646 - rpm - 06/07/2017 - pam - CentOS - 1.1.1-24.el6 - - - noarch - Object oriented interface to SNMP - 397009 - rpm - 29/08/2016 - perl-Net-SNMP - Fedora Project - 5.2.0-4.el6 - - - x86_64 - A general purpose cryptography library with TLS implementation - 4248338 - rpm - 06/07/2017 - openssl - CentOS - 1.0.1e-57.el6 - - - noarch - Helper application and MIME type associations for file types - 52877 - rpm - 29/08/2016 - mailcap - Red Hat, Inc. - 2.1.31-2.el6 - - - (none) - gpg(Heinrich Heine <heinrichh@duesseldorf.de>) - 0 - rpm - 11/04/2019 - gpg-pubkey - 0011fdf0-5caf45bb - - - noarch - Hardware identification and configuration data - 5520677 - rpm - 06/07/2017 - hwdata - CentOS - 0.233-18.1.el6 - - - x86_64 - Configuration management and audit tool - OpenLDAP - 27128274 - rpm - 12/04/2019 - rudder-inventory-ldap - Normation - 4.1.21.release-1.EL.6 - - - noarch - A high-level cross-protocol url-grabber - 323137 - rpm - 06/07/2017 - python-urlgrabber - CentOS - 3.9.1-11.el6 - - - noarch - Configuration management and audit tool - webapp - 111001140 - rpm - 12/04/2019 - rudder-webapp - Normation - 4.1.21.release-1.EL.6 - - - x86_64 - The shared libraries required for MySQL clients - 4245302 - rpm - 06/07/2017 - mysql-libs - CentOS - 5.1.73-8.el6_8 - - - x86_64 - A small text editor - 1588379 - rpm - 29/08/2016 - nano - Red Hat, Inc. - 2.0.9-7.el6 - - - x86_64 - Network Security Services Utilities Library - 191928 - rpm - 22/05/2019 - nss-util - CentOS - 3.36.0-1.el6 - - - x86_64 - Libraries for accessing D-BUS - 265728 - rpm - 19/09/2016 - dbus-libs - Red Hat, Inc. - 1.2.24-8.el6_6 - - - x86_64 - Internationalized Domain Name support library - 567580 - rpm - 29/08/2016 - libidn - Red Hat, Inc. - 1.18-2.el6 - - - x86_64 - OpenJDK Development Environment - 42059012 - rpm - 22/05/2019 - java-1.8.0-openjdk-devel - CentOS - 1.8.0.171-8.b10.el6_9 - - - noarch - Yum plugin which chooses fastest repository from a mirrorlist - 53959 - rpm - 06/07/2017 - yum-plugin-fastestmirror - CentOS - 1.1.30-40.el6 - - - x86_64 - D-BUS message bus - 482857 - rpm - 19/09/2016 - dbus - Red Hat, Inc. - 1.2.24-8.el6_6 - - - x86_64 - LDAP support libraries - 859518 - rpm - 06/07/2017 - openldap - CentOS - 2.4.40-16.el6 - - - x86_64 - A file compression utility - 79087 - rpm - 29/08/2016 - bzip2 - Red Hat, Inc. - 1.0.5-7.el6_0 - - - x86_64 - System and process monitoring utilities - 475510 - rpm - 06/07/2017 - procps - CentOS - 3.2.8-45.el6 - - - x86_64 - X.Org X11 SM runtime library - 78264 - rpm - 19/09/2016 - libSM - Red Hat, Inc. - 1.2.1-2.el6 - - - x86_64 - The GNU Portable Threads library - 261931 - rpm - 29/08/2016 - pth - Red Hat, Inc. - 2.0.7-9.3.el6 - - - x86_64 - Linux-native asynchronous I/O access library - 34542 - rpm - 06/07/2017 - libaio - CentOS - 0.3.107-10.el6 - - - x86_64 - The Advanced Linux Sound Architecture (ALSA) library - 1277969 - rpm - 19/09/2016 - alsa-lib - Red Hat, Inc. - 1.1.0-4.el6 - - - x86_64 - PC/SC Lite libraries - 44912 - rpm - 06/07/2017 - pcsc-lite-libs - CentOS - 1.5.2-16.el6 - - - x86_64 - A program for synchronizing files over a network - 698678 - rpm - 19/09/2016 - rsync - Red Hat, Inc. - 3.0.6-12.el6 - - - x86_64 - Advanced IP routing and network device configuration tools - 973493 - rpm - 06/07/2017 - iproute - CentOS - 2.6.32-54.el6 - - - x86_64 - X.Org X11 libXfont runtime library - 336333 - rpm - 19/09/2016 - libXfont - Red Hat, Inc. - 1.5.1-2.el6 - - - x86_64 - Fast compression and decompression library - 115569 - rpm - 29/08/2016 - snappy - Red Hat, Inc. - 1.1.0-1.el6 - - - x86_64 - The inittab file and the /etc/init.d scripts - 5734590 - rpm - 06/07/2017 - initscripts - CentOS - 9.03.58-1.el6.centos - - - x86_64 - An encoder/decoder for the Free Lossless Audio Codec - 722062 - rpm - 19/09/2016 - flac - Red Hat, Inc. - 1.2.1-7.el6_6 - - - x86_64 - A program used for creating device files in /dev - 227290 - rpm - 29/08/2016 - MAKEDEV - Red Hat, Inc. - 3.24-6.el6 - - - x86_64 - Device-mapper shared library - 369464 - rpm - 06/07/2017 - device-mapper-libs - CentOS - 1.02.117-12.el6 - - - x86_64 - ConsoleKit libraries - 22061 - rpm - 19/09/2016 - ConsoleKit-libs - Red Hat, Inc. - 0.4.1-6.el6 - - - x86_64 - An open source SSH client applications - 1348346 - rpm - 06/07/2017 - openssh-clients - CentOS - 5.3p1-122.el6 - - - x86_64 - System daemon for tracking users, sessions and seats - 273094 - rpm - 19/09/2016 - ConsoleKit - Red Hat, Inc. - 0.4.1-6.el6 - - - x86_64 - Shared libraries for lvm2 - 2637256 - rpm - 06/07/2017 - lvm2-libs - CentOS - 2.02.143-12.el6 - - - noarch - Type1 fonts provided by the X Window System - 883992 - rpm - 19/09/2016 - xorg-x11-fonts-Type1 - Red Hat, Inc. - 7.2-11.el6 - - - x86_64 - Displays where a particular program in your path is located - 73004 - rpm - 29/08/2016 - which - Red Hat, Inc. - 2.19-6.el6 - - - x86_64 - The mdadm program controls Linux md devices (software RAID arrays) - 823996 - rpm - 06/07/2017 - mdadm - CentOS - 3.3.4-8.el6 - - - x86_64 - SELinux libselinux utilies - 62739 - rpm - 19/09/2016 - libselinux-utils - Red Hat, Inc. - 2.0.94-7.el6 - - - x86_64 - Small and fast POSIX-compliant shell - 127277 - rpm - 29/08/2016 - dash - Red Hat, Inc. - 0.5.5.1-4.el6 - - - x86_64 - Cron daemon for executing programs at set times - 178643 - rpm - 06/07/2017 - cronie - CentOS - 1.4.4-16.el6_8.2 - - - x86_64 - Thai language support routines - 694712 - rpm - 19/09/2016 - libthai - Red Hat, Inc. - 0.1.12-3.el6 - - - x86_64 - Libraries for avahi run-time use - 114824 - rpm - 06/07/2017 - avahi-libs - CentOS - 0.6.25-17.el6 - - - x86_64 - User-space access to Linux Kernel SCTP - 210697 - rpm - 19/09/2016 - lksctp-tools - Red Hat, Inc. - 1.0.10-7.el6 - - - noarch - Common data for libX11 - 1341368 - rpm - 06/07/2017 - libX11-common - CentOS - 1.6.4-3.el6 - - - x86_64 - APR utility library LDAP support - 9488 - rpm - 19/09/2016 - apr-util-ldap - Red Hat, Inc. - 1.3.9-3.el6_0.1 - - - x86_64 - X.Org X11 libXtst runtime library - 27778 - rpm - 06/07/2017 - libXtst - CentOS - 1.2.3-1.el6 - - - x86_64 - The GIMP ToolKit (GTK+), a library for creating GUIs for X - 12426003 - rpm - 06/07/2017 - gtk2 - CentOS - 2.24.23-9.el6 - - - x86_64 - Linux PCI library - 48992 - rpm - 29/08/2016 - pciutils-libs - Red Hat, Inc. - 3.1.10-4.el6 - - - x86_64 - The programs needed to create and run a PostgreSQL server - 15475313 - rpm - 06/07/2017 - postgresql-server - CentOS - 8.4.20-7.el6 - - - x86_64 - Asynchronous Name Service Library - 52762 - rpm - 19/09/2016 - libasyncns - Red Hat, Inc. - 0.8-1.1.el6 - - - x86_64 - Key utilities library - 36624 - rpm - 29/08/2016 - keyutils-libs - Red Hat, Inc. - 1.4-5.el6 - - - x86_64 - The kexec/kdump userspace component. - 891788 - rpm - 06/07/2017 - kexec-tools - CentOS - 2.0.0-307.el6 - - - x86_64 - An open source SSH server daemon - 718920 - rpm - 06/07/2017 - openssh-server - CentOS - 5.3p1-122.el6 - - - x86_64 - Python bindings for newt - 111017 - rpm - 06/07/2017 - newt-python - CentOS - 0.52.11-4.el6 - - - x86_64 - Library files for fipscheck - 10353 - rpm - 29/08/2016 - fipscheck-lib - Red Hat, Inc. - 1.2.0-7.el6 - - - noarch - Powerful extensions to the standard datetime module - 350476 - rpm - 06/07/2017 - python-dateutil - CentOS - 1.4.1-7.el6 - - - x86_64 - X.Org X11 libXinerama runtime library - 12039 - rpm - 19/09/2016 - libXinerama - Red Hat, Inc. - 1.1.3-2.1.el6 - - - x86_64 - Convenience library for kernel netlink sockets - 361734 - rpm - 29/08/2016 - libnl - Red Hat, Inc. - 1.1.4-2.el6 - - - x86_64 - Ethernet settings python bindings - 70389 - rpm - 06/07/2017 - python-ethtool - CentOS - 0.6-6.el6 - - - x86_64 - Library for parsing IDL (Interface Definition Language) - 214847 - rpm - 19/09/2016 - libIDL - Red Hat, Inc. - 0.8.13-2.1.el6 - - - x86_64 - Utilities for managing ext2, ext3, and ext4 filesystems - 2020543 - rpm - 06/07/2017 - e2fsprogs - CentOS - 1.41.12-23.el6 - - - x86_64 - Access control list utilities - 193226 - rpm - 06/07/2017 - acl - CentOS - 2.2.49-7.el6 - - - noarch - Firmware for qlogic 2400 devices - 262499 - rpm - 06/07/2017 - ql2400-firmware - CentOS - 7.03.00-1.el6_5 - - - x86_64 - A Python library to communicate with a Red Hat Unified Entitlement Platform - 338983 - rpm - 29/08/2016 - python-rhsm - Red Hat, Inc. - 1.12.5-2.el6 - - - x86_64 - GCC OpenMP v3.0 shared support library - 127982 - rpm - 07/08/2017 - libgomp - CentOS - 4.4.7-18.el6 - - - x86_64 - Header files for the Linux kernel for use by glibc - 2774380 - rpm - 07/08/2017 - kernel-headers - CentOS - 2.6.32-696.el6 - - - x86_64 - The Berkeley DB database library (version 4) for C++ - 1647216 - rpm - 07/08/2017 - db4-cxx - CentOS - 4.7.25-22.el6 - - - x86_64 - D-Bus Python Bindings - 807290 - rpm - 29/08/2016 - dbus-python - Red Hat, Inc. - 0.83.0-6.1.el6 - - - x86_64 - Development libraries and header files for the gdbm library - 22251 - rpm - 07/08/2017 - gdbm-devel - CentOS - 1.8.0-39.el6 - - - x86_64 - A fast metadata parser for yum - 58327 - rpm - 29/08/2016 - yum-metadata-parser - Red Hat, Inc. - 1.1.2-16.el6 - - - x86_64 - Job spooling tools - 94197 - rpm - 07/08/2017 - at - CentOS - 3.1.10-49.el6 - - - x86_64 - The shared library for the S-Lang extension language - 1800725 - rpm - 29/08/2016 - slang - Red Hat, Inc. - 2.2.1-1.el6 - - - x86_64 - Dynamic library for for the gpm - 23720 - rpm - 29/08/2017 - gpm-libs - CentOS - 1.20.6-12.el6 - - - x86_64 - The NET-SNMP runtime libraries - 5724491 - rpm - 03/11/2017 - net-snmp-libs - CentOS - 5.5-60.el6 - - - noarch - RHN support for yum - 200272 - rpm - 29/08/2016 - yum-rhn-plugin - Red Hat, Inc. - 0.9.1-50.el6 - - - x86_64 - Common error description library - 34455 - rpm - 03/11/2017 - libcom_err-devel - CentOS - 1.41.12-23.el6 - - - x86_64 - Development files for the popt library - 27716 - rpm - 03/11/2017 - popt-devel - CentOS - 1.13-7.el6 - - - x86_64 - Development files for manipulating RPM packages - 278818 - rpm - 03/11/2017 - rpm-devel - CentOS - 4.8.0-55.el6 - - - x86_64 - The development environment for the NET-SNMP project - 742381 - rpm - 03/11/2017 - net-snmp-devel - CentOS - 5.5-60.el6 - - - x86_64 - The perl NET-SNMP module and the mib2c tool - 1132354 - rpm - 03/11/2017 - net-snmp-perl - CentOS - 5.5-60.el6 - - - x86_64 - GCC version 4.4 shared support library - 117320 - rpm - 06/07/2017 - libgcc - CentOS - 4.4.7-18.el6 - - - noarch - Firmware files used by the Linux kernel - 67425640 - rpm - 06/07/2017 - kernel-firmware - CentOS - 2.6.32-696.el6 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters - 940307 - rpm - 29/08/2016 - iwl6050-firmware - Red Hat, Inc. - 41.28.5.1-2.el6 - - - x86_64 - Freebl library for the Network Security Services - 490290 - rpm - 06/07/2017 - nss-softokn-freebl - CentOS - 3.14.3-23.3.el6_8 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6000 Series AGN Adapter - 461443 - rpm - 29/08/2016 - iwl6000-firmware - Red Hat, Inc. - 9.221.4.1-1.el6 - - - x86_64 - A system tool for maintaining the /etc/rc*.d hierarchy - 670580 - rpm - 06/07/2017 - chkconfig - CentOS - 1.3.49.5-1.el6 - - - x86_64 - Common error description library - 59233 - rpm - 06/07/2017 - libcom_err - CentOS - 1.41.12-23.el6 - - - noarch - Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors - 1045904 - rpm - 29/08/2016 - iwl5000-firmware - Red Hat, Inc. - 8.83.5.1_1-1.el6_1.1 - - - x86_64 - A GNU source-level debugger for C, C++, Java and other languages - 5545845 - rpm - 01/06/2018 - gdb - CentOS - 7.2-92.el6 - - - x86_64 - Library to read and write ELF files - 1011166 - rpm - 06/07/2017 - elfutils-libelf - CentOS - 0.164-2.el6 - - - x86_64 - Shared libraries needed by applications which use Cyrus SASL - 357710 - rpm - 06/07/2017 - cyrus-sasl-lib - CentOS - 2.1.23-15.el6_6.2 - - - noarch - Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors - 382618 - rpm - 29/08/2016 - iwl4965-firmware - Red Hat, Inc. - 228.61.2.24-2.1.el6 - - - x86_64 - Universally unique ID library - 16304 - rpm - 06/07/2017 - libuuid - CentOS - 2.17.2-12.28.el6 - - - noarch - Firmware for Ralink® RT2571W/RT2671 A/B/G network adaptors - 4151 - rpm - 29/08/2016 - rt73usb-firmware - Red Hat, Inc. - 1.8-7.el6 - - - noarch - Extra Packages for Enterprise Linux repository configuration - 22169 - rpm - 19/12/2018 - epel-release - Fedora Project - 6-8 - - - x86_64 - A GNU archiving program - 650433 - rpm - 06/07/2017 - cpio - CentOS - 2.10-13.el6 - - - noarch - The basic required files for the root user's directory - 599 - rpm - 29/08/2016 - rootfiles - Red Hat, Inc. - 8.1-6.1.el6 - - - x86_64 - IPv6 related part of the C socket.h defines and structure manipulators - 55169 - rpm - 19/12/2018 - perl-Socket6 - CentOS - 0.23-4.el6 - - - x86_64 - Automatically give your module the ability to have plugins - 31033 - rpm - 06/07/2017 - perl-Module-Pluggable - CentOS - 3.90-144.el6 - - - x86_64 - A utility for getting files from remote servers (FTP, HTTP, and others) - 357074 - rpm - 29/08/2016 - curl - Red Hat, Inc. - 7.19.7-52.el6 - - - x86_64 - Practical Extraction and Report Language - 35282834 - rpm - 06/07/2017 - perl - CentOS - 5.10.1-144.el6 - - - x86_64 - The basic directory layout for a Linux system - 0 - rpm - 29/08/2016 - filesystem - Red Hat, Inc. - 2.4.30-3.el6 - - - noarch - The skeleton package which defines a simple Red Hat Enterprise Linux system - 0 - rpm - 29/08/2016 - basesystem - Red Hat, Inc. - 10.0-4.el6 - - - noarch - Digest-HMAC Perl module - 34010 - rpm - 29/08/2016 - perl-Digest-HMAC - Red Hat, Inc. - 1.01-22.el6 - - - x86_64 - Perl interface to the libxml2 library - 974046 - rpm - 29/08/2016 - perl-XML-LibXML - Red Hat, Inc. - 1.70-5.el6 - - - x86_64 - Library for getting and setting POSIX.1e capabilities - 64437 - rpm - 29/08/2016 - libcap - Red Hat, Inc. - 2.16-5.5.el6 - - - noarch - A Perl module implementing URI parsing and manipulation - 256107 - rpm - 29/08/2016 - perl-URI - Red Hat, Inc. - 1.40-2.el6 - - - x86_64 - A stand-alone TTY-based reader for GNU texinfo documentation - 329386 - rpm - 29/08/2016 - info - Red Hat, Inc. - 4.13a-8.el6 - - - x86_64 - C library for parsing command line parameters - 83420 - rpm - 29/08/2016 - popt - Red Hat, Inc. - 1.13-7.el6 - - - noarch - Manage IO on many file handles - 43898 - rpm - 29/08/2016 - perl-IO-Multiplex - Fedora Project - 1.13-1.el6 - - - noarch - HTML::Tagset - data tables useful in parsing HTML - 19694 - rpm - 29/08/2016 - perl-HTML-Tagset - Red Hat, Inc. - 3.20-4.el6 - - - x86_64 - Perl DES encryption module - 33380 - rpm - 29/08/2016 - perl-Crypt-DES - Fedora Project - 2.05-9.el6 - - - x86_64 - Provide the stuff missing in List::Util - 139694 - rpm - 29/08/2016 - perl-List-MoreUtils - Red Hat, Inc. - 0.22-10.el6 - - - x86_64 - SELinux binary policy manipulation library - 248680 - rpm - 29/08/2016 - libsepol - Red Hat, Inc. - 2.0.41-4.el6 - - - noarch - Network-wide graphing framework (common files) - 195538 - rpm - 29/08/2016 - munin-common - Fedora Project - 2.0.25-11.el6 - - - x86_64 - A GNU stream text editor - 542324 - rpm - 29/08/2016 - sed - Red Hat, Inc. - 4.2.1-10.el6 - - - noarch - Top like utility for I/O - 146630 - rpm - 29/03/2019 - iotop - CentOS - 0.3.2-9.el6 - - - x86_64 - A library for editing typed command lines - 433957 - rpm - 29/08/2016 - readline - Red Hat, Inc. - 6.0-4.el6 - - - noarch - Configuration management and audit tool - Jetty application server - 6778219 - rpm - 12/04/2019 - rudder-jetty - Normation - 4.1.21.release-1.EL.6 - - - x86_64 - A PostgreSQL interface for perl - 557509 - rpm - 29/08/2016 - perl-DBD-Pg - Red Hat, Inc. - 2.15.1-4.el6_3 - - - x86_64 - Configuration management and audit tool - agent - 102555929 - rpm - 12/04/2019 - rudder-agent - Normation - 4.1.21.release-1.EL.6 - - - noarch - Network-wide graphing framework (node) - 1353171 - rpm - 29/08/2016 - munin-node - Fedora Project - 2.0.25-11.el6 - - - noarch - Configuration management and audit tool - service to receive inventory data - 40391412 - rpm - 12/04/2019 - rudder-inventory-endpoint - Normation - 4.1.21.release-1.EL.6 - - - noarch - Configuration management and audit tool - techniques - 23781570 - rpm - 12/04/2019 - rudder-techniques - Normation - 4.1.21.release-1.EL.6 - - - x86_64 - Libraries for decoding LZMA compression - 214490 - rpm - 29/08/2016 - xz-libs - Red Hat, Inc. - 4.999.9-0.5.beta.20091007git.el6 - - - noarch - Configuration management and audit tool - reports database - 17867 - rpm - 12/04/2019 - rudder-reports - Normation - 4.1.21.release-1.EL.6 - - - (none) - gpg(Rudder Project (RPM release key) <security@rudder-project.org>) - 0 - rpm - 19/09/2016 - gpg-pubkey - 6f07d355-509cdb91 - - - x86_64 - Netscape Portable Runtime - 281968 - rpm - 22/05/2019 - nspr - CentOS - 4.19.0-1.el6 - - - x86_64 - Powerful light-weight programming language - 617911 - rpm - 29/08/2016 - lua - Red Hat, Inc. - 5.1.4-4.1.el6 - - - x86_64 - A free and portable font rendering engine - 836907 - rpm - 19/09/2016 - freetype - Red Hat, Inc. - 2.3.11-17.el6 - - - x86_64 - System NSS Initialization - 32822 - rpm - 22/05/2019 - nss-sysinit - CentOS - 3.36.0-8.el6 - - - x86_64 - Font configuration and customization library - 450597 - rpm - 19/09/2016 - fontconfig - Red Hat, Inc. - 2.8.0-5.el6 - - - x86_64 - OpenJDK Runtime Environment - 504995 - rpm - 22/05/2019 - java-1.8.0-openjdk - CentOS - 1.8.0.171-8.b10.el6_9 - - - x86_64 - OpenJDK Runtime Environment - 107216779 - rpm - 22/05/2019 - java-1.8.0-openjdk-headless - CentOS - 1.8.0.171-8.b10.el6_9 - - - x86_64 - A library of functions for manipulating PNG image format files - 654803 - rpm - 19/09/2016 - libpng - Red Hat, Inc. - 1.2.49-2.el6_7 - - - x86_64 - Interactive process viewer - 182737 - rpm - 23/05/2019 - htop - Fedora Project - 1.0.3-1.el6 - - - x86_64 - Apache Portable Runtime Utility library - 202360 - rpm - 19/09/2016 - apr-util - Red Hat, Inc. - 1.3.9-3.el6_0.1 - - - x86_64 - SELinux policy compiler - 870239 - rpm - 29/08/2016 - checkpolicy - Red Hat, Inc. - 2.0.22-1.el6 - - - x86_64 - X.Org X11 ICE runtime library - 117691 - rpm - 19/09/2016 - libICE - Red Hat, Inc. - 1.0.6-1.el6 - - - x86_64 - Enhanced system logging and kernel message trapping daemons - 2178098 - rpm - 19/09/2016 - rsyslog - Red Hat, Inc. - 5.8.10-10.el6_6 - - - x86_64 - The ASN.1 library used in GNUTLS - 443140 - rpm - 29/08/2016 - libtasn1 - Red Hat, Inc. - 2.3-6.el6_5 - - - x86_64 - SELinux binary policy manipulation library - 204223 - rpm - 19/09/2016 - libsemanage - Red Hat, Inc. - 2.0.43-5.1.el6 - - - x86_64 - System trust module from p11-kit - 178775 - rpm - 29/08/2016 - p11-kit-trust - Red Hat, Inc. - 0.18.5-2.el6_5.2 - - - x86_64 - X.Org X11 libfontenc runtime library - 50316 - rpm - 19/09/2016 - libfontenc - Red Hat, Inc. - 1.1.2-3.el6 - - - x86_64 - Library providing the Gnome XSLT engine - 2223955 - rpm - 29/08/2016 - libxslt - Red Hat, Inc. - 1.1.26-2.el6_3.1 - - - noarch - Error/exception handling in an OO-ish way - 47375 - rpm - 19/09/2016 - perl-Error - Red Hat, Inc. - 0.17015-4.el6 - - - x86_64 - Lightweight application development library - 486830 - rpm - 29/08/2016 - libnih - Red Hat, Inc. - 1.0.1-7.el6 - - - x86_64 - X.Org X11 font utilities - 300562 - rpm - 19/09/2016 - xorg-x11-font-utils - Red Hat, Inc. - 7.2-11.el6 - - - x86_64 - A library which allows userspace access to USB devices - 54408 - rpm - 29/08/2016 - libusb - Red Hat, Inc. - 0.1.12-23.el6 - - - x86_64 - PostgresSQL support for rsyslog - 11325 - rpm - 19/09/2016 - rsyslog-pgsql - Red Hat, Inc. - 5.8.10-10.el6_6 - - - x86_64 - A privileged helper for utmp/wtmp updates - 40785 - rpm - 29/08/2016 - libutempter - Red Hat, Inc. - 1.1.5-4.1.el6 - - - x86_64 - The Vorbis General Audio Compression Codec. - 2153576 - rpm - 19/09/2016 - libvorbis - Red Hat, Inc. - 1.2.3-4.el6_2.1 - - - x86_64 - Experimental D-Bus bindings for GObject - 321013 - rpm - 19/09/2016 - eggdbus - Red Hat, Inc. - 0.6-3.el6 - - - x86_64 - PolicyKit Authorization Framework - 646365 - rpm - 19/09/2016 - polkit - Red Hat, Inc. - 0.96-11.el6 - - - x86_64 - Utility to create fonts.scale files for truetype fonts - 101747 - rpm - 19/09/2016 - ttmkfdir - Red Hat, Inc. - 3.0.9-32.1.el6 - - - x86_64 - A GNU collection of diff utilities - 588807 - rpm - 29/08/2016 - diffutils - Red Hat, Inc. - 2.8.1-28.el6 - - - x86_64 - SELinux python bindings for libselinux - 672851 - rpm - 19/09/2016 - libselinux-python - Red Hat, Inc. - 2.0.94-7.el6 - - - x86_64 - Python bindings for SELinux policy analysis - 1634001 - rpm - 19/09/2016 - setools-libs-python - Red Hat, Inc. - 3.3.7-4.el6 - - - x86_64 - The GNU macro processor - 560949 - rpm - 29/08/2016 - m4 - Red Hat, Inc. - 1.4.13-5.el6 - - - x86_64 - A text file browser similar to more, but better - 201909 - rpm - 29/08/2016 - less - Red Hat, Inc. - 436-13.el6 - - - noarch - JPackage utilities - 168654 - rpm - 19/09/2016 - jpackage-utils - Red Hat, Inc. - 1.7.5-3.16.el6 - - - x86_64 - The standard CrackLib dictionaries - 9327207 - rpm - 29/08/2016 - cracklib-dicts - Red Hat, Inc. - 2.8.16-4.el6 - - - noarch - Common SGML catalog and DTD files - 135735 - rpm - 19/09/2016 - sgml-common - Red Hat, Inc. - 0.6.3-33.el6 - - - x86_64 - A WSGI interface for Python web applications in Apache - 181194 - rpm - 19/09/2016 - mod_wsgi - Red Hat, Inc. - 3.2-7.el6 - - - x86_64 - An alternate posix capabilities library - 45214 - rpm - 29/08/2016 - libcap-ng - Red Hat, Inc. - 0.6.4-3.el6_0.1 - - - x86_64 - Data compression library with very fast (de)compression - 163806 - rpm - 29/08/2016 - lzo - Red Hat, Inc. - 2.03-3.1.el6_5.1 - - - x86_64 - Pixel manipulation library - 721560 - rpm - 19/09/2016 - pixman - Red Hat, Inc. - 0.32.8-1.el6 - - - x86_64 - X.Org X11 libXext runtime library - 85590 - rpm - 19/09/2016 - libXext - Red Hat, Inc. - 1.3.3-1.el6 - - - x86_64 - A 2D graphics library - 797873 - rpm - 19/09/2016 - cairo - Red Hat, Inc. - 1.8.8-6.el6_6 - - - x86_64 - Utility for secure communication and data storage - 6087681 - rpm - 29/08/2016 - gnupg2 - Red Hat, Inc. - 2.0.14-8.el6 - - - x86_64 - X Composite Extension library - 31878 - rpm - 19/09/2016 - libXcomposite - Red Hat, Inc. - 0.4.3-4.el6 - - - x86_64 - X Damage extension library - 24896 - rpm - 19/09/2016 - libXdamage - Red Hat, Inc. - 1.1.3-4.el6 - - - x86_64 - A library for integrity verification of FIPS validated modules - 28163 - rpm - 29/08/2016 - fipscheck - Red Hat, Inc. - 1.2.0-7.el6 - - - x86_64 - X.Org X11 libXft runtime library - 120045 - rpm - 19/09/2016 - libXft - Red Hat, Inc. - 2.3.2-1.el6 - - - x86_64 - Library for manipulating GIF format image files - 81932 - rpm - 19/09/2016 - giflib - Red Hat, Inc. - 4.1.6-3.1.el6 - - - x86_64 - A portable foreign function interface library - 42881 - rpm - 29/08/2016 - libffi - Red Hat, Inc. - 3.0.5-3.2.el6 - - - noarch - Python Module for Accessing and Modifying Configuration Data in INI files - 109284 - rpm - 29/08/2016 - python-iniparse - Red Hat, Inc. - 0.3.1-2.1.el6 - - - x86_64 - ElementTree-like Python bindings for libxml2 and libxslt - 22584929 - rpm - 29/08/2016 - python-lxml - Red Hat, Inc. - 2.2.3-1.1.el6 - - - noarch - Red Hat Support Software Development Library - 2083999 - rpm - 29/08/2016 - redhat-support-lib-python - Red Hat, Inc. - 0.9.6-1.el6 - - - x86_64 - The client program for the Telnet remote login protocol - 112112 - rpm - 18/11/2016 - telnet - Red Hat, Inc. - 0.17-48.el6 - - - x86_64 - Python module for working with OpenPGP messages - 251172 - rpm - 29/08/2016 - pygpgme - Red Hat, Inc. - 0.1-18.20090824bzr68.el6 - - - x86_64 - Utility for modifying/upgrading files - 175662 - rpm - 07/08/2017 - patch - CentOS - 2.6-6.el6 - - - x86_64 - GNU libraries and utilities for producing multi-lingual messages - 6369345 - rpm - 07/08/2017 - gettext - CentOS - 0.17-18.el6 - - - noarch - Python libraries for the RHN project - 219094 - rpm - 29/08/2016 - rhnlib - Red Hat, Inc. - 2.5.22-15.el6 - - - x86_64 - The GNU line editor - 119832 - rpm - 07/08/2017 - ed - CentOS - 1.1-3.3.el6 - - - x86_64 - Library providing the FAM File Alteration Monitor API - 416536 - rpm - 29/08/2016 - gamin - Red Hat, Inc. - 0.1.10-9.el6 - - - x86_64 - Header files for development using standard C libraries. - 2146171 - rpm - 07/08/2017 - glibc-headers - CentOS - 2.12-1.209.el6 - - - x86_64 - Shared MIME information database - 1411396 - rpm - 29/08/2016 - shared-mime-info - Red Hat, Inc. - 0.70-6.el6 - - - x86_64 - Enhanced implementation of the mailx command - 462578 - rpm - 07/08/2017 - mailx - CentOS - 12.4-8.el6_6 - - - x86_64 - GLib bindings for D-Bus - 579611 - rpm - 29/08/2016 - dbus-glib - Red Hat, Inc. - 0.86-6.el6_4 - - - x86_64 - C development files for the Berkeley DB (version 4) library - 25205066 - rpm - 07/08/2017 - db4-devel - CentOS - 4.7.25-22.el6 - - - x86_64 - Python bindings for GObject - 676356 - rpm - 29/08/2016 - pygobject2 - Red Hat, Inc. - 2.20.0-5.el6 - - - x86_64 - A set of documentation tools: man, apropos and whatis - 398735 - rpm - 07/08/2017 - man - CentOS - 1.6f-39.el6 - - - x86_64 - Command line tool for updating bootloader configs - 84546 - rpm - 29/08/2016 - grubby - Red Hat, Inc. - 7.0.15-7.el6 - - - x86_64 - Module and a script for converting Perl XS code into C code - 62208 - rpm - 07/08/2017 - perl-ExtUtils-ParseXS - CentOS - 2.2003.0-144.el6 - - - x86_64 - Create a module Makefile - 622462 - rpm - 07/08/2017 - perl-ExtUtils-MakeMaker - CentOS - 6.55-144.el6 - - - x86_64 - Python (PyGObject) bindings to the GUDev library - 42410 - rpm - 29/08/2016 - python-gudev - Red Hat, Inc. - 147.1-4.el6_0.1 - - - x86_64 - Handle Common Gateway Interface requests and responses - 444460 - rpm - 07/08/2017 - perl-CGI - CentOS - 3.51-144.el6 - - - x86_64 - LSB base libraries support for CentOS - 22825 - rpm - 07/08/2017 - redhat-lsb-core - CentOS - 4.0-7.el6.centos - - - noarch - Support programs and libraries for Red Hat Network or Spacewalk - 3338800 - rpm - 29/08/2016 - rhn-client-tools - Red Hat, Inc. - 1.0.0.1-18.el6 - - - x86_64 - VIM filesystem layout - 0 - rpm - 29/08/2017 - vim-filesystem - CentOS - 7.4.629-5.el6_8.1 - - - noarch - Data for kbd package - 1443451 - rpm - 29/08/2016 - kbd-misc - Red Hat, Inc. - 1.15-11.el6 - - - x86_64 - A version of the VIM editor which includes recent enhancements - 2286418 - rpm - 29/08/2017 - vim-enhanced - CentOS - 7.4.629-5.el6_8.1 - - - noarch - Optparse inspired command line parser for Python - 237071 - rpm - 02/11/2017 - python-argparse - CentOS - 1.2.1-2.1.el6 - - - noarch - Run Perl standard test scripts with statistics - 603066 - rpm - 03/02/2017 - perl-Test-Harness - Dag Apt Repository, http://dag.wieers.com/apt/ - 3.23-1.el6.rfx - - - noarch - Pure Perl implementation for parsing/writing xml files - 68202 - rpm - 03/02/2017 - perl-XML-TreePP - Dag Apt Repository, http://dag.wieers.com/apt/ - 0.41-1.el6.rf - - - x86_64 - Tools for certain user account management tasks - 798443 - rpm - 29/08/2016 - usermode - Red Hat, Inc. - 1.102-3.el6 - - - x86_64 - Linux hardware monitoring core libraries - 66192 - rpm - 03/11/2017 - lm_sensors-libs - CentOS - 3.1.1-17.el6 - - - noarch - Configure and register an RHN/Spacewalk client - 219899 - rpm - 29/08/2016 - rhn-setup - Red Hat, Inc. - 1.0.0.1-18.el6 - - - x86_64 - Development support for libelf - 26454 - rpm - 03/11/2017 - elfutils-libelf-devel - CentOS - 0.164-2.el6 - - - noarch - Check for RHN actions - 42809 - rpm - 29/08/2016 - rhn-check - Red Hat, Inc. - 1.0.0.1-18.el6 - - - x86_64 - Development files for sensors development - 16639 - rpm - 03/11/2017 - lm_sensors-devel - CentOS - 3.1.1-17.el6 - - - x86_64 - Kerberos 5 Administrative libraries - 211864 - rpm - 03/11/2017 - libkadm5 - CentOS - 1.10.3-65.el6 - - - x86_64 - Header files and libraries used to build SELinux - 162535 - rpm - 03/11/2017 - libselinux-devel - CentOS - 2.0.94-7.el6 - - - x86_64 - Development libraries and headers for tcp_wrappers - 11064 - rpm - 03/11/2017 - tcp_wrappers-devel - CentOS - 7.6-58.el6 - - - x86_64 - Tools for configuring the console (keyboard, virtual terminals, etc.) - 991792 - rpm - 29/08/2016 - kbd - Red Hat, Inc. - 1.15-11.el6 - - - x86_64 - Libraries and header files for file development - 6675 - rpm - 03/11/2017 - file-devel - CentOS - 5.04-30.el6 - - - x86_64 - Development package for building Linux key management utilities - 22497 - rpm - 03/11/2017 - keyutils-libs-devel - CentOS - 1.4-5.el6 - - - x86_64 - Files for development of applications which will use OpenSSL - 2288823 - rpm - 03/11/2017 - openssl-devel - CentOS - 1.0.1e-57.el6 - - - x86_64 - A collection of SNMP protocol tools and libraries - 835464 - rpm - 03/11/2017 - net-snmp - CentOS - 5.5-60.el6 - - - noarch - Root crontab files used to schedule the execution of programs - 2495 - rpm - 29/08/2016 - crontabs - Red Hat, Inc. - 1.10-33.el6 - - - x86_64 - The Python 'netsnmp' module for the NET-SNMP - 89724 - rpm - 03/11/2017 - net-snmp-python - CentOS - 5.5-60.el6 - - - noarch - Extension for recursively copying files and directories - 35683 - rpm - 07/11/2017 - perl-File-Copy-Recursive - CentOS - 0.38-4.el6 - - - x86_64 - Tools and libraries for subscription and repository management - 3688843 - rpm - 29/08/2016 - subscription-manager - Red Hat, Inc. - 1.12.14-7.el6 - - - noarch - A set of system configuration and setup files - 666669 - rpm - 06/07/2017 - setup - CentOS - 2.8.14-23.el6 - - - noarch - Brocade Fibre Channel HBA Firmware - 8802498 - rpm - 29/08/2016 - bfa-firmware - Red Hat, Inc. - 3.2.23.0-2.el6 - - - noarch - Timezone data for Java - 370478 - rpm - 06/07/2017 - tzdata-java - CentOS - 2016j-1.el6 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters - 344388 - rpm - 29/08/2016 - iwl100-firmware - Red Hat, Inc. - 39.31.5.1-1.el6 - - - x86_64 - Statically linked binary providing simplified versions of system commands - 1116013 - rpm - 06/07/2017 - busybox - CentOS - 1.15.1-21.el6_6 - - - noarch - Adaptec SAS 44300, 48300, 58300 Sequencer Firmware for AIC94xx driver - 30752 - rpm - 29/08/2016 - aic94xx-firmware - Red Hat, Inc. - 30-2.el6 - - - noarch - Firmware for Intel® PRO/Wireless 1000 B/G/N network adaptors - 679399 - rpm - 29/08/2016 - iwl1000-firmware - Red Hat, Inc. - 39.31.5.1-1.el6 - - - noarch - Tool for console access to Red Hat subscriber services - 1040616 - rpm - 29/08/2016 - redhat-support-tool - Red Hat, Inc. - 0.9.6-2.el6 - - - noarch - Firmware for qlogic 2100 devices - 78639 - rpm - 29/08/2016 - ql2100-firmware - Red Hat, Inc. - 1.19.38-3.1.el6 - - - noarch - Firmware for Marvell Libertas USB 8388 Network Adapter - 129601 - rpm - 29/08/2016 - libertas-usb8388-firmware - Red Hat, Inc. - 5.110.22.p23-3.1.el6 - - - noarch - Firmware for wireless devices based on zd1211 chipset - 65337 - rpm - 29/08/2016 - zd1211-firmware - Red Hat, Inc. - 1.4-4.el6 - - - noarch - Firmware for Ralink® RT2561/RT2661 A/B/G network adaptors - 26679 - rpm - 29/08/2016 - rt61pci-firmware - Red Hat, Inc. - 1.2-7.el6 - - - noarch - ncf API Virtualenv - ncf API Python virtual environment - 18163177 - rpm - 29/08/2018 - ncf-api-virtualenv - Normation - 4.1.14.release-1.EL.6 - - - noarch - Firmware for qlogic 2200 devices - 86403 - rpm - 29/08/2016 - ql2200-firmware - Red Hat, Inc. - 2.02.08-3.1.el6 - - - noarch - Firmware for Intel® PRO/Wireless 2100 network adaptors - 618666 - rpm - 29/08/2016 - ipw2100-firmware - Red Hat, Inc. - 1.3-11.el6 - - - noarch - Firmware for Intel® PRO/Wireless 2200 network adaptors - 576425 - rpm - 29/08/2016 - ipw2200-firmware - Red Hat, Inc. - 3.1-4.el6 - - - x86_64 - Security module for the Apache HTTP Server - 446098 - rpm - 19/12/2018 - mod_security - Fedora Project - 2.7.3-5.el6 - - - (none) - gpg(Red Hat, Inc. (release key 2) <security@redhat.com>) - 0 - rpm - 29/08/2016 - gpg-pubkey - fd431d51-4ae0493b - - - x86_64 - Protocol Buffers - Google's data interchange format - 994644 - rpm - 19/12/2018 - protobuf - Fedora Project - 2.3.0-9.el6 - - - x86_64 - A library for getting files from web servers - 347536 - rpm - 29/08/2016 - libcurl - Red Hat, Inc. - 7.19.7-52.el6 - - - noarch - Perl Object interface for AF_INET|AF_INET6 domain sockets - 28259 - rpm - 19/12/2018 - perl-IO-Socket-INET6 - CentOS - 2.56-4.el6 - - - x86_64 - Low-Level Interface to the zlib compression library - 146581 - rpm - 06/07/2017 - perl-Compress-Raw-Zlib - CentOS - 2.021-144.el6 - - - x86_64 - Network Security Services Softoken Module - 1103062 - rpm - 06/07/2017 - nss-softokn - CentOS - 3.14.3-23.3.el6_8 - - - x86_64 - Perl interface to allow reading and writing of gzip and zip data - 372202 - rpm - 06/07/2017 - perl-IO-Compress-Zlib - CentOS - 2.021-144.el6 - - - x86_64 - A utility for determining file types - 56567 - rpm - 06/07/2017 - file - CentOS - 5.04-30.el6 - - - x86_64 - A GNU arbitrary precision library - 657883 - rpm - 06/07/2017 - gmp - CentOS - 4.3.1-12.el6 - - - x86_64 - A GNU file archiving program - 2616465 - rpm - 06/07/2017 - tar - CentOS - 1.23-15.el6_8 - - - x86_64 - A high-performance CORBA Object Request Broker - 594848 - rpm - 06/07/2017 - ORBit2 - CentOS - 2.14.17-6.el6_8 - - - x86_64 - Ext2/3/4 filesystem-specific shared libraries - 278569 - rpm - 06/07/2017 - e2fsprogs-libs - CentOS - 1.41.12-23.el6 - - - x86_64 - An event-driven init system - 567729 - rpm - 06/07/2017 - upstart - CentOS - 0.6.5-16.el6 - - - x86_64 - Ncurses support utilities - 386371 - rpm - 06/07/2017 - ncurses - CentOS - 5.7-4.20090207.el6 - - - x86_64 - A set of basic GNU tools commonly used in shell scripts - 12873032 - rpm - 06/07/2017 - coreutils - CentOS - 8.4-46.el6 - - - x86_64 - Utilities for managing accounts and shadow password files - 3466724 - rpm - 06/07/2017 - shadow-utils - CentOS - 4.1.5.1-5.el6 - - - noarch - The Mozilla CA root certificate bundle - 3248584 - rpm - 06/07/2017 - ca-certificates - CentOS - 2016.2.10-65.4.el6 - - - x86_64 - An interpreted, interactive, object-oriented programming language - 79603 - rpm - 06/07/2017 - python - CentOS - 2.6.6-66.el6_8 - - - noarch - CentOS-related icons and pictures - 15816517 - rpm - 06/07/2017 - redhat-logos - CentOS - 60.0.14-12.el6.centos - - - x86_64 - Plymouth related scripts - 11006 - rpm - 06/07/2017 - plymouth-scripts - CentOS - 0.8.3-29.el6.centos - - - x86_64 - A Python interface to libcurl - 236939 - rpm - 06/07/2017 - python-pycurl - CentOS - 7.19.0-9.el6 - - - x86_64 - Python bindings for the libxml2 library - 1976700 - rpm - 06/07/2017 - libxml2-python - CentOS - 2.7.6-21.el6_8.1 - - - x86_64 - Python bindings for libaudit - 285999 - rpm - 06/07/2017 - audit-libs-python - CentOS - 2.4.5-6.el6 - - - x86_64 - Tools for use with the Apache HTTP Server - 140929 - rpm - 06/07/2017 - httpd-tools - CentOS - 2.2.15-59.el6.centos - - - x86_64 - Libraries for manipulating RPM packages - 774808 - rpm - 06/07/2017 - rpm-libs - CentOS - 4.8.0-55.el6 - - - x86_64 - Python bindings for apps which will manipulate RPM packages - 120906 - rpm - 06/07/2017 - rpm-python - CentOS - 4.8.0-55.el6 - - - noarch - RPM package installer/updater/manager - 4832194 - rpm - 06/07/2017 - yum - CentOS - 3.2.29-81.el6.centos - - - x86_64 - The shared libraries required for any PostgreSQL clients - 639602 - rpm - 06/07/2017 - postgresql-libs - CentOS - 8.4.20-7.el6 - - - x86_64 - A process-transparent configuration system - 6076626 - rpm - 06/07/2017 - GConf2 - CentOS - 2.28.0-7.el6 - - - x86_64 - A library for text mode user interfaces - 173237 - rpm - 06/07/2017 - newt - CentOS - 0.52.11-4.el6 - - - x86_64 - Basic networking tools - 778260 - rpm - 06/07/2017 - net-tools - CentOS - 1.60-114.el6 - - - x86_64 - Device-mapper Persistent Data Tools - 1656858 - rpm - 06/07/2017 - device-mapper-persistent-data - CentOS - 0.6.2-0.1.rc7.el6 - - - x86_64 - A C binding to the X11 protocol - 886960 - rpm - 06/07/2017 - libxcb - CentOS - 1.12-4.el6 - - - x86_64 - Plymouth libraries - 177760 - rpm - 06/07/2017 - plymouth-core-libs - CentOS - 0.8.3-29.el6.centos - - - x86_64 - Tools for managing Linux kernel packet filtering capabilities - 861645 - rpm - 06/07/2017 - iptables - CentOS - 1.4.7-16.el6 - - - x86_64 - Network monitoring tools including ping - 297243 - rpm - 06/07/2017 - iputils - CentOS - 20071127-24.el6 - - - x86_64 - A collection of basic system utilities - 6137509 - rpm - 06/07/2017 - util-linux-ng - CentOS - 2.17.2-12.28.el6 - - - x86_64 - A userspace implementation of devfs - 1280842 - rpm - 06/07/2017 - udev - CentOS - 147-2.73.el6_8.2 - - - noarch - Initramfs generator using udev - 263482 - rpm - 06/07/2017 - dracut - CentOS - 004-409.el6_8.2 - - - x86_64 - Device mapper utility - 293343 - rpm - 06/07/2017 - device-mapper - CentOS - 1.02.117-12.el6 - - - x86_64 - An open source implementation of SSH protocol versions 1 and 2 - 787618 - rpm - 06/07/2017 - openssh - CentOS - 5.3p1-122.el6 - - - noarch - Perl interface to Git - 35913 - rpm - 06/07/2017 - perl-Git - CentOS - 1.7.1-8.el6 - - - x86_64 - Device-mapper event daemon - 44114 - rpm - 06/07/2017 - device-mapper-event - CentOS - 1.02.117-12.el6 - - - x86_64 - Partition device manager for device-mapper devices - 34030 - rpm - 06/07/2017 - kpartx - CentOS - 0.4.9-100.el6 - - - noarch - SELinux policy configuration - 9435458 - rpm - 06/07/2017 - selinux-policy - CentOS - 3.7.19-307.el6 - - - x86_64 - The Cyrus SASL library - 132742 - rpm - 06/07/2017 - cyrus-sasl - CentOS - 2.1.23-15.el6_6.2 - - - x86_64 - Utility for running regular jobs - 44006 - rpm - 06/07/2017 - cronie-anacron - CentOS - 1.4.4-16.el6_8.2 - - - x86_64 - Apache HTTP Server - 3137746 - rpm - 06/07/2017 - httpd - CentOS - 2.2.15-59.el6.centos - - - x86_64 - PostgreSQL client programs - 14266479 - rpm - 06/07/2017 - postgresql - CentOS - 8.4.20-7.el6 - - - x86_64 - A general-purpose cryptography library - 536622 - rpm - 06/07/2017 - libgcrypt - CentOS - 1.4.5-12.el6_8 - - - x86_64 - Common Unix Printing System - libraries - 667000 - rpm - 06/07/2017 - cups-libs - CentOS - 1.4.2-77.el6 - - - x86_64 - Core X11 protocol client library - 1301928 - rpm - 06/07/2017 - libX11 - CentOS - 1.6.4-3.el6 - - - x86_64 - X.Org X11 libXrender runtime library - 40515 - rpm - 06/07/2017 - libXrender - CentOS - 0.9.10-1.el6 - - - x86_64 - Libraries for PulseAudio clients - 2700180 - rpm - 06/07/2017 - pulseaudio-libs - CentOS - 0.9.21-26.el6 - - - x86_64 - X Fixes library - 23375 - rpm - 06/07/2017 - libXfixes - CentOS - 5.0.3-1.el6 - - - x86_64 - Common files used by ISC dhcp client and server - 198000 - rpm - 06/07/2017 - dhcp-common - CentOS - 4.1.1-53.P1.el6.centos - - - x86_64 - OpenJDK Runtime Environment - 96244970 - rpm - 06/07/2017 - java-1.7.0-openjdk - CentOS - 1.7.0.131-2.6.9.0.el6_8 - - - x86_64 - SELinux policy core python utilities - 1374222 - rpm - 06/07/2017 - policycoreutils-python - CentOS - 2.0.83-30.1.el6_8 - - - x86_64 - The sar and iostat system monitoring commands - 845941 - rpm - 06/07/2017 - sysstat - CentOS - 9.0.4-33.el6 - - - noarch - SELinux targeted base policy - 3705568 - rpm - 06/07/2017 - selinux-policy-targeted - CentOS - 3.7.19-307.el6 - - - x86_64 - Userland logical volume management tools - 2150068 - rpm - 06/07/2017 - lvm2 - CentOS - 2.02.143-12.el6 - - - noarch - Open firmware for some Broadcom 43xx series WLAN chips - 31549 - rpm - 06/07/2017 - b43-openfwwf - CentOS - 5.2-10.el6 - - - x86_64 - IPv6 support for iptables - 210008 - rpm - 06/07/2017 - iptables-ipv6 - CentOS - 1.4.7-16.el6 - - - x86_64 - An utility for setting or changing passwords using PAM - 357699 - rpm - 06/07/2017 - passwd - CentOS - 0.77-7.el6 - - - x86_64 - LDAP client utilities - 585555 - rpm - 06/07/2017 - openldap-clients - CentOS - 2.4.40-16.el6 - - - x86_64 - Python module to access DMI data - 264986 - rpm - 06/07/2017 - python-dmidecode - CentOS - 3.10.15-1.el6 - - - x86_64 - Python wrapper module around the OpenSSL library - 1319826 - rpm - 06/07/2017 - pyOpenSSL - CentOS - 0.13.1-2.el6 - - - x86_64 - A library implementing the SSH2 protocol - 325165 - rpm - 06/07/2017 - libssh2 - CentOS - 1.4.2-2.el6_7.1 - - - x86_64 - User space tools for 2.6 kernel auditing - 564034 - rpm - 06/07/2017 - audit - CentOS - 2.4.5-6.el6 - - - noarch - A Perl interface to the World-Wide Web - 903654 - rpm - 06/07/2017 - perl-libwww-perl - CentOS - 5.833-5.el6 - - - noarch - Basic requirement for icon themes - 45406 - rpm - 19/09/2016 - hicolor-icon-theme - Red Hat, Inc. - 0.11-1.1.el6 - - - x86_64 - Libraries for adding libudev support to applications that use glib - 48515 - rpm - 06/07/2017 - libgudev1 - CentOS - 147-2.73.el6_8.2 - - - x86_64 - Collection of simple PIN or passphrase entry dialogs - 147023 - rpm - 06/07/2017 - pinentry - CentOS - 0.7.6-8.el6 - - - noarch - ATI firmware for R600/700/Evergreen/NI/PALM - 4531507 - rpm - 06/07/2017 - xorg-x11-drv-ati-firmware - CentOS - 7.6.1-2.el6 - - - noarch - Firmware for qlogic 2500 devices - 268755 - rpm - 06/07/2017 - ql2500-firmware - CentOS - 7.03.00-1.el6_5 - - - x86_64 - LZMA compression utilities - 488160 - rpm - 06/07/2017 - xz - CentOS - 4.999.9-0.5.beta.20091007git.el6 - - - x86_64 - Common binaries and locale data for glibc - 112436037 - rpm - 06/07/2017 - glibc-common - CentOS - 2.12-1.209.el6 - - - x86_64 - The GNU libc libraries - 13121335 - rpm - 06/07/2017 - glibc - CentOS - 2.12-1.209.el6 - - - x86_64 - The GNU Bourne Again shell - 3142529 - rpm - 06/07/2017 - bash - CentOS - 4.1.2-48.el6 - - - x86_64 - Dynamic library for libaudit - 235282 - rpm - 06/07/2017 - audit-libs - CentOS - 2.4.5-6.el6 - - - x86_64 - A library of handy utility functions - 8061188 - rpm - 06/07/2017 - glib2 - CentOS - 2.28.8-9.el6 - - - x86_64 - The non-admin shared libraries used by Kerberos 5 - 1813468 - rpm - 06/07/2017 - krb5-libs - CentOS - 1.10.3-65.el6 - - - x86_64 - GNU Standard C++ Library - 987096 - rpm - 06/07/2017 - libstdc++ - CentOS - 4.4.7-18.el6 - - - x86_64 - An XML parser library - 197794 - rpm - 06/07/2017 - expat - CentOS - 2.0.1-13.el6_8 - - - x86_64 - Dynamic library to access udev device information - 73171 - rpm - 06/07/2017 - libudev - CentOS - 147-2.73.el6_8.2 - - - x86_64 - Pattern matching utilities - 1197904 - rpm - 06/07/2017 - grep - CentOS - 2.20-6.el6 - - - x86_64 - Library providing XML and HTML support - 1779163 - rpm - 06/07/2017 - libxml2 - CentOS - 2.7.6-21.el6_8.1 - - - x86_64 - Libraries for tcp_wrappers - 131475 - rpm - 06/07/2017 - tcp_wrappers-libs - CentOS - 7.6-58.el6 - - - x86_64 - Block device ID library - 136136 - rpm - 06/07/2017 - libblkid - CentOS - 2.17.2-12.28.el6 - - - x86_64 - A GNU tool which simplifies the build process for users - 1079569 - rpm - 06/07/2017 - make - CentOS - 3.81-23.el6 - - - x86_64 - Utilities for managing processes on your system - 222569 - rpm - 06/07/2017 - psmisc - CentOS - 22.6-24.el6 - - - x86_64 - Perl module for resolving POD escape sequences - 21092 - rpm - 06/07/2017 - perl-Pod-Escapes - CentOS - 1.04-144.el6 - - - x86_64 - Perl extension for Version Objects - 51960 - rpm - 06/07/2017 - perl-version - CentOS - 0.77-144.el6 - - - x86_64 - Framework for parsing POD documentation - 476776 - rpm - 06/07/2017 - perl-Pod-Simple - CentOS - 3.13-144.el6 - - - x86_64 - Base Class for IO::Compress modules - 138661 - rpm - 06/07/2017 - perl-IO-Compress-Base - CentOS - 2.021-144.el6 - - - x86_64 - Tools used for process and utmp management. - 114115 - rpm - 06/07/2017 - sysvinit-tools - CentOS - 2.87-6.dsf.el6 - - - x86_64 - Digest-SHA1 Perl module - 105457 - rpm - 29/08/2016 - perl-Digest-SHA1 - Red Hat, Inc. - 2.12-2.el6 - - - x86_64 - Libraries to handle compiled objects - 648199 - rpm - 06/07/2017 - elfutils-libs - CentOS - 0.164-2.el6 - - - noarch - A simple generic namespace support class - 28882 - rpm - 29/08/2016 - perl-XML-NamespaceSupport - Red Hat, Inc. - 1.10-3.el6 - - - x86_64 - A minimal version of the VIM editor - 909230 - rpm - 06/07/2017 - vim-minimal - CentOS - 7.4.629-5.el6_8.1 - - - x86_64 - The zlib compression and decompression library - 152305 - rpm - 29/08/2016 - zlib - Red Hat, Inc. - 1.2.3-29.el6 - - - x86_64 - Command line tools for managing Berkeley DB (version 4) databases - 416398 - rpm - 06/07/2017 - db4-utils - CentOS - 4.7.25-22.el6 - - - x86_64 - DNS resolver modules for Perl - 488373 - rpm - 29/08/2016 - perl-Net-DNS - Red Hat, Inc. - 0.65-5.el6 - - - x86_64 - Libraries for coreutils - 5576 - rpm - 06/07/2017 - coreutils-libs - CentOS - 8.4-46.el6 - - - x86_64 - Perl module for parsing HTML - 226637 - rpm - 29/08/2016 - perl-HTML-Parser - Red Hat, Inc. - 3.64-2.el6 - - - x86_64 - Libraries for applications using bzip2 - 67592 - rpm - 29/08/2016 - bzip2-libs - Red Hat, Inc. - 1.0.5-7.el6_0 - - - x86_64 - Kernel module management utilities. - 1216834 - rpm - 06/07/2017 - module-init-tools - CentOS - 3.9-26.el6 - - - noarch - Manipulate IPv4/IPv6 netblocks in CIDR notation - 30441 - rpm - 29/08/2016 - perl-Net-CIDR - Fedora Project - 0.18-1.el6 - - - x86_64 - File system tree viewer - 66687 - rpm - 29/03/2019 - tree - CentOS - 1.5.3-3.el6 - - - x86_64 - Runtime libraries for Python - 22979382 - rpm - 06/07/2017 - python-libs - CentOS - 2.6.6-66.el6_8 - - - x86_64 - Perl module for parsing XML files - 652307 - rpm - 29/08/2016 - perl-XML-Parser - Red Hat, Inc. - 2.36-7.el6 - - - noarch - ncf - CFEngine framework - 5581188 - rpm - 12/04/2019 - ncf - Normation - 4.1.21.release-1.EL.6 - - - x86_64 - PCI access library - 40777 - rpm - 06/07/2017 - libpciaccess - CentOS - 0.13.4-1.el6 - - - x86_64 - A utility for displaying and/or setting hard disk parameters - 153536 - rpm - 29/08/2016 - hdparm - Red Hat, Inc. - 9.43-4.el6 - - - x86_64 - Configuration management and audit tool - Rudder server relay package - 20036340 - rpm - 12/04/2019 - rudder-server-relay - Normation - 4.1.21.release-1.EL.6 - - - noarch - Python 2 and 3 compatibility utilities - 98914 - rpm - 06/07/2017 - python-six - CentOS - 1.9.0-2.el6 - - - x86_64 - The NetBSD Editline library - 185648 - rpm - 29/08/2016 - libedit - Red Hat, Inc. - 2.11-4.20080712cvs.1.el6 - - - x86_64 - Library for error values used by GnuPG components - 214321 - rpm - 29/08/2016 - libgpg-error - Red Hat, Inc. - 1.7-4.el6 - - - noarch - Configuration management and audit tool - root server base package - 0 - rpm - 12/04/2019 - rudder-server-root - Normation - 4.1.21.release-1.EL.6 - - - x86_64 - The GNU data compression program - 225924 - rpm - 06/07/2017 - gzip - CentOS - 1.3.12-24.el6 - - - x86_64 - SELinux library and simple utilities - 130336 - rpm - 19/09/2016 - libselinux - Red Hat, Inc. - 2.0.94-7.el6 - - - x86_64 - Network Security Services - 2660886 - rpm - 22/05/2019 - nss - CentOS - 3.36.0-8.el6 - - - x86_64 - The RPM package management system - 2034245 - rpm - 06/07/2017 - rpm - CentOS - 4.8.0-55.el6 - - - x86_64 - A MMX/SSE2 accelerated library for manipulating JPEG image files - 476782 - rpm - 19/09/2016 - libjpeg-turbo - Red Hat, Inc. - 1.2.1-3.el6_5 - - - x86_64 - Tools for the Network Security Services - 2052883 - rpm - 22/05/2019 - nss-tools - CentOS - 3.36.0-8.el6 - - - x86_64 - Apache Portable Runtime library - 303269 - rpm - 19/09/2016 - apr - Red Hat, Inc. - 1.3.9-5.el6_2 - - - x86_64 - A user and group account administration library - 1882055 - rpm - 06/07/2017 - libuser - CentOS - 0.56.13-8.el6_7 - - - x86_64 - The Ogg bitstream file format library - 30454 - rpm - 19/09/2016 - libogg - Red Hat, Inc. - 1.1.4-2.1.el6 - - - x86_64 - Tool to analyse BIOS DMI data - 195554 - rpm - 06/07/2017 - dmidecode - CentOS - 2.12-7.el6 - - - x86_64 - Library for loading and sharing PKCS#11 modules - 262669 - rpm - 29/08/2016 - p11-kit - Red Hat, Inc. - 0.18.5-2.el6_5.2 - - - x86_64 - Ethernet settings tool for PCI ethernet cards - 283910 - rpm - 06/07/2017 - ethtool - CentOS - 3.5-6.el6 - - - x86_64 - Interfaces for accessibility support - 957540 - rpm - 19/09/2016 - atk - Red Hat, Inc. - 1.30.0-1.el6 - - - x86_64 - Direct Rendering Manager runtime library - 306787 - rpm - 06/07/2017 - libdrm - CentOS - 2.4.65-2.el6 - - - x86_64 - Graphical Boot Animation and Logger - 193924 - rpm - 06/07/2017 - plymouth - CentOS - 0.8.3-29.el6.centos - - - x86_64 - semanage python bindings for libsemanage - 319585 - rpm - 19/09/2016 - libsemanage-python - Red Hat, Inc. - 2.0.43-5.1.el6 - - - x86_64 - GNU's bc (a numeric processing language) and dc (a calculator) - 217257 - rpm - 29/08/2016 - bc - Red Hat, Inc. - 1.06.95-1.el6 - - - x86_64 - SELinux policy core utilities - 3596110 - rpm - 06/07/2017 - policycoreutils - CentOS - 2.0.83-30.1.el6_8 - - - x86_64 - Library for reading and writing sound files - 770762 - rpm - 19/09/2016 - libsndfile - Red Hat, Inc. - 1.0.20-5.el6 - - - x86_64 - Device-mapper event daemon shared library - 27024 - rpm - 06/07/2017 - device-mapper-event-libs - CentOS - 1.02.117-12.el6 - - - x86_64 - Runtime libraries for jasper - 337232 - rpm - 19/09/2016 - jasper-libs - Red Hat, Inc. - 1.900.1-16.el6_6.3 - - - x86_64 - Fast Version Control System - 15289028 - rpm - 06/07/2017 - git - CentOS - 1.7.1-8.el6 - - - noarch - Metapackage to build generic initramfs with dracut with only kernel modules - 202 - rpm - 06/07/2017 - dracut-kernel - CentOS - 004-409.el6_8.2 - - - x86_64 - Policy analysis support libraries for SELinux - 1165108 - rpm - 19/09/2016 - setools-libs - Red Hat, Inc. - 3.3.7-4.el6 - - - x86_64 - Postfix Mail Transport Agent - 10206500 - rpm - 06/07/2017 - postfix - CentOS - 2.6.6-8.el6 - - - x86_64 - A document formatting system - 5318821 - rpm - 29/08/2016 - groff - Red Hat, Inc. - 1.18.1.4-21.el6 - - - x86_64 - Tools and libraries to control and monitor control groups - 339455 - rpm - 06/07/2017 - libcgroup - CentOS - 0.40.rc1-23.el6 - - - x86_64 - Sample Authorization Protocol for X - 40009 - rpm - 19/09/2016 - libXau - Red Hat, Inc. - 1.0.6-4.el6 - - - x86_64 - A password-checking library - 187265 - rpm - 29/08/2016 - cracklib - Red Hat, Inc. - 2.8.16-4.el6 - - - x86_64 - A TLS protocol implementation - 1167530 - rpm - 06/07/2017 - gnutls - CentOS - 2.12.23-21.el6 - - - x86_64 - Runtime libraries for GNU Libtool Dynamic Module Loader - 64948 - rpm - 19/09/2016 - libtool-ltdl - Red Hat, Inc. - 2.2.6-15.5.el6 - - - x86_64 - X.Org X11 libXi runtime library - 66523 - rpm - 06/07/2017 - libXi - CentOS - 1.7.8-1.el6 - - - x86_64 - X.Org X11 libXrandr runtime library - 43834 - rpm - 06/07/2017 - libXrandr - CentOS - 1.5.1-1.el6 - - - x86_64 - Provides the dhclient ISC DHCP client daemon and dhclient-script - 633943 - rpm - 06/07/2017 - dhclient - CentOS - 4.1.1-53.P1.el6.centos - - - x86_64 - A compact getty program for virtual consoles only - 34586 - rpm - 29/08/2016 - mingetty - Red Hat, Inc. - 1.08-5.el6 - - - x86_64 - SSL/TLS module for the Apache HTTP Server - 191337 - rpm - 06/07/2017 - mod_ssl - CentOS - 2.2.15-59.el6.centos - - - x86_64 - The Linux kernel - 137522245 - rpm - 06/07/2017 - kernel - CentOS - 2.6.32-696.el6 - - - x86_64 - Detect if we are running in a virtual machine - 41480 - rpm - 06/07/2017 - virt-what - CentOS - 1.11-1.3.el6 - - - x86_64 - An image loading library - 2637837 - rpm - 19/09/2016 - gdk-pixbuf2 - Red Hat, Inc. - 2.24.1-6.el6_7 - - - x86_64 - GnuPG Made Easy - high level crypto API - 729658 - rpm - 29/08/2016 - gpgme - Red Hat, Inc. - 1.1.8-3.el6 - - - x86_64 - Allows restricted root access for specified users - 2474384 - rpm - 06/07/2017 - sudo - CentOS - 1.8.6p3-27.el6 - - - x86_64 - Cursor management library - 41934 - rpm - 19/09/2016 - libXcursor - Red Hat, Inc. - 1.1.14-2.1.el6 - - - x86_64 - String library, very low memory overhead, simple to import - 273951 - rpm - 29/08/2016 - ustr - Red Hat, Inc. - 1.0.4-9.1.el6 - - - x86_64 - Grand Unified Boot Loader. - 2496968 - rpm - 06/07/2017 - grub - CentOS - 0.97-99.el6 - - - x86_64 - System for layout and rendering of internationalized text - 1041857 - rpm - 19/09/2016 - pango - Red Hat, Inc. - 1.28.1-11.el6 - - - x86_64 - Rotates, compresses, removes and mails system log files - 89448 - rpm - 06/07/2017 - logrotate - CentOS - 3.7.8-28.el6 - - - x86_64 - High resolution alarm, sleep, gettimeofday, interval timers - 57407 - rpm - 06/07/2017 - perl-Time-HiRes - CentOS - 1.9721-144.el6 - - - x86_64 - Support for using OpenSSL in python scripts - 2063708 - rpm - 29/08/2016 - m2crypto - Red Hat, Inc. - 0.20.2-9.el6 - - - x86_64 - EFI Boot Manager - 72662 - rpm - 06/07/2017 - efibootmgr - CentOS - 0.5.4-15.el6 - - - x86_64 - A version control system - 1590583 - rpm - 07/08/2017 - cvs - CentOS - 1.11.23-16.el6 - - - x86_64 - A GNU utility for monitoring a program's use of system resources - 38575 - rpm - 07/08/2017 - time - CentOS - 1.7-38.el6 - - - x86_64 - A tool for determining compilation options - 140091 - rpm - 29/08/2016 - pkgconfig - Red Hat, Inc. - 0.23-9.1.el6 - - - x86_64 - Object files for development using standard C libraries. - 990368 - rpm - 07/08/2017 - glibc-devel - CentOS - 2.12-1.209.el6 - - - x86_64 - Older LZMA format compatibility binaries - 21146 - rpm - 07/08/2017 - xz-lzma-compat - CentOS - 4.999.9-0.5.beta.20091007git.el6 - - - x86_64 - Header files for use in perl development - 1870563 - rpm - 07/08/2017 - perl-devel - CentOS - 5.10.1-144.el6 - - - x86_64 - POSIX File System Archiver - 137868 - rpm - 07/08/2017 - pax - CentOS - 3.4-10.1.el6 - - - x86_64 - The common files needed by any version of the VIM editor - 22188495 - rpm - 29/08/2017 - vim-common - CentOS - 7.4.629-5.el6_8.1 - - - x86_64 - Red Hat Enterprise Linux Server release file - 121619 - rpm - 29/08/2016 - redhat-release-server - Red Hat, Inc. - 6Server-6.6.0.2.el6 - - - noarch - Basic utilities for writing tests - 256216 - rpm - 03/02/2017 - perl-Test-Simple - Dag Apt Repository, http://dag.wieers.com/apt/ - 0.98-1.el6.rfx - - - x86_64 - Red Hat Network query daemon - 92865 - rpm - 29/08/2016 - rhnsd - Red Hat, Inc. - 4.9.3-2.el6 - - - x86_64 - Development libraries to handle compiled objects - 305553 - rpm - 03/11/2017 - elfutils-devel - CentOS - 0.164-2.el6 - - - x86_64 - Header files and libraries used to build policy manipulation tools - 105619 - rpm - 03/11/2017 - libsepol-devel - CentOS - 2.0.41-4.el6 - - - x86_64 - Header files and libraries for Zlib development - 117496 - rpm - 03/11/2017 - zlib-devel - CentOS - 1.2.3-29.el6 - - - x86_64 - Development files needed to compile Kerberos 5 programs - 2452129 - rpm - 03/11/2017 - krb5-devel - CentOS - 1.10.3-65.el6 - - - x86_64 - Network management utilities using SNMP, from the NET-SNMP project - 370587 - rpm - 03/11/2017 - net-snmp-utils - CentOS - 5.5-60.el6 - - - x86_64 - The Linux kernel - 129968793 - rpm - 29/08/2016 - kernel - Red Hat, Inc. - 2.6.32-504.el6 - - - noarch - Timezone data - 1786607 - rpm - 06/07/2017 - tzdata - CentOS - 2016j-1.el6 - - - noarch - Firmware for Intel® Wireless 5150 A/G/N network adaptors - 344430 - rpm - 29/08/2016 - iwl5150-firmware - Red Hat, Inc. - 8.24.2.2-1.el6 - - - x86_64 - Descriptions of common terminals - 193090 - rpm - 06/07/2017 - ncurses-base - CentOS - 5.7-4.20090207.el6 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters - 450973 - rpm - 29/08/2016 - iwl6000g2a-firmware - Red Hat, Inc. - 17.168.5.3-1.el6 - - - x86_64 - Ncurses libraries - 752304 - rpm - 06/07/2017 - ncurses-libs - CentOS - 5.7-4.20090207.el6 - - - x86_64 - The Berkeley DB database library (version 4) for C - 1533095 - rpm - 06/07/2017 - db4 - CentOS - 4.7.25-22.el6 - - - x86_64 - Dynamic library for access control list support - 31280 - rpm - 06/07/2017 - libacl - CentOS - 2.2.49-7.el6 - - - x86_64 - Utilities for managing filesystem extended attributes - 142313 - rpm - 29/08/2016 - attr - Red Hat, Inc. - 2.4.44-7.el6 - - - x86_64 - The GNU version of the awk text processing utility - 2038650 - rpm - 06/07/2017 - gawk - CentOS - 3.1.7-10.el6_7.3 - - - noarch - Firmware for the Hauppauge PVR 250/350/150/500/USB2 model series - 857256 - rpm - 29/08/2016 - ivtv-firmware - Red Hat, Inc. - 20080701-20.2 - - - x86_64 - Perl-compatible regular expression library - 529027 - rpm - 06/07/2017 - pcre - CentOS - 7.8-7.el6 - - - noarch - Firmware for Atmel at76c50x wireless network chips - 728154 - rpm - 29/08/2016 - atmel-firmware - Red Hat, Inc. - 1.3-7.el6 - - - x86_64 - Libraries for applications using libmagic - 2486624 - rpm - 06/07/2017 - file-libs - CentOS - 5.04-30.el6 - - - noarch - Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors - 457396 - rpm - 29/08/2016 - iwl3945-firmware - Red Hat, Inc. - 15.32.2.9-4.el6 - - - x86_64 - The GNU versions of find utilities (find and xargs) - 1442912 - rpm - 06/07/2017 - findutils - CentOS - 4.4.2-9.el6 - - - noarch - Firmware for qlogic 23xx devices - 262821 - rpm - 29/08/2016 - ql23xx-firmware - Red Hat, Inc. - 3.03.27-3.1.el6 - - - x86_64 - RFC 2553's "getaddrinfo" and "getnameinfo" functions - 68801 - rpm - 19/12/2018 - perl-Socket-GetAddrInfo - Fedora Project - 0.12-1.el6 - - - x86_64 - A GNU set of database routines which use extensible hashing - 48770 - rpm - 06/07/2017 - gdbm - CentOS - 1.8.0-39.el6 - - - (none) - gpg(Red Hat, Inc. (auxiliary key) <security@redhat.com>) - 0 - rpm - 29/08/2016 - gpg-pubkey - 2fa658e0-45700c69 - - - x86_64 - Mobile shell that supports roaming and intelligent local echo - 716815 - rpm - 19/12/2018 - mosh - Fedora Project - 1.3.0-1.el6 - - - x86_64 - The libraries for the perl runtime - 1485896 - rpm - 06/07/2017 - perl-libs - CentOS - 5.10.1-144.el6 - - - (none) - gpg(EPEL (6) <epel@fedoraproject.org>) - 0 - rpm - 29/08/2016 - gpg-pubkey - 0608b895-4bd22942 - - - Virtual - 12582 - 6900 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /opt/rudder/bin/perl - v5.22.0 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - wz--n- - 0 - 2 - 1 - 12356 - 4.19 - VolGroup - PGRKbG-zKfI-324b-fbKn-8fJd-hBgs-GXhv0Q - - - orchestrateur-5.labo.normation.com-2016-09-19-14-16-50 -root -root - -Community - -652372DA-B154-4429-95AA-0B8F4351DD2C ------BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEAzzJ5l/ZBrT0ICvqB5jTMNkmlG88diAVUwFaA7XDIaJOv4buGz0q3 -aGNPolQX4xz2soFsObXnKiM3+d5LG3ZDSFY0p/gEpy/Mr31TBMmYsXSeVYibSsSV -LLgjcBonsZJr7pIuj+ChhaKPINYqW88NEojuScyTAUUCrxzIMcoeiPQEsqhr5W5P -sY1WRZCimE5qpadMRCstDKMviXyyoM3STNv0tSIJt96vXewuz8A47AsM1FhoVk6N -b+uwJ3divGWsU+wV9oGWFE5YA9r9zNJiDE0wOMP2n8U9MUHPigf5TFqs5BxllTuR -cm+Pmiqt4Id1j8IJcXMpObXz0bte8E2zZQIBIw== ------END RSA PUBLIC KEY----- -root - - - GenuineIntel - 6 - 2 - QEMU Virtual CPU version 0.12 - 3 - 1995.191 - - - -rudder-webapp -rudder-reports -rudder-jetty -rudder-inventory-endpoint -rudder-db -rudder-server-root -rudder-ldap -rudder-inventory-ldap - - - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/orchestrateur-5-root.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/orchestrateur-5-root.ocs.sign deleted file mode 100644 index 39985a10776..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/orchestrateur-5-root.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=7359d3a329045ecf1145420a46e48e7fb0caf23f6b080482a44f10c3645ae6fe752f07e31a373fa013301a21e18f72c8328cd421d1aff92ac172a70d33905e2dd7f5ee9f1c619ec33a24c458aade3f59c4e9b22e2740962072b13455286a482c9f3eb360ac21c175646280e3e0640cee4c8c1517379c18077827ad87a69a3c9bd9150fe9520202fc45b467346a07be03a1fd55f27335862122228a8fa95c858e45418ff3aed70f5727392a4d2eed52fbe2eb67b39698553108e257fa794ec7a77e4832fa712e66f50c2492e6f8a225b1fa3de9f2d017616fa64e17800b3aa0b67cd356d2764102c113687c1eb0d76347edf8ea4101829cba11a716d121992c62 -hostname=orchestrateur-5.labo.normation.com -keydate=2016-09-19 14:06:51.548000069 +0200 -keyid=F04DB365 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs deleted file mode 100644 index 416a1b6ba48..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs +++ /dev/null @@ -1,5116 +0,0 @@ - - - - - - -www-data -sync -list -whoopsie -mcerda -irc -libuuid -daemon -news -syslog -gnats -man -sys -nobody -uucp -landscape -lp -bin -proxy -messagebus -sshd -backup -mail -games - - - 2019-04-03 00:25:13 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371SB PIIX3 USB [Natoma/Triton II] - uhci_hcd - Intel Corporation - 82371SB PIIX3 USB [Natoma/Triton II] - 0c03 - 00:01.2 - 7020 - 01 - USB controller - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - GD 5446 - Cirrus Logic - GD 5446 - 0300 - 00:02.0 - 00b8 - VGA compatible controller - 1013 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 0500 - 00:03.0 - 1002 - RAM memory - 1af4 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:04.0 - 1000 - Ethernet controller - 1af4 - - - 53c895a - sym53c8xx - LSI Logic / Symbios Logic - 53c895a - 0100 - 00:05.0 - 0012 - SCSI storage controller - 1000 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:06.0 - 1001 - SCSI storage controller - 1af4 - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext4 - 2209 - a8b341b2-fbc7-47c1-9403-b99641314038 - 4031 - / - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - PWD - /var/rudder - - - TERM - xterm - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/var/rudder/cfengine-community/bin:/var/rudder/cfengine-community/bin:/var/rudder/cfengine-community/bin - - - MANPATH - /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/rudder/share/man:/opt/rudder/share/man - - - x86_64-linux-thread-multi - Other - 131071 - 192.168.180.1 - 192.168.180.1 - 1 - 192.168.180.74 - 491 - ubuntu-12-10-64 - #23-Ubuntu SMP Mon Sep 24 20:37:06 UTC 2012 - Ubuntu 12.10 - 3.5.0-15-generic - 1 - QEMU Virtual CPU version 0.12 - 56AF0438-CA4F-072E-5545-6D2527DBA836 - QEMU - priv.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 4 - mcerda - adm - - - 24 - mcerda - cdrom - - - 27 - mcerda - sudo - - - 30 - mcerda - dip - - - 46 - mcerda - plugdev - - - 111 - mcerda - lpadmin - - - 112 - mcerda - sambashare - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /bin/sh - - - /bin - 2 - bin - bin - /bin/sh - - - /dev - 3 - sys - sys - /bin/sh - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /bin/sh - - - /var/cache/man - 6 - man - man - /bin/sh - - - /var/spool/lpd - 7 - lp - lp - /bin/sh - - - /var/mail - 8 - mail - mail - /bin/sh - - - /var/spool/news - 9 - news - news - /bin/sh - - - /var/spool/uucp - 10 - uucp - uucp - /bin/sh - - - /bin - 13 - proxy - proxy - /bin/sh - - - /var/www - 33 - www-data - www-data - /bin/sh - - - /var/backups - 34 - backup - backup - /bin/sh - - - /var/list - 38 - list - Mailing List Manager - /bin/sh - - - /var/run/ircd - 39 - irc - ircd - /bin/sh - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /bin/sh - - - /nonexistent - 65534 - nobody - nobody - /bin/sh - - - /var/lib/libuuid - 100 - libuuid - - /bin/sh - - - /home/syslog - 101 - syslog - - /bin/false - - - /var/run/dbus - 102 - messagebus - - /bin/false - - - /nonexistent - 103 - whoopsie - - /bin/false - - - /var/lib/landscape - 104 - landscape - - /bin/false - - - /var/run/sshd - 105 - sshd - - /usr/sbin/nologin - - - /home/mcerda - 1000 - mcerda - Matthieu CERDA,,, - /bin/bash - - - 512 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.180.74 - 192.168.180.1 - 255.255.255.128 - 192.168.180.0 - 52:54:00:0b:bc:8f - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fe0b:bc8f - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:0b:bc:8f - Up - ethernet - 0 - - - x86_64 - 2018-11-13 15:38:19 - priv.normation.com - ubuntu-12-10-64.priv.normation.com - Ubuntu 12.10 - 007f0101 - linux - 3.5.0-15-generic - Ubuntu - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDO7TvOjRWN4B3IlNtAEbaVCs8pUFE4zweqCMzRBG/rcsPC5UP8Lq9FxiPXT7Um2hGqhZFXRj7VVmQ+Y7K+BRHJ2ADFE47NR3kUstaele0gQwD+MM+KkQhYOgKWCjhGpEiv8UOPAVQgzOV2VEp4ZRLTWRdm4clbsz8CwVW6olQAALf+2epZPqXhZWUcPjZAyvXubqK458staAxsSIE6B3Jcb8gSfFpdryCP/hPzNgwafziUApnA0u1P7nIv8eeOGZhS8F0GM2U2DP0P+DJKE0Ry2Bcz/qiHRfzkSQ+4wBsxtyKdK9oLiIVguR0YeLqIo6paDbWn7/PClfg+l48FO/n1 - - CEST - +0200 - - 12.10 - - - /sbin/init - 0.0 - 0.3 - 1 - 2018-11-13 15:38 - ? - root - 24316 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2018-11-13 15:38 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2018-11-13 15:38 - ? - root - 0 - - - [kworker/u:0] - 0.0 - 0.0 - 5 - 2018-11-13 15:38 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 6 - 2018-11-13 15:38 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 7 - 2018-11-13 15:38 - ? - root - 0 - - - [cpuset] - 0.0 - 0.0 - 8 - 2018-11-13 15:38 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 9 - 2018-11-13 15:38 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 10 - 2018-11-13 15:38 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 11 - 2018-11-13 15:38 - ? - root - 0 - - - [sync_supers] - 0.0 - 0.0 - 12 - 2018-11-13 15:38 - ? - root - 0 - - - [bdi-default] - 0.0 - 0.0 - 13 - 2018-11-13 15:38 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 14 - 2018-11-13 15:38 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 15 - 2018-11-13 15:38 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 16 - 2018-11-13 15:38 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 17 - 2018-11-13 15:38 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 18 - 2018-11-13 15:38 - ? - root - 0 - - - [kworker/u:1] - 0.0 - 0.0 - 20 - 2018-11-13 15:38 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 21 - 2018-11-13 15:38 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 22 - 2018-11-13 15:38 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 23 - 2018-11-13 15:38 - ? - root - 0 - - - [fsnotify_mark] - 0.0 - 0.0 - 24 - 2018-11-13 15:38 - ? - root - 0 - - - [ecryptfs-kthrea] - 0.0 - 0.0 - 25 - 2018-11-13 15:38 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 26 - 2018-11-13 15:38 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 35 - 2018-11-13 15:38 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 36 - 2018-11-13 15:38 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 37 - 2018-11-13 15:38 - ? - root - 0 - - - [binder] - 0.0 - 0.0 - 39 - 2018-11-13 15:38 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 59 - 2018-11-13 15:38 - ? - root - 0 - - - [charger_manager] - 0.0 - 0.0 - 60 - 2018-11-13 15:38 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 61 - 2018-11-13 15:38 - ? - root - 0 - - - [scsi_eh_2] - 0.0 - 0.0 - 192 - 2018-11-13 15:38 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 205 - 2018-11-13 15:38 - ? - root - 0 - - - [ext4-dio-unwrit] - 0.0 - 0.0 - 206 - 2018-11-13 15:38 - ? - root - 0 - - - upstart-udev-bridge --daemon - 0.0 - 0.1 - 319 - 2018-11-13 15:41 - ? - root - 17232 - - - /sbin/udevd --daemon - 0.0 - 0.2 - 321 - 2018-11-13 15:41 - ? - root - 21580 - - - /sbin/udevd --daemon - 0.0 - 0.1 - 388 - 2018-11-13 15:41 - ? - root - 21576 - - - /sbin/udevd --daemon - 0.0 - 0.1 - 389 - 2018-11-13 15:41 - ? - root - 21576 - - - upstart-socket-bridge --daemon - 0.0 - 0.0 - 453 - 2018-11-13 15:41 - ? - root - 15188 - - - [vballoon] - 0.0 - 0.0 - 575 - 2018-11-13 15:41 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 576 - 2018-11-13 15:41 - ? - root - 0 - - - dhcpcd eth0 - 0.0 - 0.1 - 635 - 2018-11-13 15:41 - ? - root - 8640 - - - /usr/sbin/sshd -D - 0.0 - 0.2 - 818 - 2018-11-13 15:41 - ? - root - 49968 - - - dbus-daemon --system --fork - 0.0 - 0.1 - 861 - 2018-11-13 15:41 - ? - 102 - 23908 - - - rsyslogd -c5 - 0.0 - 0.2 - 864 - 2018-11-13 15:41 - ? - syslog - 335656 - - - /sbin/getty -8 38400 tty4 - 0.0 - 0.1 - 892 - 2018-11-13 15:41 - tty4 - root - 15804 - - - /sbin/getty -8 38400 tty5 - 0.0 - 0.1 - 899 - 2018-11-13 15:41 - tty5 - root - 15804 - - - /sbin/getty -8 38400 tty2 - 0.0 - 0.1 - 906 - 2018-11-13 15:41 - tty2 - root - 15804 - - - /sbin/getty -8 38400 tty3 - 0.0 - 0.1 - 908 - 2018-11-13 15:41 - tty3 - root - 15804 - - - /sbin/getty -8 38400 tty6 - 0.0 - 0.1 - 913 - 2018-11-13 15:41 - tty6 - root - 15804 - - - acpid -c /etc/acpi/events -s /var/run/acpid.socket - 0.0 - 0.1 - 925 - 2018-11-13 15:41 - ? - root - 4332 - - - whoopsie - 0.0 - 0.4 - 928 - 2018-11-13 15:41 - ? - whoopsie - 189652 - - - cron - 0.0 - 0.1 - 933 - 2018-11-13 15:41 - ? - root - 19112 - - - atd - 0.0 - 0.0 - 934 - 2018-11-13 15:41 - ? - daemon - 16908 - - - /sbin/getty -8 38400 tty1 - 0.0 - 0.1 - 980 - 2018-11-13 15:41 - tty1 - root - 15804 - - - [kworker/0:0] - 0.0 - 0.0 - 1028 - 2019-04-03 00:13 - ? - root - 0 - - - [kworker/0:2] - 0.0 - 0.0 - 2082 - 2019-04-03 00:18 - ? - root - 0 - - - [kworker/0:1] - 0.0 - 0.0 - 3142 - 2019-04-03 00:23 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.1 - 3915 - 2019-04-03 00:25 - ? - root - 4396 - - - /var/rudder/cfengine-community/bin/cf-agent - 59.7 - 3.6 - 3926 - 2019-04-03 00:25 - ? - root - 56640 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs - 0.0 - 0.1 - 4133 - 2019-04-03 00:25 - ? - root - 4396 - - - /opt/rudder/bin/perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs - 45.0 - 8.9 - 4139 - 2019-04-03 00:25 - ? - root - 107584 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.1 - 4148 - 2019-04-03 00:25 - ? - root - 4396 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.2 - 4149 - 2019-04-03 00:25 - ? - root - 15528 - - - [flush-253:0] - 0.0 - 0.0 - 29923 - 2019-03-13 15:08 - ? - root - 0 - - - /usr/sbin/console-kit-daemon --no-daemon - 0.0 - 0.4 - 29927 - 2019-03-13 15:09 - ? - root - 584340 - - - /usr/lib/policykit-1/polkitd --no-debug - 0.0 - 0.3 - 29994 - 2019-03-13 15:09 - ? - root - 186616 - - - /var/rudder/cfengine-community/bin/cf-serverd - 0.0 - 1.2 - 32038 - 2019-03-13 15:12 - ? - root - 43860 - - - /var/rudder/cfengine-community/bin/cf-execd - 0.0 - 0.8 - 32211 - 2019-03-13 15:12 - ? - root - 108848 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEAtwTJu/AGJcj3+DMwFkvAdC9r9tyBtEKxUQ1Glm/KHj5HqTFp214L -KeL1praEmyAfKLIrvqrPMko+cX0HgGqV111P+5hRz5VSaqmollfGHkc38T44cnP5 -k/gnoSvyubfnxCy2ZoWrYddmtK8zZSMN/dyEP3mzT+xOmc6LaEPKWjx8gg+9WFiO -f86GoTBWbSYh8wZr1w3FMH7ZFszNUgqhufyp5OC5Z87drve7IZAXBagdnJt3a+h7 -biFKdejmRIxAXBuZCcZVIBs1WMyBnfQDBb26yTa5+9kZwNBpYvOjGNyqb4t+SfKP -HKhmnSBOE9XkSrWZWB0Jrc9mjAvxAgTjUQIBIw== ------END RSA PUBLIC KEY----- - - root - orchestrateur-5.labo.normation.com - root - - - cfengine - dumpdatastate - bodydefault - - ubuntu-12-10-64.labo.normation.com - - d2b1d400-be09-47d0-a851-5f50bcf2d09e - - - amd64 - 372 - deb - accountsservice - Ubuntu - 0.6.21-6ubuntu5 - - - amd64 - 161 - deb - acpid - Ubuntu - 1:2.0.16-1ubuntu1 - - - all - 588 - deb - adduser - Ubuntu - 3.113+nmu1ubuntu1 - - - amd64 - 1094 - deb - apparmor - Ubuntu - 2.8.0-0ubuntu5 - - - all - 1076 - deb - apport - Ubuntu - 2.6.1-0ubuntu6 - - - all - 75 - deb - apport-symptoms - Ubuntu - 0.19 - - - amd64 - 3312 - deb - apt - Ubuntu - 0.9.7.5ubuntu5 - - - amd64 - 177 - deb - apt-transport-https - Ubuntu - 0.9.7.5ubuntu5 - - - amd64 - 608 - deb - apt-utils - Ubuntu - 0.9.7.5ubuntu5 - - - all - 335 - deb - apt-xapian-index - Ubuntu - 0.44ubuntu7 - - - amd64 - 4741 - deb - aptitude - Ubuntu - 0.6.8.1-2ubuntu1 - - - all - 4172 - deb - aptitude-common - Ubuntu - 0.6.8.1-2ubuntu1 - - - amd64 - 184 - deb - at - Ubuntu - 3.1.13-2ubuntu1 - - - amd64 - 420 - deb - base-files - Ubuntu - 6.5ubuntu12 - - - amd64 - 165 - deb - base-passwd - Ubuntu - 3.5.26 - - - amd64 - 1416 - deb - bash - Ubuntu - 4.2-5ubuntu1 - - - all - 871 - deb - bash-completion - Ubuntu - 1:2.0-1ubuntu2 - - - amd64 - 268 - deb - bc - Ubuntu - 1.06.95-4 - - - amd64 - 171 - deb - bind9-host - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 7660 - deb - binutils - Ubuntu - 2.22.90.20120924-0ubuntu2 - - - amd64 - 98 - deb - biosdevname - Ubuntu - 0.4.1-0ubuntu3 - - - amd64 - 547 - deb - bsdmainutils - Ubuntu - 9.0.3ubuntu1 - - - amd64 - 192 - deb - bsdutils - Ubuntu - 1:2.20.1-5.1ubuntu2 - - - amd64 - 37 - deb - build-essential - Ubuntu - 11.5ubuntu3 - - - amd64 - 365 - deb - busybox-initramfs - Ubuntu - 1:1.19.3-7ubuntu1 - - - amd64 - 1864 - deb - busybox-static - Ubuntu - 1:1.19.3-7ubuntu1 - - - all - 421 - deb - byobu - Ubuntu - 5.21-0ubuntu1 - - - amd64 - 114 - deb - bzip2 - Ubuntu - 1.0.6-4 - - - all - 392 - deb - ca-certificates - Ubuntu - 20120623 - - - all - 78 - deb - command-not-found - Ubuntu - 0.3ubuntu5 - - - amd64 - 3424 - deb - command-not-found-data - Ubuntu - 0.3ubuntu5 - - - all - 1530 - deb - console-setup - Ubuntu - 1.70ubuntu6 - - - amd64 - 457 - deb - consolekit - Ubuntu - 0.4.5-3 - - - amd64 - 5492 - deb - coreutils - Ubuntu - 8.13-3.2ubuntu2 - - - amd64 - 324 - deb - cpio - Ubuntu - 2.11-8ubuntu3 - - - amd64 - 84 - deb - cpp - Ubuntu - 4:4.7.2-1ubuntu2 - - - amd64 - 12806 - deb - cpp-4.7 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 96 - deb - crda - Ubuntu - 1.1.2-1ubuntu2 - - - amd64 - 302 - deb - cron - Ubuntu - 3.0pl1-121ubuntu1 - - - amd64 - 374 - deb - curl - Ubuntu - 7.27.0-1ubuntu1 - - - amd64 - 213 - deb - dash - Ubuntu - 0.5.7-3ubuntu1 - - - amd64 - 941 - deb - dbus - Ubuntu - 1.6.4-1ubuntu4 - - - amd64 - 340 - deb - dctrl-tools - Ubuntu - 2.22.2 - - - all - 614 - deb - debconf - Ubuntu - 1.5.46ubuntu1 - - - all - 1100 - deb - debconf-i18n - Ubuntu - 1.5.46ubuntu1 - - - amd64 - 243 - deb - debianutils - Ubuntu - 4.3.4 - - - all - 226 - deb - debootstrap - Ubuntu - 1.0.42ubuntu0.1 - - - amd64 - 1504 - deb - devscripts - Ubuntu - 2.12.4 - - - amd64 - 211 - deb - dhcpcd5 - Ubuntu - 5.5.6-1 - - - amd64 - 79 - deb - diffstat - Ubuntu - 1.55-3 - - - amd64 - 408 - deb - diffutils - Ubuntu - 1:3.2-6ubuntu1 - - - all - 33 - deb - distro-info-data - Ubuntu - 0.10ubuntu1 - - - amd64 - 190 - deb - dmidecode - Ubuntu - 2.11+20120326-2 - - - amd64 - 174 - deb - dmsetup - Ubuntu - 2:1.02.74-4ubuntu1 - - - amd64 - 362 - deb - dnsutils - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 192 - deb - dosfstools - Ubuntu - 3.0.13-1 - - - amd64 - 5665 - deb - dpkg - Ubuntu - 1.16.7ubuntu6 - - - all - 1410 - deb - dpkg-dev - Ubuntu - 1.16.7ubuntu6 - - - all - 162 - deb - dput - Ubuntu - 0.9.6.2ubuntu2 - - - amd64 - 381 - deb - e2fslibs - Ubuntu - 1.42.5-1ubuntu2 - - - amd64 - 2351 - deb - e2fsprogs - Ubuntu - 1.42.5-1ubuntu2 - - - amd64 - 121 - deb - ed - Ubuntu - 1.6-2 - - - amd64 - 160 - deb - eject - Ubuntu - 2.1.5+deb1+cvs20081104-11 - - - amd64 - 313 - deb - fakeroot - Ubuntu - 1.18.4-2 - - - amd64 - 97 - deb - file - Ubuntu - 5.11-2 - - - amd64 - 816 - deb - findutils - Ubuntu - 4.4.2-4ubuntu2 - - - all - 59 - deb - fonts-ubuntu-font-family-console - Ubuntu - 0.80-0ubuntu5 - - - all - 67 - deb - friendly-recovery - Ubuntu - 0.2.25 - - - amd64 - 144 - deb - ftp - Ubuntu - 0.17-27 - - - amd64 - 143 - deb - fuse - Ubuntu - 2.9.0-1ubuntu2 - - - amd64 - 34 - deb - g++ - Ubuntu - 4:4.7.2-1ubuntu2 - - - amd64 - 16032 - deb - g++-4.7 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 41 - deb - gcc - Ubuntu - 4:4.7.2-1ubuntu2 - - - amd64 - 18034 - deb - gcc-4.7 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 196 - deb - gcc-4.7-base - Ubuntu - 4.7.2-2ubuntu1 - - - all - 7361 - deb - geoip-database - Ubuntu - 20120609-1 - - - amd64 - 4064 - deb - gettext - Ubuntu - 0.18.1.1-9ubuntu1 - - - amd64 - 344 - deb - gettext-base - Ubuntu - 0.18.1.1-9ubuntu1 - - - amd64 - 589 - deb - gir1.2-glib-2.0 - Ubuntu - 1.33.14-1 - - - amd64 - 1936 - deb - gnupg - Ubuntu - 1.4.11-3ubuntu4 - - - amd64 - 436 - deb - gpgv - Ubuntu - 1.4.11-3ubuntu4 - - - amd64 - 632 - deb - grep - Ubuntu - 2.12-2 - - - amd64 - 2775 - deb - groff-base - Ubuntu - 1.21-9 - - - amd64 - 5828 - deb - grub-common - Ubuntu - 2.00-7ubuntu11 - - - amd64 - 47 - deb - grub-gfxpayload-lists - Ubuntu - 0.6 - - - amd64 - 545 - deb - grub-pc - Ubuntu - 2.00-7ubuntu11 - - - amd64 - 2458 - deb - grub-pc-bin - Ubuntu - 2.00-7ubuntu11 - - - amd64 - 187 - deb - grub2-common - Ubuntu - 2.00-7ubuntu11 - - - amd64 - 234 - deb - gzip - Ubuntu - 1.5-1.1ubuntu1 - - - all - 70 - deb - hardening-includes - Ubuntu - 2.2 - - - amd64 - 260 - deb - hdparm - Ubuntu - 9.37-0ubuntu4 - - - amd64 - 86 - deb - hostname - Ubuntu - 3.11ubuntu1 - - - amd64 - 206 - deb - ifupdown - Ubuntu - 0.7.2ubuntu2 - - - amd64 - 370 - deb - info - Ubuntu - 4.13a.dfsg.1-10ubuntu2 - - - all - 363 - deb - initramfs-tools - Ubuntu - 0.103ubuntu0.2 - - - amd64 - 120 - deb - initramfs-tools-bin - Ubuntu - 0.103ubuntu0.2 - - - amd64 - 223 - deb - initscripts - Ubuntu - 2.88dsf-13.10ubuntu13 - - - amd64 - 182 - deb - insserv - Ubuntu - 1.14.0-4ubuntu1 - - - amd64 - 218 - deb - install-info - Ubuntu - 4.13a.dfsg.1-10ubuntu2 - - - all - 75 - deb - installation-report - Ubuntu - 2.47ubuntu1 - - - all - 140 - deb - intltool-debian - Ubuntu - 0.35.0+20060710.1 - - - amd64 - 120 - deb - iotop - Ubuntu - 0.4.4-4 - - - amd64 - 996 - deb - iproute - Ubuntu - 20120521-3ubuntu1 - - - amd64 - 1422 - deb - iptables - Ubuntu - 1.4.12-2ubuntu2 - - - amd64 - 141 - deb - iputils-ping - Ubuntu - 3:20101006-3ubuntu1 - - - amd64 - 103 - deb - iputils-tracepath - Ubuntu - 3:20101006-3ubuntu1 - - - amd64 - 105 - deb - irqbalance - Ubuntu - 1.0.3-1ubuntu2 - - - amd64 - 1807 - deb - isc-dhcp-client - Ubuntu - 4.2.4-1ubuntu10.1 - - - amd64 - 1754 - deb - isc-dhcp-common - Ubuntu - 4.2.4-1ubuntu10.1 - - - all - 14537 - deb - iso-codes - Ubuntu - 3.38-1 - - - amd64 - 1024 - deb - kbd - Ubuntu - 1.15.3-9ubuntu1 - - - all - 2172 - deb - keyboard-configuration - Ubuntu - 1.70ubuntu6 - - - amd64 - 388 - deb - klibc-utils - Ubuntu - 2.0.1-1ubuntu2 - - - all - 1524 - deb - krb5-locales - Ubuntu - 1.10.1+dfsg-2 - - - amd64 - 1174 - deb - landscape-common - Ubuntu - 12.05-0ubuntu2 - - - all - 30 - deb - language-pack-en - Ubuntu - 1:12.10+20121009 - - - all - 3811 - deb - language-pack-en-base - Ubuntu - 1:12.10+20121009 - - - all - 30 - deb - language-pack-fr - Ubuntu - 1:12.10+20121009 - - - all - 9329 - deb - language-pack-fr-base - Ubuntu - 1:12.10+20121009 - - - all - 2554 - deb - language-selector-common - Ubuntu - 0.90 - - - amd64 - 56 - deb - laptop-detect - Ubuntu - 0.13.7ubuntu2 - - - amd64 - 283 - deb - less - Ubuntu - 444-4ubuntu1 - - - amd64 - 330 - deb - libaccountsservice0 - Ubuntu - 0.6.21-6ubuntu5 - - - amd64 - 76 - deb - libacl1 - Ubuntu - 2.2.51-8ubuntu2 - - - all - 160 - deb - libalgorithm-diff-perl - Ubuntu - 1.19.02-2 - - - amd64 - 87 - deb - libalgorithm-diff-xs-perl - Ubuntu - 0.04-2build3 - - - all - 80 - deb - libalgorithm-merge-perl - Ubuntu - 0.08-2 - - - amd64 - 715 - deb - libapt-inst1.5 - Ubuntu - 0.9.7.5ubuntu5 - - - amd64 - 245 - deb - libapt-pkg-perl - Ubuntu - 0.1.26 - - - amd64 - 2710 - deb - libapt-pkg4.12 - Ubuntu - 0.9.7.5ubuntu5 - - - all - 273 - deb - libarchive-zip-perl - Ubuntu - 1.30-6 - - - amd64 - 758 - deb - libasn1-8-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 69 - deb - libasprintf0c2 - Ubuntu - 0.18.1.1-9ubuntu1 - - - amd64 - 56 - deb - libattr1 - Ubuntu - 1:2.4.46-8ubuntu1 - - - amd64 - 100 - deb - libbind9-80 - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 246 - deb - libblkid1 - Ubuntu - 2.20.1-5.1ubuntu2 - - - amd64 - 165 - deb - libboost-iostreams1.49.0 - Ubuntu - 1.49.0-3.1ubuntu1 - - - amd64 - 141 - deb - libbsd0 - Ubuntu - 0.4.2-1 - - - amd64 - 113 - deb - libbz2-1.0 - Ubuntu - 1.0.6-4 - - - amd64 - 3480 - deb - libc-bin - Ubuntu - 2.15-0ubuntu20 - - - amd64 - 373 - deb - libc-dev-bin - Ubuntu - 2.15-0ubuntu20 - - - amd64 - 10420 - deb - libc6 - Ubuntu - 2.15-0ubuntu20 - - - amd64 - 11648 - deb - libc6-dev - Ubuntu - 2.15-0ubuntu20 - - - amd64 - 54 - deb - libcap-ng0 - Ubuntu - 0.6.6-2ubuntu1 - - - amd64 - 56 - deb - libck-connector0 - Ubuntu - 0.4.5-3 - - - all - 104 - deb - libclass-accessor-perl - Ubuntu - 0.34-1 - - - all - 55 - deb - libclass-isa-perl - Ubuntu - 0.36-3 - - - amd64 - 65 - deb - libclone-perl - Ubuntu - 0.31-1build4 - - - amd64 - 99 - deb - libcomerr2 - Ubuntu - 1.42.5-1ubuntu2 - - - all - 71 - deb - libcommon-sense-perl - Ubuntu - 3.6-1 - - - amd64 - 335 - deb - libcroco3 - Ubuntu - 0.6.6-1 - - - amd64 - 577 - deb - libcurl3 - Ubuntu - 7.27.0-1ubuntu1 - - - amd64 - 557 - deb - libcurl3-gnutls - Ubuntu - 7.27.0-1ubuntu1 - - - amd64 - 1048 - deb - libcwidget3 - Ubuntu - 0.5.16-3.4ubuntu1 - - - amd64 - 1540 - deb - libdb5.1 - Ubuntu - 5.1.29-5ubuntu2 - - - amd64 - 368 - deb - libdbus-1-3 - Ubuntu - 1.6.4-1ubuntu4 - - - amd64 - 230 - deb - libdbus-glib-1-2 - Ubuntu - 0.100-1 - - - amd64 - 290 - deb - libdevmapper1.02.1 - Ubuntu - 2:1.02.74-4ubuntu1 - - - all - 72 - deb - libdigest-hmac-perl - Ubuntu - 1.03+dfsg-1 - - - all - 44 - deb - libdistro-info-perl - Ubuntu - 0.10 - - - amd64 - 1625 - deb - libdns81 - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - all - 1412 - deb - libdpkg-perl - Ubuntu - 1.16.7ubuntu6 - - - amd64 - 185 - deb - libdrm-intel1 - Ubuntu - 2.4.39-0ubuntu1 - - - amd64 - 86 - deb - libdrm-nouveau1a - Ubuntu - 2.4.39-0ubuntu1 - - - amd64 - 103 - deb - libdrm-radeon1 - Ubuntu - 2.4.39-0ubuntu1 - - - amd64 - 105 - deb - libdrm2 - Ubuntu - 2.4.39-0ubuntu1 - - - amd64 - 182 - deb - libedit2 - Ubuntu - 2.11-20080614-5 - - - amd64 - 172 - deb - libelf1 - Ubuntu - 0.153-1ubuntu1 - - - all - 79 - deb - libemail-valid-perl - Ubuntu - 0.190-1 - - - all - 58 - deb - libencode-locale-perl - Ubuntu - 1.03-1 - - - amd64 - 369 - deb - libept1.4.12 - Ubuntu - 1.0.9 - - - all - 96 - deb - liberror-perl - Ubuntu - 0.17-1 - - - amd64 - 306 - deb - libevent-2.0-5 - Ubuntu - 2.0.19-stable-3 - - - amd64 - 386 - deb - libexpat1 - Ubuntu - 2.1.0-1ubuntu1 - - - all - 60 - deb - libexporter-lite-perl - Ubuntu - 0.02-2 - - - amd64 - 70 - deb - libffi6 - Ubuntu - 3.0.11-2 - - - amd64 - 87 - deb - libfile-fcntllock-perl - Ubuntu - 0.14-2 - - - all - 55 - deb - libfile-listing-perl - Ubuntu - 6.04-1 - - - all - 120 - deb - libfont-afm-perl - Ubuntu - 1.20-1 - - - amd64 - 824 - deb - libfreetype6 - Ubuntu - 2.4.10-0ubuntu1 - - - amd64 - 129 - deb - libfribidi0 - Ubuntu - 0.19.2-3 - - - amd64 - 345 - deb - libfuse2 - Ubuntu - 2.9.0-1ubuntu2 - - - amd64 - 268 - deb - libgc1c2 - Ubuntu - 1:7.1-9 - - - amd64 - 119 - deb - libgcc1 - Ubuntu - 1:4.7.2-2ubuntu1 - - - amd64 - 586 - deb - libgcrypt11 - Ubuntu - 1.5.0-3ubuntu1 - - - amd64 - 107 - deb - libgdbm3 - Ubuntu - 1.8.3-11 - - - amd64 - 299 - deb - libgeoip1 - Ubuntu - 1.4.8+dfsg-4 - - - amd64 - 349 - deb - libgettextpo0 - Ubuntu - 0.18.1.1-9ubuntu1 - - - amd64 - 255 - deb - libgirepository-1.0-1 - Ubuntu - 1.33.14-1 - - - amd64 - 3984 - deb - libglib2.0-0 - Ubuntu - 2.34.0-1ubuntu1 - - - amd64 - 490 - deb - libgmp10 - Ubuntu - 2:5.0.2+dfsg-2ubuntu2 - - - amd64 - 1052 - deb - libgnutls26 - Ubuntu - 2.12.14-5ubuntu4 - - - amd64 - 92 - deb - libgomp1 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 96 - deb - libgpg-error0 - Ubuntu - 1.10-3.1ubuntu1 - - - amd64 - 83 - deb - libgpm2 - Ubuntu - 1.20.4-6 - - - amd64 - 331 - deb - libgssapi-krb5-2 - Ubuntu - 1.10.1+dfsg-2 - - - amd64 - 319 - deb - libgssapi3-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 280 - deb - libhcrypto4-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 125 - deb - libheimbase1-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 94 - deb - libheimntlm0-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - all - 88 - deb - libhtml-form-perl - Ubuntu - 6.03-1 - - - all - 160 - deb - libhtml-format-perl - Ubuntu - 2.10-1 - - - amd64 - 246 - deb - libhtml-parser-perl - Ubuntu - 3.69-2 - - - all - 76 - deb - libhtml-tagset-perl - Ubuntu - 3.20-2 - - - all - 504 - deb - libhtml-tree-perl - Ubuntu - 5.02-1 - - - all - 104 - deb - libhttp-cookies-perl - Ubuntu - 6.00-2 - - - all - 70 - deb - libhttp-daemon-perl - Ubuntu - 6.01-1 - - - all - 56 - deb - libhttp-date-perl - Ubuntu - 6.02-1 - - - all - 204 - deb - libhttp-message-perl - Ubuntu - 6.03-1 - - - all - 72 - deb - libhttp-negotiate-perl - Ubuntu - 6.00-2 - - - amd64 - 368 - deb - libhx509-5-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 361 - deb - libidn11 - Ubuntu - 1.25-2 - - - amd64 - 137 - deb - libio-pty-perl - Ubuntu - 1:1.08-1build3 - - - all - 71 - deb - libio-socket-inet6-perl - Ubuntu - 2.69-2 - - - all - 161 - deb - libio-socket-ssl-perl - Ubuntu - 1.76-1ubuntu1 - - - all - 72 - deb - libio-string-perl - Ubuntu - 1.08-2 - - - all - 273 - deb - libio-stringy-perl - Ubuntu - 2.110-5 - - - all - 273 - deb - libipc-run-perl - Ubuntu - 0.91-1 - - - amd64 - 394 - deb - libisc83 - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 84 - deb - libisccc80 - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 182 - deb - libisccfg82 - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 152 - deb - libitm1 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 90 - deb - libiw30 - Ubuntu - 30~pre9-8ubuntu1 - - - all - 292 - deb - libjson-perl - Ubuntu - 2.53-1 - - - amd64 - 230 - deb - libjson-xs-perl - Ubuntu - 2.320-1build2 - - - amd64 - 240 - deb - libk5crypto3 - Ubuntu - 1.10.1+dfsg-2 - - - amd64 - 51 - deb - libkeyutils1 - Ubuntu - 1.5.5-3 - - - amd64 - 128 - deb - libklibc - Ubuntu - 2.0.1-1ubuntu2 - - - amd64 - 77 - deb - libkms1 - Ubuntu - 2.4.39-0ubuntu1 - - - amd64 - 624 - deb - libkrb5-26-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 960 - deb - libkrb5-3 - Ubuntu - 1.10.1+dfsg-2 - - - amd64 - 110 - deb - libkrb5support0 - Ubuntu - 1.10.1+dfsg-2 - - - amd64 - 494 - deb - libldap-2.4-2 - Ubuntu - 2.4.31-1ubuntu2 - - - amd64 - 92 - deb - liblocale-gettext-perl - Ubuntu - 1.05-7build2 - - - amd64 - 70 - deb - liblockfile-bin - Ubuntu - 1.09-4 - - - amd64 - 56 - deb - liblockfile1 - Ubuntu - 1.09-4 - - - all - 100 - deb - liblwp-mediatypes-perl - Ubuntu - 6.02-1 - - - all - 52 - deb - liblwp-protocol-https-perl - Ubuntu - 6.03-1 - - - amd64 - 124 - deb - liblwres80 - Ubuntu - 1:9.8.1.dfsg.P1-4.2ubuntu3 - - - amd64 - 304 - deb - liblzma5 - Ubuntu - 5.1.1alpha+20120614-1 - - - amd64 - 2428 - deb - libmagic1 - Ubuntu - 5.11-2 - - - all - 229 - deb - libmailtools-perl - Ubuntu - 2.09-1 - - - amd64 - 244 - deb - libmount1 - Ubuntu - 2.20.1-5.1ubuntu2 - - - amd64 - 118 - deb - libmpc2 - Ubuntu - 0.9-4build1 - - - amd64 - 751 - deb - libmpfr4 - Ubuntu - 3.1.0-3ubuntu3 - - - amd64 - 284 - deb - libncurses5 - Ubuntu - 5.9-10ubuntu1 - - - amd64 - 342 - deb - libncursesw5 - Ubuntu - 5.9-10ubuntu1 - - - amd64 - 670 - deb - libnet-dns-perl - Ubuntu - 0.68-1.1 - - - all - 72 - deb - libnet-domain-tld-perl - Ubuntu - 1.69-1 - - - all - 85 - deb - libnet-http-perl - Ubuntu - 6.03-2 - - - all - 144 - deb - libnet-ip-perl - Ubuntu - 1.25-3 - - - amd64 - 1018 - deb - libnet-ssleay-perl - Ubuntu - 1.48-1 - - - amd64 - 180 - deb - libnewt0.52 - Ubuntu - 0.52.11-2ubuntu11 - - - amd64 - 56 - deb - libnfnetlink0 - Ubuntu - 1.0.0-1build1 - - - amd64 - 68 - deb - libnih-dbus1 - Ubuntu - 1.0.3-4ubuntu11 - - - amd64 - 145 - deb - libnih1 - Ubuntu - 1.0.3-4ubuntu11 - - - amd64 - 150 - deb - libnl-3-200 - Ubuntu - 3.2.7-4 - - - amd64 - 63 - deb - libnl-genl-3-200 - Ubuntu - 3.2.7-4 - - - amd64 - 87 - deb - libnuma1 - Ubuntu - 2.0.8~rc4-1 - - - amd64 - 123 - deb - libp11-kit0 - Ubuntu - 0.13-1 - - - amd64 - 68 - deb - libpam-ck-connector - Ubuntu - 0.4.5-3 - - - amd64 - 793 - deb - libpam-modules - Ubuntu - 1.1.3-7ubuntu3 - - - amd64 - 202 - deb - libpam-modules-bin - Ubuntu - 1.1.3-7ubuntu3 - - - all - 296 - deb - libpam-runtime - Ubuntu - 1.1.3-7ubuntu3 - - - amd64 - 223 - deb - libpam0g - Ubuntu - 1.1.3-7ubuntu3 - - - all - 104 - deb - libparse-debcontrol-perl - Ubuntu - 2.005-3 - - - all - 232 - deb - libparse-debianchangelog-perl - Ubuntu - 1.2.0-1ubuntu1 - - - amd64 - 571 - deb - libparted0debian1 - Ubuntu - 2.3-10ubuntu2 - - - amd64 - 296 - deb - libpcap0.8 - Ubuntu - 1.3.0-1 - - - amd64 - 111 - deb - libpci3 - Ubuntu - 1:3.1.9-5ubuntu4 - - - amd64 - 75 - deb - libpciaccess0 - Ubuntu - 0.13.1-2 - - - amd64 - 455 - deb - libpcre3 - Ubuntu - 1:8.30-5ubuntu1 - - - amd64 - 89 - deb - libpcsclite1 - Ubuntu - 1.8.5-1ubuntu1 - - - amd64 - 88 - deb - libpipeline1 - Ubuntu - 1.2.2-1 - - - amd64 - 304 - deb - libplymouth2 - Ubuntu - 0.8.4-0ubuntu3 - - - amd64 - 296 - deb - libpng12-0 - Ubuntu - 1.2.49-1ubuntu1 - - - amd64 - 81 - deb - libpolkit-agent-1-0 - Ubuntu - 0.104-2ubuntu1 - - - amd64 - 139 - deb - libpolkit-backend-1-0 - Ubuntu - 0.104-2ubuntu1 - - - amd64 - 151 - deb - libpolkit-gobject-1-0 - Ubuntu - 0.104-2ubuntu1 - - - amd64 - 128 - deb - libpopt0 - Ubuntu - 1.16-7ubuntu2 - - - amd64 - 131 - deb - libprocps0 - Ubuntu - 1:3.3.3-2ubuntu3 - - - amd64 - 3069 - deb - libpython2.7 - Ubuntu - 2.7.3-5ubuntu4 - - - amd64 - 246 - deb - libquadmath0 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 385 - deb - libreadline6 - Ubuntu - 6.2-9 - - - amd64 - 157 - deb - libroken18-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 143 - deb - librtmp0 - Ubuntu - 2.4+20111222.git4e06e21-1 - - - amd64 - 196 - deb - libsasl2-2 - Ubuntu - 2.1.25.dfsg1-5 - - - amd64 - 229 - deb - libsasl2-modules - Ubuntu - 2.1.25.dfsg1-5 - - - amd64 - 190 - deb - libselinux1 - Ubuntu - 2.1.9-5ubuntu1 - - - amd64 - 84 - deb - libsigc++-2.0-0c2a - Ubuntu - 2.2.10-0.2 - - - amd64 - 1466 - deb - libslang2 - Ubuntu - 2.2.4-15ubuntu1 - - - amd64 - 94 - deb - libsocket6-perl - Ubuntu - 0.23-1build3 - - - amd64 - 804 - deb - libsqlite3-0 - Ubuntu - 3.7.13-1 - - - amd64 - 112 - deb - libss2 - Ubuntu - 1.42.5-1ubuntu2 - - - amd64 - 2834 - deb - libssl1.0.0 - Ubuntu - 1.0.1c-3ubuntu2 - - - amd64 - 1206 - deb - libstdc++6 - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 10888 - deb - libstdc++6-4.7-dev - Ubuntu - 4.7.2-2ubuntu1 - - - amd64 - 72 - deb - libsub-name-perl - Ubuntu - 0.05-1build3 - - - all - 74 - deb - libswitch-perl - Ubuntu - 2.16-2 - - - amd64 - 135 - deb - libtasn1-3 - Ubuntu - 2.13-2 - - - amd64 - 75 - deb - libtext-charwidth-perl - Ubuntu - 0.04-7build2 - - - amd64 - 85 - deb - libtext-iconv-perl - Ubuntu - 1.7-5build1 - - - all - 68 - deb - libtext-wrapi18n-perl - Ubuntu - 0.06-7 - - - all - 84 - deb - libtie-ixhash-perl - Ubuntu - 1.21-2 - - - all - 248 - deb - libtimedate-perl - Ubuntu - 1.2000-1 - - - amd64 - 442 - deb - libtinfo5 - Ubuntu - 5.9-10ubuntu1 - - - amd64 - 637 - deb - libtokyocabinet9 - Ubuntu - 1.4.47-2 - - - amd64 - 200 - deb - libudev0 - Ubuntu - 175-0ubuntu13 - - - amd64 - 1155 - deb - libunistring0 - Ubuntu - 0.9.3-5build1 - - - all - 218 - deb - liburi-perl - Ubuntu - 1.60-1 - - - amd64 - 73 - deb - libusb-0.1-4 - Ubuntu - 2:0.1.12-23 - - - amd64 - 116 - deb - libusb-1.0-0 - Ubuntu - 2:1.0.12-2 - - - amd64 - 107 - deb - libuuid1 - Ubuntu - 2.20.1-5.1ubuntu2 - - - amd64 - 45 - deb - libwhoopsie0 - Ubuntu - 0.2.7 - - - amd64 - 229 - deb - libwind0-heimdal - Ubuntu - 1.6~git20120403+dfsg1-2 - - - amd64 - 125 - deb - libwrap0 - Ubuntu - 7.6.q-23 - - - all - 372 - deb - libwww-perl - Ubuntu - 6.04-1 - - - all - 76 - deb - libwww-robotrules-perl - Ubuntu - 6.01-1 - - - amd64 - 1505 - deb - libx11-6 - Ubuntu - 2:1.5.0-1 - - - all - 1574 - deb - libx11-data - Ubuntu - 2:1.5.0-1 - - - amd64 - 2276 - deb - libxapian22 - Ubuntu - 1.2.12-1 - - - amd64 - 59 - deb - libxau6 - Ubuntu - 1:1.0.7-1 - - - amd64 - 175 - deb - libxcb1 - Ubuntu - 1.8.1-1ubuntu1 - - - amd64 - 71 - deb - libxdmcp6 - Ubuntu - 1:1.1.1-1 - - - amd64 - 139 - deb - libxext6 - Ubuntu - 2:1.3.1-2 - - - amd64 - 1757 - deb - libxml2 - Ubuntu - 2.8.0+dfsg1-5ubuntu2 - - - amd64 - 65 - deb - libxmuu1 - Ubuntu - 2:1.1.1-1 - - - all - 2236 - deb - lintian - Ubuntu - 2.5.10.2ubuntu2.1 - - - all - 35826 - deb - linux-firmware - Ubuntu - 1.95 - - - amd64 - 32 - deb - linux-generic - Ubuntu - 3.5.0.18.21 - - - all - 57317 - deb - linux-headers-3.5.0-15 - Ubuntu - 3.5.0-15.23 - - - amd64 - 10928 - deb - linux-headers-3.5.0-15-generic - Ubuntu - 3.5.0-15.23 - - - amd64 - 31 - deb - linux-headers-generic - Ubuntu - 3.5.0.15.15 - - - amd64 - 32 - deb - linux-headers-server - Ubuntu - 3.5.0.18.21 - - - amd64 - 30576 - deb - linux-image-3.5.0-15-generic - Ubuntu - 3.5.0-15.23 - - - amd64 - 117886 - deb - linux-image-extra-3.5.0-15-generic - Ubuntu - 3.5.0-15.23 - - - amd64 - 31 - deb - linux-image-generic - Ubuntu - 3.5.0.15.15 - - - amd64 - 3114 - deb - linux-libc-dev - Ubuntu - 3.5.0-18.29 - - - amd64 - 32 - deb - linux-server - Ubuntu - 3.5.0.18.21 - - - all - 9152 - deb - locales - Ubuntu - 2.13+git20120306-3 - - - amd64 - 78 - deb - lockfile-progs - Ubuntu - 0.1.16build1 - - - amd64 - 1048 - deb - login - Ubuntu - 1:4.1.4.2+svn3283-3ubuntu7 - - - amd64 - 144 - deb - logrotate - Ubuntu - 3.7.8-6ubuntu6 - - - all - 76 - deb - lsb-base - Ubuntu - 4.0-0ubuntu26.1 - - - all - 111 - deb - lsb-release - Ubuntu - 4.0-0ubuntu26.1 - - - amd64 - 652 - deb - lshw - Ubuntu - 02.16-1 - - - amd64 - 456 - deb - lsof - Ubuntu - 4.86+dfsg-1ubuntu1 - - - amd64 - 228 - deb - ltrace - Ubuntu - 0.5.3-2.1ubuntu3 - - - amd64 - 316 - deb - make - Ubuntu - 3.81-8.2ubuntu2 - - - all - 126 - deb - makedev - Ubuntu - 2.3.1-91ubuntu2 - - - amd64 - 1744 - deb - man-db - Ubuntu - 2.6.3-1 - - - all - 831 - deb - manpages - Ubuntu - 3.40-0.1ubuntu3 - - - all - 1741 - deb - manpages-dev - Ubuntu - 3.40-0.1ubuntu3 - - - amd64 - 197 - deb - mawk - Ubuntu - 1.3.3-17 - - - amd64 - 2404 - deb - memtest86+ - Ubuntu - 4.20-1.1ubuntu2 - - - all - 133 - deb - mime-support - Ubuntu - 3.52-1ubuntu1 - - - amd64 - 228 - deb - mlocate - Ubuntu - 0.25-0ubuntu1 - - - amd64 - 333 - deb - module-init-tools - Ubuntu - 3.16-1ubuntu6 - - - amd64 - 419 - deb - mount - Ubuntu - 2.20.1-5.1ubuntu2 - - - amd64 - 247 - deb - mountall - Ubuntu - 2.42 - - - amd64 - 114 - deb - mtr-tiny - Ubuntu - 0.82-3ubuntu1 - - - amd64 - 202 - deb - multiarch-support - Ubuntu - 2.15-0ubuntu20 - - - amd64 - 600 - deb - nano - Ubuntu - 2.2.6-1ubuntu1 - - - all - 346 - deb - ncurses-base - Ubuntu - 5.9-10ubuntu1 - - - amd64 - 497 - deb - ncurses-bin - Ubuntu - 5.9-10ubuntu1 - - - all - 2117 - deb - ncurses-term - Ubuntu - 5.9-10ubuntu1 - - - amd64 - 712 - deb - net-tools - Ubuntu - 1.60-24.1ubuntu3 - - - all - 68 - deb - netbase - Ubuntu - 5.0ubuntu1 - - - amd64 - 109 - deb - netcat-openbsd - Ubuntu - 1.105-6ubuntu1 - - - amd64 - 1428 - deb - ntfs-3g - Ubuntu - 1:2012.1.15AR.5-4ubuntu3 - - - amd64 - 239 - deb - ntpdate - Ubuntu - 1:4.2.6.p3+dfsg-1ubuntu5 - - - all - 147 - deb - openresolv - Ubuntu - 3.5.2-1 - - - amd64 - 2303 - deb - openssh-client - Ubuntu - 1:6.0p1-3ubuntu1 - - - amd64 - 814 - deb - openssh-server - Ubuntu - 1:6.0p1-3ubuntu1 - - - amd64 - 902 - deb - openssl - Ubuntu - 1.0.1c-3ubuntu2 - - - amd64 - 134 - deb - os-prober - Ubuntu - 1.56ubuntu1 - - - amd64 - 189 - deb - parted - Ubuntu - 2.3-10ubuntu2 - - - amd64 - 2085 - deb - passwd - Ubuntu - 1:4.1.4.2+svn3283-3ubuntu7 - - - amd64 - 218 - deb - patch - Ubuntu - 2.6.1-3ubuntu1 - - - amd64 - 227 - deb - patchutils - Ubuntu - 0.3.2-1.1build1 - - - all - 1057 - deb - pbuilder - Ubuntu - 0.208ubuntu1 - - - amd64 - 957 - deb - pciutils - Ubuntu - 1:3.1.9-5ubuntu4 - - - amd64 - 17110 - deb - perl - Ubuntu - 5.14.2-13 - - - amd64 - 4738 - deb - perl-base - Ubuntu - 5.14.2-13 - - - all - 14081 - deb - perl-modules - Ubuntu - 5.14.2-13 - - - amd64 - 475 - deb - plymouth - Ubuntu - 0.8.4-0ubuntu3 - - - amd64 - 78 - deb - plymouth-theme-ubuntu-text - Ubuntu - 0.8.4-0ubuntu3 - - - amd64 - 384 - deb - policykit-1 - Ubuntu - 0.104-2ubuntu1 - - - all - 192 - deb - popularity-contest - Ubuntu - 1.53ubuntu1 - - - amd64 - 63 - deb - powermgmt-base - Ubuntu - 1.31build1 - - - amd64 - 898 - deb - ppp - Ubuntu - 2.4.5-5ubuntu2 - - - all - 224 - deb - pppconfig - Ubuntu - 2.3.18+nmu3ubuntu1 - - - all - 132 - deb - pppoeconf - Ubuntu - 1.20ubuntu1 - - - amd64 - 623 - deb - procps - Ubuntu - 1:3.3.3-2ubuntu3 - - - amd64 - 228 - deb - psmisc - Ubuntu - 22.19-1ubuntu1 - - - amd64 - 658 - deb - python - Ubuntu - 2.7.3-0ubuntu7 - - - amd64 - 716 - deb - python-apt - Ubuntu - 0.8.7ubuntu4 - - - all - 212 - deb - python-apt-common - Ubuntu - 0.8.7ubuntu4 - - - all - 578 - deb - python-chardet - Ubuntu - 2.0.1-2build1 - - - all - 272 - deb - python-debian - Ubuntu - 0.1.21+nmu2ubuntu1 - - - amd64 - 78 - deb - python-gdbm - Ubuntu - 2.7.3-1ubuntu2 - - - all - 113 - deb - python-gnupginterface - Ubuntu - 0.3.2-9.1ubuntu3 - - - amd64 - 76 - deb - python-magic - Ubuntu - 5.11-2 - - - amd64 - 160 - deb - python-minimal - Ubuntu - 2.7.3-0ubuntu7 - - - amd64 - 145 - deb - python-newt - Ubuntu - 0.52.11-2ubuntu11 - - - amd64 - 434 - deb - python-openssl - Ubuntu - 0.13-2ubuntu1 - - - amd64 - 80 - deb - python-pam - Ubuntu - 0.4.2-13ubuntu2 - - - all - 178 - deb - python-pkg-resources - Ubuntu - 0.6.28-1ubuntu2 - - - all - 374 - deb - python-serial - Ubuntu - 2.5-3 - - - all - 53 - deb - python-six - Ubuntu - 1.1.0-2 - - - amd64 - 127 - deb - python-twisted-bin - Ubuntu - 12.2.0-1 - - - all - 5815 - deb - python-twisted-core - Ubuntu - 12.2.0-1 - - - amd64 - 1317 - deb - python-xapian - Ubuntu - 1.2.12-2 - - - amd64 - 563 - deb - python-zope.interface - Ubuntu - 3.6.1-3 - - - amd64 - 8853 - deb - python2.7 - Ubuntu - 2.7.3-5ubuntu4 - - - amd64 - 5176 - deb - python2.7-minimal - Ubuntu - 2.7.3-5ubuntu4 - - - all - 214 - deb - python3 - Ubuntu - 3.2.3-5ubuntu1 - - - all - 480 - deb - python3-apport - Ubuntu - 2.6.1-0ubuntu6 - - - amd64 - 659 - deb - python3-apt - Ubuntu - 0.8.7ubuntu4 - - - amd64 - 390 - deb - python3-dbus - Ubuntu - 1.1.1-1 - - - all - 652 - deb - python3-distupgrade - Ubuntu - 1:0.190.4 - - - amd64 - 97 - deb - python3-gdbm - Ubuntu - 3.3.0-1 - - - amd64 - 859 - deb - python3-gi - Ubuntu - 3.4.0-1 - - - all - 77 - deb - python3-minimal - Ubuntu - 3.2.3-5ubuntu1 - - - all - 162 - deb - python3-problem-inventory - Ubuntu - 2.6.1-0ubuntu6 - - - all - 221 - deb - python3-update-manager - Ubuntu - 1:0.174.3 - - - amd64 - 8582 - deb - python3.2 - Ubuntu - 3.2.3-6ubuntu3.1 - - - amd64 - 5562 - deb - python3.2-minimal - Ubuntu - 3.2.3-6ubuntu3.1 - - - all - 107 - deb - readline-common - Ubuntu - 6.2-9 - - - all - 238 - deb - resolvconf - Ubuntu - 1.67ubuntu2 - - - amd64 - 638 - deb - rsync - Ubuntu - 3.0.9-3ubuntu1 - - - amd64 - 1207 - deb - rsyslog - Ubuntu - 5.8.6-1ubuntu9 - - - amd64 - 96956 - deb - rudder-agent - Ubuntu - 4.1.20-quantal0 - - - amd64 - 896 - deb - screen - Ubuntu - 4.0.3-14ubuntu9 - - - amd64 - 288 - deb - sed - Ubuntu - 4.2.1-10ubuntu1 - - - all - 110 - deb - sensible-utils - Ubuntu - 0.0.7ubuntu1 - - - all - 111 - deb - sgml-base - Ubuntu - 1.26+nmu3ubuntu1 - - - all - 53 - deb - ssh-import-id - Ubuntu - 2.12-0ubuntu1 - - - amd64 - 374 - deb - strace - Ubuntu - 4.5.20-2.3ubuntu2 - - - amd64 - 1212 - deb - sudo - Ubuntu - 1.8.5p2-1ubuntu1 - - - all - 232 - deb - sysv-rc - Ubuntu - 2.88dsf-13.10ubuntu13 - - - amd64 - 259 - deb - sysvinit-utils - Ubuntu - 2.88dsf-13.10ubuntu13 - - - amd64 - 720 - deb - tar - Ubuntu - 1.26-4ubuntu1 - - - all - 240 - deb - tasksel - Ubuntu - 2.88ubuntu12 - - - all - 136 - deb - tasksel-data - Ubuntu - 2.88ubuntu12 - - - amd64 - 111 - deb - tcpd - Ubuntu - 7.6.q-23 - - - amd64 - 1044 - deb - tcpdump - Ubuntu - 4.3.0-1ubuntu1 - - - amd64 - 163 - deb - telnet - Ubuntu - 0.17-36build2 - - - amd64 - 119 - deb - time - Ubuntu - 1.7-24 - - - amd64 - 516 - deb - tmux - Ubuntu - 1.6-2 - - - all - 1707 - deb - tzdata - Ubuntu - 2012e-0ubuntu2 - - - all - 46 - deb - ubuntu-keyring - Ubuntu - 2012.05.19 - - - all - 316 - deb - ubuntu-release-upgrader-core - Ubuntu - 1:0.190.4 - - - amd64 - 58 - deb - ubuntu-standard - Ubuntu - 1.287 - - - all - 230 - deb - ucf - Ubuntu - 3.0025+nmu3 - - - amd64 - 996 - deb - udev - Ubuntu - 175-0ubuntu13 - - - all - 714 - deb - ufw - Ubuntu - 0.33-0ubuntu2 - - - amd64 - 385 - deb - unzip - Ubuntu - 6.0-7ubuntu1 - - - all - 156 - deb - update-manager-core - Ubuntu - 1:0.174.3 - - - all - 1971 - deb - update-notifier-common - Ubuntu - 0.126 - - - amd64 - 1020 - deb - upstart - Ubuntu - 1.5-0ubuntu9 - - - amd64 - 120 - deb - ureadahead - Ubuntu - 0.100.0-12build1 - - - amd64 - 701 - deb - usbutils - Ubuntu - 1:005-3 - - - amd64 - 1584 - deb - util-linux - Ubuntu - 2.20.1-5.1ubuntu2 - - - amd64 - 137 - deb - uuid-runtime - Ubuntu - 2.20.1-5.1ubuntu2 - - - amd64 - 2016 - deb - vim - Ubuntu - 2:7.3.547-4ubuntu1.1 - - - amd64 - 296 - deb - vim-common - Ubuntu - 2:7.3.547-4ubuntu1.1 - - - all - 22376 - deb - vim-runtime - Ubuntu - 2:7.3.547-4ubuntu1.1 - - - amd64 - 830 - deb - vim-tiny - Ubuntu - 2:7.3.547-4ubuntu1.1 - - - amd64 - 2264 - deb - w3m - Ubuntu - 0.5.3-8 - - - amd64 - 224 - deb - wdiff - Ubuntu - 1.1.2-1 - - - amd64 - 596 - deb - wget - Ubuntu - 1.13.4-3ubuntu1 - - - amd64 - 91 - deb - whiptail - Ubuntu - 0.52.11-2ubuntu11 - - - amd64 - 109 - deb - whoopsie - Ubuntu - 0.2.7 - - - all - 52 - deb - wireless-regdb - Ubuntu - 2011.04.28-1ubuntu3 - - - amd64 - 328 - deb - wireless-tools - Ubuntu - 30~pre9-8ubuntu1 - - - amd64 - 1430 - deb - wpasupplicant - Ubuntu - 1.0-2ubuntu5 - - - amd64 - 86 - deb - xauth - Ubuntu - 1:1.0.7-1 - - - all - 3017 - deb - xkb-data - Ubuntu - 2.5-1ubuntu7 - - - all - 187 - deb - xml-core - Ubuntu - 0.13+nmu1 - - - amd64 - 384 - deb - xz-utils - Ubuntu - 5.1.1alpha+20120614-1 - - - amd64 - 162 - deb - zlib1g - Ubuntu - 1:1.2.7.dfsg-13 - - - Virtual - 4198 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /opt/rudder/bin/perl - v5.22.0 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - ubuntu-12-10-64-2017-02-02-16-03-02 -d2b1d400-be09-47d0-a851-5f50bcf2d09e -root - -Community - -56AF0438-CA4F-072E-5545-6D2527DBA836 ------BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEAtwTJu/AGJcj3+DMwFkvAdC9r9tyBtEKxUQ1Glm/KHj5HqTFp214L -KeL1praEmyAfKLIrvqrPMko+cX0HgGqV111P+5hRz5VSaqmollfGHkc38T44cnP5 -k/gnoSvyubfnxCy2ZoWrYddmtK8zZSMN/dyEP3mzT+xOmc6LaEPKWjx8gg+9WFiO -f86GoTBWbSYh8wZr1w3FMH7ZFszNUgqhufyp5OC5Z87drve7IZAXBagdnJt3a+h7 -biFKdejmRIxAXBuZCcZVIBs1WMyBnfQDBb26yTa5+9kZwNBpYvOjGNyqb4t+SfKP -HKhmnSBOE9XkSrWZWB0Jrc9mjAvxAgTjUQIBIw== ------END RSA PUBLIC KEY----- -root - - - GenuineIntel - 6 - 2 - QEMU Virtual CPU version 0.12 - 3 - 1995.191 - - - - - - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs.sign deleted file mode 100644 index 8ee8173fb27..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.1/ubuntu-12-10-64-d2b1d400-be09-47d0-a851-5f50bcf2d09e.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=2edddd4d9e9c77fd92cd995b918f75386a66a60b7855398789ff54d2e30a02fafd9a4f94c495d0ce90875879e2512ed77d6b17eb18e6f0cf6ac6305043effe7050b17ea2aa5bd8f40e597f6f4f40084b5528bbd4edad26f500841256d7ab809d712013cee5a4b426359c4698aa6060fcd85c6e5bf35f61dfba2f545ab60a4084e04f53e1ba63732cb21caa10d5b0d5201b76145a39e4304ac2e0d2ccf29c4241bde3d23de44f3d9b11a4244963ebba5ff624993560e47ab6ecee1dfadb7ef93eaf0c77e368578c1436805a0cc354dc7c75611873099b256117e5755479f60354bed8ef9f884c24849e61657121387047d5ca61d3df03eee9b61309fc529cd646 -hostname=ubuntu-12-10-64 -keydate=2014-01-12 14:36:55.323588040 +0100 -keyid=0204E351 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-0c6a3e88-8a4d-4a00-bcaa-1668a323bdae.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-0c6a3e88-8a4d-4a00-bcaa-1668a323bdae.ocs deleted file mode 100644 index e42f1ffa58e..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-0c6a3e88-8a4d-4a00-bcaa-1668a323bdae.ocs +++ /dev/null @@ -1,644 +0,0 @@ - - - - - 2018-10-05 12:40:23 - - - 04/01/2014 - SeaBIOS - 1.10.2-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 82371SB PIIX3 IDE [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7010 - Contrôleur IDE PCI Bus Master Intel(R) 82371SB - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2934 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2934 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2935 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2935 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2936 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2936 - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 293a - Contrôleur hôte étendu Intel(R) gamme ICH9 USB2 - 293A - 8086 - - - Virtio console - Red Hat, Inc - Virtio console - 1af4:0003 - 1003 - Contrôleur PCI de communications simplifiées - 1af4 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7000 - Pont Intel 82371SB PCI vers ISA - 8086 - - - QXL paravirtual graphic card - Red Hat, Inc. - QEMU Virtual Machine - 1af4:1100 - 0100 - Carte graphique VGA standard - 1b36 - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 1237 - Pont Intel 82441FX Processeur Pentium(R) Pro vers PCI - 8086 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2668 - Contrôleur audio haute définition - 8086 - - - RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - Realtek Semiconductor Co., Ltd. - QEMU Virtual Machine - 1af4:1100 - 8139 - Realtek RTL8139C+ carte réseau Fast Ethernet - 10ec - - - Virtio memory balloon - Red Hat, Inc - Virtio memory balloon - 1af4:0005 - 1002 - Périphérique PCI - 1af4 - - - 1 - Intel64 Family 6 Model 61 Stepping 2 - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2000 - 2 - 1 - - - Disque fixe local - NTFS - 9510 - - C: - 18D50161 - 1 - 20377 - Local Disk - - - - Disque CD-ROM - UDF - 0 - - D: - EAD23BCC - - 3049 - Compact Disc - GRMSXFRER_FR_DVD - - - NTFS - 71 - - Réservé au système - 34D39252 - - 99 - Local Disk - Réservé au système - - - ComSpec - %SystemRoot%\system32\cmd.exe - - - FP_NO_HOST_CHECK - NO - - - OS - Windows_NT - - - Path - C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rudder\bin - - - PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC - - - PROCESSOR_ARCHITECTURE - AMD64 - - - TEMP - %SystemRoot%\TEMP - - - TMP - %SystemRoot%\TEMP - - - USERNAME - SYSTEM - - - windir - %SystemRoot% - - - PSModulePath - C:\Users\Administrateur\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Rudder\policy;C:\Program Files\Rudder\share\initial-policy - - - NUMBER_OF_PROCESSORS - 1 - - - PROCESSOR_LEVEL - 6 - - - PROCESSOR_IDENTIFIER - Intel64 Family 6 Model 61 Stepping 2, GenuineIntel - - - PROCESSOR_REVISION - 3d02 - - - windows_tracing_logfile - C:\BVTBin\Tests\installpackage\csilogfile.log - - - windows_tracing_flags - 3 - - - MSWin32-x64-multi-thread - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 13 - 192.168.210.8 - Administrateur - 2047 - WIN-GNGDHPVHVTN - Service Pack 1 - Microsoft Windows Server 2008 R2 Standard - 6.1.7601 - 1 - 2000 - Intel Core Processor (Broadwell) - Administrateur - C81E971B-A4D8-4718-AAB7-AD81D91EC1C3 - QEMU - 1036 - Utilisateur Windows - 00477-179-0000007-84578 - HMG6P-C7VGP-47GJ9-TWBD4-2YYCD - WORKGROUP - - - Étendu (101 ou 102 touches) - Clavier standard PS/2 - 0000040C - Étendu (101 ou 102 touches) - - - Périphérique d’entrée USB - Périphérique d’entrée USB - USB - (Périphériques système standard) - Périphérique d’entrée USB - 2 - - - Souris compatible PS/2 - Souris compatible PS/2 - PS/2 - Microsoft - Souris compatible PS/2 - 2 - - - S-1-5-32-574 - Accès DCOM service de certificats - - - S-1-5-32-544 - Administrateurs - - - S-1-5-32-552 - Duplicateurs - - - S-1-5-32-568 - IIS_IUSRS - - - S-1-5-32-546 - Invités - - - S-1-5-32-573 - Lecteurs des journaux d’événements - - - S-1-5-32-569 - Opérateurs de chiffrement - - - S-1-5-32-556 - Opérateurs de configuration réseau - - - S-1-5-32-551 - Opérateurs de sauvegarde - - - S-1-5-32-550 - Opérateurs d’impression - - - S-1-5-32-545 - Utilisateurs - - - S-1-5-32-547 - Utilisateurs avec pouvoir - - - S-1-5-32-558 - Utilisateurs de l’Analyseur de performances - - - S-1-5-32-555 - Utilisateurs du Bureau à distance - - - S-1-5-32-559 - Utilisateurs du journal de performances - - - S-1-5-32-562 - Utilisateurs du modèle COM distribué - - - S-1-5-21-1202468010-2263478365-3281567188-1000 - WinRMRemoteWMIUsers__ - - - S-1-5-21-1202468010-2263478365-3281567188-500 - Administrateur - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - Realtek RTL8139C+ carte réseau Fast Ethernet - 192.168.210.8 - 192.168.210.1 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - Realtek RTL8139C+ carte réseau Fast Ethernet - fe80::e187:4859:86f6:2f53 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - 64-bit - 2018-10-05 10:23:49 - demo.normation.com - WIN-GNGDHPVHVTN.demo.normation.com - Microsoft Windows Server 2008 R2 Standard - 2018-10-05 09:22:56 - MSWin32 - 6.1.7601 - Windows - Service Pack 1 - - Romance Standard Time - +0200 - - - - Port de communication (COM1) - Port de communication - Port de communication (COM1) - Serial - - - Microsoft XPS Document Writer - Microsoft XPS Document Writer - 0 - XPSPort: - winprint - 600x600 - 0 - Idle - - - - -----BEGIN CERTIFICATE----- -MIIFZzCCA0+gAwIBAgIJAIl3vMXPFCsmMA0GCSqGSIb3DQEBCwUAMFQxGDAWBgNV -BAMMD1dJTi1HTkdESFBWSFZUTjE4MDYGCgmSJomT8ixkAQEMKDBjNmEzZTg4LThh -NGQtNGEwMC1iY2FhLTE2NjhhMzIzYmRhZSIgZHUwHhcNMTgxMDA1MTAzNTM1WhcN -MjgxMDAyMTAzNTM1WjBUMRgwFgYDVQQDDA9XSU4tR05HREhQVkhWVE4xODA2BgoJ -kiaJk/IsZAEBDCgwYzZhM2U4OC04YTRkLTRhMDAtYmNhYS0xNjY4YTMyM2JkYWUi -IGR1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmX8Pui/w9IbZp+54 -RQPBGuhMqufiZtDEyUjwFiQmc4EodpeL5NdqqY/QgIV07MJcW/bZKrlaNSb2/pHO -wPhURKLfMYTAB3fx5qMal0eO9vXQDxinE6IMYThlR0ajX6JMRyEbFSTLt7BZBwfQ -nwDHdYA8hgqj6xInypTg6tIktW7IufVt7oNWOySasnQVRTdvZh/i3f1N+qSxvzR4 -vt8xWQs1OguRHRRblOasAcX+Lx4PScpjmNJQxksm8rEgylvJZed5l2ycsbuMG8fj -TOsJXEs0+xzK9axg99EbV/h4TZRr9UTqQ+cdlaX7IcB8cuZ5DgLP1BhqVp5G8udc -HM1Dw80r8QnIuO5bnES0xHd/OJfctun1cU4ctIhJZN1FiQnJghibSxKm+9Qvv9S4 -BmrRFahd+ITnpnpehTeJjG+UI3yjt4ZcrVeiadTMyWgCSp6OLLwYwc+iaF4bevbf -kMgIVT9oSFemTNoSGVuRv3xzRvCIidbB3VYwt8wuBe3WRKKjHy+NCIz2lE8CiuVi -v1SQQxMLhGLwgBLKrlxUErYPEskFI6i5sOkcg9YIDVltHX1eS6a+mwfEBe/R3XcP -2YO4p+aJYxBZ9FDJ9zcdqg7eXJODrzPXLOWQFuo08ZRGtXIwqZScu6y2HjrxezVh -zM+RSAshkP1duAQR1srwWscwPjkCAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNV -HQ8EBAMCArQwHQYDVR0OBBYEFFuhfoxH1bt+Uu6arxKaOQTpmJEIMA0GCSqGSIb3 -DQEBCwUAA4ICAQCRNhHDtUyN4jjnWUaOlRe092FDlxAotUGESjC1zlbMN019uL+X -wlwsxW9XEoBzNt3d64AZvooLCuZcASJoRx/ofkoUGqPnEtPU8dT35Ec2sBMZsPDI -ogn43NWtlCrIhetd6kV6jL0rQp8KbWmPOjS9QEB17Y8y4ie0bai5DhUExmO/zLod -iuxH4QWX9EygVlhUblWOn1RrulJxBVoscwiBQsXuyVvzqqF34vOGfPOmsbjd3KiG -vU5WlRgXlc4bglt2g4fDjbIq9SUTM5dMC8dhBd00GCSFfg/BE46X1jUx9u9kpDnn -OOpcq1RYlHcGvEejlIJ96flgOvLmSrJO33+DMrMaovopZ33kIdg+9wMThVLw1a3l -rYRrPmje5xGrclr/B9g743be2w8atr0zHzgpxL0ZJecpEwQhFAdDG9oBMCW3w97u -v0/m1nWKW3kqm6USCNXQeGVcGl8r//jYlnvj1f6hbkYv350f+GggaQXCaaYe/Ga9 -mM0gzcGLjKtrddaLB1eiONcaut4BcnCC3N4CKAgTFBFxr+L+wJG3z8vFU2ta/HAP -jflOAXRxprgCLcSTKwsHovARkYPq/NWIVD7IzgLaS7HDnEoivaqQGM7of0cmO9EN -tRDnZUh3O43BOzR3n+sOdvMVYLa59eW5ONjdhb/u522zRIsD17EF3wOhuA== ------END CERTIFICATE----- - - dsc - win-gngdhpvhvtn\administrateur - 192.168.210.2 - root - - - WIN-GNGDHPVHVTN - - 0c6a3e88-8a4d-4a00-bcaa-1668a323bdae - - - x86_64 - registry - FusionInventory-Agent - https://github.com/fusioninventory/fusioninventory-agent - 05/10/2018 - FusionInventory Agent 2.3.19 (x64 edition) - FusionInventory Team - C:\Program Files\FusionInventory-Agent\Uninstall.exe - 2.3.19 - - - x86_64 - Mozilla Maintenance Service - registry - MozillaMaintenanceService - 05/10/2018 - Mozilla Maintenance Service - Mozilla - "C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" - 62.0.3 - - - x86_64 - registry - {7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - 05/10/2018 - Microsoft .NET Framework 4.5.1 - Microsoft Corporation - MsiExec.exe /X{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - http://go.microsoft.com/fwlink/?LinkId=286133 - 4.5.50938 - - - x86_64 - registry - 21/11/2010 - Internet Explorer (64bit) - Microsoft Corporation - 8.0.7601.17514 - - - i586 - Mozilla Firefox 62.0.3 (x86 fr) - registry - Mozilla Firefox 62.0.3 (x86 fr) - https://support.mozilla.org - 05/10/2018 - Mozilla Firefox 62.0.3 (x86 fr) - Mozilla - "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" - https://www.mozilla.org - 62.0.3 - - - i586 - registry - Rudder - 05/10/2018 - Rudder agent (DSC) - Normation - "C:\Program Files\Rudder\Uninstall.exe" - 4.3-1.11 - - - i586 - registry - {4594566F-2BCE-49AC-AC27-8847F164CB94} - 05/10/2018 - NXLog-CE - NXLog Ltd - MsiExec.exe /X{4594566F-2BCE-49AC-AC27-8847F164CB94} - 2.10.2102 - - - i586 - registry - 21/11/2010 - Internet Explorer - Microsoft Corporation - 8.0.7601.17514 - - - x86_64 - Update - WMI - 05/10/2018 - KB2819745 - Update - - - x86_64 - Update - WMI - 05/10/2018 - KB2809215 - Update - - - x86_64 - Hotfix - WMI - 05/10/2018 - KB2872035 - Hotfix - - - x86_64 - Update - WMI - 21/11/2010 - KB976902 - Update - - - Périphérique High Definition Audio - Périphérique High Definition Audio - Microsoft - Périphérique High Definition Audio - - - Lecteur de disque - 21474 - 2.5+ - IDE - (Lecteurs de disque standard) - QEMU HARDDISK - \\.\PHYSICALDRIVE0 - 0 - 0 - 0 - QM00001 - QM00001 - Fixed hard disk media - - - Lecteur de CD-ROM - 3049 - (Lecteurs de CD-ROM standard) - QEMU QEMU DVD-ROM ATA Device - QEMU QEMU DVD-ROM ATA Device - 0 - 0 - 1 - UNKNOWN - - - Périphérique d’entrée USB - Adomax Technology Co., Ltd - Périphérique d’entrée USB - 0001 - 42 - 0627 - - - WIN-GNGDHPVHVTN - Administrateur - - FusionInventory-Agent_v2.3.19 - - Provided by Teclib - Installer built with Appveyor on Sat Feb 18 09:34:43 UTC 2017 - FusionInventory - C:\Program Files\FusionInventory-Agent\perl\bin\perl.exe - v5.22.2 - fusioninventory-agent - 2.3.19 - - - Carte graphique VGA standard - - - WIN-GNGDHPVHVTN-2018-10-05-12-35-38 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-0c6a3e88-8a4d-4a00-bcaa-1668a323bdae.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-0c6a3e88-8a4d-4a00-bcaa-1668a323bdae.ocs.sign deleted file mode 100644 index 083b922275f..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-0c6a3e88-8a4d-4a00-bcaa-1668a323bdae.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=51c30f62e0625891e3fb8f5a58fdf94f3e283a57c8d5a5a1cbeb9458cfb4afa0213f688bd11e5f641dc9a3bd2ceee25e318dcab99328427a38673e107f77bb4998a78553f6019cb0715fed7655495d80482e25ad0ee118336d6d48d59ec5d004c9768cb52fede7d4a37a97567f8ca81edb10b80b6cac7afe66c85a67c6827009b664e67bd8b8f2053085e4b2a2ced08851699633b390de30de76c23140831bb3aee5c3b36bf74c58db5c40d12fe7eddb07bd9a6f195a2f123eb0612b369819be1b5642ed00c40979837c042d8b0ce49b56cd2b8f0270a7acacafb789861d1c967ef35a824b46ed17e2970282eb592dde4b393db90fca63127c47a6b90216a017b5be5e32de90540143ec6d23df4f20fed870da0ba4c3be84fbfa68d8dee2a75a3ab5f0c3b55578173a101f79df7e83f18b9425d49cfee7b12754bddd709f0b1664b56367adc824cf63e0bc4e4e7400f0b148668d4e36777139b228e6b7ec4199a30d3a42b8d1a652cc99005bac3e7f814fccf51b15d63fdec6df94507b6e7c0ec6080e6c73f7fe4ff06c8d5aabd801058555423b619757a638292a78e3bbc765094ee6d9e4fc55e9aca5c5bec3e82956e2b82adb21c6044a33b83870f4428baee50c063b4bd94c8259b2cf5fad7bfd6903d0730d35507136ab7c55733920752113d0cc759a55e36b196a291aa30712b8cfd69eabe89b5b46fea0c03ab4b75f66 -hostname=WIN-GNGDHPVHVTN -keydate=2018-10-05 12:35:35.1093750 +02:00 -keyid=C7303E39 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-71aaa42d-9a1c-4403-93c2-7c5d05878ddd.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-71aaa42d-9a1c-4403-93c2-7c5d05878ddd.ocs deleted file mode 100644 index d6788419573..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-71aaa42d-9a1c-4403-93c2-7c5d05878ddd.ocs +++ /dev/null @@ -1,671 +0,0 @@ - - - - - 2018-10-08 15:00:24 - - - 04/01/2014 - SeaBIOS - 1.10.2-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 82371SB PIIX3 IDE [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7010 - Contrôleur IDE PCI Bus Master Intel(R) 82371SB - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2934 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2934 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2935 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2935 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2936 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2936 - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 293a - Contrôleur hôte étendu Intel(R) gamme ICH9 USB2 - 293A - 8086 - - - Virtio console - Red Hat, Inc - Virtio console - 1af4:0003 - 1003 - Contrôleur PCI de communications simplifiées - 1af4 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7000 - Pont Intel 82371SB PCI vers ISA - 8086 - - - QXL paravirtual graphic card - Red Hat, Inc. - QEMU Virtual Machine - 1af4:1100 - 0100 - Carte graphique VGA standard - 1b36 - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 1237 - Pont Intel 82441FX Processeur Pentium(R) Pro vers PCI - 8086 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2668 - Contrôleur audio haute définition - 8086 - - - RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - Realtek Semiconductor Co., Ltd. - QEMU Virtual Machine - 1af4:1100 - 8139 - Realtek RTL8139C+ carte réseau Fast Ethernet - 10ec - - - Virtio memory balloon - Red Hat, Inc - Virtio memory balloon - 1af4:0005 - 1002 - Périphérique PCI - 1af4 - - - 1 - Intel64 Family 6 Model 61 Stepping 2 - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2000 - 2 - 1 - - - Disque fixe local - NTFS - 9426 - - C: - 18D50161 - 1 - 20377 - Local Disk - - - - Disque CD-ROM - UDF - 0 - - D: - EAD23BCC - - 3049 - Compact Disc - GRMSXFRER_FR_DVD - - - NTFS - 71 - - Réservé au système - 34D39252 - - 99 - Local Disk - Réservé au système - - - ComSpec - %SystemRoot%\system32\cmd.exe - - - FP_NO_HOST_CHECK - NO - - - OS - Windows_NT - - - Path - C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rudder\bin - - - PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC - - - PROCESSOR_ARCHITECTURE - AMD64 - - - TEMP - %SystemRoot%\TEMP - - - TMP - %SystemRoot%\TEMP - - - USERNAME - SYSTEM - - - windir - %SystemRoot% - - - PSModulePath - C:\Users\Administrateur\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Rudder\policy;C:\Program Files\Rudder\share\initial-policy - - - NUMBER_OF_PROCESSORS - 1 - - - PROCESSOR_LEVEL - 6 - - - PROCESSOR_IDENTIFIER - Intel64 Family 6 Model 61 Stepping 2, GenuineIntel - - - PROCESSOR_REVISION - 3d02 - - - windows_tracing_logfile - C:\BVTBin\Tests\installpackage\csilogfile.log - - - windows_tracing_flags - 3 - - - MSWin32-x64-multi-thread - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 14 - 192.168.210.8 - Administrateur - 2047 - WIN-GNGDHPVHVTN - Service Pack 1 - Microsoft Windows Server 2008 R2 Standard - 6.1.7601 - 1 - 2000 - Intel Core Processor (Broadwell) - Administrateur - C81E971B-A4D8-4718-AAB7-AD81D91EC1C3 - QEMU - 1036 - Utilisateur Windows - 00477-179-0000007-84578 - HMG6P-C7VGP-47GJ9-TWBD4-2YYCD - WORKGROUP - - - Étendu (101 ou 102 touches) - Clavier standard PS/2 - 0000040C - Étendu (101 ou 102 touches) - - - Périphérique d’entrée USB - Périphérique d’entrée USB - USB - (Périphériques système standard) - Périphérique d’entrée USB - 2 - - - Souris compatible PS/2 - Souris compatible PS/2 - PS/2 - Microsoft - Souris compatible PS/2 - 2 - - - S-1-5-32-574 - Accès DCOM service de certificats - - - S-1-5-32-544 - Administrateurs - - - S-1-5-32-552 - Duplicateurs - - - S-1-5-32-568 - IIS_IUSRS - - - S-1-5-32-546 - Invités - - - S-1-5-32-573 - Lecteurs des journaux d’événements - - - S-1-5-32-569 - Opérateurs de chiffrement - - - S-1-5-32-556 - Opérateurs de configuration réseau - - - S-1-5-32-551 - Opérateurs de sauvegarde - - - S-1-5-32-550 - Opérateurs d’impression - - - S-1-5-32-545 - Utilisateurs - - - S-1-5-32-547 - Utilisateurs avec pouvoir - - - S-1-5-32-558 - Utilisateurs de l’Analyseur de performances - - - S-1-5-32-555 - Utilisateurs du Bureau à distance - - - S-1-5-32-559 - Utilisateurs du journal de performances - - - S-1-5-32-562 - Utilisateurs du modèle COM distribué - - - S-1-5-21-1202468010-2263478365-3281567188-1000 - WinRMRemoteWMIUsers__ - - - S-1-5-21-1202468010-2263478365-3281567188-500 - Administrateur - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - Realtek RTL8139C+ carte réseau Fast Ethernet - 192.168.210.8 - 192.168.210.1 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - Realtek RTL8139C+ carte réseau Fast Ethernet - fe80::e187:4859:86f6:2f53 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - 64-bit - 2018-10-05 12:23:49 - demo.normation.com - WIN-GNGDHPVHVTN.demo.normation.com - Microsoft Windows Server 2008 R2 Standard - 2018-10-05 09:22:56 - MSWin32 - 6.1.7601 - Windows - Service Pack 1 - - Romance Standard Time - +0200 - - - - Port de communication (COM1) - Port de communication - Port de communication (COM1) - Serial - - - Microsoft XPS Document Writer - Microsoft XPS Document Writer - 0 - XPSPort: - winprint - 600x600 - 0 - Idle - - - - -----BEGIN CERTIFICATE----- -MIIFZzCCA0+gAwIBAgIJAJs4valnKe1/MA0GCSqGSIb3DQEBCwUAMFQxGDAWBgNV -BAMMD1dJTi1HTkdESFBWSFZUTjE4MDYGCgmSJomT8ixkAQEMKDcxYWFhNDJkLTlh -MWMtNDQwMy05M2MyLTdjNWQwNTg3OGRkZCIgZHUwHhcNMTgxMDA4MTMwMDIwWhcN -MjgxMDA1MTMwMDIwWjBUMRgwFgYDVQQDDA9XSU4tR05HREhQVkhWVE4xODA2BgoJ -kiaJk/IsZAEBDCg3MWFhYTQyZC05YTFjLTQ0MDMtOTNjMi03YzVkMDU4NzhkZGQi -IGR1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0quV9mf5fs26e5bz -5cweUDYdjS+UpQKl7sl4cVbgVEm0kpZTHY6pnW9HSzAU1nY0GPR5bgCDHQIcwN0a -mz9lx64HwB0isndVAFf9HuX+Fi1kjpsnapz4ZMSkKA/vyplShNsvwF7FZGcWwRvD -TYUXOR7zlcRc1dq9qC/ZsVhfpH+Y4UAqRstyx9erFc6/lb19s1vo65CriGiyK7yz -2WDpsftr9gYMnYEYf0xSTFyctSCA+I3RqsxN3SN2b0fFrVqPJ9B43uOBiqVRimJT -kjsjUHm7jEHSAhgYYqpO5NwMly6+csXn7Xyg7LrqNy7jqklHenJEXTpzsBI0Bu+I -8s0w94jcajoDl3vPbzdPQwqO15+Tc81hS8L6LMv8S1fqXOzxIdvKl1Ppp4cDyojY -w4/4NiOxGhT+JCxrZqsGSIZJVlltRnpu/MVP6803IK2Th3NZrRI+eO/KbKljnI9+ -wBKGrtPoiHZmVXEu1Q+rYoJyYhZjaecoJcQiIdyiQyrFmYIyK9a4kxqwvGQpXlbG -n3IpPVGOoXBpYIZLNm3f9RB28qiJG5cn/cqWglJFbKw+KJtNjxbDRhn0yKnOV+17 -tkZaCoy2Vaodyyo32YJH7PP+Yw7CYTKReczoj+mfT/L/N75prgtgJLwN1JFkukmM -sfVGyg45M88LSvsI0todS2kf11MCAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNV -HQ8EBAMCArQwHQYDVR0OBBYEFFsVG/VotQ9W0O3LPNUNEbB5J23eMA0GCSqGSIb3 -DQEBCwUAA4ICAQAOiR/QtF9caWfi/VjK2y0eH/ywbYFHi1b4eLzLISDUqH/OQUA3 -Ti4ftRzU85/o+oAiOVa+9Q/QPbd2K32s0TC9Uq1wJgzjFkBTNX0lNvGir7Ach821 -9cYhmhe1p+pnW3yPuHGwkQMi9/jec6WfipmpjK8ZNAxApbCk99BTUM3T4WidptVq -D7lDbSp4yDWDDGTUd/3in8fNjHhm70130jRlmcMF4uQASxLVw6YZqAtAX2zw+yk9 -rTfqIa6ZJQ7V79VZwg8RYAv1HjhSingvMBmnIimdQQFjc3kKwy3koy6HkfZoDCeT -bRL8jt4VG6PkWAZwfUYIbLkIpRKSMXXehJIfTHl2zhlOztDIgTlJxMlQXmcCG+tg -fi0ijyhD+5E4OB/u9Q9r1DkCu09RTNLS1ZUleEHPCRQmZnl6jNhYTrtqE/IbCI18 -6cRukB1r6bqME4exW9VqLzEJb/+ftxwgJil8Rdo+PfMw01N7MwL2ZhXqg4URbKD9 -LsjsDZ8mvkBsaDEJvpn5GAV0FiXabW592U9Xo3Ugr4CM/GTse8PVPC7AEJ63XGqE -Xj4/5wIJVQI8YSWPUslYTIkgntzTZa8P8MeW31xHakKcHkacNU5v+OUkepee/9U2 -U1HpzRFcRNCIwyNCyu3NMM5MLHqZPRVrMT9QhiEPkwHM3vvwNmmgBDaj0Q== ------END CERTIFICATE----- - - dsc - win-gngdhpvhvtn\administrateur - 192.168.210.2 - root - - - WIN-GNGDHPVHVTN - - 71aaa42d-9a1c-4403-93c2-7c5d05878ddd - - - x86_64 - registry - FusionInventory-Agent - https://github.com/fusioninventory/fusioninventory-agent - 08/10/2018 - FusionInventory Agent 2.3.19 (x64 edition) - FusionInventory Team - C:\Program Files\FusionInventory-Agent\Uninstall.exe - 2.3.19 - - - x86_64 - registry - HxD_is1 - http://mh-nexus.de/hxd/ - 08/10/2018 - HxD Hex Editor 2.1 - Maël Hörz - "C:\Program Files\HxD\unins000.exe" - http://mh-nexus.de/ - 2.1 - 2 - 1 - - - x86_64 - Mozilla Maintenance Service - registry - MozillaMaintenanceService - 05/10/2018 - Mozilla Maintenance Service - Mozilla - "C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" - 62.0.3 - - - x86_64 - registry - {7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - 05/10/2018 - Microsoft .NET Framework 4.5.1 - Microsoft Corporation - MsiExec.exe /X{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - http://go.microsoft.com/fwlink/?LinkId=286133 - 4.5.50938 - - - x86_64 - registry - 21/11/2010 - Internet Explorer (64bit) - Microsoft Corporation - 8.0.7601.17514 - - - i586 - Mozilla Firefox 62.0.3 (x86 fr) - registry - Mozilla Firefox 62.0.3 (x86 fr) - https://support.mozilla.org - 05/10/2018 - Mozilla Firefox 62.0.3 (x86 fr) - Mozilla - "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" - https://www.mozilla.org - 62.0.3 - - - i586 - registry - Notepad++ - 05/10/2018 - Notepad++ (32-bit x86) - Notepad++ Team - C:\Program Files (x86)\Notepad++\uninstall.exe - http://notepad-plus-plus.org/ - 7.5.7 - 7 - 57 - - - i586 - registry - Rudder - 08/10/2018 - Rudder agent (DSC) - Normation - "C:\Program Files\Rudder\Uninstall.exe" - 4.3-1.11 - - - i586 - registry - {4594566F-2BCE-49AC-AC27-8847F164CB94} - 08/10/2018 - NXLog-CE - NXLog Ltd - MsiExec.exe /X{4594566F-2BCE-49AC-AC27-8847F164CB94} - 2.10.2102 - - - i586 - registry - 21/11/2010 - Internet Explorer - Microsoft Corporation - 8.0.7601.17514 - - - x86_64 - Update - WMI - 05/10/2018 - KB2819745 - Update - - - x86_64 - Update - WMI - 05/10/2018 - KB2809215 - Update - - - x86_64 - Hotfix - WMI - 05/10/2018 - KB2872035 - Hotfix - - - x86_64 - Update - WMI - 21/11/2010 - KB976902 - Update - - - Périphérique High Definition Audio - Périphérique High Definition Audio - Microsoft - Périphérique High Definition Audio - - - Lecteur de disque - 21474 - 2.5+ - IDE - (Lecteurs de disque standard) - QEMU HARDDISK - \\.\PHYSICALDRIVE0 - 0 - 0 - 0 - QM00001 - QM00001 - Fixed hard disk media - - - Lecteur de CD-ROM - 3049 - (Lecteurs de CD-ROM standard) - QEMU QEMU DVD-ROM ATA Device - QEMU QEMU DVD-ROM ATA Device - 0 - 0 - 1 - UNKNOWN - - - Périphérique d’entrée USB - Adomax Technology Co., Ltd - Périphérique d’entrée USB - 0001 - 42 - 0627 - - - WIN-GNGDHPVHVTN - Administrateur - - FusionInventory-Agent_v2.3.19 - - Provided by Teclib - Installer built with Appveyor on Sat Feb 18 09:34:43 UTC 2017 - FusionInventory - C:\Program Files\FusionInventory-Agent\perl\bin\perl.exe - v5.22.2 - fusioninventory-agent - 2.3.19 - - - Carte graphique VGA standard - - - WIN-GNGDHPVHVTN-2018-10-08-15-00-22 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-71aaa42d-9a1c-4403-93c2-7c5d05878ddd.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-71aaa42d-9a1c-4403-93c2-7c5d05878ddd.ocs.sign deleted file mode 100644 index 7f01f977a06..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-71aaa42d-9a1c-4403-93c2-7c5d05878ddd.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=5850810f3d1d71ab279a2cb7d4b58ec4c35bbb1333ca853f3d16808b45348a121ff9d89aa528724f27ef91fd2b93446f41f698e2afff7b1b559f5ce91d623b59f3815e7b9a05eb2f52a3b656d6dde06ed500071d0b241c1834f008dcb45bf1cf69709792f53f7c2e71e93e8b2aee29a70b3c646521cffa407cc177da31a59cd76b06aec1cafd18e3e3922b90c36a7750163167377e8d7dfb3c96dab6be881843b112b3e65123078107a2cf029626978858b87edf2c1df55463df8de1b9c986e5007bdfc8cd21820932f697b610c69e7f66044d49d9e1a003886e1772bd43b19963b43b80f6c2fd1db6de57832115383d6a781413000d3e5a510a0f888cc9f28a7b203dd9dde32160520038ed9b9912cb52f91ef137aea18352b8b96e53d8865ea3dad47d8422a62a07dab4c6bb34647f72d907ad31c9c77c5234c0277389d73d1a9ae7b416ddf78caccd8f9a6da9e663182c6bbea8efed4ab841e02424a908d712a76818f5cbcb14ca5536ef729edd7b0d302f85eef49fe97a937133e412ec9e6b46bb1a5924a398e5a2e0ac3dd8614d0a62c4fd7eec2e805b74ef8de3c1a0db22b578287ab2c0db81edb3d38eaeb946bd20414e34cee69d68a913b5518dc2fb7925012334213f5b39a114db5f3d3e9308fdcbb4d8a56aa7e500a2b59dcd3972d43df1dae1377b21675faa901750923b4d031445d579c3b50d5168183311df00 -hostname=WIN-GNGDHPVHVTN -keydate=2018-10-08 15:00:19.9963984 +02:00 -keyid=691FD753 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-9fc47c3e-3d82-407a-a611-244d37c1c48d.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-9fc47c3e-3d82-407a-a611-244d37c1c48d.ocs deleted file mode 100644 index 1f27bef9477..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-9fc47c3e-3d82-407a-a611-244d37c1c48d.ocs +++ /dev/null @@ -1,657 +0,0 @@ - - - - - 2018-10-08 11:02:24 - - - 04/01/2014 - SeaBIOS - 1.10.2-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 82371SB PIIX3 IDE [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7010 - Contrôleur IDE PCI Bus Master Intel(R) 82371SB - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2934 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2934 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2935 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2935 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2936 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2936 - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 293a - Contrôleur hôte étendu Intel(R) gamme ICH9 USB2 - 293A - 8086 - - - Virtio console - Red Hat, Inc - Virtio console - 1af4:0003 - 1003 - Contrôleur PCI de communications simplifiées - 1af4 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7000 - Pont Intel 82371SB PCI vers ISA - 8086 - - - QXL paravirtual graphic card - Red Hat, Inc. - QEMU Virtual Machine - 1af4:1100 - 0100 - Carte graphique VGA standard - 1b36 - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 1237 - Pont Intel 82441FX Processeur Pentium(R) Pro vers PCI - 8086 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2668 - Contrôleur audio haute définition - 8086 - - - RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - Realtek Semiconductor Co., Ltd. - QEMU Virtual Machine - 1af4:1100 - 8139 - Realtek RTL8139C+ carte réseau Fast Ethernet - 10ec - - - Virtio memory balloon - Red Hat, Inc - Virtio memory balloon - 1af4:0005 - 1002 - Périphérique PCI - 1af4 - - - 1 - Intel64 Family 6 Model 61 Stepping 2 - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2000 - 2 - 1 - - - Disque fixe local - NTFS - 9453 - - C: - 18D50161 - 1 - 20377 - Local Disk - - - - Disque CD-ROM - UDF - 0 - - D: - EAD23BCC - - 3049 - Compact Disc - GRMSXFRER_FR_DVD - - - NTFS - 71 - - Réservé au système - 34D39252 - - 99 - Local Disk - Réservé au système - - - ComSpec - %SystemRoot%\system32\cmd.exe - - - FP_NO_HOST_CHECK - NO - - - OS - Windows_NT - - - Path - C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rudder\bin - - - PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC - - - PROCESSOR_ARCHITECTURE - AMD64 - - - TEMP - %SystemRoot%\TEMP - - - TMP - %SystemRoot%\TEMP - - - USERNAME - SYSTEM - - - windir - %SystemRoot% - - - PSModulePath - C:\Users\Administrateur\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Rudder\policy;C:\Program Files\Rudder\share\initial-policy - - - NUMBER_OF_PROCESSORS - 1 - - - PROCESSOR_LEVEL - 6 - - - PROCESSOR_IDENTIFIER - Intel64 Family 6 Model 61 Stepping 2, GenuineIntel - - - PROCESSOR_REVISION - 3d02 - - - windows_tracing_logfile - C:\BVTBin\Tests\installpackage\csilogfile.log - - - windows_tracing_flags - 3 - - - MSWin32-x64-multi-thread - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 14 - 192.168.210.8 - Administrateur - 2047 - WIN-GNGDHPVHVTN - Service Pack 1 - Microsoft Windows Server 2008 R2 Standard - 6.1.7601 - 1 - 2000 - Intel Core Processor (Broadwell) - Administrateur - C81E971B-A4D8-4718-AAB7-AD81D91EC1C3 - QEMU - 1036 - Utilisateur Windows - 00477-179-0000007-84578 - HMG6P-C7VGP-47GJ9-TWBD4-2YYCD - WORKGROUP - - - Étendu (101 ou 102 touches) - Clavier standard PS/2 - 0000040C - Étendu (101 ou 102 touches) - - - Périphérique d’entrée USB - Périphérique d’entrée USB - USB - (Périphériques système standard) - Périphérique d’entrée USB - 2 - - - Souris compatible PS/2 - Souris compatible PS/2 - PS/2 - Microsoft - Souris compatible PS/2 - 2 - - - S-1-5-32-574 - Accès DCOM service de certificats - - - S-1-5-32-544 - Administrateurs - - - S-1-5-32-552 - Duplicateurs - - - S-1-5-32-568 - IIS_IUSRS - - - S-1-5-32-546 - Invités - - - S-1-5-32-573 - Lecteurs des journaux d’événements - - - S-1-5-32-569 - Opérateurs de chiffrement - - - S-1-5-32-556 - Opérateurs de configuration réseau - - - S-1-5-32-551 - Opérateurs de sauvegarde - - - S-1-5-32-550 - Opérateurs d’impression - - - S-1-5-32-545 - Utilisateurs - - - S-1-5-32-547 - Utilisateurs avec pouvoir - - - S-1-5-32-558 - Utilisateurs de l’Analyseur de performances - - - S-1-5-32-555 - Utilisateurs du Bureau à distance - - - S-1-5-32-559 - Utilisateurs du journal de performances - - - S-1-5-32-562 - Utilisateurs du modèle COM distribué - - - S-1-5-21-1202468010-2263478365-3281567188-1000 - WinRMRemoteWMIUsers__ - - - S-1-5-21-1202468010-2263478365-3281567188-500 - Administrateur - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - Realtek RTL8139C+ carte réseau Fast Ethernet - 192.168.210.8 - 192.168.210.1 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - Realtek RTL8139C+ carte réseau Fast Ethernet - fe80::e187:4859:86f6:2f53 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - 64-bit - 2018-10-05 12:23:49 - demo.normation.com - WIN-GNGDHPVHVTN.demo.normation.com - Microsoft Windows Server 2008 R2 Standard - 2018-10-05 09:22:56 - MSWin32 - 6.1.7601 - Windows - Service Pack 1 - - Romance Standard Time - +0200 - - - - Port de communication (COM1) - Port de communication - Port de communication (COM1) - Serial - - - Microsoft XPS Document Writer - Microsoft XPS Document Writer - 0 - XPSPort: - winprint - 600x600 - 0 - Idle - - - - -----BEGIN CERTIFICATE----- -MIIFZzCCA0+gAwIBAgIJAKVOL8B1j9axMA0GCSqGSIb3DQEBCwUAMFQxGDAWBgNV -BAMMD1dJTi1HTkdESFBWSFZUTjE4MDYGCgmSJomT8ixkAQEMKDlmYzQ3YzNlLTNk -ODItNDA3YS1hNjExLTI0NGQzN2MxYzQ4ZCIgZHUwHhcNMTgxMDA4MDkwMjIwWhcN -MjgxMDA1MDkwMjIwWjBUMRgwFgYDVQQDDA9XSU4tR05HREhQVkhWVE4xODA2BgoJ -kiaJk/IsZAEBDCg5ZmM0N2MzZS0zZDgyLTQwN2EtYTYxMS0yNDRkMzdjMWM0OGQi -IGR1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsztRGvNd8WdSWsR+ -dRLzvWV02tsI6Hgipe4Twfw0b7K7RXPV9/BNPJLcdik3Xszr26V58XDZUCEXP1y0 -djJ4ydb/wHdlCNpGUNIEjNzxq0mHSOSnKL1UaB6x/BS8MfO4lDv07T/BxS/zrH2d -UZBfg9Yr8ZWDYbZV2U1go7Y+kFBoOJZbJVg7nVTc3xQcQpL8u4qmjKdl3D0td2mJ -msAsrPXQ7KGZUnn1ltgZeJj5jrwE0n52JELHP3OZ2bLhbHA/a1Lm8Kios4nAGAQk -SKyUMBxdBXdq2BsTaxGUsRIGTGdlwdcthT90BKaT8NCxri3Xw2USDL9aJa3J335O -7DaH3QA8+37QjuMPgKt8dVAwUbdaOIE8TOdUcrGulirb4xfScbL5LEM2lIqjpP/m -Dsm31IXppJ1ZJ9K1LbrhGJxWtmYrlTkus6l/xWeOj3LVDrtI/fMI7jO756iWEY6Z -p1/N+Ajk41QAdojugOwcXsCvv200E7ilYzts7mjgR1Gzo4eVB4iraMjkFgaO91Y4 -Q2jlROz0uXc9ajRpPFo7xfGHIc+WV3Vxcwl/EAXvNSzzq/z6c/IfLG8sv5F3L9C4 -4TMBBIalAtDgPBL99HJ4jtpUWU2jEigl5UHfF4NhRiE7asuLse5Cuh01XfE9/saG -LtfJCY/lOJRVdMvZzJpmZa3OynsCAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNV -HQ8EBAMCArQwHQYDVR0OBBYEFJarL/37EhhmaF2uI+A1Yh1YyJJXMA0GCSqGSIb3 -DQEBCwUAA4ICAQApGO/DomO7BBtBNvSoXOowNZUyggAJ1AcdO4PLBUuFpVjT1X5E -TeaBPeor3Tf7JuN6yzglkVFNZnjiWWBgANoap1ND0b7xy4bcSqBZo4qv23l/1PSO -F100BOV9g37MH1RGucdMQuwxtvZU4VNemSMFEvtzy7az1Oa8rd90+JQkhY1Zhm+y -NwB7QR1oJiMjCpZJJPVuiLTxf2F5M47TwTvBEAov6K/IjpjguwtBmMW2KVwFkhKN -ynC2aPOuw0chPRQ33pS8bCv+YvTu6ny9SaVPvhEnDjwmb3E0H6bS6/IENmiWr+6L -ngIH0yHs9kigmpGNTImR5dYbz+K5mrTlGURfJQaxICVRXnOYKMz1bRq3MZSZdHSo -9SeHSnqomVqVJPn5USCq9rwYoG2KoyW3RX/Cj4g9IA0n/Q8qzdNwrnj1Ox2LBUBF -+mJu9Oob07+YkaoSXRERHAQeyo93rkY7XW44Cc43lM4qPUNTgDyP4Ly3zJ4C5oaZ -beSuVJiB4g6GIfFhV923RPF77TkVHoYFQk+kgiD/6t6RJtPiqWsW8ApCSPk5z3LW -5dRVAxZrw/T4yXO7hBXTAMUz6Ze3n62ltX9F3AJqy7AoxgFhy7ZLs37+MurlXST+ -Fw5sVzhXTQ39QiEu12mwrnMC7EY7hl0BBBKxFQhBgaPvaLk5YAYVT3byGg== ------END CERTIFICATE----- - - dsc - win-gngdhpvhvtn\administrateur - 192.168.210.2 - root - - - WIN-GNGDHPVHVTN - - 9fc47c3e-3d82-407a-a611-244d37c1c48d - - - x86_64 - registry - FusionInventory-Agent - https://github.com/fusioninventory/fusioninventory-agent - 08/10/2018 - FusionInventory Agent 2.3.19 (x64 edition) - FusionInventory Team - C:\Program Files\FusionInventory-Agent\Uninstall.exe - 2.3.19 - - - x86_64 - Mozilla Maintenance Service - registry - MozillaMaintenanceService - 05/10/2018 - Mozilla Maintenance Service - Mozilla - "C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" - 62.0.3 - - - x86_64 - registry - {7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - 05/10/2018 - Microsoft .NET Framework 4.5.1 - Microsoft Corporation - MsiExec.exe /X{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - http://go.microsoft.com/fwlink/?LinkId=286133 - 4.5.50938 - - - x86_64 - registry - 21/11/2010 - Internet Explorer (64bit) - Microsoft Corporation - 8.0.7601.17514 - - - i586 - Mozilla Firefox 62.0.3 (x86 fr) - registry - Mozilla Firefox 62.0.3 (x86 fr) - https://support.mozilla.org - 05/10/2018 - Mozilla Firefox 62.0.3 (x86 fr) - Mozilla - "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" - https://www.mozilla.org - 62.0.3 - - - i586 - registry - Notepad++ - 05/10/2018 - Notepad++ (32-bit x86) - Notepad++ Team - C:\Program Files (x86)\Notepad++\uninstall.exe - http://notepad-plus-plus.org/ - 7.5.7 - 7 - 57 - - - i586 - registry - Rudder - 08/10/2018 - Rudder agent (DSC) - Normation - "C:\Program Files\Rudder\Uninstall.exe" - 4.3-1.11 - - - i586 - registry - {4594566F-2BCE-49AC-AC27-8847F164CB94} - 05/10/2018 - NXLog-CE - NXLog Ltd - MsiExec.exe /X{4594566F-2BCE-49AC-AC27-8847F164CB94} - 2.10.2102 - - - i586 - registry - 21/11/2010 - Internet Explorer - Microsoft Corporation - 8.0.7601.17514 - - - x86_64 - Update - WMI - 05/10/2018 - KB2819745 - Update - - - x86_64 - Update - WMI - 05/10/2018 - KB2809215 - Update - - - x86_64 - Hotfix - WMI - 05/10/2018 - KB2872035 - Hotfix - - - x86_64 - Update - WMI - 21/11/2010 - KB976902 - Update - - - Périphérique High Definition Audio - Périphérique High Definition Audio - Microsoft - Périphérique High Definition Audio - - - Lecteur de disque - 21474 - 2.5+ - IDE - (Lecteurs de disque standard) - QEMU HARDDISK - \\.\PHYSICALDRIVE0 - 0 - 0 - 0 - QM00001 - QM00001 - Fixed hard disk media - - - Lecteur de CD-ROM - 3049 - (Lecteurs de CD-ROM standard) - QEMU QEMU DVD-ROM ATA Device - QEMU QEMU DVD-ROM ATA Device - 0 - 0 - 1 - UNKNOWN - - - Périphérique d’entrée USB - Adomax Technology Co., Ltd - Périphérique d’entrée USB - 0001 - 42 - 0627 - - - WIN-GNGDHPVHVTN - Administrateur - - FusionInventory-Agent_v2.3.19 - - Provided by Teclib - Installer built with Appveyor on Sat Feb 18 09:34:43 UTC 2017 - FusionInventory - C:\Program Files\FusionInventory-Agent\perl\bin\perl.exe - v5.22.2 - fusioninventory-agent - 2.3.19 - - - Carte graphique VGA standard - - - WIN-GNGDHPVHVTN-2018-10-08-11-02-23 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-9fc47c3e-3d82-407a-a611-244d37c1c48d.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-9fc47c3e-3d82-407a-a611-244d37c1c48d.ocs.sign deleted file mode 100644 index 1258473dd75..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-9fc47c3e-3d82-407a-a611-244d37c1c48d.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=95e144f9faffddaeac65b342c84cc48d057e3b7dbde555fb77ba1b2ef74c3ca6f8346032d3c0bb0e5524b5c3e7697e7186265e641bf15ad1db413ac171c0b47f50fc967475995d368b6fe58964747fe43b0be525471f0f6be8cfceddb4bc5681d4f8b52c949b613b85ccfca6c82f94d50ec3c42a1d1924a6ebcb8386d2f1b1be49c1c2d41bca5c3607f094750a307c94222745ab73faa5f6cac4fd973601123b6a620cabd4b0569f015bc99c8fb81d0bfe65b5a95299289af5d5a090c4c9d332f77e5a041b0b14508afa0dd480a5d81d31ac4865e4610b56a400527f0e5889a1f4159c8ce51f7e9b7969ef052983056f6e0aaeadd42df05df02ed53233d54099d40e24b90918aebe7e8aaa8699f520c83afd8d35948d4150f678de0952753d4f903a8cd38957c6c0c09dfcb99f88e75f01b85c2ef5842f8fbabd861eef46927729805665ce9ad8ad45e0ed7917829b10764129f743131fd2357d7344ff7eadd67eef4ee49e6e7ae015256c0de0a9594d027e4c4e43dc86dc93e944b40d67cc4e5553e994a873e1125eae356a26cf067e31ae6fc81da5c0b73f4e8b9b5811b4ee348b4a7564945fbf77d3ed1ea4467941a6a6bf267c0dbe058f958e076fd7fdef309a050f5a71bfa9eb9b0796dac306a92510870b90e07b3a1fc4c80386af1e83f89dbdd701e0d6ee4c95f6da497dbb49db3ad2afe3d6ab9f0d3385d5cc358d35 -hostname=WIN-GNGDHPVHVTN -keydate=2018-10-08 11:02:20.1848750 +02:00 -keyid=ADCECA7B diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-b73ea451-c42a-420d-a540-47b445e58313.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-b73ea451-c42a-420d-a540-47b445e58313.ocs deleted file mode 100644 index 074abda0d9e..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-b73ea451-c42a-420d-a540-47b445e58313.ocs +++ /dev/null @@ -1,657 +0,0 @@ - - - - - 2018-10-05 13:37:11 - - - 04/01/2014 - SeaBIOS - 1.10.2-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 82371SB PIIX3 IDE [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7010 - Contrôleur IDE PCI Bus Master Intel(R) 82371SB - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2934 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2934 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2935 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2935 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2936 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2936 - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 293a - Contrôleur hôte étendu Intel(R) gamme ICH9 USB2 - 293A - 8086 - - - Virtio console - Red Hat, Inc - Virtio console - 1af4:0003 - 1003 - Contrôleur PCI de communications simplifiées - 1af4 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7000 - Pont Intel 82371SB PCI vers ISA - 8086 - - - QXL paravirtual graphic card - Red Hat, Inc. - QEMU Virtual Machine - 1af4:1100 - 0100 - Carte graphique VGA standard - 1b36 - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 1237 - Pont Intel 82441FX Processeur Pentium(R) Pro vers PCI - 8086 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2668 - Contrôleur audio haute définition - 8086 - - - RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - Realtek Semiconductor Co., Ltd. - QEMU Virtual Machine - 1af4:1100 - 8139 - Realtek RTL8139C+ carte réseau Fast Ethernet - 10ec - - - Virtio memory balloon - Red Hat, Inc - Virtio memory balloon - 1af4:0005 - 1002 - Périphérique PCI - 1af4 - - - 1 - Intel64 Family 6 Model 61 Stepping 2 - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2000 - 2 - 1 - - - Disque fixe local - NTFS - 9479 - - C: - 18D50161 - 1 - 20377 - Local Disk - - - - Disque CD-ROM - UDF - 0 - - D: - EAD23BCC - - 3049 - Compact Disc - GRMSXFRER_FR_DVD - - - NTFS - 71 - - Réservé au système - 34D39252 - - 99 - Local Disk - Réservé au système - - - ComSpec - %SystemRoot%\system32\cmd.exe - - - FP_NO_HOST_CHECK - NO - - - OS - Windows_NT - - - Path - C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rudder\bin - - - PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC - - - PROCESSOR_ARCHITECTURE - AMD64 - - - TEMP - %SystemRoot%\TEMP - - - TMP - %SystemRoot%\TEMP - - - USERNAME - SYSTEM - - - windir - %SystemRoot% - - - PSModulePath - C:\Users\Administrateur\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Rudder\policy;C:\Program Files\Rudder\share\initial-policy - - - NUMBER_OF_PROCESSORS - 1 - - - PROCESSOR_LEVEL - 6 - - - PROCESSOR_IDENTIFIER - Intel64 Family 6 Model 61 Stepping 2, GenuineIntel - - - PROCESSOR_REVISION - 3d02 - - - windows_tracing_logfile - C:\BVTBin\Tests\installpackage\csilogfile.log - - - windows_tracing_flags - 3 - - - MSWin32-x64-multi-thread - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 14 - 192.168.210.8 - Administrateur - 2047 - WIN-GNGDHPVHVTN - Service Pack 1 - Microsoft Windows Server 2008 R2 Standard - 6.1.7601 - 1 - 2000 - Intel Core Processor (Broadwell) - Administrateur - C81E971B-A4D8-4718-AAB7-AD81D91EC1C3 - QEMU - 1036 - Utilisateur Windows - 00477-179-0000007-84578 - HMG6P-C7VGP-47GJ9-TWBD4-2YYCD - WORKGROUP - - - Étendu (101 ou 102 touches) - Clavier standard PS/2 - 0000040C - Étendu (101 ou 102 touches) - - - Périphérique d’entrée USB - Périphérique d’entrée USB - USB - (Périphériques système standard) - Périphérique d’entrée USB - 2 - - - Souris compatible PS/2 - Souris compatible PS/2 - PS/2 - Microsoft - Souris compatible PS/2 - 2 - - - S-1-5-32-574 - Accès DCOM service de certificats - - - S-1-5-32-544 - Administrateurs - - - S-1-5-32-552 - Duplicateurs - - - S-1-5-32-568 - IIS_IUSRS - - - S-1-5-32-546 - Invités - - - S-1-5-32-573 - Lecteurs des journaux d’événements - - - S-1-5-32-569 - Opérateurs de chiffrement - - - S-1-5-32-556 - Opérateurs de configuration réseau - - - S-1-5-32-551 - Opérateurs de sauvegarde - - - S-1-5-32-550 - Opérateurs d’impression - - - S-1-5-32-545 - Utilisateurs - - - S-1-5-32-547 - Utilisateurs avec pouvoir - - - S-1-5-32-558 - Utilisateurs de l’Analyseur de performances - - - S-1-5-32-555 - Utilisateurs du Bureau à distance - - - S-1-5-32-559 - Utilisateurs du journal de performances - - - S-1-5-32-562 - Utilisateurs du modèle COM distribué - - - S-1-5-21-1202468010-2263478365-3281567188-1000 - WinRMRemoteWMIUsers__ - - - S-1-5-21-1202468010-2263478365-3281567188-500 - Administrateur - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - Realtek RTL8139C+ carte réseau Fast Ethernet - 192.168.210.8 - 192.168.210.1 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - Realtek RTL8139C+ carte réseau Fast Ethernet - fe80::e187:4859:86f6:2f53 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - 64-bit - 2018-10-05 10:23:49 - demo.normation.com - WIN-GNGDHPVHVTN.demo.normation.com - Microsoft Windows Server 2008 R2 Standard - 2018-10-05 09:22:56 - MSWin32 - 6.1.7601 - Windows - Service Pack 1 - - Romance Standard Time - +0200 - - - - Port de communication (COM1) - Port de communication - Port de communication (COM1) - Serial - - - Microsoft XPS Document Writer - Microsoft XPS Document Writer - 0 - XPSPort: - winprint - 600x600 - 0 - Idle - - - - -----BEGIN CERTIFICATE----- -MIIFZzCCA0+gAwIBAgIJAP7Cjhj++c60MA0GCSqGSIb3DQEBCwUAMFQxGDAWBgNV -BAMMD1dJTi1HTkdESFBWSFZUTjE4MDYGCgmSJomT8ixkAQEMKGI3M2VhNDUxLWM0 -MmEtNDIwZC1hNTQwLTQ3YjQ0NWU1ODMxMyIgZHUwHhcNMTgxMDA1MTEzNzA3WhcN -MjgxMDAyMTEzNzA3WjBUMRgwFgYDVQQDDA9XSU4tR05HREhQVkhWVE4xODA2BgoJ -kiaJk/IsZAEBDChiNzNlYTQ1MS1jNDJhLTQyMGQtYTU0MC00N2I0NDVlNTgzMTMi -IGR1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyqZjGB851LgXrt9z -TCyEY/Pwabc4mWle7L7Gfg3u8jcorSeMzymZg71Op1aKt3TyiWIva82TvxdhXRpb -8KXTaUyg145EJWon1cx51xjreTXFBQU9511gnExxEc3Mi+8UOnhZvW76P2ZTQtOQ -UnIsngrtW9tjHMxNjhvf4mAHEcRZbFLpv22WEGZKyWaENpsyaC0XpabjMjC2+2/a -jHvLfoSaW68j2ivW+GYPcSHtxTuD0pK6yBW1ZReCpMP7r51w/jeiW50bByEMVCIE -2PP0wOi8+o62xby5Vq5/tLVIma6FP3fg6wryiv48R3yYgNlvWNXR33ft3cDj+PkE -o0wyxASTW56Napek6QYrLAd9V3pFMiOr9fMyAzhJEDdjrTfu2OM30U0xavfCsvAW -g1bWEqNXbWUfZL8DuYfygJzogrJgZ946bYYwIxVoUre514PTeBnXQbxBnb0bFoyz -Z/OXu5jCdjyUEosUZVtYxFKvhRT941LhzuRyxAem40O4A+wxWvN4rJYL7/+avjfF -YM86M0AlT+x7N1qk33MrRE5jZ4IApzISSsKz1Zf3a7QcKcHuIH5y08fZMvCcBzr4 -xBygL/UeJc7jb2T22YIleSEr/wbs3bTSHzSZW8zoC7OzHWJA7Q5fiR7CQxdXOwzu -LZc/BOOIs2siJ1ct+/wpdZKV2oECAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNV -HQ8EBAMCArQwHQYDVR0OBBYEFMIpAVBwkJgaBn6/XRq9Vk9qJdrMMA0GCSqGSIb3 -DQEBCwUAA4ICAQB+dEUTMQluBerwvXMXaoFyGsq8roqlV14XWB/6BbJ/bctrmZdA -yFkd548Z69nERvl4zWxnaedtJ6FvumFVfen8YHpUBcG0OinKWyEcnvhX5fHVNe8r -lBMxRMfy0gic84LnMTzGu6fht/UfxO4bpgKjSY8cUoTdt9WWg8d2bsxqoL7gy58A -AshIcEyS0i8crsJDBMYs1Rvibh6YcP/h1FRh8AoEE4Lo6VGvNtyhBYTZtujycs/d -qxmEaxEuRMJE3ctzZvC1n4fhwXTjdH7uo2J5hC+hx2E7T0QdL4CMlX2MWRT5sXWG -W5eHaV/zpeQVzQY9DlrbhEBdLhsR5vDpyHlDfmTS1KnV6mjedLqEX4naliCZQ0KD -GQEiMx3xud2ZrG/9R/+wYBP8qIndLu+RKK/59Vd3uO3tQ7rhg6sdXBQ4nWGlpQ4L -dOFI+3agHvGJmHwCcWRhzoNxYgR+3HOsMl9Vv5fzVXoQP6ISTEyXzT3Z1qf0S7Yh -4x3SnZe/eHk4T8LixxMsGMdxjRecbjqVmFdN8iYJHA7NyfPTLNEFLUhNTje+Bynt -MRu1J5yQ+HkmB5a+0NPz20afMgG8boRBG1a54MQSpM9LEeH8S1zayPXODuDuj9in -j9I1SjrxtIVTlYUCnE58YjQkUIcsacVOeCtJHYKFgKcs1kr6nDVfJTOGvw== ------END CERTIFICATE----- - - dsc - win-gngdhpvhvtn\administrateur - 192.168.210.2 - root - - - WIN-GNGDHPVHVTN - - b73ea451-c42a-420d-a540-47b445e58313 - - - x86_64 - registry - FusionInventory-Agent - https://github.com/fusioninventory/fusioninventory-agent - 05/10/2018 - FusionInventory Agent 2.3.19 (x64 edition) - FusionInventory Team - C:\Program Files\FusionInventory-Agent\Uninstall.exe - 2.3.19 - - - x86_64 - Mozilla Maintenance Service - registry - MozillaMaintenanceService - 05/10/2018 - Mozilla Maintenance Service - Mozilla - "C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" - 62.0.3 - - - x86_64 - registry - {7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - 05/10/2018 - Microsoft .NET Framework 4.5.1 - Microsoft Corporation - MsiExec.exe /X{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - http://go.microsoft.com/fwlink/?LinkId=286133 - 4.5.50938 - - - x86_64 - registry - 21/11/2010 - Internet Explorer (64bit) - Microsoft Corporation - 8.0.7601.17514 - - - i586 - Mozilla Firefox 62.0.3 (x86 fr) - registry - Mozilla Firefox 62.0.3 (x86 fr) - https://support.mozilla.org - 05/10/2018 - Mozilla Firefox 62.0.3 (x86 fr) - Mozilla - "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" - https://www.mozilla.org - 62.0.3 - - - i586 - registry - Notepad++ - 05/10/2018 - Notepad++ (32-bit x86) - Notepad++ Team - C:\Program Files (x86)\Notepad++\uninstall.exe - http://notepad-plus-plus.org/ - 7.5.7 - 7 - 57 - - - i586 - registry - Rudder - 05/10/2018 - Rudder agent (DSC) - Normation - "C:\Program Files\Rudder\Uninstall.exe" - 4.3-1.11 - - - i586 - registry - {4594566F-2BCE-49AC-AC27-8847F164CB94} - 05/10/2018 - NXLog-CE - NXLog Ltd - MsiExec.exe /X{4594566F-2BCE-49AC-AC27-8847F164CB94} - 2.10.2102 - - - i586 - registry - 21/11/2010 - Internet Explorer - Microsoft Corporation - 8.0.7601.17514 - - - x86_64 - Update - WMI - 05/10/2018 - KB2819745 - Update - - - x86_64 - Update - WMI - 05/10/2018 - KB2809215 - Update - - - x86_64 - Hotfix - WMI - 05/10/2018 - KB2872035 - Hotfix - - - x86_64 - Update - WMI - 21/11/2010 - KB976902 - Update - - - Périphérique High Definition Audio - Périphérique High Definition Audio - Microsoft - Périphérique High Definition Audio - - - Lecteur de disque - 21474 - 2.5+ - IDE - (Lecteurs de disque standard) - QEMU HARDDISK - \\.\PHYSICALDRIVE0 - 0 - 0 - 0 - QM00001 - QM00001 - Fixed hard disk media - - - Lecteur de CD-ROM - 3049 - (Lecteurs de CD-ROM standard) - QEMU QEMU DVD-ROM ATA Device - QEMU QEMU DVD-ROM ATA Device - 0 - 0 - 1 - UNKNOWN - - - Périphérique d’entrée USB - Adomax Technology Co., Ltd - Périphérique d’entrée USB - 0001 - 42 - 0627 - - - WIN-GNGDHPVHVTN - Administrateur - - FusionInventory-Agent_v2.3.19 - - Provided by Teclib - Installer built with Appveyor on Sat Feb 18 09:34:43 UTC 2017 - FusionInventory - C:\Program Files\FusionInventory-Agent\perl\bin\perl.exe - v5.22.2 - fusioninventory-agent - 2.3.19 - - - Carte graphique VGA standard - - - WIN-GNGDHPVHVTN-2018-10-05-13-37-09 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-b73ea451-c42a-420d-a540-47b445e58313.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-b73ea451-c42a-420d-a540-47b445e58313.ocs.sign deleted file mode 100644 index d2f276bdeae..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/WIN-GNGDHPVHVTN-b73ea451-c42a-420d-a540-47b445e58313.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=b7fd3d55a96664728c9cb6278dce9e14612a939e58f0d4f925aba332417adbda534e16958098f5f5b6bb5d384d82e1dbf60fc82e3041ee60f71d39de11a40c661ba3fd52ea9597feb18d1dd17678259a29d006938c1dc14e42057efaefe42a7dfe293f575e06751e11a902b4b9c2b730a2f47c1efb82d8f64a2bee3f46e858f6570bbf5f3ef634357c5ac865c35ff2d8effc4184aeb2bdf158d2bbf719e16648f7363445cb3147cb3b17f76f2d7ee7be862f35c1682b423609c771729cc88ebc0609a249f94b9fd5c911abbe9bc41fab25424092b3705c407fdde71155e5699511cb245d54d0156a151fd4e620aef796d29c349245683fb776fbda3950d5e463ab9e4efe270a457697e4db32eb80c9840c438c57dc9eb6b94bd24d1426daaf311f653110f10f69d9d3ed8819363ba3b1a51b19dd09f3109388250f1bbda9d1343db6f56b619b63c58d8444bdfee073c5946e37c44b8c4d294a56610acb47543d47ddde1e3c5c61efdea1c25fb86d7f8e20d5ef0fe8fa82a6061543efe7482e8aaae806368884c7f373ec098c10b40befbbf2ae7ae77b0ea8b8b06f01ce12f93d1cf2de6f5116a419b350a252579980ba7e07870afa382c590264a10aadbd17a32b57fa41499a6b2698d86fe87f734204f09b7e55321bc2f910e38bc16be22a1da3a682cd4e43eefa5c6672522412d0880da68d58dcc0fdd9f57933e56e77db5e -hostname=WIN-GNGDHPVHVTN -keydate=2018-10-05 13:37:06.8750000 +02:00 -keyid=9295DA81 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs deleted file mode 100644 index e5722622e5f..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs +++ /dev/null @@ -1,11207 +0,0 @@ - - - - - 2019-09-13 05:28:56 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - QXL paravirtual graphic card - qxl - Red Hat, Inc. - QXL paravirtual graphic card - 0300 - 00:02.0 - 0100 - 04 - VGA compatible controller - 1b36 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:03.0 - 1000 - Ethernet controller - 1af4 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #1 - 0c03 - 00:04.0 - 2934 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #2 - 0c03 - 00:04.1 - 2935 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #3 - 0c03 - 00:04.2 - 2936 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - ehci - Intel Corporation - 82801I (ICH9 Family) USB2 EHCI Controller #1 - 0c03 - 00:04.7 - 293a - 03 - USB controller - 8086 - - - Virtio console - virtio - Red Hat, Inc - Virtio console - 0780 - 00:05.0 - 1003 - Communication controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:06.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 00ff - 00:07.0 - 1002 - Unclassified device - 1af4 - - - i386 - 1 - Other - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2 - 1 - - - ext4 - 3737 - f4eb415d-0751-479e-9dc4-bb158da5e34b - 9015 - / - /dev/mapper/dev--www--01--vg-root - - - MANPATH - /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/rudder/share/man - - - JOURNAL_STREAM - 9:16985 - - - INVOCATION_ID - 886fbf5317e44abcafd6fae793e42e23 - - - XDG_DATA_DIRS - /usr/local/share:/usr/share:/var/lib/snapd/desktop - - - DEBIAN_FRONTEND - noninteractive - - - PWD - /var/rudder - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/var/rudder/cfengine-community/bin - - - x86_64-linux-gnu-thread-multi - Other - 131071 - 192.168.210.1 - 127.0.0.53 - 1 - 192.168.210.5 - 985 - dev-www-01 - #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 - Ubuntu 18.04.1 LTS - 4.15.0-58-generic - 1 - Intel Core Processor (Broadwell) - 975 - C8EB9E1D-C774-46D2-A1A7-D052C0939E60 - QEMU - demo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 4 - syslog - abrianceau - adm - - - 24 - abrianceau - cdrom - - - 27 - abrianceau - sudo - - - 29 - pulse - audio - - - 30 - abrianceau - dip - - - 46 - abrianceau - usbmux - plugdev - - - 109 - abrianceau - lxd - - - 120 - abrianceau - lpadmin - - - 121 - abrianceau - sambashare - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /usr/sbin/nologin - - - /bin - 2 - bin - bin - /usr/sbin/nologin - - - /dev - 3 - sys - sys - /usr/sbin/nologin - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /usr/sbin/nologin - - - /var/cache/man - 6 - man - man - /usr/sbin/nologin - - - /var/spool/lpd - 7 - lp - lp - /usr/sbin/nologin - - - /var/mail - 8 - mail - mail - /usr/sbin/nologin - - - /var/spool/news - 9 - news - news - /usr/sbin/nologin - - - /var/spool/uucp - 10 - uucp - uucp - /usr/sbin/nologin - - - /bin - 13 - proxy - proxy - /usr/sbin/nologin - - - /var/www - 33 - www-data - www-data - /usr/sbin/nologin - - - /var/backups - 34 - backup - backup - /usr/sbin/nologin - - - /var/list - 38 - list - Mailing List Manager - /usr/sbin/nologin - - - /var/run/ircd - 39 - irc - ircd - /usr/sbin/nologin - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /usr/sbin/nologin - - - /nonexistent - 65534 - nobody - nobody - /usr/sbin/nologin - - - /run/systemd/netif - 100 - systemd-network - systemd Network Management,,, - /usr/sbin/nologin - - - /run/systemd/resolve - 101 - systemd-resolve - systemd Resolver,,, - /usr/sbin/nologin - - - /home/syslog - 102 - syslog - - /usr/sbin/nologin - - - /nonexistent - 103 - messagebus - - /usr/sbin/nologin - - - /nonexistent - 104 - _apt - - /usr/sbin/nologin - - - /nonexistent - 105 - mysql - MySQL Server,,, - /bin/false - - - /var/lib/lxd/ - 106 - lxd - - /bin/false - - - /run/uuidd - 107 - uuidd - - /usr/sbin/nologin - - - /var/lib/usbmux - 108 - usbmux - usbmux daemon,,, - /usr/sbin/nologin - - - /proc - 109 - rtkit - RealtimeKit,,, - /usr/sbin/nologin - - - /var/lib/misc - 110 - dnsmasq - dnsmasq,,, - /usr/sbin/nologin - - - /var/lib/lightdm - 111 - lightdm - Light Display Manager - /bin/false - - - /var/lib/landscape - 112 - landscape - - /usr/sbin/nologin - - - /run/sshd - 113 - sshd - - /usr/sbin/nologin - - - /var/run/pulse - 114 - pulse - PulseAudio daemon,,, - /usr/sbin/nologin - - - /var/cache/pollinate - 115 - pollinate - - /bin/false - - - /home/abrianceau - 1000 - abrianceau - abrianceau,,, - /bin/bash - - - /home/bpeccatte - 1001 - bpeccatte - - /bin/bash - - - /home/vmembre - 1002 - vmembre - - /bin/bash - - - /home/rgauthier - 1003 - rgauthier - - /bin/bash - - - /home/ncharles - 1004 - ncharles - - /bin/bash - - - /var/lib/snmp - 116 - Debian-snmp - - /bin/false - - - /home/amousset - 1005 - amousset - - /bin/bash - - - /home/fdallidet - 1006 - fdallidet - - /bin/bash - - - /home/farmand - 1007 - farmand - - /bin/bash - - - /home/jdoe - 1008 - jdoe - - /bin/bash - - - -wi-ao---- - root - Dnvrup-wnIW-4bu1-RyV0-N6j4-RiBQ-hAFo2v - 1 - 9672 - ex9HrK-hm0k-fQ0Q-6c5A-jixV-bdPa-y6VnEL - - - -wi-ao---- - swap_1 - qOtWhN-bfxL-j8j5-7Zyq-Exzx-zLkH-pjcaJK - 1 - 1023 - ex9HrK-hm0k-fQ0Q-6c5A-jixV-bdPa-y6VnEL - - - 1024 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - ens3 - virtio_net - 192.168.210.5 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:65:dc:36 - -1 - Up - ethernet - 0 - - - ens3 - virtio_net - fe80::5054:ff:fe65:dc36 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:65:dc:36 - -1 - Up - ethernet - 0 - - - x86_64 - 2019-08-27 17:29:42 - demo.normation.com - dev-www-01.demo.normation.com - Ubuntu 18.04.1 LTS - 007f0101 - linux - 4.15.0-58-generic - Ubuntu - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLZBzeiYy+wrFPJdKUE81GiQpSsVx3o6vpto+JacB53l7pkTc9vYp4SE7e8BoAwYT7DTLAAiRsSGIjj0vZXqUSKU+k3P59yOtnhGLSeY0fZVf6DX5cRdbiKDEcpQsrTfrkQAjr6V07RgpAR7lwRnxgJHqy4Fz+SZrJF7k8Lq05quhTlMStacN1MKnltp0o9gbtxGIvKSEJwicuGzkEIVJKmMhq+jpMe4lZx1SbXUyn7n2x7zfkU/8d09Dh50x4r56nK0lgmKt+JUuXy0OdfheYl5f9GKGPh4jRDE6Kw9DlCL/hhrg+r4i1S9NN926Y/GCC+dL1l+jEI2dGhFua933t - - Europe/Amsterdam - +0200 - - 18.04 - - - a-- - /dev/vda1 - lvm2 - 37 - 4 - 2559 - 74euaI-Fc3d-5eVj-qjgl-8k9O-wGaY-Mm1w14 - 10733 - ex9HrK-hm0k-fQ0Q-6c5A-jixV-bdPa-y6VnEL - - - /lib/systemd/systemd --system --deserialize 41 - 0.0 - 0.6 - 1 - 2019-08-27 17:29 - ? - root - 225372 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 4 - 2019-08-27 17:29 - ? - root - 0 - - - [mm_percpu_wq] - 0.0 - 0.0 - 6 - 2019-08-27 17:29 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 7 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 8 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 9 - 2019-08-27 17:29 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 10 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 11 - 2019-08-27 17:29 - ? - root - 0 - - - [cpuhp/0] - 0.0 - 0.0 - 12 - 2019-08-27 17:29 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 13 - 2019-08-27 17:29 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 14 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_tasks_kthre] - 0.0 - 0.0 - 15 - 2019-08-27 17:29 - ? - root - 0 - - - [kauditd] - 0.0 - 0.0 - 16 - 2019-08-27 17:29 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 17 - 2019-08-27 17:29 - ? - root - 0 - - - [oom_reaper] - 0.0 - 0.0 - 18 - 2019-08-27 17:29 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 19 - 2019-08-27 17:29 - ? - root - 0 - - - [kcompactd0] - 0.0 - 0.0 - 20 - 2019-08-27 17:29 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 21 - 2019-08-27 17:29 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 22 - 2019-08-27 17:29 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 23 - 2019-08-27 17:29 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 24 - 2019-08-27 17:29 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 25 - 2019-08-27 17:29 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 26 - 2019-08-27 17:29 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 27 - 2019-08-27 17:29 - ? - root - 0 - - - [edac-poller] - 0.0 - 0.0 - 28 - 2019-08-27 17:29 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 29 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdogd] - 0.0 - 0.0 - 30 - 2019-08-27 17:29 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 34 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/u3:0] - 0.0 - 0.0 - 35 - 2019-08-27 17:29 - ? - root - 0 - - - [ecryptfs-kthrea] - 0.0 - 0.0 - 36 - 2019-08-27 17:29 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 78 - 2019-08-27 17:29 - ? - root - 0 - - - [acpi_thermal_pm] - 0.0 - 0.0 - 79 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 80 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 81 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 82 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 83 - 2019-08-27 17:29 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 89 - 2019-08-27 17:29 - ? - root - 0 - - - [kstrp] - 0.0 - 0.0 - 98 - 2019-08-27 17:29 - ? - root - 0 - - - [charger_manager] - 0.0 - 0.0 - 115 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 157 - 2019-08-27 17:29 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 187 - 2019-08-27 17:29 - ? - root - 0 - - - [raid5wq] - 0.0 - 0.0 - 264 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 292 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 293 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 302 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 303 - 2019-08-27 17:29 - ? - root - 0 - - - [jbd2/dm-0-8] - 0.0 - 0.0 - 350 - 2019-08-27 17:29 - ? - root - 0 - - - [ext4-rsv-conver] - 0.0 - 0.0 - 351 - 2019-08-27 17:29 - ? - root - 0 - - - [iscsi_eh] - 0.0 - 0.0 - 420 - 2019-08-27 17:29 - ? - root - 0 - - - /sbin/lvmetad -f - 0.0 - 0.2 - 422 - 2019-08-27 17:29 - ? - root - 105904 - - - [ib-comp-wq] - 0.0 - 0.0 - 431 - 2019-08-27 17:29 - ? - root - 0 - - - [ib_mcast] - 0.0 - 0.0 - 434 - 2019-08-27 17:29 - ? - root - 0 - - - [ib_nl_sa_wq] - 0.0 - 0.0 - 435 - 2019-08-27 17:29 - ? - root - 0 - - - [rdma_cm] - 0.0 - 0.0 - 441 - 2019-08-27 17:29 - ? - root - 0 - - - /usr/lib/accountsservice/accounts-daemon - 0.0 - 0.1 - 678 - 2019-08-27 17:29 - ? - root - 287660 - - - /var/rudder/cfengine-community/bin/cf-serverd --no-fork - 0.0 - 0.1 - 679 - 2019-08-27 17:29 - ? - root - 143328 - - - /usr/sbin/atd -f - 0.0 - 0.1 - 680 - 2019-08-27 17:29 - ? - daemon - 28332 - - - /var/rudder/cfengine-community/bin/cf-execd --no-fork - 0.0 - 0.4 - 681 - 2019-08-27 17:29 - ? - root - 208420 - - - /lib/systemd/systemd-logind - 0.0 - 0.0 - 682 - 2019-08-27 17:29 - ? - root - 70604 - - - /usr/lib/udisks2/udisksd - 0.0 - 0.2 - 683 - 2019-08-27 17:29 - ? - root - 502800 - - - /usr/bin/lxcfs /var/lib/lxcfs/ - 0.0 - 0.2 - 684 - 2019-08-27 17:29 - ? - root - 636120 - - - /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers - 0.0 - 0.3 - 685 - 2019-08-27 17:29 - ? - root - 170436 - - - /usr/sbin/cron -f - 0.0 - 0.2 - 689 - 2019-08-27 17:29 - ? - root - 31320 - - - /usr/sbin/rsyslogd -n - 0.0 - 0.3 - 697 - 2019-08-27 17:29 - ? - syslog - 267268 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only - 0.0 - 0.2 - 698 - 2019-08-27 17:29 - ? - message+ - 50452 - - - /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f - 0.0 - 0.2 - 731 - 2019-08-27 17:29 - ? - Debian-+ - 74720 - - - /usr/lib/policykit-1/polkitd --no-debug - 0.0 - 0.2 - 736 - 2019-08-27 17:29 - ? - root - 292420 - - - /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid - 0.0 - 0.1 - 827 - 2019-08-27 17:29 - ? - mysql - 1155040 - - - /sbin/iscsid - 0.0 - 0.0 - 1138 - 2019-08-27 17:29 - ? - root - 25376 - - - /sbin/iscsid - 0.0 - 0.5 - 1139 - 2019-08-27 17:29 - ? - root - 25880 - - - /usr/sbin/sshd -D - 0.0 - 0.2 - 1142 - 2019-08-27 17:29 - ? - root - 72296 - - - /usr/sbin/lightdm - 0.0 - 0.2 - 1157 - 2019-08-27 17:29 - ? - root - 364228 - - - /sbin/agetty -o -p -- \u --noclear tty1 linux - 0.0 - 0.1 - 1185 - 2019-08-27 17:29 - tty1 - root - 16180 - - - /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch - 0.0 - 0.6 - 1186 - 2019-08-27 17:29 - tty7 - root - 340144 - - - lightdm --session-child 16 19 - 0.0 - 0.2 - 1234 - 2019-08-27 17:29 - ? - root - 246428 - - - /lib/systemd/systemd --user - 0.0 - 0.2 - 1237 - 2019-08-27 17:29 - ? - lightdm - 76888 - - - (sd-pam) - 0.0 - 0.0 - 1238 - 2019-08-27 17:29 - ? - lightdm - 113776 - - - /bin/sh /usr/lib/lightdm/lightdm-greeter-session /usr/sbin/lightdm-gtk-greeter - 0.0 - 0.0 - 1254 - 2019-08-27 17:29 - ? - lightdm - 4628 - - - /usr/sbin/lightdm-gtk-greeter - 0.0 - 1.4 - 1255 - 2019-08-27 17:29 - ? - lightdm - 611124 - - - /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only - 0.0 - 0.2 - 1258 - 2019-08-27 17:29 - ? - lightdm - 49916 - - - /usr/lib/at-spi2-core/at-spi-bus-launcher - 0.0 - 0.1 - 1259 - 2019-08-27 17:29 - ? - lightdm - 349136 - - - /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3 - 0.0 - 0.1 - 1264 - 2019-08-27 17:29 - ? - lightdm - 49796 - - - /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session - 0.0 - 0.1 - 1266 - 2019-08-27 17:29 - ? - lightdm - 220644 - - - /usr/lib/gvfs/gvfsd - 0.0 - 0.2 - 1268 - 2019-08-27 17:29 - ? - lightdm - 284868 - - - /usr/lib/gvfs/gvfsd-fuse /run/user/111/gvfs -f -o big_writes - 0.0 - 0.1 - 1275 - 2019-08-27 17:29 - ? - lightdm - 350580 - - - lightdm --session-child 12 19 - 0.0 - 0.2 - 1304 - 2019-08-27 17:29 - ? - root - 102956 - - - /usr/lib/packagekit/packagekitd - 0.0 - 0.1 - 1620 - 2019-08-27 17:29 - ? - root - 366576 - - - [kworker/0:0] - 0.0 - 0.0 - 4592 - 2019-09-13 04:59 - ? - root - 0 - - - [kworker/u2:2] - 0.0 - 0.0 - 5549 - 2019-09-13 05:09 - ? - root - 0 - - - [kworker/u2:1] - 0.0 - 0.0 - 6061 - 2019-09-13 05:14 - ? - root - 0 - - - /usr/lib/lxd/lxd --group lxd --logfile=/var/log/lxd/lxd.log - 1.6 - 17.8 - 7058 - 2019-08-28 05:28 - ? - root - 1301792 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.0 - 7520 - 2019-09-13 05:28 - ? - root - 4628 - - - /var/rudder/cfengine-community/bin/cf-agent - 60.5 - 2.4 - 7531 - 2019-09-13 05:28 - ? - root - 204620 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs - 0.0 - 0.1 - 7604 - 2019-09-13 05:28 - ? - root - 4628 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs - 31.0 - 4.7 - 7610 - 2019-09-13 05:28 - ? - root - 99576 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 7619 - 2019-09-13 05:28 - ? - root - 4628 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.2 - 7620 - 2019-09-13 05:28 - ? - root - 34400 - - - /usr/sbin/apache2 -k start - 0.0 - 0.7 - 8886 - 2019-09-13 00:05 - ? - www-data - 338384 - - - /usr/sbin/apache2 -k start - 0.0 - 0.7 - 8887 - 2019-09-13 00:05 - ? - www-data - 338384 - - - /usr/sbin/apache2 -k start - 0.0 - 0.7 - 8888 - 2019-09-13 00:05 - ? - www-data - 338384 - - - /usr/sbin/apache2 -k start - 0.0 - 0.7 - 8889 - 2019-09-13 00:05 - ? - www-data - 338384 - - - /usr/sbin/apache2 -k start - 0.0 - 0.7 - 8890 - 2019-09-13 00:05 - ? - www-data - 338384 - - - /lib/systemd/systemd-udevd - 0.0 - 0.3 - 13355 - 2019-09-11 07:00 - ? - root - 45700 - - - [xfsalloc] - 0.0 - 0.0 - 20725 - 2019-09-04 06:28 - ? - root - 0 - - - [xfs_mru_cache] - 0.0 - 0.0 - 20726 - 2019-09-04 06:28 - ? - root - 0 - - - [jfsIO] - 0.0 - 0.0 - 20738 - 2019-09-04 06:28 - ? - root - 0 - - - [jfsCommit] - 0.0 - 0.0 - 20739 - 2019-09-04 06:28 - ? - root - 0 - - - [jfsSync] - 0.0 - 0.0 - 20740 - 2019-09-04 06:28 - ? - root - 0 - - - /lib/systemd/systemd-networkd - 0.0 - 0.3 - 22710 - 2019-09-11 07:00 - ? - systemd+ - 80044 - - - /lib/systemd/systemd-resolved - 0.0 - 0.2 - 22727 - 2019-09-11 07:00 - ? - systemd+ - 70760 - - - /lib/systemd/systemd-timesyncd - 0.0 - 0.2 - 22731 - 2019-09-11 07:00 - ? - systemd+ - 141928 - - - /lib/systemd/systemd-journald - 0.0 - 7.8 - 22745 - 2019-09-11 07:00 - ? - root - 268012 - - - /usr/sbin/apache2 -k start - 0.0 - 1.3 - 29248 - 2019-08-30 06:31 - ? - root - 333980 - - - [kworker/0:2] - 0.0 - 0.0 - 31671 - 2019-09-12 16:44 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEA78g1gmG98Sh4hso8mYGagj98M+SZU7mklbC5Ylv90mecsLD9QlcZ -j64z5uABclz5lErdbtVu7ix4Tk5PyrTW0vbh40tqa48oifPl4iA7hQUmYpnnO8Sp -h/HCcHGsiLrW5PytDN2JcOaRZz03cOaoze29KkQgjav+DNZdzqV79aVnujaRqTPY -G6B3pInhVeKgiuJkXQEiql4f4GdBHZTkEDz2ammjqu507NL8iPkJs1mE8N0Q0CtC -mgXNqzS6bIzTLMgBU1MK77NLsPs2GsNo9x6V/CuutmUHwlccdf1NVyhO9EpzxY1C -TFzojgPT62pKR5Ehgl9bHyVGF1RY0kxwKfXJqyVZg87z7jh3YjyzG4RWsihNyiRe -HUuKK+rpMj+QwRbbt/97siDxHb6OShKDEWJoR8aj//vY03c79zXtZtoAcpPDp5Et -jNUEYqnVZabEuryaUsAOD0Dyx3twWEm1DW+4PJYUYDlNtcuD8X3kvyOnjBy9AbbR -irG1iZFVLzyNaX/0ijdY94+iw2c1Ga4HQp6MAdkKiaJlN7pkRksd4778dZRimYiu -dD42Nb36YQca50d0sHKalWFTBaT+ksRSrFZVs1Wb8yE9KkJf4bYLRYLhIdYTra22 -C9o5xHCOTDecATXMg0gGQHbjm0x0a1nt+X1gyyjNfHLX13n5as9JXf0CAwEAAQ== ------END RSA PUBLIC KEY----- - - root - prod-rudder - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - [{"cpu_vulnerabilities":{"l1tf":{"details":"PTE Inversion","status":"mitigated"},"spectre_v1":{"details":"usercopy/swapgs barriers and __user pointer sanitization","status":"mitigated"},"spec_store_bypass":{"status":"vulnerable"},"mds":{"status":"vulnerable","details":"Clear CPU buffers attempted, no microcode; SMT Host state unknown"},"meltdown":{"details":"PTI","status":"mitigated"},"spectre_v2":{"status":"mitigated","details":"Full generic retpoline, STIBP: disabled, RSB filling"}}}] - dev-www-01.lab.rudder.io - - e71e186b-57b5-4bb0-bd3e-4e2c58189f04 - - - amd64 - 440 - deb - accountsservice - Ubuntu - 0.6.45-1ubuntu1 - - - amd64 - 200 - deb - acl - Ubuntu - 2.2.52-3build1 - - - amd64 - 139 - deb - acpid - Ubuntu - 1:2.0.28-1ubuntu1 - - - all - 624 - deb - adduser - Ubuntu - 3.116ubuntu1 - - - amd64 - 2248 - deb - alsa-utils - Ubuntu - 1.1.3-1ubuntu1 - - - amd64 - 75 - deb - amd64-microcode - Ubuntu - 3.20180524.1~ubuntu0.18.04.2 - - - amd64 - 105 - deb - anacron - Ubuntu - 2.3-24 - - - amd64 - 522 - deb - apache2 - Ubuntu - 2.4.29-1ubuntu4.10 - - - amd64 - 4018 - deb - apache2-bin - Ubuntu - 2.4.29-1ubuntu4.10 - - - all - 870 - deb - apache2-data - Ubuntu - 2.4.29-1ubuntu4.10 - - - amd64 - 327 - deb - apache2-utils - Ubuntu - 2.4.29-1ubuntu4.10 - - - amd64 - 1848 - deb - apparmor - Ubuntu - 2.12-4ubuntu5.1 - - - all - 772 - deb - apport - Ubuntu - 2.20.9-0ubuntu7.7 - - - all - 194 - deb - apport-gtk - Ubuntu - 2.20.9-0ubuntu7.7 - - - all - 75 - deb - apport-symptoms - Ubuntu - 0.20 - - - amd64 - 3805 - deb - apt - Ubuntu - 1.6.6ubuntu0.1 - - - amd64 - 768 - deb - apt-utils - Ubuntu - 1.6.6ubuntu0.1 - - - all - 196 - deb - aptdaemon - Ubuntu - 1.1.1+bzr982-0ubuntu19 - - - all - 246 - deb - aptdaemon-data - Ubuntu - 1.1.1+bzr982-0ubuntu19 - - - amd64 - 360 - deb - aspell - Ubuntu - 0.60.7~20110707-4 - - - all - 424 - deb - aspell-en - Ubuntu - 2017.08.24-0-0.1 - - - amd64 - 151 - deb - at - Ubuntu - 3.1.20-3.1ubuntu2 - - - amd64 - 280 - deb - at-spi2-core - Ubuntu - 2.28.0-1 - - - amd64 - 375 - deb - base-files - Ubuntu - 10.1ubuntu2.2 - - - amd64 - 228 - deb - base-passwd - Ubuntu - 3.5.44 - - - amd64 - 1588 - deb - bash - Ubuntu - 4.4.18-2ubuntu1 - - - all - 1361 - deb - bash-completion - Ubuntu - 1:2.8-1ubuntu1 - - - amd64 - 218 - deb - bc - Ubuntu - 1.07.1-2 - - - amd64 - 86 - deb - bcache-tools - Ubuntu - 1.0.8-2build1 - - - amd64 - 174 - deb - bind9-host - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 102 - deb - binutils - Ubuntu - 2.30-21ubuntu1~18.04.2 - - - amd64 - 416 - deb - binutils-common - Ubuntu - 2.30-21ubuntu1~18.04.2 - - - amd64 - 11758 - deb - binutils-x86-64-linux-gnu - Ubuntu - 2.30-21ubuntu1~18.04.2 - - - amd64 - 583 - deb - bsdmainutils - Ubuntu - 11.1.2ubuntu1 - - - amd64 - 264 - deb - bsdutils - Ubuntu - 1:2.31.1-0.4ubuntu3.1 - - - amd64 - 4110 - deb - btrfs-progs - Ubuntu - 4.15.1-1build1 - - - amd64 - 18 - deb - btrfs-tools - Ubuntu - 4.15.1-1build1 - - - amd64 - 345 - deb - busybox-initramfs - Ubuntu - 1:1.27.2-2ubuntu3.2 - - - amd64 - 2113 - deb - busybox-static - Ubuntu - 1:1.27.2-2ubuntu3.2 - - - all - 650 - deb - byobu - Ubuntu - 5.125-0ubuntu1 - - - amd64 - 177 - deb - bzip2 - Ubuntu - 1.0.6-8.1ubuntu0.2 - - - all - 392 - deb - ca-certificates - Ubuntu - 20180409 - - - all - 57 - deb - cloud-guest-utils - Ubuntu - 0.30-0ubuntu5 - - - all - 23 - deb - cloud-initramfs-copymods - Ubuntu - 0.40ubuntu1 - - - all - 31 - deb - cloud-initramfs-dyn-netconf - Ubuntu - 0.40ubuntu1 - - - all - 35 - deb - command-not-found - Ubuntu - 18.04.5 - - - amd64 - 2961 - deb - command-not-found-data - Ubuntu - 18.04.5 - - - all - 446 - deb - console-setup - Ubuntu - 1.178ubuntu2.3 - - - all - 1229 - deb - console-setup-linux - Ubuntu - 1.178ubuntu2.3 - - - amd64 - 6560 - deb - coreutils - Ubuntu - 8.28-1ubuntu1 - - - amd64 - 348 - deb - cpio - Ubuntu - 2.12+dfsg-6 - - - amd64 - 64 - deb - cpp - Ubuntu - 4:7.4.0-1ubuntu2.3 - - - amd64 - 22753 - deb - cpp-7 - Ubuntu - 7.4.0-1ubuntu1~18.04.1 - - - amd64 - 265 - deb - crda - Ubuntu - 3.18-1build1 - - - amd64 - 247 - deb - cron - Ubuntu - 3.0pl1-128.1ubuntu1 - - - amd64 - 393 - deb - cryptsetup - Ubuntu - 2:2.0.2-1ubuntu1 - - - amd64 - 416 - deb - cryptsetup-bin - Ubuntu - 2:2.0.2-1ubuntu1 - - - amd64 - 387 - deb - curl - Ubuntu - 7.58.0-2ubuntu3.8 - - - amd64 - 214 - deb - dash - Ubuntu - 0.5.8-2.10 - - - amd64 - 560 - deb - dbus - Ubuntu - 1.12.2-1ubuntu1.1 - - - amd64 - 121 - deb - dbus-user-session - Ubuntu - 1.12.2-1ubuntu1.1 - - - amd64 - 147 - deb - dbus-x11 - Ubuntu - 1.12.2-1ubuntu1.1 - - - amd64 - 71 - deb - dconf-gsettings-backend - Ubuntu - 0.26.0-2ubuntu3 - - - amd64 - 102 - deb - dconf-service - Ubuntu - 0.26.0-2ubuntu3 - - - all - 545 - deb - debconf - Ubuntu - 1.5.66 - - - all - 780 - deb - debconf-i18n - Ubuntu - 1.5.66 - - - amd64 - 212 - deb - debianutils - Ubuntu - 4.8.4 - - - amd64 - 250 - deb - desktop-file-utils - Ubuntu - 0.23-1ubuntu3.18.04.1 - - - all - 757 - deb - dictionaries-common - Ubuntu - 1.27.2 - - - amd64 - 63 - deb - diffstat - Ubuntu - 1.61-1build1 - - - amd64 - 452 - deb - diffutils - Ubuntu - 1:3.6-1 - - - amd64 - 852 - deb - dirmngr - Ubuntu - 2.2.4-1ubuntu1.2 - - - all - 16 - deb - distro-info-data - Ubuntu - 0.37ubuntu0.5 - - - amd64 - 188 - deb - dmeventd - Ubuntu - 2:1.02.145-4.1ubuntu3 - - - amd64 - 178 - deb - dmidecode - Ubuntu - 3.1-1 - - - amd64 - 254 - deb - dmsetup - Ubuntu - 2:1.02.145-4.1ubuntu3 - - - all - 17 - deb - dns-root-data - Ubuntu - 2018013001 - - - amd64 - 764 - deb - dnsmasq-base - Ubuntu - 2.79-1 - - - amd64 - 502 - deb - dnsutils - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 211 - deb - dosfstools - Ubuntu - 4.1-1 - - - amd64 - 6773 - deb - dpkg - Ubuntu - 1.19.0.5ubuntu2 - - - amd64 - 1222 - deb - e2fsprogs - Ubuntu - 1.44.1-1 - - - amd64 - 348 - deb - ebtables - Ubuntu - 2.0.10.4-3.5ubuntu2.18.04.3 - - - amd64 - 101 - deb - ed - Ubuntu - 1.10-2.1 - - - amd64 - 160 - deb - eject - Ubuntu - 2.1.5+deb1+cvs20081104-13.2 - - - all - 136 - deb - emacsen-common - Ubuntu - 2.0.8 - - - amd64 - 53 - deb - enchant - Ubuntu - 1.6.0-11.1 - - - amd64 - 383 - deb - ethtool - Ubuntu - 1:4.15-0ubuntu1 - - - amd64 - 427 - deb - fdisk - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 80 - deb - file - Ubuntu - 1:5.32-2ubuntu0.2 - - - amd64 - 580 - deb - findutils - Ubuntu - 4.6.0+git+20170828-2 - - - amd64 - 563 - deb - fontconfig - Ubuntu - 2.12.6-0ubuntu2 - - - all - 414 - deb - fontconfig-config - Ubuntu - 2.12.6-0ubuntu2 - - - all - 2089 - deb - fonts-liberation - Ubuntu - 1:1.07.4-5 - - - all - 4103 - deb - fonts-ubuntu - Ubuntu - 0.83-2 - - - all - 62 - deb - fonts-ubuntu-console - Ubuntu - 0.83-2 - - - amd64 - 107 - deb - fortune-mod - Ubuntu - 1:1.99.1-7build1 - - - all - 151 - deb - fortunes-min - Ubuntu - 1:1.99.1-7build1 - - - all - 44 - deb - friendly-recovery - Ubuntu - 0.2.38 - - - amd64 - 136 - deb - ftp - Ubuntu - 0.17-34 - - - amd64 - 104 - deb - fuse - Ubuntu - 2.9.7-1ubuntu1 - - - amd64 - 1516 - deb - gawk - Ubuntu - 1:4.1.4+dfsg-1build1 - - - amd64 - 112 - deb - gcc-7-base - Ubuntu - 7.4.0-1ubuntu1~18.04.1 - - - amd64 - 113 - deb - gcc-8-base - Ubuntu - 8.3.0-6ubuntu1~18.04.1 - - - amd64 - 364 - deb - gconf-service - Ubuntu - 3.2.6-4ubuntu1 - - - amd64 - 549 - deb - gconf-service-backend - Ubuntu - 3.2.6-4ubuntu1 - - - amd64 - 590 - deb - gconf2 - Ubuntu - 3.2.6-4ubuntu1 - - - all - 6379 - deb - gconf2-common - Ubuntu - 3.2.6-4ubuntu1 - - - amd64 - 388 - deb - gcr - Ubuntu - 3.28.0-1 - - - amd64 - 8487 - deb - gdb - Ubuntu - 8.1-0ubuntu3 - - - amd64 - 1114 - deb - gdbserver - Ubuntu - 8.1-0ubuntu3 - - - amd64 - 783 - deb - gdisk - Ubuntu - 1.0.3-1 - - - all - 6834 - deb - geoip-database - Ubuntu - 20180315-1 - - - amd64 - 6482 - deb - gettext - Ubuntu - 0.19.8.1-6ubuntu0.3 - - - amd64 - 710 - deb - gettext-base - Ubuntu - 0.19.8.1-6ubuntu0.3 - - - amd64 - 63 - deb - giblib1 - Ubuntu - 1.2.4-11 - - - amd64 - 89 - deb - gir1.2-atk-1.0 - Ubuntu - 2.28.1-1 - - - amd64 - 49 - deb - gir1.2-freedesktop - Ubuntu - 1.56.1-1 - - - amd64 - 41 - deb - gir1.2-gdkpixbuf-2.0 - Ubuntu - 2.36.11-2 - - - amd64 - 630 - deb - gir1.2-glib-2.0 - Ubuntu - 1.56.1-1 - - - amd64 - 78 - deb - gir1.2-goa-1.0 - Ubuntu - 3.28.0-0ubuntu2.1 - - - amd64 - 998 - deb - gir1.2-gtk-3.0 - Ubuntu - 3.22.30-1ubuntu1 - - - amd64 - 172 - deb - gir1.2-javascriptcoregtk-4.0 - Ubuntu - 2.24.4-0ubuntu0.18.04.1 - - - amd64 - 120 - deb - gir1.2-packagekitglib-1.0 - Ubuntu - 1.1.9-1ubuntu2 - - - amd64 - 111 - deb - gir1.2-pango-1.0 - Ubuntu - 1.40.14-1ubuntu0.1 - - - amd64 - 38 - deb - gir1.2-secret-1 - Ubuntu - 0.18.6-1 - - - amd64 - 52 - deb - gir1.2-snapd-1 - Ubuntu - 1.41-0ubuntu0.18.04.1 - - - amd64 - 122 - deb - gir1.2-soup-2.4 - Ubuntu - 2.62.1-1ubuntu0.1 - - - amd64 - 54 - deb - gir1.2-vte-2.91 - Ubuntu - 0.52.2-1ubuntu1~18.04.1 - - - amd64 - 434 - deb - gir1.2-webkit2-4.0 - Ubuntu - 2.24.4-0ubuntu0.18.04.1 - - - amd64 - 48 - deb - gir1.2-wnck-3.0 - Ubuntu - 3.24.1-2 - - - amd64 - 31444 - deb - git - Ubuntu - 1:2.17.1-1ubuntu0.4 - - - all - 1589 - deb - git-man - Ubuntu - 1:2.17.1-1ubuntu0.4 - - - amd64 - 182 - deb - glib-networking - Ubuntu - 2.56.0-1 - - - all - 44 - deb - glib-networking-common - Ubuntu - 2.56.0-1 - - - amd64 - 38 - deb - glib-networking-services - Ubuntu - 2.56.0-1 - - - all - 5633 - deb - gnome-accessibility-themes - Ubuntu - 3.28-1ubuntu1 - - - amd64 - 3536 - deb - gnome-keyring - Ubuntu - 3.28.0.2-1ubuntu1.18.04.1 - - - amd64 - 113 - deb - gnome-keyring-pkcs11 - Ubuntu - 3.28.0.2-1ubuntu1.18.04.1 - - - amd64 - 276 - deb - gnome-screenshot - Ubuntu - 3.25.0-0ubuntu2 - - - amd64 - 42 - deb - gnome-themes-extra - Ubuntu - 3.28-1ubuntu1 - - - all - 504 - deb - gnome-themes-extra-data - Ubuntu - 3.28-1ubuntu1 - - - all - 14 - deb - gnome-themes-standard - Ubuntu - 3.28-1ubuntu1 - - - amd64 - 362 - deb - gnupg - Ubuntu - 2.2.4-1ubuntu1.2 - - - all - 364 - deb - gnupg-l10n - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 466 - deb - gnupg-utils - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 1082 - deb - gpg - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 855 - deb - gpg-agent - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 251 - deb - gpg-wks-client - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 235 - deb - gpg-wks-server - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 384 - deb - gpgconf - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 549 - deb - gpgsm - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 476 - deb - gpgv - Ubuntu - 2.2.4-1ubuntu1.2 - - - amd64 - 508 - deb - grep - Ubuntu - 3.1-2 - - - amd64 - 3298 - deb - groff-base - Ubuntu - 1.22.3-10 - - - amd64 - 12028 - deb - grub-common - Ubuntu - 2.02-2ubuntu8.2 - - - amd64 - 47 - deb - grub-gfxpayload-lists - Ubuntu - 0.7 - - - all - 81 - deb - grub-legacy-ec2 - Ubuntu - 1:1 - - - amd64 - 560 - deb - grub-pc - Ubuntu - 2.02-2ubuntu8.2 - - - amd64 - 2917 - deb - grub-pc-bin - Ubuntu - 2.02-2ubuntu8.2 - - - amd64 - 1159 - deb - grub2-common - Ubuntu - 2.02-2ubuntu8.2 - - - all - 272 - deb - gsettings-desktop-schemas - Ubuntu - 3.28.0-1ubuntu1 - - - amd64 - 347 - deb - gstreamer1.0-gl - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.2 - - - amd64 - 2007 - deb - gstreamer1.0-plugins-base - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.2 - - - amd64 - 5848 - deb - gstreamer1.0-plugins-good - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.1 - - - amd64 - 240 - deb - gstreamer1.0-pulseaudio - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.1 - - - amd64 - 321 - deb - gstreamer1.0-x - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.2 - - - amd64 - 140 - deb - gtk-update-icon-cache - Ubuntu - 3.22.30-1ubuntu1 - - - amd64 - 1359 - deb - gtk2-engines - Ubuntu - 1:2.20.2-5 - - - amd64 - 316 - deb - gtk2-engines-murrine - Ubuntu - 0.98.2-2ubuntu1 - - - amd64 - 112 - deb - gtk2-engines-pixbuf - Ubuntu - 2.24.32-1ubuntu1 - - - amd64 - 369 - deb - gvfs - Ubuntu - 1.36.1-0ubuntu1.3.3 - - - amd64 - 1608 - deb - gvfs-backends - Ubuntu - 1.36.1-0ubuntu1.3.3 - - - all - 168 - deb - gvfs-common - Ubuntu - 1.36.1-0ubuntu1.3.3 - - - amd64 - 489 - deb - gvfs-daemons - Ubuntu - 1.36.1-0ubuntu1.3.3 - - - amd64 - 69 - deb - gvfs-fuse - Ubuntu - 1.36.1-0ubuntu1.3.3 - - - amd64 - 419 - deb - gvfs-libs - Ubuntu - 1.36.1-0ubuntu1.3.3 - - - amd64 - 229 - deb - gzip - Ubuntu - 1.6-5ubuntu1 - - - amd64 - 235 - deb - hdparm - Ubuntu - 9.54+ds-1 - - - all - 440 - deb - hicolor-icon-theme - Ubuntu - 0.17-2 - - - amd64 - 46 - deb - hostname - Ubuntu - 3.20 - - - amd64 - 216 - deb - htop - Ubuntu - 2.1.0-3 - - - all - 562 - deb - hunspell-en-us - Ubuntu - 1:2017.08.24 - - - amd64 - 585 - deb - info - Ubuntu - 6.5.0.dfsg.1-2 - - - amd64 - 19 - deb - init - Ubuntu - 1.51 - - - all - 129 - deb - init-system-helpers - Ubuntu - 1.51 - - - all - 136 - deb - initramfs-tools - Ubuntu - 0.130ubuntu3.6 - - - amd64 - 113 - deb - initramfs-tools-bin - Ubuntu - 0.130ubuntu3.6 - - - all - 268 - deb - initramfs-tools-core - Ubuntu - 0.130ubuntu3.6 - - - amd64 - 382 - deb - install-info - Ubuntu - 6.5.0.dfsg.1-2 - - - all - 48 - deb - installation-report - Ubuntu - 2.62ubuntu1 - - - amd64 - 2422 - deb - intel-microcode - Ubuntu - 3.20190618.0ubuntu0.18.04.1 - - - all - 109 - deb - intltool-debian - Ubuntu - 0.35.0+20060710.4 - - - amd64 - 2088 - deb - iproute2 - Ubuntu - 4.15.0-2ubuntu1 - - - amd64 - 1597 - deb - iptables - Ubuntu - 1.6.1-2ubuntu2 - - - amd64 - 115 - deb - iputils-ping - Ubuntu - 3:20161105-1ubuntu2 - - - amd64 - 76 - deb - iputils-tracepath - Ubuntu - 3:20161105-1ubuntu2 - - - amd64 - 155 - deb - irqbalance - Ubuntu - 1.3.0-0.1 - - - amd64 - 702 - deb - isc-dhcp-client - Ubuntu - 4.3.5-3ubuntu7.1 - - - amd64 - 155 - deb - isc-dhcp-common - Ubuntu - 4.3.5-3ubuntu7.1 - - - all - 18648 - deb - iso-codes - Ubuntu - 3.79-1 - - - amd64 - 98 - deb - iucode-tool - Ubuntu - 2.3.1-1 - - - amd64 - 219 - deb - iw - Ubuntu - 4.14-0.1 - - - amd64 - 1248 - deb - kbd - Ubuntu - 2.0.4-2ubuntu1 - - - all - 2557 - deb - keyboard-configuration - Ubuntu - 1.178ubuntu2.3 - - - amd64 - 390 - deb - klibc-utils - Ubuntu - 2.0.4-9ubuntu2 - - - amd64 - 232 - deb - kmod - Ubuntu - 24-1ubuntu3 - - - all - 136 - deb - krb5-locales - Ubuntu - 1.16-2ubuntu0.1 - - - amd64 - 396 - deb - landscape-common - Ubuntu - 18.01-0ubuntu3.1 - - - all - 9 - deb - language-pack-en - Ubuntu - 1:18.04+20180712 - - - all - 3659 - deb - language-pack-en-base - Ubuntu - 1:18.04+20180712 - - - all - 9 - deb - language-pack-gnome-en - Ubuntu - 1:18.04+20180712 - - - all - 3419 - deb - language-pack-gnome-en-base - Ubuntu - 1:18.04+20180712 - - - all - 1656 - deb - language-selector-common - Ubuntu - 0.188.1 - - - all - 20 - deb - laptop-detect - Ubuntu - 0.16 - - - amd64 - 284 - deb - less - Ubuntu - 487-0.1 - - - amd64 - 147 - deb - libaa1 - Ubuntu - 1.4p5-44build2 - - - amd64 - 348 - deb - libaccountsservice0 - Ubuntu - 0.6.45-1ubuntu1 - - - amd64 - 57 - deb - libacl1 - Ubuntu - 2.2.52-3build1 - - - amd64 - 30 - deb - libaio1 - Ubuntu - 0.3.110-5 - - - all - 16 - deb - libapache2-mod-php - Ubuntu - 1:7.2+60ubuntu1 - - - amd64 - 4681 - deb - libapache2-mod-php7.2 - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 142 - deb - libapparmor1 - Ubuntu - 2.12-4ubuntu5.1 - - - amd64 - 76 - deb - libappindicator3-1 - Ubuntu - 12.10.1+18.04.20180322.1-0ubuntu1 - - - amd64 - 316 - deb - libappstream4 - Ubuntu - 0.12.0-3 - - - amd64 - 260 - deb - libapr1 - Ubuntu - 1.6.3-2 - - - amd64 - 258 - deb - libaprutil1 - Ubuntu - 1.6.1-2 - - - amd64 - 47 - deb - libaprutil1-dbd-sqlite3 - Ubuntu - 1.6.1-2 - - - amd64 - 39 - deb - libaprutil1-ldap - Ubuntu - 1.6.1-2 - - - amd64 - 476 - deb - libapt-inst2.0 - Ubuntu - 1.6.6ubuntu0.1 - - - amd64 - 214 - deb - libapt-pkg-perl - Ubuntu - 0.1.33build1 - - - amd64 - 3112 - deb - libapt-pkg5.0 - Ubuntu - 1.6.6ubuntu0.1 - - - all - 268 - deb - libarchive-zip-perl - Ubuntu - 1.60-1ubuntu0.1 - - - amd64 - 754 - deb - libarchive13 - Ubuntu - 3.2.2-3.1ubuntu0.3 - - - amd64 - 55 - deb - libargon2-0 - Ubuntu - 0~20161029-1.1 - - - amd64 - 122 - deb - libart-2.0-2 - Ubuntu - 2.3.21-3 - - - amd64 - 782 - deb - libasn1-8-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 1275 - deb - libasound2 - Ubuntu - 1.1.3-5ubuntu0.1 - - - all - 637 - deb - libasound2-data - Ubuntu - 1.1.3-5ubuntu0.1 - - - amd64 - 269 - deb - libasound2-plugins - Ubuntu - 1.1.1-1ubuntu1 - - - amd64 - 2137 - deb - libaspell15 - Ubuntu - 0.60.7~20110707-4 - - - amd64 - 100 - deb - libassuan0 - Ubuntu - 2.5.1-2 - - - amd64 - 39 - deb - libasyncns0 - Ubuntu - 0.8-6 - - - amd64 - 74 - deb - libatasmart4 - Ubuntu - 0.19-4 - - - amd64 - 224 - deb - libatk-bridge2.0-0 - Ubuntu - 2.26.2-1 - - - amd64 - 182 - deb - libatk1.0-0 - Ubuntu - 2.28.1-1 - - - all - 44 - deb - libatk1.0-data - Ubuntu - 2.28.1-1 - - - amd64 - 314 - deb - libatkmm-1.6-1v5 - Ubuntu - 2.24.2-3 - - - amd64 - 105 - deb - libatm1 - Ubuntu - 1:2.5.1-2build1 - - - amd64 - 213 - deb - libatspi2.0-0 - Ubuntu - 2.28.0-1 - - - amd64 - 36 - deb - libattr1 - Ubuntu - 1:2.4.47-2build1 - - - all - 23 - deb - libaudit-common - Ubuntu - 1:2.8.2-1ubuntu1 - - - amd64 - 147 - deb - libaudit1 - Ubuntu - 1:2.8.2-1ubuntu1 - - - all - 153 - deb - libauthen-sasl-perl - Ubuntu - 2.1600-1 - - - amd64 - 124 - deb - libavahi-client3 - Ubuntu - 0.7-3.1ubuntu1.2 - - - amd64 - 112 - deb - libavahi-common-data - Ubuntu - 0.7-3.1ubuntu1.2 - - - amd64 - 105 - deb - libavahi-common3 - Ubuntu - 0.7-3.1ubuntu1.2 - - - amd64 - 70 - deb - libavahi-glib1 - Ubuntu - 0.7-3.1ubuntu1.2 - - - amd64 - 59 - deb - libavc1394-0 - Ubuntu - 0.5.4-4build1 - - - amd64 - 501 - deb - libbabeltrace1 - Ubuntu - 1.5.5-1 - - - amd64 - 113 - deb - libbind9-160 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 3039 - deb - libbinutils - Ubuntu - 2.30-21ubuntu1~18.04.2 - - - amd64 - 398 - deb - libblkid1 - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 42 - deb - libblockdev-crypto2 - Ubuntu - 2.16-2 - - - amd64 - 69 - deb - libblockdev-fs2 - Ubuntu - 2.16-2 - - - amd64 - 30 - deb - libblockdev-loop2 - Ubuntu - 2.16-2 - - - amd64 - 22 - deb - libblockdev-part-err2 - Ubuntu - 2.16-2 - - - amd64 - 51 - deb - libblockdev-part2 - Ubuntu - 2.16-2 - - - amd64 - 30 - deb - libblockdev-swap2 - Ubuntu - 2.16-2 - - - amd64 - 43 - deb - libblockdev-utils2 - Ubuntu - 2.16-2 - - - amd64 - 229 - deb - libblockdev2 - Ubuntu - 2.16-2 - - - amd64 - 1028 - deb - libbonobo2-0 - Ubuntu - 2.32.1-3 - - - all - 288 - deb - libbonobo2-common - Ubuntu - 2.32.1-3 - - - amd64 - 485 - deb - libbonoboui2-0 - Ubuntu - 2.24.5-4 - - - all - 44 - deb - libbonoboui2-common - Ubuntu - 2.24.5-4 - - - amd64 - 733 - deb - libbrotli1 - Ubuntu - 1.0.3-1ubuntu1.2 - - - amd64 - 170 - deb - libbsd0 - Ubuntu - 0.8.7-1 - - - amd64 - 90 - deb - libbz2-1.0 - Ubuntu - 1.0.6-8.1ubuntu0.2 - - - amd64 - 3631 - deb - libc-bin - Ubuntu - 2.27-3ubuntu1 - - - amd64 - 11877 - deb - libc6 - Ubuntu - 2.27-3ubuntu1 - - - amd64 - 39460 - deb - libc6-dbg - Ubuntu - 2.27-3ubuntu1 - - - amd64 - 1033 - deb - libcaca0 - Ubuntu - 0.99.beta19-2ubuntu0.18.04.1 - - - amd64 - 51 - deb - libcairo-gobject-perl - Ubuntu - 1.004-2build3 - - - amd64 - 90 - deb - libcairo-gobject2 - Ubuntu - 1.15.10-2 - - - amd64 - 357 - deb - libcairo-perl - Ubuntu - 1.106-2build2 - - - amd64 - 1306 - deb - libcairo2 - Ubuntu - 1.15.10-2 - - - amd64 - 163 - deb - libcairomm-1.0-1v5 - Ubuntu - 1.12.2-3 - - - amd64 - 36 - deb - libcanberra-gtk3-0 - Ubuntu - 0.30-5ubuntu1 - - - amd64 - 50 - deb - libcanberra-gtk3-module - Ubuntu - 0.30-5ubuntu1 - - - amd64 - 117 - deb - libcanberra0 - Ubuntu - 0.30-5ubuntu1 - - - amd64 - 36 - deb - libcap-ng0 - Ubuntu - 0.7.7-3.1 - - - amd64 - 46 - deb - libcap2 - Ubuntu - 1:2.25-1.2 - - - amd64 - 84 - deb - libcap2-bin - Ubuntu - 1:2.25-1.2 - - - amd64 - 148 - deb - libcc1-0 - Ubuntu - 8.3.0-6ubuntu1~18.04.1 - - - amd64 - 58 - deb - libcdio-cdda2 - Ubuntu - 10.2+0.94+2-2build1 - - - amd64 - 59 - deb - libcdio-paranoia2 - Ubuntu - 10.2+0.94+2-2build1 - - - amd64 - 304 - deb - libcdio17 - Ubuntu - 1.0.0-2ubuntu2 - - - amd64 - 130 - deb - libcdparanoia0 - Ubuntu - 3.10.2+debian-13 - - - all - 26 - deb - libcgi-fast-perl - Ubuntu - 1:2.13-1 - - - all - 446 - deb - libcgi-pm-perl - Ubuntu - 4.38-1 - - - all - 54 - deb - libclass-accessor-perl - Ubuntu - 0.51-1 - - - amd64 - 35 - deb - libclone-perl - Ubuntu - 0.39-1 - - - amd64 - 380 - deb - libcolord2 - Ubuntu - 1.3.3-2build1 - - - amd64 - 86 - deb - libcom-err2 - Ubuntu - 1.44.1-1 - - - amd64 - 271 - deb - libcroco3 - Ubuntu - 0.6.12-2 - - - amd64 - 375 - deb - libcryptsetup12 - Ubuntu - 2:2.0.2-1ubuntu1 - - - amd64 - 709 - deb - libcups2 - Ubuntu - 2.2.7-1ubuntu2.7 - - - amd64 - 622 - deb - libcurl3-gnutls - Ubuntu - 7.58.0-2ubuntu3.8 - - - amd64 - 638 - deb - libcurl3-nss - Ubuntu - 7.58.0-2ubuntu3.8 - - - amd64 - 627 - deb - libcurl4 - Ubuntu - 7.58.0-2ubuntu3.8 - - - all - 94 - deb - libdata-dump-perl - Ubuntu - 1.23-1 - - - amd64 - 52 - deb - libdatrie1 - Ubuntu - 0.2.10-7 - - - amd64 - 1729 - deb - libdb5.3 - Ubuntu - 5.3.28-13.1ubuntu1.1 - - - amd64 - 448 - deb - libdbus-1-3 - Ubuntu - 1.12.2-1ubuntu1.1 - - - amd64 - 198 - deb - libdbus-glib-1-2 - Ubuntu - 0.110-2 - - - amd64 - 145 - deb - libdbusmenu-glib4 - Ubuntu - 16.04.1+18.04.20171206-0ubuntu1 - - - amd64 - 111 - deb - libdbusmenu-gtk3-4 - Ubuntu - 16.04.1+18.04.20171206-0ubuntu1 - - - amd64 - 90 - deb - libdconf1 - Ubuntu - 0.26.0-2ubuntu3 - - - amd64 - 68 - deb - libdebconfclient0 - Ubuntu - 0.213ubuntu1 - - - amd64 - 64 - deb - libdevmapper-event1.02.1 - Ubuntu - 2:1.02.145-4.1ubuntu3 - - - amd64 - 482 - deb - libdevmapper1.02.1 - Ubuntu - 2:1.02.145-4.1ubuntu3 - - - all - 72 - deb - libdigest-hmac-perl - Ubuntu - 1.03+dfsg-1 - - - amd64 - 2210 - deb - libdns-export1100 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 4649 - deb - libdns1100 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - all - 2020 - deb - libdpkg-perl - Ubuntu - 1.19.0.5ubuntu2 - - - amd64 - 78 - deb - libdrm-amdgpu1 - Ubuntu - 2.4.91-2 - - - all - 39 - deb - libdrm-common - Ubuntu - 2.4.91-2 - - - amd64 - 180 - deb - libdrm-intel1 - Ubuntu - 2.4.91-2 - - - amd64 - 72 - deb - libdrm-nouveau2 - Ubuntu - 2.4.91-2 - - - amd64 - 85 - deb - libdrm-radeon1 - Ubuntu - 2.4.91-2 - - - amd64 - 110 - deb - libdrm2 - Ubuntu - 2.4.91-2 - - - amd64 - 89 - deb - libdumbnet1 - Ubuntu - 1.12-7build1 - - - amd64 - 160 - deb - libdv4 - Ubuntu - 1.0.0-11 - - - amd64 - 776 - deb - libdw1 - Ubuntu - 0.170-0.4ubuntu0.1 - - - amd64 - 234 - deb - libedit2 - Ubuntu - 3.1-20170329-1 - - - amd64 - 305 - deb - libegl-mesa0 - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 107 - deb - libegl1 - Ubuntu - 1.0.0-2ubuntu2.1 - - - amd64 - 65 - deb - libegl1-mesa - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 180 - deb - libelf1 - Ubuntu - 0.170-0.4ubuntu0.1 - - - all - 57 - deb - libemail-valid-perl - Ubuntu - 1.202-1 - - - amd64 - 230 - deb - libenchant1c2a - Ubuntu - 1.6.0-11.1 - - - all - 32 - deb - libencode-locale-perl - Ubuntu - 1.05-1 - - - amd64 - 1171 - deb - libepoxy0 - Ubuntu - 1.4.3-1 - - - all - 62 - deb - liberror-perl - Ubuntu - 0.17025-1 - - - amd64 - 30 - deb - libestr0 - Ubuntu - 0.1.10-2.1 - - - amd64 - 124 - deb - libevdev2 - Ubuntu - 1.5.8+dfsg-1 - - - amd64 - 370 - deb - libevent-2.1-6 - Ubuntu - 2.1.8-stable-4build1 - - - amd64 - 245 - deb - libevent-core-2.1-6 - Ubuntu - 2.1.8-stable-4build1 - - - amd64 - 352 - deb - libexif12 - Ubuntu - 0.6.21-4 - - - amd64 - 439 - deb - libexpat1 - Ubuntu - 2.2.5-3ubuntu0.1 - - - all - 94 - deb - libexporter-tiny-perl - Ubuntu - 1.000000-2 - - - amd64 - 451 - deb - libext2fs2 - Ubuntu - 1.44.1-1 - - - amd64 - 61 - deb - libfastjson4 - Ubuntu - 0.99.8-2 - - - amd64 - 91 - deb - libfcgi-perl - Ubuntu - 0.78-2build1 - - - amd64 - 508 - deb - libfdisk1 - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 52 - deb - libffi6 - Ubuntu - 3.2.1-8 - - - amd64 - 2189 - deb - libfftw3-single3 - Ubuntu - 3.3.7-1 - - - all - 39 - deb - libfile-basedir-perl - Ubuntu - 0.07-1 - - - amd64 - 123 - deb - libfile-fcntllock-perl - Ubuntu - 0.22-3build2 - - - all - 55 - deb - libfile-listing-perl - Ubuntu - 6.04-1 - - - amd64 - 520 - deb - libflac8 - Ubuntu - 1.3.2-1 - - - all - 1463 - deb - libfm-data - Ubuntu - 1.2.5-1ubuntu1 - - - amd64 - 67 - deb - libfm-extra4 - Ubuntu - 1.2.5-1ubuntu1 - - - all - 160 - deb - libfm-gtk-data - Ubuntu - 1.2.5-1ubuntu1 - - - amd64 - 464 - deb - libfm-gtk4 - Ubuntu - 1.2.5-1ubuntu1 - - - amd64 - 160 - deb - libfm-modules - Ubuntu - 1.2.5-1ubuntu1 - - - amd64 - 320 - deb - libfm4 - Ubuntu - 1.2.5-1ubuntu1 - - - all - 69 - deb - libfont-afm-perl - Ubuntu - 1.20-2 - - - amd64 - 553 - deb - libfontconfig1 - Ubuntu - 2.12.6-0ubuntu2 - - - amd64 - 47 - deb - libfontenc1 - Ubuntu - 1:1.1.3-1 - - - amd64 - 918 - deb - libfreetype6 - Ubuntu - 2.8.1-2ubuntu2 - - - amd64 - 118 - deb - libfribidi0 - Ubuntu - 0.19.7-2 - - - amd64 - 306 - deb - libfuse2 - Ubuntu - 2.9.7-1ubuntu1 - - - amd64 - 436 - deb - libgail-common - Ubuntu - 2.24.32-1ubuntu1 - - - amd64 - 98 - deb - libgail18 - Ubuntu - 2.24.32-1ubuntu1 - - - amd64 - 127 - deb - libgbm1 - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 112 - deb - libgcc1 - Ubuntu - 1:8.3.0-6ubuntu1~18.04.1 - - - amd64 - 240 - deb - libgck-1-0 - Ubuntu - 3.28.0-1 - - - amd64 - 569 - deb - libgconf-2-4 - Ubuntu - 3.2.6-4ubuntu1 - - - amd64 - 643 - deb - libgcr-base-3-1 - Ubuntu - 3.28.0-1 - - - amd64 - 518 - deb - libgcr-ui-3-1 - Ubuntu - 3.28.0-1 - - - amd64 - 1209 - deb - libgcrypt20 - Ubuntu - 1.8.1-4ubuntu1.1 - - - amd64 - 448 - deb - libgd3 - Ubuntu - 2.2.5-4ubuntu0.3 - - - all - 44 - deb - libgdata-common - Ubuntu - 0.17.9-2 - - - amd64 - 943 - deb - libgdata22 - Ubuntu - 0.17.9-2 - - - amd64 - 38 - deb - libgdbm-compat4 - Ubuntu - 1.14.1-6 - - - amd64 - 77 - deb - libgdbm5 - Ubuntu - 1.14.1-6 - - - amd64 - 523 - deb - libgdk-pixbuf2.0-0 - Ubuntu - 2.36.11-2 - - - amd64 - 38 - deb - libgdk-pixbuf2.0-bin - Ubuntu - 2.36.11-2 - - - all - 48 - deb - libgdk-pixbuf2.0-common - Ubuntu - 2.36.11-2 - - - amd64 - 235 - deb - libgeoip1 - Ubuntu - 1.6.12-1 - - - amd64 - 68 - deb - libgif7 - Ubuntu - 5.1.4-2ubuntu0.1 - - - amd64 - 243 - deb - libgirepository-1.0-1 - Ubuntu - 1.56.1-1 - - - amd64 - 671 - deb - libgl1 - Ubuntu - 1.0.0-2ubuntu2.1 - - - amd64 - 134299 - deb - libgl1-mesa-dri - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 199 - deb - libglade2-0 - Ubuntu - 1:2.6.4-2 - - - amd64 - 264 - deb - libglapi-mesa - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 213 - deb - libglib-object-introspection-perl - Ubuntu - 0.044-2 - - - amd64 - 909 - deb - libglib-perl - Ubuntu - 3:1.326-1build1 - - - amd64 - 3674 - deb - libglib2.0-0 - Ubuntu - 2.56.4-0ubuntu0.18.04.4 - - - amd64 - 277 - deb - libglib2.0-bin - Ubuntu - 2.56.4-0ubuntu0.18.04.4 - - - all - 88 - deb - libglib2.0-data - Ubuntu - 2.56.4-0ubuntu0.18.04.4 - - - amd64 - 2442 - deb - libglibmm-2.4-1v5 - Ubuntu - 2.56.0-1 - - - amd64 - 624 - deb - libglvnd0 - Ubuntu - 1.0.0-2ubuntu2.1 - - - amd64 - 567 - deb - libglx-mesa0 - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 90 - deb - libglx0 - Ubuntu - 1.0.0-2ubuntu2.1 - - - amd64 - 558 - deb - libgmp10 - Ubuntu - 2:6.1.2+dfsg-2 - - - amd64 - 175 - deb - libgnome-2-0 - Ubuntu - 2.32.1-6 - - - all - 84 - deb - libgnome-keyring-common - Ubuntu - 3.12.0-1build1 - - - amd64 - 226 - deb - libgnome-keyring0 - Ubuntu - 3.12.0-1build1 - - - all - 3176 - deb - libgnome2-common - Ubuntu - 2.32.1-6 - - - amd64 - 255 - deb - libgnomecanvas2-0 - Ubuntu - 2.30.3-3 - - - all - 40 - deb - libgnomecanvas2-common - Ubuntu - 2.30.3-3 - - - amd64 - 797 - deb - libgnomeui-0 - Ubuntu - 2.24.5-3.2 - - - all - 2930 - deb - libgnomeui-common - Ubuntu - 2.24.5-3.2 - - - amd64 - 1015 - deb - libgnomevfs2-0 - Ubuntu - 1:2.24.4-6.1ubuntu2 - - - amd64 - 424 - deb - libgnomevfs2-common - Ubuntu - 1:2.24.4-6.1ubuntu2 - - - amd64 - 1708 - deb - libgnutls30 - Ubuntu - 3.5.18-1ubuntu1.1 - - - amd64 - 334 - deb - libgoa-1.0-0b - Ubuntu - 3.28.0-0ubuntu2.1 - - - all - 56 - deb - libgoa-1.0-common - Ubuntu - 3.28.0-0ubuntu2.1 - - - amd64 - 211 - deb - libgomp1 - Ubuntu - 8.3.0-6ubuntu1~18.04.1 - - - amd64 - 164 - deb - libgpg-error0 - Ubuntu - 1.27-6 - - - amd64 - 317 - deb - libgpgme11 - Ubuntu - 1.10.0-1ubuntu1 - - - amd64 - 3854 - deb - libgphoto2-6 - Ubuntu - 2.5.16-2 - - - all - 112 - deb - libgphoto2-l10n - Ubuntu - 2.5.16-2 - - - amd64 - 304 - deb - libgphoto2-port12 - Ubuntu - 2.5.16-2 - - - amd64 - 59 - deb - libgpm2 - Ubuntu - 1.20.7-5 - - - amd64 - 128 - deb - libgraphene-1.0-0 - Ubuntu - 1.8.0-1 - - - amd64 - 205 - deb - libgraphite2-3 - Ubuntu - 1.3.11-2 - - - amd64 - 423 - deb - libgssapi-krb5-2 - Ubuntu - 1.16-2ubuntu0.1 - - - amd64 - 312 - deb - libgssapi3-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 527 - deb - libgstreamer-gl1.0-0 - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.2 - - - amd64 - 2332 - deb - libgstreamer-plugins-base1.0-0 - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.2 - - - amd64 - 187 - deb - libgstreamer-plugins-good1.0-0 - Ubuntu - 1.14.1-1ubuntu1~ubuntu18.04.1 - - - amd64 - 3728 - deb - libgstreamer1.0-0 - Ubuntu - 1.14.1-1~ubuntu18.04.2 - - - amd64 - 8927 - deb - libgtk-3-0 - Ubuntu - 3.22.30-1ubuntu1 - - - amd64 - 283 - deb - libgtk-3-bin - Ubuntu - 3.22.30-1ubuntu1 - - - all - 404 - deb - libgtk-3-common - Ubuntu - 3.22.30-1ubuntu1 - - - amd64 - 5670 - deb - libgtk2.0-0 - Ubuntu - 2.24.32-1ubuntu1 - - - amd64 - 70 - deb - libgtk2.0-bin - Ubuntu - 2.24.32-1ubuntu1 - - - all - 272 - deb - libgtk2.0-common - Ubuntu - 2.24.32-1ubuntu1 - - - all - 102 - deb - libgtk3-perl - Ubuntu - 0.032-1 - - - amd64 - 5830 - deb - libgtkmm-3.0-1v5 - Ubuntu - 3.22.2-2 - - - amd64 - 56 - deb - libgudev-1.0-0 - Ubuntu - 1:232-2 - - - amd64 - 29 - deb - libharfbuzz-icu0 - Ubuntu - 1.7.2-1ubuntu1 - - - amd64 - 662 - deb - libharfbuzz0b - Ubuntu - 1.7.2-1ubuntu1 - - - amd64 - 270 - deb - libhcrypto4-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 104 - deb - libheimbase1-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 77 - deb - libheimntlm0-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 228 - deb - libhogweed4 - Ubuntu - 3.4-1 - - - all - 88 - deb - libhtml-form-perl - Ubuntu - 6.03-1 - - - all - 126 - deb - libhtml-format-perl - Ubuntu - 2.12-1 - - - amd64 - 215 - deb - libhtml-parser-perl - Ubuntu - 3.72-3build1 - - - all - 31 - deb - libhtml-tagset-perl - Ubuntu - 3.20-3 - - - all - 181 - deb - libhtml-template-perl - Ubuntu - 2.97-1 - - - all - 481 - deb - libhtml-tree-perl - Ubuntu - 5.07-1 - - - all - 47 - deb - libhttp-cookies-perl - Ubuntu - 6.04-1 - - - all - 70 - deb - libhttp-daemon-perl - Ubuntu - 6.01-1 - - - all - 56 - deb - libhttp-date-perl - Ubuntu - 6.02-1 - - - all - 185 - deb - libhttp-message-perl - Ubuntu - 6.14-1 - - - all - 72 - deb - libhttp-negotiate-perl - Ubuntu - 6.00-2 - - - amd64 - 521 - deb - libhunspell-1.6-0 - Ubuntu - 1.6.2-1 - - - amd64 - 348 - deb - libhx509-5-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 74 - deb - libhyphen0 - Ubuntu - 2.8.8-5 - - - amd64 - 112 - deb - libice6 - Ubuntu - 2:1.0.9-2 - - - amd64 - 31070 - deb - libicu60 - Ubuntu - 60.2-3ubuntu3 - - - amd64 - 133 - deb - libid3tag0 - Ubuntu - 0.15.1b-13 - - - amd64 - 240 - deb - libidn11 - Ubuntu - 1.33-2.1ubuntu1 - - - amd64 - 146 - deb - libidn2-0 - Ubuntu - 2.0.4-1.1build2 - - - amd64 - 77 - deb - libiec61883-0 - Ubuntu - 1.2.0-2 - - - amd64 - 559 - deb - libimlib2 - Ubuntu - 1.4.10-1 - - - amd64 - 182 - deb - libimobiledevice6 - Ubuntu - 1.2.1~git20171128.5a854327+dfsg-0.1 - - - amd64 - 94 - deb - libindicator3-7 - Ubuntu - 16.10.0+18.04.20180321.1-0ubuntu1 - - - amd64 - 50 - deb - libinput-bin - Ubuntu - 1.10.4-1 - - - amd64 - 267 - deb - libinput10 - Ubuntu - 1.10.4-1 - - - all - 70 - deb - libio-html-perl - Ubuntu - 1.001-1 - - - amd64 - 94 - deb - libio-pty-perl - Ubuntu - 1:1.08-1.1build4 - - - all - 71 - deb - libio-socket-inet6-perl - Ubuntu - 2.72-2 - - - all - 509 - deb - libio-socket-ssl-perl - Ubuntu - 2.060-3~ubuntu18.04.1 - - - all - 58 - deb - libio-string-perl - Ubuntu - 1.08-3 - - - amd64 - 77 - deb - libip4tc0 - Ubuntu - 1.6.1-2ubuntu2 - - - amd64 - 77 - deb - libip6tc0 - Ubuntu - 1.6.1-2ubuntu2 - - - all - 251 - deb - libipc-run-perl - Ubuntu - 0.96-1 - - - all - 59 - deb - libipc-system-simple-perl - Ubuntu - 1.25-4 - - - amd64 - 55 - deb - libiptc0 - Ubuntu - 1.6.1-2ubuntu2 - - - amd64 - 90 - deb - libirs160 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 475 - deb - libisc-export169 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 1107 - deb - libisc169 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 88 - deb - libisccc160 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 232 - deb - libisccfg160 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 1736 - deb - libisl19 - Ubuntu - 0.19-1 - - - amd64 - 979 - deb - libisns0 - Ubuntu - 0.97-2build1 - - - amd64 - 56 - deb - libiw30 - Ubuntu - 30~pre9-12ubuntu1 - - - amd64 - 1085 - deb - libjack-jackd2-0 - Ubuntu - 1.9.12~dfsg-2 - - - amd64 - 79 - deb - libjansson4 - Ubuntu - 2.11-1 - - - amd64 - 19062 - deb - libjavascriptcoregtk-4.0-18 - Ubuntu - 2.24.4-0ubuntu0.18.04.1 - - - amd64 - 73 - deb - libjbig0 - Ubuntu - 2.1-3.1build1 - - - amd64 - 170 - deb - libjpeg-turbo-progs - Ubuntu - 1.5.2-0ubuntu5.18.04.1 - - - amd64 - 446 - deb - libjpeg-turbo8 - Ubuntu - 1.5.2-0ubuntu5.18.04.1 - - - amd64 - 26 - deb - libjpeg8 - Ubuntu - 8c-2ubuntu8 - - - amd64 - 65 - deb - libjson-c3 - Ubuntu - 0.12.1-1.3 - - - amd64 - 182 - deb - libjson-glib-1.0-0 - Ubuntu - 1.4.2-3 - - - all - 40 - deb - libjson-glib-1.0-common - Ubuntu - 1.4.2-3 - - - amd64 - 308 - deb - libk5crypto3 - Ubuntu - 1.16-2ubuntu0.1 - - - amd64 - 35 - deb - libkeybinder0 - Ubuntu - 0.3.1-1 - - - amd64 - 36 - deb - libkeyutils1 - Ubuntu - 1.5.9-9.2ubuntu2 - - - amd64 - 109 - deb - libklibc - Ubuntu - 2.0.4-9ubuntu2 - - - amd64 - 120 - deb - libkmod2 - Ubuntu - 24-1ubuntu3 - - - amd64 - 645 - deb - libkrb5-26-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 1011 - deb - libkrb5-3 - Ubuntu - 1.16-2ubuntu0.1 - - - amd64 - 155 - deb - libkrb5support0 - Ubuntu - 1.16-2ubuntu0.1 - - - amd64 - 259 - deb - libksba8 - Ubuntu - 1.3.5-2 - - - amd64 - 381 - deb - liblcms2-2 - Ubuntu - 2.9-1ubuntu0.1 - - - amd64 - 498 - deb - libldap-2.4-2 - Ubuntu - 2.4.45+dfsg-1ubuntu1.3 - - - all - 97 - deb - libldap-common - Ubuntu - 2.4.45+dfsg-1ubuntu1.3 - - - amd64 - 388 - deb - libldb1 - Ubuntu - 2:1.2.3-1ubuntu0.1 - - - amd64 - 160 - deb - liblightdm-gobject-1-0 - Ubuntu - 1.26.0-0ubuntu1 - - - amd64 - 177 - deb - liblist-moreutils-perl - Ubuntu - 0.416-1build3 - - - amd64 - 59703 - deb - libllvm6.0 - Ubuntu - 1:6.0-1ubuntu2 - - - amd64 - 54 - deb - liblocale-gettext-perl - Ubuntu - 1.07-3build2 - - - amd64 - 417 - deb - libltdl7 - Ubuntu - 2.4.6-2 - - - amd64 - 414 - deb - liblua5.2-0 - Ubuntu - 5.2.4-1.1build1 - - - amd64 - 1694 - deb - liblvm2app2.2 - Ubuntu - 2.02.176-4.1ubuntu3 - - - amd64 - 2484 - deb - liblvm2cmd2.02 - Ubuntu - 2.02.176-4.1ubuntu3 - - - all - 100 - deb - liblwp-mediatypes-perl - Ubuntu - 6.02-1 - - - all - 24 - deb - liblwp-protocol-https-perl - Ubuntu - 6.07-2 - - - amd64 - 125 - deb - liblwres160 - Ubuntu - 1:9.11.3+dfsg-1ubuntu1.8 - - - amd64 - 1318 - deb - liblxc-common - Ubuntu - 3.0.1-0ubuntu1~18.04.2 - - - amd64 - 752 - deb - liblxc1 - Ubuntu - 3.0.1-0ubuntu1~18.04.2 - - - amd64 - 132 - deb - liblz4-1 - Ubuntu - 0.0~r131-2ubuntu3 - - - amd64 - 338 - deb - liblzma5 - Ubuntu - 5.2.2-1.3 - - - amd64 - 180 - deb - liblzo2-2 - Ubuntu - 2.08-1.2 - - - amd64 - 4892 - deb - libmagic-mgc - Ubuntu - 1:5.32-2ubuntu0.2 - - - amd64 - 198 - deb - libmagic1 - Ubuntu - 1:5.32-2ubuntu0.2 - - - all - 212 - deb - libmailtools-perl - Ubuntu - 2.18-1 - - - amd64 - 101 - deb - libmenu-cache-bin - Ubuntu - 1.1.0-1 - - - amd64 - 59 - deb - libmenu-cache3 - Ubuntu - 1.1.0-1 - - - amd64 - 42 - deb - libmnl0 - Ubuntu - 1.0.4-2 - - - amd64 - 433 - deb - libmount1 - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 325 - deb - libmp3lame0 - Ubuntu - 3.100-2 - - - amd64 - 110 - deb - libmpc3 - Ubuntu - 1.1.0-1 - - - amd64 - 247 - deb - libmpdec2 - Ubuntu - 2.4.2-1ubuntu1 - - - amd64 - 1083 - deb - libmpfr6 - Ubuntu - 4.0.1-1 - - - amd64 - 348 - deb - libmpg123-0 - Ubuntu - 1.25.10-1 - - - amd64 - 91 - deb - libmspack0 - Ubuntu - 0.6-3ubuntu0.3 - - - amd64 - 52 - deb - libmtdev1 - Ubuntu - 1.1.5-1ubuntu3 - - - all - 1941 - deb - libmtp-common - Ubuntu - 1.1.13-1 - - - amd64 - 35 - deb - libmtp-runtime - Ubuntu - 1.1.13-1 - - - amd64 - 517 - deb - libmtp9 - Ubuntu - 1.1.13-1 - - - amd64 - 283 - deb - libncurses5 - Ubuntu - 6.1-1ubuntu1.18.04 - - - amd64 - 343 - deb - libncursesw5 - Ubuntu - 6.1-1ubuntu1.18.04 - - - all - 928 - deb - libnet-dns-perl - Ubuntu - 1.10-2 - - - all - 108 - deb - libnet-domain-tld-perl - Ubuntu - 1.75-1 - - - all - 59 - deb - libnet-http-perl - Ubuntu - 6.17-1 - - - all - 133 - deb - libnet-ip-perl - Ubuntu - 1.26-1 - - - all - 19 - deb - libnet-smtp-ssl-perl - Ubuntu - 1.04-1 - - - amd64 - 1196 - deb - libnet-ssleay-perl - Ubuntu - 1.84-1ubuntu0.2 - - - amd64 - 130 - deb - libnetfilter-conntrack3 - Ubuntu - 1.0.6-2 - - - amd64 - 373 - deb - libnettle6 - Ubuntu - 3.4-1 - - - amd64 - 188 - deb - libnewt0.52 - Ubuntu - 0.52.20-1ubuntu1 - - - amd64 - 60 - deb - libnfnetlink0 - Ubuntu - 1.0.1-3 - - - amd64 - 201 - deb - libnghttp2-14 - Ubuntu - 1.30.0-1ubuntu1 - - - amd64 - 135 - deb - libnih1 - Ubuntu - 1.0.3-6ubuntu2 - - - amd64 - 172 - deb - libnl-3-200 - Ubuntu - 3.2.29-0ubuntu3 - - - amd64 - 53 - deb - libnl-genl-3-200 - Ubuntu - 3.2.29-0ubuntu3 - - - amd64 - 56 - deb - libnotify4 - Ubuntu - 0.7.7-3 - - - amd64 - 32 - deb - libnpth0 - Ubuntu - 1.5-3 - - - amd64 - 322 - deb - libnspr4 - Ubuntu - 2:4.18-1ubuntu1 - - - amd64 - 366 - deb - libnss-systemd - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 3623 - deb - libnss3 - Ubuntu - 2:3.35-2ubuntu2.3 - - - amd64 - 349 - deb - libntfs-3g88 - Ubuntu - 1:2017.3.23-2ubuntu0.18.04.2 - - - amd64 - 77 - deb - libnuma1 - Ubuntu - 2.0.11-2.1 - - - amd64 - 52 - deb - liboauth0 - Ubuntu - 1.0.3-1 - - - amd64 - 132 - deb - libobrender32v5 - Ubuntu - 3.6.1-7 - - - amd64 - 101 - deb - libobt2v5 - Ubuntu - 3.6.1-7 - - - amd64 - 76 - deb - libogg0 - Ubuntu - 1.3.2-1 - - - amd64 - 314 - deb - libopus0 - Ubuntu - 1.1.2-1ubuntu1 - - - amd64 - 629 - deb - liborbit-2-0 - Ubuntu - 1:2.14.19-4 - - - amd64 - 547 - deb - liborc-0.4-0 - Ubuntu - 1:0.4.28-1 - - - amd64 - 1246 - deb - libp11-kit0 - Ubuntu - 0.23.9-2 - - - amd64 - 420 - deb - libpackagekit-glib2-18 - Ubuntu - 1.1.9-1ubuntu2 - - - amd64 - 39 - deb - libpam-cap - Ubuntu - 1:2.25-1.2 - - - amd64 - 77 - deb - libpam-gnome-keyring - Ubuntu - 3.28.0.2-1ubuntu1.18.04.1 - - - amd64 - 912 - deb - libpam-modules - Ubuntu - 1.1.8-3.6ubuntu2 - - - amd64 - 267 - deb - libpam-modules-bin - Ubuntu - 1.1.8-3.6ubuntu2 - - - all - 300 - deb - libpam-runtime - Ubuntu - 1.1.8-3.6ubuntu2 - - - amd64 - 363 - deb - libpam-systemd - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 212 - deb - libpam0g - Ubuntu - 1.1.8-3.6ubuntu2 - - - amd64 - 404 - deb - libpango-1.0-0 - Ubuntu - 1.40.14-1ubuntu0.1 - - - amd64 - 90 - deb - libpangocairo-1.0-0 - Ubuntu - 1.40.14-1ubuntu0.1 - - - amd64 - 128 - deb - libpangoft2-1.0-0 - Ubuntu - 1.40.14-1ubuntu0.1 - - - amd64 - 202 - deb - libpangomm-1.4-1v5 - Ubuntu - 2.40.1-4 - - - amd64 - 73 - deb - libpangoxft-1.0-0 - Ubuntu - 1.40.14-1ubuntu0.1 - - - all - 232 - deb - libparse-debianchangelog-perl - Ubuntu - 1.2.0-12 - - - amd64 - 150 - deb - libparted-fs-resize0 - Ubuntu - 3.2-20 - - - amd64 - 364 - deb - libparted2 - Ubuntu - 3.2-20 - - - amd64 - 309 - deb - libpcap0.8 - Ubuntu - 1.8.1-6ubuntu1 - - - amd64 - 103 - deb - libpci3 - Ubuntu - 1:3.5.2-1ubuntu1 - - - amd64 - 57 - deb - libpciaccess0 - Ubuntu - 0.14-1 - - - amd64 - 665 - deb - libpcre3 - Ubuntu - 2:8.39-9 - - - amd64 - 21395 - deb - libperl5.26 - Ubuntu - 5.26.1-6ubuntu0.3 - - - amd64 - 48 - deb - libperlio-gzip-perl - Ubuntu - 0.19-1build3 - - - amd64 - 73 - deb - libpipeline1 - Ubuntu - 1.5.0-1 - - - amd64 - 688 - deb - libpixman-1-0 - Ubuntu - 0.34.0-2 - - - amd64 - 83 - deb - libplist3 - Ubuntu - 2.0.0-2ubuntu1 - - - amd64 - 295 - deb - libplymouth4 - Ubuntu - 0.9.3-1ubuntu7 - - - amd64 - 319 - deb - libpng16-16 - Ubuntu - 1.6.34-1ubuntu0.18.04.2 - - - amd64 - 64 - deb - libpolkit-agent-1-0 - Ubuntu - 0.105-20ubuntu0.18.04.5 - - - amd64 - 131 - deb - libpolkit-backend-1-0 - Ubuntu - 0.105-20ubuntu0.18.04.5 - - - amd64 - 142 - deb - libpolkit-gobject-1-0 - Ubuntu - 0.105-20ubuntu0.18.04.5 - - - amd64 - 116 - deb - libpopt0 - Ubuntu - 1.16-11 - - - amd64 - 118 - deb - libprocps6 - Ubuntu - 2:3.3.12-3ubuntu1.1 - - - amd64 - 151 - deb - libproxy1v5 - Ubuntu - 0.4.15-1 - - - amd64 - 74 - deb - libpsl5 - Ubuntu - 0.19.1-5build1 - - - amd64 - 154 - deb - libpulse-mainloop-glib0 - Ubuntu - 1:11.1-1ubuntu7.1 - - - amd64 - 998 - deb - libpulse0 - Ubuntu - 1:11.1-1ubuntu7.1 - - - amd64 - 181 - deb - libpulsedsp - Ubuntu - 1:11.1-1ubuntu7.1 - - - amd64 - 37 - deb - libpython-stdlib - Ubuntu - 2.7.15~rc1-1 - - - amd64 - 3485 - deb - libpython2.7 - Ubuntu - 2.7.15-4ubuntu4~18.04.1 - - - amd64 - 2782 - deb - libpython2.7-minimal - Ubuntu - 2.7.15-4ubuntu4~18.04.1 - - - amd64 - 8762 - deb - libpython2.7-stdlib - Ubuntu - 2.7.15-4ubuntu4~18.04.1 - - - amd64 - 37 - deb - libpython3-stdlib - Ubuntu - 3.6.5-3ubuntu1 - - - amd64 - 4648 - deb - libpython3.6 - Ubuntu - 3.6.8-1~18.04.2 - - - amd64 - 3809 - deb - libpython3.6-minimal - Ubuntu - 3.6.8-1~18.04.2 - - - amd64 - 7820 - deb - libpython3.6-stdlib - Ubuntu - 3.6.8-1~18.04.2 - - - amd64 - 92 - deb - libraw1394-11 - Ubuntu - 2.1.2-1 - - - amd64 - 324 - deb - libreadline5 - Ubuntu - 5.2+dfsg-3build1 - - - amd64 - 402 - deb - libreadline7 - Ubuntu - 7.0-3 - - - amd64 - 1823 - deb - librecode0 - Ubuntu - 3.6-23 - - - amd64 - 111 - deb - librest-0.7-0 - Ubuntu - 0.8.0-2 - - - amd64 - 137 - deb - libroken18-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 264 - deb - librsvg2-2 - Ubuntu - 2.40.20-2 - - - amd64 - 40 - deb - librsvg2-common - Ubuntu - 2.40.20-2 - - - amd64 - 131 - deb - librtmp1 - Ubuntu - 2.4+20151223.gitfa8646d.1-1 - - - amd64 - 1473 - deb - libsamplerate0 - Ubuntu - 0.1.9-1 - - - amd64 - 148 - deb - libsasl2-2 - Ubuntu - 2.1.27~101-g0780600+dfsg-3ubuntu2 - - - amd64 - 224 - deb - libsasl2-modules - Ubuntu - 2.1.27~101-g0780600+dfsg-3ubuntu2 - - - amd64 - 61 - deb - libsasl2-modules-db - Ubuntu - 2.1.27~101-g0780600+dfsg-3ubuntu2 - - - amd64 - 302 - deb - libseccomp2 - Ubuntu - 2.4.1-0ubuntu0.18.04.2 - - - amd64 - 347 - deb - libsecret-1-0 - Ubuntu - 0.18.6-1 - - - all - 44 - deb - libsecret-common - Ubuntu - 0.18.6-1 - - - amd64 - 193 - deb - libselinux1 - Ubuntu - 2.7-2build2 - - - all - 29 - deb - libsemanage-common - Ubuntu - 2.7-2build2 - - - amd64 - 292 - deb - libsemanage1 - Ubuntu - 2.7-2build2 - - - amd64 - 110 - deb - libsensors4 - Ubuntu - 1:3.4.0-4 - - - amd64 - 720 - deb - libsepol1 - Ubuntu - 2.7-1 - - - amd64 - 133 - deb - libshout3 - Ubuntu - 2.4.1-2build1 - - - amd64 - 48 - deb - libsigc++-2.0-0v5 - Ubuntu - 2.10.0-2 - - - amd64 - 43 - deb - libsigsegv2 - Ubuntu - 2.12-1 - - - amd64 - 1544 - deb - libslang2 - Ubuntu - 2.3.1a-3ubuntu1 - - - amd64 - 67 - deb - libsm6 - Ubuntu - 2:1.2.2-1 - - - amd64 - 287 - deb - libsmartcols1 - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 288 - deb - libsmbclient - Ubuntu - 2:4.7.6+dfsg~ubuntu-0ubuntu2.11 - - - amd64 - 266 - deb - libsnapd-glib1 - Ubuntu - 1.41-0ubuntu0.18.04.1 - - - amd64 - 507 - deb - libsndfile1 - Ubuntu - 1.0.28-4ubuntu0.18.04.1 - - - all - 811 - deb - libsnmp-base - Ubuntu - 5.7.3+dfsg-1.8ubuntu3.1 - - - amd64 - 3317 - deb - libsnmp30 - Ubuntu - 5.7.3+dfsg-1.8ubuntu3.1 - - - amd64 - 66 - deb - libsocket6-perl - Ubuntu - 0.27-1build2 - - - amd64 - 375 - deb - libsodium23 - Ubuntu - 1.0.16-2 - - - amd64 - 35 - deb - libsoup-gnome2.4-1 - Ubuntu - 2.62.1-1ubuntu0.1 - - - amd64 - 1066 - deb - libsoup2.4-1 - Ubuntu - 2.62.1-1ubuntu0.1 - - - amd64 - 121 - deb - libspeex1 - Ubuntu - 1.2~rc1.2-1ubuntu2 - - - amd64 - 95 - deb - libspeexdsp1 - Ubuntu - 1.2~rc1.2-1ubuntu2 - - - amd64 - 1180 - deb - libsqlite3-0 - Ubuntu - 3.22.0-1ubuntu0.1 - - - amd64 - 98 - deb - libss2 - Ubuntu - 1.44.1-1 - - - amd64 - 3415 - deb - libssl1.0.0 - Ubuntu - 1.0.2n-1ubuntu5.3 - - - amd64 - 3933 - deb - libssl1.1 - Ubuntu - 1.1.1-1ubuntu2.1~18.04.4 - - - amd64 - 59 - deb - libstartup-notification0 - Ubuntu - 0.12-5 - - - amd64 - 2041 - deb - libstdc++6 - Ubuntu - 8.3.0-6ubuntu1~18.04.1 - - - amd64 - 349 - deb - libstemmer0d - Ubuntu - 0+svn585-1build1 - - - amd64 - 41 - deb - libsub-name-perl - Ubuntu - 0.21-1build1 - - - amd64 - 649 - deb - libsystemd0 - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 49 - deb - libtag1v5 - Ubuntu - 1.11.1+dfsg.1-0.2build2 - - - amd64 - 1068 - deb - libtag1v5-vanilla - Ubuntu - 1.11.1+dfsg.1-0.2build2 - - - amd64 - 106 - deb - libtalloc2 - Ubuntu - 2.1.10-2ubuntu1 - - - amd64 - 112 - deb - libtasn1-6 - Ubuntu - 4.13-2 - - - amd64 - 115 - deb - libtdb1 - Ubuntu - 1.3.15-2 - - - amd64 - 83 - deb - libtevent0 - Ubuntu - 0.9.34-1 - - - amd64 - 38 - deb - libtext-charwidth-perl - Ubuntu - 0.04-7.1 - - - amd64 - 48 - deb - libtext-iconv-perl - Ubuntu - 1.7-5build6 - - - all - 25 - deb - libtext-levenshtein-perl - Ubuntu - 0.13-1 - - - all - 26 - deb - libtext-wrapi18n-perl - Ubuntu - 0.06-7.1 - - - all - 578 - deb - libthai-data - Ubuntu - 0.1.27-2 - - - amd64 - 90 - deb - libthai0 - Ubuntu - 0.1.27-2 - - - amd64 - 726 - deb - libtheora0 - Ubuntu - 1.1.1+dfsg.1-14 - - - amd64 - 515 - deb - libtiff5 - Ubuntu - 4.0.9-5ubuntu0.2 - - - all - 139 - deb - libtimedate-perl - Ubuntu - 2.3000-2 - - - amd64 - 497 - deb - libtinfo5 - Ubuntu - 6.1-1ubuntu1.18.04 - - - all - 47 - deb - libtry-tiny-perl - Ubuntu - 0.30-1 - - - amd64 - 140 - deb - libtwolame0 - Ubuntu - 0.3.13-3 - - - amd64 - 228 - deb - libudev1 - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 518 - deb - libudisks2-0 - Ubuntu - 2.7.6-3ubuntu0.2 - - - amd64 - 93 - deb - libunique-1.0-0 - Ubuntu - 1.1.6-6 - - - amd64 - 1569 - deb - libunistring2 - Ubuntu - 0.9.9-0ubuntu1 - - - amd64 - 172 - deb - libunwind8 - Ubuntu - 1.2.1-8 - - - all - 220 - deb - liburi-perl - Ubuntu - 1.73-1 - - - amd64 - 124 - deb - libusb-1.0-0 - Ubuntu - 2:1.0.21-2 - - - amd64 - 50 - deb - libusbmuxd4 - Ubuntu - 1.1.0~git20171206.c724e70f-0.1 - - - amd64 - 41 - deb - libutempter0 - Ubuntu - 1.1.6-3 - - - amd64 - 116 - deb - libuuid1 - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 202 - deb - libv4l-0 - Ubuntu - 1.14.2-1 - - - amd64 - 271 - deb - libv4lconvert0 - Ubuntu - 1.14.2-1 - - - amd64 - 348 - deb - libvisual-0.4-0 - Ubuntu - 0.4.0-11 - - - amd64 - 765 - deb - libvolume-key1 - Ubuntu - 0.3.9-4 - - - amd64 - 201 - deb - libvorbis0a - Ubuntu - 1.3.5-4.2 - - - amd64 - 699 - deb - libvorbisenc2 - Ubuntu - 1.3.5-4.2 - - - amd64 - 55 - deb - libvorbisfile3 - Ubuntu - 1.3.5-4.2 - - - amd64 - 2384 - deb - libvpx5 - Ubuntu - 1.7.0-3 - - - amd64 - 455 - deb - libvte-2.91-0 - Ubuntu - 0.52.2-1ubuntu1~18.04.1 - - - all - 72 - deb - libvte-2.91-common - Ubuntu - 0.52.2-1ubuntu1~18.04.1 - - - amd64 - 22 - deb - libwacom-bin - Ubuntu - 0.29-1 - - - all - 574 - deb - libwacom-common - Ubuntu - 0.29-1 - - - amd64 - 57 - deb - libwacom2 - Ubuntu - 0.29-1 - - - amd64 - 195 - deb - libwavpack1 - Ubuntu - 5.1.0-2ubuntu1.4 - - - amd64 - 80 - deb - libwayland-client0 - Ubuntu - 1.14.0-2 - - - amd64 - 49 - deb - libwayland-cursor0 - Ubuntu - 1.14.0-2 - - - amd64 - 80 - deb - libwayland-egl1-mesa - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 94 - deb - libwayland-server0 - Ubuntu - 1.14.0-2 - - - amd64 - 202 - deb - libwbclient0 - Ubuntu - 2:4.7.6+dfsg~ubuntu-0ubuntu2.11 - - - amd64 - 45284 - deb - libwebkit2gtk-4.0-37 - Ubuntu - 2.24.4-0ubuntu0.18.04.1 - - - amd64 - 430 - deb - libwebp6 - Ubuntu - 0.6.1-2 - - - amd64 - 36 - deb - libwebpdemux2 - Ubuntu - 0.6.1-2 - - - amd64 - 675 - deb - libwebrtc-audio-processing1 - Ubuntu - 0.3-1 - - - amd64 - 204 - deb - libwind0-heimdal - Ubuntu - 7.5.0+dfsg-1 - - - amd64 - 298 - deb - libwnck-3-0 - Ubuntu - 3.24.1-2 - - - all - 44 - deb - libwnck-3-common - Ubuntu - 3.24.1-2 - - - all - 1882 - deb - libwnck-common - Ubuntu - 1:2.30.7-5.1ubuntu1 - - - amd64 - 330 - deb - libwnck22 - Ubuntu - 1:2.30.7-5.1ubuntu1 - - - amd64 - 127 - deb - libwoff1 - Ubuntu - 1.0.2-1build0.1 - - - amd64 - 104 - deb - libwrap0 - Ubuntu - 7.6.q-27 - - - all - 368 - deb - libwww-perl - Ubuntu - 6.31-1ubuntu0.1 - - - all - 76 - deb - libwww-robotrules-perl - Ubuntu - 6.01-1 - - - amd64 - 1357 - deb - libx11-6 - Ubuntu - 2:1.6.4-3ubuntu0.1 - - - all - 1503 - deb - libx11-data - Ubuntu - 2:1.6.4-3ubuntu0.1 - - - amd64 - 75 - deb - libx11-xcb1 - Ubuntu - 2:1.6.4-3ubuntu0.1 - - - amd64 - 3325 - deb - libxatracker2 - Ubuntu - 18.0.5-0ubuntu0~18.04.1 - - - amd64 - 50 - deb - libxau6 - Ubuntu - 1:1.0.8-1 - - - amd64 - 487 - deb - libxaw7 - Ubuntu - 2:1.0.13-1 - - - amd64 - 42 - deb - libxcb-dri2-0 - Ubuntu - 1.13-1 - - - amd64 - 38 - deb - libxcb-dri3-0 - Ubuntu - 1.13-1 - - - amd64 - 150 - deb - libxcb-glx0 - Ubuntu - 1.13-1 - - - amd64 - 32 - deb - libxcb-present0 - Ubuntu - 1.13-1 - - - amd64 - 82 - deb - libxcb-render0 - Ubuntu - 1.13-1 - - - amd64 - 37 - deb - libxcb-shape0 - Ubuntu - 1.13-1 - - - amd64 - 32 - deb - libxcb-shm0 - Ubuntu - 1.13-1 - - - amd64 - 51 - deb - libxcb-sync1 - Ubuntu - 1.13-1 - - - amd64 - 56 - deb - libxcb-util1 - Ubuntu - 0.4.0-0ubuntu3 - - - amd64 - 56 - deb - libxcb-xfixes0 - Ubuntu - 1.13-1 - - - amd64 - 202 - deb - libxcb1 - Ubuntu - 1.13-1 - - - amd64 - 28 - deb - libxcomposite1 - Ubuntu - 1:0.4.4-2 - - - amd64 - 59 - deb - libxcursor1 - Ubuntu - 1:1.1.15-1 - - - amd64 - 27 - deb - libxdamage1 - Ubuntu - 1:1.1.4-3 - - - amd64 - 39 - deb - libxdmcp6 - Ubuntu - 1:1.1.2-3 - - - amd64 - 122 - deb - libxext6 - Ubuntu - 2:1.3.3-1 - - - amd64 - 43 - deb - libxfixes3 - Ubuntu - 1:5.0.3-1 - - - amd64 - 212 - deb - libxfont2 - Ubuntu - 1:2.0.3-1 - - - amd64 - 125 - deb - libxft2 - Ubuntu - 2.3.2-1 - - - amd64 - 88 - deb - libxi6 - Ubuntu - 2:1.7.9-1 - - - amd64 - 49 - deb - libxinerama1 - Ubuntu - 2:1.1.3-1 - - - amd64 - 273 - deb - libxkbcommon0 - Ubuntu - 0.8.0-1ubuntu0.1 - - - amd64 - 170 - deb - libxkbfile1 - Ubuntu - 1:1.0.9-2 - - - amd64 - 136 - deb - libxklavier16 - Ubuntu - 5.4-3 - - - amd64 - 999 - deb - libxml-libxml-perl - Ubuntu - 2.0128+dfsg-5 - - - all - 39 - deb - libxml-namespacesupport-perl - Ubuntu - 1.12-1 - - - amd64 - 566 - deb - libxml-parser-perl - Ubuntu - 2.44-2build3 - - - all - 145 - deb - libxml-sax-base-perl - Ubuntu - 1.09-1 - - - all - 83 - deb - libxml-sax-expat-perl - Ubuntu - 0.40-2 - - - all - 225 - deb - libxml-sax-perl - Ubuntu - 0.99+dfsg-2ubuntu1 - - - all - 164 - deb - libxml-simple-perl - Ubuntu - 2.24-1 - - - amd64 - 1950 - deb - libxml2 - Ubuntu - 2.9.4+dfsg1-6.1ubuntu1.2 - - - amd64 - 438 - deb - libxmlsec1 - Ubuntu - 1.2.25-1build1 - - - amd64 - 303 - deb - libxmlsec1-openssl - Ubuntu - 1.2.25-1build1 - - - amd64 - 119 - deb - libxmu6 - Ubuntu - 2:1.1.2-2 - - - amd64 - 33 - deb - libxmuu1 - Ubuntu - 2:1.1.2-2 - - - amd64 - 89 - deb - libxpm4 - Ubuntu - 1:3.5.12-1 - - - amd64 - 65 - deb - libxrandr2 - Ubuntu - 2:1.5.1-1 - - - amd64 - 60 - deb - libxrender1 - Ubuntu - 1:0.9.10-1 - - - amd64 - 31 - deb - libxres1 - Ubuntu - 2:1.2.0-2 - - - amd64 - 22 - deb - libxshmfence1 - Ubuntu - 1.3-1 - - - amd64 - 474 - deb - libxslt1.1 - Ubuntu - 1.1.29-5ubuntu0.1 - - - amd64 - 59 - deb - libxss1 - Ubuntu - 1:1.2.2-1 - - - amd64 - 451 - deb - libxt6 - Ubuntu - 1:1.1.5-1 - - - amd64 - 102 - deb - libxtables12 - Ubuntu - 1.6.1-2ubuntu2 - - - amd64 - 44 - deb - libxtst6 - Ubuntu - 2:1.2.3-1 - - - amd64 - 36 - deb - libxv1 - Ubuntu - 2:1.0.11-1 - - - amd64 - 55 - deb - libxvmc1 - Ubuntu - 2:1.0.10-1 - - - amd64 - 59 - deb - libxxf86dga1 - Ubuntu - 2:1.1.4-1 - - - amd64 - 59 - deb - libxxf86vm1 - Ubuntu - 1:1.1.4-1 - - - amd64 - 137 - deb - libyaml-0-2 - Ubuntu - 0.1.7-2ubuntu3 - - - amd64 - 77 - deb - libyaml-libyaml-perl - Ubuntu - 0.69+repack-1 - - - amd64 - 519 - deb - libzstd1 - Ubuntu - 1.3.3+dfsg-2ubuntu1.1 - - - amd64 - 508 - deb - light-locker - Ubuntu - 1.8.0-1ubuntu1 - - - all - 196 - deb - light-locker-settings - Ubuntu - 1.5.0-0ubuntu2 - - - amd64 - 824 - deb - lightdm - Ubuntu - 1.26.0-0ubuntu1 - - - amd64 - 553 - deb - lightdm-gtk-greeter - Ubuntu - 2.0.5-0ubuntu1 - - - all - 4101 - deb - lintian - Ubuntu - 2.5.81ubuntu1 - - - all - 57 - deb - linux-base - Ubuntu - 4.5ubuntu1 - - - all - 312288 - deb - linux-firmware - Ubuntu - 1.173.9 - - - amd64 - 15 - deb - linux-generic - Ubuntu - 4.15.0.62.64 - - - all - 74021 - deb - linux-headers-4.15.0-58 - Ubuntu - 4.15.0-58.64 - - - amd64 - 12603 - deb - linux-headers-4.15.0-58-generic - Ubuntu - 4.15.0-58.64 - - - all - 74190 - deb - linux-headers-4.15.0-60 - Ubuntu - 4.15.0-60.67 - - - amd64 - 12699 - deb - linux-headers-4.15.0-60-generic - Ubuntu - 4.15.0-60.67 - - - all - 74190 - deb - linux-headers-4.15.0-62 - Ubuntu - 4.15.0-62.69 - - - amd64 - 12699 - deb - linux-headers-4.15.0-62-generic - Ubuntu - 4.15.0-62.69 - - - amd64 - 15 - deb - linux-headers-generic - Ubuntu - 4.15.0.62.64 - - - amd64 - 8092 - deb - linux-image-4.15.0-29-generic - Ubuntu - 4.15.0-29.31 - - - amd64 - 8092 - deb - linux-image-4.15.0-30-generic - Ubuntu - 4.15.0-30.32 - - - amd64 - 8100 - deb - linux-image-4.15.0-32-generic - Ubuntu - 4.15.0-32.35 - - - amd64 - 8100 - deb - linux-image-4.15.0-33-generic - Ubuntu - 4.15.0-33.36 - - - amd64 - 8104 - deb - linux-image-4.15.0-34-generic - Ubuntu - 4.15.0-34.37 - - - amd64 - 8112 - deb - linux-image-4.15.0-36-generic - Ubuntu - 4.15.0-36.39 - - - amd64 - 8112 - deb - linux-image-4.15.0-39-generic - Ubuntu - 4.15.0-39.42 - - - amd64 - 8112 - deb - linux-image-4.15.0-42-generic - Ubuntu - 4.15.0-42.45 - - - amd64 - 8116 - deb - linux-image-4.15.0-43-generic - Ubuntu - 4.15.0-43.46 - - - amd64 - 8116 - deb - linux-image-4.15.0-44-generic - Ubuntu - 4.15.0-44.47 - - - amd64 - 8116 - deb - linux-image-4.15.0-45-generic - Ubuntu - 4.15.0-45.48 - - - amd64 - 8116 - deb - linux-image-4.15.0-46-generic - Ubuntu - 4.15.0-46.49 - - - amd64 - 8124 - deb - linux-image-4.15.0-47-generic - Ubuntu - 4.15.0-47.50 - - - amd64 - 8128 - deb - linux-image-4.15.0-50-generic - Ubuntu - 4.15.0-50.54 - - - amd64 - 8128 - deb - linux-image-4.15.0-51-generic - Ubuntu - 4.15.0-51.55 - - - amd64 - 8128 - deb - linux-image-4.15.0-52-generic - Ubuntu - 4.15.0-52.56 - - - amd64 - 8129 - deb - linux-image-4.15.0-54-generic - Ubuntu - 4.15.0-54.58 - - - amd64 - 8129 - deb - linux-image-4.15.0-55-generic - Ubuntu - 4.15.0-55.60 - - - amd64 - 8137 - deb - linux-image-4.15.0-58-generic - Ubuntu - 4.15.0-58.64 - - - amd64 - 8165 - deb - linux-image-4.15.0-60-generic - Ubuntu - 4.15.0-60.67 - - - amd64 - 8165 - deb - linux-image-4.15.0-62-generic - Ubuntu - 4.15.0-62.69 - - - amd64 - 15 - deb - linux-image-generic - Ubuntu - 4.15.0.62.64 - - - amd64 - 64566 - deb - linux-modules-4.15.0-29-generic - Ubuntu - 4.15.0-29.31 - - - amd64 - 64566 - deb - linux-modules-4.15.0-30-generic - Ubuntu - 4.15.0-30.32 - - - amd64 - 64586 - deb - linux-modules-4.15.0-32-generic - Ubuntu - 4.15.0-32.35 - - - amd64 - 64622 - deb - linux-modules-4.15.0-33-generic - Ubuntu - 4.15.0-33.36 - - - amd64 - 64656 - deb - linux-modules-4.15.0-34-generic - Ubuntu - 4.15.0-34.37 - - - amd64 - 64676 - deb - linux-modules-4.15.0-36-generic - Ubuntu - 4.15.0-36.39 - - - amd64 - 64697 - deb - linux-modules-4.15.0-39-generic - Ubuntu - 4.15.0-39.42 - - - amd64 - 64716 - deb - linux-modules-4.15.0-42-generic - Ubuntu - 4.15.0-42.45 - - - amd64 - 63217 - deb - linux-modules-4.15.0-43-generic - Ubuntu - 4.15.0-43.46 - - - amd64 - 63256 - deb - linux-modules-4.15.0-44-generic - Ubuntu - 4.15.0-44.47 - - - amd64 - 63258 - deb - linux-modules-4.15.0-45-generic - Ubuntu - 4.15.0-45.48 - - - amd64 - 63272 - deb - linux-modules-4.15.0-46-generic - Ubuntu - 4.15.0-46.49 - - - amd64 - 63295 - deb - linux-modules-4.15.0-47-generic - Ubuntu - 4.15.0-47.50 - - - amd64 - 63363 - deb - linux-modules-4.15.0-50-generic - Ubuntu - 4.15.0-50.54 - - - amd64 - 63365 - deb - linux-modules-4.15.0-51-generic - Ubuntu - 4.15.0-51.55 - - - amd64 - 63365 - deb - linux-modules-4.15.0-52-generic - Ubuntu - 4.15.0-52.56 - - - amd64 - 63388 - deb - linux-modules-4.15.0-54-generic - Ubuntu - 4.15.0-54.58 - - - amd64 - 63404 - deb - linux-modules-4.15.0-55-generic - Ubuntu - 4.15.0-55.60 - - - amd64 - 63593 - deb - linux-modules-4.15.0-58-generic - Ubuntu - 4.15.0-58.64 - - - amd64 - 63266 - deb - linux-modules-4.15.0-60-generic - Ubuntu - 4.15.0-60.67 - - - amd64 - 63266 - deb - linux-modules-4.15.0-62-generic - Ubuntu - 4.15.0-62.69 - - - amd64 - 166969 - deb - linux-modules-extra-4.15.0-29-generic - Ubuntu - 4.15.0-29.31 - - - amd64 - 166969 - deb - linux-modules-extra-4.15.0-30-generic - Ubuntu - 4.15.0-30.32 - - - amd64 - 166974 - deb - linux-modules-extra-4.15.0-32-generic - Ubuntu - 4.15.0-32.35 - - - amd64 - 167001 - deb - linux-modules-extra-4.15.0-33-generic - Ubuntu - 4.15.0-33.36 - - - amd64 - 166997 - deb - linux-modules-extra-4.15.0-34-generic - Ubuntu - 4.15.0-34.37 - - - amd64 - 167012 - deb - linux-modules-extra-4.15.0-36-generic - Ubuntu - 4.15.0-36.39 - - - amd64 - 167039 - deb - linux-modules-extra-4.15.0-39-generic - Ubuntu - 4.15.0-39.42 - - - amd64 - 167044 - deb - linux-modules-extra-4.15.0-42-generic - Ubuntu - 4.15.0-42.45 - - - amd64 - 167048 - deb - linux-modules-extra-4.15.0-43-generic - Ubuntu - 4.15.0-43.46 - - - amd64 - 167064 - deb - linux-modules-extra-4.15.0-44-generic - Ubuntu - 4.15.0-44.47 - - - amd64 - 167065 - deb - linux-modules-extra-4.15.0-45-generic - Ubuntu - 4.15.0-45.48 - - - amd64 - 166836 - deb - linux-modules-extra-4.15.0-46-generic - Ubuntu - 4.15.0-46.49 - - - amd64 - 166850 - deb - linux-modules-extra-4.15.0-47-generic - Ubuntu - 4.15.0-47.50 - - - amd64 - 166832 - deb - linux-modules-extra-4.15.0-50-generic - Ubuntu - 4.15.0-50.54 - - - amd64 - 166867 - deb - linux-modules-extra-4.15.0-51-generic - Ubuntu - 4.15.0-51.55 - - - amd64 - 166867 - deb - linux-modules-extra-4.15.0-52-generic - Ubuntu - 4.15.0-52.56 - - - amd64 - 166954 - deb - linux-modules-extra-4.15.0-54-generic - Ubuntu - 4.15.0-54.58 - - - amd64 - 166967 - deb - linux-modules-extra-4.15.0-55-generic - Ubuntu - 4.15.0-55.60 - - - amd64 - 167053 - deb - linux-modules-extra-4.15.0-58-generic - Ubuntu - 4.15.0-58.64 - - - amd64 - 165473 - deb - linux-modules-extra-4.15.0-60-generic - Ubuntu - 4.15.0-60.67 - - - amd64 - 165473 - deb - linux-modules-extra-4.15.0-62-generic - Ubuntu - 4.15.0-62.69 - - - all - 14128 - deb - locales - Ubuntu - 2.27-3ubuntu1 - - - amd64 - 1212 - deb - login - Ubuntu - 1:4.5-1ubuntu1 - - - amd64 - 125 - deb - logrotate - Ubuntu - 3.11.0-0.1ubuntu1 - - - all - 58 - deb - lsb-base - Ubuntu - 9.20170808ubuntu1 - - - all - 65 - deb - lsb-release - Ubuntu - 9.20170808ubuntu1 - - - amd64 - 691 - deb - lshw - Ubuntu - 02.18-0.1ubuntu6.18.04.1 - - - amd64 - 440 - deb - lsof - Ubuntu - 4.89+dfsg-0.1 - - - amd64 - 392 - deb - ltrace - Ubuntu - 0.7.3-6ubuntu1 - - - all - 5781 - deb - lubuntu-artwork - Ubuntu - 0.71.1 - - - all - 4361 - deb - lubuntu-artwork-18-04 - Ubuntu - 0.71.1 - - - amd64 - 16 - deb - lubuntu-core - Ubuntu - 0.94.1 - - - all - 199 - deb - lubuntu-default-settings - Ubuntu - 0.54 - - - all - 30544 - deb - lubuntu-icon-theme - Ubuntu - 0.71.1 - - - all - 139 - deb - lubuntu-lxpanel-icons - Ubuntu - 0.71.1 - - - amd64 - 3312 - deb - lvm2 - Ubuntu - 2.02.176-4.1ubuntu3 - - - amd64 - 136 - deb - lxcfs - Ubuntu - 3.0.1-0ubuntu2~18.04.1 - - - amd64 - 19896 - deb - lxd - Ubuntu - 3.0.1-0ubuntu1~18.04.1 - - - amd64 - 10276 - deb - lxd-client - Ubuntu - 3.0.1-0ubuntu1~18.04.1 - - - all - 912 - deb - lxde-common - Ubuntu - 0.99.2-3 - - - all - 11 - deb - lxde-core - Ubuntu - 10 - - - all - 22 - deb - lxlock - Ubuntu - 0.5.3-2ubuntu1 - - - all - 188 - deb - lxmenu-data - Ubuntu - 0.1.5-2 - - - amd64 - 792 - deb - lxpanel - Ubuntu - 0.9.3-1ubuntu3 - - - all - 2720 - deb - lxpanel-data - Ubuntu - 0.9.3-1ubuntu3 - - - amd64 - 45 - deb - lxpolkit - Ubuntu - 0.5.3-2ubuntu1 - - - amd64 - 383 - deb - lxrandr - Ubuntu - 0.3.1-1 - - - amd64 - 400 - deb - lxsession - Ubuntu - 0.5.3-2ubuntu1 - - - all - 623 - deb - lxsession-data - Ubuntu - 0.5.3-2ubuntu1 - - - amd64 - 466 - deb - lxsession-default-apps - Ubuntu - 0.5.3-2ubuntu1 - - - amd64 - 48 - deb - lxsession-logout - Ubuntu - 0.5.3-2ubuntu1 - - - amd64 - 431 - deb - lxtask - Ubuntu - 0.1.8-1 - - - amd64 - 571 - deb - lxterminal - Ubuntu - 0.3.1-2ubuntu2 - - - amd64 - 2428 - deb - man-db - Ubuntu - 2.8.3-2 - - - all - 1471 - deb - manpages - Ubuntu - 4.15-1 - - - amd64 - 184 - deb - mawk - Ubuntu - 1.3.3-17ubuntu3 - - - amd64 - 1206 - deb - mdadm - Ubuntu - 4.1~rc1-3~ubuntu18.04.1 - - - all - 111 - deb - mime-support - Ubuntu - 3.60ubuntu1 - - - all - 3133 - deb - miscfiles - Ubuntu - 1.5+dfsg-2 - - - amd64 - 228 - deb - mlocate - Ubuntu - 0.26-2ubuntu3.1 - - - amd64 - 370 - deb - mount - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 140 - deb - mtr-tiny - Ubuntu - 0.92-1 - - - amd64 - 243 - deb - multiarch-support - Ubuntu - 2.27-3ubuntu1 - - - amd64 - 32785 - deb - mysql-client-5.7 - Ubuntu - 5.7.27-0ubuntu0.18.04.1 - - - amd64 - 30829 - deb - mysql-client-core-5.7 - Ubuntu - 5.7.27-0ubuntu0.18.04.1 - - - all - 34 - deb - mysql-common - Ubuntu - 5.8+1.0.4 - - - all - 107 - deb - mysql-server - Ubuntu - 5.7.27-0ubuntu0.18.04.1 - - - amd64 - 47170 - deb - mysql-server-5.7 - Ubuntu - 5.7.27-0ubuntu0.18.04.1 - - - amd64 - 45413 - deb - mysql-server-core-5.7 - Ubuntu - 5.7.27-0ubuntu0.18.04.1 - - - amd64 - 760 - deb - nano - Ubuntu - 2.9.3-2 - - - all - 364 - deb - ncurses-base - Ubuntu - 6.1-1ubuntu1.18.04 - - - amd64 - 576 - deb - ncurses-bin - Ubuntu - 6.1-1ubuntu1.18.04 - - - all - 4143 - deb - ncurses-term - Ubuntu - 6.1-1ubuntu1.18.04 - - - amd64 - 784 - deb - net-tools - Ubuntu - 1.60+git20161116.90da8a0-1ubuntu1 - - - all - 44 - deb - netbase - Ubuntu - 5.4 - - - amd64 - 94 - deb - netcat-openbsd - Ubuntu - 1.187-1ubuntu0.1 - - - amd64 - 245 - deb - netplan.io - Ubuntu - 0.40.1~18.04.4 - - - all - 53 - deb - networkd-dispatcher - Ubuntu - 1.7-0ubuntu3.2 - - - amd64 - 176 - deb - notification-daemon - Ubuntu - 3.20.0-3 - - - all - 16 - deb - nplan - Ubuntu - 0.40.1~18.04.4 - - - amd64 - 1367 - deb - ntfs-3g - Ubuntu - 1:2017.3.23-2ubuntu0.18.04.2 - - - amd64 - 888 - deb - obconf - Ubuntu - 1:2.0.4+git20150213-2 - - - amd64 - 345 - deb - obsession - Ubuntu - 20140608-2build1 - - - amd64 - 1380 - deb - open-iscsi - Ubuntu - 2.0.874-5ubuntu2 - - - amd64 - 2081 - deb - open-vm-tools - Ubuntu - 2:10.2.0-3ubuntu3 - - - amd64 - 1230 - deb - openbox - Ubuntu - 3.6.1-7 - - - all - 70 - deb - openbox-lxde-session - Ubuntu - 0.99.2-3 - - - amd64 - 35 - deb - openbox-menu - Ubuntu - 0.8.0+hg20161009-1 - - - amd64 - 4064 - deb - openssh-client - Ubuntu - 1:7.6p1-4ubuntu0.3 - - - amd64 - 877 - deb - openssh-server - Ubuntu - 1:7.6p1-4ubuntu0.3 - - - amd64 - 118 - deb - openssh-sftp-server - Ubuntu - 1:7.6p1-4ubuntu0.3 - - - amd64 - 1223 - deb - openssl - Ubuntu - 1.1.1-1ubuntu2.1~18.04.4 - - - amd64 - 103 - deb - os-prober - Ubuntu - 1.74ubuntu1 - - - all - 65 - deb - overlayroot - Ubuntu - 0.40ubuntu1 - - - amd64 - 428 - deb - p11-kit - Ubuntu - 0.23.9-2 - - - amd64 - 1428 - deb - p11-kit-modules - Ubuntu - 0.23.9-2 - - - amd64 - 1468 - deb - packagekit - Ubuntu - 1.1.9-1ubuntu2 - - - amd64 - 123 - deb - packagekit-tools - Ubuntu - 1.1.9-1ubuntu2 - - - amd64 - 154 - deb - parted - Ubuntu - 3.2-20 - - - amd64 - 2541 - deb - passwd - Ubuntu - 1:4.5-1ubuntu1 - - - all - 156 - deb - pastebinit - Ubuntu - 1.5-2 - - - amd64 - 238 - deb - patch - Ubuntu - 2.7.6-2ubuntu1.1 - - - amd64 - 223 - deb - patchutils - Ubuntu - 0.3.4-2 - - - amd64 - 933 - deb - pavucontrol - Ubuntu - 3.0-4 - - - amd64 - 1230 - deb - pciutils - Ubuntu - 1:3.5.2-1ubuntu1 - - - amd64 - 1531 - deb - pcmanfm - Ubuntu - 1.2.5-3ubuntu1 - - - amd64 - 568 - deb - perl - Ubuntu - 5.26.1-6ubuntu0.3 - - - amd64 - 7826 - deb - perl-base - Ubuntu - 5.26.1-6ubuntu0.3 - - - all - 18501 - deb - perl-modules-5.26 - Ubuntu - 5.26.1-6ubuntu0.3 - - - amd64 - 27 - deb - perl-openssl-defaults - Ubuntu - 3build1 - - - all - 70 - deb - php-common - Ubuntu - 1:60ubuntu1 - - - all - 12 - deb - php-mysql - Ubuntu - 1:7.2+60ubuntu1 - - - amd64 - 4840 - deb - php7.2-cli - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 6476 - deb - php7.2-common - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 71 - deb - php7.2-json - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 438 - deb - php7.2-mysql - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 459 - deb - php7.2-opcache - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 59 - deb - php7.2-readline - Ubuntu - 7.2.19-0ubuntu0.18.04.2 - - - amd64 - 96 - deb - pinentry-curses - Ubuntu - 1.1.0-1 - - - amd64 - 101 - deb - pinentry-gnome3 - Ubuntu - 1.1.0-1 - - - amd64 - 448 - deb - plymouth - Ubuntu - 0.9.3-1ubuntu7 - - - amd64 - 36 - deb - plymouth-label - Ubuntu - 0.9.3-1ubuntu7 - - - all - 108 - deb - plymouth-theme-lubuntu-logo - Ubuntu - 0.71.1 - - - all - 46 - deb - plymouth-theme-lubuntu-text - Ubuntu - 0.71.1 - - - amd64 - 53 - deb - plymouth-theme-ubuntu-text - Ubuntu - 0.9.3-1ubuntu7 - - - amd64 - 436 - deb - policykit-1 - Ubuntu - 0.105-20ubuntu0.18.04.5 - - - all - 17 - deb - policykit-desktop-privileges - Ubuntu - 0.20ubuntu18.04.1 - - - all - 53 - deb - pollinate - Ubuntu - 4.33-0ubuntu1~18.04.1 - - - all - 118 - deb - popularity-contest - Ubuntu - 1.66ubuntu1 - - - all - 28 - deb - powermgmt-base - Ubuntu - 1.33 - - - amd64 - 709 - deb - procps - Ubuntu - 2:3.3.12-3ubuntu1.1 - - - amd64 - 248 - deb - psmisc - Ubuntu - 23.1-1 - - - all - 283 - deb - publicsuffix - Ubuntu - 20180223.1310-1 - - - amd64 - 3980 - deb - pulseaudio - Ubuntu - 1:11.1-1ubuntu7.1 - - - amd64 - 308 - deb - pulseaudio-utils - Ubuntu - 1:11.1-1ubuntu7.1 - - - amd64 - 624 - deb - python - Ubuntu - 2.7.15~rc1-1 - - - all - 244 - deb - python-apt-common - Ubuntu - 1.6.2 - - - amd64 - 145 - deb - python-minimal - Ubuntu - 2.7.15~rc1-1 - - - amd64 - 836 - deb - python-psutil - Ubuntu - 5.4.2-1 - - - amd64 - 53 - deb - python-talloc - Ubuntu - 2.1.10-2ubuntu1 - - - amd64 - 372 - deb - python2.7 - Ubuntu - 2.7.15-4ubuntu4~18.04.1 - - - amd64 - 3681 - deb - python2.7-minimal - Ubuntu - 2.7.15-4ubuntu4~18.04.1 - - - amd64 - 74 - deb - python3 - Ubuntu - 3.6.5-3ubuntu1 - - - all - 559 - deb - python3-apport - Ubuntu - 2.20.9-0ubuntu7.7 - - - amd64 - 660 - deb - python3-apt - Ubuntu - 1.6.2 - - - all - 498 - deb - python3-aptdaemon - Ubuntu - 1.1.1+bzr982-0ubuntu19 - - - all - 86 - deb - python3-aptdaemon.gtk3widgets - Ubuntu - 1.1.1+bzr982-0ubuntu19 - - - all - 493 - deb - python3-asn1crypto - Ubuntu - 0.24.0-1 - - - all - 108 - deb - python3-attr - Ubuntu - 17.4.0-2 - - - all - 134 - deb - python3-automat - Ubuntu - 0.6.0-1 - - - all - 308 - deb - python3-certifi - Ubuntu - 2018.1.18-2 - - - amd64 - 190 - deb - python3-cffi-backend - Ubuntu - 1.11.5-1 - - - all - 410 - deb - python3-chardet - Ubuntu - 3.0.4-1 - - - all - 259 - deb - python3-click - Ubuntu - 6.7-3 - - - all - 65 - deb - python3-colorama - Ubuntu - 0.3.7-1 - - - all - 54 - deb - python3-commandnotfound - Ubuntu - 18.04.5 - - - all - 183 - deb - python3-configobj - Ubuntu - 5.0.6-2 - - - all - 40 - deb - python3-constantly - Ubuntu - 15.1.0-1 - - - amd64 - 1387 - deb - python3-crypto - Ubuntu - 2.6.1-8ubuntu2 - - - amd64 - 1487 - deb - python3-cryptography - Ubuntu - 2.1.4-1ubuntu1.3 - - - amd64 - 393 - deb - python3-dbus - Ubuntu - 1.2.6-1 - - - all - 18 - deb - python3-debconf - Ubuntu - 1.5.66 - - - all - 259 - deb - python3-debian - Ubuntu - 0.1.32 - - - all - 77 - deb - python3-defer - Ubuntu - 1.0.6-2build1 - - - all - 53 - deb - python3-distro-info - Ubuntu - 0.18ubuntu0.18.04.1 - - - all - 632 - deb - python3-distupgrade - Ubuntu - 1:18.04.21 - - - amd64 - 67 - deb - python3-gdbm - Ubuntu - 3.6.5-3 - - - amd64 - 630 - deb - python3-gi - Ubuntu - 3.26.1-2 - - - all - 113 - deb - python3-httplib2 - Ubuntu - 0.9.2+dfsg-1 - - - all - 130 - deb - python3-hyperlink - Ubuntu - 17.3.1-2 - - - all - 269 - deb - python3-idna - Ubuntu - 2.6-1 - - - all - 95 - deb - python3-incremental - Ubuntu - 16.10.1-3 - - - all - 141 - deb - python3-keyring - Ubuntu - 10.6.0-1 - - - all - 85 - deb - python3-keyrings.alt - Ubuntu - 3.0-1 - - - all - 204 - deb - python3-launchpadlib - Ubuntu - 1.10.6-1 - - - all - 158 - deb - python3-lazr.restfulclient - Ubuntu - 0.13.5-1 - - - all - 92 - deb - python3-lazr.uri - Ubuntu - 1.0.3-2build1 - - - amd64 - 121 - deb - python3-minimal - Ubuntu - 3.6.5-3ubuntu1 - - - amd64 - 47 - deb - python3-netifaces - Ubuntu - 0.10.4-0.1build4 - - - amd64 - 105 - deb - python3-newt - Ubuntu - 0.52.20-1ubuntu1 - - - all - 43 - deb - python3-oauth - Ubuntu - 1.0.1-5 - - - all - 224 - deb - python3-openssl - Ubuntu - 17.5.0-1ubuntu1 - - - amd64 - 40 - deb - python3-pam - Ubuntu - 0.4.2-13.2ubuntu4 - - - all - 517 - deb - python3-pkg-resources - Ubuntu - 39.0.1-2 - - - all - 171 - deb - python3-problem-inventory - Ubuntu - 2.20.9-0ubuntu7.7 - - - all - 358 - deb - python3-pyasn1 - Ubuntu - 0.4.2-3 - - - all - 363 - deb - python3-pyasn1-modules - Ubuntu - 0.2.1-0.2 - - - all - 275 - deb - python3-requests - Ubuntu - 2.18.4-2ubuntu0.1 - - - all - 33 - deb - python3-requests-unixsocket - Ubuntu - 0.1.5-3 - - - all - 53 - deb - python3-secretstorage - Ubuntu - 2.3.1-2 - - - all - 367 - deb - python3-serial - Ubuntu - 3.4-2 - - - all - 45 - deb - python3-service-identity - Ubuntu - 16.0.0-2 - - - amd64 - 234 - deb - python3-simplejson - Ubuntu - 3.13.2-1 - - - all - 54 - deb - python3-six - Ubuntu - 1.11.0-2 - - - all - 131 - deb - python3-software-properties - Ubuntu - 0.96.24.32.4 - - - amd64 - 172 - deb - python3-systemd - Ubuntu - 234-1build1 - - - all - 12396 - deb - python3-twisted - Ubuntu - 17.9.0-2 - - - amd64 - 45 - deb - python3-twisted-bin - Ubuntu - 17.9.0-2 - - - all - 227 - deb - python3-update-manager - Ubuntu - 1:18.04.11.4 - - - all - 401 - deb - python3-urllib3 - Ubuntu - 1.22-1ubuntu0.18.04.1 - - - all - 124 - deb - python3-wadllib - Ubuntu - 1.3.2-3ubuntu0.18.04.1 - - - all - 139 - deb - python3-xkit - Ubuntu - 0.5.0ubuntu2 - - - amd64 - 459 - deb - python3-yaml - Ubuntu - 3.12-1build2 - - - amd64 - 664 - deb - python3-zope.interface - Ubuntu - 4.3.2-1build2 - - - amd64 - 326 - deb - python3.6 - Ubuntu - 3.6.8-1~18.04.2 - - - amd64 - 8965 - deb - python3.6-minimal - Ubuntu - 3.6.8-1~18.04.2 - - - all - 78 - deb - readline-common - Ubuntu - 7.0-3 - - - amd64 - 703 - deb - rsync - Ubuntu - 3.1.2-2.1ubuntu1 - - - amd64 - 1432 - deb - rsyslog - Ubuntu - 8.32.0-1ubuntu4 - - - amd64 - 135 - deb - rtkit - Ubuntu - 0.11-6 - - - amd64 - 31090 - deb - rudder-agent - Ubuntu - 4.3.3-bionic0 - - - all - 44 - deb - run-one - Ubuntu - 1.17-0ubuntu1 - - - amd64 - 22273 - deb - samba-libs - Ubuntu - 2:4.7.6+dfsg~ubuntu-0ubuntu2.11 - - - amd64 - 986 - deb - screen - Ubuntu - 4.6.2-1ubuntu1 - - - amd64 - 47 - deb - scrot - Ubuntu - 0.8-18 - - - amd64 - 320 - deb - sed - Ubuntu - 4.4-2 - - - all - 62 - deb - sensible-utils - Ubuntu - 0.0.12 - - - amd64 - 39 - deb - session-migration - Ubuntu - 0.3.3 - - - amd64 - 2600 - deb - shared-mime-info - Ubuntu - 1.9-2 - - - amd64 - 65980 - deb - snapd - Ubuntu - 2.37.4+18.04.1 - - - amd64 - 141 - deb - snmpd - Ubuntu - 5.7.3+dfsg-1.8ubuntu3.1 - - - all - 192 - deb - software-properties-common - Ubuntu - 0.96.24.32.4 - - - all - 401 - deb - software-properties-gtk - Ubuntu - 0.96.24.32.4 - - - amd64 - 1408 - deb - sosreport - Ubuntu - 3.5-1ubuntu3.18.04.1 - - - all - 537 - deb - sound-theme-freedesktop - Ubuntu - 0.8-2ubuntu1 - - - amd64 - 305 - deb - squashfs-tools - Ubuntu - 1:4.3-6ubuntu0.18.04.1 - - - all - 53 - deb - ssh-import-id - Ubuntu - 5.7-0ubuntu1.1 - - - all - 63 - deb - ssl-cert - Ubuntu - 1.0.39 - - - amd64 - 1408 - deb - strace - Ubuntu - 4.21-1ubuntu1 - - - amd64 - 1724 - deb - sudo - Ubuntu - 1.8.21p2-3ubuntu1 - - - amd64 - 12460 - deb - systemd - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 122 - deb - systemd-sysv - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 60 - deb - sysvinit-utils - Ubuntu - 2.88dsf-59.10ubuntu1 - - - amd64 - 286 - deb - t1utils - Ubuntu - 1.41-2 - - - amd64 - 864 - deb - tar - Ubuntu - 1.29b-2 - - - all - 244 - deb - tasksel - Ubuntu - 3.34ubuntu11 - - - all - 41 - deb - tasksel-data - Ubuntu - 3.34ubuntu11 - - - amd64 - 1170 - deb - tcpdump - Ubuntu - 4.9.2-3 - - - amd64 - 161 - deb - telnet - Ubuntu - 0.17-41 - - - amd64 - 78 - deb - time - Ubuntu - 1.7-25.1build1 - - - amd64 - 632 - deb - tmux - Ubuntu - 2.6-3 - - - all - 40 - deb - ttf-ubuntu-font-family - Ubuntu - 1:0.83-2 - - - all - 3033 - deb - tzdata - Ubuntu - 2019b-0ubuntu0.18.04 - - - all - 74 - deb - ubuntu-advantage-tools - Ubuntu - 17 - - - amd64 - 201 - deb - ubuntu-drivers-common - Ubuntu - 1:0.5.2 - - - all - 42 - deb - ubuntu-keyring - Ubuntu - 2018.02.28 - - - amd64 - 47 - deb - ubuntu-minimal - Ubuntu - 1.417 - - - all - 5647 - deb - ubuntu-mono - Ubuntu - 16.10+18.04.20180421.1-0ubuntu1 - - - all - 332 - deb - ubuntu-release-upgrader-core - Ubuntu - 1:18.04.21 - - - all - 201 - deb - ubuntu-release-upgrader-gtk - Ubuntu - 1:18.04.21 - - - amd64 - 5798 - deb - ubuntu-inventory - Ubuntu - 1.2.0~bionic - - - amd64 - 47 - deb - ubuntu-server - Ubuntu - 1.417 - - - amd64 - 47 - deb - ubuntu-standard - Ubuntu - 1.417 - - - all - 183 - deb - ucf - Ubuntu - 3.0038 - - - amd64 - 7722 - deb - udev - Ubuntu - 237-3ubuntu10.29 - - - amd64 - 1068 - deb - udisks2 - Ubuntu - 2.7.6-3ubuntu0.2 - - - all - 818 - deb - ufw - Ubuntu - 0.35-5 - - - amd64 - 339 - deb - uidmap - Ubuntu - 1:4.5-1ubuntu1 - - - all - 356 - deb - unattended-upgrades - Ubuntu - 1.1ubuntu1.18.04.5 - - - all - 1036 - deb - update-manager - Ubuntu - 1:18.04.11.4 - - - all - 172 - deb - update-manager-core - Ubuntu - 1:18.04.11.4 - - - amd64 - 244 - deb - update-notifier - Ubuntu - 3.192.1.3 - - - all - 1378 - deb - update-notifier-common - Ubuntu - 3.192.1.3 - - - amd64 - 73 - deb - ureadahead - Ubuntu - 0.100.0-20 - - - amd64 - 100 - deb - usbmuxd - Ubuntu - 1.1.0-2build1 - - - amd64 - 716 - deb - usbutils - Ubuntu - 1:007-4build1 - - - amd64 - 3374 - deb - util-linux - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 201 - deb - uuid-runtime - Ubuntu - 2.31.1-0.4ubuntu3.1 - - - amd64 - 2785 - deb - vim - Ubuntu - 2:8.0.1453-1ubuntu1.1 - - - all - 329 - deb - vim-common - Ubuntu - 2:8.0.1453-1ubuntu1.1 - - - all - 28420 - deb - vim-runtime - Ubuntu - 2:8.0.1453-1ubuntu1.1 - - - amd64 - 1271 - deb - vim-tiny - Ubuntu - 2:8.0.1453-1ubuntu1.1 - - - all - 989 - deb - wamerican - Ubuntu - 2017.08.24-1 - - - all - 984 - deb - wbritish - Ubuntu - 2017.08.24-1 - - - amd64 - 932 - deb - wget - Ubuntu - 1.19.4-1ubuntu2.2 - - - amd64 - 65 - deb - whiptail - Ubuntu - 0.52.20-1ubuntu1 - - - all - 33 - deb - wireless-regdb - Ubuntu - 2018.05.09-0ubuntu1~18.04.1 - - - all - 311 - deb - x11-common - Ubuntu - 1:7.7+19ubuntu7 - - - amd64 - 635 - deb - x11-utils - Ubuntu - 7.7+3build1 - - - amd64 - 457 - deb - x11-xkb-utils - Ubuntu - 7.7+3ubuntu0.18.04.1 - - - amd64 - 505 - deb - x11-xserver-utils - Ubuntu - 7.7+7build1 - - - amd64 - 72 - deb - xauth - Ubuntu - 1:1.0.10-1 - - - amd64 - 165 - deb - xdelta3 - Ubuntu - 3.0.11-dfsg-1ubuntu1 - - - amd64 - 533 - deb - xdg-user-dirs - Ubuntu - 0.17-1ubuntu1 - - - all - 7020 - deb - xfonts-base - Ubuntu - 1:1.0.4+nmu1 - - - all - 668 - deb - xfonts-encodings - Ubuntu - 1:1.0.4-2 - - - amd64 - 416 - deb - xfonts-utils - Ubuntu - 1:7.7+6 - - - amd64 - 3876 - deb - xfsprogs - Ubuntu - 4.9.0+nmu1ubuntu2 - - - all - 3186 - deb - xkb-data - Ubuntu - 2.23.1-1ubuntu1 - - - amd64 - 2253 - deb - xscreensaver - Ubuntu - 5.36-1ubuntu1 - - - amd64 - 1680 - deb - xscreensaver-data - Ubuntu - 5.36-1ubuntu1 - - - all - 235 - deb - xserver-common - Ubuntu - 2:1.19.6-1ubuntu4.2 - - - amd64 - 410 - deb - xserver-xorg - Ubuntu - 1:7.7+19ubuntu7 - - - amd64 - 3903 - deb - xserver-xorg-core - Ubuntu - 2:1.19.6-1ubuntu4.2 - - - amd64 - 49 - deb - xserver-xorg-input-all - Ubuntu - 1:7.7+19ubuntu7 - - - amd64 - 102 - deb - xserver-xorg-input-libinput - Ubuntu - 0.27.1-1 - - - amd64 - 182 - deb - xserver-xorg-input-synaptics - Ubuntu - 1.9.0-1ubuntu1 - - - amd64 - 291 - deb - xserver-xorg-input-wacom - Ubuntu - 1:0.36.1-0ubuntu1 - - - amd64 - 261 - deb - xserver-xorg-legacy - Ubuntu - 2:1.19.6-1ubuntu4.2 - - - amd64 - 49 - deb - xserver-xorg-video-all - Ubuntu - 1:7.7+19ubuntu7 - - - amd64 - 165 - deb - xserver-xorg-video-amdgpu - Ubuntu - 18.0.1-1 - - - amd64 - 45 - deb - xserver-xorg-video-ati - Ubuntu - 1:18.0.1-1 - - - amd64 - 47 - deb - xserver-xorg-video-fbdev - Ubuntu - 1:0.4.4-1build6 - - - amd64 - 3183 - deb - xserver-xorg-video-intel - Ubuntu - 2:2.99.917+git20171229-1 - - - amd64 - 270 - deb - xserver-xorg-video-nouveau - Ubuntu - 1:1.0.15-2 - - - amd64 - 202 - deb - xserver-xorg-video-qxl - Ubuntu - 0.1.5-2build1 - - - amd64 - 533 - deb - xserver-xorg-video-radeon - Ubuntu - 1:18.0.1-1 - - - amd64 - 50 - deb - xserver-xorg-video-vesa - Ubuntu - 1:2.3.4-1build3 - - - amd64 - 203 - deb - xserver-xorg-video-vmware - Ubuntu - 1:13.2.1-1build1 - - - amd64 - 195 - deb - xxd - Ubuntu - 2:8.0.1453-1ubuntu1.1 - - - amd64 - 428 - deb - xz-utils - Ubuntu - 5.2.2-1.3 - - - amd64 - 25 - deb - zerofree - Ubuntu - 1.0.4-1 - - - amd64 - 169 - deb - zlib1g - Ubuntu - 1:1.2.11.dfsg-0ubuntu2 - - - Virtual - 10485 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.26.1 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - wz--n- - 37 - 2 - 1 - 10733 - 4.19 - dev-www-01-vg - ex9HrK-hm0k-fQ0Q-6c5A-jixV-bdPa-y6VnEL - - - dev-www-01-2018-08-06-18-14-10 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs.sign deleted file mode 100644 index 285d953b173..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/dev-www-01-e71e186b-57b5-4bb0-bd3e-4e2c58189f04.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=2c7b72ab03a90cf5819ebe1986cfa1e8b9c83fafd1667b23871a8b9bca91afc4289c3a6e8791ccd22f22578d01ab0c71b3dbc93b8ff0d83ecaebe43d8bc72e66f29b7e9916be3f56d9738adc3d81be407d1d8fc064cd6838f69257664c6cf5605fac127837201de79674e025d05cd4e70e0e14c007b4d5a9bc9df315e85b1f937df5e49c77991ca2e04b1b6c95b73196da5f9c5d9c5dda168e8a78164a66526430bf30243b03fb7d0d3985ee897c305653874096b48503f1f46fa7dc2f14bc1fbd7e05b05773f5e46c60bdcc0e3f1e18a8dcc568000f8a51b9dbb1158df7d40082a148ed50493fdef4cd6b28d8dc70d778489bf6624eac522be9c44f64488088ae3533d558ecc0a49c6a04dd238b7ddf1afabbb7bd8d16d6137edd277804a911cc1feb437dab6cb46dd1e56f5a06a222b1f7a737bdf153e8e7d716b78f40d917bb16385caaeafc84c3c03d16963f6d06a56f4f4c0ee7db2ab584b01eb5025e56583939b19fb99970c082eaebfe4e91944fd3638843492be1e91bc237bd70b17592e4e3dfed45a2c9a3b9d65f74c09584ad9184808181a13171844539d5be3588706a418a0ba814f7fd7ded267d8e1a1d19d96f017c6d5cd8286980ce0574f0c5f0978b6ddc5bf6d6032ae3f4a65355ea7ea49d51fee685de6b2bd1251e0116873bf96de8633fa3cedf4066a5ef7e54a52696be5a5fe13fbd16f86c1da84cd556 -hostname=dev-www-01 -keydate=2018-08-06 18:14:01.537400778 +0200 -keyid=CF495DFD diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs deleted file mode 100644 index 9885cfd1cae..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs +++ /dev/null @@ -1,8876 +0,0 @@ - - - - - 2019-09-13 00:41:07 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - QXL paravirtual graphic card - qxl - Red Hat, Inc. - QXL paravirtual graphic card - 0300 - 00:02.0 - 0100 - 04 - VGA compatible controller - 1b36 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:03.0 - 1000 - Ethernet controller - 1af4 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #1 - 0c03 - 00:04.0 - 2934 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #2 - 0c03 - 00:04.1 - 2935 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #3 - 0c03 - 00:04.2 - 2936 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - ehci - Intel Corporation - 82801I (ICH9 Family) USB2 EHCI Controller #1 - 0c03 - 00:04.7 - 293a - 03 - USB controller - 8086 - - - Virtio console - virtio - Red Hat, Inc - Virtio console - 0780 - 00:05.0 - 1003 - Communication controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:06.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 00ff - 00:07.0 - 1002 - Unclassified device - 1af4 - - - i386 - 1 - Other - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2 - 1 - - - i386 - 1 - Other - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2 - 1 - - - xfs - 13718 - 2908385b-7206-4512-aa3d-a7a01dfa65ee - 17394 - / - /dev/mapper/centos_prod--infra--01-root - - - xfs - 872 - 9a33f661-8856-4d38-ae5e-6095510bd71c - 1014 - /boot - /dev/vda1 - - - QTINC - /usr/lib64/qt-3.3/include - - - MANPATH - /usr/local/share/man:/usr/share/man:/opt/rudder/share/man - - - LESSOPEN - ||/usr/bin/lesspipe.sh %s - - - MAIL - /var/spool/mail/root - - - PWD - /var/rudder - - - QTDIR - /usr/lib64/qt-3.3 - - - LANG - en_US.UTF-8 - - - USER - root - - - LOGNAME - root - - - DEBIAN_FRONTEND - noninteractive - - - HOSTNAME - prod-infra-01 - - - SHLVL - 2 - - - _ - /usr/bin/perl - - - QTLIB - /usr/lib64/qt-3.3/lib - - - PATH - /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/rudder/cfengine-community/bin - - - QT_GRAPHICSSYSTEM_CHECKED - 1 - - - HISTSIZE - 1000 - - - HISTCONTROL - ignoredups - - - x86_64-linux-thread-multi - Other - 131071 - Mon Jul 29 16:27 - 192.168.210.1 - 192.168.210.1 - 1 - 192.168.210.7 - fdallide - 3789 - prod-infra-01 - #1 SMP Fri Apr 20 16:44:24 UTC 2018 - CentOS Linux release 7.5.1804 (Core) - 3.10.0-862.el7.x86_64 - 2 - Intel Core Processor (Broadwell) - 2047 - BAEF857D-5B14-4EC9-8C1A-1987B0C8A0BB - QEMU - demo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - PC Speaker - PC Speaker - Keyboard - - - 10 - abrianceau - wheel - - - 12 - postfix - mail - mail - - - 1000 - abrianceau - abrianceau - abrianceau - - - 995 - centreon-engine - centreon-broker - apache - nagios - nagios - - - 994 - centreon-engine - centreon-broker - apache - centreon - centreon - - - 48 - nagios - centreon - apache - apache - - - 993 - centreon - nagios - centreon-engine - apache - centreon-broker - centreon-broker - - - 992 - centreon-broker - apache - nagios - centreon - centreon-engine - centreon-engine - - - /root - 0 - root - root - /bin/bash - - - /bin - 1 - bin - bin - /sbin/nologin - - - /sbin - 2 - daemon - daemon - /sbin/nologin - - - /var/adm - 3 - adm - adm - /sbin/nologin - - - /var/spool/lpd - 4 - lp - lp - /sbin/nologin - - - /sbin - 5 - sync - sync - /bin/sync - - - /sbin - 6 - shutdown - shutdown - /sbin/shutdown - - - /sbin - 7 - halt - halt - /sbin/halt - - - /var/spool/mail - 8 - mail - mail - /sbin/nologin - - - /root - 11 - operator - operator - /sbin/nologin - - - /usr/games - 12 - games - games - /sbin/nologin - - - /var/ftp - 14 - ftp - FTP User - /sbin/nologin - - - / - 99 - nobody - Nobody - /sbin/nologin - - - / - 192 - systemd-network - systemd Network Management - /sbin/nologin - - - / - 81 - dbus - System message bus - /sbin/nologin - - - / - 999 - polkitd - User for polkitd - /sbin/nologin - - - /var/empty/sshd - 74 - sshd - Privilege-separated SSH - /sbin/nologin - - - /var/spool/postfix - 89 - postfix - - /sbin/nologin - - - /var/lib/chrony - 998 - chrony - - /sbin/nologin - - - /home/abrianceau - 1000 - abrianceau - abrianceau - /bin/bash - - - /home/bpeccatte - 1001 - bpeccatte - - /bin/bash - - - /var/spool/nagios - 997 - nagios - - /bin/bash - - - /var/spool/centreon - 996 - centreon - - /bin/bash - - - /usr/share/httpd - 48 - apache - Apache - /sbin/nologin - - - /dev/null - 59 - tss - Account used by the trousers package to sandbox the tcsd daemon - /sbin/nologin - - - /var/lib/centreon-broker - 995 - centreon-broker - - /bin/bash - - - /var/lib/centreon-engine - 994 - centreon-engine - - /bin/bash - - - /var/lib/mysql - 993 - mysql - MySQL server - /sbin/nologin - - - /home/ncharles - 1002 - ncharles - - /bin/bash - - - /home/amousset - 1003 - amousset - - /bin/bash - - - /home/fdallidet - 1004 - fdallidet - - /bin/bash - - - /var/lib/zabbixsrv - 992 - zabbixsrv - Zabbix Monitoring System -- Proxy or server - /sbin/nologin - - - /var/lib/zabbix - 991 - zabbix - Zabbix Monitoring System - /sbin/nologin - - - /home/farmand - 1005 - farmand - - /bin/bash - - - /home/jdoe - 1006 - jdoe - - /bin/bash - - - -wi-ao---- - root - UiAj3n-HfUZ-Iih6-K6kw-Jrzw-RxQF-YmIxLp - 1 - 18249 - H6tEsx-T3on-W4jp-Na1K-31UZ-8WdP-eofFkK - - - -wi-ao---- - swap - e4dSqZ-XRc6-Mjn2-VnbS-0Hgv-h5Xj-UbFJxa - 1 - 2147 - H6tEsx-T3on-W4jp-Na1K-31UZ-8WdP-eofFkK - - - 4096 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.210.7 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:0f:f9:80 - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fe0f:f980 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:0f:f9:80 - Up - ethernet - 0 - - - x86_64 - 2019-08-27 17:29:38 - demo.normation.com - prod-infra-01.demo.normation.com - CentOS Linux release 7.5.1804 (Core) - 007f0100 - linux - 3.10.0-862.el7.x86_64 - CentOS - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcu2POVj5sD2F5IpymkAbvAms1XcwOVg0pyQaLOrvZOq0JA5ZsPKdMbqCh3Tr5+aNyH31GrtvEmtnfaOm+jkafDXLSmwEDVZYiZZRhKFhXAp5Q3CPmud6NYjhiDtTdSxBGO9frxZEk8B+4b2oc7+Df5jgrcHfXI1pf/HN8X/WxDQfnqQx0aSPvJR3KF1oCHvkvnE21J+IKGb8JsmXF71ZHe+TRpYbXMzNcRtCwymj2oH7Ac5BWtGJ3+jNpWKFR99UNHa9QYezo4LwtjlbA68E7RGV09yfRVzLpF9w3GN9UQFFV+bbCbmiF6DZlBSUPYmSfTZcUZXBYdluGdzrldgCx - - Europe/Paris - +0200 - - 7.5.1804 - - - a-- - /dev/vda2 - lvm2 - 0 - 4 - 4863 - v2hDSs-5yTW-04VU-X7xy-s0v4-XNs1-iVJHGI - 20396 - H6tEsx-T3on-W4jp-Na1K-31UZ-8WdP-eofFkK - - - /usr/lib/systemd/systemd --switched-root --system --deserialize 22 - 0.0 - 0.1 - 1 - 2019-08-27 17:29 - ? - root - 125484 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-08-27 17:29 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2019-08-27 17:29 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 7 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 8 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 9 - 2019-08-27 17:29 - ? - root - 0 - - - [lru-add-drain] - 0.0 - 0.0 - 10 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 11 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdog/1] - 0.0 - 0.0 - 12 - 2019-08-27 17:29 - ? - root - 0 - - - [migration/1] - 0.0 - 0.0 - 13 - 2019-08-27 17:29 - ? - root - 0 - - - [ksoftirqd/1] - 0.0 - 0.0 - 14 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/1:0H] - 0.0 - 0.0 - 16 - 2019-08-27 17:29 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 18 - 2019-08-27 17:29 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 19 - 2019-08-27 17:29 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 20 - 2019-08-27 17:29 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 21 - 2019-08-27 17:29 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 22 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 23 - 2019-08-27 17:29 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 24 - 2019-08-27 17:29 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 25 - 2019-08-27 17:29 - ? - root - 0 - - - [edac-poller] - 0.0 - 0.0 - 26 - 2019-08-27 17:29 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 32 - 2019-08-27 17:29 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 33 - 2019-08-27 17:29 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 34 - 2019-08-27 17:29 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 35 - 2019-08-27 17:29 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 43 - 2019-08-27 17:29 - ? - root - 0 - - - [kmpath_rdacd] - 0.0 - 0.0 - 45 - 2019-08-27 17:29 - ? - root - 0 - - - [kaluad] - 0.0 - 0.0 - 46 - 2019-08-27 17:29 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 47 - 2019-08-27 17:29 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 48 - 2019-08-27 17:29 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 62 - 2019-08-27 17:29 - ? - root - 0 - - - [kauditd] - 0.0 - 0.0 - 94 - 2019-08-27 17:29 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 274 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 280 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 284 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 285 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 286 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/1:1H] - 0.0 - 0.0 - 291 - 2019-08-27 17:29 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 298 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 357 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 358 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 367 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 368 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 382 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsalloc] - 0.0 - 0.0 - 383 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs_mru_cache] - 0.0 - 0.0 - 384 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-buf/dm-0] - 0.0 - 0.0 - 385 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-data/dm-0] - 0.0 - 0.0 - 386 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-conv/dm-0] - 0.0 - 0.0 - 387 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-cil/dm-0] - 0.0 - 0.0 - 388 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-reclaim/dm-] - 0.0 - 0.0 - 389 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-log/dm-0] - 0.0 - 0.0 - 390 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-eofblocks/d] - 0.0 - 0.0 - 391 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsaild/dm-0] - 0.0 - 0.0 - 392 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 393 - 2019-08-27 17:29 - ? - root - 0 - - - /usr/lib/systemd/systemd-journald - 0.0 - 0.2 - 461 - 2019-08-27 17:29 - ? - root - 39188 - - - /usr/sbin/lvmetad -f - 0.0 - 0.0 - 475 - 2019-08-27 17:29 - ? - root - 198524 - - - /usr/lib/systemd/systemd-udevd - 0.0 - 0.0 - 490 - 2019-08-27 17:29 - ? - root - 44564 - - - [xfs-buf/vda1] - 0.0 - 0.0 - 560 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-data/vda1] - 0.0 - 0.0 - 561 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-conv/vda1] - 0.0 - 0.0 - 562 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-cil/vda1] - 0.0 - 0.0 - 563 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-reclaim/vda] - 0.0 - 0.0 - 564 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-log/vda1] - 0.0 - 0.0 - 565 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-eofblocks/v] - 0.0 - 0.0 - 566 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsaild/vda1] - 0.0 - 0.0 - 567 - 2019-08-27 17:29 - ? - root - 0 - - - /sbin/auditd - 0.0 - 0.0 - 590 - 2019-08-27 17:29 - ? - root - 55508 - - - /usr/lib/systemd/systemd-logind - 0.0 - 0.0 - 612 - 2019-08-27 17:29 - ? - root - 26456 - - - /usr/sbin/cbwd /etc/centreon-broker/watchdog.xml - 0.0 - 0.1 - 613 - 2019-08-27 17:29 - ? - centreo+ - 276608 - - - /usr/bin/qemu-ga --method=virtio-serial --path=/dev/virtio-ports/org.qemu.guest_agent.0 --blacklist=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush,guest-exec,guest-exec-status -F/etc/qemu-ga/fsfreeze-hook - 0.0 - 0.0 - 615 - 2019-08-27 17:29 - ? - root - 25040 - - - /var/rudder/cfengine-community/bin/cf-execd --no-fork - 0.0 - 0.2 - 616 - 2019-08-27 17:29 - ? - root - 177052 - - - /usr/sbin/irqbalance --foreground - 0.0 - 0.0 - 617 - 2019-08-27 17:29 - ? - root - 21524 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation - 0.0 - 0.0 - 618 - 2019-08-27 17:29 - ? - dbus - 58192 - - - /usr/sbin/NetworkManager --no-daemon - 0.0 - 0.2 - 622 - 2019-08-27 17:29 - ? - root - 549992 - - - /usr/sbin/centengine /etc/centreon-engine/centengine.cfg - 0.1 - 1.8 - 625 - 2019-08-27 17:29 - ? - centreo+ - 798880 - - - /usr/lib/polkit-1/polkitd --no-debug - 0.0 - 0.2 - 626 - 2019-08-27 17:29 - ? - polkitd - 538440 - - - /usr/sbin/atd -f - 0.0 - 0.0 - 630 - 2019-08-27 17:29 - ? - root - 25904 - - - /usr/sbin/cbd /etc/centreon-broker/central-broker.xml - 0.3 - 0.3 - 632 - 2019-08-27 17:29 - ? - centreo+ - 1020108 - - - /usr/sbin/cbd /etc/centreon-broker/central-rrd.xml - 0.1 - 0.4 - 633 - 2019-08-27 17:29 - ? - centreo+ - 651456 - - - /usr/sbin/crond -n - 0.0 - 0.0 - 636 - 2019-08-27 17:29 - ? - root - 126316 - - - /sbin/agetty --noclear tty1 linux - 0.0 - 0.0 - 641 - 2019-08-27 17:29 - tty1 - root - 110088 - - - /usr/sbin/chronyd - 0.0 - 0.0 - 644 - 2019-08-27 17:29 - ? - chrony - 117752 - - - /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-b990b80b-8e15-4a62-bb4b-93128d0c2734-eth0.lease -cf /var/lib/NetworkManager/dhclient-eth0.conf eth0 - 0.0 - 0.1 - 704 - 2019-08-27 17:29 - ? - root - 107380 - - - [kworker/1:0] - 0.0 - 0.0 - 859 - 2019-09-13 00:19 - ? - root - 0 - - - /usr/sbin/sshd -D - 0.0 - 0.1 - 1058 - 2019-08-27 17:29 - ? - root - 112796 - - - /usr/bin/python -Es /usr/sbin/tuned -l -P - 0.0 - 0.4 - 1060 - 2019-08-27 17:29 - ? - root - 573816 - - - /usr/sbin/snmpd -LS0-6d -f - 0.0 - 0.2 - 1061 - 2019-08-27 17:29 - ? - root - 223528 - - - /var/rudder/cfengine-community/bin/cf-serverd --no-fork - 0.0 - 0.2 - 1062 - 2019-08-27 17:29 - ? - root - 99088 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.5 - 1064 - 2019-08-27 17:29 - ? - root - 438400 - - - /usr/sbin/rsyslogd -n - 0.0 - 0.2 - 1066 - 2019-08-27 17:29 - ? - root - 417188 - - - /usr/sbin/zabbix_agentd -f - 0.0 - 0.0 - 1067 - 2019-08-27 17:29 - ? - zabbix - 78524 - - - /usr/sbin/zabbix_agentd: collector [idle 1 sec] - 0.0 - 0.0 - 1072 - 2019-08-27 17:29 - ? - zabbix - 78524 - - - /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] - 0.0 - 0.0 - 1073 - 2019-08-27 17:29 - ? - zabbix - 78640 - - - /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] - 0.0 - 0.0 - 1074 - 2019-08-27 17:29 - ? - zabbix - 78640 - - - /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] - 0.0 - 0.0 - 1075 - 2019-08-27 17:29 - ? - zabbix - 78644 - - - /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec] - 0.0 - 0.0 - 1076 - 2019-08-27 17:29 - ? - zabbix - 78524 - - - /usr/sbin/mysqld - 0.3 - 8.2 - 1140 - 2019-08-27 17:29 - ? - mysql - 987168 - - - /usr/bin/perl /usr/share/centreon/bin/centcore --logfile=/var/log/centreon/centcore.log --severity=error --config=/etc/centreon/conf.pm - 0.0 - 0.3 - 1159 - 2019-08-27 17:29 - ? - centreon - 201360 - - - /usr/sbin/zabbix_server -f - 0.0 - 0.1 - 1510 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: configuration syncer [synced configuration in 0.010954 sec, idle 60 sec] - 0.0 - 0.0 - 1533 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.001417 sec, idle 60 sec] - 0.0 - 0.0 - 1534 - 2019-08-27 17:29 - ? - zabbixs+ - 156568 - - - /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000008 sec, idle 5 sec] - 0.0 - 0.1 - 1535 - 2019-08-27 17:29 - ? - zabbixs+ - 263624 - - - /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000005 sec, idle 5 sec] - 0.0 - 0.1 - 1536 - 2019-08-27 17:29 - ? - zabbixs+ - 263620 - - - /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000005 sec, idle 5 sec] - 0.0 - 0.1 - 1537 - 2019-08-27 17:29 - ? - zabbixs+ - 263620 - - - /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000005 sec, idle 5 sec] - 0.0 - 0.1 - 1538 - 2019-08-27 17:29 - ? - zabbixs+ - 263620 - - - /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000010 sec, idle 5 sec] - 0.0 - 0.1 - 1539 - 2019-08-27 17:29 - ? - zabbixs+ - 263624 - - - /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000010 sec, idle 5 sec] - 0.0 - 0.1 - 1540 - 2019-08-27 17:29 - ? - zabbixs+ - 263452 - - - /usr/sbin/zabbix_server: trapper #1 [processed data in 0.001470 sec, waiting for connection] - 0.0 - 0.0 - 1541 - 2019-08-27 17:29 - ? - zabbixs+ - 156684 - - - /usr/sbin/zabbix_server: trapper #2 [processed data in 0.001511 sec, waiting for connection] - 0.0 - 0.0 - 1542 - 2019-08-27 17:29 - ? - zabbixs+ - 156684 - - - /usr/sbin/zabbix_server: trapper #3 [processed data in 0.001395 sec, waiting for connection] - 0.0 - 0.0 - 1543 - 2019-08-27 17:29 - ? - zabbixs+ - 156684 - - - /usr/sbin/zabbix_server: trapper #4 [processed data in 0.001598 sec, waiting for connection] - 0.0 - 0.0 - 1544 - 2019-08-27 17:29 - ? - zabbixs+ - 156684 - - - /usr/sbin/zabbix_server: trapper #5 [processed data in 0.001456 sec, waiting for connection] - 0.0 - 0.0 - 1545 - 2019-08-27 17:29 - ? - zabbixs+ - 156684 - - - /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000007 sec, idle 5 sec] - 0.0 - 0.0 - 1546 - 2019-08-27 17:29 - ? - zabbixs+ - 159088 - - - /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.000743 sec, idle 30 sec] - 0.0 - 0.0 - 1547 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: housekeeper [deleted 3336 hist/trends, 0 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 0.323393 sec, idle for 1 hour(s)] - 0.0 - 0.0 - 1548 - 2019-08-27 17:29 - ? - zabbixs+ - 156816 - - - /usr/sbin/zabbix_server: timer #1 [processed 1 triggers, 0 events in 0.000185 sec, 0 maintenances in 0.000745 sec, idle 30 sec] - 0.0 - 0.0 - 1549 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000506 sec, idle 5 sec] - 0.0 - 0.0 - 1550 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000817 sec, idle 60 sec] - 0.0 - 0.1 - 1551 - 2019-08-27 17:29 - ? - zabbixs+ - 275980 - - - /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000001 sec, idle 1 sec] - 0.0 - 0.0 - 1552 - 2019-08-27 17:29 - ? - zabbixs+ - 156648 - - - /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000001 sec, idle 1 sec] - 0.0 - 0.0 - 1553 - 2019-08-27 17:29 - ? - zabbixs+ - 156640 - - - /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000001 sec, idle 1 sec] - 0.0 - 0.0 - 1554 - 2019-08-27 17:29 - ? - zabbixs+ - 156644 - - - /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000001 sec, idle 1 sec] - 0.0 - 0.0 - 1555 - 2019-08-27 17:29 - ? - zabbixs+ - 156640 - - - /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000542 sec, idle 3 sec] - 0.0 - 0.0 - 1556 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000006 sec, idle 5 sec] - 0.0 - 0.0 - 1557 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000009 sec, idle 1 sec] - 0.0 - 0.0 - 1558 - 2019-08-27 17:29 - ? - zabbixs+ - 156576 - - - /usr/libexec/postfix/master -w - 0.0 - 0.0 - 1684 - 2019-08-27 17:29 - ? - root - 90276 - - - qmgr -l -t unix -u - 0.0 - 0.1 - 1689 - 2019-08-27 17:29 - ? - postfix - 90556 - - - [kworker/0:2] - 0.0 - 0.0 - 2574 - 2019-09-13 00:33 - ? - root - 0 - - - [kworker/1:2] - 0.0 - 0.0 - 3061 - 2019-09-13 00:36 - ? - root - 0 - - - [kworker/0:0] - 0.0 - 0.0 - 3150 - 2019-09-13 00:39 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.0 - 3457 - 2019-09-13 00:41 - ? - root - 11680 - - - /var/rudder/cfengine-community/bin/cf-agent - 62.5 - 0.4 - 3467 - 2019-09-13 00:41 - ? - root - 114940 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs - 0.0 - 0.0 - 3551 - 2019-09-13 00:41 - ? - root - 115300 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs - 31.0 - 1.0 - 3572 - 2019-09-13 00:41 - ? - root - 197068 - - - [kworker/1:1] - 0.0 - 0.0 - 3579 - 2019-09-13 00:41 - ? - root - 0 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 3582 - 2019-09-13 00:41 - ? - root - 11680 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.0 - 3583 - 2019-09-13 00:41 - ? - root - 51708 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.5 - 3864 - 2019-09-08 03:26 - ? - apache - 446384 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.4 - 3865 - 2019-09-08 03:26 - ? - apache - 440824 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.4 - 3866 - 2019-09-08 03:26 - ? - apache - 440824 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.4 - 3867 - 2019-09-08 03:26 - ? - apache - 440824 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.4 - 3868 - 2019-09-08 03:26 - ? - apache - 440824 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.4 - 11201 - 2019-09-08 04:32 - ? - apache - 440824 - - - [kworker/u4:2] - 0.0 - 0.0 - 18274 - 2019-09-12 17:10 - ? - root - 0 - - - pickup -l -t unix -u - 0.0 - 0.1 - 27744 - 2019-09-12 23:28 - ? - postfix - 90380 - - - [kworker/0:1] - 0.0 - 0.0 - 28846 - 2019-09-12 23:38 - ? - root - 0 - - - [kworker/u4:0] - 0.0 - 0.0 - 32467 - 2019-09-12 19:15 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEAqBJEJevUYKouMrOuVhxm1Munrt//rdkXbwti6FwKK0KHcb6/RhZ8 -s1g8kypMcB8N0RJmvhv15Xq/uR386SY7doRpzvoMf+DlKY7Mp4SwAjHSdbjbqqrJ -A7iJFZtUKNhtPf/rEXtjVsNMbPAAklotTNjFGOzLWep5XK0FGdf7XIeBX1RyR6un -zt1mZrgFBe/gL0VLVSHzUqsv67S6CsHlGbcwikTS9eXdEm/w5Q0K3ZFHJHScdvhl -69Thed7XdcoeNxMquTG3UK7M8lgNNDVSvM73gnHehPheqhtWmZL74Vq+m2saEudO -YLko94jJum8EYHSY2Yb8Xcc1lDXPXljk4PGoHmLx5PptAyQ7Ms88Kr5JwhfBEXPQ -X1hi5uttOlI2M9swPx8VQacIrk5mWoDus0us+Fv0u9XbP8BeHe/2GoiG44c3yFne -MC+1LsoG/Z0LEe0esjDBYqING3JnTI6JZ4106OW++xYVSea+CUFmMGe3npE+hv7e -eX6awaSl8zkVP2eluNPrtZt9bpZv/XVw8JKPeLNfv8nj+YQT53w3GrT5/PL59IY6 -LEfauQ4x6EYAnFjBmZy9gALX+b58j7RPb1n1/EhlR6U3AvEXor3Z+tfCrvpSOA8X -9KK7YBgSfBKEXJ1bePAeIWGslcYO3i6IwYPjgIdFXlgERKDfyG7NbqUCAwEAAQ== ------END RSA PUBLIC KEY----- - - root - prod-rudder - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - [{"cpu_vulnerabilities":{"spectre_v2":{"status":"vulnerable","details":"Retpoline without IBPB"},"spectre_v1":{"status":"mitigated","details":"Load fences"},"meltdown":{"status":"mitigated","details":"PTI"}}}] - prod-infra-01.lab.rudder.io - - 1d71624f-06fa-4472-8e8d-820b970039ba - - - noarch - Configuration files for Qt - 1856 - rpm - 17/09/2018 - qt-settings - CentOS - 19-23.7.el7.centos - - - x86_64 - Userland logical volume management tools - 3055975 - rpm - 06/08/2018 - lvm2 - CentOS - 2.02.177-4.el7 - - - noarch - Descriptions of common terminals - 223432 - rpm - 06/08/2018 - ncurses-base - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Pixel manipulation library - 698744 - rpm - 17/09/2018 - pixman - CentOS - 0.34.0-1.el7 - - - x86_64 - An open source SSH server daemon - 993810 - rpm - 06/08/2018 - openssh-server - CentOS - 7.4p1-16.el7 - - - noarch - Timezone data - 1954525 - rpm - 06/08/2018 - tzdata - CentOS - 2018c-1.el7 - - - x86_64 - GNU's bc (a numeric processing language) and dc (a calculator) - 219830 - rpm - 17/09/2018 - bc - CentOS - 1.06.95-13.el7 - - - x86_64 - User space tools for 2.6 kernel auditing - 639108 - rpm - 06/08/2018 - audit - CentOS - 2.8.1-3.el7 - - - x86_64 - Common binaries and locale data for glibc - 120325207 - rpm - 06/08/2018 - glibc-common - CentOS - 2.17-222.el7 - - - x86_64 - IPv6 related part of the C socket.h defines and structure manipulators - 50749 - rpm - 17/09/2018 - perl-Socket6 - CentOS - 0.23-15.el7 - - - noarch - Adaptec SAS 44300, 48300, 58300 Sequencer Firmware for AIC94xx driver - 30752 - rpm - 06/08/2018 - aic94xx-firmware - CentOS - 30-6.el7 - - - noarch - The skeleton package which defines a simple CentOS Linux system - 0 - rpm - 06/08/2018 - basesystem - CentOS - 10.0-7.el7.centos - - - x86_64 - A GNU utility for monitoring a program's use of system resources - 47926 - rpm - 17/09/2018 - time - CentOS - 1.7-45.el7 - - - x86_64 - The GNU disk partition manipulation program - 2336757 - rpm - 06/08/2018 - parted - CentOS - 3.1-29.el7 - - - x86_64 - Network Security Services Utilities Library - 194944 - rpm - 06/08/2018 - nss-util - CentOS - 3.34.0-2.el7 - - - x86_64 - Utilities for managing ext2, ext3, and ext4 filesystems - 2555829 - rpm - 06/08/2018 - e2fsprogs - CentOS - 1.42.9-11.el7 - - - x86_64 - A stand-alone TTY-based reader for GNU texinfo documentation - 494630 - rpm - 06/08/2018 - info - CentOS - 5.1-5.el7 - - - x86_64 - CUPS print filters for the foomatic package - 333921 - rpm - 17/09/2018 - foomatic-filters - CentOS - 4.0.9-8.el7 - - - x86_64 - Utilities for managing the XFS filesystem - 4080035 - rpm - 06/08/2018 - xfsprogs - CentOS - 4.5.0-15.el7 - - - x86_64 - Dynamic library for extended attribute support - 19896 - rpm - 06/08/2018 - libattr - CentOS - 2.4.46-13.el7 - - - x86_64 - Faster and more correct implementation of the Package::Stash API - 59297 - rpm - 17/09/2018 - perl-Package-Stash-XS - CentOS - 0.26-3.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 135 Series Adapters - 822688 - rpm - 06/08/2018 - iwl135-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - Perl-compatible regular expression library - 1475532 - rpm - 06/08/2018 - pcre - CentOS - 8.32-17.el7 - - - noarch - Time zone object base class and factory - 6486552 - rpm - 17/09/2018 - perl-DateTime-TimeZone - CentOS - 1.70-1.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 7260 Series Adapters - 6505180 - rpm - 06/08/2018 - iwl7260-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - Library for loading and sharing PKCS#11 modules - 1337825 - rpm - 06/08/2018 - p11-kit - CentOS - 0.23.5-3.el7 - - - x86_64 - Utilities for manipulating .desktop files - 208436 - rpm - 17/09/2018 - desktop-file-utils - CentOS - 0.23-1.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 3160 Series Adapters - 10429840 - rpm - 06/08/2018 - iwl3160-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - The ASN.1 library used in GNUTLS - 424486 - rpm - 06/08/2018 - libtasn1 - CentOS - 4.10-1.el7 - - - noarch - Perl module to work with International Standard Book Numbers - 39822 - rpm - 17/09/2018 - perl-Business-ISBN - CentOS - 2.06-2.el7 - - - noarch - Firmware for Intel® PRO/Wireless 1000 B/G/N network adaptors - 794036 - rpm - 06/08/2018 - iwl1000-firmware - CentOS - 39.31.5.1-62.el7 - - - x86_64 - A general purpose cryptography library with TLS implementation - 3200172 - rpm - 06/08/2018 - openssl-libs - CentOS - 1.0.2k-12.el7 - - - x86_64 - Perl module for parsing HTML - 229197 - rpm - 17/09/2018 - perl-HTML-Parser - CentOS - 3.71-4.el7 - - - noarch - Firmware for Intel® PRO/Wireless 5150 A/G/N network adaptors - 458860 - rpm - 06/08/2018 - iwl5150-firmware - CentOS - 8.24.2.2-62.el7 - - - x86_64 - Universally unique ID library - 20326 - rpm - 06/08/2018 - libuuid - CentOS - 2.23.2-52.el7 - - - noarch - A Perl interface to the World-Wide Web - 498456 - rpm - 17/09/2018 - perl-libwww-perl - CentOS - 6.05-2.el7 - - - noarch - Small, simple, correct HTTP/1.1 client - 97210 - rpm - 06/08/2018 - perl-HTTP-Tiny - CentOS - 0.033-3.el7 - - - x86_64 - A library for editing typed command lines - 460464 - rpm - 06/08/2018 - readline - CentOS - 6.2-10.el7 - - - noarch - Perl extension to use a PAC (Proxy Auto Config) file to get proxy info - 37137 - rpm - 17/09/2018 - perl-HTTP-ProxyPAC - 0.31-1.el7.centos - - - noarch - Perl module for resolving POD escape sequences - 21091 - rpm - 06/08/2018 - perl-Pod-Escapes - CentOS - 1.04-292.el7 - - - x86_64 - An alternate posix capabilities library - 50510 - rpm - 06/08/2018 - libcap-ng - CentOS - 0.7.5-4.el7 - - - noarch - SAX parser access API for Perl - 128286 - rpm - 17/09/2018 - perl-XML-SAX - CentOS - 0.99-9.el7 - - - x86_64 - The libraries for the perl runtime - 1647272 - rpm - 06/08/2018 - perl-libs - CentOS - 5.16.3-292.el7 - - - x86_64 - A GNU archiving program - 689335 - rpm - 06/08/2018 - cpio - CentOS - 2.11-27.el7 - - - x86_64 - Old version of libpng, needed to run old binaries - 630222 - rpm - 17/09/2018 - libpng12 - CentOS - 1.2.50-10.el7 - - - noarch - Efficiently compute time from local and GMT time - 44062 - rpm - 06/08/2018 - perl-Time-Local - CentOS - 1.2300-2.el7 - - - x86_64 - Powerful light-weight programming language - 640319 - rpm - 06/08/2018 - lua - CentOS - 5.1.4-15.el7 - - - x86_64 - Header files for the Linux kernel for use by glibc - 3758537 - rpm - 17/09/2018 - kernel-headers - CentOS - 3.10.0-862.11.6.el7 - - - x86_64 - PathTools Perl module (Cwd, File::Spec) - 174131 - rpm - 06/08/2018 - perl-PathTools - CentOS - 3.40-5.el7 - - - x86_64 - A password-checking library - 209610 - rpm - 06/08/2018 - cracklib - CentOS - 2.9.0-11.el7 - - - x86_64 - A TLS protocol implementation - 2093896 - rpm - 17/09/2018 - gnutls - CentOS - 3.3.26-9.el7 - - - x86_64 - Perl extension for sharing data structures between threads - 73972 - rpm - 06/08/2018 - perl-threads-shared - CentOS - 1.43-6.el7 - - - x86_64 - Libraries for applications using libmagic - 3077690 - rpm - 06/08/2018 - file-libs - CentOS - 5.11-33.el7 - - - noarch - Install files from here to there - 76408 - rpm - 17/09/2018 - perl-ExtUtils-Install - CentOS - 1.58-292.el7 - - - noarch - Extended processing of command line options - 134846 - rpm - 06/08/2018 - perl-Getopt-Long - CentOS - 2.40-3.el7 - - - x86_64 - The standard CrackLib dictionaries - 9389116 - rpm - 06/08/2018 - cracklib-dicts - CentOS - 2.9.0-11.el7 - - - noarch - I/O on in-core objects like strings and arrays for Perl - 133586 - rpm - 17/09/2018 - perl-IO-stringy - CentOS - 2.110-22.el7 - - - x86_64 - Basic networking tools - 938986 - rpm - 06/08/2018 - net-tools - CentOS - 2.0-0.22.20131004git.el7 - - - x86_64 - PEM file reader for Network Security Services (NSS) - 201219 - rpm - 06/08/2018 - nss-pem - CentOS - 1.0.3-4.el7 - - - x86_64 - X.Org X11 libXext runtime library - 87102 - rpm - 17/09/2018 - libXext - CentOS - 1.3.3-3.el7 - - - noarch - Centreon Entreprise Linux reposistory contains software to use with Centreon. - 3176 - rpm - 17/09/2018 - centreon-release - Centreon - 3.4-4.el7.centos - - - x86_64 - GnuPG IPC library - 155391 - rpm - 06/08/2018 - libassuan - CentOS - 2.1.0-3.el7 - - - x86_64 - Cursor management library - 46967 - rpm - 17/09/2018 - libXcursor - CentOS - 1.1.14-8.el7 - - - x86_64 - A library of functions for manipulating PNG image format files - 616101 - rpm - 17/09/2018 - libpng - CentOS - 1.5.13-7.el7_2 - - - x86_64 - GCC OpenMP v3.0 shared support library - 212144 - rpm - 06/08/2018 - libgomp - CentOS - 4.8.5-28.el7 - - - x86_64 - An image loading library - 2893184 - rpm - 17/09/2018 - gdk-pixbuf2 - CentOS - 2.36.5-1.el7 - - - noarch - Base class SAX drivers and filters - 180558 - rpm - 17/09/2018 - perl-XML-SAX-Base - CentOS - 1.08-7.el7 - - - x86_64 - Ext2/3/4 filesystem-specific shared libraries - 363569 - rpm - 06/08/2018 - e2fsprogs-libs - CentOS - 1.42.9-11.el7 - - - x86_64 - LSB Printing module support - 0 - rpm - 17/09/2018 - redhat-lsb-printing - CentOS - 4.1-27.el7.centos.1 - - - x86_64 - MariaDB: a very fast and robust SQL database server - 254499 - rpm - 17/09/2018 - MariaDB-common - Monty Program AB - 10.1.19-1.el7.centos - - - x86_64 - Tools used for process and utmp management. - 109118 - rpm - 06/08/2018 - sysvinit-tools - CentOS - 2.88-14.dsf.el7 - - - x86_64 - X.Org X11 libXxf86vm runtime library - 25680 - rpm - 17/09/2018 - libXxf86vm - CentOS - 1.1.4-1.el7 - - - x86_64 - Low-level interface to the zlib compression library - 139803 - rpm - 17/09/2018 - perl-Compress-Raw-Zlib - CentOS - 2.061-4.el7 - - - x86_64 - Extremely fast compression algorithm - 366872 - rpm - 06/08/2018 - lz4 - CentOS - 1.7.5-2.el7 - - - x86_64 - X Composite Extension library - 35184 - rpm - 17/09/2018 - libXcomposite - CentOS - 0.4.4-4.1.el7 - - - noarch - A simple generic namespace support class - 28981 - rpm - 17/09/2018 - perl-XML-NamespaceSupport - CentOS - 1.11-10.el7 - - - x86_64 - An interpreted, interactive, object-oriented programming language - 80907 - rpm - 06/08/2018 - python - CentOS - 2.7.5-68.el7 - - - x86_64 - System for layout and rendering of internationalized text - 765320 - rpm - 17/09/2018 - pango - CentOS - 1.40.4-1.el7 - - - x86_64 - Nagios Plugin - check_icmp - 58112 - rpm - 17/09/2018 - nagios-plugins-icmp - 1.4.16-10.el7.centos - - - x86_64 - SELinux python bindings for libselinux - 603236 - rpm - 06/08/2018 - libselinux-python - CentOS - 2.5-12.el7 - - - x86_64 - Centreon Broker daemon. - 1227637 - rpm - 17/09/2018 - centreon-broker-cbd - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 3.0.14-1.el7.centos - - - x86_64 - A collection of SNMP protocol tools and libraries - 902986 - rpm - 17/09/2018 - net-snmp - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - Python bindings for newt - 116916 - rpm - 06/08/2018 - newt-python - CentOS - 0.52.15-4.el7 - - - x86_64 - Implementation of Linux Standard Base specification - 0 - rpm - 17/09/2018 - redhat-lsb - CentOS - 4.1-27.el7.centos.1 - - - x86_64 - Interfaces for accessibility support - 1251190 - rpm - 17/09/2018 - atk - CentOS - 2.22.0-3.el7 - - - noarch - Config file reading, writing, and validation - 611855 - rpm - 06/08/2018 - python-configobj - CentOS - 4.7.2-7.el7 - - - x86_64 - Centreon Broker as Centreon Engine 2 module. - 1910773 - rpm - 17/09/2018 - centreon-broker-cbmod - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 3.0.14-1.el7.centos - - - x86_64 - Mesa shared glapi - 199992 - rpm - 17/09/2018 - mesa-libglapi - CentOS - 17.2.3-8.20171019.el7 - - - x86_64 - Tools for managing Linux kernel packet filtering capabilities - 1555941 - rpm - 06/08/2018 - iptables - CentOS - 1.4.21-24.el7 - - - noarch - Runtime module handling - 27809 - rpm - 17/09/2018 - perl-Module-Runtime - CentOS - 0.013-4.el7 - - - x86_64 - A text file browser similar to more, but better - 215376 - rpm - 06/08/2018 - less - CentOS - 458-9.el7 - - - noarch - Configuration for Centeon with Centreon Engine and Centreon Broker - 3085 - rpm - 17/09/2018 - centreon-base-config-centreon-engine - 2.8.26-3.el7.centos - - - x86_64 - X.Org X11 libfontenc runtime library - 55701 - rpm - 17/09/2018 - libfontenc - CentOS - 1.1.3-3.el7 - - - x86_64 - Manage Linux IP sets - 75482 - rpm - 06/08/2018 - ipset - CentOS - 6.29-1.el7 - - - x86_64 - A utility for unpacking zip files - 373986 - rpm - 26/09/2018 - unzip - CentOS - 6.0-19.el7 - - - x86_64 - CUPS printing system - libraries - 734207 - rpm - 17/09/2018 - cups-libs - CentOS - 1.6.3-35.el7 - - - x86_64 - Command line tools for managing Berkeley DB databases - 326487 - rpm - 06/08/2018 - libdb-utils - CentOS - 5.3.21-24.el7 - - - x86_64 - Command-line interface for PHP - 9248585 - rpm - 16/01/2019 - php-cli - CentOS - 5.4.16-46.el7 - - - x86_64 - Perl extension for using OpenSSL - 1014813 - rpm - 17/09/2018 - perl-Net-SSLeay - CentOS - 1.55-6.el7 - - - x86_64 - Rotates, compresses, removes and mails system log files - 106988 - rpm - 06/08/2018 - logrotate - CentOS - 3.8.6-15.el7 - - - x86_64 - A module for PHP applications that use MySQL databases - 237539 - rpm - 16/01/2019 - php-mysql - CentOS - 5.4.16-46.el7 - - - noarch - Parse and validate simple name/value option pairs - 37311 - rpm - 17/09/2018 - perl-Data-OptList - CentOS - 0.107-9.el7 - - - x86_64 - A library for integrity verification of FIPS validated modules - 38839 - rpm - 06/08/2018 - fipscheck - CentOS - 1.4.1-6.el7 - - - x86_64 - A module for PHP applications that query SNMP-managed devices - 58409 - rpm - 16/01/2019 - php-snmp - CentOS - 5.4.16-46.el7 - - - x86_64 - CUPS printing system - client programs - 170396 - rpm - 17/09/2018 - cups-client - CentOS - 1.6.3-35.el7 - - - x86_64 - A utility for getting files from remote servers (FTP, HTTP, and others) - 540259 - rpm - 06/08/2018 - curl - CentOS - 7.29.0-46.el7 - - - (none) - gpg(Fedora EPEL (7) <epel@fedoraproject.org>) - 0 - rpm - 16/01/2019 - gpg-pubkey - 352c64e5-52ae6884 - - - x86_64 - X.Org X11 libXfont runtime library - 347614 - rpm - 17/09/2018 - libXfont - CentOS - 1.5.2-1.el7 - - - x86_64 - A user and group account administration library - 1952592 - rpm - 06/08/2018 - libuser - CentOS - 0.60-9.el7 - - - noarch - JavaScript DOM manipulation, event handling, and AJAX library - 565635 - rpm - 16/01/2019 - js-jquery1 - Fedora Project - 1.12.4-2.el7 - - - noarch - Localization support for DateTime.pm - 7293408 - rpm - 17/09/2018 - perl-DateTime-Locale - CentOS - 0.45-6.el7 - - - x86_64 - A minimal version of the VIM editor - 917640 - rpm - 06/08/2018 - vim-minimal - CentOS - 7.4.160-4.el7 - - - x86_64 - Runtime libraries for GNU Libtool Dynamic Module Loader - 67814 - rpm - 16/01/2019 - libtool-ltdl - CentOS - 2.4.2-22.el7_3 - - - x86_64 - Mesa gbm library - 58664 - rpm - 17/09/2018 - mesa-libgbm - CentOS - 17.2.3-8.20171019.el7 - - - x86_64 - A GNU tool which simplifies the build process for users - 1160684 - rpm - 06/08/2018 - make - CentOS - 3.82-23.el7 - - - noarch - Zabbix web frontend for MySQL - 0 - rpm - 16/01/2019 - zabbix30-web-mysql - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Fast compression and decompression library - 119521 - rpm - 06/08/2018 - snappy - CentOS - 1.1.0-3.el7 - - - x86_64 - Zabbix server compiled to use MySQL - 1604194 - rpm - 16/01/2019 - zabbix30-server-mysql - Fedora Project - 3.0.22-2.el7 - - - noarch - Perl extension for converting Pod to old-style Pod - 5888 - rpm - 17/09/2018 - perl-Pod-Plainer - CentOS - 1.03-4.el7 - - - x86_64 - Create a tree of hardlinks - 16545 - rpm - 06/08/2018 - hardlink - CentOS - 1.0-19.el7 - - - noarch - Zabbix database schemas and patches - 113843 - rpm - 16/01/2019 - zabbix30-dbfiles-sqlite3 - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Centreon Connector SSH provide persistante connection between checks. - 128616 - rpm - 17/09/2018 - centreon-connector-ssh - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.1.3-1.el7.centos - - - x86_64 - Library for Neighbor Discovery Protocol - 75612 - rpm - 06/08/2018 - libndp - CentOS - 1.2-7.el7 - - - x86_64 - Command-line JSON processor - 359241 - rpm - 31/05/2019 - jq - Fedora Project - 1.5-1.el7 - - - noarch - SAX2 Writer - 53005 - rpm - 17/09/2018 - perl-XML-SAX-Writer - CentOS - 0.53-4.el7 - - - x86_64 - Linux-native asynchronous I/O access library - 39182 - rpm - 06/08/2018 - libaio - CentOS - 0.3.109-13.el7 - - - x86_64 - Perl bindings for GNU LibIDN - 52037 - rpm - 17/09/2018 - perl-Net-LibIDN - CentOS - 0.12-15.el7 - - - x86_64 - Utilities for managing accounts and shadow password files - 3534490 - rpm - 06/08/2018 - shadow-utils - CentOS - 4.1.5.1-24.el7 - - - noarch - Centreon plugin - 188385 - rpm - 17/09/2018 - centreon-plugin-Applications-Protocol-Ftp - 20180821-1.el7 - - - x86_64 - Device mapper utility - 338922 - rpm - 06/08/2018 - device-mapper - CentOS - 1.02.146-4.el7 - - - x86_64 - JBIG1 lossless image compression library - 105882 - rpm - 17/09/2018 - jbigkit-libs - CentOS - 2.0-11.el7 - - - x86_64 - Device-mapper shared library - 400551 - rpm - 06/08/2018 - device-mapper-libs - CentOS - 1.02.146-4.el7 - - - x86_64 - Perl extension providing access to the GSSAPIv2 library - 135929 - rpm - 17/09/2018 - perl-GSSAPI - CentOS - 0.28-9.el7 - - - x86_64 - Libraries for accessing D-BUS - 362584 - rpm - 06/08/2018 - dbus-libs - CentOS - 1.10.24-7.el7 - - - noarch - Replace functions with ones that succeed or die - 175601 - rpm - 17/09/2018 - perl-autodie - CentOS - 2.16-2.el7 - - - x86_64 - An authorization framework - 487578 - rpm - 06/08/2018 - polkit - CentOS - 0.112-14.el7 - - - x86_64 - Static probe support tools - 176505 - rpm - 17/09/2018 - systemtap-sdt-devel - CentOS - 3.2-8.el7_5 - - - x86_64 - SysV tools for systemd - 3979 - rpm - 06/08/2018 - systemd-sysv - CentOS - 219-57.el7 - - - noarch - Perl extension for Consistent Signal Handling - 36536 - rpm - 17/09/2018 - perl-Sys-SigAction - 0.21-1.el7.centos - - - x86_64 - Probes disks on the system for installed operating systems - 97946 - rpm - 06/08/2018 - os-prober - CentOS - 1.58-9.el7 - - - noarch - US-ASCII transliterations of Unicode text - 406566 - rpm - 17/09/2018 - perl-Text-Unidecode - CentOS - 0.04-20.el7 - - - x86_64 - Cron daemon for executing programs at set times - 220396 - rpm - 06/08/2018 - cronie - CentOS - 1.4.11-19.el7 - - - x86_64 - Library providing the Gnome XSLT engine - 497582 - rpm - 17/09/2018 - libxslt - CentOS - 1.1.28-5.el7 - - - x86_64 - An open source implementation of SSH protocol versions 1 and 2 - 1995364 - rpm - 06/08/2018 - openssh - CentOS - 7.4p1-16.el7 - - - noarch - Read and write compressed data - 814173 - rpm - 17/09/2018 - perl-IO-Compress - CentOS - 2.061-2.el7 - - - x86_64 - PCI access library - 45649 - rpm - 06/08/2018 - libpciaccess - CentOS - 0.14-1.el7 - - - x86_64 - A MySQL interface for Perl - 330665 - rpm - 17/09/2018 - perl-DBD-MySQL - CentOS - 4.023-6.el7 - - - noarch - SELinux policy configuration - 5920 - rpm - 06/08/2018 - selinux-policy - CentOS - 3.13.1-192.el7 - - - noarch - Centreon plugin - 298115 - rpm - 17/09/2018 - centreon-plugin-Applications-Databases-Mysql - 20180821-1.el7 - - - x86_64 - Network connection manager and user applications - 5234794 - rpm - 06/08/2018 - NetworkManager - CentOS - 1.10.2-13.el7 - - - noarch - Utilities to write and check a MANIFEST file - 85359 - rpm - 17/09/2018 - perl-ExtUtils-Manifest - CentOS - 1.61-244.el7 - - - x86_64 - Ethernet Bridge frame table administration tool - 350763 - rpm - 06/08/2018 - ebtables - CentOS - 2.0.10-16.el7 - - - noarch - search nested hashref/arrayref structures using JSONPath - 22765 - rpm - 17/09/2018 - perl-JSON-Path - 0.205-1.el7.centos - - - noarch - Convenience functions for dbus services - 76410 - rpm - 06/08/2018 - python-slip-dbus - CentOS - 0.4.0-4.el7 - - - x86_64 - Plymouth related scripts - 22795 - rpm - 06/08/2018 - plymouth-scripts - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - A JSON implementation in C - 57201 - rpm - 06/08/2018 - libfastjson - CentOS - 0.99.4-2.el7 - - - noarch - Date and Time Zone Classes - 411548 - rpm - 17/09/2018 - php-pear-Date - Fedora Project - 1.4.7-12.el7 - - - x86_64 - Detect if we are running in a virtual machine - 45720 - rpm - 06/08/2018 - virt-what - CentOS - 1.18-4.el7 - - - noarch - Class to easily design HTML tables - 106717 - rpm - 17/09/2018 - php-pear-HTML-Table - Fedora Project - 1.8.3-8.el7 - - - x86_64 - Python bindings for apps which will manipulate RPM packages - 149714 - rpm - 06/08/2018 - rpm-python - CentOS - 4.11.3-32.el7 - - - noarch - Meta-element which holds any other element in a grid - 14198 - rpm - 17/09/2018 - php-pear-HTML-QuickForm-ElementGrid - Fedora Project - 0.1.2-4.el7 - - - noarch - RPM package installer/updater/manager - 5814102 - rpm - 06/08/2018 - yum - CentOS - 3.4.3-158.el7.centos - - - x86_64 - Tools for searching and reading man pages - 1874275 - rpm - 06/08/2018 - man-db - CentOS - 2.6.3-9.el7 - - - x86_64 - Text shaping library - 460886 - rpm - 17/09/2018 - harfbuzz - CentOS - 1.3.2-1.el7 - - - noarch - A firewall daemon with D-Bus interface providing a dynamic firewall - 1853385 - rpm - 06/08/2018 - firewalld - CentOS - 0.4.4.4-14.el7 - - - x86_64 - GCC version 4.8 shared support library - 179272 - rpm - 06/08/2018 - libgcc - CentOS - 4.8.5-28.el7 - - - x86_64 - NetworkManager curses-based UI - 262429 - rpm - 06/08/2018 - NetworkManager-tui - CentOS - 1.10.2-13.el7 - - - noarch - Modules used to build custom grub images - 2309702 - rpm - 06/08/2018 - grub2-pc-modules - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - SELinux targeted base policy - 19279106 - rpm - 06/08/2018 - selinux-policy-targeted - CentOS - 3.13.1-192.el7 - - - noarch - Firewalld directory layout and rpm macros - 239 - rpm - 06/08/2018 - firewalld-filesystem - CentOS - 0.4.4.4-14.el7 - - - x86_64 - The kexec/kdump userspace component. - 775491 - rpm - 06/08/2018 - kexec-tools - CentOS - 2.0.15-13.el7 - - - noarch - Data for kbd package - 2397086 - rpm - 06/08/2018 - kbd-misc - CentOS - 1.15.5-13.el7 - - - x86_64 - An open source SSH client applications - 2651616 - rpm - 06/08/2018 - openssh-clients - CentOS - 7.4p1-16.el7 - - - x86_64 - The GNU Bourne Again shell - 3667709 - rpm - 06/08/2018 - bash - CentOS - 4.2.46-30.el7 - - - x86_64 - Command line tool for setting up authentication from network services - 2316601 - rpm - 06/08/2018 - authconfig - CentOS - 6.2.8-30.el7 - - - x86_64 - Freebl library for the Network Security Services - 561372 - rpm - 06/08/2018 - nss-softokn-freebl - CentOS - 3.34.0-2.el7 - - - x86_64 - Postfix Mail Transport Agent - 12773475 - rpm - 06/08/2018 - postfix - CentOS - 2.10.1-6.el7 - - - x86_64 - Ncurses support utilities - 439378 - rpm - 06/08/2018 - ncurses - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Tool to transform and deploy CPU microcode update for x86. - 1600168 - rpm - 06/08/2018 - microcode_ctl - CentOS - 2.1-29.el7 - - - x86_64 - The basic directory layout for a Linux system - 0 - rpm - 06/08/2018 - filesystem - CentOS - 3.2-25.el7 - - - x86_64 - QEMU guest agent - 510398 - rpm - 06/08/2018 - qemu-guest-agent - CentOS - 2.8.0-2.el7 - - - x86_64 - The GNU libc libraries - 14223248 - rpm - 06/08/2018 - glibc - CentOS - 2.17-222.el7 - - - x86_64 - An NTP client/server - 487489 - rpm - 06/08/2018 - chrony - CentOS - 3.2-2.el7 - - - x86_64 - Netscape Portable Runtime - 287560 - rpm - 06/08/2018 - nspr - CentOS - 4.17.0-1.el7 - - - x86_64 - dracut configuration to turn on rescue image generation - 4067 - rpm - 06/08/2018 - dracut-config-rescue - CentOS - 033-535.el7 - - - x86_64 - Common error description library - 60417 - rpm - 06/08/2018 - libcom_err - CentOS - 1.42.9-11.el7 - - - x86_64 - Utilities for devices that use SCSI command sets - 1738032 - rpm - 06/08/2018 - sg3_utils - CentOS - 1.37-12.el7 - - - x86_64 - Ncurses libraries - 1028216 - rpm - 06/08/2018 - ncurses-libs - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Allows restricted root access for specified users - 4055906 - rpm - 06/08/2018 - sudo - CentOS - 1.8.19p2-13.el7 - - - x86_64 - C library for parsing command line parameters - 88516 - rpm - 06/08/2018 - popt - CentOS - 1.13-16.el7 - - - x86_64 - Userspace programs for btrfs - 4142307 - rpm - 06/08/2018 - btrfs-progs - CentOS - 4.9.1-1.el7 - - - x86_64 - SELinux binary policy manipulation library - 686568 - rpm - 06/08/2018 - libsepol - CentOS - 2.5-8.1.el7 - - - x86_64 - Shared library for interfacing with sysfs - 149365 - rpm - 06/08/2018 - libsysfs - CentOS - 2.1.0-16.el7 - - - x86_64 - Dynamic library for access control list support - 37056 - rpm - 06/08/2018 - libacl - CentOS - 2.2.51-14.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters - 811140 - rpm - 06/08/2018 - iwl105-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - A portable foreign function interface library - 47766 - rpm - 06/08/2018 - libffi - CentOS - 3.0.13-18.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 2000 Series Adapters - 817336 - rpm - 06/08/2018 - iwl2000-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - SELinux library and simple utilities - 217874 - rpm - 06/08/2018 - libselinux - CentOS - 2.5-12.el7 - - - noarch - Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors - 1160404 - rpm - 06/08/2018 - iwl5000-firmware - CentOS - 8.83.5.1_1-62.el7 - - - x86_64 - Pattern matching utilities - 1195131 - rpm - 06/08/2018 - grep - CentOS - 2.20-3.el7 - - - noarch - Firmware for the Hauppauge PVR 250/350/150/500/USB2 model series - 857256 - rpm - 06/08/2018 - ivtv-firmware - CentOS - 20080701-26.el7 - - - x86_64 - Key utilities library - 42138 - rpm - 06/08/2018 - keyutils-libs - CentOS - 1.5.8-3.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters - 459032 - rpm - 06/08/2018 - iwl100-firmware - CentOS - 39.31.5.1-62.el7 - - - x86_64 - Main loop abstraction library - 23060 - rpm - 06/08/2018 - libverto - CentOS - 0.2.5-4.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters - 1242884 - rpm - 06/08/2018 - iwl6000g2a-firmware - CentOS - 17.168.5.3-62.el7 - - - x86_64 - System trust module from p11-kit - 437261 - rpm - 06/08/2018 - p11-kit-trust - CentOS - 0.23.5-3.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 7265 Series Adapters - 53043488 - rpm - 06/08/2018 - iwl7265-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - CentOS Linux release file - 40173 - rpm - 06/08/2018 - centos-release - CentOS - 7-5.1804.el7.centos - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6000 AGN Adapter - 576068 - rpm - 06/08/2018 - iwl6000-firmware - CentOS - 9.221.4.1-62.el7 - - - x86_64 - A set of basic GNU tools commonly used in shell scripts - 14588989 - rpm - 06/08/2018 - coreutils - CentOS - 8.22-21.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6030 Series Adapters - 1261132 - rpm - 06/08/2018 - iwl6000g2b-firmware - CentOS - 17.168.5.2-62.el7 - - - x86_64 - Libraries for decoding LZMA compression - 239967 - rpm - 06/08/2018 - xz-libs - CentOS - 5.2.2-1.el7 - - - (none) - gpg(Rudder Project (RPM release key) <security@rudder-project.org>) - 0 - rpm - 06/08/2018 - gpg-pubkey - 6f07d355-509cdb91 - - - x86_64 - Block device ID library - 261805 - rpm - 06/08/2018 - libblkid - CentOS - 2.23.2-52.el7 - - - noarch - Establish an ISA relationship with base classes at compile time - 8141 - rpm - 06/08/2018 - perl-parent - CentOS - 0.225-244.el7 - - - x86_64 - The Berkeley DB database library for C - 1858008 - rpm - 06/08/2018 - libdb - CentOS - 5.3.21-24.el7 - - - noarch - Format POD source into various output formats - 287679 - rpm - 06/08/2018 - perl-podlators - CentOS - 2.5.1-3.el7 - - - x86_64 - Library to read and write ELF files - 936931 - rpm - 06/08/2018 - elfutils-libelf - CentOS - 0.170-4.el7 - - - noarch - Parse text into an array of tokens or array of arrays - 16431 - rpm - 06/08/2018 - perl-Text-ParseWords - CentOS - 3.29-4.el7 - - - x86_64 - Library for error values used by GnuPG components - 350865 - rpm - 06/08/2018 - libgpg-error - CentOS - 1.12-3.el7 - - - x86_64 - Character encodings in Perl - 10176350 - rpm - 06/08/2018 - perl-Encode - CentOS - 2.51-7.el7 - - - x86_64 - Dynamic library for libaudit - 256226 - rpm - 06/08/2018 - audit-libs - CentOS - 2.8.1-3.el7 - - - x86_64 - Macros for rpmbuild - 5134 - rpm - 06/08/2018 - perl-macros - CentOS - 5.16.3-292.el7 - - - x86_64 - The GNU data compression program - 250440 - rpm - 06/08/2018 - gzip - CentOS - 1.5-10.el7 - - - x86_64 - Persistence for Perl data structures - 181031 - rpm - 06/08/2018 - perl-Storable - CentOS - 2.45-3.el7 - - - x86_64 - Convenience library for kernel netlink sockets - 864984 - rpm - 06/08/2018 - libnl3 - CentOS - 3.2.28-4.el7 - - - noarch - Perl pragma to declare constants - 26364 - rpm - 06/08/2018 - perl-constant - CentOS - 1.27-2.el7 - - - x86_64 - Library that implements an embeddable SQL database engine - 814231 - rpm - 06/08/2018 - sqlite - CentOS - 3.7.17-8.el7 - - - x86_64 - Networking constants and support functions - 114497 - rpm - 06/08/2018 - perl-Socket - CentOS - 2.010-4.el7 - - - x86_64 - The GNU versions of find utilities (find and xargs) - 1855626 - rpm - 06/08/2018 - findutils - CentOS - 4.5.11-5.el7 - - - x86_64 - High resolution alarm, sleep, gettimeofday, interval timers - 94069 - rpm - 06/08/2018 - perl-Time-HiRes - CentOS - 1.9725-3.el7 - - - x86_64 - A GNU collection of diff utilities - 1065157 - rpm - 06/08/2018 - diffutils - CentOS - 3.3-4.el7 - - - x86_64 - A selection of general-utility scalar and list subroutines - 67994 - rpm - 06/08/2018 - perl-Scalar-List-Utils - CentOS - 1.27-248.el7 - - - x86_64 - Device mounting library - 273965 - rpm - 06/08/2018 - libmount - CentOS - 2.23.2-52.el7 - - - noarch - Create or remove directory trees - 50067 - rpm - 06/08/2018 - perl-File-Path - CentOS - 2.09-2.el7 - - - x86_64 - Shared MIME information database - 2379317 - rpm - 06/08/2018 - shared-mime-info - CentOS - 1.8-4.el7 - - - x86_64 - Perl interpreter-based threads - 98615 - rpm - 06/08/2018 - perl-threads - CentOS - 1.87-4.el7 - - - x86_64 - A utility for determining file types - 67368 - rpm - 06/08/2018 - file - CentOS - 5.11-33.el7 - - - noarch - Framework for parsing POD documentation - 538320 - rpm - 06/08/2018 - perl-Pod-Simple - CentOS - 3.28-4.el7 - - - x86_64 - A CSS2 parsing library - 320686 - rpm - 06/08/2018 - libcroco - CentOS - 0.6.11-1.el7 - - - x86_64 - Practical Extraction and Report Language - 23544135 - rpm - 06/08/2018 - perl - CentOS - 5.16.3-292.el7 - - - x86_64 - An extensible library which provides authentication for applications - 2630324 - rpm - 06/08/2018 - pam - CentOS - 1.1.8-22.el7 - - - x86_64 - YAML 1.1 parser and emitter written in C - 132993 - rpm - 06/08/2018 - libyaml - CentOS - 0.1.4-11.el7_0 - - - x86_64 - Network Security Services Softoken Module - 1122430 - rpm - 06/08/2018 - nss-softokn - CentOS - 3.34.0-2.el7 - - - x86_64 - Configuration management and audit tool - agent - 32169247 - rpm - 06/08/2018 - rudder-agent - Normation - 4.3.3.release-1.EL.7 - - - x86_64 - Network Security Services - 2474103 - rpm - 06/08/2018 - nss - CentOS - 3.34.0-4.el7 - - - x86_64 - Command line interface utils for libnl3 - 706246 - rpm - 06/08/2018 - libnl3-cli - CentOS - 3.2.28-4.el7 - - - (none) - gpg(Centreon Enterprise Server Official Signing Key <ces-key@centreon.com>) - 0 - rpm - 17/09/2018 - gpg-pubkey - 8a7652bc-4cb6f1f6 - - - x86_64 - Shared libraries needed by applications which use Cyrus SASL - 396911 - rpm - 06/08/2018 - cyrus-sasl-lib - CentOS - 2.1.26-23.el7 - - - x86_64 - A MMX/SSE2 accelerated library for manipulating JPEG image files - 350387 - rpm - 17/09/2018 - libjpeg-turbo - CentOS - 1.2.90-5.el7 - - - x86_64 - Parts of the groff formatting system required to display manual pages - 3453946 - rpm - 06/08/2018 - groff-base - CentOS - 1.22.2-8.el7 - - - x86_64 - X.Org X11 ICE runtime library - 152213 - rpm - 17/09/2018 - libICE - CentOS - 1.0.9-9.el7 - - - x86_64 - GNU Unicode string library - 1145761 - rpm - 06/08/2018 - libunistring - CentOS - 0.9.3-9.el7 - - - x86_64 - The NET-SNMP runtime client libraries - 3067528 - rpm - 17/09/2018 - net-snmp-libs - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - The NetBSD Editline library - 244257 - rpm - 06/08/2018 - libedit - CentOS - 3.0-12.20121213cvs.el7 - - - x86_64 - Perl interface to the MD5 algorithm - 55715 - rpm - 17/09/2018 - perl-Digest-MD5 - CentOS - 2.52-3.el7 - - - x86_64 - Netfilter netlink userspace library - 47123 - rpm - 06/08/2018 - libnfnetlink - CentOS - 1.0.1-4.el7 - - - x86_64 - Host/service/network monitoring program plugins for Nagios - 962810 - rpm - 17/09/2018 - nagios-plugins - 1.4.16-10.el7.centos - - - x86_64 - Data compression library with very fast (de)compression - 165360 - rpm - 06/08/2018 - lzo - CentOS - 2.06-8.el7 - - - x86_64 - MariaDB: a very fast and robust SQL database server - 6770312 - rpm - 17/09/2018 - MariaDB-shared - Monty Program AB - 10.1.19-1.el7.centos - - - x86_64 - The shared library for the S-Lang extension language - 1881912 - rpm - 06/08/2018 - slang - CentOS - 2.2.4-11.el7 - - - noarch - Minimal try/catch with proper localization of $@ - 30617 - rpm - 17/09/2018 - perl-Try-Tiny - CentOS - 0.12-2.el7 - - - x86_64 - Settings tool for Ethernet NICs - 349848 - rpm - 06/08/2018 - ethtool - CentOS - 4.8-7.el7 - - - noarch - Parse and convert to JSON (JavaScript Object Notation) - 270794 - rpm - 17/09/2018 - perl-JSON - CentOS - 2.59-2.el7 - - - x86_64 - C library for encoding, decoding and manipulating JSON data - 74998 - rpm - 06/08/2018 - jansson - CentOS - 2.10-1.el7 - - - x86_64 - Apache Portable Runtime library - 226686 - rpm - 17/09/2018 - apr - CentOS - 1.4.8-3.el7_4.1 - - - x86_64 - Runtime libraries for Python - 24713315 - rpm - 06/08/2018 - python-libs - CentOS - 2.7.5-68.el7 - - - noarch - Basic perl modules for handling Plain Old Documentation (POD) - 277564 - rpm - 17/09/2018 - perl-Pod-Parser - CentOS - 1.61-2.el7 - - - noarch - Module to simplify usage of decorators - 72291 - rpm - 06/08/2018 - python-decorator - CentOS - 3.4.0-3.el7 - - - x86_64 - MariaDB: a very fast and robust SQL database server - 178026534 - rpm - 17/09/2018 - MariaDB-client - Monty Program AB - 10.1.19-1.el7.centos - - - x86_64 - Linux PCI library - 72691 - rpm - 06/08/2018 - pciutils-libs - CentOS - 3.5.1-3.el7 - - - x86_64 - Library for Multiple-image Network Graphics support - 546796 - rpm - 17/09/2018 - libmng - CentOS - 1.0.10-14.el7 - - - noarch - Miscellaneous convenience, extension and workaround code for Python - 61353 - rpm - 06/08/2018 - python-slip - CentOS - 0.4.0-4.el7 - - - x86_64 - The NET-SNMP runtime agent libraries - 2152296 - rpm - 17/09/2018 - net-snmp-agent-libs - CentOS - 5.7.2-33.el7_5.2 - - - noarch - Linux /proc abstraction classes - 96639 - rpm - 06/08/2018 - python-linux-procfs - CentOS - 0.4.9-3.el7 - - - x86_64 - The perl NET-SNMP module and the mib2c tool - 1175950 - rpm - 17/09/2018 - net-snmp-perl - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - A fast metadata parser for yum - 58789 - rpm - 06/08/2018 - yum-metadata-parser - CentOS - 1.1.4-10.el7 - - - noarch - Determine the locale encoding - 18685 - rpm - 17/09/2018 - perl-Encode-Locale - CentOS - 1.03-5.el7 - - - x86_64 - Python bindings for apps which will manipulate perf events - 331917 - rpm - 06/08/2018 - python-perf - CentOS - 3.10.0-862.el7 - - - x86_64 - Wayland server library - 80924 - rpm - 17/09/2018 - libwayland-server - CentOS - 1.14.0-2.el7 - - - noarch - Python Module for Accessing and Modifying Configuration Data in INI files - 115166 - rpm - 06/08/2018 - python-iniparse - CentOS - 0.4-9.el7 - - - x86_64 - X11 shared memory fences - 11160 - rpm - 17/09/2018 - libxshmfence - CentOS - 1.2-1.el7 - - - x86_64 - Netfilter conntrack userspace library - 143566 - rpm - 06/08/2018 - libnetfilter_conntrack - CentOS - 1.0.6-1.el7_3 - - - x86_64 - A system-independent interface for user-level packet capture - 324838 - rpm - 17/09/2018 - libpcap - CentOS - 1.5.3-11.el7 - - - x86_64 - Advanced IP routing and network device configuration tools - 1788731 - rpm - 06/08/2018 - iproute - CentOS - 4.11.0-14.el7 - - - noarch - Guess media type for a file or a URL - 62858 - rpm - 17/09/2018 - perl-LWP-MediaTypes - CentOS - 6.02-2.el7 - - - x86_64 - GNU libraries and utilities for producing multi-lingual messages - 5029340 - rpm - 06/08/2018 - gettext - CentOS - 0.19.8.1-2.el7 - - - noarch - Loads one of several alternate underlying implementations for a module - 21039 - rpm - 17/09/2018 - perl-Module-Implementation - CentOS - 0.06-6.el7 - - - x86_64 - Library for controlling team network device - 100852 - rpm - 06/08/2018 - libteam - CentOS - 1.27-4.el7 - - - x86_64 - Perl DES encryption module - 35749 - rpm - 17/09/2018 - perl-Crypt-DES - CentOS - 2.05-20.el7 - - - x86_64 - Shared library providing the IP sets functionality - 270690 - rpm - 06/08/2018 - ipset-libs - CentOS - 6.29-1.el7 - - - x86_64 - A program for synchronizing files over a network - 834618 - rpm - 17/09/2018 - rsync - CentOS - 3.1.2-4.el7 - - - x86_64 - A tool for determining compilation options - 105522 - rpm - 06/08/2018 - pkgconfig - CentOS - 0.27.1-4.el7 - - - noarch - Programmable completion for Bash - 264934 - rpm - 26/09/2018 - bash-completion - CentOS - 2.1-6.el7 - - - x86_64 - Libraries for avahi run-time use - 123808 - rpm - 17/09/2018 - avahi-libs - CentOS - 0.6.31-19.el7 - - - x86_64 - Python 2 bindings for GObject Introspection base package - 1123114 - rpm - 06/08/2018 - python-gobject-base - CentOS - 3.22.0-1.el7_4.1 - - - x86_64 - Command line tool for updating bootloader configs - 127346 - rpm - 06/08/2018 - grubby - CentOS - 8.28-23.el7 - - - noarch - Firmware files used by the Linux kernel - 177359870 - rpm - 06/08/2018 - linux-firmware - CentOS - 20180220-62.git6d51311.el7 - - - x86_64 - A GNU collection of binary utilities - 25148535 - rpm - 06/08/2018 - binutils - CentOS - 2.27-27.base.el7 - - - noarch - CentOS-related icons and pictures - 22548401 - rpm - 06/08/2018 - centos-logos - CentOS - 70.0.6-3.el7.centos - - - x86_64 - Library files for fipscheck - 11466 - rpm - 06/08/2018 - fipscheck-lib - CentOS - 1.4.1-6.el7 - - - x86_64 - A library for getting files from web servers - 435192 - rpm - 06/08/2018 - libcurl - CentOS - 7.29.0-46.el7 - - - x86_64 - Libraries for manipulating RPM packages - 611384 - rpm - 06/08/2018 - rpm-libs - CentOS - 4.11.3-32.el7 - - - x86_64 - LDAP support libraries - 1037307 - rpm - 06/08/2018 - openldap - CentOS - 2.4.44-13.el7 - - - x86_64 - A Python interface to libcurl - 241513 - rpm - 06/08/2018 - python-pycurl - CentOS - 7.19.0-19.el7 - - - x86_64 - SELinux libselinux utilies - 172738 - rpm - 06/08/2018 - libselinux-utils - CentOS - 2.5-12.el7 - - - x86_64 - Access control list utilities - 201225 - rpm - 06/08/2018 - acl - CentOS - 2.2.51-14.el7 - - - x86_64 - Utilities from the general purpose cryptography library with TLS implementation - 833707 - rpm - 06/08/2018 - openssl - CentOS - 1.0.2k-12.el7 - - - x86_64 - JavaScript interpreter and libraries - 4045213 - rpm - 06/08/2018 - mozjs17 - CentOS - 17.0.0-20.el7 - - - x86_64 - Command line interface parsing library - 73009 - rpm - 06/08/2018 - libss - CentOS - 1.42.9-11.el7 - - - x86_64 - Libraries for working with the DNS protocol - 1816016 - rpm - 06/08/2018 - bind-libs-lite - CentOS - 9.9.4-61.el7 - - - x86_64 - A free and portable font rendering engine - 898651 - rpm - 06/08/2018 - freetype - CentOS - 2.4.11-15.el7 - - - x86_64 - Libraries for the kernels-tools - 18640 - rpm - 06/08/2018 - kernel-tools-libs - CentOS - 3.10.0-862.el7 - - - x86_64 - Enhanced seccomp library - 304131 - rpm - 06/08/2018 - libseccomp - CentOS - 2.3.1-3.el7 - - - x86_64 - QR Code encoding library - Shared libraries - 126732 - rpm - 06/08/2018 - qrencode-libs - CentOS - 3.4.1-3.el7 - - - x86_64 - Device-mapper Persistent Data Tools - 1294094 - rpm - 06/08/2018 - device-mapper-persistent-data - CentOS - 0.7.3-3.el7 - - - x86_64 - SELinux binary policy manipulation library - 302369 - rpm - 06/08/2018 - libsemanage - CentOS - 2.5-11.el7 - - - x86_64 - A privileged helper for utmp/wtmp updates - 49749 - rpm - 06/08/2018 - libutempter - CentOS - 1.1.6-4.el7 - - - x86_64 - Partition device manager for device-mapper devices - 41363 - rpm - 06/08/2018 - kpartx - CentOS - 0.4.9-119.el7 - - - x86_64 - A collection of basic system utilities - 8642769 - rpm - 06/08/2018 - util-linux - CentOS - 2.23.2-52.el7 - - - x86_64 - Linux kernel module management utilities - 243127 - rpm - 06/08/2018 - kmod - CentOS - 20-21.el7 - - - x86_64 - Cryptsetup shared library - 969908 - rpm - 06/08/2018 - cryptsetup-libs - CentOS - 1.7.4-4.el7 - - - x86_64 - systemd libraries - 1263560 - rpm - 06/08/2018 - systemd-libs - CentOS - 219-57.el7 - - - x86_64 - A System and Service Manager - 24389374 - rpm - 06/08/2018 - systemd - CentOS - 219-57.el7 - - - noarch - Default yama attach scope sysctl setting - 1810 - rpm - 06/08/2018 - elfutils-default-yama-scope - CentOS - 0.170-4.el7 - - - x86_64 - Rules for polkit to add compatibility with pklocalauthority - 82409 - rpm - 06/08/2018 - polkit-pkla-compat - CentOS - 0.1-4.el7 - - - x86_64 - The inittab file and the /etc/init.d scripts - 1519968 - rpm - 06/08/2018 - initscripts - CentOS - 9.49.41-1.el7 - - - x86_64 - Device-mapper event daemon shared library - 50636 - rpm - 06/08/2018 - device-mapper-event-libs - CentOS - 1.02.146-4.el7 - - - x86_64 - SELinux policy core utilities - 5161496 - rpm - 06/08/2018 - policycoreutils - CentOS - 2.5-22.el7 - - - x86_64 - Support tools for GRUB. - 10075694 - rpm - 06/08/2018 - grub2-tools - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Utility for running regular jobs - 41611 - rpm - 06/08/2018 - cronie-anacron - CentOS - 1.4.11-19.el7 - - - noarch - Root crontab files used to schedule the execution of programs - 3700 - rpm - 06/08/2018 - crontabs - CentOS - 1.11-6.20121102git.el7 - - - x86_64 - Libraries for adding NetworkManager support to applications (new API). - 6393187 - rpm - 06/08/2018 - NetworkManager-libnm - CentOS - 1.10.2-13.el7 - - - x86_64 - Common files used by ISC dhcp client and server - 245529 - rpm - 06/08/2018 - dhcp-common - CentOS - 4.2.5-68.el7.centos - - - x86_64 - dracut modules to build a dracut initramfs with network support - 147466 - rpm - 06/08/2018 - dracut-network - CentOS - 033-535.el7 - - - x86_64 - Direct Rendering Manager runtime library - 366342 - rpm - 06/08/2018 - libdrm - CentOS - 2.4.83-2.el7 - - - x86_64 - Bootloader with support for Linux, Multiboot, and more - 0 - rpm - 06/08/2018 - grub2-pc - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Device-mapper event daemon - 42786 - rpm - 06/08/2018 - device-mapper-event - CentOS - 1.02.146-4.el7 - - - x86_64 - WPA/WPA2/IEEE 802.1X Supplicant - 4411276 - rpm - 06/08/2018 - wpa_supplicant - CentOS - 2.6-9.el7 - - - x86_64 - A helper program to download firmware into FX and FX2 EZ-USB devices - 42589 - rpm - 06/08/2018 - fxload - CentOS - 2002_04_11-16.el7 - - - x86_64 - ALSA tools for uploading firmware to some soundcards - 86387 - rpm - 06/08/2018 - alsa-tools-firmware - CentOS - 1.1.0-1.el7 - - - x86_64 - Team network device control daemon - 278067 - rpm - 06/08/2018 - teamd - CentOS - 1.27-4.el7 - - - x86_64 - D-Bus Python Bindings - 848122 - rpm - 06/08/2018 - dbus-python - CentOS - 1.1.1-9.el7 - - - noarch - Python2 bindings for firewalld - 1859178 - rpm - 06/08/2018 - python-firewall - CentOS - 0.4.4.4-14.el7 - - - x86_64 - Plymouth core libraries - 222848 - rpm - 06/08/2018 - plymouth-core-libs - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - Graphical Boot Animation and Logger - 233311 - rpm - 06/08/2018 - plymouth - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - List SCSI devices (or hosts) and associated information - 90475 - rpm - 06/08/2018 - lsscsi - CentOS - 0.27-6.el7 - - - x86_64 - libnuma libraries - 50752 - rpm - 06/08/2018 - numactl-libs - CentOS - 2.0.9-7.el7 - - - x86_64 - Tool to analyse BIOS DMI data - 247119 - rpm - 06/08/2018 - dmidecode - CentOS - 3.0-5.el7 - - - x86_64 - The GNU Portable Threads library - 267851 - rpm - 06/08/2018 - pth - CentOS - 2.0.7-23.el7 - - - x86_64 - Libraries for building and signing RPM packages - 166664 - rpm - 06/08/2018 - rpm-build-libs - CentOS - 4.11.3-32.el7 - - - x86_64 - GnuPG Made Easy - high level crypto API - 547534 - rpm - 06/08/2018 - gpgme - CentOS - 1.3.2-5.el7 - - - noarch - Yum plugin which chooses fastest repository from a mirrorlist - 53897 - rpm - 06/08/2018 - yum-plugin-fastestmirror - CentOS - 1.1.31-45.el7 - - - noarch - Legacy data for kbd package - 503608 - rpm - 06/08/2018 - kbd-legacy - CentOS - 1.15.5-13.el7 - - - noarch - A dynamic adaptive system tuning daemon - 739225 - rpm - 06/08/2018 - tuned - CentOS - 2.9.0-1.el7 - - - x86_64 - IRQ balancing daemon - 71251 - rpm - 06/08/2018 - irqbalance - CentOS - 1.0.7-11.el7 - - - x86_64 - Utilities for the IBM Power Linux RAID adapters - 955982 - rpm - 06/08/2018 - iprutils - CentOS - 2.4.15.1-1.el7 - - - x86_64 - PCI bus related utilities - 200397 - rpm - 17/09/2018 - pciutils - CentOS - 3.5.1-3.el7 - - - x86_64 - Qt toolkit - 17893535 - rpm - 17/09/2018 - qt - CentOS - 4.8.7-2.el7 - - - x86_64 - Store Centreon Engine/Nagios events in a database. - 0 - rpm - 17/09/2018 - centreon-broker - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 3.0.14-1.el7.centos - - - noarch - Encoding files - 12013394 - rpm - 17/09/2018 - poppler-data - CentOS - 0.4.6-3.el7 - - - x86_64 - Send and receive multicast messages - 37462 - rpm - 17/09/2018 - perl-IO-Socket-Multicast - 1.12-2.el7.centos - - - noarch - Automatically give your module the ability to have plugins - 55121 - rpm - 17/09/2018 - perl-Module-Pluggable - CentOS - 4.8-3.el7 - - - noarch - Perl module that imports environment variables as scalars or arrays - 27573 - rpm - 17/09/2018 - perl-Env - CentOS - 1.04-2.el7 - - - x86_64 - Perl module for parsing XML documents - 642973 - rpm - 17/09/2018 - perl-XML-Parser - CentOS - 2.41-10.el7 - - - x86_64 - LSB Security submodule support - 0 - rpm - 17/09/2018 - redhat-lsb-submod-security - CentOS - 4.1-27.el7.centos.1 - - - noarch - HTML::Tagset - data tables useful in parsing HTML - 19784 - rpm - 17/09/2018 - perl-HTML-Tagset - CentOS - 3.20-15.el7 - - - x86_64 - International Components for Unicode - libraries - 25225645 - rpm - 17/09/2018 - libicu - CentOS - 50.1.2-15.el7 - - - x86_64 - Sample Authorization Protocol for X - 55529 - rpm - 17/09/2018 - libXau - CentOS - 1.0.8-2.1.el7 - - - noarch - Run many file-test checks on a tree - 29582 - rpm - 17/09/2018 - perl-File-CheckTree - CentOS - 4.42-3.el7 - - - noarch - Implementation of a "Singleton" class - 28844 - rpm - 17/09/2018 - perl-Class-Singleton - CentOS - 1.4-14.el7 - - - noarch - Object oriented interface to SNMP - 408914 - rpm - 17/09/2018 - perl-Net-SNMP - Fedora Project - 6.0.1-7.el7 - - - noarch - Routines for manipulating stashes - 54122 - rpm - 17/09/2018 - perl-Package-Stash - CentOS - 0.34-2.el7 - - - x86_64 - Date and time object - 262060 - rpm - 17/09/2018 - perl-DateTime - CentOS - 1.04-6.el7 - - - noarch - Centreon plugin - 460202 - rpm - 17/09/2018 - centreon-plugin-Operatingsystems-Linux-Snmp - 20180821-1.el7 - - - noarch - Emacs filesystem layout - 0 - rpm - 17/09/2018 - emacs-filesystem - CentOS - 24.3-20.el7_4 - - - noarch - Basic desktop integration functions - 277142 - rpm - 17/09/2018 - xdg-utils - CentOS - 1.1.0-0.17.20120809git.el7 - - - noarch - The data pack for Business::ISBN - 165294 - rpm - 17/09/2018 - perl-Business-ISBN-Data - CentOS - 20120719.001-2.el7 - - - noarch - A Perl module implementing URI parsing and manipulation - 193950 - rpm - 17/09/2018 - perl-URI - CentOS - 1.60-9.el7 - - - noarch - Choose a variant to serve - 29259 - rpm - 17/09/2018 - perl-HTTP-Negotiate - CentOS - 6.01-5.el7 - - - noarch - HTTP cookie jars - 47180 - rpm - 17/09/2018 - perl-HTTP-Cookies - CentOS - 6.01-5.el7 - - - noarch - Database of robots.txt-derived permissions - 26778 - rpm - 17/09/2018 - perl-WWW-RobotRules - CentOS - 6.02-5.el7 - - - noarch - LDAP Perl module - 991562 - rpm - 17/09/2018 - perl-LDAP - CentOS - 0.56-5.el7 - - - noarch - Provide HTTPS support for LWP::UserAgent - 9071 - rpm - 17/09/2018 - perl-LWP-Protocol-https - CentOS - 6.04-4.el7 - - - noarch - Centreon plugin - 229910 - rpm - 17/09/2018 - centreon-plugin-Applications-Protocol-Http - 20180821-1.el7 - - - noarch - Centreon plugin - 197222 - rpm - 17/09/2018 - centreon-plugin-Applications-Monitoring-Centreon-Map4-Jmx - 20180821-1.el7 - - - x86_64 - Perl interface to the libxml2 library - 966722 - rpm - 17/09/2018 - perl-XML-LibXML - CentOS - 2.0018-5.el7 - - - noarch - Centreon plugin - 200502 - rpm - 17/09/2018 - centreon-plugin-Applications-Monitoring-Centreon-Central - 20180821-2.el7 - - - x86_64 - Portable archive exchange - 604248 - rpm - 17/09/2018 - spax - CentOS - 1.5.2-13.el7 - - - x86_64 - LSB CXX module support - 0 - rpm - 17/09/2018 - redhat-lsb-cxx - CentOS - 4.1-27.el7.centos.1 - - - x86_64 - Header files for development using standard C libraries. - 2337409 - rpm - 17/09/2018 - glibc-headers - CentOS - 2.17-222.el7 - - - x86_64 - A low-level cryptographic library - 765042 - rpm - 17/09/2018 - nettle - CentOS - 2.7.1-8.el7 - - - x86_64 - C development files for the Berkeley DB library - 129076 - rpm - 17/09/2018 - libdb-devel - CentOS - 5.3.21-24.el7 - - - noarch - Create a module Makefile - 650532 - rpm - 17/09/2018 - perl-ExtUtils-MakeMaker - CentOS - 6.68-3.el7 - - - x86_64 - Header #files for use in perl development - 1929660 - rpm - 17/09/2018 - perl-devel - CentOS - 5.16.3-292.el7 - - - x86_64 - LSB Languages module support - 814 - rpm - 17/09/2018 - redhat-lsb-languages - CentOS - 4.1-27.el7.centos.1 - - - noarch - A module for reading .ini-style configuration files - 122079 - rpm - 17/09/2018 - perl-Config-IniFiles - Fedora Project - 2.79-1.el7 - - - x86_64 - Core X11 protocol client library - 1325720 - rpm - 17/09/2018 - libX11 - CentOS - 1.6.5-1.el7 - - - x86_64 - X.Org X11 libXrender runtime library - 46979 - rpm - 17/09/2018 - libXrender - CentOS - 0.9.10-1.el7 - - - x86_64 - X Fixes library - 26903 - rpm - 17/09/2018 - libXfixes - CentOS - 5.0.3-1.el7 - - - x86_64 - X.Org X11 libXrandr runtime library - 48626 - rpm - 17/09/2018 - libXrandr - CentOS - 1.5.1-2.el7 - - - x86_64 - X.Org X11 libXinerama runtime library - 14967 - rpm - 17/09/2018 - libXinerama - CentOS - 1.1.3-2.1.el7 - - - x86_64 - X Damage extension library - 29688 - rpm - 17/09/2018 - libXdamage - CentOS - 1.1.4-4.1.el7 - - - x86_64 - A PostScript interpreter and renderer - 17345433 - rpm - 17/09/2018 - ghostscript - CentOS - 9.07-28.el7_4.2 - - - x86_64 - Icon theme caching utility - 59878 - rpm - 17/09/2018 - gtk-update-icon-cache - CentOS - 3.22.26-4.el7_5 - - - x86_64 - X.Org X11 libXtst runtime library - 29938 - rpm - 17/09/2018 - libXtst - CentOS - 1.2.3-1.el7 - - - x86_64 - Mesa libGL runtime libraries and DRI drivers - 480816 - rpm - 17/09/2018 - mesa-libGL - CentOS - 17.2.3-8.20171019.el7 - - - x86_64 - Mesa libGLU library - 524464 - rpm - 17/09/2018 - mesa-libGLU - CentOS - 9.0.0-4.el7 - - - x86_64 - PostScript Type 1 font rasterizer - 400681 - rpm - 17/09/2018 - t1lib - CentOS - 5.1.2-14.el7 - - - x86_64 - A 2D graphics library - 1827302 - rpm - 17/09/2018 - cairo - CentOS - 1.14.8-2.el7 - - - x86_64 - Round Robin Database Tool to store and display time-series data - 2966501 - rpm - 17/09/2018 - rrdtool - CentOS - 1.4.8-9.el7 - - - x86_64 - Centreon Broker's shared library for prefdata storage. - 367736 - rpm - 17/09/2018 - centreon-broker-storage - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 3.0.14-1.el7.centos - - - x86_64 - Perl RRDtool bindings - 56880 - rpm - 17/09/2018 - rrdtool-perl - CentOS - 1.4.8-9.el7 - - - x86_64 - LSB Desktop module support - 0 - rpm - 17/09/2018 - redhat-lsb-desktop - CentOS - 4.1-27.el7.centos.1 - - - x86_64 - Centreon Engine Daemon is the daemon to schedule checks. - 2340987 - rpm - 17/09/2018 - centreon-engine-daemon - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.8.1-1.el7.centos - - - x86_64 - Centreon Engine monitoring core. - 0 - rpm - 17/09/2018 - centreon-engine - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.8.1-1.el7.centos - - - noarch - Centreon plugins - 339787 - rpm - 17/09/2018 - centreon-plugins - 2.8.26-3.el7.centos - - - x86_64 - X.Org X11 libXpm runtime library - 116599 - rpm - 17/09/2018 - libXpm - CentOS - 3.5.12-1.el7 - - - noarch - Centreon WebUI - 18492457 - rpm - 17/09/2018 - centreon-web - 2.8.26-3.el7.centos - - - noarch - Centreon Plugin Pack Manager - 271932 - rpm - 17/09/2018 - centreon-pp-manager - 2.4.0-1.el7.centos - - - noarch - Centreon, Network & System Monitoring - 1774 - rpm - 17/09/2018 - centreon - 2.8.26-3.el7.centos - - - noarch - Extra Packages for Enterprise Linux repository configuration - 24834 - rpm - 16/01/2019 - epel-release - Fedora Project - 7-11 - - - x86_64 - Perl extension for SHA-1/224/256/384/512 - 112297 - rpm - 17/09/2018 - perl-Digest-SHA - CentOS - 5.85-4.el7 - - - x86_64 - A database access abstraction module for PHP applications - 197283 - rpm - 16/01/2019 - php-pdo - CentOS - 5.4.16-46.el7 - - - noarch - Mozilla's CA cert bundle in PEM format - 9592 - rpm - 17/09/2018 - perl-Mozilla-CA - CentOS - 20130114-5.el7 - - - x86_64 - Tools for use with the Apache HTTP Server - 172756 - rpm - 16/01/2019 - httpd-tools - CentOS - 2.4.6-88.el7.centos - - - noarch - Drop-in replacement for IO::Socket::INET supporting both IPv4 and IPv6 - 87121 - rpm - 17/09/2018 - perl-IO-Socket-IP - CentOS - 0.21-5.el7 - - - x86_64 - PHP scripting language for creating dynamic web sites - 4591654 - rpm - 16/01/2019 - php - CentOS - 5.4.16-46.el7 - - - x86_64 - Perl interface to the UNIX syslog(3) calls - 95315 - rpm - 17/09/2018 - perl-Sys-Syslog - CentOS - 0.33-3.el7 - - - x86_64 - A module for PHP applications which use XML - 333117 - rpm - 16/01/2019 - php-xml - CentOS - 5.4.16-46.el7 - - - noarch - Manage deprecation warnings for your distribution - 22392 - rpm - 17/09/2018 - perl-Package-DeprecationManager - CentOS - 0.13-7.el7 - - - x86_64 - Internationalization extension for PHP applications - 208129 - rpm - 16/01/2019 - php-intl - CentOS - 5.4.16-46.el7 - - - noarch - Centreon plugin - 165586 - rpm - 17/09/2018 - centreon-plugin-Applications-Protocol-Dns - 20180821-1.el7 - - - x86_64 - A module for PHP applications for using the gd graphics library - 350744 - rpm - 16/01/2019 - php-gd - CentOS - 5.4.16-46.el7 - - - noarch - Common files for the Dejavu font set - 130455 - rpm - 17/09/2018 - dejavu-fonts-common - CentOS - 2.33-6.el7 - - - x86_64 - A module for PHP applications which need multi-byte string handling - 1334028 - rpm - 16/01/2019 - php-mbstring - CentOS - 5.4.16-46.el7 - - - x86_64 - Font configuration and customization library - 578056 - rpm - 17/09/2018 - fontconfig - CentOS - 2.10.95-11.el7 - - - x86_64 - Open-source monitoring solution for your IT infrastructure - 1116336 - rpm - 16/01/2019 - zabbix30 - Fedora Project - 3.0.22-2.el7 - - - x86_64 - X.Org X11 font utilities - 327243 - rpm - 17/09/2018 - xorg-x11-font-utils - CentOS - 7.5-20.el7 - - - noarch - Web Assets aliases for the Apache HTTP daemon - 2290 - rpm - 16/01/2019 - web-assets-httpd - Fedora Project - 5-1.el7 - - - noarch - Free versions of the 35 standard PostScript fonts. - 4389400 - rpm - 17/09/2018 - urw-fonts - CentOS - 2.4-16.el7 - - - x86_64 - Module aliases for IPMI subsystem - 210 - rpm - 16/01/2019 - OpenIPMI-modalias - CentOS - 2.0.23-2.el7 - - - x86_64 - Nmap's Netcat replacement - 432683 - rpm - 17/09/2018 - nmap-ncat - CentOS - 6.40-13.el7 - - - noarch - Zabbix database schemas, images, data and patches - 3304018 - rpm - 16/01/2019 - zabbix30-dbfiles-mysql - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Galera: a synchronous multi-master wsrep provider (replication engine) - 38307245 - rpm - 17/09/2018 - galera - Codership Oy - 25.3.9-1.rhel7.el7.centos - - - x86_64 - A complete ODBC driver manager for Linux - 1268347 - rpm - 16/01/2019 - unixODBC - CentOS - 2.3.1-11.el7 - - - noarch - Centreon plugin - 219007 - rpm - 17/09/2018 - centreon-plugin-Hardware-Ups-Standard-Rfc1628-Snmp - 20180821-1.el7 - - - x86_64 - A module for PHP applications for using the bcmath library - 59273 - rpm - 16/01/2019 - php-bcmath - CentOS - 5.4.16-46.el7 - - - noarch - Centreon plugin - 225038 - rpm - 17/09/2018 - centreon-plugin-Hardware-Printers-Generic-Snmp - 20180821-1.el7 - - - noarch - Zabbix Web Frontend - 30671051 - rpm - 16/01/2019 - zabbix30-web - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Scriptable, parallelized ping-like utility - 106415 - rpm - 16/01/2019 - fping - Fedora Project - 3.10-4.el7 - - - noarch - Convert POD data to formatted LaTeX - 86093 - rpm - 17/09/2018 - perl-Pod-LaTeX - CentOS - 0.61-2.el7 - - - noarch - Zabbix server common files - 19619 - rpm - 16/01/2019 - zabbix30-server - Fedora Project - 3.0.22-2.el7 - - - noarch - Basic utilities for writing tests - 397284 - rpm - 17/09/2018 - perl-Test-Simple - CentOS - 0.98-243.el7 - - - x86_64 - Zabbix agent - 397521 - rpm - 16/01/2019 - zabbix30-agent - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Nagios plugins perl dep. - 1931 - rpm - 17/09/2018 - nagios-plugins-perl - 1.4.16-10.el7.centos - - - noarch - Zabbix proxy common files - 20771 - rpm - 16/01/2019 - zabbix30-proxy - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Centreon Connector Perl provide embedded perl for Centreon-Engine. - 103240 - rpm - 17/09/2018 - centreon-connector-perl - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.1.3-1.el7.centos - - - x86_64 - Regular expressions library - 568417 - rpm - 31/05/2019 - oniguruma - Fedora Project - 5.9.5-3.el7 - - - noarch - Filter to put all characters() in one event - 6221 - rpm - 17/09/2018 - perl-XML-Filter-BufferText - CentOS - 1.01-17.el7 - - - x86_64 - Network management utilities using SNMP, from the NET-SNMP project - 419369 - rpm - 17/09/2018 - net-snmp-utils - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - LSB Multimedia submodule support - 0 - rpm - 17/09/2018 - redhat-lsb-submod-multimedia - CentOS - 4.1-27.el7.centos.1 - - - noarch - Perl library for transparent SSL - 221172 - rpm - 17/09/2018 - perl-IO-Socket-SSL - CentOS - 1.94-7.el7 - - - noarch - A FTP over SSL/TLS class - 163330 - rpm - 17/09/2018 - perl-Net-FTPSSL - 0.24-1.el7.centos - - - x86_64 - FastCGI Perl bindings - 85623 - rpm - 17/09/2018 - perl-FCGI - CentOS - 0.74-8.el7 - - - x86_64 - General-purpose scalable concurrent malloc implementation - 324797 - rpm - 17/09/2018 - jemalloc - Fedora Project - 3.6.0-1.el7 - - - x86_64 - Library of functions for manipulating TIFF format image files - 494377 - rpm - 17/09/2018 - libtiff - CentOS - 4.0.3-27.el7_3 - - - x86_64 - Utilities for managing processes on your system - 486599 - rpm - 17/09/2018 - psmisc - CentOS - 22.20-15.el7 - - - noarch - SASL Authentication framework for Perl - 105210 - rpm - 17/09/2018 - perl-Authen-SASL - CentOS - 2.15-10.el7 - - - x86_64 - Thai language support routines - 704340 - rpm - 17/09/2018 - libthai - CentOS - 0.1.14-9.el7 - - - noarch - Perl extension for portable daemons - 119147 - rpm - 17/09/2018 - perl-Net-Daemon - CentOS - 0.48-5.el7 - - - noarch - An object-oriented approach to text processing - 375948 - rpm - 17/09/2018 - pyparsing - CentOS - 1.5.6-9.el7 - - - noarch - ASN.1 Encode/Decode library - 152768 - rpm - 17/09/2018 - perl-Convert-ASN1 - CentOS - 0.26-4.el7 - - - x86_64 - Enhanced implementation of the mailx command - 477349 - rpm - 17/09/2018 - mailx - CentOS - 12.5-19.el7 - - - noarch - A Perl module for time and date manipulation - 100194 - rpm - 17/09/2018 - perl-TimeDate - CentOS - 2.30-2.el7 - - - noarch - Parse directory listing - 17187 - rpm - 17/09/2018 - perl-File-Listing - CentOS - 6.04-7.el7 - - - x86_64 - Implementation of the soundex algorithm - 29915 - rpm - 17/09/2018 - perl-Text-Soundex - CentOS - 3.04-4.el7 - - - noarch - Report the search path for a class's ISA tree - 12821 - rpm - 17/09/2018 - perl-Class-ISA - CentOS - 0.36-1010.el7 - - - noarch - Open an HTML file with automatic character set detection - 43639 - rpm - 17/09/2018 - perl-IO-HTML - CentOS - 1.00-2.el7 - - - x86_64 - Low-level interface to bzip2 compression library - 57986 - rpm - 17/09/2018 - perl-Compress-Raw-Bzip2 - CentOS - 2.061-3.el7 - - - noarch - Low-level HTTP connection (client) - 52165 - rpm - 17/09/2018 - perl-Net-HTTP - CentOS - 6.06-2.el7 - - - x86_64 - A database access API for perl - 2008211 - rpm - 17/09/2018 - perl-DBI - CentOS - 1.627-4.el7 - - - noarch - Centreon Perl libraries - 507619 - rpm - 17/09/2018 - centreon-perl-libs - 2.8.26-3.el7.centos - - - noarch - Centreon plugin - 381277 - rpm - 17/09/2018 - centreon-plugin-Applications-Monitoring-Centreon-Database - 20180821-1.el7 - - - x86_64 - SQLite DBI Driver - 5665682 - rpm - 17/09/2018 - perl-DBD-SQLite - CentOS - 1.39-3.el7 - - - x86_64 - Development libraries and header files for the gdbm library - 42866 - rpm - 17/09/2018 - gdbm-devel - CentOS - 1.10-8.el7 - - - noarch - an exporter with the features of Sub::Exporter but only core dependencies - 40509 - rpm - 17/09/2018 - perl-Exporter-Tiny - 0.042-1.el7.centos - - - noarch - lvalue - 10437 - rpm - 17/09/2018 - perl-LV - 0.006-1.el7.centos - - - noarch - Perl extension for Pure-Perl ECMAScript (JavaScript) Engine - 559272 - rpm - 17/09/2018 - perl-JE - 0.066-1.el7.centos - - - x86_64 - C library for reading, creating, and modifying zip archives - 106263 - rpm - 17/09/2018 - libzip - CentOS - 0.10.1-8.el7 - - - x86_64 - PHP Zend Guard - 1062649 - rpm - 17/09/2018 - php-zend-guard-loader - cPanel Internal Packages, http://www.cpanel.net/ - 6.0.0-4.el7.centos - - - noarch - PHP Extension and Application Repository framework - 2267947 - rpm - 17/09/2018 - php-pear - CentOS - 1.9.4-21.el7 - - - noarch - Validation Class for Various Data Types - 90701 - rpm - 17/09/2018 - php-pear-Validate - Fedora Project - 0.8.5-6.el7 - - - noarch - Base class for other HTML classes - 18539 - rpm - 17/09/2018 - php-pear-HTML-Common - Fedora Project - 1.2.5-8.el7 - - - noarch - Class for creating, validating, processing HTML forms - 569771 - rpm - 17/09/2018 - php-pear-HTML-QuickForm - Remi Collet - 3.2.14-1.el7.remi - - - noarch - An SQL Builder, Object Interface to Database Tables - 354067 - rpm - 17/09/2018 - php-pear-DB-DataObject - Fedora Project - 1.11.5-1.el7 - - - noarch - Automatically build HTML_QuickForm objects - 310857 - rpm - 17/09/2018 - php-pear-DB-DataObject-FormBuilder - Fedora Project - 1.0.2-5.el7 - - - x86_64 - Font rendering capabilities for complex non-Roman writing systems - 254548 - rpm - 17/09/2018 - graphite2 - CentOS - 1.3.10-1.el7_3 - - - noarch - Distribution of modules to handle locale codes - 2178322 - rpm - 17/09/2018 - perl-Locale-Codes - CentOS - 3.26-2.el7 - - - x86_64 - Team device plugin for NetworkManager - 54552 - rpm - 06/08/2018 - NetworkManager-team - CentOS - 1.10.2-13.el7 - - - noarch - grub2 common layout - 3915374 - rpm - 06/08/2018 - grub2-common - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - MySQL driver for Qt's SQL classes - 76112 - rpm - 17/09/2018 - qt-mysql - CentOS - 4.8.7-2.el7 - - - x86_64 - Bootloader with support for Linux, Multiboot and more - 0 - rpm - 06/08/2018 - grub2 - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - License of the BIND DNS suite - 26831 - rpm - 06/08/2018 - bind-license - CentOS - 9.9.4-61.el7 - - - x86_64 - Perl extension for accessing network card configuration information - 48046 - rpm - 17/09/2018 - perl-IO-Interface - CentOS - 1.05-2.el7 - - - x86_64 - HardWare LiSter - 955626 - rpm - 06/08/2018 - lshw - CentOS - B.02.18-12.el7 - - - x86_64 - A system tool for maintaining the /etc/rc*.d hierarchy - 779531 - rpm - 06/08/2018 - chkconfig - CentOS - 1.7.4-1.el7 - - - noarch - Perl lint - 31723 - rpm - 17/09/2018 - perl-B-Lint - CentOS - 1.17-3.el7 - - - x86_64 - The Linux kernel - 64576056 - rpm - 06/08/2018 - kernel - CentOS - 3.10.0-862.el7 - - - noarch - A set of system configuration and setup files - 696925 - rpm - 06/08/2018 - setup - CentOS - 2.8.71-9.el7 - - - noarch - XPath parser and evaluator for Perl - 194003 - rpm - 17/09/2018 - perl-XML-XPath - CentOS - 1.13-22.el7 - - - x86_64 - Udev helper for naming devices per BIOS names - 59183 - rpm - 06/08/2018 - biosdevname - CentOS - 0.7.3-1.el7 - - - x86_64 - The compression and decompression library - 185710 - rpm - 06/08/2018 - zlib - CentOS - 1.2.7-17.el7 - - - noarch - Framework for localization - 172613 - rpm - 17/09/2018 - perl-Locale-Maketext - CentOS - 1.23-3.el7 - - - x86_64 - Assortment of tools for the Linux kernel - 284717 - rpm - 06/08/2018 - kernel-tools - CentOS - 3.10.0-862.el7 - - - x86_64 - GNU Standard C++ Library - 1081666 - rpm - 06/08/2018 - libstdc++ - CentOS - 4.8.5-28.el7 - - - x86_64 - A C binding to the X11 protocol - 1005512 - rpm - 17/09/2018 - libxcb - CentOS - 1.12-1.el7 - - - x86_64 - An utility for setting or changing passwords using PAM - 429874 - rpm - 06/08/2018 - passwd - CentOS - 0.79-4.el7 - - - x86_64 - The GNU version of the awk text processing utility - 2435978 - rpm - 06/08/2018 - gawk - CentOS - 4.0.2-4.el7_3.1 - - - x86_64 - Digest-SHA1 Perl module - 107345 - rpm - 17/09/2018 - perl-Digest-SHA1 - CentOS - 2.13-9.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 2030 Series Adapters - 828852 - rpm - 06/08/2018 - iwl2030-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - Library for getting and setting POSIX.1e capabilities - 111445 - rpm - 06/08/2018 - libcap - CentOS - 2.22-9.el7 - - - noarch - A working (require "Class::Name") and more - 37892 - rpm - 17/09/2018 - perl-Class-Load - CentOS - 0.20-3.el7 - - - noarch - Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors - 271560 - rpm - 06/08/2018 - iwl3945-firmware - CentOS - 15.32.2.9-62.el7 - - - x86_64 - A GNU stream text editor - 601208 - rpm - 06/08/2018 - sed - CentOS - 4.2.2-5.el7 - - - noarch - Centreon plugin - 379933 - rpm - 17/09/2018 - centreon-plugin-Operatingsystems-Windows-Snmp - 20180821-1.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters - 1054932 - rpm - 06/08/2018 - iwl6050-firmware - CentOS - 41.28.5.1-62.el7 - - - x86_64 - A GNU arbitrary precision library - 657046 - rpm - 06/08/2018 - gmp - CentOS - 6.0.0-15.el7 - - - x86_64 - A utility which lists open files on a Linux/UNIX system - 948883 - rpm - 17/09/2018 - lsof - CentOS - 4.87-5.el7 - - - noarch - The basic required files for the root user's directory - 599 - rpm - 06/08/2018 - rootfiles - CentOS - 8.1-11.el7 - - - noarch - The Mozilla CA root certificate bundle - 998895 - rpm - 06/08/2018 - ca-certificates - CentOS - 2017.2.20-71.el7 - - - noarch - HTTP style message - 162045 - rpm - 17/09/2018 - perl-HTTP-Message - CentOS - 6.06-6.el7 - - - noarch - Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors - 309432 - rpm - 06/08/2018 - iwl4965-firmware - CentOS - 228.61.2.24-62.el7 - - - x86_64 - The non-admin shared libraries used by Kerberos 5 - 1988950 - rpm - 06/08/2018 - krb5-libs - CentOS - 1.15.1-18.el7 - - - noarch - Simple HTTP server class - 40809 - rpm - 17/09/2018 - perl-HTTP-Daemon - CentOS - 6.01-7.el7 - - - (none) - gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>) - 0 - rpm - 06/08/2018 - gpg-pubkey - f4a80eb5-53a7ff4b - - - x86_64 - Libraries for applications using bzip2 - 70093 - rpm - 06/08/2018 - bzip2-libs - CentOS - 1.0.6-13.el7 - - - noarch - Centreon plugin - 171944 - rpm - 17/09/2018 - centreon-plugin-Applications-Protocol-Ldap - 20180821-1.el7 - - - noarch - Look up Perl documentation in Pod format - 166910 - rpm - 06/08/2018 - perl-Pod-Perldoc - CentOS - 3.20-4.el7 - - - x86_64 - Library providing XML and HTML support - 1710062 - rpm - 06/08/2018 - libxml2 - CentOS - 2.9.1-6.el7_2.3 - - - noarch - JMX access for Perl - 523002 - rpm - 17/09/2018 - perl-JMX-Jmx4Perl - 1.11-2.el7.centos - - - noarch - Print a usage message from embedded POD documentation - 44671 - rpm - 06/08/2018 - perl-Pod-Usage - CentOS - 1.63-3.el7 - - - x86_64 - A general-purpose cryptography library - 597727 - rpm - 06/08/2018 - libgcrypt - CentOS - 1.5.3-14.el7 - - - noarch - Centreon plugin - 200502 - rpm - 17/09/2018 - centreon-plugin-Applications-Monitoring-Centreon-Poller - 20180821-1.el7 - - - noarch - Implements default import method for modules - 56612 - rpm - 06/08/2018 - perl-Exporter - CentOS - 5.68-3.el7 - - - x86_64 - An XML parser library - 208315 - rpm - 06/08/2018 - expat - CentOS - 2.1.0-10.el7_3 - - - x86_64 - LSB Core module support - 45789 - rpm - 17/09/2018 - redhat-lsb-core - CentOS - 4.1-27.el7.centos.1 - - - noarch - Alternative warn and die for modules - 28276 - rpm - 06/08/2018 - perl-Carp - CentOS - 1.26-244.el7 - - - x86_64 - Displays where a particular program in your path is located - 76962 - rpm - 06/08/2018 - which - CentOS - 2.20-7.el7 - - - x86_64 - Object files for development using standard C libraries. - 1066564 - rpm - 17/09/2018 - glibc-devel - CentOS - 2.17-222.el7 - - - noarch - Return name and handle of a temporary file safely - 158781 - rpm - 06/08/2018 - perl-File-Temp - CentOS - 0.23.01-3.el7 - - - x86_64 - A library of handy utility functions - 11986873 - rpm - 06/08/2018 - glib2 - CentOS - 2.54.2-2.el7 - - - noarch - Module and a script for converting Perl XS code into C code - 178634 - rpm - 17/09/2018 - perl-ExtUtils-ParseXS - CentOS - 3.18-3.el7 - - - x86_64 - Perl source filters - 148475 - rpm - 06/08/2018 - perl-Filter - CentOS - 1.49-3.el7 - - - x86_64 - A minimalistic Netlink library - 51847 - rpm - 06/08/2018 - libmnl - CentOS - 1.0.3-7.el7 - - - noarch - Query, download and build perl modules from CPAN sites - 762404 - rpm - 17/09/2018 - perl-CPAN - CentOS - 1.9800-292.el7 - - - noarch - Modules that calculate message digests - 28661 - rpm - 06/08/2018 - perl-Digest - CentOS - 1.17-245.el7 - - - x86_64 - A library for password generation and password quality checking - 332421 - rpm - 06/08/2018 - libpwquality - CentOS - 1.2.3-5.el7 - - - noarch - Common data for libX11 - 1335662 - rpm - 17/09/2018 - libX11-common - CentOS - 1.6.5-1.el7 - - - x86_64 - A utility for retrieving files using the HTTP or FTP protocols - 2055533 - rpm - 17/09/2018 - wget - CentOS - 1.14-15.el7_4.1 - - - x86_64 - System NSS Initialization - 14066 - rpm - 06/08/2018 - nss-sysinit - CentOS - 3.34.0-4.el7 - - - x86_64 - X.Org X11 libXi runtime library - 70019 - rpm - 17/09/2018 - libXi - CentOS - 1.7.9-1.el7 - - - x86_64 - Stringify perl data structures, suitable for printing and eval - 99287 - rpm - 17/09/2018 - perl-Data-Dumper - CentOS - 2.145-3.el7 - - - x86_64 - LZMA compression utilities - 798130 - rpm - 06/08/2018 - xz - CentOS - 5.2.2-1.el7 - - - x86_64 - X.Org X11 libXft runtime library - 125933 - rpm - 17/09/2018 - libXft - CentOS - 2.3.2-2.el7 - - - x86_64 - X.Org X11 SM runtime library - 81546 - rpm - 17/09/2018 - libSM - CentOS - 1.2.2-2.el7 - - - x86_64 - Internationalized Domain Name support library - 630407 - rpm - 06/08/2018 - libidn - CentOS - 1.28-4.el7 - - - x86_64 - X.Org X11 libXt runtime library - 430105 - rpm - 17/09/2018 - libXt - CentOS - 1.1.5-3.el7 - - - x86_64 - Centreon core library. - 218566 - rpm - 17/09/2018 - centreon-clib - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.4.2-3.el7.centos - - - x86_64 - Libraries for tcp_wrappers - 134602 - rpm - 06/08/2018 - tcp_wrappers-libs - CentOS - 7.6-77.el7 - - - x86_64 - The shared library for the Qt 3 GUI toolkit - 11417847 - rpm - 17/09/2018 - qt3 - CentOS - 3.3.8b-51.el7 - - - noarch - Run Perl standard test scripts with statistics - 607239 - rpm - 17/09/2018 - perl-Test-Harness - CentOS - 3.28-3.el7 - - - x86_64 - A library for text mode user interfaces - 185196 - rpm - 06/08/2018 - newt - CentOS - 0.52.15-4.el7 - - - x86_64 - Qt GUI-related libraries - 35695968 - rpm - 17/09/2018 - qt-x11 - CentOS - 4.8.7-2.el7 - - - x86_64 - Provide the stuff missing in List::Util - 152652 - rpm - 17/09/2018 - perl-List-MoreUtils - CentOS - 0.33-9.el7 - - - x86_64 - A GNU set of database routines which use extensible hashing - 184322 - rpm - 06/08/2018 - gdbm - CentOS - 1.10-8.el7 - - - x86_64 - Mesa libEGL runtime libraries - 227792 - rpm - 17/09/2018 - mesa-libEGL - CentOS - 17.2.3-8.20171019.el7 - - - x86_64 - Apache Portable Runtime Utility library - 198751 - rpm - 17/09/2018 - apr-util - CentOS - 1.5.2-6.el7 - - - x86_64 - Utility to set/show the host name or domain name - 19449 - rpm - 06/08/2018 - hostname - CentOS - 3.13-3.el7 - - - x86_64 - Centreon Broker's shared library. - 3900778 - rpm - 17/09/2018 - centreon-broker-core - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 3.0.14-1.el7.centos - - - x86_64 - Lm_sensors core libraries - 61600 - rpm - 17/09/2018 - lm_sensors-libs - CentOS - 3.4.0-4.20160601gitf9185e5.el7 - - - x86_64 - Python bindings for lzma - 190112 - rpm - 06/08/2018 - pyliblzma - CentOS - 0.5.3-11.el7 - - - x86_64 - The GIMP ToolKit (GTK+), a library for creating GUIs for X - 13494501 - rpm - 17/09/2018 - gtk2 - CentOS - 2.24.31-1.el7 - - - x86_64 - Wayland client library - 63916 - rpm - 17/09/2018 - libwayland-client - CentOS - 1.14.0-2.el7 - - - x86_64 - Linux scheduler python bindings - 43123 - rpm - 06/08/2018 - python-schedutils - CentOS - 0.4-6.el7 - - - x86_64 - Centreon Engine External Commands allow to other applications to send command into the daemon. - 224906 - rpm - 17/09/2018 - centreon-engine-extcommands - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.8.1-1.el7.centos - - - noarch - Install subroutines into packages easily - 33691 - rpm - 17/09/2018 - perl-Sub-Install - CentOS - 0.926-6.el7 - - - x86_64 - Extended attributes library wrapper for Python - 63304 - rpm - 06/08/2018 - pyxattr - CentOS - 0.5.1-5.el7 - - - noarch - Rights and file for pollers (including central) - 2469 - rpm - 17/09/2018 - centreon-poller-centreon-engine - 2.8.26-3.el7.centos - - - noarch - Helper application and MIME type associations for file types - 63360 - rpm - 17/09/2018 - mailcap - CentOS - 2.1.41-2.el7 - - - x86_64 - Libraries for gettext - 1546952 - rpm - 06/08/2018 - gettext-libs - CentOS - 0.19.8.1-2.el7 - - - noarch - Centreon License Manager - 659612 - rpm - 17/09/2018 - centreon-license-manager - 1.1-5.el7.centos - - - x86_64 - Params-Validate Perl module - 143182 - rpm - 17/09/2018 - perl-Params-Validate - CentOS - 1.08-4.el7 - - - x86_64 - Tools for the Network Security Services - 2061331 - rpm - 06/08/2018 - nss-tools - CentOS - 3.34.0-4.el7 - - - x86_64 - MariaDB: a very fast and robust SQL database server - 449722432 - rpm - 17/09/2018 - MariaDB-server - Monty Program AB - 10.1.19-1.el7.centos - - - noarch - Directories used by font packages - 0 - rpm - 17/09/2018 - fontpackages-filesystem - CentOS - 1.44-8.el7 - - - x86_64 - Introspection system for GObject-based libraries - 834149 - rpm - 06/08/2018 - gobject-introspection - CentOS - 1.50.0-1.el7 - - - x86_64 - Common files for PHP - 3971967 - rpm - 16/01/2019 - php-common - CentOS - 5.4.16-46.el7 - - - noarch - Keyed-Hashing for Message Authentication - 12946 - rpm - 17/09/2018 - perl-Digest-HMAC - CentOS - 1.03-5.el7 - - - x86_64 - Libraries to handle kernel module loading and unloading - 91800 - rpm - 06/08/2018 - kmod-libs - CentOS - 20-21.el7 - - - x86_64 - Apache HTTP Server - 9817309 - rpm - 16/01/2019 - httpd - CentOS - 2.4.6-88.el7.centos - - - x86_64 - Simple standalone parameter-checking functions - 75141 - rpm - 17/09/2018 - perl-Params-Util - CentOS - 1.07-6.el7 - - - x86_64 - The Advanced Linux Sound Architecture (ALSA) library - 1424769 - rpm - 06/08/2018 - alsa-lib - CentOS - 1.1.4.1-2.el7 - - - x86_64 - A module for PHP applications that use LDAP - 57969 - rpm - 16/01/2019 - php-ldap - CentOS - 5.4.16-46.el7 - - - x86_64 - DNS resolver modules for Perl - 658457 - rpm - 17/09/2018 - perl-Net-DNS - CentOS - 0.72-6.el7 - - - x86_64 - A library implementing the SSH2 protocol - 341782 - rpm - 06/08/2018 - libssh2 - CentOS - 1.4.3-10.el7_2.1 - - - x86_64 - Modules for PHP script using system process interfaces - 80536 - rpm - 16/01/2019 - php-process - CentOS - 5.4.16-46.el7 - - - noarch - Monospace sans-serif font faces - 1127679 - rpm - 17/09/2018 - dejavu-sans-mono-fonts - CentOS - 2.33-6.el7 - - - x86_64 - The RPM package management system - 2621900 - rpm - 06/08/2018 - rpm - CentOS - 4.11.3-32.el7 - - - noarch - The basic directory layout for Web Assets - 0 - rpm - 16/01/2019 - web-assets-filesystem - Fedora Project - 5-1.el7 - - - noarch - Fonts for the Ghostscript PostScript interpreter - 636425 - rpm - 17/09/2018 - ghostscript-fonts - CentOS - 5.50-32.el7 - - - noarch - A high-level cross-protocol url-grabber - 500670 - rpm - 06/08/2018 - python-urlgrabber - CentOS - 3.10-8.el7 - - - x86_64 - The OpenIPMI runtime libraries - 1784128 - rpm - 16/01/2019 - OpenIPMI-libs - CentOS - 2.0.23-2.el7 - - - x86_64 - Network exploration tool and security scanner - 16916942 - rpm - 17/09/2018 - nmap - CentOS - 6.40-13.el7 - - - x86_64 - A GNU file archiving program - 2838271 - rpm - 06/08/2018 - tar - CentOS - 1.26-34.el7 - - - noarch - Variable-width sans-serif font faces - 5395167 - rpm - 16/01/2019 - dejavu-sans-fonts - CentOS - 2.33-6.el7 - - - noarch - Centreon plugin - 489906 - rpm - 17/09/2018 - centreon-plugin-Network-Cisco-Standard-Snmp - 20180821-1.el7 - - - x86_64 - Collection of simple PIN or passphrase entry dialogs - 159929 - rpm - 06/08/2018 - pinentry - CentOS - 0.8.1-17.el7 - - - x86_64 - Traces the route taken by packets over an IPv4/IPv6 network - 93925 - rpm - 16/01/2019 - traceroute - CentOS - 2.0.22-2.el7 - - - noarch - Check POD documents for syntax errors - 60416 - rpm - 17/09/2018 - perl-Pod-Checker - CentOS - 1.60-2.el7 - - - x86_64 - Library for country/city/organization to IP address or hostname mapping - 2905020 - rpm - 06/08/2018 - GeoIP - CentOS - 1.5.0-11.el7 - - - x86_64 - IPMI Perl language bindings - 804848 - rpm - 16/01/2019 - OpenIPMI-perl - CentOS - 2.0.23-2.el7 - - - x86_64 - Nagios Plugin - check_dhcp - 54408 - rpm - 17/09/2018 - nagios-plugins-dhcp - 1.4.16-10.el7.centos - - - x86_64 - Shared library for sg3_utils - 184551 - rpm - 06/08/2018 - sg3_utils-libs - CentOS - 1.37-12.el7 - - - x86_64 - Zabbix proxy compiled to use SQLite - 1501667 - rpm - 16/01/2019 - zabbix30-proxy-sqlite3 - Fedora Project - 3.0.22-2.el7 - - - x86_64 - Centreon Connector provide some tools for Centreon Engine to monitoring and management system. - 0 - rpm - 17/09/2018 - centreon-connector - Centreon Entreprise Server (CES) Repository, http://yum.centreon.com/standard/ - 1.1.3-1.el7.centos - - - x86_64 - Library for writing UNIX daemons - 62045 - rpm - 06/08/2018 - libdaemon - CentOS - 0.14-7.el7 - - - x86_64 - Runtime libraries for jasper - 350682 - rpm - 17/09/2018 - jasper-libs - CentOS - 1.900.1-31.el7 - - - x86_64 - String library, very low memory overhead, simple to import - 285943 - rpm - 06/08/2018 - ustr - CentOS - 1.0.4-16.el7 - - - noarch - Perl extension for decoding NTP server responses - 19074 - rpm - 17/09/2018 - perl-Net-NTP - 1.5-1.el7.centos - - - x86_64 - System and process monitoring utilities - 759252 - rpm - 06/08/2018 - procps-ng - CentOS - 3.3.10-17.el7 - - - noarch - Handle Common Gateway Interface requests and responses - 716590 - rpm - 17/09/2018 - perl-CGI - CentOS - 3.63-4.el7 - - - x86_64 - Initramfs generator using udev - 897713 - rpm - 06/08/2018 - dracut - CentOS - 033-535.el7 - - - x86_64 - Color Management Engine - 377192 - rpm - 17/09/2018 - lcms2 - CentOS - 2.6-3.el7 - - - x86_64 - Libraries to handle compiled objects - 747527 - rpm - 06/08/2018 - elfutils-libs - CentOS - 0.170-4.el7 - - - x86_64 - The GNU line editor - 119985 - rpm - 17/09/2018 - ed - CentOS - 1.9-4.el7 - - - x86_64 - D-BUS message bus - 595223 - rpm - 06/08/2018 - dbus - CentOS - 1.10.24-7.el7 - - - x86_64 - Job spooling tools - 97561 - rpm - 17/09/2018 - at - CentOS - 3.1.13-23.el7 - - - x86_64 - Network monitoring tools including ping - 343497 - rpm - 06/08/2018 - iputils - CentOS - 20160308-10.el7 - - - noarch - Create and use a local lib/ for perl modules - 105916 - rpm - 17/09/2018 - perl-local-lib - CentOS - 1.008010-4.el7 - - - x86_64 - Support tools for GRUB. - 685843 - rpm - 06/08/2018 - grub2-tools-minimal - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - Date conversion routines - 20167 - rpm - 17/09/2018 - perl-HTTP-Date - CentOS - 6.02-8.el7 - - - x86_64 - Hardware identification and configuration data - 13422381 - rpm - 06/08/2018 - hwdata - CentOS - 0.252-8.8.el7 - - - x86_64 - Utility for modifying/upgrading files - 215449 - rpm - 17/09/2018 - patch - CentOS - 2.7.1-10.el7_5 - - - x86_64 - Shared libraries used by ISC dhcp client and server - 149176 - rpm - 06/08/2018 - dhcp-libs - CentOS - 4.2.5-68.el7.centos - - - noarch - Basic requirement for icon themes - 45788 - rpm - 17/09/2018 - hicolor-icon-theme - CentOS - 0.12-7.el7 - - - x86_64 - Provides the ISC DHCP client daemon and dhclient-script - 486155 - rpm - 06/08/2018 - dhclient - CentOS - 4.2.5-68.el7.centos - - - noarch - Interface for writing PlRPC clients and servers - 70468 - rpm - 17/09/2018 - perl-PlRPC - CentOS - 0.2020-14.el7 - - - x86_64 - Support tools for GRUB. - 6328356 - rpm - 06/08/2018 - grub2-tools-extra - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - Centreon Traps - 8131 - rpm - 17/09/2018 - centreon-trap - 2.8.26-3.el7.centos - - - x86_64 - Shared libraries for lvm2 - 3683188 - rpm - 06/08/2018 - lvm2-libs - CentOS - 2.02.177-4.el7 - - - x86_64 - The GNU macro processor - 525707 - rpm - 17/09/2018 - m4 - CentOS - 1.4.16-10.el7 - - - noarch - Firmware for several ALSA-supported sound cards - 9572469 - rpm - 06/08/2018 - alsa-firmware - CentOS - 1.0.28-2.el7 - - - x86_64 - TCG's Software Stack v1.2 - 836873 - rpm - 17/09/2018 - trousers - CentOS - 0.3.14-2.el7 - - - x86_64 - GLib bindings for D-Bus - 301237 - rpm - 06/08/2018 - dbus-glib - CentOS - 0.100-7.el7 - - - noarch - Find and use installed modules in a (sub)category - 14357 - rpm - 17/09/2018 - perl-Module-Find - Fedora Project - 0.12-1.el7 - - - noarch - A libudev binding - 241404 - rpm - 06/08/2018 - python-pyudev - CentOS - 0.15-9.el7 - - - x86_64 - String handling essentials library - 44322 - rpm - 06/08/2018 - libestr - CentOS - 0.1.9-2.el7 - - - x86_64 - A pipeline manipulation library - 142521 - rpm - 06/08/2018 - libpipeline - CentOS - 1.2.3-3.el7 - - - noarch - PEAR: Database Abstraction Layer - 707925 - rpm - 17/09/2018 - php-pear-DB - Fedora Project - 1.7.14-6.el7 - - - x86_64 - Utility for secure communication and data storage - 6644890 - rpm - 06/08/2018 - gnupg2 - CentOS - 2.0.22-4.el7 - - - noarch - Database Abstraction Layer - 823510 - rpm - 17/09/2018 - php-pear-MDB2 - Fedora Project - 2.5.0-0.9.b5.el7 - - - x86_64 - Python module for working with OpenPGP messages - 197501 - rpm - 06/08/2018 - pygpgme - CentOS - 0.3-9.el7 - - - noarch - Zip file management class - 127818 - rpm - 17/09/2018 - php-pear-Archive-Zip - 0.1.2-1 - - - x86_64 - Tools for configuring the console (keyboard, virtual terminals, etc.) - 1380661 - rpm - 06/08/2018 - kbd - CentOS - 1.15.5-13.el7 - - - x86_64 - Enhanced system logging and kernel message trapping daemon - 2001916 - rpm - 06/08/2018 - rsyslog - CentOS - 8.24.0-16.el7 - - - Virtual - 20971 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.16.3 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - wz--n- - 0 - 2 - 1 - 20396 - 4.19 - centos_prod-infra-01 - H6tEsx-T3on-W4jp-Na1K-31UZ-8WdP-eofFkK - - - prod-infra-01-2018-08-06-18-15-05 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs.sign deleted file mode 100644 index 9fd8df2d9e3..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-infra-01-1d71624f-06fa-4472-8e8d-820b970039ba.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=552e9263f42b78c0ee0b6c236f622a5f4dedbfadba01064313d1eb1ea339710967acda6051dfdd8e0649decbfbcfd3456d2558f61f350c8c6b919d12431c4403e2a3b096166dd28d697946bf8160f7254b56d082947fe1705c3776def9a8d817149584824c7f3229028b2fe58b49ed2080dd561b72999f6c95f8ca0347be9526942db8e0f51d6c74d2b644b1f23b201032b2e0d99f2af64ab07d6be36518b60e006773dc66bbcce014e00cabaf07da718acca922969e9b02b77aeb8e4f61a2b238f9d2d5f04315f125c66452f41dd47c54d024eff6d9191cc02c5786171ab8ee9e9423ae4c1fe9eaa47e02225f38392acfbddcccd90a83a6c925939a330c839d4a90a62d3f86186f506cc1f1c96d43721e27acd9ae07f0b73f31146fc30eeffd3d4c5135c9acd070e291db43380828e4fa7d45490d8f465aef18227f958c643e3be17c34b98d52051875bb71e55ec4d20345057e697801bbbd95ab0b4d818d71e3546674eacb9369b996a40de190ec84f6ad408d0223fc7d7e0d02c68d828ef002e8ad740c3065e8cd5267871363d03ee866cb384fe073c9c72c47885c6d6bc67a66166a606e90c3e2237e1f830cc5e270e9f279c1b59f4a7e39def21703b8b17cc6ee625388ed535b0923d3edf4f699bee7fcf02e96eab5017ce348644819a21ad7d9d482bf9b8b37c6392d274446635087bba02e01085975c56bbfd965e2bf -hostname=prod-infra-01 -keydate=2018-08-06 18:14:56.319486142 +0200 -keyid=6ECD6EA5 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs deleted file mode 100644 index 07b9fbe2032..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs +++ /dev/null @@ -1,4943 +0,0 @@ - - - - - 2019-09-13 05:39:23 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - i386 - 1 - Other - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2 - 1 - - - xfs - 6825 - 40f8f7aa-7a31-4754-9b0a-cc39df383517 - 8178 - / - /dev/mapper/centos_prod--www--01-root - - - xfs - 872 - ff1fb80d-49a6-49e1-ac12-368f0e177deb - 1014 - /boot - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - LOGNAME - root - - - SHLVL - 2 - - - HOSTNAME - prod-www-01 - - - MANPATH - /usr/local/share/man:/usr/share/man:/opt/rudder/share/man - - - _ - /usr/bin/perl - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/rudder/cfengine-community/bin - - - LESSOPEN - ||/usr/bin/lesspipe.sh %s - - - MAIL - /var/spool/mail/root - - - HISTSIZE - 1000 - - - PWD - /var/rudder - - - USER - root - - - LANG - en_US.UTF-8 - - - HISTCONTROL - ignoredups - - - x86_64-linux-thread-multi - Other - 131071 - Wed Jun 26 16:41 - 192.168.210.1 - 192.168.210.1 - 1 - 192.168.210.3 - jdoe - 718 - prod-www-01 - #1 SMP Fri Apr 20 16:44:24 UTC 2018 - CentOS Linux release 7.5.1804 (Core) - 3.10.0-862.el7.x86_64 - 1 - Intel Core Processor (Broadwell) - 1023 - 86CDB606-B6D0-42AA-AAD1-6D47C3861E6A - QEMU - demo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - PC Speaker - PC Speaker - Keyboard - - - 10 - abrianceau - wheel - - - 12 - postfix - mail - mail - - - 1000 - abrianceau - abrianceau - abrianceau - - - /root - 0 - root - root - /bin/bash - - - /bin - 1 - bin - bin - /sbin/nologin - - - /sbin - 2 - daemon - daemon - /sbin/nologin - - - /var/adm - 3 - adm - adm - /sbin/nologin - - - /var/spool/lpd - 4 - lp - lp - /sbin/nologin - - - /sbin - 5 - sync - sync - /bin/sync - - - /sbin - 6 - shutdown - shutdown - /sbin/shutdown - - - /sbin - 7 - halt - halt - /sbin/halt - - - /var/spool/mail - 8 - mail - mail - /sbin/nologin - - - /root - 11 - operator - operator - /sbin/nologin - - - /usr/games - 12 - games - games - /sbin/nologin - - - /var/ftp - 14 - ftp - FTP User - /sbin/nologin - - - / - 99 - nobody - Nobody - /sbin/nologin - - - / - 192 - systemd-network - systemd Network Management - /sbin/nologin - - - / - 81 - dbus - System message bus - /sbin/nologin - - - / - 999 - polkitd - User for polkitd - /sbin/nologin - - - /var/empty/sshd - 74 - sshd - Privilege-separated SSH - /sbin/nologin - - - /var/spool/postfix - 89 - postfix - - /sbin/nologin - - - /var/lib/chrony - 998 - chrony - - /sbin/nologin - - - /home/abrianceau - 1000 - abrianceau - abrianceau - /bin/bash - - - /home/bpeccatte - 1001 - bpeccatte - - /bin/bash - - - /usr/share/httpd - 48 - apache - Apache - /sbin/nologin - - - /home/ncharles - 1002 - ncharles - - /bin/bash - - - /home/amousset - 1003 - amousset - - /bin/bash - - - /home/fdallidet - 1004 - fdallidet - - /bin/bash - - - /home/farmand - 1005 - farmand - - /bin/bash - - - /home/jdoe - 1006 - jdoe - - /bin/bash - - - -wi-ao---- - root - VSkZZd-owAD-Uir6-UVX4-ny7o-heGv-qGDVNu - 1 - 8585 - Yj8ggw-QQwn-34vy-BPHp-kyln-0sLx-Cs4Xkc - - - -wi-ao---- - swap - vRKfG8-GKNq-zkNx-xbsf-MjQE-DieH-tYnGV9 - 1 - 1073 - Yj8ggw-QQwn-34vy-BPHp-kyln-0sLx-Cs4Xkc - - - 4096 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.210.3 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:5e:40:57 - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fe5e:4057 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:5e:40:57 - Up - ethernet - 0 - - - x86_64 - 2019-08-27 17:29:46 - demo.normation.com - prod-www-01.demo.normation.com - CentOS Linux release 7.5.1804 (Core) - 007f0100 - linux - 3.10.0-862.el7.x86_64 - CentOS - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyDp/usxXghHlJcgK3BhreIaguEYtwe5AWj9gRdzy/0p4rsH9BoIzLnpBk6qbosgFvKLaMmEarzDYXJ82WG+YoB66MBmPzAUviL/rWJDn8gba/Vr0Mzjoi4nktLFAKcj8N5j4q6mYsrxkfnS+TSBH33ENSGR7E/TbjQNYSGk4keaIiQk4Sf5n0UsB/BsRVc2OcAfu2/5MeZ6hg3oT/Ss7zEfaNb3/CxtHPgJPDe99eTI6Pi6p4Xffmn8U60CKQppoqtdZM3qIJxl2q3amoYly6aqoWpl1F+QNH/VOxWpxPH8NhAXy6ssaoonGwgojFf0+d9axeSZDGYzvaRRc2Gq9t - - Europe/Amsterdam - +0200 - - 7.5.1804 - - - a-- - /dev/vda2 - lvm2 - 0 - 4 - 2303 - XgY9iO-2jGa-4nm0-ciCs-qRbu-Z2t5-ePaQ1i - 9659 - Yj8ggw-QQwn-34vy-BPHp-kyln-0sLx-Cs4Xkc - - - /usr/lib/systemd/systemd --switched-root --system --deserialize 22 - 0.0 - 0.7 - 1 - 2019-08-27 17:29 - ? - root - 128052 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-08-27 17:29 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2019-08-27 17:29 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 7 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 8 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 9 - 2019-08-27 17:29 - ? - root - 0 - - - [lru-add-drain] - 0.0 - 0.0 - 10 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 11 - 2019-08-27 17:29 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 13 - 2019-08-27 17:29 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 14 - 2019-08-27 17:29 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 15 - 2019-08-27 17:29 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 16 - 2019-08-27 17:29 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 17 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 18 - 2019-08-27 17:29 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 19 - 2019-08-27 17:29 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 20 - 2019-08-27 17:29 - ? - root - 0 - - - [edac-poller] - 0.0 - 0.0 - 21 - 2019-08-27 17:29 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 27 - 2019-08-27 17:29 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 28 - 2019-08-27 17:29 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 29 - 2019-08-27 17:29 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 30 - 2019-08-27 17:29 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 38 - 2019-08-27 17:29 - ? - root - 0 - - - [kmpath_rdacd] - 0.0 - 0.0 - 40 - 2019-08-27 17:29 - ? - root - 0 - - - [kaluad] - 0.0 - 0.0 - 41 - 2019-08-27 17:29 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 42 - 2019-08-27 17:29 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 43 - 2019-08-27 17:29 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 57 - 2019-08-27 17:29 - ? - root - 0 - - - [kauditd] - 0.0 - 0.0 - 89 - 2019-08-27 17:29 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 266 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 272 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 273 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 274 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 275 - 2019-08-27 17:29 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 280 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 286 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 347 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 348 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 358 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 359 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 371 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsalloc] - 0.0 - 0.0 - 372 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs_mru_cache] - 0.0 - 0.0 - 373 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-buf/dm-0] - 0.0 - 0.0 - 374 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-data/dm-0] - 0.0 - 0.0 - 375 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-conv/dm-0] - 0.0 - 0.0 - 376 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-cil/dm-0] - 0.0 - 0.0 - 377 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-reclaim/dm-] - 0.0 - 0.0 - 378 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-log/dm-0] - 0.0 - 0.0 - 379 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-eofblocks/d] - 0.0 - 0.0 - 380 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsaild/dm-0] - 0.0 - 0.0 - 381 - 2019-08-27 17:29 - ? - root - 0 - - - /usr/lib/systemd/systemd-journald - 0.0 - 3.4 - 449 - 2019-08-27 17:29 - ? - root - 63656 - - - /usr/sbin/lvmetad -f - 0.0 - 0.3 - 472 - 2019-08-27 17:29 - ? - root - 127304 - - - /usr/lib/systemd/systemd-udevd - 0.0 - 0.3 - 482 - 2019-08-27 17:29 - ? - root - 47088 - - - [xfs-buf/vda1] - 0.0 - 0.0 - 514 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-data/vda1] - 0.0 - 0.0 - 515 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-conv/vda1] - 0.0 - 0.0 - 516 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-cil/vda1] - 0.0 - 0.0 - 518 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-reclaim/vda] - 0.0 - 0.0 - 519 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-log/vda1] - 0.0 - 0.0 - 520 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-eofblocks/v] - 0.0 - 0.0 - 521 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsaild/vda1] - 0.0 - 0.0 - 528 - 2019-08-27 17:29 - ? - root - 0 - - - /sbin/auditd - 0.0 - 0.0 - 580 - 2019-08-27 17:29 - ? - root - 55508 - - - /usr/lib/polkit-1/polkitd --no-debug - 0.0 - 0.7 - 601 - 2019-08-27 17:29 - ? - polkitd - 538440 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation - 0.0 - 0.2 - 605 - 2019-08-27 17:29 - ? - dbus - 66428 - - - /usr/sbin/chronyd - 0.0 - 0.1 - 608 - 2019-08-27 17:29 - ? - chrony - 117752 - - - /usr/lib/systemd/systemd-logind - 0.0 - 0.2 - 617 - 2019-08-27 17:29 - ? - root - 26376 - - - /usr/sbin/NetworkManager --no-daemon - 0.0 - 0.8 - 620 - 2019-08-27 17:29 - ? - root - 549976 - - - /usr/bin/qemu-ga --method=virtio-serial --path=/dev/virtio-ports/org.qemu.guest_agent.0 --blacklist=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush,guest-exec,guest-exec-status -F/etc/qemu-ga/fsfreeze-hook - 0.0 - 0.1 - 623 - 2019-08-27 17:29 - ? - root - 25040 - - - /var/rudder/cfengine-community/bin/cf-execd --no-fork - 0.0 - 0.7 - 628 - 2019-08-27 17:29 - ? - root - 177052 - - - /usr/sbin/crond -n - 0.0 - 0.1 - 631 - 2019-08-27 17:29 - ? - root - 126312 - - - /sbin/agetty --noclear tty1 linux - 0.0 - 0.1 - 636 - 2019-08-27 17:29 - tty1 - root - 110088 - - - /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-88264654-36c8-4b5b-aaa0-aadfb002d1df-eth0.lease -cf /var/lib/NetworkManager/dhclient-eth0.conf eth0 - 0.0 - 0.4 - 680 - 2019-08-27 17:29 - ? - root - 107380 - - - [kworker/0:0] - 0.0 - 0.0 - 683 - 2019-09-13 05:27 - ? - root - 0 - - - /var/rudder/cfengine-community/bin/cf-serverd --no-fork - 0.0 - 0.7 - 1022 - 2019-08-27 17:29 - ? - root - 99088 - - - /usr/bin/python -Es /usr/sbin/tuned -l -P - 0.0 - 1.6 - 1023 - 2019-08-27 17:29 - ? - root - 573820 - - - /usr/sbin/sshd -D - 0.0 - 0.4 - 1024 - 2019-08-27 17:29 - ? - root - 112796 - - - /usr/sbin/snmpd -LS0-6d -f - 0.0 - 0.9 - 1025 - 2019-08-27 17:29 - ? - root - 223580 - - - /usr/sbin/rsyslogd -n - 0.0 - 2.3 - 1028 - 2019-08-27 17:29 - ? - root - 417188 - - - [kworker/0:2] - 0.0 - 0.0 - 1071 - 2019-09-13 05:33 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.1 - 1453 - 2019-09-13 05:39 - ? - root - 11680 - - - /var/rudder/cfengine-community/bin/cf-agent - 122 - 2.2 - 1463 - 2019-09-13 05:39 - ? - root - 115028 - - - /usr/libexec/postfix/master -w - 0.0 - 0.2 - 1513 - 2019-08-27 17:29 - ? - root - 89620 - - - qmgr -l -t unix -u - 0.0 - 0.4 - 1529 - 2019-08-27 17:29 - ? - postfix - 89792 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs - 0.0 - 0.2 - 1544 - 2019-09-13 05:39 - ? - root - 115300 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs - 0.0 - 3.9 - 1559 - 2019-09-13 05:39 - ? - root - 186772 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.1 - 1564 - 2019-09-13 05:39 - ? - root - 11680 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.2 - 1565 - 2019-09-13 05:39 - ? - root - 51708 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.6 - 2951 - 2019-08-27 17:31 - ? - root - 224024 - - - [kworker/u2:0] - 0.0 - 0.0 - 13389 - 2019-09-11 07:25 - ? - root - 0 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.3 - 16525 - 2019-09-08 03:37 - ? - apache - 224024 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.3 - 16526 - 2019-09-08 03:37 - ? - apache - 224024 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.3 - 16527 - 2019-09-08 03:37 - ? - apache - 224024 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.3 - 16528 - 2019-09-08 03:37 - ? - apache - 224024 - - - /usr/sbin/httpd -DFOREGROUND - 0.0 - 0.3 - 16529 - 2019-09-08 03:37 - ? - apache - 224024 - - - [kworker/u2:2] - 0.0 - 0.0 - 26202 - 2019-09-10 06:22 - ? - root - 0 - - - pickup -l -t unix -u - 0.0 - 0.5 - 29719 - 2019-09-13 04:44 - ? - postfix - 89724 - - - [kworker/0:1] - 0.0 - 0.0 - 32341 - 2019-09-13 05:17 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEAuSi8Tg0ELfusHtikwsVKKVTY0Y/e2rO1g3kyVsqYrZLgdYR70fn1 -vavX8GuVgN9OTIY+C6rTaRG6lm+JENGRaaASfEz48xINz84pOsywD2QqUZe7X3Xn -/wiVnXoH1EpEaLbdbv/7GGGK+4W0sjgD4jPrRirCD1tlhNnLGz6mwNyFOebZr7Yl -6nBilj3kfbTsXLQUKUECMlOhFRNjUEbgIcDTko5ipty2n5CyXJI50Sxl252NpGCK -pQMPGFCpEdPtRWB8G5F1G2Tipz2KWa8wwc+bLoNYphM2xy4SL/Vx79YbRnQm75FG -LVlW+c7jw8iHJG+DBDaBr3zqJDeHmAi/osFonr/axtP4FNYx18f2N69J2i7H3rxB -pjfbmLYhWCFnme1DlxnYR7txL4mBG8Hm6vKQAnXqXwlmid7BFI8lPx6CMb2pEBRt -mYI4qiu0vWJxRSDorrtUdyEUlJNPBOrPSR0CGSuM/dJoQjZKm4ayJ7Rge+SjsYos -mayRU3BOr7onWz6YrkHWJleA0PMIafG2twy2q6eSzjp0H/Ji4ng4JuG8RLdk5geg -7OMGxC1akLRMDpQvBWbj2wtHB0Wf5LU56QKZx7qU6fsFZUJxlj5dce3MYGgqh2rD -hOXvl4Gdx1lbet3xnWiQBueRc40BJ/P7l9lt4SbyggFVj53WGrEYW70CAwEAAQ== ------END RSA PUBLIC KEY----- - - root - prod-rudder - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - [{"cpu_vulnerabilities":{"spectre_v2":{"status":"vulnerable","details":"Retpoline without IBPB"},"spectre_v1":{"status":"mitigated","details":"Load fences"},"meltdown":{"status":"mitigated","details":"PTI"}}}] - prod-www-01.lab.rudder.io - - 4b76c25e-4b08-44d6-b630-29fa77f60c94 - - - x86_64 - Team device plugin for NetworkManager - 54552 - rpm - 06/08/2018 - NetworkManager-team - CentOS - 1.10.2-13.el7 - - - noarch - grub2 common layout - 3915374 - rpm - 06/08/2018 - grub2-common - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Userland logical volume management tools - 3055975 - rpm - 06/08/2018 - lvm2 - CentOS - 2.02.177-4.el7 - - - noarch - Descriptions of common terminals - 223432 - rpm - 06/08/2018 - ncurses-base - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Bootloader with support for Linux, Multiboot and more - 0 - rpm - 06/08/2018 - grub2 - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - License of the BIND DNS suite - 26831 - rpm - 06/08/2018 - bind-license - CentOS - 9.9.4-61.el7 - - - x86_64 - An open source SSH server daemon - 993810 - rpm - 06/08/2018 - openssh-server - CentOS - 7.4p1-16.el7 - - - noarch - Timezone data - 1954525 - rpm - 06/08/2018 - tzdata - CentOS - 2018c-1.el7 - - - x86_64 - HardWare LiSter - 955626 - rpm - 06/08/2018 - lshw - CentOS - B.02.18-12.el7 - - - x86_64 - A system tool for maintaining the /etc/rc*.d hierarchy - 779531 - rpm - 06/08/2018 - chkconfig - CentOS - 1.7.4-1.el7 - - - x86_64 - User space tools for 2.6 kernel auditing - 639108 - rpm - 06/08/2018 - audit - CentOS - 2.8.1-3.el7 - - - x86_64 - Common binaries and locale data for glibc - 120325207 - rpm - 06/08/2018 - glibc-common - CentOS - 2.17-222.el7 - - - x86_64 - The Linux kernel - 64576056 - rpm - 06/08/2018 - kernel - CentOS - 3.10.0-862.el7 - - - noarch - A set of system configuration and setup files - 696925 - rpm - 06/08/2018 - setup - CentOS - 2.8.71-9.el7 - - - noarch - Adaptec SAS 44300, 48300, 58300 Sequencer Firmware for AIC94xx driver - 30752 - rpm - 06/08/2018 - aic94xx-firmware - CentOS - 30-6.el7 - - - noarch - The skeleton package which defines a simple CentOS Linux system - 0 - rpm - 06/08/2018 - basesystem - CentOS - 10.0-7.el7.centos - - - x86_64 - Udev helper for naming devices per BIOS names - 59183 - rpm - 06/08/2018 - biosdevname - CentOS - 0.7.3-1.el7 - - - x86_64 - The compression and decompression library - 185710 - rpm - 06/08/2018 - zlib - CentOS - 1.2.7-17.el7 - - - x86_64 - The GNU disk partition manipulation program - 2336757 - rpm - 06/08/2018 - parted - CentOS - 3.1-29.el7 - - - x86_64 - Network Security Services Utilities Library - 194944 - rpm - 06/08/2018 - nss-util - CentOS - 3.34.0-2.el7 - - - x86_64 - Assortment of tools for the Linux kernel - 284717 - rpm - 06/08/2018 - kernel-tools - CentOS - 3.10.0-862.el7 - - - x86_64 - GNU Standard C++ Library - 1081666 - rpm - 06/08/2018 - libstdc++ - CentOS - 4.8.5-28.el7 - - - x86_64 - Utilities for managing ext2, ext3, and ext4 filesystems - 2555829 - rpm - 06/08/2018 - e2fsprogs - CentOS - 1.42.9-11.el7 - - - x86_64 - A stand-alone TTY-based reader for GNU texinfo documentation - 494630 - rpm - 06/08/2018 - info - CentOS - 5.1-5.el7 - - - x86_64 - An utility for setting or changing passwords using PAM - 429874 - rpm - 06/08/2018 - passwd - CentOS - 0.79-4.el7 - - - x86_64 - The GNU version of the awk text processing utility - 2435978 - rpm - 06/08/2018 - gawk - CentOS - 4.0.2-4.el7_3.1 - - - x86_64 - Utilities for managing the XFS filesystem - 4080035 - rpm - 06/08/2018 - xfsprogs - CentOS - 4.5.0-15.el7 - - - x86_64 - Dynamic library for extended attribute support - 19896 - rpm - 06/08/2018 - libattr - CentOS - 2.4.46-13.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 2030 Series Adapters - 828852 - rpm - 06/08/2018 - iwl2030-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - Library for getting and setting POSIX.1e capabilities - 111445 - rpm - 06/08/2018 - libcap - CentOS - 2.22-9.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 135 Series Adapters - 822688 - rpm - 06/08/2018 - iwl135-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - Perl-compatible regular expression library - 1475532 - rpm - 06/08/2018 - pcre - CentOS - 8.32-17.el7 - - - noarch - Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors - 271560 - rpm - 06/08/2018 - iwl3945-firmware - CentOS - 15.32.2.9-62.el7 - - - x86_64 - A GNU stream text editor - 601208 - rpm - 06/08/2018 - sed - CentOS - 4.2.2-5.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 7260 Series Adapters - 6505180 - rpm - 06/08/2018 - iwl7260-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - Library for loading and sharing PKCS#11 modules - 1337825 - rpm - 06/08/2018 - p11-kit - CentOS - 0.23.5-3.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters - 1054932 - rpm - 06/08/2018 - iwl6050-firmware - CentOS - 41.28.5.1-62.el7 - - - x86_64 - A GNU arbitrary precision library - 657046 - rpm - 06/08/2018 - gmp - CentOS - 6.0.0-15.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 3160 Series Adapters - 10429840 - rpm - 06/08/2018 - iwl3160-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - The ASN.1 library used in GNUTLS - 424486 - rpm - 06/08/2018 - libtasn1 - CentOS - 4.10-1.el7 - - - noarch - The basic required files for the root user's directory - 599 - rpm - 06/08/2018 - rootfiles - CentOS - 8.1-11.el7 - - - noarch - The Mozilla CA root certificate bundle - 998895 - rpm - 06/08/2018 - ca-certificates - CentOS - 2017.2.20-71.el7 - - - noarch - Firmware for Intel® PRO/Wireless 1000 B/G/N network adaptors - 794036 - rpm - 06/08/2018 - iwl1000-firmware - CentOS - 39.31.5.1-62.el7 - - - x86_64 - A general purpose cryptography library with TLS implementation - 3200172 - rpm - 06/08/2018 - openssl-libs - CentOS - 1.0.2k-12.el7 - - - noarch - Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors - 309432 - rpm - 06/08/2018 - iwl4965-firmware - CentOS - 228.61.2.24-62.el7 - - - x86_64 - The non-admin shared libraries used by Kerberos 5 - 1988950 - rpm - 06/08/2018 - krb5-libs - CentOS - 1.15.1-18.el7 - - - noarch - Firmware for Intel® PRO/Wireless 5150 A/G/N network adaptors - 458860 - rpm - 06/08/2018 - iwl5150-firmware - CentOS - 8.24.2.2-62.el7 - - - x86_64 - Universally unique ID library - 20326 - rpm - 06/08/2018 - libuuid - CentOS - 2.23.2-52.el7 - - - (none) - gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>) - 0 - rpm - 06/08/2018 - gpg-pubkey - f4a80eb5-53a7ff4b - - - x86_64 - Libraries for applications using bzip2 - 70093 - rpm - 06/08/2018 - bzip2-libs - CentOS - 1.0.6-13.el7 - - - noarch - Small, simple, correct HTTP/1.1 client - 97210 - rpm - 06/08/2018 - perl-HTTP-Tiny - CentOS - 0.033-3.el7 - - - x86_64 - A library for editing typed command lines - 460464 - rpm - 06/08/2018 - readline - CentOS - 6.2-10.el7 - - - noarch - Look up Perl documentation in Pod format - 166910 - rpm - 06/08/2018 - perl-Pod-Perldoc - CentOS - 3.20-4.el7 - - - x86_64 - Library providing XML and HTML support - 1710062 - rpm - 06/08/2018 - libxml2 - CentOS - 2.9.1-6.el7_2.3 - - - noarch - Perl module for resolving POD escape sequences - 21091 - rpm - 06/08/2018 - perl-Pod-Escapes - CentOS - 1.04-292.el7 - - - x86_64 - An alternate posix capabilities library - 50510 - rpm - 06/08/2018 - libcap-ng - CentOS - 0.7.5-4.el7 - - - noarch - Print a usage message from embedded POD documentation - 44671 - rpm - 06/08/2018 - perl-Pod-Usage - CentOS - 1.63-3.el7 - - - x86_64 - A general-purpose cryptography library - 597727 - rpm - 06/08/2018 - libgcrypt - CentOS - 1.5.3-14.el7 - - - x86_64 - The libraries for the perl runtime - 1647272 - rpm - 06/08/2018 - perl-libs - CentOS - 5.16.3-292.el7 - - - x86_64 - A GNU archiving program - 689335 - rpm - 06/08/2018 - cpio - CentOS - 2.11-27.el7 - - - noarch - Implements default import method for modules - 56612 - rpm - 06/08/2018 - perl-Exporter - CentOS - 5.68-3.el7 - - - x86_64 - An XML parser library - 208315 - rpm - 06/08/2018 - expat - CentOS - 2.1.0-10.el7_3 - - - noarch - Efficiently compute time from local and GMT time - 44062 - rpm - 06/08/2018 - perl-Time-Local - CentOS - 1.2300-2.el7 - - - x86_64 - Powerful light-weight programming language - 640319 - rpm - 06/08/2018 - lua - CentOS - 5.1.4-15.el7 - - - noarch - Alternative warn and die for modules - 28276 - rpm - 06/08/2018 - perl-Carp - CentOS - 1.26-244.el7 - - - x86_64 - Displays where a particular program in your path is located - 76962 - rpm - 06/08/2018 - which - CentOS - 2.20-7.el7 - - - x86_64 - PathTools Perl module (Cwd, File::Spec) - 174131 - rpm - 06/08/2018 - perl-PathTools - CentOS - 3.40-5.el7 - - - x86_64 - A password-checking library - 209610 - rpm - 06/08/2018 - cracklib - CentOS - 2.9.0-11.el7 - - - noarch - Return name and handle of a temporary file safely - 158781 - rpm - 06/08/2018 - perl-File-Temp - CentOS - 0.23.01-3.el7 - - - x86_64 - A library of handy utility functions - 11986873 - rpm - 06/08/2018 - glib2 - CentOS - 2.54.2-2.el7 - - - x86_64 - Perl extension for sharing data structures between threads - 73972 - rpm - 06/08/2018 - perl-threads-shared - CentOS - 1.43-6.el7 - - - x86_64 - Libraries for applications using libmagic - 3077690 - rpm - 06/08/2018 - file-libs - CentOS - 5.11-33.el7 - - - x86_64 - Perl source filters - 148475 - rpm - 06/08/2018 - perl-Filter - CentOS - 1.49-3.el7 - - - x86_64 - A minimalistic Netlink library - 51847 - rpm - 06/08/2018 - libmnl - CentOS - 1.0.3-7.el7 - - - noarch - Extended processing of command line options - 134846 - rpm - 06/08/2018 - perl-Getopt-Long - CentOS - 2.40-3.el7 - - - x86_64 - The standard CrackLib dictionaries - 9389116 - rpm - 06/08/2018 - cracklib-dicts - CentOS - 2.9.0-11.el7 - - - noarch - Modules that calculate message digests - 28661 - rpm - 06/08/2018 - perl-Digest - CentOS - 1.17-245.el7 - - - x86_64 - A library for password generation and password quality checking - 332421 - rpm - 06/08/2018 - libpwquality - CentOS - 1.2.3-5.el7 - - - x86_64 - Basic networking tools - 938986 - rpm - 06/08/2018 - net-tools - CentOS - 2.0-0.22.20131004git.el7 - - - x86_64 - PEM file reader for Network Security Services (NSS) - 201219 - rpm - 06/08/2018 - nss-pem - CentOS - 1.0.3-4.el7 - - - x86_64 - Apache Portable Runtime library - 226686 - rpm - 07/09/2018 - apr - CentOS - 1.4.8-3.el7_4.1 - - - x86_64 - System NSS Initialization - 14066 - rpm - 06/08/2018 - nss-sysinit - CentOS - 3.34.0-4.el7 - - - x86_64 - Tools for use with the Apache HTTP Server - 172756 - rpm - 07/09/2018 - httpd-tools - CentOS - 2.4.6-80.el7.centos.1 - - - x86_64 - GnuPG IPC library - 155391 - rpm - 06/08/2018 - libassuan - CentOS - 2.1.0-3.el7 - - - x86_64 - Apache HTTP Server - 9817285 - rpm - 07/09/2018 - httpd - CentOS - 2.4.6-80.el7.centos.1 - - - x86_64 - LZMA compression utilities - 798130 - rpm - 06/08/2018 - xz - CentOS - 5.2.2-1.el7 - - - x86_64 - Lm_sensors core libraries - 61600 - rpm - 17/09/2018 - lm_sensors-libs - CentOS - 3.4.0-4.20160601gitf9185e5.el7 - - - x86_64 - GCC OpenMP v3.0 shared support library - 212144 - rpm - 06/08/2018 - libgomp - CentOS - 4.8.5-28.el7 - - - x86_64 - Stringify perl data structures, suitable for printing and eval - 99287 - rpm - 17/09/2018 - perl-Data-Dumper - CentOS - 2.145-3.el7 - - - x86_64 - Internationalized Domain Name support library - 630407 - rpm - 06/08/2018 - libidn - CentOS - 1.28-4.el7 - - - x86_64 - Ext2/3/4 filesystem-specific shared libraries - 363569 - rpm - 06/08/2018 - e2fsprogs-libs - CentOS - 1.42.9-11.el7 - - - x86_64 - Libraries for tcp_wrappers - 134602 - rpm - 06/08/2018 - tcp_wrappers-libs - CentOS - 7.6-77.el7 - - - x86_64 - Tools used for process and utmp management. - 109118 - rpm - 06/08/2018 - sysvinit-tools - CentOS - 2.88-14.dsf.el7 - - - x86_64 - A library for text mode user interfaces - 185196 - rpm - 06/08/2018 - newt - CentOS - 0.52.15-4.el7 - - - x86_64 - Extremely fast compression algorithm - 366872 - rpm - 06/08/2018 - lz4 - CentOS - 1.7.5-2.el7 - - - x86_64 - A GNU set of database routines which use extensible hashing - 184322 - rpm - 06/08/2018 - gdbm - CentOS - 1.10-8.el7 - - - x86_64 - An interpreted, interactive, object-oriented programming language - 80907 - rpm - 06/08/2018 - python - CentOS - 2.7.5-68.el7 - - - x86_64 - Utility to set/show the host name or domain name - 19449 - rpm - 06/08/2018 - hostname - CentOS - 3.13-3.el7 - - - x86_64 - SELinux python bindings for libselinux - 603236 - rpm - 06/08/2018 - libselinux-python - CentOS - 2.5-12.el7 - - - x86_64 - Python bindings for lzma - 190112 - rpm - 06/08/2018 - pyliblzma - CentOS - 0.5.3-11.el7 - - - x86_64 - Python bindings for newt - 116916 - rpm - 06/08/2018 - newt-python - CentOS - 0.52.15-4.el7 - - - x86_64 - Linux scheduler python bindings - 43123 - rpm - 06/08/2018 - python-schedutils - CentOS - 0.4-6.el7 - - - noarch - Config file reading, writing, and validation - 611855 - rpm - 06/08/2018 - python-configobj - CentOS - 4.7.2-7.el7 - - - x86_64 - Extended attributes library wrapper for Python - 63304 - rpm - 06/08/2018 - pyxattr - CentOS - 0.5.1-5.el7 - - - x86_64 - Tools for managing Linux kernel packet filtering capabilities - 1555941 - rpm - 06/08/2018 - iptables - CentOS - 1.4.21-24.el7 - - - x86_64 - Libraries for gettext - 1546952 - rpm - 06/08/2018 - gettext-libs - CentOS - 0.19.8.1-2.el7 - - - x86_64 - A text file browser similar to more, but better - 215376 - rpm - 06/08/2018 - less - CentOS - 458-9.el7 - - - x86_64 - Tools for the Network Security Services - 2061331 - rpm - 06/08/2018 - nss-tools - CentOS - 3.34.0-4.el7 - - - x86_64 - Manage Linux IP sets - 75482 - rpm - 06/08/2018 - ipset - CentOS - 6.29-1.el7 - - - x86_64 - Introspection system for GObject-based libraries - 834149 - rpm - 06/08/2018 - gobject-introspection - CentOS - 1.50.0-1.el7 - - - x86_64 - Command line tools for managing Berkeley DB databases - 326487 - rpm - 06/08/2018 - libdb-utils - CentOS - 5.3.21-24.el7 - - - x86_64 - Libraries to handle kernel module loading and unloading - 91800 - rpm - 06/08/2018 - kmod-libs - CentOS - 20-21.el7 - - - x86_64 - Rotates, compresses, removes and mails system log files - 106988 - rpm - 06/08/2018 - logrotate - CentOS - 3.8.6-15.el7 - - - x86_64 - The Advanced Linux Sound Architecture (ALSA) library - 1424769 - rpm - 06/08/2018 - alsa-lib - CentOS - 1.1.4.1-2.el7 - - - x86_64 - A library for integrity verification of FIPS validated modules - 38839 - rpm - 06/08/2018 - fipscheck - CentOS - 1.4.1-6.el7 - - - x86_64 - A library implementing the SSH2 protocol - 341782 - rpm - 06/08/2018 - libssh2 - CentOS - 1.4.3-10.el7_2.1 - - - x86_64 - A utility for getting files from remote servers (FTP, HTTP, and others) - 540259 - rpm - 06/08/2018 - curl - CentOS - 7.29.0-46.el7 - - - x86_64 - The RPM package management system - 2621900 - rpm - 06/08/2018 - rpm - CentOS - 4.11.3-32.el7 - - - x86_64 - A user and group account administration library - 1952592 - rpm - 06/08/2018 - libuser - CentOS - 0.60-9.el7 - - - noarch - A high-level cross-protocol url-grabber - 500670 - rpm - 06/08/2018 - python-urlgrabber - CentOS - 3.10-8.el7 - - - x86_64 - A minimal version of the VIM editor - 917640 - rpm - 06/08/2018 - vim-minimal - CentOS - 7.4.160-4.el7 - - - x86_64 - A GNU file archiving program - 2838271 - rpm - 06/08/2018 - tar - CentOS - 1.26-34.el7 - - - x86_64 - A GNU tool which simplifies the build process for users - 1160684 - rpm - 06/08/2018 - make - CentOS - 3.82-23.el7 - - - x86_64 - Collection of simple PIN or passphrase entry dialogs - 159929 - rpm - 06/08/2018 - pinentry - CentOS - 0.8.1-17.el7 - - - x86_64 - Fast compression and decompression library - 119521 - rpm - 06/08/2018 - snappy - CentOS - 1.1.0-3.el7 - - - x86_64 - Library for country/city/organization to IP address or hostname mapping - 2905020 - rpm - 06/08/2018 - GeoIP - CentOS - 1.5.0-11.el7 - - - x86_64 - Create a tree of hardlinks - 16545 - rpm - 06/08/2018 - hardlink - CentOS - 1.0-19.el7 - - - x86_64 - Shared library for sg3_utils - 184551 - rpm - 06/08/2018 - sg3_utils-libs - CentOS - 1.37-12.el7 - - - x86_64 - Library for Neighbor Discovery Protocol - 75612 - rpm - 06/08/2018 - libndp - CentOS - 1.2-7.el7 - - - x86_64 - Library for writing UNIX daemons - 62045 - rpm - 06/08/2018 - libdaemon - CentOS - 0.14-7.el7 - - - x86_64 - Linux-native asynchronous I/O access library - 39182 - rpm - 06/08/2018 - libaio - CentOS - 0.3.109-13.el7 - - - x86_64 - String library, very low memory overhead, simple to import - 285943 - rpm - 06/08/2018 - ustr - CentOS - 1.0.4-16.el7 - - - x86_64 - Utilities for managing accounts and shadow password files - 3534490 - rpm - 06/08/2018 - shadow-utils - CentOS - 4.1.5.1-24.el7 - - - x86_64 - System and process monitoring utilities - 759252 - rpm - 06/08/2018 - procps-ng - CentOS - 3.3.10-17.el7 - - - x86_64 - Device mapper utility - 338922 - rpm - 06/08/2018 - device-mapper - CentOS - 1.02.146-4.el7 - - - x86_64 - Initramfs generator using udev - 897713 - rpm - 06/08/2018 - dracut - CentOS - 033-535.el7 - - - x86_64 - Device-mapper shared library - 400551 - rpm - 06/08/2018 - device-mapper-libs - CentOS - 1.02.146-4.el7 - - - x86_64 - Libraries to handle compiled objects - 747527 - rpm - 06/08/2018 - elfutils-libs - CentOS - 0.170-4.el7 - - - x86_64 - Libraries for accessing D-BUS - 362584 - rpm - 06/08/2018 - dbus-libs - CentOS - 1.10.24-7.el7 - - - x86_64 - D-BUS message bus - 595223 - rpm - 06/08/2018 - dbus - CentOS - 1.10.24-7.el7 - - - x86_64 - An authorization framework - 487578 - rpm - 06/08/2018 - polkit - CentOS - 0.112-14.el7 - - - x86_64 - Network monitoring tools including ping - 343497 - rpm - 06/08/2018 - iputils - CentOS - 20160308-10.el7 - - - x86_64 - SysV tools for systemd - 3979 - rpm - 06/08/2018 - systemd-sysv - CentOS - 219-57.el7 - - - x86_64 - Support tools for GRUB. - 685843 - rpm - 06/08/2018 - grub2-tools-minimal - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Probes disks on the system for installed operating systems - 97946 - rpm - 06/08/2018 - os-prober - CentOS - 1.58-9.el7 - - - x86_64 - Hardware identification and configuration data - 13422381 - rpm - 06/08/2018 - hwdata - CentOS - 0.252-8.8.el7 - - - x86_64 - Cron daemon for executing programs at set times - 220396 - rpm - 06/08/2018 - cronie - CentOS - 1.4.11-19.el7 - - - x86_64 - Shared libraries used by ISC dhcp client and server - 149176 - rpm - 06/08/2018 - dhcp-libs - CentOS - 4.2.5-68.el7.centos - - - x86_64 - An open source implementation of SSH protocol versions 1 and 2 - 1995364 - rpm - 06/08/2018 - openssh - CentOS - 7.4p1-16.el7 - - - x86_64 - Provides the ISC DHCP client daemon and dhclient-script - 486155 - rpm - 06/08/2018 - dhclient - CentOS - 4.2.5-68.el7.centos - - - x86_64 - PCI access library - 45649 - rpm - 06/08/2018 - libpciaccess - CentOS - 0.14-1.el7 - - - x86_64 - Support tools for GRUB. - 6328356 - rpm - 06/08/2018 - grub2-tools-extra - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - SELinux policy configuration - 5920 - rpm - 06/08/2018 - selinux-policy - CentOS - 3.13.1-192.el7 - - - x86_64 - Shared libraries for lvm2 - 3683188 - rpm - 06/08/2018 - lvm2-libs - CentOS - 2.02.177-4.el7 - - - x86_64 - Network connection manager and user applications - 5234794 - rpm - 06/08/2018 - NetworkManager - CentOS - 1.10.2-13.el7 - - - noarch - Firmware for several ALSA-supported sound cards - 9572469 - rpm - 06/08/2018 - alsa-firmware - CentOS - 1.0.28-2.el7 - - - x86_64 - Ethernet Bridge frame table administration tool - 350763 - rpm - 06/08/2018 - ebtables - CentOS - 2.0.10-16.el7 - - - x86_64 - GLib bindings for D-Bus - 301237 - rpm - 06/08/2018 - dbus-glib - CentOS - 0.100-7.el7 - - - noarch - Convenience functions for dbus services - 76410 - rpm - 06/08/2018 - python-slip-dbus - CentOS - 0.4.0-4.el7 - - - noarch - A libudev binding - 241404 - rpm - 06/08/2018 - python-pyudev - CentOS - 0.15-9.el7 - - - x86_64 - Plymouth related scripts - 22795 - rpm - 06/08/2018 - plymouth-scripts - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - String handling essentials library - 44322 - rpm - 06/08/2018 - libestr - CentOS - 0.1.9-2.el7 - - - x86_64 - A JSON implementation in C - 57201 - rpm - 06/08/2018 - libfastjson - CentOS - 0.99.4-2.el7 - - - x86_64 - A pipeline manipulation library - 142521 - rpm - 06/08/2018 - libpipeline - CentOS - 1.2.3-3.el7 - - - x86_64 - Detect if we are running in a virtual machine - 45720 - rpm - 06/08/2018 - virt-what - CentOS - 1.18-4.el7 - - - x86_64 - Utility for secure communication and data storage - 6644890 - rpm - 06/08/2018 - gnupg2 - CentOS - 2.0.22-4.el7 - - - x86_64 - Python bindings for apps which will manipulate RPM packages - 149714 - rpm - 06/08/2018 - rpm-python - CentOS - 4.11.3-32.el7 - - - x86_64 - Python module for working with OpenPGP messages - 197501 - rpm - 06/08/2018 - pygpgme - CentOS - 0.3-9.el7 - - - noarch - RPM package installer/updater/manager - 5814102 - rpm - 06/08/2018 - yum - CentOS - 3.4.3-158.el7.centos - - - x86_64 - Tools for configuring the console (keyboard, virtual terminals, etc.) - 1380661 - rpm - 06/08/2018 - kbd - CentOS - 1.15.5-13.el7 - - - x86_64 - Tools for searching and reading man pages - 1874275 - rpm - 06/08/2018 - man-db - CentOS - 2.6.3-9.el7 - - - x86_64 - Enhanced system logging and kernel message trapping daemon - 2001916 - rpm - 06/08/2018 - rsyslog - CentOS - 8.24.0-16.el7 - - - noarch - A firewall daemon with D-Bus interface providing a dynamic firewall - 1853385 - rpm - 06/08/2018 - firewalld - CentOS - 0.4.4.4-14.el7 - - - x86_64 - GCC version 4.8 shared support library - 179272 - rpm - 06/08/2018 - libgcc - CentOS - 4.8.5-28.el7 - - - x86_64 - NetworkManager curses-based UI - 262429 - rpm - 06/08/2018 - NetworkManager-tui - CentOS - 1.10.2-13.el7 - - - noarch - Modules used to build custom grub images - 2309702 - rpm - 06/08/2018 - grub2-pc-modules - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - SELinux targeted base policy - 19279106 - rpm - 06/08/2018 - selinux-policy-targeted - CentOS - 3.13.1-192.el7 - - - noarch - Firewalld directory layout and rpm macros - 239 - rpm - 06/08/2018 - firewalld-filesystem - CentOS - 0.4.4.4-14.el7 - - - x86_64 - The kexec/kdump userspace component. - 775491 - rpm - 06/08/2018 - kexec-tools - CentOS - 2.0.15-13.el7 - - - noarch - Data for kbd package - 2397086 - rpm - 06/08/2018 - kbd-misc - CentOS - 1.15.5-13.el7 - - - x86_64 - An open source SSH client applications - 2651616 - rpm - 06/08/2018 - openssh-clients - CentOS - 7.4p1-16.el7 - - - x86_64 - The GNU Bourne Again shell - 3667709 - rpm - 06/08/2018 - bash - CentOS - 4.2.46-30.el7 - - - x86_64 - Command line tool for setting up authentication from network services - 2316601 - rpm - 06/08/2018 - authconfig - CentOS - 6.2.8-30.el7 - - - x86_64 - Freebl library for the Network Security Services - 561372 - rpm - 06/08/2018 - nss-softokn-freebl - CentOS - 3.34.0-2.el7 - - - x86_64 - Postfix Mail Transport Agent - 12773475 - rpm - 06/08/2018 - postfix - CentOS - 2.10.1-6.el7 - - - x86_64 - Ncurses support utilities - 439378 - rpm - 06/08/2018 - ncurses - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Tool to transform and deploy CPU microcode update for x86. - 1600168 - rpm - 06/08/2018 - microcode_ctl - CentOS - 2.1-29.el7 - - - x86_64 - The basic directory layout for a Linux system - 0 - rpm - 06/08/2018 - filesystem - CentOS - 3.2-25.el7 - - - x86_64 - QEMU guest agent - 510398 - rpm - 06/08/2018 - qemu-guest-agent - CentOS - 2.8.0-2.el7 - - - x86_64 - The GNU libc libraries - 14223248 - rpm - 06/08/2018 - glibc - CentOS - 2.17-222.el7 - - - x86_64 - An NTP client/server - 487489 - rpm - 06/08/2018 - chrony - CentOS - 3.2-2.el7 - - - x86_64 - Netscape Portable Runtime - 287560 - rpm - 06/08/2018 - nspr - CentOS - 4.17.0-1.el7 - - - x86_64 - dracut configuration to turn on rescue image generation - 4067 - rpm - 06/08/2018 - dracut-config-rescue - CentOS - 033-535.el7 - - - x86_64 - Common error description library - 60417 - rpm - 06/08/2018 - libcom_err - CentOS - 1.42.9-11.el7 - - - x86_64 - Utilities for devices that use SCSI command sets - 1738032 - rpm - 06/08/2018 - sg3_utils - CentOS - 1.37-12.el7 - - - x86_64 - Ncurses libraries - 1028216 - rpm - 06/08/2018 - ncurses-libs - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Allows restricted root access for specified users - 4055906 - rpm - 06/08/2018 - sudo - CentOS - 1.8.19p2-13.el7 - - - x86_64 - C library for parsing command line parameters - 88516 - rpm - 06/08/2018 - popt - CentOS - 1.13-16.el7 - - - x86_64 - Userspace programs for btrfs - 4142307 - rpm - 06/08/2018 - btrfs-progs - CentOS - 4.9.1-1.el7 - - - x86_64 - SELinux binary policy manipulation library - 686568 - rpm - 06/08/2018 - libsepol - CentOS - 2.5-8.1.el7 - - - x86_64 - Shared library for interfacing with sysfs - 149365 - rpm - 06/08/2018 - libsysfs - CentOS - 2.1.0-16.el7 - - - x86_64 - Dynamic library for access control list support - 37056 - rpm - 06/08/2018 - libacl - CentOS - 2.2.51-14.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters - 811140 - rpm - 06/08/2018 - iwl105-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - A portable foreign function interface library - 47766 - rpm - 06/08/2018 - libffi - CentOS - 3.0.13-18.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 2000 Series Adapters - 817336 - rpm - 06/08/2018 - iwl2000-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - SELinux library and simple utilities - 217874 - rpm - 06/08/2018 - libselinux - CentOS - 2.5-12.el7 - - - noarch - Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors - 1160404 - rpm - 06/08/2018 - iwl5000-firmware - CentOS - 8.83.5.1_1-62.el7 - - - x86_64 - Pattern matching utilities - 1195131 - rpm - 06/08/2018 - grep - CentOS - 2.20-3.el7 - - - noarch - Firmware for the Hauppauge PVR 250/350/150/500/USB2 model series - 857256 - rpm - 06/08/2018 - ivtv-firmware - CentOS - 20080701-26.el7 - - - x86_64 - Key utilities library - 42138 - rpm - 06/08/2018 - keyutils-libs - CentOS - 1.5.8-3.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters - 459032 - rpm - 06/08/2018 - iwl100-firmware - CentOS - 39.31.5.1-62.el7 - - - x86_64 - Main loop abstraction library - 23060 - rpm - 06/08/2018 - libverto - CentOS - 0.2.5-4.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters - 1242884 - rpm - 06/08/2018 - iwl6000g2a-firmware - CentOS - 17.168.5.3-62.el7 - - - x86_64 - System trust module from p11-kit - 437261 - rpm - 06/08/2018 - p11-kit-trust - CentOS - 0.23.5-3.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 7265 Series Adapters - 53043488 - rpm - 06/08/2018 - iwl7265-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - CentOS Linux release file - 40173 - rpm - 06/08/2018 - centos-release - CentOS - 7-5.1804.el7.centos - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6000 AGN Adapter - 576068 - rpm - 06/08/2018 - iwl6000-firmware - CentOS - 9.221.4.1-62.el7 - - - x86_64 - A set of basic GNU tools commonly used in shell scripts - 14588989 - rpm - 06/08/2018 - coreutils - CentOS - 8.22-21.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6030 Series Adapters - 1261132 - rpm - 06/08/2018 - iwl6000g2b-firmware - CentOS - 17.168.5.2-62.el7 - - - x86_64 - Libraries for decoding LZMA compression - 239967 - rpm - 06/08/2018 - xz-libs - CentOS - 5.2.2-1.el7 - - - (none) - gpg(Rudder Project (RPM release key) <security@rudder-project.org>) - 0 - rpm - 06/08/2018 - gpg-pubkey - 6f07d355-509cdb91 - - - x86_64 - Block device ID library - 261805 - rpm - 06/08/2018 - libblkid - CentOS - 2.23.2-52.el7 - - - noarch - Establish an ISA relationship with base classes at compile time - 8141 - rpm - 06/08/2018 - perl-parent - CentOS - 0.225-244.el7 - - - x86_64 - The Berkeley DB database library for C - 1858008 - rpm - 06/08/2018 - libdb - CentOS - 5.3.21-24.el7 - - - noarch - Format POD source into various output formats - 287679 - rpm - 06/08/2018 - perl-podlators - CentOS - 2.5.1-3.el7 - - - x86_64 - Library to read and write ELF files - 936931 - rpm - 06/08/2018 - elfutils-libelf - CentOS - 0.170-4.el7 - - - noarch - Parse text into an array of tokens or array of arrays - 16431 - rpm - 06/08/2018 - perl-Text-ParseWords - CentOS - 3.29-4.el7 - - - x86_64 - Library for error values used by GnuPG components - 350865 - rpm - 06/08/2018 - libgpg-error - CentOS - 1.12-3.el7 - - - x86_64 - Character encodings in Perl - 10176350 - rpm - 06/08/2018 - perl-Encode - CentOS - 2.51-7.el7 - - - x86_64 - Dynamic library for libaudit - 256226 - rpm - 06/08/2018 - audit-libs - CentOS - 2.8.1-3.el7 - - - x86_64 - Macros for rpmbuild - 5134 - rpm - 06/08/2018 - perl-macros - CentOS - 5.16.3-292.el7 - - - x86_64 - The GNU data compression program - 250440 - rpm - 06/08/2018 - gzip - CentOS - 1.5-10.el7 - - - x86_64 - Persistence for Perl data structures - 181031 - rpm - 06/08/2018 - perl-Storable - CentOS - 2.45-3.el7 - - - x86_64 - Convenience library for kernel netlink sockets - 864984 - rpm - 06/08/2018 - libnl3 - CentOS - 3.2.28-4.el7 - - - noarch - Perl pragma to declare constants - 26364 - rpm - 06/08/2018 - perl-constant - CentOS - 1.27-2.el7 - - - x86_64 - Library that implements an embeddable SQL database engine - 814231 - rpm - 06/08/2018 - sqlite - CentOS - 3.7.17-8.el7 - - - x86_64 - Networking constants and support functions - 114497 - rpm - 06/08/2018 - perl-Socket - CentOS - 2.010-4.el7 - - - x86_64 - The GNU versions of find utilities (find and xargs) - 1855626 - rpm - 06/08/2018 - findutils - CentOS - 4.5.11-5.el7 - - - x86_64 - High resolution alarm, sleep, gettimeofday, interval timers - 94069 - rpm - 06/08/2018 - perl-Time-HiRes - CentOS - 1.9725-3.el7 - - - x86_64 - A GNU collection of diff utilities - 1065157 - rpm - 06/08/2018 - diffutils - CentOS - 3.3-4.el7 - - - x86_64 - A selection of general-utility scalar and list subroutines - 67994 - rpm - 06/08/2018 - perl-Scalar-List-Utils - CentOS - 1.27-248.el7 - - - x86_64 - Device mounting library - 273965 - rpm - 06/08/2018 - libmount - CentOS - 2.23.2-52.el7 - - - noarch - Create or remove directory trees - 50067 - rpm - 06/08/2018 - perl-File-Path - CentOS - 2.09-2.el7 - - - x86_64 - Shared MIME information database - 2379317 - rpm - 06/08/2018 - shared-mime-info - CentOS - 1.8-4.el7 - - - x86_64 - Perl interpreter-based threads - 98615 - rpm - 06/08/2018 - perl-threads - CentOS - 1.87-4.el7 - - - x86_64 - A utility for determining file types - 67368 - rpm - 06/08/2018 - file - CentOS - 5.11-33.el7 - - - noarch - Framework for parsing POD documentation - 538320 - rpm - 06/08/2018 - perl-Pod-Simple - CentOS - 3.28-4.el7 - - - x86_64 - A CSS2 parsing library - 320686 - rpm - 06/08/2018 - libcroco - CentOS - 0.6.11-1.el7 - - - x86_64 - Practical Extraction and Report Language - 23544135 - rpm - 06/08/2018 - perl - CentOS - 5.16.3-292.el7 - - - x86_64 - An extensible library which provides authentication for applications - 2630324 - rpm - 06/08/2018 - pam - CentOS - 1.1.8-22.el7 - - - x86_64 - YAML 1.1 parser and emitter written in C - 132993 - rpm - 06/08/2018 - libyaml - CentOS - 0.1.4-11.el7_0 - - - x86_64 - Network Security Services Softoken Module - 1122430 - rpm - 06/08/2018 - nss-softokn - CentOS - 3.34.0-2.el7 - - - x86_64 - Configuration management and audit tool - agent - 32169247 - rpm - 06/08/2018 - rudder-agent - Normation - 4.3.3.release-1.EL.7 - - - x86_64 - Network Security Services - 2474103 - rpm - 06/08/2018 - nss - CentOS - 3.34.0-4.el7 - - - x86_64 - Apache Portable Runtime Utility library - 198751 - rpm - 07/09/2018 - apr-util - CentOS - 1.5.2-6.el7 - - - x86_64 - Command line interface utils for libnl3 - 706246 - rpm - 06/08/2018 - libnl3-cli - CentOS - 3.2.28-4.el7 - - - noarch - Helper application and MIME type associations for file types - 63360 - rpm - 07/09/2018 - mailcap - CentOS - 2.1.41-2.el7 - - - x86_64 - Shared libraries needed by applications which use Cyrus SASL - 396911 - rpm - 06/08/2018 - cyrus-sasl-lib - CentOS - 2.1.26-23.el7 - - - x86_64 - The NET-SNMP runtime client libraries - 3067528 - rpm - 17/09/2018 - net-snmp-libs - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - Parts of the groff formatting system required to display manual pages - 3453946 - rpm - 06/08/2018 - groff-base - CentOS - 1.22.2-8.el7 - - - x86_64 - The NET-SNMP runtime agent libraries - 2152296 - rpm - 17/09/2018 - net-snmp-agent-libs - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - GNU Unicode string library - 1145761 - rpm - 06/08/2018 - libunistring - CentOS - 0.9.3-9.el7 - - - x86_64 - A collection of SNMP protocol tools and libraries - 902986 - rpm - 17/09/2018 - net-snmp - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - The NetBSD Editline library - 244257 - rpm - 06/08/2018 - libedit - CentOS - 3.0-12.20121213cvs.el7 - - - x86_64 - Netfilter netlink userspace library - 47123 - rpm - 06/08/2018 - libnfnetlink - CentOS - 1.0.1-4.el7 - - - x86_64 - Data compression library with very fast (de)compression - 165360 - rpm - 06/08/2018 - lzo - CentOS - 2.06-8.el7 - - - x86_64 - The shared library for the S-Lang extension language - 1881912 - rpm - 06/08/2018 - slang - CentOS - 2.2.4-11.el7 - - - x86_64 - Settings tool for Ethernet NICs - 349848 - rpm - 06/08/2018 - ethtool - CentOS - 4.8-7.el7 - - - x86_64 - C library for encoding, decoding and manipulating JSON data - 74998 - rpm - 06/08/2018 - jansson - CentOS - 2.10-1.el7 - - - x86_64 - Runtime libraries for Python - 24713315 - rpm - 06/08/2018 - python-libs - CentOS - 2.7.5-68.el7 - - - noarch - Module to simplify usage of decorators - 72291 - rpm - 06/08/2018 - python-decorator - CentOS - 3.4.0-3.el7 - - - x86_64 - Linux PCI library - 72691 - rpm - 06/08/2018 - pciutils-libs - CentOS - 3.5.1-3.el7 - - - noarch - Miscellaneous convenience, extension and workaround code for Python - 61353 - rpm - 06/08/2018 - python-slip - CentOS - 0.4.0-4.el7 - - - noarch - Linux /proc abstraction classes - 96639 - rpm - 06/08/2018 - python-linux-procfs - CentOS - 0.4.9-3.el7 - - - x86_64 - A fast metadata parser for yum - 58789 - rpm - 06/08/2018 - yum-metadata-parser - CentOS - 1.1.4-10.el7 - - - x86_64 - Python bindings for apps which will manipulate perf events - 331917 - rpm - 06/08/2018 - python-perf - CentOS - 3.10.0-862.el7 - - - noarch - Python Module for Accessing and Modifying Configuration Data in INI files - 115166 - rpm - 06/08/2018 - python-iniparse - CentOS - 0.4-9.el7 - - - x86_64 - Netfilter conntrack userspace library - 143566 - rpm - 06/08/2018 - libnetfilter_conntrack - CentOS - 1.0.6-1.el7_3 - - - x86_64 - Advanced IP routing and network device configuration tools - 1788731 - rpm - 06/08/2018 - iproute - CentOS - 4.11.0-14.el7 - - - x86_64 - GNU libraries and utilities for producing multi-lingual messages - 5029340 - rpm - 06/08/2018 - gettext - CentOS - 0.19.8.1-2.el7 - - - x86_64 - Library for controlling team network device - 100852 - rpm - 06/08/2018 - libteam - CentOS - 1.27-4.el7 - - - x86_64 - Shared library providing the IP sets functionality - 270690 - rpm - 06/08/2018 - ipset-libs - CentOS - 6.29-1.el7 - - - x86_64 - A tool for determining compilation options - 105522 - rpm - 06/08/2018 - pkgconfig - CentOS - 0.27.1-4.el7 - - - x86_64 - Python 2 bindings for GObject Introspection base package - 1123114 - rpm - 06/08/2018 - python-gobject-base - CentOS - 3.22.0-1.el7_4.1 - - - x86_64 - Command line tool for updating bootloader configs - 127346 - rpm - 06/08/2018 - grubby - CentOS - 8.28-23.el7 - - - noarch - Firmware files used by the Linux kernel - 177359870 - rpm - 06/08/2018 - linux-firmware - CentOS - 20180220-62.git6d51311.el7 - - - x86_64 - A GNU collection of binary utilities - 25148535 - rpm - 06/08/2018 - binutils - CentOS - 2.27-27.base.el7 - - - noarch - CentOS-related icons and pictures - 22548401 - rpm - 06/08/2018 - centos-logos - CentOS - 70.0.6-3.el7.centos - - - x86_64 - Library files for fipscheck - 11466 - rpm - 06/08/2018 - fipscheck-lib - CentOS - 1.4.1-6.el7 - - - x86_64 - A library for getting files from web servers - 435192 - rpm - 06/08/2018 - libcurl - CentOS - 7.29.0-46.el7 - - - x86_64 - Libraries for manipulating RPM packages - 611384 - rpm - 06/08/2018 - rpm-libs - CentOS - 4.11.3-32.el7 - - - x86_64 - LDAP support libraries - 1037307 - rpm - 06/08/2018 - openldap - CentOS - 2.4.44-13.el7 - - - x86_64 - A Python interface to libcurl - 241513 - rpm - 06/08/2018 - python-pycurl - CentOS - 7.19.0-19.el7 - - - x86_64 - The shared libraries required for MariaDB/MySQL clients - 4614814 - rpm - 06/08/2018 - mariadb-libs - CentOS - 5.5.56-2.el7 - - - x86_64 - SELinux libselinux utilies - 172738 - rpm - 06/08/2018 - libselinux-utils - CentOS - 2.5-12.el7 - - - x86_64 - Access control list utilities - 201225 - rpm - 06/08/2018 - acl - CentOS - 2.2.51-14.el7 - - - x86_64 - Utilities from the general purpose cryptography library with TLS implementation - 833707 - rpm - 06/08/2018 - openssl - CentOS - 1.0.2k-12.el7 - - - x86_64 - JavaScript interpreter and libraries - 4045213 - rpm - 06/08/2018 - mozjs17 - CentOS - 17.0.0-20.el7 - - - x86_64 - Command line interface parsing library - 73009 - rpm - 06/08/2018 - libss - CentOS - 1.42.9-11.el7 - - - x86_64 - Libraries for working with the DNS protocol - 1816016 - rpm - 06/08/2018 - bind-libs-lite - CentOS - 9.9.4-61.el7 - - - x86_64 - A free and portable font rendering engine - 898651 - rpm - 06/08/2018 - freetype - CentOS - 2.4.11-15.el7 - - - x86_64 - Libraries for the kernels-tools - 18640 - rpm - 06/08/2018 - kernel-tools-libs - CentOS - 3.10.0-862.el7 - - - x86_64 - Enhanced seccomp library - 304131 - rpm - 06/08/2018 - libseccomp - CentOS - 2.3.1-3.el7 - - - x86_64 - QR Code encoding library - Shared libraries - 126732 - rpm - 06/08/2018 - qrencode-libs - CentOS - 3.4.1-3.el7 - - - x86_64 - Device-mapper Persistent Data Tools - 1294094 - rpm - 06/08/2018 - device-mapper-persistent-data - CentOS - 0.7.3-3.el7 - - - x86_64 - SELinux binary policy manipulation library - 302369 - rpm - 06/08/2018 - libsemanage - CentOS - 2.5-11.el7 - - - x86_64 - A privileged helper for utmp/wtmp updates - 49749 - rpm - 06/08/2018 - libutempter - CentOS - 1.1.6-4.el7 - - - x86_64 - Partition device manager for device-mapper devices - 41363 - rpm - 06/08/2018 - kpartx - CentOS - 0.4.9-119.el7 - - - x86_64 - A collection of basic system utilities - 8642769 - rpm - 06/08/2018 - util-linux - CentOS - 2.23.2-52.el7 - - - x86_64 - Linux kernel module management utilities - 243127 - rpm - 06/08/2018 - kmod - CentOS - 20-21.el7 - - - x86_64 - Cryptsetup shared library - 969908 - rpm - 06/08/2018 - cryptsetup-libs - CentOS - 1.7.4-4.el7 - - - x86_64 - systemd libraries - 1263560 - rpm - 06/08/2018 - systemd-libs - CentOS - 219-57.el7 - - - x86_64 - A System and Service Manager - 24389374 - rpm - 06/08/2018 - systemd - CentOS - 219-57.el7 - - - noarch - Default yama attach scope sysctl setting - 1810 - rpm - 06/08/2018 - elfutils-default-yama-scope - CentOS - 0.170-4.el7 - - - x86_64 - Rules for polkit to add compatibility with pklocalauthority - 82409 - rpm - 06/08/2018 - polkit-pkla-compat - CentOS - 0.1-4.el7 - - - x86_64 - The inittab file and the /etc/init.d scripts - 1519968 - rpm - 06/08/2018 - initscripts - CentOS - 9.49.41-1.el7 - - - x86_64 - Device-mapper event daemon shared library - 50636 - rpm - 06/08/2018 - device-mapper-event-libs - CentOS - 1.02.146-4.el7 - - - x86_64 - SELinux policy core utilities - 5161496 - rpm - 06/08/2018 - policycoreutils - CentOS - 2.5-22.el7 - - - x86_64 - Support tools for GRUB. - 10075694 - rpm - 06/08/2018 - grub2-tools - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Utility for running regular jobs - 41611 - rpm - 06/08/2018 - cronie-anacron - CentOS - 1.4.11-19.el7 - - - noarch - Root crontab files used to schedule the execution of programs - 3700 - rpm - 06/08/2018 - crontabs - CentOS - 1.11-6.20121102git.el7 - - - x86_64 - Libraries for adding NetworkManager support to applications (new API). - 6393187 - rpm - 06/08/2018 - NetworkManager-libnm - CentOS - 1.10.2-13.el7 - - - x86_64 - Common files used by ISC dhcp client and server - 245529 - rpm - 06/08/2018 - dhcp-common - CentOS - 4.2.5-68.el7.centos - - - x86_64 - dracut modules to build a dracut initramfs with network support - 147466 - rpm - 06/08/2018 - dracut-network - CentOS - 033-535.el7 - - - x86_64 - Direct Rendering Manager runtime library - 366342 - rpm - 06/08/2018 - libdrm - CentOS - 2.4.83-2.el7 - - - x86_64 - Bootloader with support for Linux, Multiboot, and more - 0 - rpm - 06/08/2018 - grub2-pc - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Device-mapper event daemon - 42786 - rpm - 06/08/2018 - device-mapper-event - CentOS - 1.02.146-4.el7 - - - x86_64 - WPA/WPA2/IEEE 802.1X Supplicant - 4411276 - rpm - 06/08/2018 - wpa_supplicant - CentOS - 2.6-9.el7 - - - x86_64 - A helper program to download firmware into FX and FX2 EZ-USB devices - 42589 - rpm - 06/08/2018 - fxload - CentOS - 2002_04_11-16.el7 - - - x86_64 - ALSA tools for uploading firmware to some soundcards - 86387 - rpm - 06/08/2018 - alsa-tools-firmware - CentOS - 1.1.0-1.el7 - - - x86_64 - Team network device control daemon - 278067 - rpm - 06/08/2018 - teamd - CentOS - 1.27-4.el7 - - - x86_64 - D-Bus Python Bindings - 848122 - rpm - 06/08/2018 - dbus-python - CentOS - 1.1.1-9.el7 - - - noarch - Python2 bindings for firewalld - 1859178 - rpm - 06/08/2018 - python-firewall - CentOS - 0.4.4.4-14.el7 - - - x86_64 - Plymouth core libraries - 222848 - rpm - 06/08/2018 - plymouth-core-libs - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - Graphical Boot Animation and Logger - 233311 - rpm - 06/08/2018 - plymouth - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - List SCSI devices (or hosts) and associated information - 90475 - rpm - 06/08/2018 - lsscsi - CentOS - 0.27-6.el7 - - - x86_64 - libnuma libraries - 50752 - rpm - 06/08/2018 - numactl-libs - CentOS - 2.0.9-7.el7 - - - x86_64 - Tool to analyse BIOS DMI data - 247119 - rpm - 06/08/2018 - dmidecode - CentOS - 3.0-5.el7 - - - x86_64 - The GNU Portable Threads library - 267851 - rpm - 06/08/2018 - pth - CentOS - 2.0.7-23.el7 - - - x86_64 - Libraries for building and signing RPM packages - 166664 - rpm - 06/08/2018 - rpm-build-libs - CentOS - 4.11.3-32.el7 - - - x86_64 - GnuPG Made Easy - high level crypto API - 547534 - rpm - 06/08/2018 - gpgme - CentOS - 1.3.2-5.el7 - - - noarch - Yum plugin which chooses fastest repository from a mirrorlist - 53897 - rpm - 06/08/2018 - yum-plugin-fastestmirror - CentOS - 1.1.31-45.el7 - - - noarch - Legacy data for kbd package - 503608 - rpm - 06/08/2018 - kbd-legacy - CentOS - 1.15.5-13.el7 - - - noarch - A dynamic adaptive system tuning daemon - 739225 - rpm - 06/08/2018 - tuned - CentOS - 2.9.0-1.el7 - - - x86_64 - IRQ balancing daemon - 71251 - rpm - 06/08/2018 - irqbalance - CentOS - 1.0.7-11.el7 - - - x86_64 - Utilities for the IBM Power Linux RAID adapters - 955982 - rpm - 06/08/2018 - iprutils - CentOS - 2.4.15.1-1.el7 - - - Virtual - 10485 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.16.3 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - wz--n- - 0 - 2 - 1 - 9659 - 4.19 - centos_prod-www-01 - Yj8ggw-QQwn-34vy-BPHp-kyln-0sLx-Cs4Xkc - - - prod-www-01-2018-08-06-18-12-29 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs.sign deleted file mode 100644 index b2ff48b9383..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/prod-www-01-4b76c25e-4b08-44d6-b630-29fa77f60c94.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=2cb0d07e6d07a73fe61e354e8500cdd5b1942978e83d3f38f0751f0a444d20482e52c871e650c998192c3109a0b990a88703956afd931d7567be494bf4b1532f4320430ece70941e8f32c84d57558c2ae8c99def0605e147246ca7d68114503d3f5435bf261acd75453c2478649a0410cf52eb2405effc771556325cf4d484cab777778526fd888d4c9417a62f7154b37f4f6f5ce87c01d902512f3bab204174056750aef9baca84db9502c240e427346256249a6779adb5909af713265d4b7f32e98f0e2e77341e8599d82140bde3bf655e21254f634c75dd0cb1735e9512ee17083b722191b12f0eba5aa031e4f24229c9e6234aeebeac08e6d20d4fc61bf94d2ba08f32b16e6c3247b7d49228568864c5004462be06399a5b5e2a29b2e2b8340644466e01c8ccbca16fd43c3f4248c19d3c9864d34ae1c85c35a74492b28d81adc4e0456f1621843bfa85b73802a788a125d51230fe0531662bbfa2a47f5e13cfb0ccceebe558255df6e1e58a8e75ef4ae47ac5f0fc7b2e566107aeda1ba5ffcca2cc19626e00980f037273b2987f1adac30f243db386a60abcf97b75a6a12077eb81099731214df0b3c8be804cfb78d2a983be4f7a45f2e2f6636d4bdce5dd772d93af498fef8bc864858c64360d60337bb603837bf9526122da53171b8c4267ab69c56b907dffa98d5bf2162d1b67b293f66e6bf9904ba19ae30d89bcf4 -hostname=prod-www-01 -keydate=2018-08-06 18:12:18.437508380 +0200 -keyid=B1185BBD diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs deleted file mode 100644 index 73ec2bfa1aa..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs +++ /dev/null @@ -1,4693 +0,0 @@ - - - - - - -www-data -sync -munin -list -postfix -mcerda -irc -libuuid -daemon -news -syslog -gnats -man -sys -nobody -uucp -landscape -lp -bin -proxy -sshd -backup -mail -games - - - 2019-09-13 01:16:42 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371SB PIIX3 USB [Natoma/Triton II] - uhci_hcd - Intel Corporation - 82371SB PIIX3 USB [Natoma/Triton II] - 0c03 - 00:01.2 - 7020 - 01 - USB controller - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - GD 5446 - Cirrus Logic - GD 5446 - 0300 - 00:02.0 - 00b8 - VGA compatible controller - 1013 - - - 82540EM Gigabit Ethernet Controller - e1000 - Intel Corporation - 82540EM Gigabit Ethernet Controller - 0200 - 00:03.0 - 100e - 03 - Ethernet controller - 8086 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:04.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 0500 - 00:05.0 - 1002 - RAM memory - 1af4 - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext4 - 5668 - 7e3a0e0e-9faf-481f-b307-afaca3a0a9b3 - 7668 - / - /dev/vda1 - - - RUNLEVEL - 2 - - - UPSTART_INSTANCE - - - - UPSTART_EVENTS - runlevel - - - PWD - /var/rudder - - - UPSTART_JOB - rc - - - TERM - linux - - - MANPATH - /usr/share/man:/usr/local/share/man:/opt/rudder/share/man:/opt/rudder/share/man - - - runlevel - 2 - - - PREVLEVEL - N - - - PATH - /sbin:/usr/sbin:/bin:/usr/bin:/var/rudder/cfengine-community/bin:/var/rudder/cfengine-community/bin - - - previous - N - - - VERBOSE - no - - - DEBIAN_FRONTEND - noninteractive - - - x86_64-linux-thread-multi - Other - 131071 - 192.168.180.1 - 192.168.180.1/8.8.8.8 - 6 - 192.168.180.88 - 241 - ubuntu-10-04-64 - #70-Ubuntu SMP Thu Jul 7 22:28:30 UTC 2011 - Ubuntu 10.04.3 LTS - 2.6.32-33-server - 1 - QEMU Virtual CPU version 0.12 - 397 - 6D43E201-171A-F227-DC9A-F48179591DD9 - QEMU - labo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - Keyboard - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 4 - mcerda - adm - - - 20 - mcerda - dialout - - - 24 - mcerda - cdrom - - - 46 - mcerda - plugdev - - - 109 - mcerda - lpadmin - - - 110 - mcerda - sambashare - - - 111 - mcerda - admin - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /bin/sh - - - /bin - 2 - bin - bin - /bin/sh - - - /dev - 3 - sys - sys - /bin/sh - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /bin/sh - - - /var/cache/man - 6 - man - man - /bin/sh - - - /var/spool/lpd - 7 - lp - lp - /bin/sh - - - /var/mail - 8 - mail - mail - /bin/sh - - - /var/spool/news - 9 - news - news - /bin/sh - - - /var/spool/uucp - 10 - uucp - uucp - /bin/sh - - - /bin - 13 - proxy - proxy - /bin/sh - - - /var/www - 33 - www-data - www-data - /bin/sh - - - /var/backups - 34 - backup - backup - /bin/sh - - - /var/list - 38 - list - Mailing List Manager - /bin/sh - - - /var/run/ircd - 39 - irc - ircd - /bin/sh - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /bin/sh - - - /nonexistent - 65534 - nobody - nobody - /bin/sh - - - /var/lib/libuuid - 100 - libuuid - - /bin/sh - - - /home/syslog - 101 - syslog - - /bin/false - - - /var/lib/landscape - 102 - landscape - - /bin/false - - - /home/mcerda - 1000 - mcerda - Matthieu CERDA,,, - /bin/bash - - - /var/lib/munin - 103 - munin - - /bin/false - - - /var/run/sshd - 104 - sshd - - /usr/sbin/nologin - - - /var/spool/postfix - 105 - postfix - - /bin/false - - - 256 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - e1000 - 192.168.180.88 - 192.168.180.1 - 255.255.255.128 - 192.168.180.0 - 52:54:00:af:19:7a - 8086:100E:1AF4:1100 - 0000:00:03.0 - 1000 - Up - ethernet - 0 - - - eth0 - e1000 - fe80::5054:ff:feaf:197a - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:af:19:7a - 8086:100E:1AF4:1100 - 0000:00:03.0 - 1000 - Up - ethernet - 0 - - - x86_64 - 2019-05-12 16:47:10 - labo.normation.com - ubuntu-10-04-64.labo.normation.com - Ubuntu 10.04.3 LTS - 007f0101 - linux - 2.6.32-33-server - Ubuntu - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu/ePSSam0NZZawijjQDYUqeZGF1ulwxGND320bpgW9C9v3O3QXMxsokr7T5eA2E17L6bDOwRzE/3TO5ysLBz4UA5MEAJbASqbA5cACj96WlT2GG6kf7ZeKnZtAcVRDKpBF//7fxUv5SsMUgoqOI32gDll3bzaEqt+GQleiCOzdBmHPuEIR1KnnHgFvckKNYCMCjx2R2ZnSVNyDEzKDWmwper4zYWhMWph1MVwkZsEYbelb9dM1l6G939Vr28teXIoQEx7sZrvZxSgmBOBHvVroyW52g73uzLjJ5oxxdjFFgNivBX4nyhlrNlPVV/A6uwSWtz9M9YxjgryKtx3WCj7w== - - Europe/Paris - +0200 - - 10.04 - - - /sbin/init - 0.0 - 0.6 - 1 - 2019-05-12 16:47 - ? - root - 23604 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-05-12 16:47 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 3 - 2019-05-12 16:47 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 4 - 2019-05-12 16:47 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 5 - 2019-05-12 16:47 - ? - root - 0 - - - [events/0] - 0.0 - 0.0 - 6 - 2019-05-12 16:47 - ? - root - 0 - - - [cpuset] - 0.0 - 0.0 - 7 - 2019-05-12 16:47 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 8 - 2019-05-12 16:47 - ? - root - 0 - - - [async/mgr] - 0.0 - 0.0 - 9 - 2019-05-12 16:47 - ? - root - 0 - - - [pm] - 0.0 - 0.0 - 10 - 2019-05-12 16:47 - ? - root - 0 - - - [sync_supers] - 0.0 - 0.0 - 11 - 2019-05-12 16:47 - ? - root - 0 - - - [bdi-default] - 0.0 - 0.0 - 12 - 2019-05-12 16:47 - ? - root - 0 - - - [kintegrityd/0] - 0.0 - 0.0 - 13 - 2019-05-12 16:47 - ? - root - 0 - - - [kblockd/0] - 0.0 - 0.0 - 14 - 2019-05-12 16:47 - ? - root - 0 - - - [kacpid] - 0.0 - 0.0 - 15 - 2019-05-12 16:47 - ? - root - 0 - - - [kacpi_notify] - 0.0 - 0.0 - 16 - 2019-05-12 16:47 - ? - root - 0 - - - [kacpi_hotplug] - 0.0 - 0.0 - 17 - 2019-05-12 16:47 - ? - root - 0 - - - [ata/0] - 0.0 - 0.0 - 18 - 2019-05-12 16:47 - ? - root - 0 - - - [ata_aux] - 0.0 - 0.0 - 19 - 2019-05-12 16:47 - ? - root - 0 - - - [ksuspend_usbd] - 0.0 - 0.0 - 20 - 2019-05-12 16:47 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 21 - 2019-05-12 16:47 - ? - root - 0 - - - [kseriod] - 0.0 - 0.0 - 22 - 2019-05-12 16:47 - ? - root - 0 - - - [kmmcd] - 0.0 - 0.0 - 23 - 2019-05-12 16:47 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 25 - 2019-05-12 16:47 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 27 - 2019-05-12 16:47 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 28 - 2019-05-12 16:47 - ? - root - 0 - - - [aio/0] - 0.0 - 0.0 - 29 - 2019-05-12 16:47 - ? - root - 0 - - - [ecryptfs-kthrea] - 0.0 - 0.0 - 30 - 2019-05-12 16:47 - ? - root - 0 - - - [crypto/0] - 0.0 - 0.0 - 31 - 2019-05-12 16:47 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 34 - 2019-05-12 16:47 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 35 - 2019-05-12 16:47 - ? - root - 0 - - - [kstriped] - 0.0 - 0.0 - 36 - 2019-05-12 16:47 - ? - root - 0 - - - [kmpathd/0] - 0.0 - 0.0 - 38 - 2019-05-12 16:47 - ? - root - 0 - - - [kmpath_handlerd] - 0.0 - 0.0 - 39 - 2019-05-12 16:47 - ? - root - 0 - - - [ksnapd] - 0.0 - 0.0 - 40 - 2019-05-12 16:47 - ? - root - 0 - - - [kondemand/0] - 0.0 - 0.0 - 41 - 2019-05-12 16:47 - ? - root - 0 - - - [kconservative/0] - 0.0 - 0.0 - 42 - 2019-05-12 16:47 - ? - root - 0 - - - [flush-252:0] - 0.0 - 0.0 - 228 - 2019-05-12 16:47 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 236 - 2019-05-12 16:47 - ? - root - 0 - - - [ext4-dio-unwrit] - 0.0 - 0.0 - 237 - 2019-05-12 16:47 - ? - root - 0 - - - upstart-udev-bridge --daemon - 0.0 - 0.1 - 277 - 2019-05-12 16:48 - ? - root - 16928 - - - udevd --daemon - 0.0 - 0.0 - 282 - 2019-05-12 16:48 - ? - root - 17172 - - - udevd --daemon - 0.0 - 0.0 - 378 - 2019-05-12 16:48 - ? - root - 17168 - - - udevd --daemon - 0.0 - 0.0 - 408 - 2019-05-12 16:48 - ? - root - 17168 - - - [vballoon] - 0.0 - 0.0 - 532 - 2019-05-12 16:48 - ? - root - 0 - - - rsyslogd -c4 - 0.0 - 0.5 - 540 - 2019-05-12 16:49 - ? - syslog - 130476 - - - [kpsmoused] - 0.0 - 0.0 - 543 - 2019-05-12 16:49 - ? - root - 0 - - - /sbin/dhcpcd-bin -h ubuntu-10-04-64.labo.normation.com -Y -N -R eth0 - 0.0 - 0.2 - 614 - 2019-05-12 16:49 - ? - root - 8328 - - - /usr/sbin/sshd -D - 0.0 - 0.7 - 629 - 2019-05-12 16:49 - ? - root - 49288 - - - /sbin/getty -8 38400 tty4 - 0.0 - 0.1 - 662 - 2019-05-12 16:49 - tty4 - root - 6104 - - - /sbin/getty -8 38400 tty5 - 0.0 - 0.1 - 667 - 2019-05-12 16:49 - tty5 - root - 6104 - - - /sbin/getty -8 38400 tty2 - 0.0 - 0.1 - 670 - 2019-05-12 16:49 - tty2 - root - 6104 - - - /sbin/getty -8 38400 tty3 - 0.0 - 0.1 - 671 - 2019-05-12 16:49 - tty3 - root - 6104 - - - /sbin/getty -8 38400 tty6 - 0.0 - 0.1 - 673 - 2019-05-12 16:49 - tty6 - root - 6104 - - - /usr/sbin/munin-node - 0.0 - 0.4 - 695 - 2019-05-12 16:49 - ? - root - 39508 - - - cron - 0.0 - 0.3 - 741 - 2019-05-12 16:49 - ? - root - 21100 - - - atd - 0.0 - 0.1 - 742 - 2019-05-12 16:49 - ? - daemon - 18908 - - - /usr/lib/postfix/master - 0.0 - 0.7 - 1042 - 2019-05-12 16:49 - ? - root - 37244 - - - qmgr -l -t fifo -u - 0.0 - 0.7 - 1047 - 2019-05-12 16:49 - ? - postfix - 39468 - - - /var/rudder/cfengine-community/bin/cf-serverd - 0.0 - 1.2 - 1241 - 2019-05-12 16:49 - ? - root - 53768 - - - /var/rudder/cfengine-community/bin/cf-execd - 0.0 - 1.4 - 1414 - 2019-05-12 16:49 - ? - root - 53176 - - - /sbin/getty -8 38400 tty1 - 0.0 - 0.1 - 1451 - 2019-05-12 16:49 - tty1 - root - 6104 - - - pickup -l -t fifo -u -c - 0.0 - 0.8 - 16971 - 2019-09-13 00:49 - ? - postfix - 39308 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.2 - 23076 - 2019-09-13 01:16 - ? - root - 4120 - - - /var/rudder/cfengine-community/bin/cf-agent - 31.3 - 7.3 - 23087 - 2019-09-13 01:16 - ? - root - 71596 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs - 0.3 - 0.2 - 23301 - 2019-09-13 01:16 - ? - root - 4120 - - - /opt/rudder/bin/perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs - 23.6 - 19.0 - 23307 - 2019-09-13 01:16 - ? - root - 114920 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.2 - 23316 - 2019-09-13 01:16 - ? - root - 4120 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.4 - 23317 - 2019-09-13 01:16 - ? - root - 15000 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCgKCAQEAxV6J9wZyte9pcrAKF7+I66kz7K/Qr6EmGrQz7uWgnDd5RpybhhZa -cldhl7GywwRne21eTkSYfYJZgkN9CivtdS7YffX6J7G82B60EcjcDeLvmCYWPo8B -zNO+ewCoA8XMRZakBB3OdZV6JeXpfbEdwYr8GIyVrg2RKodexUDbVOY8H9pGp1GG -shGY9qmVY1zyEIQbFCn5dCtvpWS8CjVYu8B8NOdfAk6wGywpuKiwgyV625HKvPyu -oa6WCr3gJ37JUMtgFPNu3JwCFHnDVouG51RsqbbZzyuiWaJ0uGHVgXurZZ1qWdgE -QmltnCYkXUMnN2W4e4VTbXLJ5ecDIdXnGwIDAQAB ------END RSA PUBLIC KEY----- - - root - orchestrateur-5.labo.normation.com - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - ubuntu-10-04-64.labo.normation.com - - fb0096f3-a928-454d-9776-e8079d48cdd8 - - - all - 884 - deb - adduser - Ubuntu - 3.112ubuntu1 - - - amd64 - 2312 - deb - apparmor - Ubuntu - 2.5.1-0ubuntu0.10.04.3 - - - amd64 - 1684 - deb - apparmor-utils - Ubuntu - 2.5.1-0ubuntu0.10.04.3 - - - all - 2012 - deb - apport - Ubuntu - 1.13.3-0ubuntu2 - - - all - 68 - deb - apport-symptoms - Ubuntu - 0.9 - - - amd64 - 5492 - deb - apt - Ubuntu - 0.7.25.3ubuntu9.5 - - - amd64 - 152 - deb - apt-transport-https - Ubuntu - 0.7.25.3ubuntu9.5 - - - amd64 - 540 - deb - apt-utils - Ubuntu - 0.7.25.3ubuntu9.5 - - - amd64 - 9828 - deb - aptitude - Ubuntu - 0.4.11.11-1ubuntu10 - - - amd64 - 240 - deb - at - Ubuntu - 3.1.11-1ubuntu5.1 - - - all - 2220 - deb - autoconf - Ubuntu - 2.65-3ubuntu1 - - - all - 1832 - deb - automake - Ubuntu - 1:1.11.1-1 - - - all - 172 - deb - autotools-dev - Ubuntu - 20090611.1 - - - amd64 - 500 - deb - base-files - Ubuntu - 5.0.0ubuntu20.10.04.4 - - - amd64 - 184 - deb - base-passwd - Ubuntu - 3.5.22 - - - amd64 - 3612 - deb - bash - Ubuntu - 4.1-2ubuntu3 - - - all - 936 - deb - bash-completion - Ubuntu - 1:1.1-3ubuntu2 - - - amd64 - 320 - deb - bc - Ubuntu - 1.06.95-2 - - - amd64 - 184 - deb - bind9-host - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 10176 - deb - binutils - Ubuntu - 2.20.1-3ubuntu7.1 - - - amd64 - 1808 - deb - bison - Ubuntu - 1:2.4.1.dfsg-3 - - - amd64 - 304 - deb - bsd-mailx - Ubuntu - 8.1.2-0.20090911cvs-2ubuntu1 - - - amd64 - 776 - deb - bsdmainutils - Ubuntu - 8.0.1ubuntu1 - - - amd64 - 208 - deb - bsdutils - Ubuntu - 1:2.17.2-0ubuntu1.10.04.2 - - - amd64 - 48 - deb - build-essential - Ubuntu - 11.4build1 - - - amd64 - 344 - deb - busybox-initramfs - Ubuntu - 1:1.13.3-1ubuntu11 - - - amd64 - 1932 - deb - busybox-static - Ubuntu - 1:1.13.3-1ubuntu11 - - - all - 688 - deb - byobu - Ubuntu - 2.68-0ubuntu1.1 - - - amd64 - 160 - deb - bzip2 - Ubuntu - 1.0.5-4ubuntu0.1 - - - all - 736 - deb - ca-certificates - Ubuntu - 20090814 - - - all - 128 - deb - command-not-found - Ubuntu - 0.2.40ubuntu5 - - - amd64 - 2432 - deb - command-not-found-data - Ubuntu - 0.2.40ubuntu5 - - - all - 1396 - deb - console-setup - Ubuntu - 1.34ubuntu15 - - - all - 784 - deb - console-terminus - Ubuntu - 4.30-2 - - - amd64 - 12988 - deb - coreutils - Ubuntu - 7.4-2ubuntu3 - - - amd64 - 872 - deb - cpio - Ubuntu - 2.10-1ubuntu2 - - - amd64 - 104 - deb - cpp - Ubuntu - 4:4.4.3-1ubuntu1 - - - amd64 - 9828 - deb - cpp-4.4 - Ubuntu - 4.4.3-4ubuntu5.1 - - - all - 60 - deb - cpu-checker - Ubuntu - 0.1-0ubuntu2 - - - amd64 - 340 - deb - cron - Ubuntu - 3.0pl1-106ubuntu5 - - - amd64 - 324 - deb - curl - Ubuntu - 7.19.7-1ubuntu1.11 - - - amd64 - 3760 - deb - cvs - Ubuntu - 1:1.12.13-12ubuntu1.10.04.1 - - - amd64 - 236 - deb - dash - Ubuntu - 0.5.5.1-3ubuntu2 - - - amd64 - 516 - deb - dctrl-tools - Ubuntu - 2.14 - - - all - 924 - deb - debconf - Ubuntu - 1.5.28ubuntu4 - - - all - 1136 - deb - debconf-i18n - Ubuntu - 1.5.28ubuntu4 - - - amd64 - 228 - deb - debianutils - Ubuntu - 3.2.2 - - - all - 264 - deb - debootstrap - Ubuntu - 1.0.20ubuntu1.6 - - - amd64 - 1716 - deb - devscripts - Ubuntu - 2.10.61ubuntu5.6 - - - amd64 - 704 - deb - dhcp3-client - Ubuntu - 3.1.3-2ubuntu3.2 - - - amd64 - 640 - deb - dhcp3-common - Ubuntu - 3.1.3-2ubuntu3.2 - - - amd64 - 200 - deb - dhcpcd - Ubuntu - 1:3.2.3-5ubuntu0.1 - - - amd64 - 88 - deb - diffstat - Ubuntu - 1.47-1build1 - - - amd64 - 776 - deb - diffutils - Ubuntu - 1:2.8.1-18 - - - amd64 - 200 - deb - dmidecode - Ubuntu - 2.9-1.2 - - - amd64 - 188 - deb - dmsetup - Ubuntu - 2:1.02.39-1ubuntu4.1 - - - amd64 - 404 - deb - dnsutils - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 240 - deb - dosfstools - Ubuntu - 3.0.7-1 - - - amd64 - 6724 - deb - dpkg - Ubuntu - 1.15.5.6ubuntu4.5 - - - all - 2044 - deb - dpkg-dev - Ubuntu - 1.15.5.6ubuntu4.9 - - - all - 232 - deb - dput - Ubuntu - 0.9.5.1ubuntu1 - - - amd64 - 316 - deb - e2fslibs - Ubuntu - 1.41.11-1ubuntu2.1 - - - amd64 - 2148 - deb - e2fsprogs - Ubuntu - 1.41.11-1ubuntu2.1 - - - amd64 - 156 - deb - ed - Ubuntu - 1.4-1build1 - - - amd64 - 348 - deb - eject - Ubuntu - 2.1.5+deb1+cvs20081104-7 - - - amd64 - 372 - deb - fakeroot - Ubuntu - 1.14.4-1ubuntu1 - - - amd64 - 148 - deb - file - Ubuntu - 5.03-5ubuntu1 - - - amd64 - 1892 - deb - findutils - Ubuntu - 4.4.2-1ubuntu1 - - - amd64 - 1008 - deb - flex - Ubuntu - 2.5.35-9 - - - all - 100 - deb - friendly-recovery - Ubuntu - 0.2.10 - - - amd64 - 168 - deb - ftp - Ubuntu - 0.17-19build1 - - - amd64 - 168 - deb - fuse-utils - Ubuntu - 2.8.1-1.1ubuntu3.1 - - - amd64 - 40 - deb - g++ - Ubuntu - 4:4.4.3-1ubuntu1 - - - amd64 - 11968 - deb - g++-4.4 - Ubuntu - 4.4.3-4ubuntu5.1 - - - amd64 - 2108 - deb - gawk - Ubuntu - 1:3.1.6.dfsg-4build1 - - - amd64 - 64 - deb - gcc - Ubuntu - 4:4.4.3-1ubuntu1 - - - amd64 - 4696 - deb - gcc-4.4 - Ubuntu - 4.4.3-4ubuntu5.1 - - - amd64 - 172 - deb - gcc-4.4-base - Ubuntu - 4.4.3-4ubuntu5.1 - - - all - 1348 - deb - geoip-database - Ubuntu - 1.4.6.dfsg-17 - - - amd64 - 7384 - deb - gettext - Ubuntu - 0.17-8ubuntu3 - - - amd64 - 988 - deb - gettext-base - Ubuntu - 0.17-8ubuntu3 - - - amd64 - 5320 - deb - gnupg - Ubuntu - 1.4.10-2ubuntu1 - - - amd64 - 156 - deb - gnupg-curl - Ubuntu - 1.4.10-2ubuntu1 - - - amd64 - 444 - deb - gpgv - Ubuntu - 1.4.10-2ubuntu1 - - - amd64 - 1188 - deb - grep - Ubuntu - 2.5.4-4build1 - - - amd64 - 3408 - deb - groff-base - Ubuntu - 1.20.1-7 - - - amd64 - 4480 - deb - grub-common - Ubuntu - 1.98-1ubuntu12 - - - amd64 - 2256 - deb - grub-pc - Ubuntu - 1.98-1ubuntu12 - - - amd64 - 284 - deb - gzip - Ubuntu - 1.3.12-9ubuntu1.1 - - - amd64 - 300 - deb - hdparm - Ubuntu - 9.15-1ubuntu9 - - - amd64 - 112 - deb - hostname - Ubuntu - 3.03ubuntu1 - - - amd64 - 276 - deb - ifupdown - Ubuntu - 0.6.8ubuntu29.2 - - - amd64 - 424 - deb - info - Ubuntu - 4.13a.dfsg.1-5ubuntu1 - - - all - 432 - deb - initramfs-tools - Ubuntu - 0.92bubuntu78 - - - amd64 - 104 - deb - initramfs-tools-bin - Ubuntu - 0.92bubuntu78 - - - amd64 - 336 - deb - initscripts - Ubuntu - 2.87dsf-4ubuntu17.4 - - - amd64 - 292 - deb - insserv - Ubuntu - 1.12.0-14 - - - amd64 - 256 - deb - install-info - Ubuntu - 4.13a.dfsg.1-5ubuntu1 - - - all - 112 - deb - installation-report - Ubuntu - 2.39ubuntu4 - - - all - 140 - deb - intltool-debian - Ubuntu - 0.35.0+20060710.1 - - - all - 164 - deb - iotop - Ubuntu - 0.4-1 - - - amd64 - 1040 - deb - iproute - Ubuntu - 20091226-1 - - - amd64 - 1776 - deb - iptables - Ubuntu - 1.4.4-2ubuntu2 - - - amd64 - 84 - deb - iputils-arping - Ubuntu - 3:20071127-2ubuntu1 - - - amd64 - 140 - deb - iputils-ping - Ubuntu - 3:20071127-2ubuntu1 - - - amd64 - 132 - deb - iputils-tracepath - Ubuntu - 3:20071127-2ubuntu1 - - - amd64 - 128 - deb - irqbalance - Ubuntu - 0.55+20091017-3ubuntu2 - - - all - 11132 - deb - iso-codes - Ubuntu - 3.12.1-1 - - - amd64 - 1632 - deb - kbd - Ubuntu - 1.15-1ubuntu3 - - - amd64 - 476 - deb - klibc-utils - Ubuntu - 1.5.17-4ubuntu1 - - - amd64 - 1464 - deb - landscape-common - Ubuntu - 11.02-0ubuntu0.10.04.1 - - - all - 36 - deb - language-pack-en - Ubuntu - 1:10.04+20110204 - - - all - 4784 - deb - language-pack-en-base - Ubuntu - 1:10.04+20110204 - - - all - 2248 - deb - language-selector-common - Ubuntu - 0.5.8 - - - amd64 - 56 - deb - laptop-detect - Ubuntu - 0.13.7ubuntu2 - - - amd64 - 324 - deb - less - Ubuntu - 436-1 - - - amd64 - 92 - deb - libacl1 - Ubuntu - 2.2.49-2 - - - amd64 - 156 - deb - libapparmor-perl - Ubuntu - 2.5.1-0ubuntu0.10.04.3 - - - amd64 - 124 - deb - libapparmor1 - Ubuntu - 2.5.1-0ubuntu0.10.04.3 - - - amd64 - 308 - deb - libapt-pkg-perl - Ubuntu - 0.1.24 - - - amd64 - 140 - deb - libatm1 - Ubuntu - 1:2.5.1-1.2 - - - amd64 - 68 - deb - libattr1 - Ubuntu - 1:2.4.44-1 - - - all - 192 - deb - libauthen-sasl-perl - Ubuntu - 2.13-1 - - - amd64 - 108 - deb - libbind9-60 - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 248 - deb - libblkid1 - Ubuntu - 2.17.2-0ubuntu1.10.04.2 - - - amd64 - 128 - deb - libbsd0 - Ubuntu - 0.2.0-1 - - - amd64 - 128 - deb - libbz2-1.0 - Ubuntu - 1.0.5-4ubuntu0.1 - - - amd64 - 1792 - deb - libc-bin - Ubuntu - 2.11.1-0ubuntu7.17 - - - amd64 - 364 - deb - libc-dev-bin - Ubuntu - 2.11.1-0ubuntu7.17 - - - amd64 - 10092 - deb - libc6 - Ubuntu - 2.11.1-0ubuntu7.17 - - - amd64 - 11656 - deb - libc6-dev - Ubuntu - 2.11.1-0ubuntu7.17 - - - amd64 - 72 - deb - libcap-ng0 - Ubuntu - 0.6.2-4 - - - amd64 - 72 - deb - libcap2 - Ubuntu - 1:2.17-2ubuntu1 - - - all - 104 - deb - libclass-accessor-perl - Ubuntu - 0.34-1 - - - amd64 - 108 - deb - libcomerr2 - Ubuntu - 1.41.11-1ubuntu2.1 - - - amd64 - 320 - deb - libcroco3 - Ubuntu - 0.6.2-1 - - - amd64 - 484 - deb - libcurl3 - Ubuntu - 7.19.7-1ubuntu1.11 - - - amd64 - 440 - deb - libcurl3-gnutls - Ubuntu - 7.19.7-1ubuntu1.1 - - - amd64 - 844 - deb - libcwidget3 - Ubuntu - 0.5.13-1ubuntu1 - - - amd64 - 1516 - deb - libdb4.8 - Ubuntu - 4.8.24-1ubuntu1 - - - amd64 - 352 - deb - libdbus-1-3 - Ubuntu - 1.2.16-2ubuntu4.2 - - - amd64 - 316 - deb - libdbus-glib-1-2 - Ubuntu - 0.84-1ubuntu0.2 - - - all - 80 - deb - libdevel-symdump-perl - Ubuntu - 2.08-2 - - - amd64 - 208 - deb - libdevmapper1.02.1 - Ubuntu - 2:1.02.39-1ubuntu4.1 - - - amd64 - 1568 - deb - libdns64 - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 476 - deb - libdrm-intel1 - Ubuntu - 2.4.18-1ubuntu3 - - - amd64 - 456 - deb - libdrm-nouveau1 - Ubuntu - 2.4.18-1ubuntu3 - - - amd64 - 452 - deb - libdrm-radeon1 - Ubuntu - 2.4.18-1ubuntu3 - - - amd64 - 480 - deb - libdrm2 - Ubuntu - 2.4.18-1ubuntu3 - - - amd64 - 196 - deb - libedit2 - Ubuntu - 2.11-20080614-1build1 - - - amd64 - 144 - deb - libelf1 - Ubuntu - 0.143-1 - - - amd64 - 528 - deb - libept0 - Ubuntu - 0.5.30 - - - amd64 - 392 - deb - libexpat1 - Ubuntu - 2.0.1-7ubuntu1 - - - amd64 - 84 - deb - libffi5 - Ubuntu - 3.0.9-1 - - - all - 88 - deb - libfile-copy-recursive-perl - Ubuntu - 0.38-1 - - - all - 120 - deb - libfont-afm-perl - Ubuntu - 1.20-1 - - - amd64 - 796 - deb - libfreetype6 - Ubuntu - 2.3.11-1ubuntu2.5 - - - amd64 - 196 - deb - libfribidi0 - Ubuntu - 0.19.2-1 - - - amd64 - 384 - deb - libfuse2 - Ubuntu - 2.8.1-1.1ubuntu3.1 - - - amd64 - 260 - deb - libgc1c2 - Ubuntu - 1:6.8-1.2ubuntu1 - - - amd64 - 132 - deb - libgcc1 - Ubuntu - 1:4.4.3-4ubuntu5.1 - - - amd64 - 560 - deb - libgcrypt11 - Ubuntu - 1.4.4-5ubuntu2 - - - amd64 - 128 - deb - libgdbm3 - Ubuntu - 1.8.3-9 - - - amd64 - 332 - deb - libgeoip1 - Ubuntu - 1.4.6.dfsg-17 - - - amd64 - 2432 - deb - libglib2.0-0 - Ubuntu - 2.24.1-0ubuntu1 - - - amd64 - 668 - deb - libgmp3c2 - Ubuntu - 2:4.3.2+dfsg-1ubuntu1 - - - amd64 - 1176 - deb - libgnutls26 - Ubuntu - 2.8.5-2 - - - amd64 - 96 - deb - libgomp1 - Ubuntu - 4.4.3-4ubuntu5.1 - - - amd64 - 236 - deb - libgpg-error0 - Ubuntu - 1.6-1ubuntu2 - - - amd64 - 96 - deb - libgpm2 - Ubuntu - 1.20.4-3.2ubuntu2 - - - amd64 - 312 - deb - libgssapi-krb5-2 - Ubuntu - 1.8.1+dfsg-2ubuntu0.9 - - - all - 152 - deb - libhtml-format-perl - Ubuntu - 2.04-2 - - - amd64 - 324 - deb - libhtml-parser-perl - Ubuntu - 3.64-1 - - - all - 76 - deb - libhtml-tagset-perl - Ubuntu - 3.20-2 - - - all - 524 - deb - libhtml-tree-perl - Ubuntu - 3.23-1 - - - amd64 - 368 - deb - libidn11 - Ubuntu - 1.15-2 - - - all - 112 - deb - libio-multiplex-perl - Ubuntu - 1.10-1 - - - amd64 - 168 - deb - libio-pty-perl - Ubuntu - 1:1.07-2build1 - - - all - 72 - deb - libio-string-perl - Ubuntu - 1.08-2 - - - all - 352 - deb - libio-stringy-perl - Ubuntu - 2.110-4 - - - all - 336 - deb - libipc-run-perl - Ubuntu - 0.84-1 - - - amd64 - 396 - deb - libisc60 - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 92 - deb - libisccc60 - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 184 - deb - libisccfg60 - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 104 - deb - libiw30 - Ubuntu - 30~pre9-3ubuntu4 - - - all - 168 - deb - libjs-jquery - Ubuntu - 1.3.3-2ubuntu1 - - - amd64 - 252 - deb - libk5crypto3 - Ubuntu - 1.8.1+dfsg-2ubuntu0.9 - - - amd64 - 60 - deb - libkeyutils1 - Ubuntu - 1.2-12 - - - amd64 - 136 - deb - libklibc - Ubuntu - 1.5.17-4ubuntu1 - - - amd64 - 964 - deb - libkrb5-3 - Ubuntu - 1.8.1+dfsg-2ubuntu0.9 - - - amd64 - 124 - deb - libkrb5support0 - Ubuntu - 1.8.1+dfsg-2ubuntu0.9 - - - amd64 - 496 - deb - libldap-2.4-2 - Ubuntu - 2.4.21-0ubuntu5.5 - - - amd64 - 108 - deb - liblocale-gettext-perl - Ubuntu - 1.05-6 - - - amd64 - 104 - deb - liblockfile1 - Ubuntu - 1.08-3ubuntu1 - - - amd64 - 964 - deb - libltdl-dev - Ubuntu - 2.2.6b-2ubuntu1 - - - amd64 - 384 - deb - libltdl7 - Ubuntu - 2.2.6b-2ubuntu1 - - - amd64 - 136 - deb - liblwres60 - Ubuntu - 1:9.7.0.dfsg.P1-1ubuntu0.3 - - - amd64 - 288 - deb - liblzma1 - Ubuntu - 4.999.9beta+20091116-1 - - - amd64 - 2560 - deb - libmagic1 - Ubuntu - 5.03-5ubuntu1 - - - all - 316 - deb - libmailtools-perl - Ubuntu - 2.05-1 - - - amd64 - 656 - deb - libmpfr1ldbl - Ubuntu - 2.4.2-3ubuntu1 - - - amd64 - 512 - deb - libncurses5 - Ubuntu - 5.7+20090803-2ubuntu3 - - - amd64 - 556 - deb - libncursesw5 - Ubuntu - 5.7+20090803-2ubuntu3 - - - all - 84 - deb - libnet-cidr-perl - Ubuntu - 0.13-1 - - - all - 432 - deb - libnet-server-perl - Ubuntu - 0.97-1ubuntu1 - - - all - 512 - deb - libnet-snmp-perl - Ubuntu - 5.2.0-3 - - - amd64 - 888 - deb - libnewt0.52 - Ubuntu - 0.52.10-5ubuntu1 - - - amd64 - 80 - deb - libnih-dbus1 - Ubuntu - 1.0.1-1 - - - amd64 - 252 - deb - libnih1 - Ubuntu - 1.0.1-1 - - - amd64 - 420 - deb - libnl1 - Ubuntu - 1.1-5build1 - - - amd64 - 348 - deb - libntfs-3g75 - Ubuntu - 1:2010.3.6-1ubuntu1 - - - amd64 - 1208 - deb - libpam-modules - Ubuntu - 1.1.1-2ubuntu5.3 - - - all - 1248 - deb - libpam-runtime - Ubuntu - 1.1.1-2ubuntu5.3 - - - amd64 - 268 - deb - libpam0g - Ubuntu - 1.1.1-2ubuntu5.6 - - - amd64 - 544 - deb - libpam0g-dev - Ubuntu - 1.1.1-2ubuntu5.6 - - - all - 76 - deb - libparse-debcontrol-perl - Ubuntu - 2.005-2 - - - all - 252 - deb - libparse-debianchangelog-perl - Ubuntu - 1.1.1-2ubuntu2 - - - amd64 - 660 - deb - libparted0debian1 - Ubuntu - 2.2-5ubuntu5.2 - - - amd64 - 308 - deb - libpcap0.8 - Ubuntu - 1.0.0-6 - - - amd64 - 116 - deb - libpci3 - Ubuntu - 1:3.0.0-4ubuntu17 - - - amd64 - 456 - deb - libpcre3 - Ubuntu - 7.8-3build1 - - - amd64 - 712 - deb - libpcre3-dev - Ubuntu - 7.8-3build1 - - - amd64 - 172 - deb - libpcrecpp0 - Ubuntu - 7.8-3build1 - - - amd64 - 120 - deb - libpcsclite1 - Ubuntu - 1.5.3-1ubuntu4.2 - - - amd64 - 312 - deb - libplymouth2 - Ubuntu - 0.8.2-2ubuntu2.2 - - - amd64 - 336 - deb - libpng12-0 - Ubuntu - 1.2.42-1ubuntu2.1 - - - all - 116 - deb - libpod-coverage-perl - Ubuntu - 0.20-1 - - - amd64 - 492 - deb - libpopt0 - Ubuntu - 1.15-1 - - - amd64 - 2796 - deb - libpython2.6 - Ubuntu - 2.6.5-1ubuntu6 - - - amd64 - 408 - deb - libreadline6 - Ubuntu - 6.1-1 - - - all - 872 - deb - librpc-xml-perl - Ubuntu - 0.72-1 - - - amd64 - 272 - deb - libsasl2-2 - Ubuntu - 2.1.23.dfsg1-5ubuntu1 - - - amd64 - 500 - deb - libsasl2-modules - Ubuntu - 2.1.23.dfsg1-5ubuntu1 - - - amd64 - 228 - deb - libselinux1 - Ubuntu - 2.0.89-4 - - - amd64 - 328 - deb - libsepol1 - Ubuntu - 2.0.40-2 - - - amd64 - 100 - deb - libsigc++-2.0-0c2a - Ubuntu - 2.2.4.2-1 - - - amd64 - 1520 - deb - libslang2 - Ubuntu - 2.2.2-2ubuntu1 - - - amd64 - 628 - deb - libsqlite3-0 - Ubuntu - 3.6.22-1 - - - amd64 - 120 - deb - libss2 - Ubuntu - 1.41.11-1ubuntu2.1 - - - amd64 - 7008 - deb - libssl-dev - Ubuntu - 0.9.8k-7ubuntu8.22 - - - amd64 - 2340 - deb - libssl0.9.8 - Ubuntu - 0.9.8k-7ubuntu8.22 - - - amd64 - 1268 - deb - libstdc++6 - Ubuntu - 4.4.3-4ubuntu5.1 - - - amd64 - 11004 - deb - libstdc++6-4.4-dev - Ubuntu - 4.4.3-4ubuntu5.1 - - - amd64 - 92 - deb - libsub-name-perl - Ubuntu - 0.04-1build1 - - - amd64 - 144 - deb - libtasn1-3 - Ubuntu - 2.4-1 - - - amd64 - 140 - deb - libterm-readkey-perl - Ubuntu - 2.30-4build1 - - - amd64 - 96 - deb - libterm-size-perl - Ubuntu - 0.2-4build3 - - - all - 64 - deb - libtest-pod-perl - Ubuntu - 1.41-1 - - - amd64 - 96 - deb - libtext-charwidth-perl - Ubuntu - 0.04-6 - - - amd64 - 108 - deb - libtext-iconv-perl - Ubuntu - 1.7-2 - - - all - 68 - deb - libtext-wrapi18n-perl - Ubuntu - 0.06-7 - - - all - 84 - deb - libtie-ixhash-perl - Ubuntu - 1.21-2 - - - all - 252 - deb - libtimedate-perl - Ubuntu - 1.1900-1 - - - amd64 - 1332 - deb - libtool - Ubuntu - 2.2.6b-2ubuntu1 - - - amd64 - 200 - deb - libudev0 - Ubuntu - 151-12.3 - - - all - 392 - deb - liburi-perl - Ubuntu - 1.52-1 - - - amd64 - 100 - deb - libusb-0.1-4 - Ubuntu - 2:0.1.12-14ubuntu0.2 - - - amd64 - 120 - deb - libuuid1 - Ubuntu - 2.17.2-0ubuntu1.10.04.2 - - - amd64 - 104 - deb - libwrap0 - Ubuntu - 7.6.q-18 - - - all - 1072 - deb - libwww-perl - Ubuntu - 5.834-1ubuntu0.1 - - - amd64 - 1456 - deb - libx11-6 - Ubuntu - 2:1.3.2-1ubuntu3 - - - all - 2500 - deb - libx11-data - Ubuntu - 2:1.3.2-1ubuntu3 - - - amd64 - 1644 - deb - libxapian15 - Ubuntu - 1.0.18-1 - - - amd64 - 72 - deb - libxau6 - Ubuntu - 1:1.0.5-1 - - - amd64 - 180 - deb - libxcb1 - Ubuntu - 1.5-2 - - - amd64 - 80 - deb - libxdmcp6 - Ubuntu - 1:1.0.3-1 - - - amd64 - 148 - deb - libxext6 - Ubuntu - 2:1.1.1-2 - - - amd64 - 1332 - deb - libxml-libxml-perl - Ubuntu - 1.70.ds-1 - - - all - 88 - deb - libxml-namespacesupport-perl - Ubuntu - 1.09-3 - - - amd64 - 744 - deb - libxml-parser-perl - Ubuntu - 2.36-1.1build3 - - - all - 108 - deb - libxml-sax-expat-perl - Ubuntu - 0.40-1 - - - all - 456 - deb - libxml-sax-perl - Ubuntu - 0.96+dfsg-2 - - - amd64 - 1744 - deb - libxml2 - Ubuntu - 2.7.6.dfsg-1ubuntu1.2 - - - amd64 - 72 - deb - libxmuu1 - Ubuntu - 2:1.0.5-1 - - - amd64 - 184 - deb - libyaml-0-2 - Ubuntu - 0.1.3-1 - - - all - 1976 - deb - lintian - Ubuntu - 2.3.4ubuntu2 - - - all - 21548 - deb - linux-firmware - Ubuntu - 1.34.7 - - - all - 74392 - deb - linux-headers-2.6.32-33 - Ubuntu - 2.6.32-33.70 - - - amd64 - 9128 - deb - linux-headers-2.6.32-33-server - Ubuntu - 2.6.32-33.70 - - - amd64 - 32 - deb - linux-headers-server - Ubuntu - 2.6.32.33.39 - - - amd64 - 124740 - deb - linux-image-2.6.32-33-server - Ubuntu - 2.6.32-33.70 - - - amd64 - 32 - deb - linux-image-server - Ubuntu - 2.6.32.33.39 - - - amd64 - 4252 - deb - linux-libc-dev - Ubuntu - 2.6.32-68.135 - - - amd64 - 32 - deb - linux-server - Ubuntu - 2.6.32.33.39 - - - all - 21820 - deb - locales - Ubuntu - 2.11+git20100304-3 - - - amd64 - 88 - deb - lockfile-progs - Ubuntu - 0.1.13ubuntu1 - - - amd64 - 2384 - deb - login - Ubuntu - 1:4.1.4.2-1ubuntu2.2 - - - amd64 - 184 - deb - logrotate - Ubuntu - 3.7.8-4ubuntu2.1 - - - all - 84 - deb - lsb-base - Ubuntu - 4.0-0ubuntu8 - - - all - 128 - deb - lsb-release - Ubuntu - 4.0-0ubuntu8 - - - amd64 - 592 - deb - lshw - Ubuntu - 02.14-1build1 - - - amd64 - 452 - deb - lsof - Ubuntu - 4.81.dfsg.1-1build1 - - - amd64 - 228 - deb - ltrace - Ubuntu - 0.5.3-2ubuntu3 - - - amd64 - 172 - deb - lzma - Ubuntu - 4.43-14ubuntu2 - - - amd64 - 664 - deb - m4 - Ubuntu - 1.4.13-3 - - - amd64 - 1224 - deb - make - Ubuntu - 3.81-7ubuntu1 - - - all - 144 - deb - makedev - Ubuntu - 2.3.1-89ubuntu1 - - - amd64 - 3488 - deb - man-db - Ubuntu - 2.5.7-2ubuntu1 - - - all - 1104 - deb - manpages - Ubuntu - 3.23-1 - - - all - 3192 - deb - manpages-dev - Ubuntu - 3.23-1 - - - amd64 - 256 - deb - mawk - Ubuntu - 1.3.3-15ubuntu2 - - - amd64 - 484 - deb - memtest86+ - Ubuntu - 4.00-2ubuntu3 - - - all - 192 - deb - mime-support - Ubuntu - 3.48-1ubuntu1 - - - amd64 - 572 - deb - mlocate - Ubuntu - 0.22.2-1ubuntu1 - - - amd64 - 376 - deb - module-init-tools - Ubuntu - 3.11.1-2ubuntu1 - - - amd64 - 380 - deb - mount - Ubuntu - 2.17.2-0ubuntu1.10.04.2 - - - amd64 - 236 - deb - mountall - Ubuntu - 2.15.3 - - - amd64 - 124 - deb - mtr-tiny - Ubuntu - 0.75-2build1 - - - all - 168 - deb - munin-common - Ubuntu - 1.4.4-1ubuntu1 - - - all - 1620 - deb - munin-node - Ubuntu - 1.4.4-1ubuntu1 - - - amd64 - 1764 - deb - nano - Ubuntu - 2.2.2-1 - - - all - 488 - deb - ncurses-base - Ubuntu - 5.7+20090803-2ubuntu3 - - - amd64 - 520 - deb - ncurses-bin - Ubuntu - 5.7+20090803-2ubuntu3 - - - amd64 - 1044 - deb - net-tools - Ubuntu - 1.60-23ubuntu2 - - - all - 100 - deb - netbase - Ubuntu - 4.35ubuntu3 - - - amd64 - 168 - deb - netcat-openbsd - Ubuntu - 1.89-3ubuntu2 - - - amd64 - 256 - deb - ntfs-3g - Ubuntu - 1:2010.3.6-1ubuntu1 - - - amd64 - 244 - deb - ntpdate - Ubuntu - 1:4.2.4p8+dfsg-1ubuntu2.1 - - - amd64 - 1932 - deb - openssh-client - Ubuntu - 1:5.3p1-3ubuntu7.1 - - - amd64 - 788 - deb - openssh-server - Ubuntu - 1:5.3p1-3ubuntu7.1 - - - amd64 - 844 - deb - openssl - Ubuntu - 0.9.8k-7ubuntu8.6 - - - amd64 - 180 - deb - os-prober - Ubuntu - 1.38 - - - amd64 - 284 - deb - parted - Ubuntu - 2.2-5ubuntu5.2 - - - amd64 - 2636 - deb - passwd - Ubuntu - 1:4.1.4.2-1ubuntu2.2 - - - amd64 - 244 - deb - patch - Ubuntu - 2.6-2ubuntu1 - - - amd64 - 300 - deb - patchutils - Ubuntu - 0.3.1-2build1 - - - all - 1132 - deb - pbuilder - Ubuntu - 0.196ubuntu1 - - - amd64 - 592 - deb - pciutils - Ubuntu - 1:3.0.0-4ubuntu17 - - - amd64 - 18432 - deb - perl - Ubuntu - 5.10.1-8ubuntu2.1 - - - amd64 - 4908 - deb - perl-base - Ubuntu - 5.10.1-8ubuntu2.1 - - - all - 15852 - deb - perl-modules - Ubuntu - 5.10.1-8ubuntu2.1 - - - amd64 - 480 - deb - plymouth - Ubuntu - 0.8.2-2ubuntu2.2 - - - amd64 - 92 - deb - plymouth-theme-ubuntu-text - Ubuntu - 0.8.2-2ubuntu2.2 - - - all - 192 - deb - popularity-contest - Ubuntu - 1.48ubuntu1 - - - amd64 - 3488 - deb - postfix - Ubuntu - 2.7.0-1ubuntu0.2 - - - amd64 - 96 - deb - powermgmt-base - Ubuntu - 1.31 - - - amd64 - 1168 - deb - ppp - Ubuntu - 2.4.5~git20081126t100229-0ubuntu3 - - - all - 900 - deb - pppconfig - Ubuntu - 2.3.18ubuntu2 - - - all - 340 - deb - pppoeconf - Ubuntu - 1.19ubuntu1 - - - amd64 - 808 - deb - procps - Ubuntu - 1:3.2.8-1ubuntu4 - - - amd64 - 556 - deb - psmisc - Ubuntu - 22.10-1 - - - all - 640 - deb - python - Ubuntu - 2.6.5-0ubuntu1 - - - all - 696 - deb - python-apport - Ubuntu - 1.13.3-0ubuntu2 - - - amd64 - 1704 - deb - python-apt - Ubuntu - 0.7.94.2ubuntu6.2 - - - all - 336 - deb - python-central - Ubuntu - 0.6.15ubuntu1 - - - amd64 - 568 - deb - python-dbus - Ubuntu - 0.83.0-1ubuntu3 - - - amd64 - 92 - deb - python-gdbm - Ubuntu - 2.6.5-0ubuntu2 - - - all - 140 - deb - python-gnupginterface - Ubuntu - 0.3.2-9.1 - - - amd64 - 904 - deb - python-gobject - Ubuntu - 2.21.1-0ubuntu3 - - - all - 128 - deb - python-httplib2 - Ubuntu - 0.6.0-1 - - - all - 328 - deb - python-launchpadlib - Ubuntu - 1.6.0-0ubuntu1 - - - all - 308 - deb - python-lazr.restfulclient - Ubuntu - 0.9.11-1ubuntu1.1 - - - all - 172 - deb - python-lazr.uri - Ubuntu - 1.0.2-1 - - - all - 120 - deb - python-minimal - Ubuntu - 2.6.5-0ubuntu1 - - - amd64 - 172 - deb - python-newt - Ubuntu - 0.52.10-5ubuntu1 - - - all - 120 - deb - python-oauth - Ubuntu - 1.0a~svn1124-0ubuntu2 - - - amd64 - 372 - deb - python-openssl - Ubuntu - 0.10-1 - - - amd64 - 120 - deb - python-pam - Ubuntu - 0.4.2-12.1ubuntu1 - - - all - 680 - deb - python-pexpect - Ubuntu - 2.3-1build1 - - - all - 208 - deb - python-pkg-resources - Ubuntu - 0.6.10-4ubuntu1 - - - all - 212 - deb - python-problem-inventory - Ubuntu - 1.13.3-0ubuntu2 - - - amd64 - 272 - deb - python-pycurl - Ubuntu - 7.19.0-3 - - - all - 264 - deb - python-serial - Ubuntu - 2.3-1 - - - amd64 - 528 - deb - python-simplejson - Ubuntu - 2.0.9-1build1 - - - amd64 - 1424 - deb - python-smartpm - Ubuntu - 1.2-5ubuntu0.1 - - - all - 200 - deb - python-support - Ubuntu - 1.0.4ubuntu1 - - - amd64 - 128 - deb - python-twisted-bin - Ubuntu - 10.0.0-2ubuntu2 - - - all - 6716 - deb - python-twisted-core - Ubuntu - 10.0.0-2ubuntu2 - - - all - 460 - deb - python-wadllib - Ubuntu - 1.1.4-1ubuntu1 - - - amd64 - 736 - deb - python-zope.interface - Ubuntu - 3.5.3-1ubuntu2 - - - amd64 - 9632 - deb - python2.6 - Ubuntu - 2.6.5-1ubuntu6 - - - amd64 - 5044 - deb - python2.6-minimal - Ubuntu - 2.6.5-1ubuntu6 - - - all - 132 - deb - readline-common - Ubuntu - 6.1-1 - - - amd64 - 716 - deb - rsync - Ubuntu - 3.0.7-1ubuntu1.1 - - - amd64 - 748 - deb - rsyslog - Ubuntu - 4.2.0-2ubuntu8.1 - - - amd64 - 82872 - deb - rudder-agent - Ubuntu - 4.3.10-lucid0 - - - amd64 - 1052 - deb - screen - Ubuntu - 4.0.3-14ubuntu1.2 - - - amd64 - 972 - deb - sed - Ubuntu - 4.2.1-6 - - - all - 108 - deb - sensible-utils - Ubuntu - 0.0.1ubuntu3 - - - all - 148 - deb - sgml-base - Ubuntu - 1.26 - - - all - 92 - deb - ssl-cert - Ubuntu - 1.0.23ubuntu2 - - - amd64 - 380 - deb - strace - Ubuntu - 4.5.19-2 - - - amd64 - 628 - deb - sudo - Ubuntu - 1.7.2p1-1ubuntu5.3 - - - all - 288 - deb - sysv-rc - Ubuntu - 2.87dsf-4ubuntu17.4 - - - amd64 - 300 - deb - sysvinit-utils - Ubuntu - 2.87dsf-4ubuntu17.4 - - - amd64 - 2464 - deb - tar - Ubuntu - 1.22-2ubuntu1 - - - all - 892 - deb - tasksel - Ubuntu - 2.73ubuntu26 - - - all - 2556 - deb - tasksel-data - Ubuntu - 2.73ubuntu26 - - - amd64 - 200 - deb - tcpd - Ubuntu - 7.6.q-18 - - - amd64 - 1040 - deb - tcpdump - Ubuntu - 4.0.0-6ubuntu3 - - - amd64 - 204 - deb - telnet - Ubuntu - 0.17-36build1 - - - amd64 - 148 - deb - time - Ubuntu - 1.7-23build1 - - - all - 6280 - deb - tzdata - Ubuntu - 2011g-0ubuntu0.10.04 - - - all - 60 - deb - ubuntu-keyring - Ubuntu - 2010.11.09 - - - all - 2608 - deb - ubuntu-serverguide - Ubuntu - 10.04.3 - - - amd64 - 60 - deb - ubuntu-standard - Ubuntu - 1.197 - - - all - 260 - deb - ucf - Ubuntu - 3.0025 - - - amd64 - 1592 - deb - udev - Ubuntu - 151-12.3 - - - all - 748 - deb - ufw - Ubuntu - 0.30pre1-0ubuntu2 - - - amd64 - 396 - deb - unzip - Ubuntu - 6.0-1build1 - - - all - 124 - deb - update-inetd - Ubuntu - 4.35ubuntu0.1 - - - amd64 - 5532 - deb - update-manager-core - Ubuntu - 1:0.134.11 - - - all - 332 - deb - update-notifier-common - Ubuntu - 0.99.3 - - - amd64 - 860 - deb - upstart - Ubuntu - 0.6.5-8 - - - amd64 - 152 - deb - ureadahead - Ubuntu - 0.100.0-4.1.3 - - - amd64 - 572 - deb - usbutils - Ubuntu - 0.86-2ubuntu1 - - - amd64 - 2344 - deb - util-linux - Ubuntu - 2.17.2-0ubuntu1.10.04.2 - - - amd64 - 148 - deb - uuid-runtime - Ubuntu - 2.17.2-0ubuntu1.10.04.2 - - - amd64 - 1900 - deb - vim - Ubuntu - 2:7.2.330-1ubuntu3 - - - amd64 - 380 - deb - vim-common - Ubuntu - 2:7.2.330-1ubuntu3 - - - all - 24772 - deb - vim-runtime - Ubuntu - 2:7.2.330-1ubuntu3 - - - amd64 - 840 - deb - vim-tiny - Ubuntu - 2:7.2.330-1ubuntu3 - - - amd64 - 1976 - deb - w3m - Ubuntu - 0.5.2-2.1ubuntu1.2 - - - amd64 - 116 - deb - wdiff - Ubuntu - 0.5-19 - - - amd64 - 2324 - deb - wget - Ubuntu - 1.12-1.1ubuntu2.1 - - - amd64 - 100 - deb - whiptail - Ubuntu - 0.52.10-5ubuntu1 - - - amd64 - 116 - deb - wireless-crda - Ubuntu - 1.12 - - - amd64 - 452 - deb - wireless-tools - Ubuntu - 30~pre9-3ubuntu4 - - - amd64 - 972 - deb - wpasupplicant - Ubuntu - 0.6.9-3ubuntu3 - - - amd64 - 104 - deb - xauth - Ubuntu - 1:1.0.4-1 - - - all - 3388 - deb - xkb-data - Ubuntu - 1.8-1ubuntu8.1~10.04.1 - - - all - 260 - deb - xml-core - Ubuntu - 0.13 - - - amd64 - 476 - deb - xz-utils - Ubuntu - 4.999.9beta+20091116-1 - - - amd64 - 176 - deb - zlib1g - Ubuntu - 1:1.2.3.3.dfsg-15ubuntu1 - - - amd64 - 400 - deb - zlib1g-dev - Ubuntu - 1:1.2.3.3.dfsg-15ubuntu1 - - - Virtual - 8388 - 6900 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /opt/rudder/bin/perl - v5.22.0 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - ubuntu-10-04-64-2017-02-02-16-32-50 -fb0096f3-a928-454d-9776-e8079d48cdd8 -root - -Community - -6D43E201-171A-F227-DC9A-F48179591DD9 ------BEGIN RSA PUBLIC KEY----- -MIIBCgKCAQEAxV6J9wZyte9pcrAKF7+I66kz7K/Qr6EmGrQz7uWgnDd5RpybhhZa -cldhl7GywwRne21eTkSYfYJZgkN9CivtdS7YffX6J7G82B60EcjcDeLvmCYWPo8B -zNO+ewCoA8XMRZakBB3OdZV6JeXpfbEdwYr8GIyVrg2RKodexUDbVOY8H9pGp1GG -shGY9qmVY1zyEIQbFCn5dCtvpWS8CjVYu8B8NOdfAk6wGywpuKiwgyV625HKvPyu -oa6WCr3gJ37JUMtgFPNu3JwCFHnDVouG51RsqbbZzyuiWaJ0uGHVgXurZZ1qWdgE -QmltnCYkXUMnN2W4e4VTbXLJ5ecDIdXnGwIDAQAB ------END RSA PUBLIC KEY----- -root - - - GenuineIntel - 6 - 2 - QEMU Virtual CPU version 0.12 - 3 - 1995.191 - - - - - - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs.sign deleted file mode 100644 index 3030b333e66..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-10-04-64-fb0096f3-a928-454d-9776-e8079d48cdd8.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=9d1b618973d6e58cf2cf8a822ec28a57536ab65792f776bc658952391114342b8b0c65bfc3d88881894ce564c101c755bcfc667f3a206ef4edb1c61fdfcf8cc1bbf19dfe30abf79cc46d5931112c37911f0a78c1012f2eeee8cee91e559ec44a5de8f552878b1632dfa4f5b379ca96de1d987efbb2bb40c8c268940c8accc4f38f2af54d2d5ebd0e124bf545c163a173557815bc2a1e83d965a1bbcd038241b14d0efc7022889d93143ed8338dacb9633211f443d88780c598a126aeb39d9c5eb1986dc8bd3d5ade1729cb24b38f72566732fb22c90fd9815c3b803907136719f5212832f9c8b107046316c115bcbcbfa391cd85da57acc3cb22b056c97a33d7 -hostname=ubuntu-10-04-64.labo.normation.com -keydate=2017-02-02 16:32:42.670418908 +0100 -keyid=21D5E71B diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs deleted file mode 100644 index 1889f6bf6d4..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs +++ /dev/null @@ -1,5443 +0,0 @@ - - - - - - -www-data -sync -list -whoopsie -nicolas.charles -postgres -mcerda -irc -libuuid -daemon -news -syslog -gnats -man -sys -nobody -uucp -landscape -lp -bin -proxy -messagebus -sshd -backup -mail -games -francois.armand - - - 2019-05-12 05:40:14 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371SB PIIX3 USB [Natoma/Triton II] - uhci_hcd - Intel Corporation - 82371SB PIIX3 USB [Natoma/Triton II] - 0c03 - 00:01.2 - 7020 - 01 - USB controller - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - GD 5446 - Cirrus Logic - GD 5446 - 0300 - 00:02.0 - 00b8 - VGA compatible controller - 1013 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:03.0 - 1000 - Ethernet controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:04.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 0500 - 00:05.0 - 1002 - RAM memory - 1af4 - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext4 - 1570 - e6ce49ba-d452-4d8b-8316-1d3b9bd7e4bc - 4077 - / - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - MANPATH - /usr/share/man:/usr/local/share/man:/opt/rudder/share/man:/opt/rudder/share/man - - - PWD - /var/rudder - - - TERM - - - - PATH - /usr/bin:/bin:/sbin:/usr/sbin:/var/rudder/cfengine-community/bin:/sbin:/usr/sbin:/var/rudder/cfengine-community/bin:/var/rudder/cfengine-community/bin - - - x86_64-linux-gnu-thread-multi - Other - 131071 - 192.168.180.1 - 192.168.180.1 - 36 - 192.168.180.67 - 239 - ubuntu-12-04-64 - #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 - Ubuntu 12.04.5 LTS - 3.2.0-23-generic - 1 - QEMU Virtual CPU version 0.12 - D3699845-6F07-431C-8C0E-AB6AD88F00AB - QEMU - priv.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 4 - mcerda - adm - - - 24 - mcerda - cdrom - - - 27 - mcerda - sudo - - - 30 - mcerda - dip - - - 46 - mcerda - plugdev - - - 111 - mcerda - lpadmin - - - 112 - mcerda - sambashare - - - 113 - postgres - ssl-cert - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /bin/sh - - - /bin - 2 - bin - bin - /bin/sh - - - /dev - 3 - sys - sys - /bin/sh - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /bin/sh - - - /var/cache/man - 6 - man - man - /bin/sh - - - /var/spool/lpd - 7 - lp - lp - /bin/sh - - - /var/mail - 8 - mail - mail - /bin/sh - - - /var/spool/news - 9 - news - news - /bin/sh - - - /var/spool/uucp - 10 - uucp - uucp - /bin/sh - - - /bin - 13 - proxy - proxy - /bin/sh - - - /var/www - 33 - www-data - www-data - /bin/sh - - - /var/backups - 34 - backup - backup - /bin/sh - - - /var/list - 38 - list - Mailing List Manager - /bin/sh - - - /var/run/ircd - 39 - irc - ircd - /bin/sh - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /bin/sh - - - /nonexistent - 65534 - nobody - nobody - /bin/sh - - - /var/lib/libuuid - 100 - libuuid - - /bin/sh - - - /home/syslog - 101 - syslog - - /bin/false - - - /var/run/dbus - 102 - messagebus - - /bin/false - - - /var/lib/landscape - 103 - landscape - - /bin/false - - - /var/run/sshd - 104 - sshd - - /usr/sbin/nologin - - - /nonexistent - 105 - whoopsie - - /bin/false - - - /home/mcerda - 1000 - mcerda - Matthieu CERDA,,, - /bin/bash - - - /home/francois.armand - 1001 - francois.armand - Fran?ois ARMAND - /bin/bash - - - /home/nicolas.charles - 1002 - nicolas.charles - Nicolas CHARLES - /bin/bash - - - /var/lib/postgresql - 106 - postgres - PostgreSQL administrator,,, - /bin/bash - - - 256 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.180.67 - 192.168.180.1 - 255.255.255.128 - 192.168.180.0 - 52:54:00:34:e0:b3 - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fe34:e0b3 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:34:e0:b3 - Up - ethernet - 0 - - - x86_64 - 2019-04-04 20:01:38 - priv.normation.com - ubuntu-12-04-64.priv.normation.com - Ubuntu 12.04.5 LTS - 007f0101 - linux - 3.2.0-23-generic - Ubuntu - - Europe/Paris - +0200 - - 12.04 - - - /sbin/init - 0.0 - 0.5 - 1 - 2019-04-04 20:01 - ? - root - 24328 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-04-04 20:01 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2019-04-04 20:01 - ? - root - 0 - - - [kworker/u:0] - 0.0 - 0.0 - 5 - 2019-04-04 20:01 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 6 - 2019-04-04 20:01 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 7 - 2019-04-04 20:01 - ? - root - 0 - - - [cpuset] - 0.0 - 0.0 - 8 - 2019-04-04 20:01 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 9 - 2019-04-04 20:01 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 10 - 2019-04-04 20:01 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 11 - 2019-04-04 20:01 - ? - root - 0 - - - [sync_supers] - 0.0 - 0.0 - 12 - 2019-04-04 20:01 - ? - root - 0 - - - [bdi-default] - 0.0 - 0.0 - 13 - 2019-04-04 20:01 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 14 - 2019-04-04 20:01 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 15 - 2019-04-04 20:01 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 16 - 2019-04-04 20:01 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 17 - 2019-04-04 20:01 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 18 - 2019-04-04 20:01 - ? - root - 0 - - - [kworker/u:1] - 0.0 - 0.0 - 20 - 2019-04-04 20:01 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 21 - 2019-04-04 20:01 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 22 - 2019-04-04 20:01 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 23 - 2019-04-04 20:01 - ? - root - 0 - - - [fsnotify_mark] - 0.0 - 0.0 - 24 - 2019-04-04 20:01 - ? - root - 0 - - - [ecryptfs-kthrea] - 0.0 - 0.0 - 25 - 2019-04-04 20:01 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 26 - 2019-04-04 20:01 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 34 - 2019-04-04 20:01 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 35 - 2019-04-04 20:01 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 36 - 2019-04-04 20:01 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 57 - 2019-04-04 20:01 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 247 - 2019-04-04 20:01 - ? - root - 0 - - - [ext4-dio-unwrit] - 0.0 - 0.0 - 248 - 2019-04-04 20:01 - ? - root - 0 - - - upstart-udev-bridge --daemon - 0.0 - 0.1 - 326 - 2019-04-04 20:05 - ? - root - 17240 - - - /sbin/udevd --daemon - 0.0 - 0.3 - 328 - 2019-04-04 20:05 - ? - root - 21744 - - - /sbin/udevd --daemon - 0.0 - 0.3 - 462 - 2019-04-04 20:05 - ? - root - 21736 - - - /sbin/udevd --daemon - 0.0 - 0.3 - 463 - 2019-04-04 20:05 - ? - root - 21736 - - - [vballoon] - 0.0 - 0.0 - 479 - 2019-04-04 20:05 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 481 - 2019-04-04 20:05 - ? - root - 0 - - - upstart-socket-bridge --daemon - 0.0 - 0.1 - 538 - 2019-04-04 20:06 - ? - root - 15196 - - - dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth0 - 0.0 - 0.3 - 781 - 2019-04-04 20:06 - ? - root - 7268 - - - dbus-daemon --system --fork --activation=upstart - 0.0 - 0.1 - 851 - 2019-04-04 20:06 - ? - 102 - 23824 - - - rsyslogd -c5 - 0.0 - 0.2 - 872 - 2019-04-04 20:06 - ? - syslog - 413680 - - - /sbin/getty -8 38400 tty4 - 0.0 - 0.0 - 953 - 2019-04-04 20:06 - tty4 - root - 14512 - - - /sbin/getty -8 38400 tty5 - 0.0 - 0.0 - 960 - 2019-04-04 20:06 - tty5 - root - 14512 - - - /sbin/getty -8 38400 tty2 - 0.0 - 0.0 - 968 - 2019-04-04 20:06 - tty2 - root - 14512 - - - /sbin/getty -8 38400 tty3 - 0.0 - 0.0 - 970 - 2019-04-04 20:06 - tty3 - root - 14512 - - - /sbin/getty -8 38400 tty6 - 0.0 - 0.0 - 974 - 2019-04-04 20:06 - tty6 - root - 14512 - - - whoopsie - 0.0 - 0.7 - 991 - 2019-04-04 20:06 - ? - whoopsie - 130772 - - - acpid -c /etc/acpi/events -s /var/run/acpid.socket - 0.0 - 0.0 - 994 - 2019-04-04 20:06 - ? - root - 4336 - - - cron - 0.0 - 0.1 - 1031 - 2019-04-04 20:06 - ? - root - 19116 - - - atd - 0.0 - 0.0 - 1032 - 2019-04-04 20:06 - ? - daemon - 16912 - - - [flush-253:0] - 0.0 - 0.0 - 1093 - 2019-04-04 20:06 - ? - root - 0 - - - [kworker/0:0] - 0.0 - 0.0 - 1353 - 2019-05-12 05:35 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.2 - 1356 - 2019-05-12 05:39 - ? - root - 4408 - - - /var/rudder/cfengine-community/bin/cf-agent - 6.9 - 7.9 - 1368 - 2019-05-12 05:39 - ? - root - 71496 - - - /usr/sbin/apache2 -k start - 0.0 - 1.1 - 1466 - 2019-04-04 20:06 - ? - root - 74316 - - - /sbin/getty -8 38400 tty1 - 0.0 - 0.0 - 1551 - 2019-04-04 20:06 - tty1 - root - 14512 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs - 0.0 - 0.2 - 2363 - 2019-05-12 05:40 - ? - root - 4408 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs - 4.0 - 16.1 - 2369 - 2019-05-12 05:40 - ? - root - 93804 - - - [kworker/0:2] - 0.0 - 0.0 - 2370 - 2019-05-12 05:40 - ? - root - 0 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.2 - 2379 - 2019-05-12 05:40 - ? - root - 4408 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.4 - 2380 - 2019-05-12 05:40 - ? - root - 15280 - - - /var/rudder/cfengine-community/bin/cf-serverd - 0.0 - 2.4 - 5346 - 2019-05-10 12:26 - ? - root - 50472 - - - /var/rudder/cfengine-community/bin/cf-execd - 0.0 - 1.8 - 5519 - 2019-05-10 12:26 - ? - root - 250584 - - - /usr/sbin/apache2 -k start - 0.0 - 0.9 - 15237 - 2019-05-05 07:51 - ? - www-data - 74332 - - - /usr/sbin/apache2 -k start - 0.0 - 0.9 - 15238 - 2019-05-05 07:51 - ? - www-data - 363280 - - - /usr/sbin/apache2 -k start - 0.0 - 0.9 - 15239 - 2019-05-05 07:51 - ? - www-data - 363280 - - - [kworker/0:1] - 0.0 - 0.0 - 32698 - 2019-05-12 05:30 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEA2eHrD//V1/S/acgXvu5P5Lc4rhbb66j9sNEeE5k1tblJcb3SG77d -63LVGGhdXGUn2KtePs3R00hSZwTqvAPSjBhXf9agWR6my3GWZlDHWG3WyD8LHcdr -kKvZLQPPsCQC6RwLfA+jC0LjmkbwENfS5/tQuMX8vlYHtJ5ci7X7WwerCbJUvFrv -teyn3yKuQaIAcKLsrDEH79qWeYzH/NgeAlXnRt3pp/RTfYhsSxQ/VnYdwV1T1lkp -R15eTYdw5JFuD7zfMuoQI6k+aKBUsff0shwiocx7ru1sWFDvcPpAUQ/SufjmqWgO -ABDXeEZ72tjwyP/Hy0tPr6LCbKz0ZUv+YwIBIw== ------END RSA PUBLIC KEY----- - - root - orchestrateur-5.labo.normation.com - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - ubuntu-12-04-64.labo.normation.com - - 78628ad3-eb43-4136-9486-81cdd15d8b0c - - - amd64 - 316 - deb - accountsservice - Ubuntu - 0.6.15-2ubuntu9.7 - - - amd64 - 156 - deb - acpid - Ubuntu - 1:2.0.10-1ubuntu3 - - - all - 568 - deb - adduser - Ubuntu - 3.113ubuntu2 - - - amd64 - 224 - deb - anacron - Ubuntu - 2.3-14ubuntu1 - - - amd64 - 29 - deb - apache2 - Ubuntu - 2.2.22-1ubuntu1.11 - - - amd64 - 55 - deb - apache2-mpm-worker - Ubuntu - 2.2.22-1ubuntu1.11 - - - amd64 - 346 - deb - apache2-utils - Ubuntu - 2.2.22-1ubuntu1.11 - - - amd64 - 3606 - deb - apache2.2-bin - Ubuntu - 2.2.22-1ubuntu1.11 - - - amd64 - 800 - deb - apache2.2-common - Ubuntu - 2.2.22-1ubuntu1.11 - - - amd64 - 1061 - deb - apparmor - Ubuntu - 2.7.102-0ubuntu3.11 - - - all - 992 - deb - apport - Ubuntu - 2.0.1-0ubuntu17.15 - - - all - 75 - deb - apport-symptoms - Ubuntu - 0.16.1 - - - amd64 - 3180 - deb - apt - Ubuntu - 0.8.16~exp12ubuntu10.27 - - - amd64 - 174 - deb - apt-transport-https - Ubuntu - 0.8.16~exp12ubuntu10.27 - - - amd64 - 553 - deb - apt-utils - Ubuntu - 0.8.16~exp12ubuntu10.27 - - - all - 334 - deb - apt-xapian-index - Ubuntu - 0.44ubuntu5.1 - - - amd64 - 7064 - deb - aptitude - Ubuntu - 0.6.6-1ubuntu1.2 - - - amd64 - 177 - deb - at - Ubuntu - 3.1.13-1ubuntu1 - - - all - 676 - deb - backup-manager - Ubuntu - 0.7.9-3 - - - amd64 - 419 - deb - base-files - Ubuntu - 6.5ubuntu6.8 - - - amd64 - 165 - deb - base-passwd - Ubuntu - 3.5.24 - - - amd64 - 1416 - deb - bash - Ubuntu - 4.2-2ubuntu2.6 - - - all - 640 - deb - bash-completion - Ubuntu - 1:1.3-1ubuntu8.1 - - - amd64 - 265 - deb - bc - Ubuntu - 1.06.95-2ubuntu1 - - - amd64 - 173 - deb - bind9-host - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 8568 - deb - binutils - Ubuntu - 2.22-6ubuntu1.4 - - - amd64 - 540 - deb - bsdmainutils - Ubuntu - 8.2.3ubuntu1 - - - amd64 - 196 - deb - bsdutils - Ubuntu - 1:2.20.1-1ubuntu3.1 - - - amd64 - 37 - deb - build-essential - Ubuntu - 11.5ubuntu2.1 - - - amd64 - 363 - deb - busybox-initramfs - Ubuntu - 1:1.18.5-1ubuntu4.1 - - - amd64 - 1873 - deb - busybox-static - Ubuntu - 1:1.18.5-1ubuntu4.1 - - - all - 418 - deb - byobu - Ubuntu - 5.17-0ubuntu1 - - - amd64 - 114 - deb - bzip2 - Ubuntu - 1.0.6-1 - - - all - 420 - deb - ca-certificates - Ubuntu - 20160104ubuntu0.12.04.1 - - - all - 85 - deb - command-not-found - Ubuntu - 0.2.46ubuntu6 - - - amd64 - 2911 - deb - command-not-found-data - Ubuntu - 0.2.46ubuntu6 - - - all - 1522 - deb - console-setup - Ubuntu - 1.70ubuntu5 - - - amd64 - 5496 - deb - coreutils - Ubuntu - 8.13-3ubuntu3.3 - - - amd64 - 324 - deb - cpio - Ubuntu - 2.11-7ubuntu3.2 - - - amd64 - 84 - deb - cpp - Ubuntu - 4:4.6.3-1ubuntu5 - - - amd64 - 11490 - deb - cpp-4.6 - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 96 - deb - crda - Ubuntu - 1.1.2-1ubuntu1 - - - amd64 - 301 - deb - cron - Ubuntu - 3.0pl1-120ubuntu4 - - - amd64 - 346 - deb - curl - Ubuntu - 7.22.0-3ubuntu4.17 - - - amd64 - 215 - deb - dash - Ubuntu - 0.5.7-2ubuntu2 - - - all - 1840 - deb - dbconfig-common - Ubuntu - 1.8.47 - - - amd64 - 936 - deb - dbus - Ubuntu - 1.4.18-1ubuntu1.8 - - - amd64 - 133 - deb - dbus-x11 - Ubuntu - 1.4.18-1ubuntu1.8 - - - amd64 - 292 - deb - dctrl-tools - Ubuntu - 2.18ubuntu1 - - - all - 609 - deb - debconf - Ubuntu - 1.5.42ubuntu1 - - - all - 1075 - deb - debconf-i18n - Ubuntu - 1.5.42ubuntu1 - - - amd64 - 216 - deb - debfoster - Ubuntu - 2.7-1.1 - - - all - 973 - deb - debhelper - Ubuntu - 9.20120115ubuntu3 - - - all - 64 - deb - debian-archive-keyring - Ubuntu - 2010.08.28 - - - amd64 - 218 - deb - debianutils - Ubuntu - 4.2.1ubuntu2 - - - all - 225 - deb - debootstrap - Ubuntu - 1.0.40~ubuntu0.12 - - - amd64 - 592 - deb - deborphan - Ubuntu - 1.7.28.5 - - - amd64 - 1502 - deb - devscripts - Ubuntu - 2.11.6ubuntu1.7 - - - all - 77 - deb - dh-apparmor - Ubuntu - 2.7.102-0ubuntu3.11 - - - amd64 - 1225 - deb - dialog - Ubuntu - 1.1-20111020-1 - - - amd64 - 88 - deb - diffstat - Ubuntu - 1.54-1 - - - amd64 - 444 - deb - diffutils - Ubuntu - 1:3.2-1ubuntu1 - - - amd64 - 153 - deb - dmidecode - Ubuntu - 2.11-4ubuntu0.1 - - - amd64 - 158 - deb - dmsetup - Ubuntu - 2:1.02.48-4ubuntu7.4 - - - amd64 - 364 - deb - dnsutils - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 192 - deb - dosfstools - Ubuntu - 3.0.12-1ubuntu1.3 - - - amd64 - 5932 - deb - dpkg - Ubuntu - 1.16.1.2ubuntu7.8 - - - all - 1163 - deb - dpkg-dev - Ubuntu - 1.16.1.2ubuntu7.8 - - - all - 232 - deb - dput - Ubuntu - 0.9.6.2ubuntu1 - - - amd64 - 370 - deb - e2fslibs - Ubuntu - 1.42-1ubuntu2.3 - - - amd64 - 2330 - deb - e2fsprogs - Ubuntu - 1.42-1ubuntu2.3 - - - amd64 - 127 - deb - ed - Ubuntu - 1.5-3 - - - amd64 - 152 - deb - eject - Ubuntu - 2.1.5+deb1+cvs20081104-9ubuntu0.1 - - - amd64 - 320 - deb - expect - Ubuntu - 5.45-2 - - - amd64 - 313 - deb - fakeroot - Ubuntu - 1.18.2-1 - - - amd64 - 109 - deb - file - Ubuntu - 5.09-2ubuntu0.6 - - - amd64 - 832 - deb - findutils - Ubuntu - 4.4.2-4ubuntu1 - - - all - 58 - deb - fonts-ubuntu-font-family-console - Ubuntu - 0.80-0ubuntu2 - - - all - 67 - deb - friendly-recovery - Ubuntu - 0.2.25 - - - amd64 - 176 - deb - ftp - Ubuntu - 0.17-25 - - - amd64 - 156 - deb - fuse - Ubuntu - 2.8.6-2ubuntu2.1 - - - amd64 - 34 - deb - g++ - Ubuntu - 4:4.6.3-1ubuntu5 - - - amd64 - 14161 - deb - g++-4.6 - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 41 - deb - gcc - Ubuntu - 4:4.6.3-1ubuntu5 - - - amd64 - 15677 - deb - gcc-4.6 - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 194 - deb - gcc-4.6-base - Ubuntu - 4.6.3-1ubuntu5 - - - i386 - 194 - deb - gcc-4.6-base - Ubuntu - 4.6.3-1ubuntu5 - - - all - 6881 - deb - geoip-database - Ubuntu - 20111220-1 - - - amd64 - 4124 - deb - gettext - Ubuntu - 0.18.1.1-5ubuntu3 - - - amd64 - 368 - deb - gettext-base - Ubuntu - 0.18.1.1-5ubuntu3 - - - amd64 - 575 - deb - gir1.2-glib-2.0 - Ubuntu - 1.32.0-1 - - - amd64 - 13636 - deb - git - Ubuntu - 1:1.7.9.5-1ubuntu0.3 - - - all - 1094 - deb - git-man - Ubuntu - 1:1.7.9.5-1ubuntu0.3 - - - amd64 - 1940 - deb - gnupg - Ubuntu - 1.4.11-3ubuntu2.10 - - - amd64 - 441 - deb - gpgv - Ubuntu - 1.4.11-3ubuntu2.10 - - - amd64 - 608 - deb - grep - Ubuntu - 2.10-1 - - - amd64 - 2779 - deb - groff-base - Ubuntu - 1.21-7 - - - amd64 - 5048 - deb - grub-common - Ubuntu - 1.99-21ubuntu3.20 - - - amd64 - 47 - deb - grub-gfxpayload-lists - Ubuntu - 0.6 - - - amd64 - 464 - deb - grub-pc - Ubuntu - 1.99-21ubuntu3.20 - - - amd64 - 1896 - deb - grub-pc-bin - Ubuntu - 1.99-21ubuntu3.20 - - - amd64 - 140 - deb - grub2-common - Ubuntu - 1.99-21ubuntu3.20 - - - amd64 - 219 - deb - gzip - Ubuntu - 1.4-1ubuntu2 - - - amd64 - 260 - deb - hdparm - Ubuntu - 9.37-0ubuntu3.1 - - - amd64 - 116 - deb - hostname - Ubuntu - 3.06ubuntu1 - - - amd64 - 304 - deb - html2text - Ubuntu - 1.3.2a-15 - - - amd64 - 186 - deb - ifupdown - Ubuntu - 0.7~beta2ubuntu11.1 - - - amd64 - 370 - deb - info - Ubuntu - 4.13a.dfsg.1-8ubuntu2 - - - all - 363 - deb - initramfs-tools - Ubuntu - 0.99ubuntu13.5 - - - amd64 - 120 - deb - initramfs-tools-bin - Ubuntu - 0.99ubuntu13.5 - - - amd64 - 223 - deb - initscripts - Ubuntu - 2.88dsf-13.10ubuntu11.1 - - - amd64 - 221 - deb - insserv - Ubuntu - 1.14.0-2.1ubuntu2 - - - amd64 - 218 - deb - install-info - Ubuntu - 4.13a.dfsg.1-8ubuntu2 - - - all - 75 - deb - installation-report - Ubuntu - 2.46ubuntu1 - - - all - 140 - deb - intltool-debian - Ubuntu - 0.35.0+20060710.1 - - - amd64 - 120 - deb - iotop - Ubuntu - 0.4.4-4 - - - amd64 - 983 - deb - iproute - Ubuntu - 20111117-1ubuntu2.3 - - - amd64 - 1430 - deb - iptables - Ubuntu - 1.4.12-1ubuntu5 - - - amd64 - 140 - deb - iputils-ping - Ubuntu - 3:20101006-1ubuntu1 - - - amd64 - 102 - deb - iputils-tracepath - Ubuntu - 3:20101006-1ubuntu1 - - - amd64 - 93 - deb - irqbalance - Ubuntu - 0.56-1ubuntu4 - - - amd64 - 734 - deb - isc-dhcp-client - Ubuntu - 4.1.ESV-R4-0ubuntu5.12 - - - amd64 - 673 - deb - isc-dhcp-common - Ubuntu - 4.1.ESV-R4-0ubuntu5.12 - - - all - 13099 - deb - iso-codes - Ubuntu - 3.31-1 - - - amd64 - 996 - deb - kbd - Ubuntu - 1.15.2-3ubuntu4 - - - all - 2172 - deb - keyboard-configuration - Ubuntu - 1.70ubuntu5 - - - amd64 - 367 - deb - klibc-utils - Ubuntu - 1.5.25-1ubuntu2 - - - all - 1516 - deb - krb5-locales - Ubuntu - 1.10+dfsg~beta1-2ubuntu0.7 - - - amd64 - 1208 - deb - landscape-common - Ubuntu - 12.04.3-0ubuntu1 - - - all - 2610 - deb - language-selector-common - Ubuntu - 0.79.4 - - - amd64 - 324 - deb - less - Ubuntu - 444-1ubuntu1 - - - amd64 - 106 - deb - libaccountsservice0 - Ubuntu - 0.6.15-2ubuntu9.7 - - - amd64 - 76 - deb - libacl1 - Ubuntu - 2.2.51-5ubuntu1 - - - i386 - 75 - deb - libacl1 - Ubuntu - 2.2.51-5ubuntu1 - - - all - 160 - deb - libalgorithm-diff-perl - Ubuntu - 1.19.02-2 - - - amd64 - 87 - deb - libalgorithm-diff-xs-perl - Ubuntu - 0.04-2build2 - - - all - 80 - deb - libalgorithm-merge-perl - Ubuntu - 0.08-2 - - - amd64 - 295 - deb - libapr1 - Ubuntu - 1.4.6-1 - - - amd64 - 217 - deb - libaprutil1 - Ubuntu - 1.3.12+dfsg-3 - - - amd64 - 67 - deb - libaprutil1-dbd-sqlite3 - Ubuntu - 1.3.12+dfsg-3 - - - amd64 - 59 - deb - libaprutil1-ldap - Ubuntu - 1.3.12+dfsg-3 - - - amd64 - 823 - deb - libapt-inst1.4 - Ubuntu - 0.8.16~exp12ubuntu10.27 - - - amd64 - 250 - deb - libapt-pkg-perl - Ubuntu - 0.1.25build2 - - - amd64 - 2969 - deb - libapt-pkg4.12 - Ubuntu - 0.8.16~exp12ubuntu10.27 - - - amd64 - 797 - deb - libasn1-8-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 56 - deb - libattr1 - Ubuntu - 1:2.4.46-5ubuntu1 - - - i386 - 55 - deb - libattr1 - Ubuntu - 1:2.4.46-5ubuntu1 - - - amd64 - 102 - deb - libbind9-80 - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 249 - deb - libblkid1 - Ubuntu - 2.20.1-1ubuntu3.1 - - - amd64 - 165 - deb - libboost-iostreams1.46.1 - Ubuntu - 1.46.1-7ubuntu3 - - - amd64 - 125 - deb - libbsd0 - Ubuntu - 0.3.0-2 - - - amd64 - 113 - deb - libbz2-1.0 - Ubuntu - 1.0.6-1 - - - i386 - 112 - deb - libbz2-1.0 - Ubuntu - 1.0.6-1 - - - amd64 - 3468 - deb - libc-bin - Ubuntu - 2.15-0ubuntu10.18 - - - amd64 - 375 - deb - libc-dev-bin - Ubuntu - 2.15-0ubuntu10.18 - - - amd64 - 10420 - deb - libc6 - Ubuntu - 2.15-0ubuntu10.18 - - - i386 - 9141 - deb - libc6 - Ubuntu - 2.15-0ubuntu10.18 - - - amd64 - 11616 - deb - libc6-dev - Ubuntu - 2.15-0ubuntu10.18 - - - amd64 - 50 - deb - libcap-ng0 - Ubuntu - 0.6.6-1ubuntu1 - - - amd64 - 56 - deb - libcap2 - Ubuntu - 1:2.22-1ubuntu3 - - - all - 104 - deb - libclass-accessor-perl - Ubuntu - 0.34-1 - - - all - 55 - deb - libclass-isa-perl - Ubuntu - 0.36-3 - - - amd64 - 65 - deb - libclone-perl - Ubuntu - 0.31-1build3 - - - amd64 - 97 - deb - libcomerr2 - Ubuntu - 1.42-1ubuntu2.3 - - - i386 - 96 - deb - libcomerr2 - Ubuntu - 1.42-1ubuntu2.3 - - - all - 80 - deb - libcommon-sense-perl - Ubuntu - 3.4-1 - - - amd64 - 334 - deb - libcroco3 - Ubuntu - 0.6.5-1ubuntu0.1 - - - amd64 - 548 - deb - libcurl3 - Ubuntu - 7.22.0-3ubuntu4.17 - - - amd64 - 527 - deb - libcurl3-gnutls - Ubuntu - 7.22.0-3ubuntu4.17 - - - amd64 - 1072 - deb - libcwidget3 - Ubuntu - 0.5.16-3.1ubuntu1 - - - amd64 - 1536 - deb - libdb5.1 - Ubuntu - 5.1.25-11build1 - - - i386 - 1615 - deb - libdb5.1 - Ubuntu - 5.1.25-11build1 - - - amd64 - 363 - deb - libdbus-1-3 - Ubuntu - 1.4.18-1ubuntu1.8 - - - amd64 - 226 - deb - libdbus-glib-1-2 - Ubuntu - 0.98-1ubuntu1.1 - - - amd64 - 201 - deb - libdevmapper1.02.1 - Ubuntu - 2:1.02.48-4ubuntu7.4 - - - all - 72 - deb - libdigest-hmac-perl - Ubuntu - 1.03+dfsg-1 - - - amd64 - 1619 - deb - libdns81 - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - all - 1256 - deb - libdpkg-perl - Ubuntu - 1.16.1.2ubuntu7.8 - - - amd64 - 194 - deb - libdrm-intel1 - Ubuntu - 2.4.52-1~precise2 - - - i386 - 193 - deb - libdrm-intel1 - Ubuntu - 2.4.52-1~precise2 - - - amd64 - 87 - deb - libdrm-nouveau1a - Ubuntu - 2.4.52-1~precise2 - - - i386 - 86 - deb - libdrm-nouveau1a - Ubuntu - 2.4.52-1~precise2 - - - amd64 - 116 - deb - libdrm-radeon1 - Ubuntu - 2.4.52-1~precise2 - - - i386 - 119 - deb - libdrm-radeon1 - Ubuntu - 2.4.52-1~precise2 - - - amd64 - 102 - deb - libdrm2 - Ubuntu - 2.4.52-1~precise2 - - - i386 - 105 - deb - libdrm2 - Ubuntu - 2.4.52-1~precise2 - - - amd64 - 182 - deb - libedit2 - Ubuntu - 2.11-20080614-3ubuntu2 - - - amd64 - 160 - deb - libelf1 - Ubuntu - 0.152-1ubuntu3.1 - - - all - 78 - deb - libemail-valid-perl - Ubuntu - 0.185-1 - - - all - 57 - deb - libencode-locale-perl - Ubuntu - 1.02-2 - - - amd64 - 359 - deb - libept1.4.12 - Ubuntu - 1.0.6~exp1ubuntu1 - - - all - 96 - deb - liberror-perl - Ubuntu - 0.17-1 - - - amd64 - 313 - deb - libevent-2.0-5 - Ubuntu - 2.0.16-stable-1ubuntu0.2 - - - amd64 - 388 - deb - libexpat1 - Ubuntu - 2.0.1-7.2ubuntu1.4 - - - all - 60 - deb - libexporter-lite-perl - Ubuntu - 0.02-2 - - - amd64 - 88 - deb - libffi6 - Ubuntu - 3.0.11~rc1-5 - - - i386 - 80 - deb - libffi6 - Ubuntu - 3.0.11~rc1-5 - - - all - 55 - deb - libfile-listing-perl - Ubuntu - 6.03-1 - - - all - 120 - deb - libfont-afm-perl - Ubuntu - 1.20-1 - - - amd64 - 816 - deb - libfreetype6 - Ubuntu - 2.4.8-1ubuntu2.6 - - - amd64 - 196 - deb - libfribidi0 - Ubuntu - 0.19.2-1 - - - amd64 - 305 - deb - libfuse2 - Ubuntu - 2.8.6-2ubuntu2.1 - - - amd64 - 254 - deb - libgc1c2 - Ubuntu - 1:7.1-8ubuntu0.12.04.3 - - - amd64 - 119 - deb - libgcc1 - Ubuntu - 1:4.6.3-1ubuntu5 - - - i386 - 146 - deb - libgcc1 - Ubuntu - 1:4.6.3-1ubuntu5 - - - amd64 - 590 - deb - libgcrypt11 - Ubuntu - 1.5.0-3ubuntu0.6 - - - amd64 - 132 - deb - libgdbm3 - Ubuntu - 1.8.3-10 - - - amd64 - 303 - deb - libgeoip1 - Ubuntu - 1.4.8+dfsg-2 - - - amd64 - 348 - deb - libgettextpo0 - Ubuntu - 0.18.1.1-5ubuntu3 - - - amd64 - 252 - deb - libgirepository-1.0-1 - Ubuntu - 1.32.0-1 - - - amd64 - 3751 - deb - libglib2.0-0 - Ubuntu - 2.32.4-0ubuntu1 - - - i386 - 3787 - deb - libglib2.0-0 - Ubuntu - 2.32.4-0ubuntu1 - - - all - 868 - deb - libglib2.0-data - Ubuntu - 2.32.4-0ubuntu1 - - - amd64 - 486 - deb - libgmp10 - Ubuntu - 2:5.0.2+dfsg-2ubuntu1 - - - amd64 - 1060 - deb - libgnutls26 - Ubuntu - 2.12.14-5ubuntu3.14 - - - amd64 - 88 - deb - libgomp1 - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 96 - deb - libgpg-error0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 78 - deb - libgpm2 - Ubuntu - 1.20.4-4 - - - i386 - 78 - deb - libgpm2 - Ubuntu - 1.20.4-4 - - - amd64 - 337 - deb - libgssapi-krb5-2 - Ubuntu - 1.10+dfsg~beta1-2ubuntu0.7 - - - amd64 - 323 - deb - libgssapi3-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 284 - deb - libhcrypto4-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 130 - deb - libheimbase1-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 94 - deb - libheimntlm0-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - all - 96 - deb - libhtml-form-perl - Ubuntu - 6.00-1 - - - all - 160 - deb - libhtml-format-perl - Ubuntu - 2.10-1 - - - amd64 - 246 - deb - libhtml-parser-perl - Ubuntu - 3.69-1build1 - - - all - 76 - deb - libhtml-tagset-perl - Ubuntu - 3.20-2 - - - all - 536 - deb - libhtml-tree-perl - Ubuntu - 4.2-1 - - - all - 104 - deb - libhttp-cookies-perl - Ubuntu - 6.00-2 - - - all - 80 - deb - libhttp-daemon-perl - Ubuntu - 6.00-1 - - - all - 64 - deb - libhttp-date-perl - Ubuntu - 6.00-1 - - - all - 244 - deb - libhttp-message-perl - Ubuntu - 6.01-1 - - - all - 72 - deb - libhttp-negotiate-perl - Ubuntu - 6.00-2 - - - amd64 - 373 - deb - libhx509-5-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 351 - deb - libidn11 - Ubuntu - 1.23-2ubuntu0.1 - - - amd64 - 137 - deb - libio-pty-perl - Ubuntu - 1:1.08-1build2 - - - all - 71 - deb - libio-socket-inet6-perl - Ubuntu - 2.69-2 - - - all - 153 - deb - libio-socket-ssl-perl - Ubuntu - 1.53-1 - - - all - 72 - deb - libio-string-perl - Ubuntu - 1.08-2 - - - all - 273 - deb - libio-stringy-perl - Ubuntu - 2.110-5 - - - all - 328 - deb - libipc-run-perl - Ubuntu - 0.90-1 - - - amd64 - 395 - deb - libisc83 - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 82 - deb - libisccc80 - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 180 - deb - libisccfg82 - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 85 - deb - libiw30 - Ubuntu - 30~pre9-5ubuntu2 - - - all - 381 - deb - libjs-jquery - Ubuntu - 1.7.1-1ubuntu1 - - - all - 292 - deb - libjson-perl - Ubuntu - 2.53-1 - - - amd64 - 226 - deb - libjson-xs-perl - Ubuntu - 2.320-1build1 - - - amd64 - 237 - deb - libk5crypto3 - Ubuntu - 1.10+dfsg~beta1-2ubuntu0.7 - - - amd64 - 51 - deb - libkeyutils1 - Ubuntu - 1.5.2-2 - - - amd64 - 127 - deb - libklibc - Ubuntu - 1.5.25-1ubuntu2 - - - amd64 - 643 - deb - libkrb5-26-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 961 - deb - libkrb5-3 - Ubuntu - 1.10+dfsg~beta1-2ubuntu0.7 - - - amd64 - 111 - deb - libkrb5support0 - Ubuntu - 1.10+dfsg~beta1-2ubuntu0.7 - - - amd64 - 494 - deb - libldap-2.4-2 - Ubuntu - 2.4.28-1.1ubuntu4.6 - - - amd64 - 92 - deb - liblocale-gettext-perl - Ubuntu - 1.05-7build1 - - - amd64 - 70 - deb - liblockfile-bin - Ubuntu - 1.09-3ubuntu0.1 - - - amd64 - 56 - deb - liblockfile1 - Ubuntu - 1.09-3ubuntu0.1 - - - all - 92 - deb - liblwp-mediatypes-perl - Ubuntu - 6.01-1 - - - all - 64 - deb - liblwp-protocol-https-perl - Ubuntu - 6.02-1 - - - amd64 - 122 - deb - liblwres80 - Ubuntu - 1:9.8.1.dfsg.P1-4ubuntu0.22 - - - amd64 - 303 - deb - liblzma5 - Ubuntu - 5.1.1alpha+20110809-3 - - - amd64 - 2388 - deb - libmagic1 - Ubuntu - 5.09-2ubuntu0.6 - - - all - 100 - deb - libmail-sendmail-perl - Ubuntu - 0.79.16-1 - - - all - 320 - deb - libmailtools-perl - Ubuntu - 2.08-1 - - - amd64 - 248 - deb - libmount1 - Ubuntu - 2.20.1-1ubuntu3.1 - - - amd64 - 118 - deb - libmpc2 - Ubuntu - 0.9-4 - - - amd64 - 747 - deb - libmpfr4 - Ubuntu - 3.1.0-3ubuntu2 - - - amd64 - 471 - deb - libncurses5 - Ubuntu - 5.9-4 - - - i386 - 468 - deb - libncurses5 - Ubuntu - 5.9-4 - - - amd64 - 527 - deb - libncursesw5 - Ubuntu - 5.9-4 - - - i386 - 531 - deb - libncursesw5 - Ubuntu - 5.9-4 - - - amd64 - 641 - deb - libnet-dns-perl - Ubuntu - 0.66-2ubuntu3 - - - all - 72 - deb - libnet-domain-tld-perl - Ubuntu - 1.69-1 - - - all - 85 - deb - libnet-http-perl - Ubuntu - 6.02-1 - - - all - 144 - deb - libnet-ip-perl - Ubuntu - 1.25-3 - - - amd64 - 604 - deb - libnet-ssleay-perl - Ubuntu - 1.42-1build1 - - - amd64 - 184 - deb - libnewt0.52 - Ubuntu - 0.52.11-2ubuntu10 - - - amd64 - 76 - deb - libnfnetlink0 - Ubuntu - 1.0.0-1 - - - amd64 - 68 - deb - libnih-dbus1 - Ubuntu - 1.0.3-4ubuntu9.1 - - - amd64 - 145 - deb - libnih1 - Ubuntu - 1.0.3-4ubuntu9.1 - - - amd64 - 146 - deb - libnl-3-200 - Ubuntu - 3.2.3-2ubuntu2 - - - amd64 - 59 - deb - libnl-genl-3-200 - Ubuntu - 3.2.3-2ubuntu2 - - - amd64 - 115 - deb - libp11-kit0 - Ubuntu - 0.12-2ubuntu1 - - - amd64 - 777 - deb - libpam-modules - Ubuntu - 1.1.3-7ubuntu2.3 - - - amd64 - 203 - deb - libpam-modules-bin - Ubuntu - 1.1.3-7ubuntu2.3 - - - all - 296 - deb - libpam-runtime - Ubuntu - 1.1.3-7ubuntu2.3 - - - amd64 - 224 - deb - libpam0g - Ubuntu - 1.1.3-7ubuntu2.3 - - - i386 - 213 - deb - libpam0g - Ubuntu - 1.1.3-7ubuntu2.3 - - - all - 104 - deb - libparse-debcontrol-perl - Ubuntu - 2.005-3 - - - all - 232 - deb - libparse-debianchangelog-perl - Ubuntu - 1.2.0-1ubuntu1 - - - amd64 - 571 - deb - libparted0debian1 - Ubuntu - 2.3-8ubuntu5.2 - - - amd64 - 283 - deb - libpcap0.8 - Ubuntu - 1.1.1-10 - - - amd64 - 110 - deb - libpci3 - Ubuntu - 1:3.1.8-2ubuntu6 - - - amd64 - 75 - deb - libpciaccess0 - Ubuntu - 0.12.902-1ubuntu0.2 - - - i386 - 79 - deb - libpciaccess0 - Ubuntu - 0.12.902-1ubuntu0.2 - - - amd64 - 441 - deb - libpcre3 - Ubuntu - 8.12-4ubuntu0.2 - - - i386 - 432 - deb - libpcre3 - Ubuntu - 8.12-4ubuntu0.2 - - - amd64 - 86 - deb - libpcsclite1 - Ubuntu - 1.7.4-2ubuntu2.1 - - - amd64 - 88 - deb - libpipeline1 - Ubuntu - 1.2.1-1 - - - amd64 - 279 - deb - libplymouth2 - Ubuntu - 0.8.2-2ubuntu31.1 - - - amd64 - 305 - deb - libpng12-0 - Ubuntu - 1.2.46-3ubuntu4.2 - - - i386 - 308 - deb - libpng12-0 - Ubuntu - 1.2.46-3ubuntu4.2 - - - amd64 - 151 - deb - libpolkit-gobject-1-0 - Ubuntu - 0.104-1ubuntu1.1 - - - amd64 - 128 - deb - libpopt0 - Ubuntu - 1.16-3ubuntu1 - - - amd64 - 272 - deb - libpq5 - Ubuntu - 9.1.24-0ubuntu0.12.04 - - - amd64 - 3063 - deb - libpython2.7 - Ubuntu - 2.7.3-0ubuntu3.9 - - - amd64 - 246 - deb - libquadmath0 - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 384 - deb - libreadline6 - Ubuntu - 6.2-8 - - - amd64 - 157 - deb - libroken18-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 143 - deb - librtmp0 - Ubuntu - 2.4~20110711.gitc28f1bab-1 - - - amd64 - 191 - deb - libsasl2-2 - Ubuntu - 2.1.25.dfsg1-3ubuntu0.1 - - - amd64 - 228 - deb - libsasl2-modules - Ubuntu - 2.1.25.dfsg1-3ubuntu0.1 - - - amd64 - 189 - deb - libselinux1 - Ubuntu - 2.1.0-4.1ubuntu1 - - - i386 - 188 - deb - libselinux1 - Ubuntu - 2.1.0-4.1ubuntu1 - - - amd64 - 83 - deb - libsigc++-2.0-0c2a - Ubuntu - 2.2.10-0ubuntu2 - - - amd64 - 1530 - deb - libslang2 - Ubuntu - 2.2.4-3ubuntu1 - - - i386 - 1369 - deb - libslang2 - Ubuntu - 2.2.4-3ubuntu1 - - - amd64 - 94 - deb - libsocket6-perl - Ubuntu - 0.23-1build2 - - - amd64 - 770 - deb - libsqlite3-0 - Ubuntu - 3.7.9-2ubuntu1.2 - - - amd64 - 109 - deb - libss2 - Ubuntu - 1.42-1ubuntu2.3 - - - amd64 - 2938 - deb - libssl1.0.0 - Ubuntu - 1.0.1-4ubuntu5.39 - - - amd64 - 1190 - deb - libstdc++6 - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 10601 - deb - libstdc++6-4.6-dev - Ubuntu - 4.6.3-1ubuntu5 - - - amd64 - 72 - deb - libsub-name-perl - Ubuntu - 0.05-1build2 - - - all - 74 - deb - libswitch-perl - Ubuntu - 2.16-2 - - - all - 84 - deb - libsys-hostname-long-perl - Ubuntu - 1.4-2 - - - amd64 - 142 - deb - libtasn1-3 - Ubuntu - 2.10-1ubuntu1.5 - - - amd64 - 75 - deb - libtext-charwidth-perl - Ubuntu - 0.04-7build1 - - - amd64 - 85 - deb - libtext-iconv-perl - Ubuntu - 1.7-5 - - - all - 68 - deb - libtext-wrapi18n-perl - Ubuntu - 0.06-7 - - - all - 84 - deb - libtie-ixhash-perl - Ubuntu - 1.21-2 - - - all - 248 - deb - libtimedate-perl - Ubuntu - 1.2000-1 - - - amd64 - 436 - deb - libtinfo5 - Ubuntu - 5.9-4 - - - i386 - 394 - deb - libtinfo5 - Ubuntu - 5.9-4 - - - amd64 - 200 - deb - libudev0 - Ubuntu - 175-0ubuntu9.10 - - - amd64 - 1151 - deb - libunistring0 - Ubuntu - 0.9.3-5 - - - all - 218 - deb - liburi-perl - Ubuntu - 1.59-1 - - - amd64 - 73 - deb - libusb-0.1-4 - Ubuntu - 2:0.1.12-20 - - - amd64 - 108 - deb - libusb-1.0-0 - Ubuntu - 2:1.0.9~rc3-2ubuntu1 - - - amd64 - 110 - deb - libuuid1 - Ubuntu - 2.20.1-1ubuntu3.1 - - - i386 - 109 - deb - libuuid1 - Ubuntu - 2.20.1-1ubuntu3.1 - - - amd64 - 229 - deb - libwind0-heimdal - Ubuntu - 1.6~git20120311.dfsg.1-2ubuntu0.1 - - - amd64 - 148 - deb - libwrap0 - Ubuntu - 7.6.q-21 - - - all - 370 - deb - libwww-perl - Ubuntu - 6.03-1 - - - all - 76 - deb - libwww-robotrules-perl - Ubuntu - 6.01-1 - - - amd64 - 1480 - deb - libx11-6 - Ubuntu - 2:1.4.99.1-0ubuntu2.3 - - - all - 1525 - deb - libx11-data - Ubuntu - 2:1.4.99.1-0ubuntu2.3 - - - amd64 - 2368 - deb - libxapian22 - Ubuntu - 1.2.8-1 - - - amd64 - 54 - deb - libxau6 - Ubuntu - 1:1.0.6-4 - - - amd64 - 175 - deb - libxcb1 - Ubuntu - 1.8.1-1ubuntu0.2 - - - amd64 - 67 - deb - libxdmcp6 - Ubuntu - 1:1.1.0-4 - - - amd64 - 133 - deb - libxext6 - Ubuntu - 2:1.3.0-3ubuntu0.2 - - - all - 104 - deb - libxml-treepp-perl - Ubuntu - 0.39-1 - - - amd64 - 1753 - deb - libxml2 - Ubuntu - 2.7.8.dfsg-5.1ubuntu4.17 - - - amd64 - 61 - deb - libxmuu1 - Ubuntu - 2:1.1.0-3 - - - amd64 - 166 - deb - libyaml-0-2 - Ubuntu - 0.1.4-2ubuntu0.12.04.4 - - - all - 2071 - deb - lintian - Ubuntu - 2.5.6ubuntu0.1 - - - all - 49526 - deb - linux-firmware - Ubuntu - 1.79.18 - - - all - 54825 - deb - linux-headers-3.2.0-23 - Ubuntu - 3.2.0-23.36 - - - amd64 - 10858 - deb - linux-headers-3.2.0-23-generic - Ubuntu - 3.2.0-23.36 - - - amd64 - 31 - deb - linux-headers-server - Ubuntu - 3.2.0.23.25 - - - amd64 - 144966 - deb - linux-image-3.2.0-20-generic - Ubuntu - 3.2.0-20.33 - - - amd64 - 145113 - deb - linux-image-3.2.0-23-generic - Ubuntu - 3.2.0-23.36 - - - amd64 - 31 - deb - linux-image-server - Ubuntu - 3.2.0.23.25 - - - amd64 - 3143 - deb - linux-libc-dev - Ubuntu - 3.2.0-126.169 - - - amd64 - 31 - deb - linux-server - Ubuntu - 3.2.0.23.25 - - - all - 9152 - deb - locales - Ubuntu - 2.13+git20120306-3 - - - amd64 - 77 - deb - lockfile-progs - Ubuntu - 0.1.16 - - - amd64 - 1048 - deb - login - Ubuntu - 1:4.1.4.2+svn3283-3ubuntu5.1 - - - amd64 - 184 - deb - logrotate - Ubuntu - 3.7.8-6ubuntu5 - - - all - 75 - deb - lsb-base - Ubuntu - 4.0-0ubuntu20.3 - - - all - 112 - deb - lsb-release - Ubuntu - 4.0-0ubuntu20.3 - - - amd64 - 712 - deb - lshw - Ubuntu - 02.15-2 - - - amd64 - 452 - deb - lsof - Ubuntu - 4.81.dfsg.1-1build1 - - - amd64 - 224 - deb - ltrace - Ubuntu - 0.5.3-2.1ubuntu2 - - - amd64 - 316 - deb - make - Ubuntu - 3.81-8.1ubuntu1.1 - - - all - 126 - deb - makedev - Ubuntu - 2.3.1-89ubuntu3 - - - amd64 - 1748 - deb - man-db - Ubuntu - 2.6.1-2ubuntu2 - - - all - 821 - deb - manpages - Ubuntu - 3.35-0.1ubuntu1 - - - all - 1699 - deb - manpages-dev - Ubuntu - 3.35-0.1ubuntu1 - - - amd64 - 197 - deb - mawk - Ubuntu - 1.3.3-17 - - - amd64 - 2404 - deb - memtest86+ - Ubuntu - 4.20-1.1ubuntu1 - - - all - 132 - deb - mime-support - Ubuntu - 3.51-1ubuntu1.1 - - - amd64 - 224 - deb - mlocate - Ubuntu - 0.23.1-1ubuntu2 - - - amd64 - 332 - deb - module-init-tools - Ubuntu - 3.16-1ubuntu2 - - - amd64 - 422 - deb - mount - Ubuntu - 2.20.1-1ubuntu3.1 - - - amd64 - 241 - deb - mountall - Ubuntu - 2.36.4ubuntu0.1 - - - amd64 - 332 - deb - mtools - Ubuntu - 4.0.12-1ubuntu0.12.04.1 - - - amd64 - 124 - deb - mtr-tiny - Ubuntu - 0.80-1ubuntu1 - - - amd64 - 204 - deb - multiarch-support - Ubuntu - 2.15-0ubuntu10.18 - - - amd64 - 604 - deb - nano - Ubuntu - 2.2.6-1 - - - all - 345 - deb - ncurses-base - Ubuntu - 5.9-4 - - - amd64 - 493 - deb - ncurses-bin - Ubuntu - 5.9-4 - - - amd64 - 724 - deb - net-tools - Ubuntu - 1.60-24.1ubuntu2 - - - all - 75 - deb - netbase - Ubuntu - 4.47ubuntu1 - - - amd64 - 168 - deb - netcat-openbsd - Ubuntu - 1.89-4ubuntu1 - - - amd64 - 1422 - deb - ntfs-3g - Ubuntu - 1:2012.1.15AR.1-1ubuntu1.2 - - - amd64 - 245 - deb - ntpdate - Ubuntu - 1:4.2.6.p3+dfsg-1ubuntu3.11 - - - amd64 - 2279 - deb - openssh-client - Ubuntu - 1:5.9p1-5ubuntu1.10 - - - amd64 - 807 - deb - openssh-server - Ubuntu - 1:5.9p1-5ubuntu1.10 - - - amd64 - 906 - deb - openssl - Ubuntu - 1.0.1-4ubuntu5.39 - - - amd64 - 1033 - deb - openvpn - Ubuntu - 2.2.1-8ubuntu1 - - - amd64 - 130 - deb - os-prober - Ubuntu - 1.51ubuntu3 - - - amd64 - 188 - deb - parted - Ubuntu - 2.3-8ubuntu5.2 - - - amd64 - 2084 - deb - passwd - Ubuntu - 1:4.1.4.2+svn3283-3ubuntu5.1 - - - amd64 - 218 - deb - patch - Ubuntu - 2.6.1-3ubuntu0.1 - - - amd64 - 223 - deb - patchutils - Ubuntu - 0.3.2-1.1 - - - all - 1057 - deb - pbuilder - Ubuntu - 0.208ubuntu1 - - - amd64 - 1042 - deb - pciutils - Ubuntu - 1:3.1.8-2ubuntu6 - - - amd64 - 17079 - deb - perl - Ubuntu - 5.14.2-6ubuntu2.5 - - - amd64 - 4775 - deb - perl-base - Ubuntu - 5.14.2-6ubuntu2.5 - - - all - 14087 - deb - perl-modules - Ubuntu - 5.14.2-6ubuntu2.5 - - - amd64 - 442 - deb - plymouth - Ubuntu - 0.8.2-2ubuntu31.1 - - - amd64 - 77 - deb - plymouth-theme-ubuntu-text - Ubuntu - 0.8.2-2ubuntu31.1 - - - all - 443 - deb - po-debconf - Ubuntu - 1.0.16+nmu2ubuntu1 - - - all - 192 - deb - popularity-contest - Ubuntu - 1.53ubuntu1 - - - all - 63 - deb - postgresql - Ubuntu - 9.1+129ubuntu1 - - - amd64 - 10884 - deb - postgresql-9.1 - Ubuntu - 9.1.24-0ubuntu0.12.04 - - - all - 63 - deb - postgresql-client - Ubuntu - 9.1+129ubuntu1 - - - amd64 - 2368 - deb - postgresql-client-9.1 - Ubuntu - 9.1.24-0ubuntu0.12.04 - - - all - 151 - deb - postgresql-client-common - Ubuntu - 129ubuntu1 - - - all - 432 - deb - postgresql-common - Ubuntu - 129ubuntu1 - - - amd64 - 96 - deb - powermgmt-base - Ubuntu - 1.31 - - - amd64 - 894 - deb - ppp - Ubuntu - 2.4.5-5ubuntu1.2 - - - all - 224 - deb - pppconfig - Ubuntu - 2.3.18+nmu3ubuntu1 - - - all - 132 - deb - pppoeconf - Ubuntu - 1.20ubuntu1 - - - amd64 - 669 - deb - procps - Ubuntu - 1:3.2.8-11ubuntu6.4 - - - amd64 - 228 - deb - psmisc - Ubuntu - 22.15-2ubuntu1.2 - - - amd64 - 658 - deb - python - Ubuntu - 2.7.3-0ubuntu2.2 - - - all - 479 - deb - python-apport - Ubuntu - 2.0.1-0ubuntu17.15 - - - amd64 - 714 - deb - python-apt - Ubuntu - 0.8.3ubuntu7.3 - - - all - 208 - deb - python-apt-common - Ubuntu - 0.8.3ubuntu7.3 - - - all - 578 - deb - python-chardet - Ubuntu - 2.0.1-2build1 - - - amd64 - 1193 - deb - python-crypto - Ubuntu - 2.4.1-1ubuntu0.1 - - - amd64 - 413 - deb - python-dbus - Ubuntu - 1.0.0-1ubuntu1 - - - all - 62 - deb - python-dbus-dev - Ubuntu - 1.0.0-1ubuntu1 - - - all - 263 - deb - python-debian - Ubuntu - 0.1.21ubuntu1 - - - amd64 - 78 - deb - python-gdbm - Ubuntu - 2.7.3-1ubuntu1 - - - amd64 - 861 - deb - python-gi - Ubuntu - 3.2.2-1~precise - - - all - 113 - deb - python-gnupginterface - Ubuntu - 0.3.2-9.1ubuntu3 - - - all - 208 - deb - python-httplib2 - Ubuntu - 0.7.2-1ubuntu2.1 - - - all - 207 - deb - python-keyring - Ubuntu - 0.9.2-0ubuntu0.12.04.2 - - - all - 276 - deb - python-launchpadlib - Ubuntu - 1.9.12-1 - - - all - 246 - deb - python-lazr.restfulclient - Ubuntu - 0.12.0-1ubuntu1.2 - - - all - 125 - deb - python-lazr.uri - Ubuntu - 1.0.3-1 - - - amd64 - 87 - deb - python-magic - Ubuntu - 5.09-2ubuntu0.6 - - - amd64 - 159 - deb - python-minimal - Ubuntu - 2.7.3-0ubuntu2.2 - - - amd64 - 144 - deb - python-newt - Ubuntu - 0.52.11-2ubuntu10 - - - all - 91 - deb - python-oauth - Ubuntu - 1.0.1-3build1 - - - amd64 - 416 - deb - python-openssl - Ubuntu - 0.12-1ubuntu2.1 - - - amd64 - 79 - deb - python-pam - Ubuntu - 0.4.2-12.2ubuntu4 - - - all - 175 - deb - python-pkg-resources - Ubuntu - 0.6.24-1ubuntu1 - - - all - 158 - deb - python-problem-inventory - Ubuntu - 2.0.1-0ubuntu17.15 - - - all - 374 - deb - python-serial - Ubuntu - 2.5-2.1build1 - - - amd64 - 353 - deb - python-simplejson - Ubuntu - 2.3.2-1 - - - amd64 - 144 - deb - python-twisted-bin - Ubuntu - 11.1.0-1ubuntu2 - - - all - 5517 - deb - python-twisted-core - Ubuntu - 11.1.0-1ubuntu2 - - - all - 167 - deb - python-wadllib - Ubuntu - 1.3.0-2 - - - amd64 - 1341 - deb - python-xapian - Ubuntu - 1.2.8-1 - - - amd64 - 563 - deb - python-zope.interface - Ubuntu - 3.6.1-1ubuntu3 - - - amd64 - 8786 - deb - python2.7 - Ubuntu - 2.7.3-0ubuntu3.9 - - - amd64 - 5489 - deb - python2.7-minimal - Ubuntu - 2.7.3-0ubuntu3.9 - - - all - 107 - deb - readline-common - Ubuntu - 6.2-8 - - - all - 237 - deb - resolvconf - Ubuntu - 1.63ubuntu16 - - - amd64 - 638 - deb - rsync - Ubuntu - 3.0.9-1ubuntu1.1 - - - amd64 - 1206 - deb - rsyslog - Ubuntu - 5.8.6-1ubuntu8.9 - - - amd64 - 82 - deb - rsyslog-pgsql - Ubuntu - 5.8.6-1ubuntu8.9 - - - amd64 - 45247 - deb - rudder-agent - Ubuntu - 4.3.0-precise0 - - - amd64 - 1052 - deb - screen - Ubuntu - 4.0.3-14ubuntu8 - - - amd64 - 296 - deb - sed - Ubuntu - 4.2.1-9 - - - all - 132 - deb - sensible-utils - Ubuntu - 0.0.6ubuntu2 - - - all - 148 - deb - sgml-base - Ubuntu - 1.26+nmu1ubuntu1 - - - amd64 - 2504 - deb - shared-mime-info - Ubuntu - 1.0-0ubuntu4.1 - - - all - 53 - deb - ssh-import-id - Ubuntu - 2.10-0ubuntu1 - - - all - 89 - deb - ssl-cert - Ubuntu - 1.0.28ubuntu0.1 - - - amd64 - 396 - deb - strace - Ubuntu - 4.5.20-2.3ubuntu1 - - - amd64 - 996 - deb - sudo - Ubuntu - 1.8.3p1-1ubuntu3.7 - - - all - 232 - deb - sysv-rc - Ubuntu - 2.88dsf-13.10ubuntu11.1 - - - amd64 - 260 - deb - sysvinit-utils - Ubuntu - 2.88dsf-13.10ubuntu11.1 - - - amd64 - 708 - deb - tar - Ubuntu - 1.26-4ubuntu1.1 - - - all - 240 - deb - tasksel - Ubuntu - 2.88ubuntu9 - - - all - 136 - deb - tasksel-data - Ubuntu - 2.88ubuntu9 - - - amd64 - 3703 - deb - tcl8.5 - Ubuntu - 8.5.11-1ubuntu1 - - - amd64 - 132 - deb - tcpd - Ubuntu - 7.6.q-21 - - - amd64 - 1189 - deb - tcpdump - Ubuntu - 4.9.0-1ubuntu1~ubuntu12.04.1 - - - amd64 - 204 - deb - telnet - Ubuntu - 0.17-36build1 - - - amd64 - 148 - deb - time - Ubuntu - 1.7-23.1 - - - amd64 - 516 - deb - tmux - Ubuntu - 1.6-1ubuntu1 - - - amd64 - 158 - deb - traceroute - Ubuntu - 1:2.0.18-1 - - - amd64 - 100 - deb - tree - Ubuntu - 1.5.3-2 - - - all - 1602 - deb - tzdata - Ubuntu - 2016j-0ubuntu0.12.04 - - - all - 46 - deb - ubuntu-keyring - Ubuntu - 2011.11.21.1 - - - all - 272 - deb - ucf - Ubuntu - 3.0025+nmu2ubuntu1 - - - amd64 - 1000 - deb - udev - Ubuntu - 175-0ubuntu9.10 - - - all - 678 - deb - ufw - Ubuntu - 0.31.1-1 - - - amd64 - 377 - deb - unzip - Ubuntu - 6.0-4ubuntu2.5 - - - amd64 - 1224 - deb - update-manager-core - Ubuntu - 1:0.156.14.22 - - - all - 1945 - deb - update-notifier-common - Ubuntu - 0.119ubuntu8.7 - - - amd64 - 1020 - deb - upstart - Ubuntu - 1.5-0ubuntu7.3 - - - amd64 - 124 - deb - ureadahead - Ubuntu - 0.100.0-12 - - - amd64 - 661 - deb - usbutils - Ubuntu - 1:005-1 - - - amd64 - 1559 - deb - util-linux - Ubuntu - 2.20.1-1ubuntu3.1 - - - amd64 - 141 - deb - uuid-runtime - Ubuntu - 2.20.1-1ubuntu3.1 - - - amd64 - 2013 - deb - vim - Ubuntu - 2:7.3.429-2ubuntu2.2 - - - amd64 - 295 - deb - vim-common - Ubuntu - 2:7.3.429-2ubuntu2.2 - - - all - 22307 - deb - vim-runtime - Ubuntu - 2:7.3.429-2ubuntu2.2 - - - amd64 - 826 - deb - vim-tiny - Ubuntu - 2:7.3.429-2ubuntu2.2 - - - amd64 - 2096 - deb - w3m - Ubuntu - 0.5.3-5ubuntu1.2 - - - amd64 - 264 - deb - wdiff - Ubuntu - 0.6.5-1 - - - amd64 - 596 - deb - wget - Ubuntu - 1.13.4-2ubuntu1.4 - - - amd64 - 91 - deb - whiptail - Ubuntu - 0.52.11-2ubuntu10 - - - amd64 - 105 - deb - whoopsie - Ubuntu - 0.1.34.1 - - - all - 52 - deb - wireless-regdb - Ubuntu - 2011.04.28-1ubuntu3 - - - amd64 - 324 - deb - wireless-tools - Ubuntu - 30~pre9-5ubuntu2 - - - amd64 - 1226 - deb - wpasupplicant - Ubuntu - 0.7.3-6ubuntu2.4 - - - amd64 - 96 - deb - xauth - Ubuntu - 1:1.0.6-1 - - - all - 3017 - deb - xkb-data - Ubuntu - 2.5-1ubuntu1.5 - - - all - 260 - deb - xml-core - Ubuntu - 0.13 - - - all - 163 - deb - xz-lzma - Ubuntu - 5.1.1alpha+20110809-3 - - - amd64 - 388 - deb - xz-utils - Ubuntu - 5.1.1alpha+20110809-3 - - - amd64 - 156 - deb - zlib1g - Ubuntu - 1:1.2.3.4.dfsg-3ubuntu4 - - - i386 - 147 - deb - zlib1g - Ubuntu - 1:1.2.3.4.dfsg-3ubuntu4 - - - Virtual - 4198 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.14.2 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - ubuntu-12-04-64-2015-07-16-10-53-17 -78628ad3-eb43-4136-9486-81cdd15d8b0c -root - -Community - -D3699845-6F07-431C-8C0E-AB6AD88F00AB ------BEGIN RSA PUBLIC KEY----- -MIIBCAKCAQEA2eHrD//V1/S/acgXvu5P5Lc4rhbb66j9sNEeE5k1tblJcb3SG77d -63LVGGhdXGUn2KtePs3R00hSZwTqvAPSjBhXf9agWR6my3GWZlDHWG3WyD8LHcdr -kKvZLQPPsCQC6RwLfA+jC0LjmkbwENfS5/tQuMX8vlYHtJ5ci7X7WwerCbJUvFrv -teyn3yKuQaIAcKLsrDEH79qWeYzH/NgeAlXnRt3pp/RTfYhsSxQ/VnYdwV1T1lkp -R15eTYdw5JFuD7zfMuoQI6k+aKBUsff0shwiocx7ru1sWFDvcPpAUQ/SufjmqWgO -ABDXeEZ72tjwyP/Hy0tPr6LCbKz0ZUv+YwIBIw== ------END RSA PUBLIC KEY----- -root - - - GenuineIntel - 6 - 2 - QEMU Virtual CPU version 0.12 - 3 - 1995.192 - - - - - - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs.sign deleted file mode 100644 index cd8eb56175a..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-12-04-64-78628ad3-eb43-4136-9486-81cdd15d8b0c.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=9620721ac0926813bdeca68d23bc640a3ef7207ebeacf152ed952b6b19d455da9f082d313e045fa182fa917cfbae64d02cbf5067e243a9cbef1b1b930b6db864200293b46a2c8b5954bd0484eeae889a3681b236cfb6d67bd54fde25d956d009c54b7ed6e8c087216d5a014586f45d88a17bdc05d3a74b94909f6f7838d08eddd081fe48bf9e72554e5f848ae70f8e7f02ba648171cacc5947935b6e57934aa1b60ae0f82cb13e46097b6590dbedaa1ca6f6b3bec1e13ce858c080c6efeaf7cfcc445c643972330b82880f48fab78158ceaa3664efbd89fb75f1746c0c1f78bb858f137badbacae2052209b70c196ea70fdc0b79e5d5f4086d847daa57b94b23 -hostname=ubuntu-12-04-64 -keydate=2015-07-16 10:53:02.175690017 +0200 -keyid=654BFE63 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs deleted file mode 100644 index 4512d223284..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs +++ /dev/null @@ -1,13206 +0,0 @@ - - - - - 2018-05-04 12:22:44 - - - 01/01/2011 - Bochs - Bochs - Bochs - Bochs - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371SB PIIX3 USB [Natoma/Triton II] - uhci_hcd - Intel Corporation - 82371SB PIIX3 USB [Natoma/Triton II] - 0c03 - 00:01.2 - 7020 - 01 - USB controller - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - GD 5446 - cirrus - Cirrus Logic - GD 5446 - 0300 - 00:02.0 - 00b8 - VGA compatible controller - 1013 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:03.0 - 1000 - Ethernet controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:04.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 0500 - 00:05.0 - 1002 - RAM memory - 1af4 - - - i386 - 1 - Other - 6 - 23 06 00 00 FD FB 8B 07 - Intel - 2 - QEMU Virtual CPU version 0.12 - 3 - 1 - - - ext4 - 1773 - 1519e306-c194-4567-b80e-5eef0c75c36a - 5919 - / - /dev/vda1 - - - TERM - xterm-256color - - - XDG_RUNTIME_DIR - /run/user/0 - - - HOME - /root - - - LESSCLOSE - /usr/bin/lesspipe %s %s - - - BASEDIR - /opt/rudder/share/commands - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/var/rudder/cfengine-community/bin:/sbin:/usr/sbin:/sbin:/usr/sbin:/var/rudder/cfengine-community/bin - - - SSH_CONNECTION - 192.168.90.55 43480 192.168.180.76 22 - - - PWD - /var/rudder - - - RUDDER_BIN - /usr/bin/rudder - - - MANPATH - /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/rudder/share/man:/opt/rudder/share/man - - - XDG_SESSION_ID - 1 - - - SHELL - /bin/bash - - - LOGNAME - root - - - USER - root - - - LS_COLORS - rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36: - - - SSH_CLIENT - 192.168.90.55 43480 22 - - - SSH_AUTH_SOCK - /tmp/ssh-yaMk0OZsZ2/agent.1313 - - - SHLVL - 1 - - - SSH_TTY - /dev/pts/1 - - - DEBIAN_FRONTEND - noninteractive - - - LESSOPEN - | /usr/bin/lesspipe %s - - - _ - /usr/bin/rudder - - - MAIL - /var/mail/root - - - x86_64-linux-gnu-thread-multi - Other - 131071 - 192.168.180.1 - 192.168.180.1/8.8.8.8 - 1 - 192.168.180.76 - 742 - ubuntu-14-04-64 - #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 - Ubuntu 14.04.5 LTS - 3.13.0-24-generic - 1 - QEMU Virtual CPU version 0.12 - root - 8D22B66C-3C8C-9AAA-4B68-24F1112E21F3 - QEMU - normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 4 - syslog - mcerda - adm - - - 24 - mcerda - cdrom - - - 27 - mcerda - sudo - - - 29 - pulse - speech-dispatcher - audio - - - 30 - mcerda - dip - - - 46 - mcerda - usbmux - plugdev - - - 110 - mcerda - lpadmin - - - 111 - mcerda - sambashare - - - 114 - saned - scanner - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /usr/sbin/nologin - - - /bin - 2 - bin - bin - /usr/sbin/nologin - - - /dev - 3 - sys - sys - /usr/sbin/nologin - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /usr/sbin/nologin - - - /var/cache/man - 6 - man - man - /usr/sbin/nologin - - - /var/spool/lpd - 7 - lp - lp - /usr/sbin/nologin - - - /var/mail - 8 - mail - mail - /usr/sbin/nologin - - - /var/spool/news - 9 - news - news - /usr/sbin/nologin - - - /var/spool/uucp - 10 - uucp - uucp - /usr/sbin/nologin - - - /bin - 13 - proxy - proxy - /usr/sbin/nologin - - - /var/www - 33 - www-data - www-data - /usr/sbin/nologin - - - /var/backups - 34 - backup - backup - /usr/sbin/nologin - - - /var/list - 38 - list - Mailing List Manager - /usr/sbin/nologin - - - /var/run/ircd - 39 - irc - ircd - /usr/sbin/nologin - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /usr/sbin/nologin - - - /nonexistent - 65534 - nobody - nobody - /usr/sbin/nologin - - - /var/lib/libuuid - 100 - libuuid - - - - - /home/syslog - 101 - syslog - - /bin/false - - - /var/run/dbus - 102 - messagebus - - /bin/false - - - /var/lib/landscape - 103 - landscape - - /bin/false - - - /var/run/sshd - 104 - sshd - - /usr/sbin/nologin - - - /home/mcerda - 1000 - mcerda - Matthieu CERDA,,, - /bin/bash - - - /home/usbmux - 105 - usbmux - usbmux daemon,,, - /bin/false - - - /var/run/avahi-daemon - 106 - avahi - Avahi mDNS daemon,,, - /bin/false - - - /var/lib/avahi-autoipd - 109 - avahi-autoipd - Avahi autoip daemon,,, - /bin/false - - - /var/lib/colord - 110 - colord - colord colour management daemon,,, - /bin/false - - - / - 111 - kernoops - Kernel Oops Tracking Daemon,,, - /bin/false - - - /var/run/pulse - 112 - pulse - PulseAudio daemon,,, - /bin/false - - - /proc - 113 - rtkit - RealtimeKit,,, - /bin/false - - - /nonexistent - 114 - whoopsie - - /bin/false - - - /var/run/speech-dispatcher - 115 - speech-dispatcher - Speech Dispatcher,,, - /bin/sh - - - /var/run/hplip - 116 - hplip - HPLIP system user,,, - /bin/false - - - /home/saned - 117 - saned - - /bin/false - - - /var/lib/ldap - 107 - openldap - OpenLDAP Server Account,,, - /bin/false - - - 768 - DIMM 0 - DIMM - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.180.76 - 192.168.180.1 - 255.255.255.0 - 192.168.180.0 - 52:54:00:bf:84:e7 - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:febf:84e7 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:bf:84:e7 - Up - ethernet - 0 - - - x86_64 - 2018-05-04 11:25:56 - normation.com - ubuntu-14-04-64.normation.com - Ubuntu 14.04.5 LTS - 007f0101 - linux - 3.13.0-24-generic - Ubuntu - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7qRS+J3fuw4aAq+T5GaufipAUxLm/WckEe/LfM/SmYDWlYtVpiUr/H7Yx0mjkGG2qwr9pFYj7PvaFrY3lUb1aPRYUUGhB4s+sxgFdCMMnA0NxzihAxHjmWE2BzGSozAiJP325viGGWowx3cHKtCatcVjIzAzYj6qe15Sad9zP8SzH7Bv2iyhFSR7s9yvIqbva/pLp5FJLNukgZe6uOEYznIauj6hyDQtdM7FWd5kHuUMEmHz9NBtSoE/hqCYsnV2J+f1js84dG0u/KKZH+w385tEzclDkivnC8K2sSRfYKwyU29ql8zEoou+z265DgD+EcAV5uhNoZU/LgqfXbGmn - - Europe/Paris - +0200 - - 14.04 - - - /sbin/init - 0.0 - 0.9 - 1 - 2018-05-04 11:25 - ? - root - 37624 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2018-05-04 11:25 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2018-05-04 11:25 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2018-05-04 11:25 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 7 - 2018-05-04 11:25 - ? - root - 0 - - - [rcuos/0] - 0.0 - 0.0 - 8 - 2018-05-04 11:25 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 9 - 2018-05-04 11:25 - ? - root - 0 - - - [rcuob/0] - 0.0 - 0.0 - 10 - 2018-05-04 11:25 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 11 - 2018-05-04 11:25 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 12 - 2018-05-04 11:25 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 13 - 2018-05-04 11:25 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 14 - 2018-05-04 11:25 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 15 - 2018-05-04 11:25 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 16 - 2018-05-04 11:25 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 17 - 2018-05-04 11:25 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 18 - 2018-05-04 11:25 - ? - root - 0 - - - [kworker/u3:0] - 0.0 - 0.0 - 19 - 2018-05-04 11:25 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 20 - 2018-05-04 11:25 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 21 - 2018-05-04 11:25 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 22 - 2018-05-04 11:25 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 23 - 2018-05-04 11:25 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 24 - 2018-05-04 11:25 - ? - root - 0 - - - [kworker/0:1] - 0.0 - 0.0 - 25 - 2018-05-04 11:25 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 26 - 2018-05-04 11:25 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 27 - 2018-05-04 11:25 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 28 - 2018-05-04 11:25 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 29 - 2018-05-04 11:25 - ? - root - 0 - - - [fsnotify_mark] - 0.0 - 0.0 - 30 - 2018-05-04 11:25 - ? - root - 0 - - - [ecryptfs-kthrea] - 0.0 - 0.0 - 31 - 2018-05-04 11:25 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 32 - 2018-05-04 11:25 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 44 - 2018-05-04 11:25 - ? - root - 0 - - - [vballoon] - 0.0 - 0.0 - 46 - 2018-05-04 11:25 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 47 - 2018-05-04 11:25 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 48 - 2018-05-04 11:25 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 69 - 2018-05-04 11:25 - ? - root - 0 - - - [charger_manager] - 0.0 - 0.0 - 70 - 2018-05-04 11:25 - ? - root - 0 - - - [kworker/u3:2] - 0.0 - 0.0 - 126 - 2018-05-04 11:26 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 127 - 2018-05-04 11:26 - ? - root - 0 - - - [ext4-rsv-conver] - 0.0 - 0.0 - 128 - 2018-05-04 11:26 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 300 - 2018-05-04 11:27 - ? - root - 0 - - - [kworker/0:2] - 0.0 - 0.0 - 301 - 2018-05-04 11:27 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 304 - 2018-05-04 11:27 - ? - root - 0 - - - dbus-daemon --system --fork - 0.0 - 0.2 - 569 - 2018-05-04 11:27 - ? - message+ - 39912 - - - [krfcommd] - 0.0 - 0.0 - 602 - 2018-05-04 11:27 - ? - root - 0 - - - dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 - 0.0 - 0.3 - 627 - 2018-05-04 11:27 - ? - root - 10224 - - - /sbin/getty -8 38400 tty4 - 0.0 - 0.0 - 928 - 2018-05-04 11:27 - tty4 - root - 15832 - - - /sbin/getty -8 38400 tty5 - 0.0 - 0.0 - 932 - 2018-05-04 11:27 - tty5 - root - 15832 - - - /sbin/getty -8 38400 tty2 - 0.0 - 0.0 - 940 - 2018-05-04 11:27 - tty2 - root - 15832 - - - /sbin/getty -8 38400 tty3 - 0.0 - 0.0 - 941 - 2018-05-04 11:27 - tty3 - root - 15832 - - - /sbin/getty -8 38400 tty6 - 0.0 - 0.0 - 944 - 2018-05-04 11:27 - tty6 - root - 15832 - - - acpid -c /etc/acpi/events -s /var/run/acpid.socket - 0.0 - 0.0 - 980 - 2018-05-04 11:27 - ? - root - 4364 - - - /usr/sbin/cups-browsed - 0.0 - 0.2 - 990 - 2018-05-04 11:27 - ? - root - 75344 - - - atd - 0.0 - 0.0 - 1029 - 2018-05-04 11:27 - ? - daemon - 19132 - - - cron - 0.0 - 0.0 - 1030 - 2018-05-04 11:27 - ? - root - 23648 - - - /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d - 0.0 - 0.4 - 1068 - 2018-05-04 11:27 - ? - openldap - 259576 - - - /usr/sbin/kerneloops - 0.0 - 0.1 - 1088 - 2018-05-04 11:27 - ? - kernoops - 37140 - - - /sbin/getty -8 38400 tty1 - 0.0 - 0.0 - 1252 - 2018-05-04 11:27 - tty1 - root - 15832 - - - sshd: root@pts/1 - 0.0 - 0.2 - 1313 - 2018-05-04 11:30 - ? - root - 109772 - - - [kauditd] - 0.0 - 0.0 - 1315 - 2018-05-04 11:30 - ? - root - 0 - - - -bash - 0.0 - 0.4 - 1386 - 2018-05-04 11:30 - pts/1 - root - 23056 - - - /lib/systemd/systemd-udevd --daemon - 0.0 - 0.2 - 5723 - 2018-05-04 11:38 - ? - root - 52092 - - - upstart-udev-bridge --daemon - 0.0 - 0.0 - 7282 - 2018-05-04 11:41 - ? - root - 19480 - - - upstart-file-bridge --daemon - 0.0 - 0.0 - 7285 - 2018-05-04 11:41 - ? - root - 15280 - - - upstart-socket-bridge --daemon - 0.0 - 0.0 - 7288 - 2018-05-04 11:41 - ? - root - 15264 - - - /lib/systemd/systemd-logind - 0.0 - 0.2 - 7386 - 2018-05-04 11:41 - ? - root - 35028 - - - /usr/sbin/bluetoothd - 0.0 - 0.1 - 7460 - 2018-05-04 11:41 - ? - root - 19304 - - - rsyslogd - 0.0 - 0.2 - 8743 - 2018-05-04 11:42 - ? - syslog - 196740 - - - /usr/sbin/sshd -D - 0.0 - 0.3 - 8823 - 2018-05-04 11:42 - ? - root - 61380 - - - /usr/sbin/apache2 -k start - 0.0 - 0.3 - 8911 - 2018-05-04 11:42 - ? - root - 71324 - - - /usr/sbin/apache2 -k start - 0.0 - 0.5 - 8914 - 2018-05-04 11:42 - ? - www-data - 360488 - - - /usr/sbin/apache2 -k start - 0.0 - 0.5 - 8915 - 2018-05-04 11:42 - ? - www-data - 360488 - - - avahi-daemon: running [ubuntu-14-04-64.local] - 0.0 - 0.2 - 9052 - 2018-05-04 11:42 - ? - avahi - 32356 - - - avahi-daemon: chroot helper - 0.0 - 0.0 - 9053 - 2018-05-04 11:42 - ? - avahi - 32228 - - - /bin/sh /opt/rudder/share/commands/agent-inventory -i - 0.0 - 0.0 - 11741 - 2018-05-04 12:22 - pts/1 - root - 4448 - - - /bin/sh /opt/rudder/share/commands/agent-run -D force_inventory -b doInventory -i - 0.0 - 0.0 - 11764 - 2018-05-04 12:22 - pts/1 - root - 4448 - - - /var/rudder/cfengine-community/bin/cf-agent -I -D info -Calways -K -b doInventory -D force_inventory - 37.0 - 1.8 - 11828 - 2018-05-04 12:22 - ? - root - 134588 - - - tee /var/rudder/cfengine-community/outputs/cf_ubuntu_14_04_64_labo_normation_com__1525429362_Fri_May__4_12_22_42_2018_0 - 0.0 - 0.0 - 11829 - 2018-05-04 12:22 - pts/1 - root - 7608 - - - /bin/sh /opt/rudder/share/commands/agent-run -D force_inventory -b doInventory -i - 0.0 - 0.0 - 11830 - 2018-05-04 12:22 - pts/1 - root - 4448 - - - awk -v info=1 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\033[1;32m -v darkgreen=\033[0;32m -v red=\033[1;31m -v yellow=\033[1;33m -v magenta=\033[1;35m -v normal=\033[0;39m\033[0;49m -v white=\033[0;02m -v cyan=\033[1;36m -v dblue=\033[0;34m -v dgreen=\033[0;32m -v timing=0 -v has_fflush=OK -f /opt/rudder/share/commands/../lib/reports.awk - 0.0 - 0.1 - 11831 - 2018-05-04 12:22 - pts/1 - root - 15048 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs - 0.0 - 0.0 - 12667 - 2018-05-04 12:22 - ? - root - 4448 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs - 0.0 - 5.8 - 12673 - 2018-05-04 12:22 - ? - root - 98592 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 12682 - 2018-05-04 12:22 - ? - root - 4448 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.1 - 12683 - 2018-05-04 12:22 - ? - root - 15572 - - - /usr/sbin/cupsd -f - 0.0 - 0.4 - 15275 - 2018-05-04 11:39 - ? - root - 76868 - - - [kworker/u2:0] - 0.0 - 0.0 - 18590 - 2018-05-04 12:11 - ? - root - 0 - - - [xfsalloc] - 0.0 - 0.0 - 21132 - 2018-05-04 11:39 - ? - root - 0 - - - [xfs_mru_cache] - 0.0 - 0.0 - 21133 - 2018-05-04 11:39 - ? - root - 0 - - - [xfslogd] - 0.0 - 0.0 - 21134 - 2018-05-04 11:39 - ? - root - 0 - - - [jfsIO] - 0.0 - 0.0 - 21137 - 2018-05-04 11:39 - ? - root - 0 - - - [jfsCommit] - 0.0 - 0.0 - 21138 - 2018-05-04 11:39 - ? - root - 0 - - - [jfsSync] - 0.0 - 0.0 - 21139 - 2018-05-04 11:39 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 21159 - 2018-05-04 11:39 - ? - root - 0 - - - whoopsie - 0.0 - 0.5 - 21425 - 2018-05-04 11:40 - ? - whoopsie - 367080 - - - [kworker/u2:2] - 0.0 - 0.0 - 22071 - 2018-05-04 12:16 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIIBCgKCAQEA3CrjEkAOPG58y776Vg7atJ4IDuDxOlzF0dZUzL5SKyMCl151nfrM -YOWJyIzlE/C2d8Zc+EBIVC+uHOFKDVr5bufqOOn5emtTFjVH2ZpFp2jUJ8XZ/vdB -QocYQyL+JZQN4dwyvn/eaauoO+OIFBSekqP2JKSshdqUqewxSHoKeSmLU5v/FhyO -u5MfCVm1+PikBuA08fr6heZSEeIr17j+HGjDmNfzbywexoauJ0ZlZGce6h5Dtvk2 -HZRFWl2fpuJAvF7pYkpbN/G/4d1avYCUfKkjcewRVJF+whhqVG7haxtL6UOGRnh6 -Hpeho+TUHb5rkJW+BlfzdGIWXfP9ZNiYIwIDAQAB ------END RSA PUBLIC KEY----- - - root - orchestrateur-5.labo.normation.com - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - ubuntu-14-04-64.labo.normation.com - - ddcfb475-76e6-44e2-9178-2fa06c618bfd - - - amd64 - 4549 - deb - abiword - Ubuntu - 3.0.0-4ubuntu1.1 - - - all - 10905 - deb - abiword-common - Ubuntu - 3.0.0-4ubuntu1.1 - - - amd64 - 124 - deb - abiword-plugin-grammar - Ubuntu - 3.0.0-4ubuntu1.1 - - - amd64 - 480 - deb - abiword-plugin-mathview - Ubuntu - 3.0.0-4ubuntu1.1 - - - amd64 - 432 - deb - accountsservice - Ubuntu - 0.6.35-0ubuntu7.3 - - - amd64 - 192 - deb - acl - Ubuntu - 2.2.52-1 - - - amd64 - 92 - deb - acpi-support - Ubuntu - 0.142 - - - amd64 - 188 - deb - acpid - Ubuntu - 1:2.0.21-1ubuntu2 - - - all - 644 - deb - adduser - Ubuntu - 3.113+nmu3ubuntu3 - - - all - 502 - deb - alsa-base - Ubuntu - 1.0.25+dfsg-0ubuntu4 - - - amd64 - 2156 - deb - alsa-utils - Ubuntu - 1.0.27.2-1ubuntu2 - - - amd64 - 178 - deb - anacron - Ubuntu - 2.3-20ubuntu1 - - - amd64 - 464 - deb - apache2 - Ubuntu - 2.4.7-1ubuntu4.20 - - - amd64 - 3324 - deb - apache2-bin - Ubuntu - 2.4.7-1ubuntu4.20 - - - all - 703 - deb - apache2-data - Ubuntu - 2.4.7-1ubuntu4.20 - - - all - 36216 - deb - app-install-data - Ubuntu - 14.04.1 - - - all - 39 - deb - app-install-data-partner - Ubuntu - 13.04 - - - amd64 - 1429 - deb - apparmor - Ubuntu - 2.10.95-0ubuntu2.6~14.04.3 - - - all - 1292 - deb - apport - Ubuntu - 2.14.1-0ubuntu3.27 - - - all - 207 - deb - apport-gtk - Ubuntu - 2.14.1-0ubuntu3.27 - - - all - 75 - deb - apport-symptoms - Ubuntu - 0.20 - - - amd64 - 3578 - deb - apt - Ubuntu - 1.0.1ubuntu2.18 - - - all - 404 - deb - apt-offline - Ubuntu - 1.3.1ubuntu0.1 - - - amd64 - 229 - deb - apt-transport-https - Ubuntu - 1.0.1ubuntu2.18 - - - amd64 - 668 - deb - apt-utils - Ubuntu - 1.0.1ubuntu2.18 - - - all - 328 - deb - apt-xapian-index - Ubuntu - 0.45ubuntu4 - - - all - 196 - deb - aptdaemon - Ubuntu - 1.1.1-1ubuntu5.2 - - - all - 276 - deb - aptdaemon-data - Ubuntu - 1.1.1-1ubuntu5.2 - - - amd64 - 4593 - deb - aptitude - Ubuntu - 0.6.8.2-1ubuntu4 - - - all - 4180 - deb - aptitude-common - Ubuntu - 0.6.8.2-1ubuntu4 - - - amd64 - 364 - deb - aspell - Ubuntu - 0.60.7~20110707-1ubuntu1 - - - all - 330 - deb - aspell-en - Ubuntu - 7.1-0-1 - - - amd64 - 194 - deb - at - Ubuntu - 3.1.14-1ubuntu1 - - - amd64 - 208 - deb - at-spi2-core - Ubuntu - 2.10.2.is.2.10.1-0ubuntu1 - - - amd64 - 151 - deb - avahi-autoipd - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 347 - deb - avahi-daemon - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 433 - deb - base-files - Ubuntu - 7.2ubuntu5.5 - - - amd64 - 252 - deb - base-passwd - Ubuntu - 3.5.33 - - - amd64 - 1488 - deb - bash - Ubuntu - 4.3-7ubuntu1.7 - - - all - 932 - deb - bash-completion - Ubuntu - 1:2.1-4ubuntu0.2 - - - amd64 - 240 - deb - bc - Ubuntu - 1.06.95-8ubuntu1 - - - amd64 - 176 - deb - bind9-host - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 11464 - deb - binutils - Ubuntu - 2.24-5ubuntu14.2 - - - amd64 - 107 - deb - biosdevname - Ubuntu - 0.4.1-0ubuntu6.3 - - - amd64 - 2528 - deb - blueman - Ubuntu - 1.23-git201403102151-1ubuntu1 - - - amd64 - 2544 - deb - bluez - Ubuntu - 4.101-0ubuntu13.3 - - - amd64 - 397 - deb - bluez-alsa - Ubuntu - 4.101-0ubuntu13.3 - - - amd64 - 218 - deb - bluez-cups - Ubuntu - 4.101-0ubuntu13.3 - - - amd64 - 7084 - deb - brltty - Ubuntu - 5.0-2ubuntu2 - - - amd64 - 160 - deb - brltty-x11 - Ubuntu - 5.0-2ubuntu2 - - - amd64 - 555 - deb - bsdmainutils - Ubuntu - 9.0.5ubuntu1 - - - amd64 - 194 - deb - bsdutils - Ubuntu - 1:2.20.1-5.1ubuntu20.9 - - - amd64 - 37 - deb - build-essential - Ubuntu - 11.6ubuntu6 - - - amd64 - 357 - deb - busybox-initramfs - Ubuntu - 1:1.21.0-1ubuntu1 - - - amd64 - 1984 - deb - busybox-static - Ubuntu - 1:1.21.0-1ubuntu1 - - - all - 630 - deb - byobu - Ubuntu - 5.77-0ubuntu1.2 - - - amd64 - 119 - deb - bzip2 - Ubuntu - 1.0.6-5 - - - all - 405 - deb - ca-certificates - Ubuntu - 20170717~14.04.1 - - - all - 727 - deb - catfish - Ubuntu - 1.0.2-2 - - - amd64 - 1384 - deb - colord - Ubuntu - 1.0.6-1 - - - all - 52 - deb - command-not-found - Ubuntu - 0.3ubuntu12 - - - amd64 - 3992 - deb - command-not-found-data - Ubuntu - 0.3ubuntu12 - - - all - 1529 - deb - console-setup - Ubuntu - 1.70ubuntu8 - - - amd64 - 6024 - deb - coreutils - Ubuntu - 8.21-1ubuntu5.4 - - - amd64 - 312 - deb - cpio - Ubuntu - 2.11+dfsg-1ubuntu1.2 - - - amd64 - 85 - deb - cpp - Ubuntu - 4:4.8.2-1ubuntu6 - - - amd64 - 14104 - deb - cpp-4.8 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 96 - deb - crda - Ubuntu - 1.1.2-1ubuntu2 - - - amd64 - 300 - deb - cron - Ubuntu - 3.0pl1-124ubuntu2 - - - amd64 - 833 - deb - cups - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 191 - deb - cups-browsed - Ubuntu - 1.0.52-0ubuntu1.7 - - - amd64 - 116 - deb - cups-bsd - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 1041 - deb - cups-client - Ubuntu - 1.7.2-0ubuntu1.9 - - - all - 1653 - deb - cups-common - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 208 - deb - cups-core-drivers - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 952 - deb - cups-daemon - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 1475 - deb - cups-filters - Ubuntu - 1.0.52-0ubuntu1.7 - - - amd64 - 365 - deb - cups-filters-core-drivers - Ubuntu - 1.0.52-0ubuntu1.7 - - - amd64 - 236 - deb - cups-ppdc - Ubuntu - 1.7.2-0ubuntu1.9 - - - all - 2694 - deb - cups-server-common - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 309 - deb - curl - Ubuntu - 7.35.0-1ubuntu2.15 - - - amd64 - 228 - deb - dash - Ubuntu - 0.5.7-4ubuntu1 - - - amd64 - 1003 - deb - dbus - Ubuntu - 1.6.18-0ubuntu4.5 - - - amd64 - 140 - deb - dbus-x11 - Ubuntu - 1.6.18-0ubuntu4.5 - - - amd64 - 153 - deb - dc - Ubuntu - 1.06.95-8ubuntu1 - - - amd64 - 110 - deb - dconf-gsettings-backend - Ubuntu - 0.20.0-1 - - - amd64 - 144 - deb - dconf-service - Ubuntu - 0.20.0-1 - - - amd64 - 340 - deb - dctrl-tools - Ubuntu - 2.23ubuntu1 - - - all - 609 - deb - debconf - Ubuntu - 1.5.51ubuntu2 - - - all - 1104 - deb - debconf-i18n - Ubuntu - 1.5.51ubuntu2 - - - amd64 - 283 - deb - debianutils - Ubuntu - 4.4 - - - all - 229 - deb - debootstrap - Ubuntu - 1.0.59ubuntu0.9 - - - all - 10923 - deb - desktop-base - Ubuntu - 7.0.3ubuntu1 - - - amd64 - 252 - deb - desktop-file-utils - Ubuntu - 0.22-1ubuntu1.1 - - - amd64 - 1767 - deb - devscripts - Ubuntu - 2.14.1ubuntu0.1 - - - all - 309 - deb - dh-python - Ubuntu - 1.20140128-1ubuntu8.2 - - - amd64 - 1136 - deb - dialog - Ubuntu - 1.2-20130928-1 - - - all - 923 - deb - dictionaries-common - Ubuntu - 1.20.5 - - - amd64 - 80 - deb - diffstat - Ubuntu - 1.58-1 - - - amd64 - 428 - deb - diffutils - Ubuntu - 1:3.3-1 - - - all - 35 - deb - distro-info-data - Ubuntu - 0.18ubuntu0.8 - - - amd64 - 191 - deb - dmidecode - Ubuntu - 2.12-2 - - - amd64 - 181 - deb - dmsetup - Ubuntu - 2:1.02.77-6ubuntu2 - - - all - 3462 - deb - dmz-cursor-theme - Ubuntu - 0.4.4ubuntu1 - - - amd64 - 371 - deb - dnsutils - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - all - 460 - deb - doc-base - Ubuntu - 0.10.5 - - - amd64 - 213 - deb - dosfstools - Ubuntu - 3.0.26-1ubuntu0.1 - - - amd64 - 6240 - deb - dpkg - Ubuntu - 1.17.5ubuntu5.8 - - - all - 1635 - deb - dpkg-dev - Ubuntu - 1.17.5ubuntu5.8 - - - all - 164 - deb - dput - Ubuntu - 0.9.6.4ubuntu1.1 - - - amd64 - 401 - deb - e2fslibs - Ubuntu - 1.42.9-3ubuntu1.3 - - - amd64 - 2440 - deb - e2fsprogs - Ubuntu - 1.42.9-3ubuntu1.3 - - - amd64 - 122 - deb - ed - Ubuntu - 1.9-2 - - - amd64 - 160 - deb - eject - Ubuntu - 2.1.5+deb1+cvs20081104-13.1ubuntu0.14.04.1 - - - amd64 - 76 - deb - enchant - Ubuntu - 1.6.0-10ubuntu1 - - - amd64 - 231 - deb - espeak - Ubuntu - 1.47.11-1ubuntu1 - - - amd64 - 1873 - deb - espeak-data - Ubuntu - 1.47.11-1ubuntu1 - - - amd64 - 325 - deb - ethtool - Ubuntu - 1:3.13-1 - - - amd64 - 1192 - deb - evince - Ubuntu - 3.10.3-0ubuntu10.4 - - - all - 2680 - deb - evince-common - Ubuntu - 3.10.3-0ubuntu10.4 - - - amd64 - 1418 - deb - evolution-data-server - Ubuntu - 3.10.4-0ubuntu1.5 - - - all - 320 - deb - evolution-data-server-common - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 270 - deb - evolution-data-server-online-accounts - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 182 - deb - exo-utils - Ubuntu - 0.10.2-3ubuntu1.14.04.2 - - - amd64 - 231 - deb - fakeroot - Ubuntu - 1.20-3ubuntu2 - - - amd64 - 98 - deb - file - Ubuntu - 1:5.14-2ubuntu3.3 - - - amd64 - 1888 - deb - file-roller - Ubuntu - 3.10.2.1-0ubuntu4.2 - - - amd64 - 816 - deb - findutils - Ubuntu - 4.4.2-7 - - - amd64 - 170673 - deb - firefox - Ubuntu - 59.0.2+build1-0ubuntu0.14.04.4 - - - amd64 - 553 - deb - fontconfig - Ubuntu - 2.11.0-0ubuntu4.2 - - - all - 354 - deb - fontconfig-config - Ubuntu - 2.11.0-0ubuntu4.2 - - - all - 2898 - deb - fonts-dejavu-core - Ubuntu - 2.34-1ubuntu1 - - - all - 7585 - deb - fonts-droid - Ubuntu - 1:4.3-3ubuntu1.2 - - - all - 10613 - deb - fonts-freefont-ttf - Ubuntu - 20120503-4 - - - all - 1009 - deb - fonts-kacst - Ubuntu - 2.01+mry-10 - - - all - 141 - deb - fonts-kacst-one - Ubuntu - 5.0+svn11846-7 - - - all - 571 - deb - fonts-khmeros-core - Ubuntu - 5.0-7ubuntu1 - - - all - 131 - deb - fonts-lao - Ubuntu - 0.0.20060226-9 - - - all - 2119 - deb - fonts-liberation - Ubuntu - 1.07.3-3 - - - all - 344 - deb - fonts-lklug-sinhala - Ubuntu - 0.6-3 - - - all - 316 - deb - fonts-lyx - Ubuntu - 2.0.8.1-0ubuntu1 - - - all - 25141 - deb - fonts-nanum - Ubuntu - 20131007-1 - - - all - 368 - deb - fonts-opensymbol - Ubuntu - 2:102.6+LibO4.2.8-0ubuntu5.3 - - - all - 1091 - deb - fonts-sil-abyssinica - Ubuntu - 1.200-6 - - - all - 1857 - deb - fonts-sil-padauk - Ubuntu - 2.80-2 - - - all - 6170 - deb - fonts-takao-pgothic - Ubuntu - 003.02.01-9ubuntu2 - - - all - 43 - deb - fonts-thai-tlwg - Ubuntu - 1:0.5.1-3 - - - all - 4449 - deb - fonts-tibetan-machine - Ubuntu - 1.901b-5 - - - all - 385 - deb - fonts-tlwg-garuda - Ubuntu - 1:0.5.1-3 - - - all - 622 - deb - fonts-tlwg-kinnari - Ubuntu - 1:0.5.1-3 - - - all - 402 - deb - fonts-tlwg-loma - Ubuntu - 1:0.5.1-3 - - - all - 469 - deb - fonts-tlwg-mono - Ubuntu - 1:0.5.1-3 - - - all - 720 - deb - fonts-tlwg-norasi - Ubuntu - 1:0.5.1-3 - - - all - 664 - deb - fonts-tlwg-purisa - Ubuntu - 1:0.5.1-3 - - - all - 415 - deb - fonts-tlwg-sawasdee - Ubuntu - 1:0.5.1-3 - - - all - 465 - deb - fonts-tlwg-typewriter - Ubuntu - 1:0.5.1-3 - - - all - 467 - deb - fonts-tlwg-typist - Ubuntu - 1:0.5.1-3 - - - all - 468 - deb - fonts-tlwg-typo - Ubuntu - 1:0.5.1-3 - - - all - 567 - deb - fonts-tlwg-umpush - Ubuntu - 1:0.5.1-3 - - - all - 427 - deb - fonts-tlwg-waree - Ubuntu - 1:0.5.1-3 - - - all - 59 - deb - fonts-ubuntu-font-family-console - Ubuntu - 0.80-0ubuntu6 - - - all - 609 - deb - foomatic-db-compressed-ppds - Ubuntu - 20140410-0ubuntu1 - - - all - 67 - deb - friendly-recovery - Ubuntu - 0.2.25 - - - amd64 - 144 - deb - ftp - Ubuntu - 0.17-28 - - - amd64 - 152 - deb - fuse - Ubuntu - 2.9.2-4ubuntu4.14.04.1 - - - amd64 - 34 - deb - g++ - Ubuntu - 4:4.8.2-1ubuntu6 - - - amd64 - 27948 - deb - g++-4.8 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 1892 - deb - gawk - Ubuntu - 1:4.0.1+dfsg-2.1ubuntu2 - - - amd64 - 41 - deb - gcc - Ubuntu - 4:4.8.2-1ubuntu6 - - - amd64 - 15321 - deb - gcc-4.8 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 217 - deb - gcc-4.8-base - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 221 - deb - gcc-4.9-base - Ubuntu - 4.9.3-0ubuntu4 - - - i386 - 221 - deb - gcc-4.9-base - Ubuntu - 4.9.3-0ubuntu4 - - - amd64 - 377 - deb - gconf-service - Ubuntu - 3.2.6-0ubuntu2 - - - amd64 - 578 - deb - gconf-service-backend - Ubuntu - 3.2.6-0ubuntu2 - - - amd64 - 608 - deb - gconf2 - Ubuntu - 3.2.6-0ubuntu2 - - - all - 516 - deb - gconf2-common - Ubuntu - 3.2.6-0ubuntu2 - - - amd64 - 484 - deb - gcr - Ubuntu - 3.10.1-1 - - - amd64 - 6322 - deb - gdb - Ubuntu - 7.7.1-0ubuntu5~14.04.3 - - - amd64 - 743 - deb - gdisk - Ubuntu - 0.8.8-1ubuntu0.1 - - - amd64 - 1543 - deb - genisoimage - Ubuntu - 9:1.1.11-2ubuntu3 - - - amd64 - 111 - deb - geoclue - Ubuntu - 0.12.99-3ubuntu1 - - - all - 3881 - deb - geoip-database - Ubuntu - 20140313-1 - - - amd64 - 3436 - deb - gettext - Ubuntu - 0.18.3.1-1ubuntu3 - - - amd64 - 344 - deb - gettext-base - Ubuntu - 0.18.3.1-1ubuntu3 - - - amd64 - 235 - deb - ghostscript - Ubuntu - 9.10~dfsg-0ubuntu10.12 - - - amd64 - 221 - deb - ghostscript-x - Ubuntu - 9.10~dfsg-0ubuntu10.12 - - - amd64 - 998 - deb - gigolo - Ubuntu - 0.4.2-1 - - - amd64 - 15386 - deb - gimp - Ubuntu - 2.8.10-0ubuntu1.2 - - - all - 14700 - deb - gimp-data - Ubuntu - 2.8.10-0ubuntu1.2 - - - amd64 - 50 - deb - gir1.2-appindicator3-0.1 - Ubuntu - 12.10.1+13.10.20130920-0ubuntu4.1 - - - amd64 - 143 - deb - gir1.2-atk-1.0 - Ubuntu - 2.10.0-2ubuntu2 - - - amd64 - 85 - deb - gir1.2-atspi-2.0 - Ubuntu - 2.10.2.is.2.10.1-0ubuntu1 - - - amd64 - 60 - deb - gir1.2-freedesktop - Ubuntu - 1.40.0-1ubuntu0.2 - - - amd64 - 66 - deb - gir1.2-gdkpixbuf-2.0 - Ubuntu - 2.30.7-0ubuntu1.8 - - - amd64 - 620 - deb - gir1.2-glib-2.0 - Ubuntu - 1.40.0-1ubuntu0.2 - - - amd64 - 104 - deb - gir1.2-gmenu-3.0 - Ubuntu - 3.10.1-0ubuntu2 - - - amd64 - 314 - deb - gir1.2-gst-plugins-base-1.0 - Ubuntu - 1.2.4-1~ubuntu2.1 - - - amd64 - 1061 - deb - gir1.2-gstreamer-1.0 - Ubuntu - 1.2.4-0ubuntu1.1 - - - amd64 - 933 - deb - gir1.2-gtk-3.0 - Ubuntu - 3.10.8-0ubuntu1.6 - - - amd64 - 72 - deb - gir1.2-gudev-1.0 - Ubuntu - 1:204-5ubuntu20.28 - - - amd64 - 95 - deb - gir1.2-javascriptcoregtk-3.0 - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - amd64 - 173 - deb - gir1.2-packagekitglib-1.0 - Ubuntu - 0.8.12-1ubuntu5 - - - amd64 - 269 - deb - gir1.2-pango-1.0 - Ubuntu - 1.36.3-1ubuntu1.1 - - - amd64 - 169 - deb - gir1.2-soup-2.4 - Ubuntu - 2.44.2-1ubuntu2.2 - - - amd64 - 436 - deb - gir1.2-vte-2.90 - Ubuntu - 1:0.34.9-1ubuntu2 - - - amd64 - 370 - deb - gir1.2-webkit-3.0 - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - amd64 - 118 - deb - gir1.2-wnck-3.0 - Ubuntu - 3.4.7-0ubuntu3.1 - - - amd64 - 185 - deb - glib-networking - Ubuntu - 2.40.0-1ubuntu0.1 - - - all - 52 - deb - glib-networking-common - Ubuntu - 2.40.0-1ubuntu0.1 - - - amd64 - 66 - deb - glib-networking-services - Ubuntu - 2.40.0-1ubuntu0.1 - - - all - 3497 - deb - gmusicbrowser - Ubuntu - 1.1.12+ds0-1 - - - all - 4691 - deb - gnome-accessibility-themes - Ubuntu - 3.10.0-1ubuntu2 - - - amd64 - 2032 - deb - gnome-calculator - Ubuntu - 1:3.10.3-0ubuntu0.1.1 - - - all - 540 - deb - gnome-desktop-data - Ubuntu - 1:2.32.1-2ubuntu1 - - - all - 1074 - deb - gnome-icon-theme - Ubuntu - 3.10.0-0ubuntu2 - - - all - 9752 - deb - gnome-icon-theme-full - Ubuntu - 3.10.0-0ubuntu2 - - - all - 736 - deb - gnome-icon-theme-symbolic - Ubuntu - 3.10.1-1ubuntu1 - - - amd64 - 3580 - deb - gnome-keyring - Ubuntu - 3.10.1-1ubuntu4.3 - - - amd64 - 344 - deb - gnome-menus - Ubuntu - 3.10.1-0ubuntu2 - - - amd64 - 1304 - deb - gnome-mines - Ubuntu - 1:3.10.1-0ubuntu1 - - - all - 2252 - deb - gnome-sudoku - Ubuntu - 1:3.10.2-0ubuntu3.1 - - - amd64 - 10163 - deb - gnome-system-tools - Ubuntu - 3.0.0-3ubuntu4.1 - - - amd64 - 330 - deb - gnome-themes-standard - Ubuntu - 3.10.0-1ubuntu2 - - - all - 7358 - deb - gnome-themes-standard-data - Ubuntu - 3.10.0-1ubuntu2 - - - all - 29161 - deb - gnome-user-guide - Ubuntu - 3.8.2-1 - - - all - 68 - deb - gnomine - Ubuntu - 1:3.10.1-0ubuntu1 - - - amd64 - 6934 - deb - gnumeric - Ubuntu - 1.12.9-1 - - - all - 14879 - deb - gnumeric-common - Ubuntu - 1.12.9-1 - - - all - 12633 - deb - gnumeric-doc - Ubuntu - 1.12.9-1 - - - amd64 - 1680 - deb - gnupg - Ubuntu - 1.4.16-1ubuntu2.4 - - - amd64 - 443 - deb - gpgv - Ubuntu - 1.4.16-1ubuntu2.4 - - - amd64 - 712 - deb - grep - Ubuntu - 2.16-1 - - - amd64 - 2796 - deb - groff-base - Ubuntu - 1.22.2-5 - - - amd64 - 11484 - deb - grub-common - Ubuntu - 2.02~beta2-9ubuntu1.14 - - - amd64 - 47 - deb - grub-gfxpayload-lists - Ubuntu - 0.6 - - - amd64 - 553 - deb - grub-pc - Ubuntu - 2.02~beta2-9ubuntu1.14 - - - amd64 - 2795 - deb - grub-pc-bin - Ubuntu - 2.02~beta2-9ubuntu1.14 - - - amd64 - 1127 - deb - grub2-common - Ubuntu - 2.02~beta2-9ubuntu1.14 - - - all - 244 - deb - gsettings-desktop-schemas - Ubuntu - 3.10.1-0ubuntu1 - - - all - 4764 - deb - gsfonts - Ubuntu - 1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1 - - - amd64 - 205 - deb - gstreamer0.10-alsa - Ubuntu - 0.10.36-1.1ubuntu2.1 - - - amd64 - 92 - deb - gstreamer0.10-nice - Ubuntu - 0.1.4-1 - - - amd64 - 2122 - deb - gstreamer0.10-plugins-base - Ubuntu - 0.10.36-1.1ubuntu2.1 - - - amd64 - 138 - deb - gstreamer0.10-plugins-base-apps - Ubuntu - 0.10.36-1.1ubuntu2.1 - - - amd64 - 5180 - deb - gstreamer0.10-plugins-good - Ubuntu - 0.10.31-3+nmu1ubuntu5.3 - - - amd64 - 249 - deb - gstreamer0.10-pulseaudio - Ubuntu - 0.10.31-3+nmu1ubuntu5.3 - - - amd64 - 800 - deb - gstreamer0.10-tools - Ubuntu - 0.10.36-1.2ubuntu3 - - - amd64 - 308 - deb - gstreamer0.10-x - Ubuntu - 0.10.36-1.1ubuntu2.1 - - - amd64 - 341 - deb - gstreamer1.0-libav - Ubuntu - 1.2.4-1~ubuntu1 - - - amd64 - 1739 - deb - gstreamer1.0-plugins-base - Ubuntu - 1.2.4-1~ubuntu2.1 - - - amd64 - 4916 - deb - gstreamer1.0-plugins-good - Ubuntu - 1.2.4-1~ubuntu1.4 - - - amd64 - 222 - deb - gstreamer1.0-pulseaudio - Ubuntu - 1.2.4-1~ubuntu1.4 - - - amd64 - 911 - deb - gstreamer1.0-tools - Ubuntu - 1.2.4-0ubuntu1.1 - - - amd64 - 295 - deb - gstreamer1.0-x - Ubuntu - 1.2.4-1~ubuntu2.1 - - - amd64 - 128 - deb - gtk-theme-config - Ubuntu - 1.0-1 - - - amd64 - 312 - deb - gtk2-engines-murrine - Ubuntu - 0.98.2-0ubuntu2 - - - amd64 - 604 - deb - gtk2-engines-pixbuf - Ubuntu - 2.24.23-0ubuntu1.4 - - - amd64 - 596 - deb - gucharmap - Ubuntu - 1:3.10.1-0ubuntu2 - - - amd64 - 581 - deb - gvfs - Ubuntu - 1.20.3-0ubuntu1.2 - - - amd64 - 1544 - deb - gvfs-backends - Ubuntu - 1.20.3-0ubuntu1.2 - - - amd64 - 463 - deb - gvfs-bin - Ubuntu - 1.20.3-0ubuntu1.2 - - - all - 376 - deb - gvfs-common - Ubuntu - 1.20.3-0ubuntu1.2 - - - amd64 - 698 - deb - gvfs-daemons - Ubuntu - 1.20.3-0ubuntu1.2 - - - amd64 - 291 - deb - gvfs-fuse - Ubuntu - 1.20.3-0ubuntu1.2 - - - amd64 - 631 - deb - gvfs-libs - Ubuntu - 1.20.3-0ubuntu1.2 - - - amd64 - 236 - deb - gzip - Ubuntu - 1.6-3ubuntu1 - - - all - 71 - deb - hardening-includes - Ubuntu - 2.5ubuntu2.1 - - - amd64 - 270 - deb - hdparm - Ubuntu - 9.43-1ubuntu3 - - - all - 1415 - deb - hicolor-icon-theme - Ubuntu - 0.13-1 - - - amd64 - 69 - deb - hostname - Ubuntu - 3.15ubuntu1 - - - amd64 - 395 - deb - hplip - Ubuntu - 3.14.3-0ubuntu3.4 - - - all - 9549 - deb - hplip-data - Ubuntu - 3.14.3-0ubuntu3.4 - - - all - 14658 - deb - humanity-icon-theme - Ubuntu - 0.6.5 - - - all - 726 - deb - hunspell-en-us - Ubuntu - 20070829-4ubuntu3 - - - amd64 - 238 - deb - ifupdown - Ubuntu - 0.7.47.2ubuntu4.4 - - - all - 336 - deb - im-config - Ubuntu - 0.24-1ubuntu4.2 - - - amd64 - 161 - deb - indicator-application - Ubuntu - 12.10.1+14.04.20140407-0ubuntu1 - - - amd64 - 451 - deb - info - Ubuntu - 5.2.0.dfsg.1-2 - - - all - 72 - deb - init-system-helpers - Ubuntu - 1.14ubuntu1 - - - all - 367 - deb - initramfs-tools - Ubuntu - 0.103ubuntu4.10 - - - amd64 - 121 - deb - initramfs-tools-bin - Ubuntu - 0.103ubuntu4.10 - - - amd64 - 224 - deb - initscripts - Ubuntu - 2.88dsf-41ubuntu6.3 - - - amd64 - 86 - deb - inputattach - Ubuntu - 1:1.4.7-1 - - - amd64 - 183 - deb - insserv - Ubuntu - 1.14.0-5ubuntu2 - - - amd64 - 266 - deb - install-info - Ubuntu - 5.2.0.dfsg.1-2 - - - all - 79 - deb - installation-report - Ubuntu - 2.54ubuntu1 - - - all - 140 - deb - intltool-debian - Ubuntu - 0.35.0+20060710.1 - - - all - 40 - deb - iproute - Ubuntu - 1:3.12.0-2ubuntu1.2 - - - amd64 - 1148 - deb - iproute2 - Ubuntu - 3.12.0-2ubuntu1.2 - - - amd64 - 1575 - deb - iptables - Ubuntu - 1.4.21-1ubuntu1 - - - amd64 - 159 - deb - iputils-ping - Ubuntu - 3:20121221-4ubuntu1.1 - - - amd64 - 112 - deb - iputils-tracepath - Ubuntu - 3:20121221-4ubuntu1.1 - - - amd64 - 117 - deb - irqbalance - Ubuntu - 1.0.6-2ubuntu0.14.04.4 - - - amd64 - 1826 - deb - isc-dhcp-client - Ubuntu - 4.2.4-7ubuntu12.13 - - - amd64 - 1770 - deb - isc-dhcp-common - Ubuntu - 4.2.4-7ubuntu12.13 - - - all - 15207 - deb - iso-codes - Ubuntu - 3.52-1 - - - amd64 - 1032 - deb - kbd - Ubuntu - 1.15.5-1ubuntu1 - - - amd64 - 117 - deb - kerneloops-daemon - Ubuntu - 0.12+git20090217-3ubuntu8 - - - all - 2304 - deb - keyboard-configuration - Ubuntu - 1.70ubuntu8 - - - amd64 - 387 - deb - klibc-utils - Ubuntu - 2.0.3-0ubuntu1.14.04.3 - - - amd64 - 282 - deb - kmod - Ubuntu - 15-0ubuntu6 - - - all - 2664 - deb - krb5-locales - Ubuntu - 1.12+dfsg-2ubuntu5.3 - - - amd64 - 958 - deb - landscape-common - Ubuntu - 14.12-0ubuntu6.14.04.3 - - - all - 30 - deb - language-pack-en - Ubuntu - 1:14.04+20160720 - - - all - 4333 - deb - language-pack-en-base - Ubuntu - 1:14.04+20160720 - - - all - 30 - deb - language-pack-fr - Ubuntu - 1:14.04+20160720 - - - all - 11200 - deb - language-pack-fr-base - Ubuntu - 1:14.04+20160720 - - - all - 2293 - deb - language-selector-common - Ubuntu - 0.129.3 - - - all - 169 - deb - language-selector-gnome - Ubuntu - 0.129.3 - - - amd64 - 56 - deb - laptop-detect - Ubuntu - 0.13.7ubuntu2 - - - amd64 - 288 - deb - less - Ubuntu - 458-2 - - - amd64 - 165 - deb - libaa1 - Ubuntu - 1.4p5-41 - - - amd64 - 7575 - deb - libabiword-3.0 - Ubuntu - 3.0.0-4ubuntu1.1 - - - amd64 - 148 - deb - libaccounts-glib0 - Ubuntu - 1.15+14.04.20131126.2-0ubuntu3 - - - amd64 - 365 - deb - libaccountsservice0 - Ubuntu - 0.6.35-0ubuntu7.3 - - - amd64 - 76 - deb - libacl1 - Ubuntu - 2.2.52-1 - - - all - 136 - deb - libalgorithm-diff-perl - Ubuntu - 1.19.02-3 - - - amd64 - 87 - deb - libalgorithm-diff-xs-perl - Ubuntu - 0.04-2build4 - - - all - 80 - deb - libalgorithm-merge-perl - Ubuntu - 0.08-2 - - - amd64 - 78 - deb - libamd2.3.1 - Ubuntu - 1:4.2.1-3ubuntu1 - - - amd64 - 231 - deb - libapparmor-perl - Ubuntu - 2.10.95-0ubuntu2.6~14.04.3 - - - amd64 - 148 - deb - libapparmor1 - Ubuntu - 2.10.95-0ubuntu2.6~14.04.3 - - - amd64 - 95 - deb - libappindicator3-1 - Ubuntu - 12.10.1+13.10.20130920-0ubuntu4.1 - - - amd64 - 265 - deb - libapr1 - Ubuntu - 1.5.0-1 - - - amd64 - 252 - deb - libaprutil1 - Ubuntu - 1.5.3-1 - - - amd64 - 70 - deb - libaprutil1-dbd-sqlite3 - Ubuntu - 1.5.3-1 - - - amd64 - 62 - deb - libaprutil1-ldap - Ubuntu - 1.5.3-1 - - - amd64 - 736 - deb - libapt-inst1.5 - Ubuntu - 1.0.1ubuntu2.18 - - - amd64 - 259 - deb - libapt-pkg-perl - Ubuntu - 0.1.29build1 - - - amd64 - 2881 - deb - libapt-pkg4.12 - Ubuntu - 1.0.1ubuntu2.18 - - - all - 100 - deb - libarchive-extract-perl - Ubuntu - 0.70-1 - - - all - 273 - deb - libarchive-zip-perl - Ubuntu - 1.30-7 - - - amd64 - 698 - deb - libarchive13 - Ubuntu - 3.1.2-7ubuntu2.4 - - - amd64 - 153 - deb - libart-2.0-2 - Ubuntu - 2.3.21-2 - - - amd64 - 201 - deb - libasan0 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 803 - deb - libasn1-8-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 1163 - deb - libasound2 - Ubuntu - 1.0.27.2-3ubuntu7 - - - all - 338 - deb - libasound2-data - Ubuntu - 1.0.27.2-3ubuntu7 - - - amd64 - 272 - deb - libasound2-plugins - Ubuntu - 1.0.27-2ubuntu2 - - - amd64 - 2263 - deb - libaspell15 - Ubuntu - 0.60.7~20110707-1ubuntu1 - - - amd64 - 75 - deb - libasprintf-dev - Ubuntu - 0.18.3.1-1ubuntu3 - - - amd64 - 72 - deb - libasprintf0c2 - Ubuntu - 0.18.3.1-1ubuntu3 - - - amd64 - 59 - deb - libasyncns0 - Ubuntu - 0.8-4ubuntu2 - - - amd64 - 99 - deb - libatasmart4 - Ubuntu - 0.19-3 - - - amd64 - 212 - deb - libatk-bridge2.0-0 - Ubuntu - 2.10.2-2ubuntu1 - - - amd64 - 224 - deb - libatk1.0-0 - Ubuntu - 2.10.0-2ubuntu2 - - - all - 92 - deb - libatk1.0-data - Ubuntu - 2.10.0-2ubuntu2 - - - amd64 - 326 - deb - libatkmm-1.6-1 - Ubuntu - 2.22.7-2ubuntu1 - - - amd64 - 58 - deb - libatomic1 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 215 - deb - libatspi2.0-0 - Ubuntu - 2.10.2.is.2.10.1-0ubuntu1 - - - amd64 - 56 - deb - libattr1 - Ubuntu - 1:2.4.47-1ubuntu1 - - - all - 44 - deb - libaudit-common - Ubuntu - 1:2.3.2-2ubuntu1 - - - amd64 - 144 - deb - libaudit1 - Ubuntu - 1:2.3.2-2ubuntu1 - - - i386 - 143 - deb - libaudit1 - Ubuntu - 1:2.3.2-2ubuntu1 - - - all - 212 - deb - libauthen-sasl-perl - Ubuntu - 2.1500-1 - - - all - 182 - deb - libautodie-perl - Ubuntu - 2.23-1 - - - amd64 - 138 - deb - libavahi-client3 - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 116 - deb - libavahi-common-data - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 119 - deb - libavahi-common3 - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 283 - deb - libavahi-core7 - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 83 - deb - libavahi-glib1 - Ubuntu - 0.6.31-4ubuntu1.2 - - - amd64 - 73 - deb - libavc1394-0 - Ubuntu - 0.5.4-2 - - - amd64 - 6133 - deb - libavcodec54 - Ubuntu - 6:9.20-0ubuntu0.14.04.1 - - - amd64 - 1277 - deb - libavformat54 - Ubuntu - 6:9.20-0ubuntu0.14.04.1 - - - amd64 - 248 - deb - libavutil52 - Ubuntu - 6:9.20-0ubuntu0.14.04.1 - - - amd64 - 309 - deb - libbabl-0.1-0 - Ubuntu - 0.1.10-1ubuntu2 - - - amd64 - 109 - deb - libbind9-90 - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 544 - deb - libblas3 - Ubuntu - 1.2.20110419-7 - - - amd64 - 248 - deb - libblkid1 - Ubuntu - 2.20.1-5.1ubuntu20.9 - - - amd64 - 198 - deb - libbluetooth3 - Ubuntu - 4.101-0ubuntu13.3 - - - amd64 - 167 - deb - libboost-iostreams1.54.0 - Ubuntu - 1.54.0-4ubuntu3.1 - - - amd64 - 146 - deb - libbrlapi0.6 - Ubuntu - 5.0-2ubuntu2 - - - amd64 - 145 - deb - libbsd0 - Ubuntu - 0.6.0-2ubuntu1 - - - amd64 - 336 - deb - libburn4 - Ubuntu - 1.3.4-0ubuntu1 - - - amd64 - 113 - deb - libbz2-1.0 - Ubuntu - 1.0.6-5 - - - amd64 - 3438 - deb - libc-bin - Ubuntu - 2.19-0ubuntu6.14 - - - amd64 - 375 - deb - libc-dev-bin - Ubuntu - 2.19-0ubuntu6.14 - - - amd64 - 10508 - deb - libc6 - Ubuntu - 2.19-0ubuntu6.14 - - - i386 - 9261 - deb - libc6 - Ubuntu - 2.19-0ubuntu6.14 - - - amd64 - 22399 - deb - libc6-dbg - Ubuntu - 2.19-0ubuntu6.14 - - - amd64 - 12172 - deb - libc6-dev - Ubuntu - 2.19-0ubuntu6.14 - - - amd64 - 1049 - deb - libcaca0 - Ubuntu - 0.99.beta18-1ubuntu5 - - - amd64 - 332 - deb - libcairo-gobject2 - Ubuntu - 1.13.0~20140204-0ubuntu1.1 - - - amd64 - 389 - deb - libcairo-perl - Ubuntu - 1.104-1 - - - amd64 - 1373 - deb - libcairo2 - Ubuntu - 1.13.0~20140204-0ubuntu1.1 - - - amd64 - 203 - deb - libcairomm-1.0-1 - Ubuntu - 1.10.0-1ubuntu3 - - - amd64 - 79 - deb - libcamd2.3.1 - Ubuntu - 1:4.2.1-3ubuntu1 - - - amd64 - 1607 - deb - libcamel-1.2-45 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 60 - deb - libcanberra-gtk3-0 - Ubuntu - 0.30-0ubuntu3 - - - amd64 - 88 - deb - libcanberra-gtk3-module - Ubuntu - 0.30-0ubuntu3 - - - amd64 - 72 - deb - libcanberra-pulse - Ubuntu - 0.30-0ubuntu3 - - - amd64 - 137 - deb - libcanberra0 - Ubuntu - 0.30-0ubuntu3 - - - amd64 - 54 - deb - libcap-ng0 - Ubuntu - 0.7.3-1ubuntu2 - - - amd64 - 57 - deb - libcap2 - Ubuntu - 1:2.24-0ubuntu2 - - - amd64 - 99 - deb - libcap2-bin - Ubuntu - 1:2.24-0ubuntu2 - - - amd64 - 79 - deb - libccolamd2.8.0 - Ubuntu - 1:4.2.1-3ubuntu1 - - - amd64 - 175 - deb - libcdio-cdda1 - Ubuntu - 0.83-4.1ubuntu1 - - - amd64 - 175 - deb - libcdio-paranoia1 - Ubuntu - 0.83-4.1ubuntu1 - - - amd64 - 288 - deb - libcdio13 - Ubuntu - 0.83-4.1ubuntu1 - - - amd64 - 154 - deb - libcdparanoia0 - Ubuntu - 3.10.2+debian-11 - - - amd64 - 145 - deb - libcgmanager0 - Ubuntu - 0.24-0ubuntu7.5 - - - amd64 - 432 - deb - libchamplain-0.12-0 - Ubuntu - 0.12.7-0ubuntu1 - - - amd64 - 187 - deb - libchamplain-gtk-0.12-0 - Ubuntu - 0.12.7-0ubuntu1 - - - amd64 - 883 - deb - libcholmod2.1.2 - Ubuntu - 1:4.2.1-3ubuntu1 - - - amd64 - 56 - deb - libck-connector0 - Ubuntu - 0.4.5-3.1ubuntu2 - - - all - 104 - deb - libclass-accessor-perl - Ubuntu - 0.34-1 - - - amd64 - 66 - deb - libclone-perl - Ubuntu - 0.36-1 - - - amd64 - 191 - deb - libcloog-isl4 - Ubuntu - 0.18.2-1 - - - amd64 - 1513 - deb - libclutter-1.0-0 - Ubuntu - 1.16.4-0ubuntu2 - - - all - 172 - deb - libclutter-1.0-common - Ubuntu - 1.16.4-0ubuntu2 - - - amd64 - 90 - deb - libclutter-gtk-1.0-0 - Ubuntu - 1.4.4-3ubuntu2.2 - - - all - 248 - deb - libcogl-common - Ubuntu - 1.16.2-1 - - - amd64 - 94 - deb - libcogl-pango15 - Ubuntu - 1.16.2-1 - - - amd64 - 757 - deb - libcogl15 - Ubuntu - 1.16.2-1 - - - amd64 - 67 - deb - libcolamd2.8.0 - Ubuntu - 1:4.2.1-3ubuntu1 - - - amd64 - 333 - deb - libcolord1 - Ubuntu - 1.0.6-1 - - - amd64 - 105 - deb - libcolorhug1 - Ubuntu - 1.0.6-1 - - - amd64 - 103 - deb - libcomerr2 - Ubuntu - 1.42.9-3ubuntu1.3 - - - amd64 - 83 - deb - libcommon-sense-perl - Ubuntu - 3.72-2build1 - - - amd64 - 339 - deb - libcroco3 - Ubuntu - 0.6.8-2ubuntu1 - - - amd64 - 616 - deb - libcups2 - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 186 - deb - libcupscgi1 - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 208 - deb - libcupsfilters1 - Ubuntu - 1.0.52-0ubuntu1.7 - - - amd64 - 161 - deb - libcupsimage2 - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 152 - deb - libcupsmime1 - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 253 - deb - libcupsppdc1 - Ubuntu - 1.7.2-0ubuntu1.9 - - - amd64 - 548 - deb - libcurl3 - Ubuntu - 7.35.0-1ubuntu2.15 - - - amd64 - 527 - deb - libcurl3-gnutls - Ubuntu - 7.35.0-1ubuntu2.15 - - - amd64 - 1088 - deb - libcwidget3 - Ubuntu - 0.5.16-3.5ubuntu1 - - - amd64 - 63 - deb - libdaemon0 - Ubuntu - 0.14-2ubuntu1 - - - amd64 - 81 - deb - libdatrie1 - Ubuntu - 0.2.8-1 - - - amd64 - 1725 - deb - libdb5.3 - Ubuntu - 5.3.28-3ubuntu3.1 - - - amd64 - 380 - deb - libdbus-1-3 - Ubuntu - 1.6.18-0ubuntu4.5 - - - amd64 - 230 - deb - libdbus-glib-1-2 - Ubuntu - 0.100.2-1 - - - amd64 - 160 - deb - libdbusmenu-glib4 - Ubuntu - 12.10.3+14.04.20140612-0ubuntu1 - - - amd64 - 130 - deb - libdbusmenu-gtk3-4 - Ubuntu - 12.10.3+14.04.20140612-0ubuntu1 - - - amd64 - 130 - deb - libdbusmenu-gtk4 - Ubuntu - 12.10.3+14.04.20140612-0ubuntu1 - - - amd64 - 104 - deb - libdconf1 - Ubuntu - 0.20.0-1 - - - amd64 - 85 - deb - libdebconfclient0 - Ubuntu - 0.187ubuntu1 - - - amd64 - 284 - deb - libdee-1.0-4 - Ubuntu - 1.2.7+14.04.20140324-0ubuntu1 - - - amd64 - 301 - deb - libdevmapper1.02.1 - Ubuntu - 2:1.02.77-6ubuntu2 - - - amd64 - 81 - deb - libdigest-crc-perl - Ubuntu - 0.18-1build1 - - - all - 72 - deb - libdigest-hmac-perl - Ubuntu - 1.03+dfsg-1 - - - all - 44 - deb - libdistro-info-perl - Ubuntu - 0.12 - - - all - 382 - deb - libdjvulibre-text - Ubuntu - 3.5.25.4-3 - - - amd64 - 1649 - deb - libdjvulibre21 - Ubuntu - 3.5.25.4-3 - - - amd64 - 1922 - deb - libdns100 - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 60 - deb - libdotconf0 - Ubuntu - 1.3-0ubuntu2 - - - all - 1520 - deb - libdpkg-perl - Ubuntu - 1.17.5ubuntu5.8 - - - amd64 - 191 - deb - libdrm-intel1 - Ubuntu - 2.4.67-1ubuntu0.14.04.2 - - - amd64 - 96 - deb - libdrm-nouveau2 - Ubuntu - 2.4.67-1ubuntu0.14.04.2 - - - amd64 - 104 - deb - libdrm-radeon1 - Ubuntu - 2.4.67-1ubuntu0.14.04.2 - - - amd64 - 116 - deb - libdrm2 - Ubuntu - 2.4.67-1ubuntu0.14.04.2 - - - amd64 - 166 - deb - libdv4 - Ubuntu - 1.0.0-6 - - - amd64 - 623 - deb - libebackend-1.2-7 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 305 - deb - libebook-1.2-14 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 291 - deb - libebook-contacts-1.2-0 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 482 - deb - libecal-1.2-16 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 376 - deb - libedata-book-1.2-20 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 381 - deb - libedata-cal-1.2-23 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 849 - deb - libedataserver-1.2-18 - Ubuntu - 3.10.4-0ubuntu1.5 - - - amd64 - 236 - deb - libedit2 - Ubuntu - 3.1-20130712-2 - - - amd64 - 248 - deb - libegl1-mesa - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 6675 - deb - libegl1-mesa-drivers - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 164 - deb - libelf1 - Ubuntu - 0.158-0ubuntu5.2 - - - amd64 - 180 - deb - libelfg0 - Ubuntu - 0.8.13-5 - - - all - 79 - deb - libemail-valid-perl - Ubuntu - 1.192-1 - - - amd64 - 265 - deb - libenchant1c2a - Ubuntu - 1.6.0-10ubuntu1 - - - all - 58 - deb - libencode-locale-perl - Ubuntu - 1.03-1 - - - amd64 - 401 - deb - libept1.4.12 - Ubuntu - 1.0.12 - - - all - 80 - deb - liberror-perl - Ubuntu - 0.17-1.1 - - - amd64 - 325 - deb - libespeak1 - Ubuntu - 1.47.11-1ubuntu1 - - - amd64 - 49 - deb - libestr0 - Ubuntu - 0.1.9-0ubuntu2 - - - amd64 - 1215 - deb - libevdocument3-4 - Ubuntu - 3.10.3-0ubuntu10.4 - - - amd64 - 311 - deb - libevent-2.0-5 - Ubuntu - 2.0.21-stable-1ubuntu1.14.04.2 - - - amd64 - 906 - deb - libevview3-3 - Ubuntu - 3.10.3-0ubuntu10.4 - - - amd64 - 348 - deb - libexif12 - Ubuntu - 0.6.21-1ubuntu1 - - - amd64 - 2085 - deb - libexo-1-0 - Ubuntu - 0.10.2-3ubuntu1.14.04.2 - - - all - 83 - deb - libexo-common - Ubuntu - 0.10.2-3ubuntu1.14.04.2 - - - amd64 - 98 - deb - libexo-helpers - Ubuntu - 0.10.2-3ubuntu1.14.04.2 - - - amd64 - 391 - deb - libexpat1 - Ubuntu - 2.1.0-4ubuntu1.4 - - - all - 60 - deb - libexporter-lite-perl - Ubuntu - 0.02-2 - - - amd64 - 174 - deb - libfakeroot - Ubuntu - 1.20-3ubuntu2 - - - amd64 - 703 - deb - libfarstream-0.1-0 - Ubuntu - 0.1.2-1ubuntu3 - - - amd64 - 71 - deb - libffi6 - Ubuntu - 3.1~rc1+r3.0.13-12ubuntu0.2 - - - amd64 - 2166 - deb - libfftw3-single3 - Ubuntu - 3.3.3-7ubuntu3 - - - all - 64 - deb - libfile-basedir-perl - Ubuntu - 0.03-1fakesync1 - - - all - 88 - deb - libfile-copy-recursive-perl - Ubuntu - 0.38-1 - - - all - 79 - deb - libfile-desktopentry-perl - Ubuntu - 0.07-1 - - - amd64 - 87 - deb - libfile-fcntllock-perl - Ubuntu - 0.14-2build1 - - - all - 55 - deb - libfile-listing-perl - Ubuntu - 6.04-1 - - - all - 139 - deb - libfile-mimeinfo-perl - Ubuntu - 0.22-1 - - - amd64 - 239 - deb - libflac8 - Ubuntu - 1.3.0-2ubuntu0.14.04.1 - - - all - 120 - deb - libfont-afm-perl - Ubuntu - 1.20-1 - - - amd64 - 498 - deb - libfontconfig1 - Ubuntu - 2.11.0-0ubuntu4.2 - - - amd64 - 134 - deb - libfontembed1 - Ubuntu - 1.0.52-0ubuntu1.7 - - - amd64 - 66 - deb - libfontenc1 - Ubuntu - 1:1.1.2-1 - - - amd64 - 158 - deb - libframe6 - Ubuntu - 2.5.0daily13.06.05-0ubuntu1 - - - amd64 - 896 - deb - libfreetype6 - Ubuntu - 2.5.2-1ubuntu2.8 - - - amd64 - 136 - deb - libfribidi0 - Ubuntu - 0.19.6-1 - - - amd64 - 86 - deb - libfs6 - Ubuntu - 2:1.0.5-1 - - - amd64 - 321 - deb - libfuse2 - Ubuntu - 2.9.2-4ubuntu4.14.04.1 - - - amd64 - 161 - deb - libgail-3-0 - Ubuntu - 3.10.8-0ubuntu1.6 - - - amd64 - 184 - deb - libgarcon-1-0 - Ubuntu - 0.3.0-1ubuntu2 - - - all - 688 - deb - libgarcon-common - Ubuntu - 0.3.0-1ubuntu2 - - - amd64 - 142 - deb - libgbm1 - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 287 - deb - libgc1c2 - Ubuntu - 1:7.2d-5ubuntu2.1 - - - amd64 - 5779 - deb - libgcc-4.8-dev - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 129 - deb - libgcc1 - Ubuntu - 1:4.9.3-0ubuntu4 - - - i386 - 153 - deb - libgcc1 - Ubuntu - 1:4.9.3-0ubuntu4 - - - amd64 - 392 - deb - libgck-1-0 - Ubuntu - 3.10.1-1 - - - amd64 - 573 - deb - libgconf-2-4 - Ubuntu - 3.2.6-0ubuntu2 - - - all - 189 - deb - libgcr-3-common - Ubuntu - 3.10.1-1 - - - amd64 - 772 - deb - libgcr-base-3-1 - Ubuntu - 3.10.1-1 - - - amd64 - 630 - deb - libgcr-ui-3-1 - Ubuntu - 3.10.1-1 - - - amd64 - 587 - deb - libgcrypt11 - Ubuntu - 1.5.3-2ubuntu4.5 - - - amd64 - 483 - deb - libgd3 - Ubuntu - 2.1.0-3ubuntu0.8 - - - all - 232 - deb - libgdata-common - Ubuntu - 0.14.1-1 - - - amd64 - 961 - deb - libgdata13 - Ubuntu - 0.14.1-1 - - - amd64 - 107 - deb - libgdbm3 - Ubuntu - 1.8.3-12build1 - - - amd64 - 562 - deb - libgdk-pixbuf2.0-0 - Ubuntu - 2.30.7-0ubuntu1.8 - - - all - 60 - deb - libgdk-pixbuf2.0-common - Ubuntu - 2.30.7-0ubuntu1.8 - - - amd64 - 327 - deb - libgdome2-0 - Ubuntu - 0.8.1+debian-6 - - - amd64 - 155 - deb - libgdome2-cpp-smart0c2a - Ubuntu - 0.2.6-6ubuntu1 - - - amd64 - 2319 - deb - libgegl-0.2-0 - Ubuntu - 0.2.0-4ubuntu1 - - - amd64 - 201 - deb - libgeis1 - Ubuntu - 2.2.16+14.04.20140303-0ubuntu1 - - - amd64 - 130 - deb - libgeoclue0 - Ubuntu - 0.12.99-3ubuntu1 - - - amd64 - 244 - deb - libgeoip1 - Ubuntu - 1.6.0-1 - - - amd64 - 689 - deb - libgettextpo-dev - Ubuntu - 0.18.3.1-1ubuntu3 - - - amd64 - 368 - deb - libgettextpo0 - Ubuntu - 0.18.3.1-1ubuntu3 - - - amd64 - 1205 - deb - libgfortran3 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 2912 - deb - libgimp2.0 - Ubuntu - 2.8.10-0ubuntu1.2 - - - amd64 - 260 - deb - libgirepository-1.0-1 - Ubuntu - 1.40.0-1ubuntu0.2 - - - amd64 - 32402 - deb - libgl1-mesa-dri - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 510 - deb - libgl1-mesa-glx - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 199 - deb - libglade2-0 - Ubuntu - 1:2.6.4-2 - - - amd64 - 251 - deb - libglamor0 - Ubuntu - 0.6.0-0ubuntu4 - - - amd64 - 243 - deb - libglapi-mesa - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 134 - deb - libgles2-mesa - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 864 - deb - libglib-perl - Ubuntu - 3:1.304-1 - - - amd64 - 4604 - deb - libglib2.0-0 - Ubuntu - 2.40.2-0ubuntu1 - - - amd64 - 1432 - deb - libglib2.0-bin - Ubuntu - 2.40.2-0ubuntu1 - - - all - 1348 - deb - libglib2.0-data - Ubuntu - 2.40.2-0ubuntu1 - - - amd64 - 2215 - deb - libglibmm-2.4-1c2a - Ubuntu - 2.39.93-0ubuntu1 - - - amd64 - 485 - deb - libglu1-mesa - Ubuntu - 9.0.0-2 - - - amd64 - 511 - deb - libgmp10 - Ubuntu - 2:5.1.3+dfsg-1ubuntu1 - - - amd64 - 204 - deb - libgnome-menu-3-0 - Ubuntu - 3.10.1-0ubuntu2 - - - amd64 - 277 - deb - libgnutls-openssl27 - Ubuntu - 2.12.23-12ubuntu2.8 - - - amd64 - 1076 - deb - libgnutls26 - Ubuntu - 2.12.23-12ubuntu2.8 - - - amd64 - 285 - deb - libgoa-1.0-0b - Ubuntu - 3.10.3-0ubuntu1 - - - all - 84 - deb - libgoa-1.0-common - Ubuntu - 3.10.3-0ubuntu1 - - - amd64 - 6931 - deb - libgoffice-0.10-10 - Ubuntu - 0.10.9-1 - - - all - 3787 - deb - libgoffice-0.10-10-common - Ubuntu - 0.10.9-1 - - - amd64 - 93 - deb - libgomp1 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 92 - deb - libgpg-error0 - Ubuntu - 1.12-0.2ubuntu1 - - - amd64 - 3372 - deb - libgphoto2-6 - Ubuntu - 2.5.3.1-1ubuntu2.2 - - - all - 68 - deb - libgphoto2-l10n - Ubuntu - 2.5.3.1-1ubuntu2.2 - - - amd64 - 240 - deb - libgphoto2-port10 - Ubuntu - 2.5.3.1-1ubuntu2.2 - - - amd64 - 83 - deb - libgpm2 - Ubuntu - 1.20.4-6.1 - - - amd64 - 172 - deb - libgrail6 - Ubuntu - 3.1.0daily13.06.05-0ubuntu1 - - - amd64 - 207 - deb - libgraphite2-3 - Ubuntu - 1.3.10-0ubuntu0.14.04.1 - - - amd64 - 69 - deb - libgrip0 - Ubuntu - 0.3.7+14.04.20140303-0ubuntu1 - - - amd64 - 11948 - deb - libgs9 - Ubuntu - 9.10~dfsg-0ubuntu10.12 - - - all - 4200 - deb - libgs9-common - Ubuntu - 9.10~dfsg-0ubuntu10.12 - - - amd64 - 321 - deb - libgsf-1-114 - Ubuntu - 1.14.27-2ubuntu2 - - - all - 60 - deb - libgsf-1-common - Ubuntu - 1.14.27-2ubuntu2 - - - amd64 - 95 - deb - libgsm1 - Ubuntu - 1.0.13-4 - - - amd64 - 408 - deb - libgssapi-krb5-2 - Ubuntu - 1.12+dfsg-2ubuntu5.3 - - - amd64 - 324 - deb - libgssapi3-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 95 - deb - libgssdp-1.0-3 - Ubuntu - 0.14.7-1ubuntu1 - - - amd64 - 707 - deb - libgstreamer-perl - Ubuntu - 0.19-1 - - - amd64 - 1440 - deb - libgstreamer-plugins-base0.10-0 - Ubuntu - 0.10.36-1.1ubuntu2.1 - - - amd64 - 1612 - deb - libgstreamer-plugins-base1.0-0 - Ubuntu - 1.2.4-1~ubuntu2.1 - - - amd64 - 179 - deb - libgstreamer-plugins-good1.0-0 - Ubuntu - 1.2.4-1~ubuntu1.4 - - - amd64 - 2604 - deb - libgstreamer0.10-0 - Ubuntu - 0.10.36-1.2ubuntu3 - - - amd64 - 2776 - deb - libgstreamer1.0-0 - Ubuntu - 1.2.4-0ubuntu1.1 - - - amd64 - 6562 - deb - libgtk-3-0 - Ubuntu - 3.10.8-0ubuntu1.6 - - - amd64 - 157 - deb - libgtk-3-bin - Ubuntu - 3.10.8-0ubuntu1.6 - - - all - 352 - deb - libgtk-3-common - Ubuntu - 3.10.8-0ubuntu1.6 - - - amd64 - 123 - deb - libgtk2-notify-perl - Ubuntu - 0.05-3build2 - - - amd64 - 3070 - deb - libgtk2-perl - Ubuntu - 2:1.249-2 - - - amd64 - 102 - deb - libgtk2-trayicon-perl - Ubuntu - 0.06-1build3 - - - amd64 - 6157 - deb - libgtk2.0-0 - Ubuntu - 2.24.23-0ubuntu1.4 - - - amd64 - 571 - deb - libgtk2.0-bin - Ubuntu - 2.24.23-0ubuntu1.4 - - - all - 732 - deb - libgtk2.0-common - Ubuntu - 2.24.23-0ubuntu1.4 - - - amd64 - 3065 - deb - libgtkmathview0c2a - Ubuntu - 0.8.0-9ubuntu1 - - - amd64 - 5487 - deb - libgtkmm-3.0-1 - Ubuntu - 3.10.1-0ubuntu2 - - - amd64 - 505 - deb - libgtksourceview2.0-0 - Ubuntu - 2.10.5-1ubuntu2.14.04.1 - - - all - 3733 - deb - libgtksourceview2.0-common - Ubuntu - 2.10.5-1ubuntu2.14.04.1 - - - amd64 - 96 - deb - libgtkspell0 - Ubuntu - 2.0.16-1ubuntu7 - - - amd64 - 4336 - deb - libgucharmap-2-90-7 - Ubuntu - 1:3.10.1-0ubuntu2 - - - amd64 - 105 - deb - libgudev-1.0-0 - Ubuntu - 1:204-5ubuntu20.28 - - - amd64 - 220 - deb - libgupnp-1.0-4 - Ubuntu - 0.20.10-1ubuntu1 - - - amd64 - 77 - deb - libgupnp-igd-1.0-4 - Ubuntu - 0.2.2-1 - - - amd64 - 78 - deb - libgusb2 - Ubuntu - 0.1.6-5 - - - amd64 - 7843 - deb - libgutenprint2 - Ubuntu - 5.2.10~pre2-0ubuntu2 - - - amd64 - 193 - deb - libgweather-3-6 - Ubuntu - 3.10.2-0ubuntu3 - - - all - 3676 - deb - libgweather-common - Ubuntu - 3.10.2-0ubuntu3 - - - amd64 - 153 - deb - libgxps2 - Ubuntu - 0.2.2-2ubuntu2 - - - amd64 - 47 - deb - libharfbuzz-icu0 - Ubuntu - 0.9.27-1ubuntu1.1 - - - amd64 - 386 - deb - libharfbuzz0b - Ubuntu - 0.9.27-1ubuntu1.1 - - - amd64 - 281 - deb - libhcrypto4-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 126 - deb - libheimbase1-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 103 - deb - libheimntlm0-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 374 - deb - libhpmud0 - Ubuntu - 3.14.3-0ubuntu3.4 - - - all - 88 - deb - libhtml-form-perl - Ubuntu - 6.03-1 - - - all - 150 - deb - libhtml-format-perl - Ubuntu - 2.11-1 - - - amd64 - 247 - deb - libhtml-parser-perl - Ubuntu - 3.71-1build1 - - - all - 76 - deb - libhtml-tagset-perl - Ubuntu - 3.20-2 - - - all - 506 - deb - libhtml-tree-perl - Ubuntu - 5.03-1 - - - all - 104 - deb - libhttp-cookies-perl - Ubuntu - 6.00-2 - - - all - 70 - deb - libhttp-daemon-perl - Ubuntu - 6.01-1 - - - all - 56 - deb - libhttp-date-perl - Ubuntu - 6.02-1 - - - all - 204 - deb - libhttp-message-perl - Ubuntu - 6.06-1 - - - all - 72 - deb - libhttp-negotiate-perl - Ubuntu - 6.00-2 - - - amd64 - 431 - deb - libhunspell-1.3-0 - Ubuntu - 1.3.2-6ubuntu2.1 - - - amd64 - 369 - deb - libhx509-5-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 629 - deb - libical1 - Ubuntu - 1.0-0ubuntu1 - - - amd64 - 147 - deb - libice6 - Ubuntu - 2:1.0.8-2 - - - amd64 - 27284 - deb - libicu52 - Ubuntu - 52.1-3ubuntu0.8 - - - amd64 - 367 - deb - libidn11 - Ubuntu - 1.28-1ubuntu2.2 - - - amd64 - 187 - deb - libido3-0.1-0 - Ubuntu - 13.10.0+14.04.20170403-0ubuntu1 - - - amd64 - 96 - deb - libiec61883-0 - Ubuntu - 1.2.0-0.1ubuntu3 - - - amd64 - 92 - deb - libieee1284-3 - Ubuntu - 0.2.11-12 - - - amd64 - 65 - deb - libijs-0.35 - Ubuntu - 0.35-8build1 - - - amd64 - 477 - deb - libilmbase6 - Ubuntu - 1.0.1-6ubuntu1 - - - amd64 - 176 - deb - libimobiledevice4 - Ubuntu - 1.1.5+git20140313.bafe6a9e-0ubuntu1.1 - - - amd64 - 114 - deb - libindicator3-7 - Ubuntu - 12.10.2+14.04.20141007.1-0ubuntu1 - - - all - 4487 - deb - libintl-perl - Ubuntu - 1.23-1build1 - - - all - 70 - deb - libio-html-perl - Ubuntu - 1.00-1 - - - amd64 - 137 - deb - libio-pty-perl - Ubuntu - 1:1.08-1build4 - - - all - 71 - deb - libio-socket-inet6-perl - Ubuntu - 2.71-1 - - - all - 227 - deb - libio-socket-ssl-perl - Ubuntu - 1.965-1ubuntu1 - - - all - 58 - deb - libio-string-perl - Ubuntu - 1.08-3 - - - all - 273 - deb - libio-stringy-perl - Ubuntu - 2.110-5 - - - all - 273 - deb - libipc-run-perl - Ubuntu - 0.92-1 - - - all - 92 - deb - libipc-system-simple-perl - Ubuntu - 1.25-2 - - - amd64 - 446 - deb - libisc95 - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 89 - deb - libisccc90 - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 192 - deb - libisccfg90 - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 1307 - deb - libisl10 - Ubuntu - 0.12.2-1 - - - amd64 - 397 - deb - libisofs6 - Ubuntu - 1.3.4-0ubuntu1 - - - amd64 - 160 - deb - libitm1 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 90 - deb - libiw30 - Ubuntu - 30~pre9-8ubuntu1 - - - amd64 - 606 - deb - libjack-jackd2-0 - Ubuntu - 1.9.9.5+20130622git7de15e7a-1ubuntu1 - - - amd64 - 357 - deb - libjasper1 - Ubuntu - 1.900.1-14ubuntu3.4 - - - amd64 - 6824 - deb - libjavascriptcoregtk-1.0-0 - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - amd64 - 6824 - deb - libjavascriptcoregtk-3.0-0 - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - amd64 - 93 - deb - libjbig0 - Ubuntu - 2.0-2ubuntu4.1 - - - amd64 - 137 - deb - libjbig2dec0 - Ubuntu - 0.11+20120125-1ubuntu1.1 - - - amd64 - 26 - deb - libjpeg-progs - Ubuntu - 8c-2ubuntu8 - - - amd64 - 182 - deb - libjpeg-turbo-progs - Ubuntu - 1.3.0-0ubuntu2 - - - amd64 - 331 - deb - libjpeg-turbo8 - Ubuntu - 1.3.0-0ubuntu2 - - - amd64 - 26 - deb - libjpeg8 - Ubuntu - 8c-2ubuntu8 - - - amd64 - 86 - deb - libjson-c2 - Ubuntu - 0.11-3ubuntu1.2 - - - amd64 - 276 - deb - libjson-glib-1.0-0 - Ubuntu - 0.16.2-1ubuntu1 - - - all - 128 - deb - libjson-glib-1.0-common - Ubuntu - 0.16.2-1ubuntu1 - - - all - 251 - deb - libjson-perl - Ubuntu - 2.61-1 - - - amd64 - 229 - deb - libjson-xs-perl - Ubuntu - 2.340-1build1 - - - amd64 - 29 - deb - libjson0 - Ubuntu - 0.11-3ubuntu1.2 - - - amd64 - 78 - deb - libjte1 - Ubuntu - 1.19-2 - - - amd64 - 304 - deb - libk5crypto3 - Ubuntu - 1.12+dfsg-2ubuntu5.3 - - - amd64 - 50 - deb - libkeybinder0 - Ubuntu - 0.3.0-2 - - - amd64 - 51 - deb - libkeyutils1 - Ubuntu - 1.5.6-1 - - - amd64 - 129 - deb - libklibc - Ubuntu - 2.0.3-0ubuntu1.14.04.3 - - - amd64 - 130 - deb - libkmod2 - Ubuntu - 15-0ubuntu6 - - - amd64 - 252 - deb - libkpathsea6 - Ubuntu - 2013.20130729.30972-2build3 - - - amd64 - 649 - deb - libkrb5-26-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 987 - deb - libkrb5-3 - Ubuntu - 1.12+dfsg-2ubuntu5.3 - - - amd64 - 163 - deb - libkrb5support0 - Ubuntu - 1.12+dfsg-2ubuntu5.3 - - - amd64 - 5798 - deb - liblapack3 - Ubuntu - 3.5.0-2ubuntu1 - - - amd64 - 392 - deb - liblcms2-2 - Ubuntu - 2.5-0ubuntu4.1 - - - amd64 - 508 - deb - libldap-2.4-2 - Ubuntu - 2.4.31-1+nmu2ubuntu8.4 - - - amd64 - 402 - deb - libldb1 - Ubuntu - 1:1.1.24-0ubuntu0.14.04.1 - - - amd64 - 149 - deb - liblightdm-gobject-1-0 - Ubuntu - 1.10.6-0ubuntu1 - - - amd64 - 287 - deb - liblink-grammar4 - Ubuntu - 4.7.4-2ubuntu1 - - - amd64 - 172 - deb - liblist-moreutils-perl - Ubuntu - 0.33-1build3 - - - amd64 - 26227 - deb - libllvm3.4 - Ubuntu - 1:3.4-1ubuntu3 - - - amd64 - 92 - deb - liblocale-gettext-perl - Ubuntu - 1.05-7build3 - - - amd64 - 71 - deb - liblockfile-bin - Ubuntu - 1.09-6ubuntu1 - - - amd64 - 57 - deb - liblockfile1 - Ubuntu - 1.09-6ubuntu1 - - - all - 56 - deb - liblog-message-simple-perl - Ubuntu - 0.10-1 - - - amd64 - 147 - deb - libloudmouth1-0 - Ubuntu - 1.4.3-10 - - - amd64 - 397 - deb - libltdl7 - Ubuntu - 2.4.2-1.7ubuntu1 - - - all - 100 - deb - liblwp-mediatypes-perl - Ubuntu - 6.02-1 - - - all - 53 - deb - liblwp-protocol-https-perl - Ubuntu - 6.04-2ubuntu0.1 - - - amd64 - 129 - deb - liblwres90 - Ubuntu - 1:9.9.5.dfsg-3ubuntu0.17 - - - amd64 - 305 - deb - liblzma5 - Ubuntu - 5.1.1alpha+20120614-2ubuntu2 - - - amd64 - 176 - deb - liblzo2-2 - Ubuntu - 2.06-1.2ubuntu1.1 - - - amd64 - 2762 - deb - libmagic1 - Ubuntu - 1:5.14-2ubuntu3.3 - - - all - 230 - deb - libmailtools-perl - Ubuntu - 2.12-1 - - - amd64 - 240 - deb - libmeanwhile1 - Ubuntu - 1.0.2-4.1ubuntu1 - - - amd64 - 117 - deb - libmessaging-menu0 - Ubuntu - 13.10.1+14.04.20140410-0ubuntu1 - - - amd64 - 212 - deb - libmhash2 - Ubuntu - 0.9.9.9-4 - - - amd64 - 81 - deb - libminiupnpc8 - Ubuntu - 1.6-3ubuntu2.14.04.4 - - - amd64 - 583 - deb - libmng2 - Ubuntu - 2.0.2-0ubuntu3 - - - all - 87 - deb - libmodule-pluggable-perl - Ubuntu - 5.1-1 - - - amd64 - 247 - deb - libmount1 - Ubuntu - 2.20.1-5.1ubuntu20.9 - - - amd64 - 422 - deb - libmp3lame0 - Ubuntu - 3.99.5+repack1-3ubuntu1 - - - amd64 - 130 - deb - libmpc3 - Ubuntu - 1.0.1-1ubuntu1 - - - amd64 - 256 - deb - libmpdec2 - Ubuntu - 2.4.0-6 - - - amd64 - 761 - deb - libmpfr4 - Ubuntu - 3.1.2-1 - - - amd64 - 78 - deb - libmtdev1 - Ubuntu - 1.1.4-1ubuntu1 - - - all - 1594 - deb - libmtp-common - Ubuntu - 1.1.6-20-g1b9f164-1ubuntu2.1 - - - amd64 - 58 - deb - libmtp-runtime - Ubuntu - 1.1.6-20-g1b9f164-1ubuntu2.1 - - - amd64 - 487 - deb - libmtp9 - Ubuntu - 1.1.6-20-g1b9f164-1ubuntu2.1 - - - amd64 - 42 - deb - libnatpmp1 - Ubuntu - 20110808-3ubuntu2 - - - amd64 - 138 - deb - libnautilus-extension1a - Ubuntu - 1:3.10.1-0ubuntu9.11 - - - amd64 - 292 - deb - libncurses5 - Ubuntu - 5.9+20140118-1ubuntu1 - - - amd64 - 374 - deb - libncursesw5 - Ubuntu - 5.9+20140118-1ubuntu1 - - - amd64 - 620 - deb - libnet-dbus-perl - Ubuntu - 1.0.0-2build1 - - - amd64 - 675 - deb - libnet-dns-perl - Ubuntu - 0.68-1.2build1 - - - all - 64 - deb - libnet-domain-tld-perl - Ubuntu - 1.70-1 - - - all - 86 - deb - libnet-http-perl - Ubuntu - 6.06-1 - - - all - 133 - deb - libnet-ip-perl - Ubuntu - 1.26-1 - - - all - 60 - deb - libnet-smtp-ssl-perl - Ubuntu - 1.01-3 - - - amd64 - 1011 - deb - libnet-ssleay-perl - Ubuntu - 1.58-1 - - - amd64 - 319 - deb - libnettle4 - Ubuntu - 2.7.1-1ubuntu0.2 - - - amd64 - 188 - deb - libnewt0.52 - Ubuntu - 0.52.15-2ubuntu5 - - - amd64 - 60 - deb - libnfnetlink0 - Ubuntu - 1.0.1-2 - - - amd64 - 258 - deb - libnice10 - Ubuntu - 0.1.4-1 - - - amd64 - 70 - deb - libnih-dbus1 - Ubuntu - 1.0.3-4ubuntu25 - - - amd64 - 148 - deb - libnih1 - Ubuntu - 1.0.3-4ubuntu25 - - - amd64 - 172 - deb - libnl-3-200 - Ubuntu - 3.2.21-1ubuntu4.1 - - - amd64 - 69 - deb - libnl-genl-3-200 - Ubuntu - 3.2.21-1ubuntu4.1 - - - amd64 - 352 - deb - libnm-glib4 - Ubuntu - 0.9.8.8-0ubuntu7.3 - - - amd64 - 512 - deb - libnm-util2 - Ubuntu - 0.9.8.8-0ubuntu7.3 - - - amd64 - 69 - deb - libnotify-bin - Ubuntu - 0.7.6-1ubuntu3 - - - amd64 - 82 - deb - libnotify4 - Ubuntu - 0.7.6-1ubuntu3 - - - amd64 - 347 - deb - libnspr4 - Ubuntu - 2:4.13.1-0ubuntu0.14.04.1 - - - amd64 - 142 - deb - libnss-mdns - Ubuntu - 0.10-6 - - - amd64 - 3680 - deb - libnss3 - Ubuntu - 2:3.28.4-0ubuntu0.14.04.3 - - - all - 116 - deb - libnss3-nssdb - Ubuntu - 2:3.28.4-0ubuntu0.14.04.3 - - - amd64 - 92 - deb - libnuma1 - Ubuntu - 2.0.9~rc5-1ubuntu3.14.04.2 - - - amd64 - 68 - deb - liboauth0 - Ubuntu - 1.0.1-1 - - - amd64 - 608 - deb - libodbc1 - Ubuntu - 2.2.14p2-5ubuntu5 - - - amd64 - 76 - deb - libogg0 - Ubuntu - 1.3.1-1ubuntu1 - - - amd64 - 221 - deb - liboobs-1-5 - Ubuntu - 3.0.0-1ubuntu0.14.04.1 - - - amd64 - 746 - deb - libopenexr6 - Ubuntu - 1.6.1-7ubuntu1 - - - amd64 - 194 - deb - libopenjpeg2 - Ubuntu - 1.3+dfsg-4.7ubuntu1 - - - amd64 - 73 - deb - libopenobex1 - Ubuntu - 1.5-2.1 - - - amd64 - 129 - deb - libopenvg1-mesa - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 325 - deb - libopus0 - Ubuntu - 1.1-0ubuntu1 - - - amd64 - 594 - deb - liborc-0.4-0 - Ubuntu - 1:0.4.18-1ubuntu1 - - - amd64 - 221 - deb - libotr5 - Ubuntu - 4.0.0-2.2ubuntu1.1 - - - amd64 - 202 - deb - libots0 - Ubuntu - 0.5.0-2.1ubuntu1 - - - amd64 - 378 - deb - libp11-kit-gnome-keyring - Ubuntu - 3.10.1-1ubuntu4.3 - - - amd64 - 317 - deb - libp11-kit0 - Ubuntu - 0.20.2-2ubuntu2 - - - amd64 - 449 - deb - libpackagekit-glib2-16 - Ubuntu - 0.8.12-1ubuntu5 - - - amd64 - 68 - deb - libpam-cap - Ubuntu - 1:2.24-0ubuntu2 - - - amd64 - 338 - deb - libpam-gnome-keyring - Ubuntu - 3.10.1-1ubuntu4.3 - - - amd64 - 840 - deb - libpam-modules - Ubuntu - 1.1.8-1ubuntu2.2 - - - amd64 - 225 - deb - libpam-modules-bin - Ubuntu - 1.1.8-1ubuntu2.2 - - - all - 300 - deb - libpam-runtime - Ubuntu - 1.1.8-1ubuntu2.2 - - - amd64 - 136 - deb - libpam-systemd - Ubuntu - 204-5ubuntu20.28 - - - amd64 - 226 - deb - libpam0g - Ubuntu - 1.1.8-1ubuntu2.2 - - - i386 - 219 - deb - libpam0g - Ubuntu - 1.1.8-1ubuntu2.2 - - - amd64 - 531 - deb - libpango-1.0-0 - Ubuntu - 1.36.3-1ubuntu1.1 - - - amd64 - 511 - deb - libpango-perl - Ubuntu - 1.224-2 - - - amd64 - 198 - deb - libpango1.0-0 - Ubuntu - 1.36.3-1ubuntu1.1 - - - amd64 - 259 - deb - libpangocairo-1.0-0 - Ubuntu - 1.36.3-1ubuntu1.1 - - - amd64 - 294 - deb - libpangoft2-1.0-0 - Ubuntu - 1.36.3-1ubuntu1.1 - - - amd64 - 216 - deb - libpangomm-1.4-1 - Ubuntu - 2.34.0-1ubuntu1 - - - amd64 - 161 - deb - libpangox-1.0-0 - Ubuntu - 0.0.2-4ubuntu1 - - - amd64 - 242 - deb - libpangoxft-1.0-0 - Ubuntu - 1.36.3-1ubuntu1.1 - - - amd64 - 70 - deb - libpaper-utils - Ubuntu - 1.1.24+nmu2ubuntu3 - - - amd64 - 89 - deb - libpaper1 - Ubuntu - 1.1.24+nmu2ubuntu3 - - - all - 88 - deb - libparse-debcontrol-perl - Ubuntu - 2.005-4 - - - all - 232 - deb - libparse-debianchangelog-perl - Ubuntu - 1.2.0-1ubuntu1 - - - amd64 - 571 - deb - libparted0debian1 - Ubuntu - 2.3-19ubuntu1.14.04.1 - - - amd64 - 313 - deb - libpcap0.8 - Ubuntu - 1.5.3-2 - - - amd64 - 112 - deb - libpci3 - Ubuntu - 1:3.2.1-1ubuntu5.1 - - - amd64 - 77 - deb - libpciaccess0 - Ubuntu - 0.13.2-1 - - - amd64 - 464 - deb - libpcre3 - Ubuntu - 1:8.31-2ubuntu2.3 - - - i386 - 459 - deb - libpcre3 - Ubuntu - 1:8.31-2ubuntu2.3 - - - amd64 - 91 - deb - libpcsclite1 - Ubuntu - 1.8.10-1ubuntu1.1 - - - amd64 - 29 - deb - libperl5.18 - Ubuntu - 5.18.2-2ubuntu1.4 - - - amd64 - 84 - deb - libperlio-gzip-perl - Ubuntu - 0.18-1build3 - - - amd64 - 88 - deb - libpipeline1 - Ubuntu - 1.3.0-1 - - - amd64 - 724 - deb - libpixman-1-0 - Ubuntu - 0.30.2-2ubuntu1.1 - - - amd64 - 88 - deb - libplist1 - Ubuntu - 1.10-1ubuntu0.1 - - - amd64 - 302 - deb - libplymouth2 - Ubuntu - 0.8.8-0ubuntu17.1 - - - amd64 - 306 - deb - libpng12-0 - Ubuntu - 1.2.50-1ubuntu2.14.04.2 - - - all - 127 - deb - libpod-latex-perl - Ubuntu - 0.61-1 - - - amd64 - 82 - deb - libpolkit-agent-1-0 - Ubuntu - 0.105-4ubuntu3.14.04.1 - - - amd64 - 145 - deb - libpolkit-backend-1-0 - Ubuntu - 0.105-4ubuntu3.14.04.1 - - - amd64 - 156 - deb - libpolkit-gobject-1-0 - Ubuntu - 0.105-4ubuntu3.14.04.1 - - - amd64 - 352 - deb - libpoppler-glib8 - Ubuntu - 0.24.5-2ubuntu4.9 - - - amd64 - 2509 - deb - libpoppler44 - Ubuntu - 0.24.5-2ubuntu4.9 - - - amd64 - 128 - deb - libpopt0 - Ubuntu - 1.16-8ubuntu1 - - - amd64 - 224 - deb - libportaudio2 - Ubuntu - 19+svn20140130-1 - - - amd64 - 138 - deb - libprocps3 - Ubuntu - 1:3.3.9-1ubuntu2.2 - - - amd64 - 170 - deb - libproxy1 - Ubuntu - 0.4.11-0ubuntu4 - - - amd64 - 121 - deb - libpulse-mainloop-glib0 - Ubuntu - 1:4.0-0ubuntu11.1 - - - amd64 - 851 - deb - libpulse0 - Ubuntu - 1:4.0-0ubuntu11.1 - - - amd64 - 157 - deb - libpulsedsp - Ubuntu - 1:4.0-0ubuntu11.1 - - - all - 179 - deb - libpurple-bin - Ubuntu - 1:2.10.9-0ubuntu3.4 - - - amd64 - 4939 - deb - libpurple0 - Ubuntu - 1:2.10.9-0ubuntu3.4 - - - amd64 - 58 - deb - libpython-stdlib - Ubuntu - 2.7.5-5ubuntu3 - - - amd64 - 3481 - deb - libpython2.7 - Ubuntu - 2.7.6-8ubuntu0.4 - - - amd64 - 2497 - deb - libpython2.7-minimal - Ubuntu - 2.7.6-8ubuntu0.4 - - - amd64 - 8494 - deb - libpython2.7-stdlib - Ubuntu - 2.7.6-8ubuntu0.4 - - - amd64 - 52 - deb - libpython3-stdlib - Ubuntu - 3.4.0-0ubuntu2 - - - amd64 - 4289 - deb - libpython3.4 - Ubuntu - 3.4.3-1ubuntu1~14.04.6 - - - amd64 - 3315 - deb - libpython3.4-minimal - Ubuntu - 3.4.3-1ubuntu1~14.04.6 - - - amd64 - 9211 - deb - libpython3.4-stdlib - Ubuntu - 3.4.3-1ubuntu1~14.04.6 - - - amd64 - 859 - deb - libqpdf13 - Ubuntu - 5.1.1-1 - - - amd64 - 270 - deb - libquadmath0 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 435 - deb - libraptor2-0 - Ubuntu - 2.0.13-1 - - - amd64 - 496 - deb - librasqal3 - Ubuntu - 0.9.32-1 - - - amd64 - 106 - deb - libraw1394-11 - Ubuntu - 2.1.0-1ubuntu1 - - - amd64 - 298 - deb - librdf0 - Ubuntu - 1.0.17-1 - - - amd64 - 361 - deb - libreadline5 - Ubuntu - 5.2+dfsg-2 - - - amd64 - 404 - deb - libreadline6 - Ubuntu - 6.3-4ubuntu2 - - - amd64 - 127 - deb - librest-0.7-0 - Ubuntu - 0.7.90-0ubuntu1 - - - amd64 - 158 - deb - libroken18-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 408 - deb - librsvg2-2 - Ubuntu - 2.40.2-1 - - - amd64 - 217 - deb - librsvg2-common - Ubuntu - 2.40.2-1 - - - amd64 - 143 - deb - librtmp0 - Ubuntu - 2.4+20121230.gitdf6c518-1ubuntu0.1 - - - amd64 - 1500 - deb - libsamplerate0 - Ubuntu - 0.1.8-7 - - - amd64 - 8970 - deb - libsane - Ubuntu - 1.0.23-3ubuntu3.1 - - - amd64 - 3100 - deb - libsane-common - Ubuntu - 1.0.23-3ubuntu3.1 - - - amd64 - 1274 - deb - libsane-hpaio - Ubuntu - 3.14.3-0ubuntu3.4 - - - amd64 - 166 - deb - libsasl2-2 - Ubuntu - 2.1.25.dfsg1-17build1 - - - amd64 - 229 - deb - libsasl2-modules - Ubuntu - 2.1.25.dfsg1-17build1 - - - amd64 - 82 - deb - libsasl2-modules-db - Ubuntu - 2.1.25.dfsg1-17build1 - - - amd64 - 881 - deb - libschroedinger-1.0-0 - Ubuntu - 1.0.11-2ubuntu1 - - - amd64 - 484 - deb - libsdl1.2debian - Ubuntu - 1.2.15-8ubuntu1.1 - - - amd64 - 359 - deb - libsecret-1-0 - Ubuntu - 0.16-0ubuntu1 - - - all - 44 - deb - libsecret-common - Ubuntu - 0.16-0ubuntu1 - - - amd64 - 193 - deb - libselinux1 - Ubuntu - 2.2.2-1ubuntu0.1 - - - all - 56 - deb - libsemanage-common - Ubuntu - 2.2-1 - - - amd64 - 263 - deb - libsemanage1 - Ubuntu - 2.2-1 - - - amd64 - 142 - deb - libsensors4 - Ubuntu - 1:3.3.4-2ubuntu1 - - - amd64 - 322 - deb - libsepol1 - Ubuntu - 2.2-1ubuntu0.1 - - - amd64 - 112 - deb - libsexy2 - Ubuntu - 0.1.11-2ubuntu1 - - - amd64 - 118 - deb - libshout3 - Ubuntu - 2.3.1-3 - - - amd64 - 84 - deb - libsigc++-2.0-0c2a - Ubuntu - 2.2.10-0.2ubuntu2 - - - amd64 - 160 - deb - libsignon-glib1 - Ubuntu - 1.10daily13.06.25-0ubuntu2 - - - amd64 - 61 - deb - libsigsegv2 - Ubuntu - 2.10-2 - - - amd64 - 1466 - deb - libslang2 - Ubuntu - 2.2.4-15ubuntu1 - - - amd64 - 119 - deb - libslp1 - Ubuntu - 1.2.1-9ubuntu0.2 - - - amd64 - 81 - deb - libsm6 - Ubuntu - 2:1.2.1-2 - - - amd64 - 304 - deb - libsmbclient - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - amd64 - 514 - deb - libsndfile1 - Ubuntu - 1.0.25-7ubuntu2.2 - - - all - 693 - deb - libsnmp-base - Ubuntu - 5.7.2~dfsg-8.1ubuntu3.2 - - - amd64 - 3160 - deb - libsnmp30 - Ubuntu - 5.7.2~dfsg-8.1ubuntu3.2 - - - amd64 - 102 - deb - libsocket6-perl - Ubuntu - 0.25-1 - - - amd64 - 57 - deb - libsonic0 - Ubuntu - 0.1.18-0ubuntu1 - - - amd64 - 93 - deb - libsoup-gnome2.4-1 - Ubuntu - 2.44.2-1ubuntu2.2 - - - amd64 - 866 - deb - libsoup2.4-1 - Ubuntu - 2.44.2-1ubuntu2.2 - - - amd64 - 99 - deb - libspectre1 - Ubuntu - 0.2.7-2ubuntu1.2 - - - amd64 - 90 - deb - libspeechd2 - Ubuntu - 0.8-5ubuntu1 - - - amd64 - 138 - deb - libspeex1 - Ubuntu - 1.2~rc1.1-1ubuntu1 - - - amd64 - 115 - deb - libspeexdsp1 - Ubuntu - 1.2~rc1.1-1ubuntu1 - - - amd64 - 1191 - deb - libspice-server1 - Ubuntu - 0.12.4-0nocelt2ubuntu1.5 - - - amd64 - 838 - deb - libsqlite3-0 - Ubuntu - 3.8.2-1ubuntu2.1 - - - amd64 - 115 - deb - libss2 - Ubuntu - 1.42.9-3ubuntu1.3 - - - amd64 - 2946 - deb - libssl1.0.0 - Ubuntu - 1.0.1f-1ubuntu2.25 - - - amd64 - 87 - deb - libstartup-notification0 - Ubuntu - 0.12-3ubuntu1 - - - amd64 - 11146 - deb - libstdc++-4.8-dev - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 1287 - deb - libstdc++6 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 73 - deb - libsub-identify-perl - Ubuntu - 0.04-1build3 - - - amd64 - 72 - deb - libsub-name-perl - Ubuntu - 0.05-1build4 - - - amd64 - 79 - deb - libsystemd-daemon0 - Ubuntu - 204-5ubuntu20.28 - - - amd64 - 121 - deb - libsystemd-login0 - Ubuntu - 204-5ubuntu20.28 - - - amd64 - 369 - deb - libt1-5 - Ubuntu - 5.1.2-3.6ubuntu1 - - - amd64 - 1065 - deb - libtag1-vanilla - Ubuntu - 1.9.1-2 - - - amd64 - 60 - deb - libtag1c2a - Ubuntu - 1.9.1-2 - - - amd64 - 95 - deb - libtagc0 - Ubuntu - 1.9.1-2 - - - amd64 - 106 - deb - libtalloc2 - Ubuntu - 2.1.5-0ubuntu0.14.04.1 - - - amd64 - 130 - deb - libtasn1-6 - Ubuntu - 3.4-3ubuntu0.6 - - - amd64 - 3699 - deb - libtcl8.6 - Ubuntu - 8.6.1-4ubuntu1 - - - amd64 - 128 - deb - libtdb1 - Ubuntu - 1.3.8-0ubuntu0.14.04.1 - - - amd64 - 2490 - deb - libtelepathy-glib0 - Ubuntu - 0.22.1-1ubuntu2 - - - all - 78 - deb - libterm-ui-perl - Ubuntu - 0.42-1 - - - amd64 - 103 - deb - libtevent0 - Ubuntu - 0.9.28-0ubuntu0.14.04.1 - - - amd64 - 75 - deb - libtext-charwidth-perl - Ubuntu - 0.04-7build3 - - - amd64 - 85 - deb - libtext-iconv-perl - Ubuntu - 1.7-5build2 - - - all - 48 - deb - libtext-levenshtein-perl - Ubuntu - 0.06~01-2 - - - amd64 - 80 - deb - libtext-soundex-perl - Ubuntu - 3.4-1build1 - - - all - 68 - deb - libtext-wrapi18n-perl - Ubuntu - 0.06-7 - - - all - 607 - deb - libthai-data - Ubuntu - 0.1.20-3 - - - amd64 - 102 - deb - libthai0 - Ubuntu - 0.1.20-3 - - - amd64 - 711 - deb - libtheora0 - Ubuntu - 1.1.1+dfsg.1-3.2 - - - amd64 - 273 - deb - libthunarx-2-0 - Ubuntu - 1.6.3-1ubuntu5 - - - amd64 - 405 - deb - libtidy-0.99-0 - Ubuntu - 20091223cvs-1.2ubuntu1.1 - - - all - 61 - deb - libtie-ixhash-perl - Ubuntu - 1.23-1 - - - amd64 - 584 - deb - libtiff5 - Ubuntu - 4.0.3-7ubuntu0.9 - - - all - 139 - deb - libtimedate-perl - Ubuntu - 2.3000-1 - - - amd64 - 471 - deb - libtinfo5 - Ubuntu - 5.9+20140118-1ubuntu1 - - - amd64 - 2240 - deb - libtk8.6 - Ubuntu - 8.6.1-3ubuntu2 - - - amd64 - 323 - deb - libtsan0 - Ubuntu - 4.8.4-2ubuntu1~14.04.4 - - - amd64 - 93 - deb - libtumbler-1-0 - Ubuntu - 0.1.30-1ubuntu1 - - - amd64 - 260 - deb - libtxc-dxtn-s2tc0 - Ubuntu - 0~git20131104-1.1 - - - amd64 - 135 - deb - libudev1 - Ubuntu - 204-5ubuntu20.28 - - - amd64 - 489 - deb - libudisks2-0 - Ubuntu - 2.1.3-1ubuntu0.1 - - - amd64 - 691 - deb - libumfpack5.6.2 - Ubuntu - 1:4.2.1-3ubuntu1 - - - amd64 - 107 - deb - libunique-1.0-0 - Ubuntu - 1.1.6-4ubuntu2 - - - amd64 - 1151 - deb - libunistring0 - Ubuntu - 0.9.3-5ubuntu3 - - - amd64 - 347 - deb - libunity-protocol-private0 - Ubuntu - 7.1.4+14.04.20140210-0ubuntu1 - - - all - 52 - deb - libunity-scopes-json-def-desktop - Ubuntu - 7.1.4+14.04.20140210-0ubuntu1 - - - amd64 - 825 - deb - libunity9 - Ubuntu - 7.1.4+14.04.20140210-0ubuntu1 - - - amd64 - 111 - deb - libupower-glib1 - Ubuntu - 0.9.23-2ubuntu1 - - - all - 218 - deb - liburi-perl - Ubuntu - 1.60-1 - - - amd64 - 73 - deb - libusb-0.1-4 - Ubuntu - 2:0.1.12-23.3ubuntu1 - - - amd64 - 137 - deb - libusb-1.0-0 - Ubuntu - 2:1.0.17-1ubuntu2 - - - amd64 - 61 - deb - libusbmuxd2 - Ubuntu - 1.0.8-2ubuntu1 - - - amd64 - 266 - deb - libustr-1.0-1 - Ubuntu - 1.0.4-3ubuntu2 - - - amd64 - 64 - deb - libutempter0 - Ubuntu - 1.1.5-4build1 - - - amd64 - 73 - deb - libuuid-perl - Ubuntu - 0.05-1 - - - amd64 - 109 - deb - libuuid1 - Ubuntu - 2.20.1-5.1ubuntu20.9 - - - amd64 - 195 - deb - libv4l-0 - Ubuntu - 1.0.1-1 - - - amd64 - 266 - deb - libv4lconvert0 - Ubuntu - 1.0.1-1 - - - amd64 - 151 - deb - libva1 - Ubuntu - 1.3.0-2 - - - amd64 - 308 - deb - libvisual-0.4-0 - Ubuntu - 0.4.0-5 - - - amd64 - 536 - deb - libvisual-0.4-plugins - Ubuntu - 0.4.0.dfsg.1-7build1 - - - amd64 - 231 - deb - libvorbis0a - Ubuntu - 1.3.2-1.3ubuntu1.2 - - - amd64 - 2914 - deb - libvorbisenc2 - Ubuntu - 1.3.2-1.3ubuntu1.2 - - - amd64 - 79 - deb - libvorbisfile3 - Ubuntu - 1.3.2-1.3ubuntu1.2 - - - amd64 - 1712 - deb - libvpx1 - Ubuntu - 1.3.0-2 - - - amd64 - 1098 - deb - libvte-2.90-9 - Ubuntu - 1:0.34.9-1ubuntu2 - - - all - 464 - deb - libvte-2.90-common - Ubuntu - 1:0.34.9-1ubuntu2 - - - all - 432 - deb - libvte-common - Ubuntu - 1:0.28.2-5ubuntu1 - - - amd64 - 1065 - deb - libvte9 - Ubuntu - 1:0.28.2-5ubuntu1 - - - amd64 - 207 - deb - libwavpack1 - Ubuntu - 4.70.0-1ubuntu0.1 - - - amd64 - 90 - deb - libwayland-client0 - Ubuntu - 1.4.0-1ubuntu1.1 - - - amd64 - 67 - deb - libwayland-cursor0 - Ubuntu - 1.4.0-1ubuntu1.1 - - - amd64 - 91 - deb - libwayland-egl1-mesa - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 108 - deb - libwayland-server0 - Ubuntu - 1.4.0-1ubuntu1.1 - - - amd64 - 204 - deb - libwbclient0 - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - amd64 - 31147 - deb - libwebkitgtk-1.0-0 - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - all - 388 - deb - libwebkitgtk-1.0-common - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - amd64 - 31143 - deb - libwebkitgtk-3.0-0 - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - all - 388 - deb - libwebkitgtk-3.0-common - Ubuntu - 2.4.10-0ubuntu0.14.04.1 - - - amd64 - 366 - deb - libwebp5 - Ubuntu - 0.4.0-4 - - - amd64 - 62 - deb - libwebpmux1 - Ubuntu - 0.4.0-4 - - - amd64 - 48 - deb - libwhoopsie0 - Ubuntu - 0.2.24.6ubuntu4 - - - amd64 - 230 - deb - libwind0-heimdal - Ubuntu - 1.6~git20131207+dfsg-1ubuntu1.2 - - - amd64 - 508 - deb - libwmf0.2-7 - Ubuntu - 0.2.8.4-10.3ubuntu1.14.04.1 - - - amd64 - 347 - deb - libwnck-3-0 - Ubuntu - 3.4.7-0ubuntu3.1 - - - all - 104 - deb - libwnck-3-common - Ubuntu - 3.4.7-0ubuntu3.1 - - - all - 80 - deb - libwnck-common - Ubuntu - 1:2.30.7-0ubuntu4 - - - amd64 - 318 - deb - libwnck22 - Ubuntu - 1:2.30.7-0ubuntu4 - - - amd64 - 991 - deb - libwpd-0.9-9 - Ubuntu - 0.9.9-1 - - - amd64 - 227 - deb - libwpg-0.2-2 - Ubuntu - 0.2.2-1ubuntu1 - - - amd64 - 785 - deb - libwps-0.2-2 - Ubuntu - 0.2.9-2ubuntu1 - - - amd64 - 121 - deb - libwrap0 - Ubuntu - 7.6.q-25 - - - amd64 - 352 - deb - libwv-1.2-4 - Ubuntu - 1.2.9-3 - - - all - 375 - deb - libwww-perl - Ubuntu - 6.05-2 - - - all - 76 - deb - libwww-robotrules-perl - Ubuntu - 6.01-1 - - - amd64 - 1509 - deb - libx11-6 - Ubuntu - 2:1.6.2-1ubuntu2 - - - all - 1581 - deb - libx11-data - Ubuntu - 2:1.6.2-1ubuntu2 - - - amd64 - 235 - deb - libx11-xcb1 - Ubuntu - 2:1.6.2-1ubuntu2 - - - amd64 - 2171 - deb - libx264-142 - Ubuntu - 2:0.142.2389+git956c8d8-2 - - - amd64 - 257 - deb - libx86-1 - Ubuntu - 1.1+ds1-10 - - - amd64 - 2402 - deb - libxapian22 - Ubuntu - 1.2.16-2ubuntu1 - - - amd64 - 464 - deb - libxatracker2 - Ubuntu - 10.1.3-0ubuntu0.6 - - - amd64 - 50 - deb - libxau6 - Ubuntu - 1:1.0.8-1 - - - amd64 - 494 - deb - libxaw7 - Ubuntu - 2:1.0.12-1 - - - amd64 - 61 - deb - libxcb-dri2-0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 51 - deb - libxcb-dri3-0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 151 - deb - libxcb-glx0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 51 - deb - libxcb-present0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 80 - deb - libxcb-render0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 56 - deb - libxcb-shape0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 51 - deb - libxcb-shm0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 65 - deb - libxcb-sync1 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 74 - deb - libxcb-util0 - Ubuntu - 0.3.8-2ubuntu1 - - - amd64 - 71 - deb - libxcb-xfixes0 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 181 - deb - libxcb1 - Ubuntu - 1.10-2ubuntu1 - - - amd64 - 47 - deb - libxcomposite1 - Ubuntu - 1:0.4.4-1 - - - amd64 - 79 - deb - libxcursor1 - Ubuntu - 1:1.1.14-1ubuntu0.14.04.1 - - - amd64 - 46 - deb - libxdamage1 - Ubuntu - 1:1.1.4-1ubuntu1 - - - amd64 - 71 - deb - libxdmcp6 - Ubuntu - 1:1.1.1-1 - - - amd64 - 121 - deb - libxext6 - Ubuntu - 2:1.3.2-1ubuntu0.0.14.04.1 - - - amd64 - 173 - deb - libxfce4ui-1-0 - Ubuntu - 4.11.1-2ubuntu1 - - - amd64 - 173 - deb - libxfce4ui-2-0 - Ubuntu - 4.11.1-2ubuntu1 - - - all - 1541 - deb - libxfce4ui-common - Ubuntu - 4.11.1-2ubuntu1 - - - amd64 - 203 - deb - libxfce4ui-utils - Ubuntu - 4.11.1-2ubuntu1 - - - amd64 - 54 - deb - libxfce4util-bin - Ubuntu - 4.10.1-1ubuntu1 - - - all - 749 - deb - libxfce4util-common - Ubuntu - 4.10.1-1ubuntu1 - - - amd64 - 96 - deb - libxfce4util6 - Ubuntu - 4.10.1-1ubuntu1 - - - amd64 - 1152 - deb - libxfcegui4-4 - Ubuntu - 4.10.0-2 - - - amd64 - 114 - deb - libxfconf-0-2 - Ubuntu - 4.10.0-2ubuntu1 - - - amd64 - 62 - deb - libxfixes3 - Ubuntu - 1:5.0.1-1ubuntu1.1 - - - amd64 - 245 - deb - libxfont1 - Ubuntu - 1:1.4.7-1ubuntu0.4 - - - amd64 - 136 - deb - libxft2 - Ubuntu - 2.3.1-2 - - - amd64 - 107 - deb - libxi6 - Ubuntu - 2:1.7.1.901-1ubuntu1.1 - - - amd64 - 49 - deb - libxinerama1 - Ubuntu - 2:1.1.3-1 - - - amd64 - 272 - deb - libxkbcommon0 - Ubuntu - 0.4.1-0ubuntu1 - - - amd64 - 194 - deb - libxkbfile1 - Ubuntu - 1:1.0.8-1 - - - amd64 - 146 - deb - libxklavier16 - Ubuntu - 5.4-0ubuntu1 - - - amd64 - 586 - deb - libxml-parser-perl - Ubuntu - 2.41-1build3 - - - all - 567 - deb - libxml-twig-perl - Ubuntu - 1:3.44-1 - - - all - 153 - deb - libxml-xpathengine-perl - Ubuntu - 0.13-1 - - - amd64 - 1802 - deb - libxml2 - Ubuntu - 2.9.1+dfsg1-3ubuntu4.12 - - - amd64 - 151 - deb - libxmu6 - Ubuntu - 2:1.1.1-1 - - - amd64 - 65 - deb - libxmuu1 - Ubuntu - 2:1.1.1-1 - - - amd64 - 78 - deb - libxp6 - Ubuntu - 1:1.0.2-1ubuntu1 - - - amd64 - 121 - deb - libxpm4 - Ubuntu - 1:3.5.10-1ubuntu0.1 - - - amd64 - 80 - deb - libxrandr2 - Ubuntu - 2:1.5.0-1~trusty1 - - - amd64 - 79 - deb - libxrender1 - Ubuntu - 1:0.9.8-1build0.14.04.1 - - - amd64 - 46 - deb - libxres1 - Ubuntu - 2:1.0.7-1 - - - amd64 - 41 - deb - libxshmfence1 - Ubuntu - 1.1-2 - - - amd64 - 490 - deb - libxslt1.1 - Ubuntu - 1.1.28-2ubuntu0.1 - - - amd64 - 59 - deb - libxss1 - Ubuntu - 1:1.2.2-1 - - - amd64 - 458 - deb - libxt6 - Ubuntu - 1:1.1.4-1 - - - amd64 - 106 - deb - libxtables10 - Ubuntu - 1.4.21-1ubuntu1 - - - amd64 - 64 - deb - libxtst6 - Ubuntu - 2:1.2.2-1 - - - amd64 - 56 - deb - libxv1 - Ubuntu - 2:1.0.10-1 - - - amd64 - 892 - deb - libxvidcore4 - Ubuntu - 2:1.3.2-9ubuntu1 - - - amd64 - 73 - deb - libxvmc1 - Ubuntu - 2:1.0.8-1ubuntu1 - - - amd64 - 59 - deb - libxxf86dga1 - Ubuntu - 2:1.1.4-1 - - - amd64 - 58 - deb - libxxf86vm1 - Ubuntu - 1:1.1.3-1 - - - amd64 - 73 - deb - libyajl2 - Ubuntu - 2.0.4-4 - - - amd64 - 163 - deb - libyaml-0-2 - Ubuntu - 0.1.4-3ubuntu3.1 - - - all - 85 - deb - libyaml-tiny-perl - Ubuntu - 1.56-1 - - - amd64 - 375 - deb - libyelp0 - Ubuntu - 3.10.2-0ubuntu1 - - - amd64 - 103 - deb - libzephyr4 - Ubuntu - 3.1.2-1 - - - amd64 - 944 - deb - light-locker - Ubuntu - 1.4.0-0ubuntu1 - - - all - 237 - deb - light-locker-settings - Ubuntu - 1.2.1-0ubuntu1.1 - - - amd64 - 914 - deb - lightdm-gtk-greeter - Ubuntu - 1.8.5-1ubuntu2~ubuntu14.04.1 - - - all - 1586 - deb - link-grammar-dictionaries-en - Ubuntu - 4.7.4-2ubuntu1 - - - all - 3198 - deb - lintian - Ubuntu - 2.5.22ubuntu1 - - - all - 124150 - deb - linux-firmware - Ubuntu - 1.127.24 - - - amd64 - 27 - deb - linux-generic - Ubuntu - 3.13.0.24.28 - - - all - 61736 - deb - linux-headers-3.13.0-24 - Ubuntu - 3.13.0-24.47 - - - amd64 - 12957 - deb - linux-headers-3.13.0-24-generic - Ubuntu - 3.13.0-24.47 - - - amd64 - 27 - deb - linux-headers-generic - Ubuntu - 3.13.0.24.28 - - - amd64 - 40636 - deb - linux-image-3.13.0-24-generic - Ubuntu - 3.13.0-24.47 - - - amd64 - 147869 - deb - linux-image-extra-3.13.0-24-generic - Ubuntu - 3.13.0-24.47 - - - amd64 - 27 - deb - linux-image-generic - Ubuntu - 3.13.0.24.28 - - - amd64 - 3864 - deb - linux-libc-dev - Ubuntu - 3.13.0-145.194 - - - all - 96 - deb - linux-sound-base - Ubuntu - 1.0.25+dfsg-0ubuntu4 - - - all - 9136 - deb - locales - Ubuntu - 2.13+git20120306-12.1 - - - amd64 - 78 - deb - lockfile-progs - Ubuntu - 0.1.17 - - - amd64 - 1184 - deb - login - Ubuntu - 1:4.1.5.1-1ubuntu9.5 - - - amd64 - 159 - deb - logrotate - Ubuntu - 3.8.7-1ubuntu1.2 - - - amd64 - 671 - deb - lp-solve - Ubuntu - 5.5.0.13-7build1 - - - all - 83 - deb - lsb-base - Ubuntu - 4.1+Debian11ubuntu6.2 - - - all - 121 - deb - lsb-release - Ubuntu - 4.1+Debian11ubuntu6.2 - - - amd64 - 768 - deb - lshw - Ubuntu - 02.16-2ubuntu1.4 - - - amd64 - 456 - deb - lsof - Ubuntu - 4.86+dfsg-1ubuntu2 - - - amd64 - 363 - deb - ltrace - Ubuntu - 0.7.3-4ubuntu5.1 - - - amd64 - 320 - deb - make - Ubuntu - 3.81-8.2ubuntu3 - - - all - 126 - deb - makedev - Ubuntu - 2.3.1-93ubuntu2~ubuntu14.04.1 - - - amd64 - 2064 - deb - man-db - Ubuntu - 2.6.7.1-1ubuntu1 - - - all - 909 - deb - manpages - Ubuntu - 3.54-1ubuntu1 - - - all - 1834 - deb - manpages-dev - Ubuntu - 3.54-1ubuntu1 - - - amd64 - 197 - deb - mawk - Ubuntu - 1.3.3-17ubuntu2 - - - amd64 - 2468 - deb - memtest86+ - Ubuntu - 4.20-1.1ubuntu8 - - - all - 1016 - deb - menulibre - Ubuntu - 2.0.4-1~ubuntu14.04.1 - - - all - 143 - deb - mime-support - Ubuntu - 3.54ubuntu1.1 - - - amd64 - 228 - deb - mlocate - Ubuntu - 0.26-1ubuntu1 - - - all - 31 - deb - module-init-tools - Ubuntu - 15-0ubuntu6 - - - amd64 - 421 - deb - mount - Ubuntu - 2.20.1-5.1ubuntu20.9 - - - amd64 - 262 - deb - mountall - Ubuntu - 2.53 - - - amd64 - 875 - deb - mousepad - Ubuntu - 0.3.0-2 - - - amd64 - 296 - deb - mousetweaks - Ubuntu - 3.8.0-2 - - - amd64 - 60 - deb - mscompress - Ubuntu - 0.4-3 - - - amd64 - 123 - deb - mtr-tiny - Ubuntu - 0.85-2 - - - all - 797 - deb - mugshot - Ubuntu - 0.2.5-0ubuntu0.1 - - - amd64 - 204 - deb - multiarch-support - Ubuntu - 2.19-0ubuntu6.14 - - - amd64 - 600 - deb - nano - Ubuntu - 2.2.6-1ubuntu1 - - - all - 220 - deb - nautilus-data - Ubuntu - 1:3.10.1-0ubuntu9.11 - - - all - 367 - deb - ncurses-base - Ubuntu - 5.9+20140118-1ubuntu1 - - - amd64 - 523 - deb - ncurses-bin - Ubuntu - 5.9+20140118-1ubuntu1 - - - all - 2154 - deb - ncurses-term - Ubuntu - 5.9+20140118-1ubuntu1 - - - amd64 - 708 - deb - net-tools - Ubuntu - 1.60-25ubuntu2.1 - - - all - 66 - deb - netbase - Ubuntu - 5.2 - - - amd64 - 109 - deb - netcat-openbsd - Ubuntu - 1.105-7ubuntu1 - - - amd64 - 168 - deb - notification-daemon - Ubuntu - 0.7.6-1 - - - amd64 - 1438 - deb - ntfs-3g - Ubuntu - 1:2013.1.13AR.1-2ubuntu2 - - - amd64 - 247 - deb - ntpdate - Ubuntu - 1:4.2.6.p5+dfsg-3ubuntu2.14.04.12 - - - amd64 - 254 - deb - obex-data-server - Ubuntu - 0.4.6-0ubuntu2 - - - amd64 - 3096 - deb - onboard - Ubuntu - 1.0.1-0ubuntu1 - - - all - 18174 - deb - onboard-data - Ubuntu - 1.0.1-0ubuntu1 - - - all - 65 - deb - oneconf - Ubuntu - 0.3.7.14.04.1 - - - all - 64 - deb - oneconf-common - Ubuntu - 0.3.7.14.04.1 - - - all - 3959 - deb - openprinting-ppds - Ubuntu - 20140410-0ubuntu1 - - - amd64 - 3444 - deb - openssh-client - Ubuntu - 1:6.6p1-2ubuntu2.10 - - - amd64 - 925 - deb - openssh-server - Ubuntu - 1:6.6p1-2ubuntu2.10 - - - amd64 - 118 - deb - openssh-sftp-server - Ubuntu - 1:6.6p1-2ubuntu2.10 - - - amd64 - 907 - deb - openssl - Ubuntu - 1.0.1f-1ubuntu2.25 - - - amd64 - 5182 - deb - orage - Ubuntu - 4.10.0-1 - - - amd64 - 143 - deb - os-prober - Ubuntu - 1.63ubuntu1.1 - - - amd64 - 260 - deb - p11-kit - Ubuntu - 0.20.2-2ubuntu2 - - - amd64 - 256 - deb - p11-kit-modules - Ubuntu - 0.20.2-2ubuntu2 - - - amd64 - 1779 - deb - parole - Ubuntu - 0.6.1-0ubuntu3.1 - - - amd64 - 184 - deb - parted - Ubuntu - 2.3-19ubuntu1.14.04.1 - - - amd64 - 2350 - deb - passwd - Ubuntu - 1:4.1.5.1-1ubuntu9.5 - - - all - 164 - deb - pastebinit - Ubuntu - 1.4-3 - - - amd64 - 224 - deb - patch - Ubuntu - 2.7.1-4ubuntu2.4 - - - amd64 - 228 - deb - patchutils - Ubuntu - 0.3.2-3 - - - amd64 - 1017 - deb - pavucontrol - Ubuntu - 2.0-2 - - - all - 992 - deb - pbuilder - Ubuntu - 0.215ubuntu7.1 - - - amd64 - 1179 - deb - pciutils - Ubuntu - 1:3.2.1-1ubuntu5.1 - - - amd64 - 121 - deb - pcmciautils - Ubuntu - 018-8 - - - amd64 - 17321 - deb - perl - Ubuntu - 5.18.2-2ubuntu1.4 - - - amd64 - 4860 - deb - perl-base - Ubuntu - 5.18.2-2ubuntu1.4 - - - all - 16134 - deb - perl-modules - Ubuntu - 5.18.2-2ubuntu1.4 - - - amd64 - 2225 - deb - pidgin - Ubuntu - 1:2.10.9-0ubuntu3.4 - - - all - 3508 - deb - pidgin-data - Ubuntu - 1:2.10.9-0ubuntu3.4 - - - amd64 - 108 - deb - pidgin-libnotify - Ubuntu - 0.14-9ubuntu2 - - - amd64 - 588 - deb - pidgin-otr - Ubuntu - 4.0.0-2 - - - amd64 - 133 - deb - pkg-config - Ubuntu - 0.26-1ubuntu4 - - - amd64 - 457 - deb - plymouth - Ubuntu - 0.8.8-0ubuntu17.1 - - - amd64 - 66 - deb - plymouth-label - Ubuntu - 0.8.8-0ubuntu17.1 - - - amd64 - 88 - deb - plymouth-theme-ubuntu-text - Ubuntu - 0.8.8-0ubuntu17.1 - - - all - 954 - deb - plymouth-theme-xubuntu-logo - Ubuntu - 14.04.2 - - - all - 56 - deb - plymouth-theme-xubuntu-text - Ubuntu - 14.04.2 - - - all - 335 - deb - pm-utils - Ubuntu - 1.4.1-13ubuntu0.2 - - - amd64 - 400 - deb - policykit-1 - Ubuntu - 0.105-4ubuntu3.14.04.1 - - - amd64 - 136 - deb - policykit-1-gnome - Ubuntu - 0.105-1ubuntu4 - - - all - 48 - deb - policykit-desktop-privileges - Ubuntu - 0.17 - - - all - 11849 - deb - poppler-data - Ubuntu - 0.4.6-4 - - - amd64 - 485 - deb - poppler-utils - Ubuntu - 0.24.5-2ubuntu4.9 - - - all - 130 - deb - popularity-contest - Ubuntu - 1.57ubuntu1 - - - amd64 - 63 - deb - powermgmt-base - Ubuntu - 1.31build1 - - - amd64 - 928 - deb - ppp - Ubuntu - 2.4.5-5.1ubuntu2.2 - - - all - 220 - deb - pppconfig - Ubuntu - 2.3.19ubuntu1 - - - all - 132 - deb - pppoeconf - Ubuntu - 1.20ubuntu1 - - - amd64 - 163 - deb - printer-driver-c2esp - Ubuntu - 27~rc1-1 - - - amd64 - 828 - deb - printer-driver-foo2zjs - Ubuntu - 20140209dfsg0-1ubuntu1 - - - all - 2459 - deb - printer-driver-foo2zjs-common - Ubuntu - 20140209dfsg0-1ubuntu1 - - - amd64 - 747 - deb - printer-driver-gutenprint - Ubuntu - 5.2.10~pre2-0ubuntu2 - - - amd64 - 1720 - deb - printer-driver-hpcups - Ubuntu - 3.14.3-0ubuntu3.4 - - - amd64 - 117 - deb - printer-driver-min12xxw - Ubuntu - 0.0.9-8ubuntu1 - - - amd64 - 910 - deb - printer-driver-pnm2ppa - Ubuntu - 1.13+nondbs-0ubuntu4 - - - all - 1046 - deb - printer-driver-postscript-hp - Ubuntu - 3.14.3-0ubuntu3.4 - - - amd64 - 99 - deb - printer-driver-ptouch - Ubuntu - 1.3-8 - - - amd64 - 114 - deb - printer-driver-pxljr - Ubuntu - 1.4+repack0-3 - - - all - 77 - deb - printer-driver-sag-gdi - Ubuntu - 0.1-3 - - - amd64 - 196 - deb - printer-driver-splix - Ubuntu - 2.0.0+svn315-2fakesync1 - - - amd64 - 680 - deb - procps - Ubuntu - 1:3.3.9-1ubuntu2.2 - - - amd64 - 224 - deb - psmisc - Ubuntu - 22.20-1ubuntu2 - - - amd64 - 3404 - deb - pulseaudio - Ubuntu - 1:4.0-0ubuntu11.1 - - - amd64 - 164 - deb - pulseaudio-module-x11 - Ubuntu - 1:4.0-0ubuntu11.1 - - - amd64 - 277 - deb - pulseaudio-utils - Ubuntu - 1:4.0-0ubuntu11.1 - - - amd64 - 671 - deb - python - Ubuntu - 2.7.5-5ubuntu3 - - - amd64 - 646 - deb - python-apt - Ubuntu - 0.9.3.5ubuntu2 - - - all - 208 - deb - python-apt-common - Ubuntu - 0.9.3.5ubuntu2 - - - all - 449 - deb - python-aptdaemon - Ubuntu - 1.1.1-1ubuntu5.2 - - - all - 113 - deb - python-aptdaemon.gtk3widgets - Ubuntu - 1.1.1-1ubuntu5.2 - - - amd64 - 189 - deb - python-cairo - Ubuntu - 1.8.8-1ubuntu5 - - - all - 569 - deb - python-chardet - Ubuntu - 2.0.1-2build2 - - - all - 61 - deb - python-commandnotfound - Ubuntu - 0.3ubuntu12 - - - all - 1523 - deb - python-configobj - Ubuntu - 4.7.2+ds-5build1 - - - amd64 - 1385 - deb - python-crypto - Ubuntu - 2.6.1-4ubuntu0.3 - - - amd64 - 229 - deb - python-cups - Ubuntu - 1.9.66-0ubuntu2 - - - amd64 - 398 - deb - python-dbus - Ubuntu - 1.2.0-2build2 - - - all - 63 - deb - python-dbus-dev - Ubuntu - 1.2.0-2build2 - - - all - 255 - deb - python-debian - Ubuntu - 0.1.21+nmu2ubuntu2 - - - all - 78 - deb - python-debtagshw - Ubuntu - 1.12ubuntu2 - - - all - 77 - deb - python-defer - Ubuntu - 1.0.6-2build1 - - - all - 61 - deb - python-dirspec - Ubuntu - 13.10-0ubuntu2 - - - amd64 - 160 - deb - python-gconf - Ubuntu - 2.28.1+dfsg-1ubuntu2 - - - amd64 - 78 - deb - python-gdbm - Ubuntu - 2.7.5-1ubuntu1 - - - amd64 - 709 - deb - python-gi - Ubuntu - 3.12.0-1ubuntu1 - - - amd64 - 67 - deb - python-gi-cairo - Ubuntu - 3.12.0-1ubuntu1 - - - all - 41 - deb - python-gobject - Ubuntu - 3.12.0-1ubuntu1 - - - amd64 - 912 - deb - python-gobject-2 - Ubuntu - 2.28.6-12build1 - - - amd64 - 3337 - deb - python-gtk2 - Ubuntu - 2.24.0-3ubuntu3 - - - all - 168 - deb - python-httplib2 - Ubuntu - 0.8-2build1 - - - all - 49 - deb - python-imaging - Ubuntu - 2.3.0-1ubuntu3.4 - - - amd64 - 152 - deb - python-ldb - Ubuntu - 1:1.1.24-0ubuntu0.14.04.1 - - - amd64 - 2482 - deb - python-lxml - Ubuntu - 3.3.3-1ubuntu0.1 - - - amd64 - 167 - deb - python-minimal - Ubuntu - 2.7.5-5ubuntu3 - - - amd64 - 107 - deb - python-notify - Ubuntu - 0.1.1-3ubuntu2 - - - all - 406 - deb - python-oauthlib - Ubuntu - 0.6.1-1 - - - all - 143 - deb - python-oneconf - Ubuntu - 0.3.7.14.04.1 - - - amd64 - 417 - deb - python-openssl - Ubuntu - 0.13-2ubuntu6 - - - amd64 - 68 - deb - python-pam - Ubuntu - 0.4.2-13.1ubuntu3 - - - all - 188 - deb - python-pexpect - Ubuntu - 3.1-1ubuntu0.1 - - - amd64 - 1125 - deb - python-pil - Ubuntu - 2.3.0-1ubuntu3.4 - - - all - 115 - deb - python-piston-mini-client - Ubuntu - 0.7.5-0ubuntu2 - - - all - 182 - deb - python-pkg-resources - Ubuntu - 3.3-1ubuntu2 - - - amd64 - 292 - deb - python-psutil - Ubuntu - 1.2.1-1ubuntu2 - - - amd64 - 128 - deb - python-renderpm - Ubuntu - 3.0-1build1 - - - all - 2325 - deb - python-reportlab - Ubuntu - 3.0-1build1 - - - amd64 - 112 - deb - python-reportlab-accel - Ubuntu - 3.0-1build1 - - - all - 210 - deb - python-requests - Ubuntu - 2.2.1-1ubuntu0.3 - - - amd64 - 7603 - deb - python-samba - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - all - 403 - deb - python-serial - Ubuntu - 2.6-1build1 - - - all - 62 - deb - python-six - Ubuntu - 1.5.2-1ubuntu1 - - - amd64 - 78 - deb - python-talloc - Ubuntu - 2.1.5-0ubuntu0.14.04.1 - - - amd64 - 78 - deb - python-tdb - Ubuntu - 1.3.8-0ubuntu0.14.04.1 - - - amd64 - 87 - deb - python-twisted-bin - Ubuntu - 13.2.0-1ubuntu1.2 - - - all - 5921 - deb - python-twisted-core - Ubuntu - 13.2.0-1ubuntu1.2 - - - all - 1765 - deb - python-twisted-web - Ubuntu - 13.2.0-1ubuntu1.2 - - - all - 361 - deb - python-ubuntu-sso-client - Ubuntu - 13.10-0ubuntu6 - - - all - 196 - deb - python-urllib3 - Ubuntu - 1.7.1-1ubuntu4 - - - amd64 - 1332 - deb - python-xapian - Ubuntu - 1.2.16-2ubuntu1 - - - all - 180 - deb - python-xdg - Ubuntu - 0.25-4 - - - amd64 - 647 - deb - python-zope.interface - Ubuntu - 4.0.5-1ubuntu4 - - - amd64 - 348 - deb - python2.7 - Ubuntu - 2.7.6-8ubuntu0.4 - - - amd64 - 3393 - deb - python2.7-minimal - Ubuntu - 2.7.6-8ubuntu0.4 - - - amd64 - 100 - deb - python3 - Ubuntu - 3.4.0-0ubuntu2 - - - all - 529 - deb - python3-apport - Ubuntu - 2.14.1-0ubuntu3.27 - - - amd64 - 643 - deb - python3-apt - Ubuntu - 0.9.3.5ubuntu2 - - - all - 451 - deb - python3-aptdaemon - Ubuntu - 1.1.1-1ubuntu5.2 - - - all - 113 - deb - python3-aptdaemon.gtk3widgets - Ubuntu - 1.1.1-1ubuntu5.2 - - - all - 271 - deb - python3-aptdaemon.pkcompat - Ubuntu - 1.1.1-1ubuntu5.2 - - - amd64 - 164 - deb - python3-cairo - Ubuntu - 1.10.0+dfsg-3ubuntu2 - - - all - 508 - deb - python3-chardet - Ubuntu - 2.2.1-2~ubuntu1 - - - all - 62 - deb - python3-commandnotfound - Ubuntu - 0.3ubuntu12 - - - amd64 - 1390 - deb - python3-crypto - Ubuntu - 2.6.1-4ubuntu0.3 - - - amd64 - 392 - deb - python3-dbus - Ubuntu - 1.2.0-2build2 - - - all - 188 - deb - python3-debian - Ubuntu - 0.1.21+nmu2ubuntu2 - - - all - 77 - deb - python3-defer - Ubuntu - 1.0.6-2build1 - - - all - 639 - deb - python3-distupgrade - Ubuntu - 1:0.220.10 - - - amd64 - 71 - deb - python3-gdbm - Ubuntu - 3.4.3-1~14.04.2 - - - amd64 - 671 - deb - python3-gi - Ubuntu - 3.12.0-1ubuntu1 - - - amd64 - 67 - deb - python3-gi-cairo - Ubuntu - 3.12.0-1ubuntu1 - - - all - 135 - deb - python3-httplib2 - Ubuntu - 0.8-2build1 - - - all - 72 - deb - python3-magic - Ubuntu - 1:5.14-2ubuntu3.3 - - - amd64 - 139 - deb - python3-minimal - Ubuntu - 3.4.0-0ubuntu2 - - - amd64 - 124 - deb - python3-newt - Ubuntu - 0.52.15-2ubuntu5 - - - all - 403 - deb - python3-oauthlib - Ubuntu - 0.6.1-1 - - - all - 143 - deb - python3-oneconf - Ubuntu - 0.3.7.14.04.1 - - - all - 188 - deb - python3-pexpect - Ubuntu - 3.1-1ubuntu0.1 - - - all - 114 - deb - python3-piston-mini-client - Ubuntu - 0.7.5-0ubuntu2 - - - all - 153 - deb - python3-pkg-resources - Ubuntu - 3.3-1ubuntu2 - - - all - 177 - deb - python3-problem-inventory - Ubuntu - 2.14.1-0ubuntu3.27 - - - amd64 - 267 - deb - python3-psutil - Ubuntu - 1.2.1-1ubuntu2 - - - amd64 - 211 - deb - python3-pycurl - Ubuntu - 7.19.3-0ubuntu3 - - - all - 63 - deb - python3-six - Ubuntu - 1.5.2-1ubuntu1 - - - all - 135 - deb - python3-software-properties - Ubuntu - 0.92.37.8 - - - all - 249 - deb - python3-update-manager - Ubuntu - 1:0.196.25 - - - all - 180 - deb - python3-xdg - Ubuntu - 0.25-4 - - - all - 139 - deb - python3-xkit - Ubuntu - 0.5.0ubuntu2 - - - amd64 - 346 - deb - python3.4 - Ubuntu - 3.4.3-1ubuntu1~14.04.6 - - - amd64 - 3767 - deb - python3.4-minimal - Ubuntu - 3.4.3-1ubuntu1~14.04.6 - - - amd64 - 543 - deb - qpdf - Ubuntu - 5.1.1-1 - - - all - 109 - deb - readline-common - Ubuntu - 6.3-4ubuntu2 - - - all - 257 - deb - resolvconf - Ubuntu - 1.69ubuntu1.4 - - - amd64 - 60 - deb - rfkill - Ubuntu - 0.5-1ubuntu1 - - - amd64 - 1147 - deb - ristretto - Ubuntu - 0.6.3-2ubuntu1 - - - amd64 - 638 - deb - rsync - Ubuntu - 3.1.0-2ubuntu0.4 - - - amd64 - 1541 - deb - rsyslog - Ubuntu - 7.4.4-1ubuntu2.7 - - - amd64 - 172 - deb - rtkit - Ubuntu - 0.10-3 - - - amd64 - 40154 - deb - rudder-agent - Ubuntu - 4.3.0-trusty0 - - - all - 44 - deb - run-one - Ubuntu - 1.17-0ubuntu1 - - - all - 336 - deb - samba-common - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - amd64 - 1550 - deb - samba-common-bin - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - amd64 - 22127 - deb - samba-libs - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - amd64 - 524 - deb - sane-utils - Ubuntu - 1.0.23-3ubuntu3.1 - - - amd64 - 950 - deb - screen - Ubuntu - 4.1.0~20120320gitdb59704-9 - - - amd64 - 304 - deb - sed - Ubuntu - 4.2.2-4ubuntu1 - - - all - 110 - deb - sensible-utils - Ubuntu - 0.0.9ubuntu0.14.04.1 - - - all - 240 - deb - sessioninstaller - Ubuntu - 0.20+bzr141-0ubuntu4 - - - all - 113 - deb - sgml-base - Ubuntu - 1.26+nmu4ubuntu1 - - - amd64 - 2580 - deb - shared-mime-info - Ubuntu - 1.2-0ubuntu3 - - - all - 2150 - deb - shimmer-themes - Ubuntu - 1.7.3-0ubuntu1 - - - amd64 - 636 - deb - simple-scan - Ubuntu - 3.12.3-0ubuntu1 - - - amd64 - 4098 - deb - slapd - Ubuntu - 2.4.31-1+nmu2ubuntu8.4 - - - amd64 - 1520 - deb - smbclient - Ubuntu - 2:4.3.11+dfsg-0ubuntu0.14.04.14 - - - all - 2924 - deb - software-center - Ubuntu - 13.10-0ubuntu4.2 - - - all - 80 - deb - software-center-aptdaemon-plugins - Ubuntu - 0.1.6build1 - - - all - 184 - deb - software-properties-common - Ubuntu - 0.92.37.8 - - - all - 422 - deb - software-properties-gtk - Ubuntu - 0.92.37.8 - - - all - 541 - deb - sound-theme-freedesktop - Ubuntu - 0.8-1 - - - amd64 - 1108 - deb - speech-dispatcher - Ubuntu - 0.8-5ubuntu1 - - - amd64 - 116 - deb - speech-dispatcher-audio-plugins - Ubuntu - 0.8-5ubuntu1 - - - all - 83 - deb - ssh-import-id - Ubuntu - 3.21-0ubuntu1 - - - all - 102 - deb - ssl-cert - Ubuntu - 1.0.33 - - - amd64 - 492 - deb - strace - Ubuntu - 4.8-1ubuntu5 - - - amd64 - 1508 - deb - sudo - Ubuntu - 1.8.9p5-1ubuntu1.4 - - - amd64 - 1057 - deb - system-tools-backends - Ubuntu - 2.10.2-1ubuntu1.14.04.1 - - - amd64 - 955 - deb - systemd-services - Ubuntu - 204-5ubuntu20.28 - - - amd64 - 89 - deb - systemd-shim - Ubuntu - 6-2bzr1 - - - all - 221 - deb - sysv-rc - Ubuntu - 2.88dsf-41ubuntu6.3 - - - amd64 - 242 - deb - sysvinit-utils - Ubuntu - 2.88dsf-41ubuntu6.3 - - - amd64 - 293 - deb - t1utils - Ubuntu - 1.37-2ubuntu1.1 - - - amd64 - 768 - deb - tar - Ubuntu - 1.27.1-1ubuntu0.1 - - - all - 240 - deb - tasksel - Ubuntu - 2.88ubuntu15 - - - all - 136 - deb - tasksel-data - Ubuntu - 2.88ubuntu15 - - - amd64 - 51 - deb - tcl - Ubuntu - 8.6.0+6ubuntu3 - - - amd64 - 64 - deb - tcl8.6 - Ubuntu - 8.6.1-4ubuntu1 - - - amd64 - 111 - deb - tcpd - Ubuntu - 7.6.q-25 - - - amd64 - 1207 - deb - tcpdump - Ubuntu - 4.9.2-0ubuntu0.14.04.1 - - - amd64 - 163 - deb - telnet - Ubuntu - 0.17-36build2 - - - amd64 - 891 - deb - thunar - Ubuntu - 1.6.3-1ubuntu5 - - - amd64 - 557 - deb - thunar-archive-plugin - Ubuntu - 0.3.1-2 - - - all - 4532 - deb - thunar-data - Ubuntu - 1.6.3-1ubuntu5 - - - amd64 - 603 - deb - thunar-media-tags-plugin - Ubuntu - 0.2.1-1 - - - amd64 - 958 - deb - thunar-volman - Ubuntu - 0.8.0-4ubuntu1 - - - amd64 - 106511 - deb - thunderbird - Ubuntu - 1:52.7.0+build1-0ubuntu0.14.04.1 - - - amd64 - 119 - deb - time - Ubuntu - 1.7-24 - - - amd64 - 51 - deb - tk - Ubuntu - 8.6.0+6ubuntu3 - - - amd64 - 60 - deb - tk8.6 - Ubuntu - 8.6.1-3ubuntu2 - - - amd64 - 563 - deb - tmux - Ubuntu - 1.8-5 - - - amd64 - 245 - deb - toshset - Ubuntu - 1.76-4 - - - all - 872 - deb - transmission-common - Ubuntu - 2.82-1.1ubuntu3.2 - - - amd64 - 916 - deb - transmission-gtk - Ubuntu - 2.82-1.1ubuntu3.2 - - - all - 2464 - deb - ttf-indic-fonts-core - Ubuntu - 1:0.5.14ubuntu1 - - - all - 202 - deb - ttf-punjabi-fonts - Ubuntu - 1:0.5.14ubuntu1 - - - all - 3936 - deb - ttf-ubuntu-font-family - Ubuntu - 0.80-0ubuntu6 - - - amd64 - 287 - deb - tumbler - Ubuntu - 0.1.30-1ubuntu1 - - - all - 851 - deb - tumbler-common - Ubuntu - 0.1.30-1ubuntu1 - - - all - 1537 - deb - tzdata - Ubuntu - 2017c-0ubuntu0.14.04 - - - amd64 - 305 - deb - ubuntu-drivers-common - Ubuntu - 1:0.2.91.12 - - - all - 48 - deb - ubuntu-extras-keyring - Ubuntu - 2010.09.27 - - - all - 46 - deb - ubuntu-keyring - Ubuntu - 2012.05.19 - - - amd64 - 60 - deb - ubuntu-minimal - Ubuntu - 1.325 - - - all - 316 - deb - ubuntu-release-upgrader-core - Ubuntu - 1:0.220.10 - - - all - 218 - deb - ubuntu-release-upgrader-gtk - Ubuntu - 1:0.220.10 - - - all - 76 - deb - ubuntu-sso-client - Ubuntu - 13.10-0ubuntu6 - - - all - 229 - deb - ucf - Ubuntu - 3.0027+nmu1 - - - amd64 - 5154 - deb - udev - Ubuntu - 204-5ubuntu20.28 - - - amd64 - 856 - deb - udisks2 - Ubuntu - 2.1.3-1ubuntu0.1 - - - all - 731 - deb - ufw - Ubuntu - 0.34~rc-0ubuntu2 - - - all - 252 - deb - unattended-upgrades - Ubuntu - 0.82.1ubuntu2.5 - - - amd64 - 386 - deb - unzip - Ubuntu - 6.0-9ubuntu1.5 - - - all - 101 - deb - update-inetd - Ubuntu - 4.43 - - - all - 1063 - deb - update-manager - Ubuntu - 1:0.196.25 - - - all - 168 - deb - update-manager-core - Ubuntu - 1:0.196.25 - - - amd64 - 280 - deb - update-notifier - Ubuntu - 0.154.1ubuntu3 - - - all - 2089 - deb - update-notifier-common - Ubuntu - 0.154.1ubuntu3 - - - amd64 - 516 - deb - upower - Ubuntu - 0.9.23-2ubuntu1 - - - amd64 - 1682 - deb - upstart - Ubuntu - 1.12.1-0ubuntu4.2 - - - amd64 - 124 - deb - ureadahead - Ubuntu - 0.100.0-16 - - - amd64 - 127 - deb - usbmuxd - Ubuntu - 1.0.8-2ubuntu1 - - - amd64 - 751 - deb - usbutils - Ubuntu - 1:007-2ubuntu1.1 - - - amd64 - 1642 - deb - util-linux - Ubuntu - 2.20.1-5.1ubuntu20.9 - - - amd64 - 139 - deb - uuid-runtime - Ubuntu - 2.20.1-5.1ubuntu20.9 - - - amd64 - 57 - deb - vbetool - Ubuntu - 1.1-3 - - - amd64 - 317 - deb - vim-common - Ubuntu - 2:7.4.052-1ubuntu3.1 - - - all - 25186 - deb - vim-runtime - Ubuntu - 2:7.4.052-1ubuntu3.1 - - - amd64 - 931 - deb - vim-tiny - Ubuntu - 2:7.4.052-1ubuntu3.1 - - - amd64 - 2320 - deb - w3m - Ubuntu - 0.5.3-15ubuntu0.2 - - - all - 990 - deb - wamerican - Ubuntu - 7.1-1 - - - amd64 - 112 - deb - wdiff - Ubuntu - 1.2.1-2 - - - amd64 - 636 - deb - wget - Ubuntu - 1.15-1ubuntu1.14.04.3 - - - amd64 - 85 - deb - whiptail - Ubuntu - 0.52.15-2ubuntu5 - - - amd64 - 112 - deb - whoopsie - Ubuntu - 0.2.24.6ubuntu4 - - - all - 52 - deb - wireless-regdb - Ubuntu - 2013.02.13-1ubuntu1 - - - amd64 - 328 - deb - wireless-tools - Ubuntu - 30~pre9-8ubuntu1 - - - amd64 - 2190 - deb - wpasupplicant - Ubuntu - 2.1-0ubuntu1.5 - - - amd64 - 2046 - deb - x11-apps - Ubuntu - 7.7+2 - - - all - 492 - deb - x11-common - Ubuntu - 1:7.7+1ubuntu8.1 - - - amd64 - 244 - deb - x11-session-utils - Ubuntu - 7.7+1 - - - amd64 - 595 - deb - x11-utils - Ubuntu - 7.7+1 - - - amd64 - 100 - deb - x11-xfs-utils - Ubuntu - 7.7+1 - - - amd64 - 473 - deb - x11-xkb-utils - Ubuntu - 7.7+1 - - - amd64 - 490 - deb - x11-xserver-utils - Ubuntu - 7.7+2ubuntu1 - - - amd64 - 86 - deb - xauth - Ubuntu - 1:1.0.7-1ubuntu1 - - - all - 223 - deb - xbitmaps - Ubuntu - 1.1.1-2 - - - amd64 - 228 - deb - xbrlapi - Ubuntu - 5.0-2ubuntu2 - - - amd64 - 918 - deb - xchat - Ubuntu - 2.8.8-7.1ubuntu5.1 - - - all - 3248 - deb - xchat-common - Ubuntu - 2.8.8-7.1ubuntu5.1 - - - amd64 - 54 - deb - xchat-indicator - Ubuntu - 0.3.11-0ubuntu4 - - - all - 4088 - deb - xcursor-themes - Ubuntu - 1.0.3-1 - - - amd64 - 1178 - deb - xdg-user-dirs - Ubuntu - 0.15-1ubuntu3 - - - amd64 - 100 - deb - xdg-user-dirs-gtk - Ubuntu - 0.10-1ubuntu1 - - - all - 263 - deb - xdg-utils - Ubuntu - 1.1.0~rc1-2ubuntu7.1 - - - amd64 - 2252 - deb - xfburn - Ubuntu - 0.5.0-0ubuntu1 - - - amd64 - 955 - deb - xfce4-appfinder - Ubuntu - 4.10.1-1 - - - amd64 - 574 - deb - xfce4-cpugraph-plugin - Ubuntu - 1.0.5-1 - - - amd64 - 1056 - deb - xfce4-dict - Ubuntu - 0.7.0-1 - - - amd64 - 614 - deb - xfce4-indicator-plugin - Ubuntu - 2.3.2-0ubuntu2 - - - amd64 - 1084 - deb - xfce4-mailwatch-plugin - Ubuntu - 1.2.0-1 - - - amd64 - 606 - deb - xfce4-netload-plugin - Ubuntu - 1.2.0-1 - - - amd64 - 721 - deb - xfce4-notes - Ubuntu - 1.7.7-3ubuntu2 - - - amd64 - 390 - deb - xfce4-notes-plugin - Ubuntu - 1.7.7-3ubuntu2 - - - amd64 - 681 - deb - xfce4-notifyd - Ubuntu - 0.2.4-2 - - - amd64 - 3591 - deb - xfce4-panel - Ubuntu - 4.11.0-0ubuntu1 - - - amd64 - 704 - deb - xfce4-places-plugin - Ubuntu - 1.6.0-1ubuntu1 - - - amd64 - 382 - deb - xfce4-power-manager - Ubuntu - 1.2.0-3ubuntu4.1 - - - all - 2433 - deb - xfce4-power-manager-data - Ubuntu - 1.2.0-3ubuntu4.1 - - - amd64 - 199 - deb - xfce4-quicklauncher-plugin - Ubuntu - 1.9.4-10ubuntu1 - - - amd64 - 2165 - deb - xfce4-screenshooter - Ubuntu - 1.8.1-2ubuntu1 - - - amd64 - 2631 - deb - xfce4-session - Ubuntu - 4.10.1-3ubuntu5 - - - amd64 - 2630 - deb - xfce4-settings - Ubuntu - 4.11.2-1ubuntu2 - - - amd64 - 470 - deb - xfce4-systemload-plugin - Ubuntu - 1:1.1.1-1ubuntu2 - - - amd64 - 790 - deb - xfce4-taskmanager - Ubuntu - 1.0.1-1 - - - amd64 - 2071 - deb - xfce4-terminal - Ubuntu - 0.6.3-1ubuntu1 - - - amd64 - 471 - deb - xfce4-verve-plugin - Ubuntu - 1.0.0-2ubuntu1 - - - amd64 - 86 - deb - xfce4-volumed - Ubuntu - 0.2.0-0ubuntu1 - - - amd64 - 3384 - deb - xfce4-weather-plugin - Ubuntu - 0.8.3-1ubuntu0.1 - - - amd64 - 896 - deb - xfce4-whiskermenu-plugin - Ubuntu - 1.3.2-1 - - - amd64 - 2247 - deb - xfce4-xkb-plugin - Ubuntu - 1:0.7.0-0ubuntu2 - - - amd64 - 832 - deb - xfconf - Ubuntu - 4.10.0-2ubuntu1 - - - amd64 - 546 - deb - xfdesktop4 - Ubuntu - 4.11.8-0ubuntu0.1 - - - all - 1802 - deb - xfdesktop4-data - Ubuntu - 4.11.8-0ubuntu0.1 - - - all - 8280 - deb - xfonts-base - Ubuntu - 1:1.0.3 - - - all - 668 - deb - xfonts-encodings - Ubuntu - 1:1.0.4-1ubuntu1 - - - all - 532 - deb - xfonts-scalable - Ubuntu - 1:1.0.3-1 - - - amd64 - 391 - deb - xfonts-utils - Ubuntu - 1:7.7+1 - - - amd64 - 2273 - deb - xfwm4 - Ubuntu - 4.11.1-2ubuntu2 - - - amd64 - 104 - deb - xinit - Ubuntu - 1.3.2-1 - - - amd64 - 92 - deb - xinput - Ubuntu - 1.6.1-1 - - - all - 2836 - deb - xkb-data - Ubuntu - 2.10.1-1ubuntu1 - - - all - 188 - deb - xml-core - Ubuntu - 0.13+nmu2 - - - amd64 - 80 - deb - xorg - Ubuntu - 1:7.7+1ubuntu8.1 - - - all - 127 - deb - xorg-docs-core - Ubuntu - 1:1.7-1 - - - amd64 - 2365 - deb - xscreensaver - Ubuntu - 5.15-3+deb7u1ubuntu0.1 - - - amd64 - 412 - deb - xscreensaver-data - Ubuntu - 5.15-3+deb7u1ubuntu0.1 - - - all - 1764 - deb - xserver-common - Ubuntu - 2:1.15.1-0ubuntu2.11 - - - amd64 - 366 - deb - xserver-xorg - Ubuntu - 1:7.7+1ubuntu8.1 - - - amd64 - 3683 - deb - xserver-xorg-core - Ubuntu - 2:1.15.1-0ubuntu2.11 - - - amd64 - 64 - deb - xserver-xorg-input-all - Ubuntu - 1:7.7+1ubuntu8.1 - - - amd64 - 138 - deb - xserver-xorg-input-evdev - Ubuntu - 1:2.8.2-1ubuntu2 - - - amd64 - 131 - deb - xserver-xorg-input-mouse - Ubuntu - 1:1.9.0-1build1 - - - amd64 - 228 - deb - xserver-xorg-input-synaptics - Ubuntu - 1.7.4-0ubuntu1 - - - amd64 - 114 - deb - xserver-xorg-input-vmmouse - Ubuntu - 1:13.0.0-1build1 - - - amd64 - 301 - deb - xserver-xorg-input-wacom - Ubuntu - 1:0.23.0-0ubuntu2 - - - amd64 - 64 - deb - xserver-xorg-video-all - Ubuntu - 1:7.7+1ubuntu8.1 - - - amd64 - 92 - deb - xserver-xorg-video-ati - Ubuntu - 1:7.3.0-1ubuntu3.1 - - - amd64 - 141 - deb - xserver-xorg-video-cirrus - Ubuntu - 1:1.5.2-1build1 - - - amd64 - 85 - deb - xserver-xorg-video-fbdev - Ubuntu - 1:0.4.4-1build1 - - - amd64 - 57 - deb - xserver-xorg-video-glamoregl - Ubuntu - 0.6.0-0ubuntu4 - - - amd64 - 2818 - deb - xserver-xorg-video-intel - Ubuntu - 2:2.99.910-0ubuntu1.7 - - - amd64 - 230 - deb - xserver-xorg-video-mach64 - Ubuntu - 6.9.4-1build1 - - - amd64 - 213 - deb - xserver-xorg-video-mga - Ubuntu - 1:1.6.3-1build1 - - - amd64 - 104 - deb - xserver-xorg-video-modesetting - Ubuntu - 0.8.1-1build1 - - - amd64 - 131 - deb - xserver-xorg-video-neomagic - Ubuntu - 1:1.2.8-1build1 - - - amd64 - 301 - deb - xserver-xorg-video-nouveau - Ubuntu - 1:1.0.10-1ubuntu2 - - - amd64 - 529 - deb - xserver-xorg-video-openchrome - Ubuntu - 1:0.3.3-1ubuntu0.1 - - - amd64 - 408 - deb - xserver-xorg-video-qxl - Ubuntu - 0.1.1-0ubuntu3 - - - amd64 - 177 - deb - xserver-xorg-video-r128 - Ubuntu - 6.9.2-1build1 - - - amd64 - 508 - deb - xserver-xorg-video-radeon - Ubuntu - 1:7.3.0-1ubuntu3.1 - - - amd64 - 120 - deb - xserver-xorg-video-s3 - Ubuntu - 1:0.6.5-0ubuntu4 - - - amd64 - 209 - deb - xserver-xorg-video-savage - Ubuntu - 1:2.3.7-2ubuntu2 - - - amd64 - 176 - deb - xserver-xorg-video-siliconmotion - Ubuntu - 1:1.7.7-2build1 - - - amd64 - 631 - deb - xserver-xorg-video-sis - Ubuntu - 1:0.10.7-0ubuntu6 - - - amd64 - 137 - deb - xserver-xorg-video-sisusb - Ubuntu - 1:0.9.6-2build1 - - - amd64 - 126 - deb - xserver-xorg-video-tdfx - Ubuntu - 1:1.4.5-1build1 - - - amd64 - 201 - deb - xserver-xorg-video-trident - Ubuntu - 1:1.3.6-0ubuntu5 - - - amd64 - 89 - deb - xserver-xorg-video-vesa - Ubuntu - 1:2.3.3-1build1 - - - amd64 - 242 - deb - xserver-xorg-video-vmware - Ubuntu - 1:13.0.2-2ubuntu1 - - - amd64 - 1659 - deb - xterm - Ubuntu - 297-1ubuntu1 - - - all - 75 - deb - xubuntu-artwork - Ubuntu - 14.04.2 - - - all - 9398 - deb - xubuntu-community-wallpapers - Ubuntu - 14.04.0 - - - all - 208 - deb - xubuntu-default-settings - Ubuntu - 14.04.6 - - - all - 1082 - deb - xubuntu-docs - Ubuntu - 14.04.1 - - - all - 6950 - deb - xubuntu-icon-theme - Ubuntu - 14.04.2 - - - all - 2440 - deb - xubuntu-wallpapers - Ubuntu - 14.04.2 - - - all - 49 - deb - xul-ext-ubufox - Ubuntu - 3.4-0ubuntu0.14.04.2 - - - amd64 - 120 - deb - xvt - Ubuntu - 2.1-20.1ubuntu1 - - - amd64 - 384 - deb - xz-utils - Ubuntu - 5.1.1alpha+20120614-2ubuntu2 - - - amd64 - 2120 - deb - yelp - Ubuntu - 3.10.2-0ubuntu1 - - - all - 1863 - deb - yelp-xsl - Ubuntu - 3.10.1-1 - - - amd64 - 343 - deb - zenity - Ubuntu - 3.8.0-1ubuntu1 - - - all - 1684 - deb - zenity-common - Ubuntu - 3.8.0-1ubuntu1 - - - amd64 - 589 - deb - zip - Ubuntu - 3.0-8 - - - amd64 - 171 - deb - zlib1g - Ubuntu - 1:1.2.8.dfsg-1ubuntu1 - - - Virtual - 6295 - 0x1af4 - vda - disk - - - root - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.18.2 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - ubuntu-14-04-64-2017-02-02-16-04-23 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs.sign deleted file mode 100644 index abe6150f444..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/4.3/ubuntu-14-04-64-ddcfb475-76e6-44e2-9178-2fa06c618bfd.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=b2e710dc7f2c27758fcd4201b8b610ffa667489fa5a78e3a20967301a0e4fe9a7d0a893cf0805f331b2964c50904972c38eb197230a400887e9beecc495bc6a2084938452fb8ece334252ff86696d4c1dbecf7a4a86c4f188aafb49482ed5a1d26a9207f0bbf179ffd2dc945244eb3bd5fc1b778525c687ac63f35ed87a59419081cea3e75c335e588b2d7fe21628169ec2e9d801420bb086724547b0979b5f3a0e8a76e217c6aa6483dc1c6c96a5bdfd281da145476de6d7108516dfb63cd357df33f0396c7c37021775d8eb02772c2c8186be6090348fe29fb21d32beda3c7978a583175e8745953719f71c55b342936d604d6eb5c04f629f43fc9ee375d45 -hostname=ubuntu-14-04-64 -keydate=2017-02-02 16:04:16.773856999 +0100 -keyid=64D89823 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/USR-DEVELOPER1-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/USR-DEVELOPER1-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs deleted file mode 100644 index 00b8f66cc3a..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/USR-DEVELOPER1-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs +++ /dev/null @@ -1,673 +0,0 @@ - - - - - 2019-09-13 01:53:05 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 82371SB PIIX3 IDE [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7010 - Contrôleur IDE PCI Bus Master Intel(R) 82371SB - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2934 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2934 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2935 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2935 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2936 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2936 - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 293a - Contrôleur hôte étendu Intel(R) gamme ICH9 USB2 - 293A - 8086 - - - Virtio console - Red Hat, Inc - Virtio console - 1af4:0003 - 1003 - PCI Simple Communications Controller - 1af4 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7000 - Pont Intel 82371SB PCI vers ISA - 8086 - - - QXL paravirtual graphic card - Red Hat, Inc. - QEMU Virtual Machine - 1af4:1100 - 0100 - Carte graphique VGA standard - 1b36 - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 1237 - Pont Intel 82441FX Processeur Pentium(R) Pro vers PCI - 8086 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2668 - Contrôleur audio haute définition - 8086 - - - RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - Realtek Semiconductor Co., Ltd. - QEMU Virtual Machine - 1af4:1100 - 8139 - Realtek RTL8139C+ carte réseau Fast Ethernet - 10ec - - - Virtio memory balloon - Red Hat, Inc - Virtio memory balloon - 1af4:0005 - 1002 - PCI Device - 1af4 - - - 1 - Intel64 Family 6 Model 61 Stepping 2 - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2000 - 2 - 1 - - - Disque fixe local - NTFS - 9276 - - C: - 18D50161 - 1 - 20377 - Local Disk - - - - Disque CD-ROM - D: - - Compact Disc - - - NTFS - 71 - - Réservé au système - 34D39252 - - 99 - Local Disk - Réservé au système - - - ComSpec - %SystemRoot%\system32\cmd.exe - - - FP_NO_HOST_CHECK - NO - - - OS - Windows_NT - - - Path - C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rudder\bin - - - PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC - - - PROCESSOR_ARCHITECTURE - AMD64 - - - TEMP - %SystemRoot%\TEMP - - - TMP - %SystemRoot%\TEMP - - - USERNAME - SYSTEM - - - windir - %SystemRoot% - - - PSModulePath - C:\Users\Administrateur\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Rudder\policy;C:\Program Files\Rudder\share\initial-policy - - - NUMBER_OF_PROCESSORS - 1 - - - PROCESSOR_LEVEL - 6 - - - PROCESSOR_IDENTIFIER - Intel64 Family 6 Model 61 Stepping 2, GenuineIntel - - - PROCESSOR_REVISION - 3d02 - - - windows_tracing_logfile - C:\BVTBin\Tests\installpackage\csilogfile.log - - - windows_tracing_flags - 3 - - - MSWin32-x64-multi-thread - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 5 - 192.168.210.8 - Administrateur - 2047 - usr-developer1 - Service Pack 1 - Microsoft Windows Server 2008 R2 Standard - 6.1.7601 - 1 - 2000 - Intel Core Processor (Broadwell) - C81E971B-A4D8-4718-AAB7-AD81D91EC1C3 - QEMU - 1036 - Utilisateur Windows - 00477-179-0000007-84578 - HMG6P-C7VGP-47GJ9-TWBD4-2YYCD - WORKGROUP - - - Étendu (101 ou 102 touches) - Clavier standard PS/2 - 0000040C - Étendu (101 ou 102 touches) - - - Périphérique d’entrée USB - Périphérique d’entrée USB - USB - (Périphériques système standard) - Périphérique d’entrée USB - 2 - - - Souris compatible PS/2 - Souris compatible PS/2 - PS/2 - Microsoft - Souris compatible PS/2 - 2 - - - S-1-5-32-574 - Accès DCOM service de certificats - - - S-1-5-32-544 - Administrateurs - - - S-1-5-32-552 - Duplicateurs - - - S-1-5-32-568 - IIS_IUSRS - - - S-1-5-32-546 - Invités - - - S-1-5-32-573 - Lecteurs des journaux d’événements - - - S-1-5-32-569 - Opérateurs de chiffrement - - - S-1-5-32-556 - Opérateurs de configuration réseau - - - S-1-5-32-551 - Opérateurs de sauvegarde - - - S-1-5-32-550 - Opérateurs d’impression - - - S-1-5-32-545 - Utilisateurs - - - S-1-5-32-547 - Utilisateurs avec pouvoir - - - S-1-5-32-558 - Utilisateurs de l’Analyseur de performances - - - S-1-5-32-555 - Utilisateurs du Bureau à distance - - - S-1-5-32-559 - Utilisateurs du journal de performances - - - S-1-5-32-562 - Utilisateurs du modèle COM distribué - - - S-1-5-21-1202468010-2263478365-3281567188-1000 - WinRMRemoteWMIUsers__ - - - S-1-5-21-1202468010-2263478365-3281567188-1001 - abrianceau - - - S-1-5-21-1202468010-2263478365-3281567188-500 - Administrateur - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - Realtek RTL8139C+ carte réseau Fast Ethernet - 192.168.210.8 - 192.168.210.1 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - Realtek RTL8139C+ carte réseau Fast Ethernet - fe80::e187:4859:86f6:2f53 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - 64-bit - 2019-08-27 17:30:42 - demo.normation.com - usr-developer1.demo.normation.com - Microsoft Windows Server 2008 R2 Standard - 2018-10-05 09:22:56 - MSWin32 - 6.1.7601 - Windows - Service Pack 1 - - Romance Standard Time - +0200 - - - - Port de communication (COM1) - Port de communication - Port de communication (COM1) - Serial - - - Microsoft XPS Document Writer - Microsoft XPS Document Writer - 0 - XPSPort: - winprint - 600x600 - 0 - Idle - - - - -----BEGIN CERTIFICATE----- -MIIFZzCCA0+gAwIBAgIJANMgATX3kL5pMA0GCSqGSIb3DQEBCwUAMFQxGDAWBgNV -BAMMD1dJTi1HTkdESFBWSFZUTjE4MDYGCgmSJomT8ixkAQEMKDU3MWFjNDM3LWNh -OGUtNDBmYy1iNjcxLWFjZmQxYzI4Y2QyMSIgZHUwHhcNMTgxMDA4MTMyODA0WhcN -MjgxMDA1MTMyODA0WjBUMRgwFgYDVQQDDA9XSU4tR05HREhQVkhWVE4xODA2BgoJ -kiaJk/IsZAEBDCg1NzFhYzQzNy1jYThlLTQwZmMtYjY3MS1hY2ZkMWMyOGNkMjEi -IGR1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0nAlLw8dFFewQz8P -/YT9+AlFYBre3BoPOSnKCn3lDF6SV2islftv5H5hoGeoomLMmDoC+U4pSDmYaZQo -cJMtWNOMpkNBzeMtAxxqprFFBtKfvx4t6i+RJoiR+x77i/PuWaXbivTM1uZEbT9U -26zsOqH7YJGo3Oxxg3VUNpxckb+TQU2lQo8FfMWV5d5uajaBoQmtvE72q2HMKVRy -UL3xWuqwcbNmLjqr8BLszHFYJaiajJHZFo3c9X+92+4zwWZR+GEK+EO3meUe3jvZ -t1VCc+71aBfZFH7xcD6yMWgTootEez3hWBO0pcV2kwiue75AywJmZTVwjGwVEx9U -aex0loR41VxxgVziEsFWb+nSGYXT0+tVxJ6G11+2kXx+w702iPNbUfYvdxqsJ2md -1BcMnnNqe1MyTiLNbaoQooKJRQv/xDi6yk7EdjE3GFBJobyipkPF1suGoCCR5fB/ -ACsowROY42yiVv8bVEAAJpCKVXStO/DQJx3hLOq5eCV3OAj2Dz0Nb8eUHJN6ekJW -38J4BVLsQdsk6YaeJfbZm2Mpp2Bbk5D8Joy1Rxu8WkQcw9idiXYFj6tNbr8PAimp -X68vKgMRFRw+nnQV8wXkltrDMQrBnk4L0QLfWNeLc4gpOEYz4Iikd3QBALCXtr1q -YnqUt1HD3SbcG23xhUI9VyqMk1sCAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNV -HQ8EBAMCArQwHQYDVR0OBBYEFHl96MpK9BzrmPoC3GR52neNBOeXMA0GCSqGSIb3 -DQEBCwUAA4ICAQBASD/91vIIRIeYADOcn3XvMOeseELpv6L5Wgc6+h+VnI4dfQRm -8m9vGP1nSR3sWX3WmeA+6kvUno7SXK+2/RvwMiYbta25on3NI9xJ/GW9O43+eEMV -+ak02HviPSg8bfw7TA01Fkxb24T/Gid6AtwY/D5M34aIleHcIENp77VC2YlM9OXb -KG85tvT5F6ebrfY0ZBeyw6dt5c/R1+e8pLxwIJTz0eYnM5x8h9NF/Ah1E1liwAHl -l3gm4Db61XbWegegnPEAWtJjyARN7FTrnvbH0QBHoMUxiq6/7GSDt2sUytVmM6aA -2/OVdVeavkYkkhqk6BFxkg7qT6+O37Fzzap2KqgAqE3ZaHw9d8QjYc6dmV4mmajp -sJN6GSxxTqiUyqkjZ39/AoF6hT9R6zH+/WEkQts1zCJjl1CDZbvjyhbN1baXZRqU -H8NmQf+m1/rpQIRwaa7abfTBsEXIdkJNWVO30vJYnXhlNFSvblYAY+1IuhjWY/VF -vn9iXrpxmtDFqEqedpvyeMuykaOlrJSD8zKiWldx22kTgl8U7iULnsJTj8rbOv6g -PwRam8llXICqihzvg5idIVLrTzBRouZgDSf3mE4nT7ESaI9TjG7kJgsxnC/e5QGp -Md6ZbKisdDVCyb8p5R2SzDIdD74i+wetC/beXXvHsWrOO7zW9PEIR+rTKQ== ------END CERTIFICATE----- - - dsc - autorite nt\systŠme - 192.168.210.2 - root - - - usr-developer1 - - 571ac437-ca8e-40fc-b671-acfd1c28cd21 - - - x86_64 - registry - FusionInventory-Agent - https://github.com/fusioninventory/fusioninventory-agent - 08/01/2019 - FusionInventory Agent 2.3.19 (x64 edition) - FusionInventory Team - C:\Program Files\FusionInventory-Agent\Uninstall.exe - 2.3.19 - - - x86_64 - registry - HxD_is1 - http://mh-nexus.de/hxd/ - 08/10/2018 - HxD Hex Editor 2.1 - Maël Hörz - "C:\Program Files\HxD\unins000.exe" - http://mh-nexus.de/ - 2.1 - 2 - 1 - - - x86_64 - Mozilla Maintenance Service - registry - MozillaMaintenanceService - 05/10/2018 - Mozilla Maintenance Service - Mozilla - "C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" - 62.0.3 - - - x86_64 - registry - {7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - 05/10/2018 - Microsoft .NET Framework 4.5.1 - Microsoft Corporation - MsiExec.exe /X{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - http://go.microsoft.com/fwlink/?LinkId=286133 - 4.5.50938 - - - x86_64 - registry - 21/11/2010 - Internet Explorer (64bit) - Microsoft Corporation - 8.0.7601.17514 - - - i586 - Mozilla Firefox 62.0.3 (x86 fr) - registry - Mozilla Firefox 62.0.3 (x86 fr) - https://support.mozilla.org - 05/10/2018 - Mozilla Firefox 62.0.3 (x86 fr) - Mozilla - "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" - https://www.mozilla.org - 62.0.3 - - - i586 - registry - Notepad++ - 05/10/2018 - Notepad++ (32-bit x86) - Notepad++ Team - C:\Program Files (x86)\Notepad++\uninstall.exe - http://notepad-plus-plus.org/ - 7.5.7 - 7 - 57 - - - i586 - registry - Rudder - 12/09/2019 - Rudder agent (DSC) - Normation - "C:\Program Files\Rudder\Uninstall.exe" - 5.0-1.12 - - - i586 - registry - {4594566F-2BCE-49AC-AC27-8847F164CB94} - 08/01/2019 - NXLog-CE - NXLog Ltd - MsiExec.exe /X{4594566F-2BCE-49AC-AC27-8847F164CB94} - 2.10.2102 - - - i586 - registry - {A6B7AF13-8494-409E-BF2C-062EEB4E5765} - 16/01/2019 - Wazuh Agent 3.7.2 - Wazuh, Inc. - MsiExec.exe /X{A6B7AF13-8494-409E-BF2C-062EEB4E5765} - 3.7.2 - - - i586 - registry - 21/11/2010 - Internet Explorer - Microsoft Corporation - 8.0.7601.17514 - - - x86_64 - Update - WMI - 05/10/2018 - KB2819745 - Update - - - x86_64 - Update - WMI - 05/10/2018 - KB2809215 - Update - - - x86_64 - Hotfix - WMI - 05/10/2018 - KB2872035 - Hotfix - - - x86_64 - Update - WMI - 21/11/2010 - KB976902 - Update - - - Périphérique High Definition Audio - Périphérique High Definition Audio - Microsoft - Périphérique High Definition Audio - - - Lecteur de disque - 21474 - 2.5+ - IDE - (Lecteurs de disque standard) - QEMU HARDDISK - \\.\PHYSICALDRIVE0 - 0 - 0 - 0 - QM00001 - QM00001 - Fixed hard disk media - - - Lecteur de CD-ROM - (Lecteurs de CD-ROM standard) - QEMU QEMU DVD-ROM ATA Device - QEMU QEMU DVD-ROM ATA Device - 0 - 0 - 1 - UNKNOWN - - - Périphérique d’entrée USB - Adomax Technology Co., Ltd - Périphérique d’entrée USB - 0001 - 42 - 0627 - - FusionInventory-Agent_v2.3.19 - - Provided by Teclib - Installer built with Appveyor on Sat Feb 18 09:34:43 UTC 2017 - FusionInventory - C:\Program Files\FusionInventory-Agent\perl\bin\perl.exe - v5.22.2 - fusioninventory-agent - 2.3.19 - - - Carte graphique VGA standard - - - WIN-GNGDHPVHVTN-2019-01-08-10-52-16 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/USR-DEVELOPER1-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/USR-DEVELOPER1-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs.sign deleted file mode 100644 index aadd1894f9b..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/USR-DEVELOPER1-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=5d8dacdd6c7e55c61ce0401c2884af09c5265f06732e3e0bb2eb18833223f0d7b84cc2a863efe8a13454acd0467d6feed38bf0fac14947350d502e301be88e3732f9acaff98f9f2bd1e983f2694079535b7090956a2f49a9f0d7a2f0896887a1aa19e309a7d37eb444008a045b4eee034f011f3086ff7846e4eacf5762b9e82f0aa60f65a158cc3e82919c5bd5c649aa85461177dc3cbdf8af41642acc1c34c425dc8a626a7df6e37ebde175ed43fed22b4ae40d7776c342c4b1eefd817365c949849eb9eb2d7e7440a98b1db872585e010cf84499f4fb463e1b374fbed084a4b7a494ca472a455b40d9fa3c33bea8c641eb87eab027b8072aa6f16d5b0c5a8418707bd2dfd94aa6a18434cbfd5514035714d24264b779f4951ea5e1e5f5e45e507b16aa8b7cea0f857873084b5e4e9cff8c1261d5fc76a9106f4b49a5ffbb4e67215ac87884f463327a613d1d090db790af76cd547b01e1754b1e44c06be62305a2f8b08a7580e2d9339088a0a47e29f202eeae32c0f4f68f7849e376e827f24fcbc8b076d01ce8fdae34513a5c7d072af1cb56f38a75a8f9c0b4bb1aabdb085510f1ce6f2e525c34c050e54060fea93452b1519bd1d6ea12ee664a8083b7ca883a42d29549647f302295517f706118397070546bb8ce633a4a1650c65124b7eda58b00c2f64a89182aea2c08cee015500f5e0ad44c29201704375efbf630e9 -hostname=USR-DEVELOPER1 -keydate=2018-10-08 15:28:04.2307734 +02:00 -keyid=2A8C935B diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/WIN-GNGDHPVHVTN-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/WIN-GNGDHPVHVTN-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs deleted file mode 100644 index 98e3d8b0793..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/WIN-GNGDHPVHVTN-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs +++ /dev/null @@ -1,678 +0,0 @@ - - - - - 2019-06-24 15:39:43 - - - 04/01/2014 - SeaBIOS - 1.10.2-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 82371SB PIIX3 IDE [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7010 - Contrôleur IDE PCI Bus Master Intel(R) 82371SB - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2934 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2934 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2935 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2935 - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2936 - Contrôleur hôte universel Intel(R) gamme ICH9 USB - 2936 - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 293a - Contrôleur hôte étendu Intel(R) gamme ICH9 USB2 - 293A - 8086 - - - Virtio console - Red Hat, Inc - Virtio console - 1af4:0003 - 1003 - Contrôleur PCI de communications simplifiées - 1af4 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 7000 - Pont Intel 82371SB PCI vers ISA - 8086 - - - QXL paravirtual graphic card - Red Hat, Inc. - QEMU Virtual Machine - 1af4:1100 - 0100 - Carte graphique VGA standard - 1b36 - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - Qemu virtual machine - 1af4:1100 - 1237 - Pont Intel 82441FX Processeur Pentium(R) Pro vers PCI - 8086 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Intel Corporation - QEMU Virtual Machine - 1af4:1100 - 2668 - Contrôleur audio haute définition - 8086 - - - RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - Realtek Semiconductor Co., Ltd. - QEMU Virtual Machine - 1af4:1100 - 8139 - Realtek RTL8139C+ carte réseau Fast Ethernet - 10ec - - - Virtio memory balloon - Red Hat, Inc - Virtio memory balloon - 1af4:0005 - 1002 - Périphérique PCI - 1af4 - - - 1 - Intel64 Family 6 Model 61 Stepping 2 - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2000 - 2 - 1 - - - Disque fixe local - NTFS - 9273 - - C: - 18D50161 - 1 - 20377 - Local Disk - - - - Disque CD-ROM - D: - - Compact Disc - - - NTFS - 71 - - Réservé au système - 34D39252 - - 99 - Local Disk - Réservé au système - - - ComSpec - %SystemRoot%\system32\cmd.exe - - - FP_NO_HOST_CHECK - NO - - - OS - Windows_NT - - - Path - C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rudder\bin - - - PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC - - - PROCESSOR_ARCHITECTURE - AMD64 - - - TEMP - %SystemRoot%\TEMP - - - TMP - %SystemRoot%\TEMP - - - USERNAME - SYSTEM - - - windir - %SystemRoot% - - - PSModulePath - C:\Users\Administrateur\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Rudder\policy;C:\Program Files\Rudder\share\initial-policy - - - NUMBER_OF_PROCESSORS - 1 - - - PROCESSOR_LEVEL - 6 - - - PROCESSOR_IDENTIFIER - Intel64 Family 6 Model 61 Stepping 2, GenuineIntel - - - PROCESSOR_REVISION - 3d02 - - - windows_tracing_logfile - C:\BVTBin\Tests\installpackage\csilogfile.log - - - windows_tracing_flags - 3 - - - MSWin32-x64-multi-thread - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 6 - 192.168.210.8 - Administrateur - 2047 - WIN-GNGDHPVHVTN - Service Pack 1 - Microsoft Windows Server 2008 R2 Standard - 6.1.7601 - 1 - 2000 - Intel Core Processor (Broadwell) - Administrateur - C81E971B-A4D8-4718-AAB7-AD81D91EC1C3 - QEMU - 1036 - Utilisateur Windows - 00477-179-0000007-84578 - HMG6P-C7VGP-47GJ9-TWBD4-2YYCD - WORKGROUP - - - Étendu (101 ou 102 touches) - Clavier standard PS/2 - 0000040C - Étendu (101 ou 102 touches) - - - Périphérique d’entrée USB - Périphérique d’entrée USB - USB - (Périphériques système standard) - Périphérique d’entrée USB - 2 - - - Souris compatible PS/2 - Souris compatible PS/2 - PS/2 - Microsoft - Souris compatible PS/2 - 2 - - - S-1-5-32-574 - Accès DCOM service de certificats - - - S-1-5-32-544 - Administrateurs - - - S-1-5-32-552 - Duplicateurs - - - S-1-5-32-568 - IIS_IUSRS - - - S-1-5-32-546 - Invités - - - S-1-5-32-573 - Lecteurs des journaux d’événements - - - S-1-5-32-569 - Opérateurs de chiffrement - - - S-1-5-32-556 - Opérateurs de configuration réseau - - - S-1-5-32-551 - Opérateurs de sauvegarde - - - S-1-5-32-550 - Opérateurs d’impression - - - S-1-5-32-545 - Utilisateurs - - - S-1-5-32-547 - Utilisateurs avec pouvoir - - - S-1-5-32-558 - Utilisateurs de l’Analyseur de performances - - - S-1-5-32-555 - Utilisateurs du Bureau à distance - - - S-1-5-32-559 - Utilisateurs du journal de performances - - - S-1-5-32-562 - Utilisateurs du modèle COM distribué - - - S-1-5-21-1202468010-2263478365-3281567188-1000 - WinRMRemoteWMIUsers__ - - - S-1-5-21-1202468010-2263478365-3281567188-1001 - abrianceau - - - S-1-5-21-1202468010-2263478365-3281567188-500 - Administrateur - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - Realtek RTL8139C+ carte réseau Fast Ethernet - 192.168.210.8 - 192.168.210.1 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - Realtek RTL8139C+ carte réseau Fast Ethernet - fe80::e187:4859:86f6:2f53 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:8F:B8:71 - 10EC:8139:1100:1AF4 - PCI\VEN_10EC&DEV_8139&SUBSYS_11001AF4&REV_20\3&13C0B0C5&0&18 - 100 - Up - ethernet - 0 - - - 64-bit - 2019-06-24 15:37:57 - demo.normation.com - WIN-GNGDHPVHVTN.demo.normation.com - Microsoft Windows Server 2008 R2 Standard - 2018-10-05 09:22:56 - MSWin32 - 6.1.7601 - Windows - Service Pack 1 - - Romance Standard Time - +0200 - - - - Port de communication (COM1) - Port de communication - Port de communication (COM1) - Serial - - - Microsoft XPS Document Writer - Microsoft XPS Document Writer - 0 - XPSPort: - winprint - 600x600 - 0 - Idle - - - - -----BEGIN CERTIFICATE----- -MIIFZzCCA0+gAwIBAgIJANMgATX3kL5pMA0GCSqGSIb3DQEBCwUAMFQxGDAWBgNV -BAMMD1dJTi1HTkdESFBWSFZUTjE4MDYGCgmSJomT8ixkAQEMKDU3MWFjNDM3LWNh -OGUtNDBmYy1iNjcxLWFjZmQxYzI4Y2QyMSIgZHUwHhcNMTgxMDA4MTMyODA0WhcN -MjgxMDA1MTMyODA0WjBUMRgwFgYDVQQDDA9XSU4tR05HREhQVkhWVE4xODA2BgoJ -kiaJk/IsZAEBDCg1NzFhYzQzNy1jYThlLTQwZmMtYjY3MS1hY2ZkMWMyOGNkMjEi -IGR1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0nAlLw8dFFewQz8P -/YT9+AlFYBre3BoPOSnKCn3lDF6SV2islftv5H5hoGeoomLMmDoC+U4pSDmYaZQo -cJMtWNOMpkNBzeMtAxxqprFFBtKfvx4t6i+RJoiR+x77i/PuWaXbivTM1uZEbT9U -26zsOqH7YJGo3Oxxg3VUNpxckb+TQU2lQo8FfMWV5d5uajaBoQmtvE72q2HMKVRy -UL3xWuqwcbNmLjqr8BLszHFYJaiajJHZFo3c9X+92+4zwWZR+GEK+EO3meUe3jvZ -t1VCc+71aBfZFH7xcD6yMWgTootEez3hWBO0pcV2kwiue75AywJmZTVwjGwVEx9U -aex0loR41VxxgVziEsFWb+nSGYXT0+tVxJ6G11+2kXx+w702iPNbUfYvdxqsJ2md -1BcMnnNqe1MyTiLNbaoQooKJRQv/xDi6yk7EdjE3GFBJobyipkPF1suGoCCR5fB/ -ACsowROY42yiVv8bVEAAJpCKVXStO/DQJx3hLOq5eCV3OAj2Dz0Nb8eUHJN6ekJW -38J4BVLsQdsk6YaeJfbZm2Mpp2Bbk5D8Joy1Rxu8WkQcw9idiXYFj6tNbr8PAimp -X68vKgMRFRw+nnQV8wXkltrDMQrBnk4L0QLfWNeLc4gpOEYz4Iikd3QBALCXtr1q -YnqUt1HD3SbcG23xhUI9VyqMk1sCAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNV -HQ8EBAMCArQwHQYDVR0OBBYEFHl96MpK9BzrmPoC3GR52neNBOeXMA0GCSqGSIb3 -DQEBCwUAA4ICAQBASD/91vIIRIeYADOcn3XvMOeseELpv6L5Wgc6+h+VnI4dfQRm -8m9vGP1nSR3sWX3WmeA+6kvUno7SXK+2/RvwMiYbta25on3NI9xJ/GW9O43+eEMV -+ak02HviPSg8bfw7TA01Fkxb24T/Gid6AtwY/D5M34aIleHcIENp77VC2YlM9OXb -KG85tvT5F6ebrfY0ZBeyw6dt5c/R1+e8pLxwIJTz0eYnM5x8h9NF/Ah1E1liwAHl -l3gm4Db61XbWegegnPEAWtJjyARN7FTrnvbH0QBHoMUxiq6/7GSDt2sUytVmM6aA -2/OVdVeavkYkkhqk6BFxkg7qT6+O37Fzzap2KqgAqE3ZaHw9d8QjYc6dmV4mmajp -sJN6GSxxTqiUyqkjZ39/AoF6hT9R6zH+/WEkQts1zCJjl1CDZbvjyhbN1baXZRqU -H8NmQf+m1/rpQIRwaa7abfTBsEXIdkJNWVO30vJYnXhlNFSvblYAY+1IuhjWY/VF -vn9iXrpxmtDFqEqedpvyeMuykaOlrJSD8zKiWldx22kTgl8U7iULnsJTj8rbOv6g -PwRam8llXICqihzvg5idIVLrTzBRouZgDSf3mE4nT7ESaI9TjG7kJgsxnC/e5QGp -Md6ZbKisdDVCyb8p5R2SzDIdD74i+wetC/beXXvHsWrOO7zW9PEIR+rTKQ== ------END CERTIFICATE----- - - dsc - win-gngdhpvhvtn\administrateur - 192.168.210.2 - root - - - WIN-GNGDHPVHVTN - - 571ac437-ca8e-40fc-b671-acfd1c28cd21 - - - x86_64 - registry - FusionInventory-Agent - https://github.com/fusioninventory/fusioninventory-agent - 08/01/2019 - FusionInventory Agent 2.3.19 (x64 edition) - FusionInventory Team - C:\Program Files\FusionInventory-Agent\Uninstall.exe - 2.3.19 - - - x86_64 - registry - HxD_is1 - http://mh-nexus.de/hxd/ - 08/10/2018 - HxD Hex Editor 2.1 - Maël Hörz - "C:\Program Files\HxD\unins000.exe" - http://mh-nexus.de/ - 2.1 - 2 - 1 - - - x86_64 - Mozilla Maintenance Service - registry - MozillaMaintenanceService - 05/10/2018 - Mozilla Maintenance Service - Mozilla - "C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" - 62.0.3 - - - x86_64 - registry - {7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - 05/10/2018 - Microsoft .NET Framework 4.5.1 - Microsoft Corporation - MsiExec.exe /X{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37} - http://go.microsoft.com/fwlink/?LinkId=286133 - 4.5.50938 - - - x86_64 - registry - 21/11/2010 - Internet Explorer (64bit) - Microsoft Corporation - 8.0.7601.17514 - - - i586 - Mozilla Firefox 62.0.3 (x86 fr) - registry - Mozilla Firefox 62.0.3 (x86 fr) - https://support.mozilla.org - 05/10/2018 - Mozilla Firefox 62.0.3 (x86 fr) - Mozilla - "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" - https://www.mozilla.org - 62.0.3 - - - i586 - registry - Notepad++ - 05/10/2018 - Notepad++ (32-bit x86) - Notepad++ Team - C:\Program Files (x86)\Notepad++\uninstall.exe - http://notepad-plus-plus.org/ - 7.5.7 - 7 - 57 - - - i586 - registry - Rudder - 22/06/2019 - Rudder agent (DSC) - Normation - "C:\Program Files\Rudder\Uninstall.exe" - 5.0-1.12 - - - i586 - registry - {4594566F-2BCE-49AC-AC27-8847F164CB94} - 08/01/2019 - NXLog-CE - NXLog Ltd - MsiExec.exe /X{4594566F-2BCE-49AC-AC27-8847F164CB94} - 2.10.2102 - - - i586 - registry - {A6B7AF13-8494-409E-BF2C-062EEB4E5765} - 16/01/2019 - Wazuh Agent 3.7.2 - Wazuh, Inc. - MsiExec.exe /X{A6B7AF13-8494-409E-BF2C-062EEB4E5765} - 3.7.2 - - - i586 - registry - 21/11/2010 - Internet Explorer - Microsoft Corporation - 8.0.7601.17514 - - - x86_64 - Update - WMI - 05/10/2018 - KB2819745 - Update - - - x86_64 - Update - WMI - 05/10/2018 - KB2809215 - Update - - - x86_64 - Hotfix - WMI - 05/10/2018 - KB2872035 - Hotfix - - - x86_64 - Update - WMI - 21/11/2010 - KB976902 - Update - - - Périphérique High Definition Audio - Périphérique High Definition Audio - Microsoft - Périphérique High Definition Audio - - - Lecteur de disque - 21474 - 2.5+ - IDE - (Lecteurs de disque standard) - QEMU HARDDISK - \\.\PHYSICALDRIVE0 - 0 - 0 - 0 - QM00001 - QM00001 - Fixed hard disk media - - - Lecteur de CD-ROM - (Lecteurs de CD-ROM standard) - QEMU QEMU DVD-ROM ATA Device - QEMU QEMU DVD-ROM ATA Device - 0 - 0 - 1 - UNKNOWN - - - Périphérique d’entrée USB - Adomax Technology Co., Ltd - Périphérique d’entrée USB - 0001 - 42 - 0627 - - - WIN-GNGDHPVHVTN - Administrateur - - FusionInventory-Agent_v2.3.19 - - Provided by Teclib - Installer built with Appveyor on Sat Feb 18 09:34:43 UTC 2017 - FusionInventory - C:\Program Files\FusionInventory-Agent\perl\bin\perl.exe - v5.22.2 - fusioninventory-agent - 2.3.19 - - - Carte graphique VGA standard - - - WIN-GNGDHPVHVTN-2019-01-08-10-52-16 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/WIN-GNGDHPVHVTN-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/WIN-GNGDHPVHVTN-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs.sign deleted file mode 100644 index f14313badcb..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/WIN-GNGDHPVHVTN-571ac437-ca8e-40fc-b671-acfd1c28cd21.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=150411976410c57ac7be723c72b4369df8349735fbe847cb881b4f0808b56c31202248e34cfa5bec542a9dafd30606a65ee5e03e50412ae1f1e99bd04d35a4989814dcb1e26e664b61e076e05f3330b2fa534a1b25cef11083a2ad511cdda8fff507a800323f891e27e781d087ddc9c4edb43fbc8fda08a07c78de56d8f89c1ae8d0f1616825f012c2e1b1449fb7c9942412a413f89ddb83c1de9b039dfee6350b90f177f69056c6648ea7c18d0ee963f9fedfe04505b85a54bb013c2351c706e77a611ff6e27b06a4ca8507c3aa8af30b44e43467e20053a4df6da8ec8ba2f1815e32daf9da4b6bdea3f64169f18240340020e3b74b37e6ccadc6cb3ba54e2ba4477a26b3babf8958a44c43dc0680278d010aed531fef8aa28166b1c5ddf98cfeec45f3d5d7f4cb9be0136da49525042f4f2c32d532254bd72b30312c1f8ee5997bcb0c4b95b7c43c00b9378960db923d9cb3f3d2973c00bf262575d5b42bb428b2aee3dfae62be872217a74da8ccb3625e91ee8ad5bd6407ad945fb280cc0490c00106a60b4d1f47a59ff80219b1660713b19ddacedda591d9f0eba345cea48ec40004dcbc0dd5840166f567bfaae6a3633365853525c5d03dd2b673c687acaf22d987b695c69eabf701cb37a8de948a7c228996de1a3222981454d6bc638f10d208b92ef1b93c1be7addaa5a4db4fbbf8b04e9e08df943ffb3c0acfb23ddd -hostname=WIN-GNGDHPVHVTN -keydate=2018-10-08 15:28:04.2307734 +02:00 -keyid=2A8C935B diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs deleted file mode 100644 index 47e72f6b579..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs +++ /dev/null @@ -1,4561 +0,0 @@ - - - - - 2019-09-13 05:00:25 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - QXL paravirtual graphic card - qxl - Red Hat, Inc. - QXL paravirtual graphic card - 0300 - 00:02.0 - 0100 - 04 - VGA compatible controller - 1b36 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:03.0 - 1000 - Ethernet controller - 1af4 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #1 - 0c03 - 00:04.0 - 2934 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #2 - 0c03 - 00:04.1 - 2935 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #3 - 0c03 - 00:04.2 - 2936 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - ehci - Intel Corporation - 82801I (ICH9 Family) USB2 EHCI Controller #1 - 0c03 - 00:04.7 - 293a - 03 - USB controller - 8086 - - - Virtio console - virtio - Red Hat, Inc - Virtio console - 0780 - 00:05.0 - 1003 - Communication controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:06.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 00ff - 00:07.0 - 1002 - Unclassified device - 1af4 - - - Virtio RNG - virtio - Red Hat, Inc - Virtio RNG - 00ff - 00:08.0 - 1005 - Unclassified device - 1af4 - - - i386 - 1 - Other - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2 - 1 - - - ext4 - 6862 - 697513fc-398c-4732-bd15-244fd4d490c0 - 8763 - / - /dev/mapper/prod--db--01--vg-root - - - ext2 - 186 - c99c525d-c8d1-4632-8ec1-b5ebe55b73ba - 235 - /boot - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - JOURNAL_STREAM - 8:12039 - - - INVOCATION_ID - c9897db8fe044f01b63ae3526a8cf4be - - - MANPATH - /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/rudder/share/man - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/rudder/cfengine-community/bin - - - PWD - /var/rudder - - - x86_64-linux-gnu-thread-multi - Other - 131071 - 192.168.210.1 - 192.168.210.1 - 1 - 192.168.210.4 - 996 - prod-db-01 - #1 SMP Debian 4.9.110-1 (2018-07-05) - Debian GNU/Linux 9.5 (stretch) - 4.9.0-7-amd64 - 1 - Intel Core Processor (Broadwell) - 1023 - E4ECA29E-6105-435E-B71B-9F23AC4B9F60 - QEMU - demo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - PC Speaker - PC Speaker - Keyboard - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - 24 - abrianceau - cdrom - - - 25 - abrianceau - floppy - - - 29 - abrianceau - audio - - - 30 - abrianceau - dip - - - 44 - abrianceau - video - - - 46 - abrianceau - plugdev - - - 108 - abrianceau - netdev - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /usr/sbin/nologin - - - /bin - 2 - bin - bin - /usr/sbin/nologin - - - /dev - 3 - sys - sys - /usr/sbin/nologin - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /usr/sbin/nologin - - - /var/cache/man - 6 - man - man - /usr/sbin/nologin - - - /var/spool/lpd - 7 - lp - lp - /usr/sbin/nologin - - - /var/mail - 8 - mail - mail - /usr/sbin/nologin - - - /var/spool/news - 9 - news - news - /usr/sbin/nologin - - - /var/spool/uucp - 10 - uucp - uucp - /usr/sbin/nologin - - - /bin - 13 - proxy - proxy - /usr/sbin/nologin - - - /var/www - 33 - www-data - www-data - /usr/sbin/nologin - - - /var/backups - 34 - backup - backup - /usr/sbin/nologin - - - /var/list - 38 - list - Mailing List Manager - /usr/sbin/nologin - - - /var/run/ircd - 39 - irc - ircd - /usr/sbin/nologin - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /usr/sbin/nologin - - - /nonexistent - 65534 - nobody - nobody - /usr/sbin/nologin - - - /run/systemd - 100 - systemd-timesync - systemd Time Synchronization,,, - /bin/false - - - /run/systemd/netif - 101 - systemd-network - systemd Network Management,,, - /bin/false - - - /run/systemd/resolve - 102 - systemd-resolve - systemd Resolver,,, - /bin/false - - - /run/systemd - 103 - systemd-bus-proxy - systemd Bus Proxy,,, - /bin/false - - - /nonexistent - 104 - _apt - - /bin/false - - - /var/run/dbus - 105 - messagebus - - /bin/false - - - /run/sshd - 106 - sshd - - /usr/sbin/nologin - - - /home/abrianceau - 1000 - abrianceau - abrianceau,,, - /bin/bash - - - /run/uuidd - 107 - uuidd - - /bin/false - - - /home/bpeccatte - 1001 - bpeccatte - - /bin/bash - - - /var/lib/snmp - 108 - Debian-snmp - - /bin/false - - - /home/ncharles - 1002 - ncharles - - /bin/bash - - - /nonexistent - 109 - mysql - MySQL Server,,, - /bin/false - - - /home/amousset - 1003 - amousset - - /bin/bash - - - /home/fdallidet - 1004 - fdallidet - - /bin/bash - - - /nonexistent - 110 - zabbix - - /bin/false - - - /home/farmand - 1005 - farmand - - /bin/bash - - - /home/jdoe - 1006 - jdoe - - /bin/bash - - - -wi-ao---- - root - gTuDBz-Hj2E-2tTT-BkcQ-MFpD-kU1A-Vv2xBX - 1 - 9403 - GvTicm-9zMy-rHr3-4ceu-7Crd-3VUP-MbY9N7 - - - -wi-ao---- - swap_1 - 1AvnUb-0rxP-UdRC-PCqZ-lUvf-Gvd9-CisAAe - 1 - 1073 - GvTicm-9zMy-rHr3-4ceu-7Crd-3VUP-MbY9N7 - - - 1024 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - ens3 - virtio_net - 192.168.210.4 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:44:5a:2a - -1 - Up - ethernet - 0 - - - ens3 - virtio_net - fe80::5054:ff:fe44:5a2a - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:44:5a:2a - -1 - Up - ethernet - 0 - - - x86_64 - 2019-08-27 17:29:38 - demo.normation.com - prod-db-01.demo.normation.com - Debian GNU/Linux 9.5 (stretch) - 007f0101 - linux - 4.9.0-7-amd64 - Debian - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2K3fjZ0LenrzMY2EqHnVUO/nAhOxLlOsWW3IC6EaU13mGTvV0MJGDtoT3sMtRSgEoNd50Qcl3L89t5DxMvyOMq3pvzsS+0QT2mB7kwytW3EqiO9JNkWVDht1y0JyvDdojI3D8TQOu4Q7nwpEzW19tIRS5UopKGsYLL7aslefBdz83PJF2B6OV6PHOdwlugquc97GydqSyZjyTtwKpdtTYOt7ZWA77GFLpY2iBmejK0xHIPPud6IffYRTFcSSXO24MmpCVbMwmptueXMt2a24TjjJRHWHldCmpsk07qZNwfn2SFzKKKa7LTuzrY4pFSn3qXCRMzn4q7fNGooz7mNPJ - - Europe/Paris - +0200 - - 9.5 - - - a-- - /dev/vda5 - lvm2 - 0 - 4 - 2498 - ofAD7f-JB57-HaBc-DNvc-VpT3-jPIE-21txf0 - 10477 - GvTicm-9zMy-rHr3-4ceu-7Crd-3VUP-MbY9N7 - - - /sbin/init - 0.0 - 0.6 - 1 - 2019-08-27 17:29 - ? - root - 57024 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-08-27 17:29 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/u2:0] - 0.0 - 0.0 - 6 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 7 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 8 - 2019-08-27 17:29 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 9 - 2019-08-27 17:29 - ? - root - 0 - - - [lru-add-drain] - 0.0 - 0.0 - 10 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 11 - 2019-08-27 17:29 - ? - root - 0 - - - [cpuhp/0] - 0.0 - 0.0 - 12 - 2019-08-27 17:29 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 13 - 2019-08-27 17:29 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 14 - 2019-08-27 17:29 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 15 - 2019-08-27 17:29 - ? - root - 0 - - - [oom_reaper] - 0.0 - 0.0 - 16 - 2019-08-27 17:29 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 17 - 2019-08-27 17:29 - ? - root - 0 - - - [kcompactd0] - 0.0 - 0.0 - 18 - 2019-08-27 17:29 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 19 - 2019-08-27 17:29 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 21 - 2019-08-27 17:29 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 22 - 2019-08-27 17:29 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 23 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 24 - 2019-08-27 17:29 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 25 - 2019-08-27 17:29 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 26 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdogd] - 0.0 - 0.0 - 27 - 2019-08-27 17:29 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 28 - 2019-08-27 17:29 - ? - root - 0 - - - [vmstat] - 0.0 - 0.0 - 29 - 2019-08-27 17:29 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 41 - 2019-08-27 17:29 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 42 - 2019-08-27 17:29 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 75 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 76 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 77 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 78 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 79 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 80 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 81 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 82 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 83 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/u2:1] - 0.0 - 0.0 - 84 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 85 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 86 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 87 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 88 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 118 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 122 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 123 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 126 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 127 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 165 - 2019-08-27 17:29 - ? - root - 0 - - - [jbd2/dm-0-8] - 0.0 - 0.0 - 169 - 2019-08-27 17:29 - ? - root - 0 - - - [ext4-rsv-conver] - 0.0 - 0.0 - 170 - 2019-08-27 17:29 - ? - root - 0 - - - /lib/systemd/systemd-journald - 0.0 - 0.5 - 195 - 2019-08-27 17:29 - ? - root - 56848 - - - [kauditd] - 0.0 - 0.0 - 207 - 2019-08-27 17:29 - ? - root - 0 - - - /sbin/lvmetad -f - 0.0 - 0.1 - 218 - 2019-08-27 17:29 - ? - root - 107200 - - - /lib/systemd/systemd-udevd - 0.0 - 0.3 - 228 - 2019-08-27 17:29 - ? - root - 45376 - - - [hwrng] - 0.0 - 0.0 - 265 - 2019-08-27 17:29 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 297 - 2019-08-27 17:29 - ? - root - 0 - - - [ext4-rsv-conver] - 0.0 - 0.0 - 354 - 2019-08-27 17:29 - ? - root - 0 - - - /lib/systemd/systemd-timesyncd - 0.0 - 0.4 - 383 - 2019-08-27 17:29 - ? - systemd+ - 127284 - - - /usr/sbin/cron -f - 0.0 - 0.2 - 398 - 2019-08-27 17:29 - ? - root - 29664 - - - /var/rudder/cfengine-community/bin/cf-execd --no-fork - 0.0 - 7.9 - 400 - 2019-08-27 17:29 - ? - root - 189996 - - - /lib/systemd/systemd-logind - 0.0 - 0.4 - 401 - 2019-08-27 17:29 - ? - root - 37980 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation - 0.0 - 0.3 - 402 - 2019-08-27 17:29 - ? - message+ - 45124 - - - /usr/sbin/rsyslogd -n - 0.0 - 0.4 - 410 - 2019-08-27 17:29 - ? - root - 254328 - - - /sbin/dhclient -4 -v -pf /run/dhclient.ens3.pid -lf /var/lib/dhcp/dhclient.ens3.leases -I -df /var/lib/dhcp/dhclient6.ens3.leases ens3 - 0.0 - 0.2 - 426 - 2019-08-27 17:29 - ? - root - 20472 - - - /var/rudder/cfengine-community/bin/cf-serverd --no-fork - 0.0 - 1.0 - 438 - 2019-08-27 17:29 - ? - root - 53316 - - - /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f - 0.0 - 1.1 - 444 - 2019-08-27 17:29 - ? - Debian-+ - 66704 - - - /sbin/agetty --noclear tty1 linux - 0.0 - 0.1 - 448 - 2019-08-27 17:29 - tty1 - root - 14536 - - - /usr/sbin/sshd -D - 0.0 - 0.6 - 464 - 2019-08-27 17:29 - ? - root - 69944 - - - /usr/sbin/mysqld - 0.0 - 7.4 - 622 - 2019-08-27 17:29 - ? - mysql - 653520 - - - [kworker/0:1] - 0.0 - 0.0 - 4223 - 2019-09-13 00:40 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.0 - 27856 - 2019-09-13 05:00 - ? - root - 4288 - - - /var/rudder/cfengine-community/bin/cf-agent - 57.5 - 2.1 - 27867 - 2019-09-13 05:00 - ? - root - 116276 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs - 0.0 - 0.1 - 27941 - 2019-09-13 05:00 - ? - root - 4288 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs - 31.0 - 4.9 - 27948 - 2019-09-13 05:00 - ? - root - 113632 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 27957 - 2019-09-13 05:00 - ? - root - 4288 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.2 - 27958 - 2019-09-13 05:00 - ? - root - 36636 - - - /usr/sbin/zabbix_agentd --foreground - 0.0 - 0.4 - 28613 - 2019-09-09 06:25 - ? - zabbix - 75344 - - - /usr/sbin/zabbix_agentd: collector [idle 1 sec] - 0.0 - 0.2 - 28618 - 2019-09-09 06:25 - ? - zabbix - 75344 - - - /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] - 0.0 - 0.0 - 28619 - 2019-09-09 06:25 - ? - zabbix - 75344 - - - /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] - 0.0 - 0.0 - 28620 - 2019-09-09 06:25 - ? - zabbix - 75344 - - - /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] - 0.0 - 0.0 - 28621 - 2019-09-09 06:25 - ? - zabbix - 75344 - - - /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec] - 0.0 - 0.0 - 28622 - 2019-09-09 06:25 - ? - zabbix - 75344 - - - [kworker/0:0] - 0.0 - 0.0 - 32001 - 2019-09-12 17:52 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEA5z3HUUUwviFh+GkylAecw3mvhiySI2bCxDru9XhsIWV+zA6xxtiG -RrnyCYgmCt2IOzHSa3sQDp85806x5M8eaNdHEidRYMwFRP0ot1HYFgw7+otqB0NT -7T5BjB1/H/azwbzzzc5D+32bvtkHBS+6YOzAyf1e96kfgQReOFM8P3tpGdPbMynv -8W+Hy8Yq+MecqCgv2fc3TX4CQtZk4hOVAA1KInvOLFw63cM9fdgMYJWQBeBE1X3F -vvl7Ai3OyFaZ4RULVF09VSVuILySvMGapMYUVNkiGvB6nDKQgikuU/qHfao5Jzju -zXqNHjnY4oVKeQGQ9RPr6SWzD58QIDwQn+4R6N+x2wsxs8Pw+vLihqZ2vylXNbTD -ryLH8YDsghzLIEzNiUXpz2ZecHjLFz0YXudfcimWxOiJkBaT+WnHlBzY3ePQU6pv -RnmyK37PVWDJt0ZSGtFtCCrK3z9MP5S6xXJvPvC39tIu/Imu7NePI2RLK4lFzNWt -xKekg8xyW8+KGw3jfgGd2yeIsqRWIs6Mvdm9XeKdEAx2QEbDQV4RuuKjSCNJr4tU -hrGJpI9EPvblfNhh3v4eIlfp2cyjz0vwh95LT93JcM9ca8qv8FbaT05VXqzyLGKf -Dc33uxRb/Qwz4aF+ZxHxs2yFWh6XzQKdwacj1kxK66W8Ir3zh/i/7f8CAwEAAQ== ------END RSA PUBLIC KEY----- - - root - prod-rudder - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - [{"cpu_vulnerabilities":{"meltdown":{"status":"mitigated","details":"PTI"},"spec_store_bypass":{"status":"vulnerable"},"spectre_v2":{"status":"mitigated","details":"Full generic retpoline"},"spectre_v1":{"status":"mitigated","details":"__user pointer sanitization"}}}] - prod-db-01.lab.rudder.io - - c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0 - - - all - 849 - deb - adduser - Debian - 3.115 - - - amd64 - 3539 - deb - apt - Debian - 1.4.8 - - - all - 368 - deb - apt-listchanges - Debian - 3.10 - - - amd64 - 1099 - deb - apt-utils - Debian - 1.4.8 - - - amd64 - 333 - deb - base-files - Debian - 9.9+deb9u5 - - - amd64 - 229 - deb - base-passwd - Debian - 3.5.43 - - - amd64 - 5798 - deb - bash - Debian - 4.4-5 - - - all - 1220 - deb - bash-completion - Debian - 1:2.1-4.3 - - - amd64 - 312 - deb - bind9-host - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 566 - deb - bsdmainutils - Debian - 9.0.12+nmu1 - - - amd64 - 238 - deb - bsdutils - Debian - 1:2.29.2-1+deb9u1 - - - amd64 - 729 - deb - busybox - Debian - 1:1.22.0-19+b3 - - - amd64 - 184 - deb - bzip2 - Debian - 1.0.6-8.1 - - - all - 434 - deb - ca-certificates - Debian - 20161130+nmu1+deb9u1 - - - all - 437 - deb - console-setup - Debian - 1.164 - - - all - 1218 - deb - console-setup-linux - Debian - 1.164 - - - amd64 - 15103 - deb - coreutils - Debian - 8.26-3 - - - amd64 - 720 - deb - cpio - Debian - 2.11+dfsg-6 - - - amd64 - 251 - deb - cron - Debian - 3.0pl1-128+deb9u1 - - - amd64 - 346 - deb - curl - Debian - 7.52.1-5+deb9u6 - - - amd64 - 204 - deb - dash - Debian - 0.5.8-2.4 - - - amd64 - 532 - deb - dbus - Debian - 1.10.26-0+deb9u1 - - - all - 558 - deb - debconf - Debian - 1.5.61 - - - all - 780 - deb - debconf-i18n - Debian - 1.5.61 - - - all - 118 - deb - debian-archive-keyring - Debian - 2017.5 - - - all - 1277 - deb - debian-faq - Debian - 8.1 - - - amd64 - 213 - deb - debianutils - Debian - 4.8.1.1 - - - all - 9 - deb - default-mysql-server - Debian - 1.0.2 - - - all - 402 - deb - dh-python - Debian - 2.20170125 - - - all - 757 - deb - dictionaries-common - Debian - 1.27.2 - - - amd64 - 1327 - deb - diffutils - Debian - 1:3.5-3 - - - amd64 - 90 - deb - discover - Debian - 2.1.2-7.1+deb9u1 - - - all - 4392 - deb - discover-data - Debian - 2.2013.01.11 - - - all - 15 - deb - distro-info-data - Debian - 0.36 - - - amd64 - 162 - deb - dmeventd - Debian - 2:1.02.137-2 - - - amd64 - 190 - deb - dmidecode - Debian - 3.0-4 - - - amd64 - 236 - deb - dmsetup - Debian - 2:1.02.137-2 - - - all - 166 - deb - doc-debian - Debian - 6.4 - - - amd64 - 6778 - deb - dpkg - Debian - 1.18.25 - - - amd64 - 449 - deb - e2fslibs - Debian - 1.43.4-2 - - - amd64 - 4022 - deb - e2fsprogs - Debian - 1.43.4-2 - - - all - 136 - deb - emacsen-common - Debian - 2.0.8 - - - amd64 - 96 - deb - file - Debian - 1:5.30-1+deb9u2 - - - amd64 - 1854 - deb - findutils - Debian - 4.6.0+git+20161106-2 - - - amd64 - 110 - deb - fortune-mod - Debian - 1:1.99.1-7+b1 - - - all - 172 - deb - fortunes-min - Debian - 1:1.99.1-7 - - - amd64 - 2899 - deb - galera-3 - Debian - 25.3.19-2 - - - amd64 - 2199 - deb - gawk - Debian - 1:4.1.4+dfsg-1 - - - amd64 - 209 - deb - gcc-6-base - Debian - 6.3.0-18+deb9u1 - - - all - 6841 - deb - geoip-database - Debian - 20170512-1 - - - amd64 - 718 - deb - gettext-base - Debian - 0.19.8.1-2 - - - amd64 - 2088 - deb - gnupg - Debian - 2.1.18-8~deb9u2 - - - amd64 - 1362 - deb - gnupg-agent - Debian - 2.1.18-8~deb9u2 - - - amd64 - 721 - deb - gpgv - Debian - 2.1.18-8~deb9u2 - - - amd64 - 1131 - deb - grep - Debian - 2.27-2 - - - amd64 - 3261 - deb - groff-base - Debian - 1.22.3-9 - - - amd64 - 14768 - deb - grub-common - Debian - 2.02~beta3-5 - - - amd64 - 561 - deb - grub-pc - Debian - 2.02~beta3-5 - - - amd64 - 2906 - deb - grub-pc-bin - Debian - 2.02~beta3-5 - - - amd64 - 1151 - deb - grub2-common - Debian - 2.02~beta3-5 - - - amd64 - 231 - deb - gzip - Debian - 1.6-5+b1 - - - amd64 - 237 - deb - hdparm - Debian - 9.51+ds-1 - - - amd64 - 47 - deb - hostname - Debian - 3.18+b1 - - - amd64 - 219 - deb - htop - Debian - 2.0.2-1 - - - all - 203 - deb - iamerican - Debian - 3.4.00-5 - - - all - 203 - deb - ibritish - Debian - 3.4.00-5 - - - all - 58 - deb - ienglish-common - Debian - 3.4.00-5 - - - amd64 - 195 - deb - ifupdown - Debian - 0.8.19 - - - amd64 - 19 - deb - init - Debian - 1.48 - - - all - 131 - deb - init-system-helpers - Debian - 1.48 - - - all - 105 - deb - initramfs-tools - Debian - 0.130 - - - all - 210 - deb - initramfs-tools-core - Debian - 0.130 - - - all - 43 - deb - installation-report - Debian - 2.62 - - - amd64 - 1757 - deb - iproute2 - Debian - 4.9.0-1+deb9u1 - - - amd64 - 1528 - deb - iptables - Debian - 1.6.0+snapshot20161117-6 - - - amd64 - 111 - deb - iputils-ping - Debian - 3:20161105-1 - - - amd64 - 649 - deb - isc-dhcp-client - Debian - 4.3.5-3+deb9u1 - - - amd64 - 141 - deb - isc-dhcp-common - Debian - 4.3.5-3+deb9u1 - - - all - 17495 - deb - iso-codes - Debian - 3.75-1 - - - amd64 - 356 - deb - ispell - Debian - 3.4.00-5 - - - amd64 - 1632 - deb - kbd - Debian - 2.0.3-2+b1 - - - all - 2451 - deb - keyboard-configuration - Debian - 1.164 - - - amd64 - 384 - deb - klibc-utils - Debian - 2.0.4-9 - - - amd64 - 220 - deb - kmod - Debian - 23-2 - - - all - 302 - deb - krb5-locales - Debian - 1.15-1+deb9u1 - - - amd64 - 18 - deb - laptop-detect - Debian - 0.13.8 - - - amd64 - 277 - deb - less - Debian - 481-2.1 - - - amd64 - 62 - deb - libacl1 - Debian - 2.2.52-3+b1 - - - amd64 - 30 - deb - libaio1 - Debian - 0.3.110-3 - - - amd64 - 140 - deb - libapparmor1 - Debian - 2.11.0-3+deb9u2 - - - amd64 - 470 - deb - libapt-inst2.0 - Debian - 1.4.8 - - - amd64 - 3056 - deb - libapt-pkg5.0 - Debian - 1.4.8 - - - amd64 - 106 - deb - libassuan0 - Debian - 2.4.3-2 - - - amd64 - 42 - deb - libattr1 - Debian - 1:2.4.47-2+b2 - - - all - 30 - deb - libaudit-common - Debian - 1:2.6.7-2 - - - amd64 - 150 - deb - libaudit1 - Debian - 1:2.6.7-2 - - - amd64 - 253 - deb - libbind9-140 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 367 - deb - libblkid1 - Debian - 2.29.2-1+deb9u1 - - - amd64 - 163 - deb - libbsd0 - Debian - 0.8.3-1 - - - amd64 - 96 - deb - libbz2-1.0 - Debian - 1.0.6-8.1 - - - amd64 - 3365 - deb - libc-bin - Debian - 2.24-11+deb9u3 - - - all - 4210 - deb - libc-l10n - Debian - 2.24-11+deb9u3 - - - amd64 - 10684 - deb - libc6 - Debian - 2.24-11+deb9u3 - - - amd64 - 43 - deb - libcap-ng0 - Debian - 0.7.7-3+b1 - - - amd64 - 47 - deb - libcap2 - Debian - 1:2.25-1 - - - all - 28 - deb - libcgi-fast-perl - Debian - 1:2.12-1 - - - all - 478 - deb - libcgi-pm-perl - Debian - 4.35-1 - - - all - 53 - deb - libclass-isa-perl - Debian - 0.36-5 - - - amd64 - 83 - deb - libcomerr2 - Debian - 1.43.4-2 - - - amd64 - 217 - deb - libcryptsetup4 - Debian - 2:1.7.3-4 - - - amd64 - 620 - deb - libcurl3 - Debian - 7.52.1-5+deb9u6 - - - amd64 - 616 - deb - libcurl3-gnutls - Debian - 7.52.1-5+deb9u6 - - - amd64 - 1814 - deb - libdb5.3 - Debian - 5.3.28-12+deb9u1 - - - amd64 - 266 - deb - libdbd-mysql-perl - Debian - 4.041-2 - - - amd64 - 2103 - deb - libdbi-perl - Debian - 1.636-1+b1 - - - amd64 - 448 - deb - libdbus-1-3 - Debian - 1.10.26-0+deb9u1 - - - amd64 - 67 - deb - libdebconfclient0 - Debian - 0.227 - - - amd64 - 72 - deb - libdevmapper-event1.02.1 - Debian - 2:1.02.137-2 - - - amd64 - 401 - deb - libdevmapper1.02.1 - Debian - 2:1.02.137-2 - - - amd64 - 257 - deb - libdiscover2 - Debian - 2.1.2-7.1+deb9u1 - - - amd64 - 2119 - deb - libdns-export162 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 4255 - deb - libdns162 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 241 - deb - libedit2 - Debian - 3.1-20160903-3 - - - amd64 - 934 - deb - libelf1 - Debian - 0.168-1 - - - all - 34 - deb - libencode-locale-perl - Debian - 1.05-1 - - - amd64 - 32 - deb - libestr0 - Debian - 0.1.10-2 - - - amd64 - 369 - deb - libexpat1 - Debian - 2.2.0-2+deb9u1 - - - amd64 - 62 - deb - libfastjson4 - Debian - 0.99.4-1 - - - amd64 - 96 - deb - libfcgi-perl - Debian - 0.78-2 - - - amd64 - 469 - deb - libfdisk1 - Debian - 2.29.2-1+deb9u1 - - - amd64 - 56 - deb - libffi6 - Debian - 3.2.1-6 - - - amd64 - 898 - deb - libfreetype6 - Debian - 2.6.3-3.2 - - - amd64 - 341 - deb - libfuse2 - Debian - 2.9.7-1+deb9u1 - - - amd64 - 108 - deb - libgcc1 - Debian - 1:6.3.0-18+deb9u1 - - - amd64 - 1266 - deb - libgcrypt20 - Debian - 1.7.6-2+deb9u3 - - - amd64 - 68 - deb - libgdbm3 - Debian - 1.8.3-14 - - - amd64 - 240 - deb - libgeoip1 - Debian - 1.6.9-4 - - - amd64 - 568 - deb - libgmp10 - Debian - 2:6.1.2+dfsg-1 - - - amd64 - 2429 - deb - libgnutls30 - Debian - 3.5.8-5+deb9u3 - - - amd64 - 572 - deb - libgpg-error0 - Debian - 1.26-2 - - - amd64 - 60 - deb - libgpm2 - Debian - 1.20.4-6.2+b1 - - - amd64 - 423 - deb - libgssapi-krb5-2 - Debian - 1.15-1+deb9u1 - - - amd64 - 232 - deb - libhogweed4 - Debian - 3.3-1+b2 - - - amd64 - 229 - deb - libhtml-parser-perl - Debian - 3.72-3 - - - all - 32 - deb - libhtml-tagset-perl - Debian - 3.20-3 - - - all - 190 - deb - libhtml-template-perl - Debian - 2.95-2 - - - all - 56 - deb - libhttp-date-perl - Debian - 6.02-1 - - - all - 184 - deb - libhttp-message-perl - Debian - 6.11-1 - - - amd64 - 30038 - deb - libicu57 - Debian - 57.1-6+deb9u2 - - - amd64 - 306 - deb - libidn11 - Debian - 1.33-1 - - - amd64 - 174 - deb - libidn2-0 - Debian - 0.16-1+deb9u1 - - - all - 40 - deb - libio-html-perl - Debian - 1.001-1 - - - amd64 - 110 - deb - libip4tc0 - Debian - 1.6.0+snapshot20161117-6 - - - amd64 - 114 - deb - libip6tc0 - Debian - 1.6.0+snapshot20161117-6 - - - amd64 - 88 - deb - libiptc0 - Debian - 1.6.0+snapshot20161117-6 - - - amd64 - 603 - deb - libisc-export160 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 1118 - deb - libisc160 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 234 - deb - libisccc140 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 351 - deb - libisccfg140 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 246 - deb - libjemalloc1 - Debian - 3.6.0-9.1 - - - amd64 - 311 - deb - libk5crypto3 - Debian - 1.15-1+deb9u1 - - - amd64 - 36 - deb - libkeyutils1 - Debian - 1.5.9-9 - - - amd64 - 105 - deb - libklibc - Debian - 2.0.4-9 - - - amd64 - 116 - deb - libkmod2 - Debian - 23-2 - - - amd64 - 1026 - deb - libkrb5-3 - Debian - 1.15-1+deb9u1 - - - amd64 - 159 - deb - libkrb5support0 - Debian - 1.15-1+deb9u1 - - - amd64 - 264 - deb - libksba8 - Debian - 1.3.5-2 - - - amd64 - 509 - deb - libldap-2.4-2 - Debian - 2.4.44+dfsg-5+deb9u2 - - - all - 108 - deb - libldap-common - Debian - 2.4.44+dfsg-5+deb9u2 - - - amd64 - 51 - deb - liblocale-gettext-perl - Debian - 1.07-3+b1 - - - amd64 - 45 - deb - liblockfile-bin - Debian - 1.14-1+b1 - - - amd64 - 38 - deb - liblogging-stdlog0 - Debian - 1.0.5-2+b2 - - - amd64 - 158 - deb - liblognorm5 - Debian - 2.0.1-1.1+b1 - - - amd64 - 1397 - deb - liblvm2app2.2 - Debian - 2.02.168-2 - - - amd64 - 1765 - deb - liblvm2cmd2.02 - Debian - 2.02.168-2 - - - all - 100 - deb - liblwp-mediatypes-perl - Debian - 6.02-1 - - - amd64 - 269 - deb - liblwres141 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u4 - - - amd64 - 93 - deb - liblz4-1 - Debian - 0.0~r131-2+b1 - - - amd64 - 339 - deb - liblzma5 - Debian - 5.2.2-1.2+b1 - - - amd64 - 4832 - deb - libmagic-mgc - Debian - 1:5.30-1+deb9u2 - - - amd64 - 214 - deb - libmagic1 - Debian - 1:5.30-1+deb9u2 - - - amd64 - 4255 - deb - libmariadbclient18 - Debian - 10.1.26-0+deb9u1 - - - amd64 - 46 - deb - libmnl0 - Debian - 1.0.4-2 - - - amd64 - 403 - deb - libmount1 - Debian - 2.29.2-1+deb9u1 - - - amd64 - 254 - deb - libmpdec2 - Debian - 2.4.2-1 - - - amd64 - 824 - deb - libmpfr4 - Debian - 3.1.5-1 - - - amd64 - 287 - deb - libncurses5 - Debian - 6.0+20161126-1+deb9u2 - - - amd64 - 347 - deb - libncursesw5 - Debian - 6.0+20161126-1+deb9u2 - - - amd64 - 134 - deb - libnetfilter-conntrack3 - Debian - 1.0.6-2 - - - amd64 - 358 - deb - libnettle6 - Debian - 3.3-1+b2 - - - amd64 - 372 - deb - libnewt0.52 - Debian - 0.52.19-1+b1 - - - amd64 - 61 - deb - libnfnetlink0 - Debian - 1.0.1-3 - - - amd64 - 201 - deb - libnghttp2-14 - Debian - 1.18.1-1 - - - amd64 - 43 - deb - libnpth0 - Debian - 1.3-1 - - - amd64 - 438 - deb - libp11-kit0 - Debian - 0.23.3-2 - - - amd64 - 874 - deb - libpam-modules - Debian - 1.1.8-3.6 - - - amd64 - 220 - deb - libpam-modules-bin - Debian - 1.1.8-3.6 - - - all - 1016 - deb - libpam-runtime - Debian - 1.1.8-3.6 - - - amd64 - 369 - deb - libpam-systemd - Debian - 232-25+deb9u4 - - - amd64 - 229 - deb - libpam0g - Debian - 1.1.8-3.6 - - - amd64 - 102 - deb - libpci3 - Debian - 1:3.5.2-1 - - - amd64 - 668 - deb - libpcre3 - Debian - 2:8.39-3 - - - amd64 - 20931 - deb - libperl5.24 - Debian - 5.24.1-3+deb9u4 - - - amd64 - 75 - deb - libpipeline1 - Debian - 1.4.1-2 - - - amd64 - 413 - deb - libpng16-16 - Debian - 1.6.28-1 - - - amd64 - 224 - deb - libpopt0 - Debian - 1.16-10+b2 - - - amd64 - 121 - deb - libprocps6 - Debian - 2:3.3.12-3+deb9u1 - - - amd64 - 73 - deb - libpsl5 - Debian - 0.17.0-3 - - - amd64 - 37 - deb - libpython-stdlib - Debian - 2.7.13-2 - - - amd64 - 2767 - deb - libpython2.7-minimal - Debian - 2.7.13-2+deb9u2 - - - amd64 - 8550 - deb - libpython2.7-stdlib - Debian - 2.7.13-2+deb9u2 - - - amd64 - 36 - deb - libpython3-stdlib - Debian - 3.5.3-1 - - - amd64 - 3747 - deb - libpython3.5-minimal - Debian - 3.5.3-1 - - - amd64 - 9896 - deb - libpython3.5-stdlib - Debian - 3.5.3-1 - - - amd64 - 339 - deb - libreadline5 - Debian - 5.2+dfsg-3+b1 - - - amd64 - 416 - deb - libreadline7 - Debian - 7.0-3 - - - amd64 - 1833 - deb - librecode0 - Debian - 3.6-23 - - - amd64 - 142 - deb - librtmp1 - Debian - 2.4+20151223.gitfa8646d.1-1+b1 - - - amd64 - 183 - deb - libsasl2-2 - Debian - 2.1.27~101-g0780600+dfsg-3 - - - amd64 - 259 - deb - libsasl2-modules - Debian - 2.1.27~101-g0780600+dfsg-3 - - - amd64 - 96 - deb - libsasl2-modules-db - Debian - 2.1.27~101-g0780600+dfsg-3 - - - amd64 - 293 - deb - libseccomp2 - Debian - 2.3.1-2.1 - - - amd64 - 209 - deb - libselinux1 - Debian - 2.6-3+b3 - - - all - 39 - deb - libsemanage-common - Debian - 2.6-2 - - - amd64 - 291 - deb - libsemanage1 - Debian - 2.6-2 - - - amd64 - 118 - deb - libsensors4 - Debian - 1:3.4.0-4 - - - amd64 - 653 - deb - libsepol1 - Debian - 2.6-2 - - - amd64 - 54 - deb - libsigsegv2 - Debian - 2.10-5 - - - amd64 - 1566 - deb - libslang2 - Debian - 2.3.1-5 - - - amd64 - 257 - deb - libsmartcols1 - Debian - 2.29.2-1+deb9u1 - - - all - 2129 - deb - libsnmp-base - Debian - 5.7.3+dfsg-1.7 - - - amd64 - 4772 - deb - libsnmp30 - Debian - 5.7.3+dfsg-1.7 - - - amd64 - 1162 - deb - libsqlite3-0 - Debian - 3.16.2-5+deb9u1 - - - amd64 - 95 - deb - libss2 - Debian - 1.43.4-2 - - - amd64 - 262 - deb - libssh2-1 - Debian - 1.7.0-1 - - - amd64 - 3547 - deb - libssl1.0.2 - Debian - 1.0.2l-2+deb9u3 - - - amd64 - 3525 - deb - libssl1.1 - Debian - 1.1.0f-3+deb9u2 - - - amd64 - 1998 - deb - libstdc++6 - Debian - 6.3.0-18+deb9u1 - - - all - 76 - deb - libswitch-perl - Debian - 2.17-2 - - - amd64 - 653 - deb - libsystemd0 - Debian - 232-25+deb9u4 - - - amd64 - 112 - deb - libtasn1-6 - Debian - 4.10-1.1+deb9u1 - - - amd64 - 71 - deb - libterm-readkey-perl - Debian - 2.37-1 - - - amd64 - 40 - deb - libtext-charwidth-perl - Debian - 0.04-7+b5 - - - amd64 - 50 - deb - libtext-iconv-perl - Debian - 1.7-5+b4 - - - all - 26 - deb - libtext-wrapi18n-perl - Debian - 0.06-7.1 - - - all - 96 - deb - libtimedate-perl - Debian - 2.3000-2 - - - amd64 - 478 - deb - libtinfo5 - Debian - 6.0+20161126-1+deb9u2 - - - amd64 - 223 - deb - libudev1 - Debian - 232-25+deb9u4 - - - amd64 - 1144 - deb - libunistring0 - Debian - 0.9.6+really0.9.3-0.1 - - - all - 228 - deb - liburi-perl - Debian - 1.71-1 - - - amd64 - 57 - deb - libusb-0.1-4 - Debian - 2:0.1.12-30 - - - amd64 - 134 - deb - libusb-1.0-0 - Debian - 2:1.0.21-1 - - - amd64 - 258 - deb - libustr-1.0-1 - Debian - 1.0.4-6 - - - amd64 - 107 - deb - libuuid1 - Debian - 2.29.2-1+deb9u1 - - - amd64 - 104 - deb - libwrap0 - Debian - 7.6.q-26 - - - amd64 - 1547 - deb - libx11-6 - Debian - 2:1.6.4-3 - - - all - 1665 - deb - libx11-data - Debian - 2:1.6.4-3 - - - amd64 - 2563 - deb - libxapian30 - Debian - 1.4.3-2+deb9u1 - - - amd64 - 61 - deb - libxau6 - Debian - 1:1.0.8-1 - - - amd64 - 283 - deb - libxcb1 - Debian - 1.12-1 - - - amd64 - 53 - deb - libxdmcp6 - Debian - 1:1.1.2-3 - - - amd64 - 124 - deb - libxext6 - Debian - 2:1.3.3-1+b2 - - - all - 64 - deb - libxml-treepp-perl - Debian - 0.43-1 - - - amd64 - 2130 - deb - libxml2 - Debian - 2.9.4+dfsg1-2.2+deb9u2 - - - amd64 - 50 - deb - libxmuu1 - Debian - 2:1.1.2-2 - - - amd64 - 135 - deb - libxtables12 - Debian - 1.6.0+snapshot20161117-6 - - - amd64 - 140 - deb - libyaml-0-2 - Debian - 0.1.7-2 - - - all - 61 - deb - linux-base - Debian - 4.5 - - - amd64 - 188332 - deb - linux-image-4.9.0-7-amd64 - Debian - 4.9.110-1 - - - amd64 - 16 - deb - linux-image-amd64 - Debian - 4.9+80+deb9u5 - - - all - 9245 - deb - locales - Debian - 2.24-11+deb9u3 - - - amd64 - 2747 - deb - login - Debian - 1:4.4-4.1 - - - amd64 - 132 - deb - logrotate - Debian - 3.11.0-0.1 - - - all - 49 - deb - lsb-base - Debian - 9.20161125 - - - all - 62 - deb - lsb-release - Debian - 9.20161125 - - - amd64 - 440 - deb - lsof - Debian - 4.89+dfsg-0.1 - - - amd64 - 2366 - deb - lvm2 - Debian - 2.02.168-2 - - - amd64 - 2231 - deb - man-db - Debian - 2.7.6.1-2 - - - all - 1422 - deb - manpages - Debian - 4.10-2 - - - amd64 - 45347 - deb - mariadb-client-10.1 - Debian - 10.1.26-0+deb9u1 - - - amd64 - 24430 - deb - mariadb-client-core-10.1 - Debian - 10.1.26-0+deb9u1 - - - all - 70 - deb - mariadb-common - Debian - 10.1.26-0+deb9u1 - - - amd64 - 76605 - deb - mariadb-server-10.1 - Debian - 10.1.26-0+deb9u1 - - - amd64 - 25988 - deb - mariadb-server-core-10.1 - Debian - 10.1.26-0+deb9u1 - - - amd64 - 183 - deb - mawk - Debian - 1.3.3-17+b3 - - - all - 110 - deb - mime-support - Debian - 3.60 - - - amd64 - 444 - deb - mount - Debian - 2.29.2-1+deb9u1 - - - amd64 - 220 - deb - multiarch-support - Debian - 2.24-11+deb9u3 - - - all - 28 - deb - mysql-common - Debian - 5.8+1.0.2 - - - amd64 - 8 - deb - mysql-server - Debian - 5.5.9999+default - - - amd64 - 2043 - deb - nano - Debian - 2.7.4-1 - - - all - 340 - deb - ncurses-base - Debian - 6.0+20161126-1+deb9u2 - - - amd64 - 536 - deb - ncurses-bin - Debian - 6.0+20161126-1+deb9u2 - - - all - 4025 - deb - ncurses-term - Debian - 6.0+20161126-1+deb9u2 - - - amd64 - 940 - deb - net-tools - Debian - 1.60+git20161116.90da8a0-1 - - - all - 44 - deb - netbase - Debian - 5.4 - - - amd64 - 137 - deb - netcat-traditional - Debian - 1.10-41+b1 - - - amd64 - 4106 - deb - openssh-client - Debian - 1:7.4p1-10+deb9u3 - - - amd64 - 883 - deb - openssh-server - Debian - 1:7.4p1-10+deb9u3 - - - amd64 - 106 - deb - openssh-sftp-server - Debian - 1:7.4p1-10+deb9u3 - - - amd64 - 1244 - deb - openssl - Debian - 1.1.0f-3+deb9u2 - - - amd64 - 100 - deb - os-prober - Debian - 1.76~deb9u1 - - - amd64 - 2478 - deb - passwd - Debian - 1:4.4-4.1 - - - amd64 - 1220 - deb - pciutils - Debian - 1:3.5.2-1 - - - amd64 - 651 - deb - perl - Debian - 5.24.1-3+deb9u4 - - - amd64 - 7551 - deb - perl-base - Debian - 5.24.1-3+deb9u4 - - - all - 17630 - deb - perl-modules-5.24 - Debian - 5.24.1-3+deb9u4 - - - amd64 - 99 - deb - pinentry-curses - Debian - 1.0.0-2 - - - all - 51 - deb - powermgmt-base - Debian - 1.31+nmu1 - - - amd64 - 690 - deb - procps - Debian - 2:3.3.12-3+deb9u1 - - - amd64 - 589 - deb - psmisc - Debian - 22.21-2.1+b2 - - - amd64 - 648 - deb - python - Debian - 2.7.13-2 - - - all - 623 - deb - python-apt-common - Debian - 1.4.0~beta3 - - - amd64 - 145 - deb - python-minimal - Debian - 2.7.13-2 - - - amd64 - 359 - deb - python2.7 - Debian - 2.7.13-2+deb9u2 - - - amd64 - 3816 - deb - python2.7-minimal - Debian - 2.7.13-2+deb9u2 - - - amd64 - 67 - deb - python3 - Debian - 3.5.3-1 - - - amd64 - 631 - deb - python3-apt - Debian - 1.4.0~beta3 - - - all - 496 - deb - python3-chardet - Debian - 2.3.0-2 - - - all - 257 - deb - python3-debian - Debian - 0.1.30 - - - all - 35 - deb - python3-debianbts - Debian - 2.6.1 - - - all - 117 - deb - python3-httplib2 - Debian - 0.9.2+dfsg-1 - - - amd64 - 120 - deb - python3-minimal - Debian - 3.5.3-1 - - - all - 511 - deb - python3-pkg-resources - Debian - 33.1.1-1 - - - amd64 - 172 - deb - python3-pycurl - Debian - 7.43.0-2 - - - all - 180 - deb - python3-pysimplesoap - Debian - 1.16-2 - - - all - 357 - deb - python3-reportbug - Debian - 7.1.7+deb9u2 - - - all - 507 - deb - python3-requests - Debian - 2.12.4-1 - - - all - 56 - deb - python3-six - Debian - 1.10.0-3 - - - all - 302 - deb - python3-urllib3 - Debian - 1.19.1-1 - - - amd64 - 319 - deb - python3.5 - Debian - 3.5.3-1 - - - amd64 - 9411 - deb - python3.5-minimal - Debian - 3.5.3-1 - - - all - 89 - deb - readline-common - Debian - 7.0-3 - - - all - 36 - deb - rename - Debian - 0.20-4 - - - all - 257 - deb - reportbug - Debian - 7.1.7+deb9u2 - - - amd64 - 687 - deb - rsync - Debian - 3.1.2-1+deb9u1 - - - amd64 - 1507 - deb - rsyslog - Debian - 8.24.0-1 - - - amd64 - 44586 - deb - rudder-agent - Debian - 5.0.8-stretch0 - - - amd64 - 799 - deb - sed - Debian - 4.4-1 - - - all - 62 - deb - sensible-utils - Debian - 0.0.9+deb9u1 - - - all - 69 - deb - sgml-base - Debian - 1.29 - - - amd64 - 136 - deb - snmpd - Debian - 5.7.3+dfsg-1.7 - - - amd64 - 1006 - deb - socat - Debian - 1.7.3.1-2+deb9u1 - - - amd64 - 3035 - deb - sudo - Debian - 1.8.19p1-2.1 - - - amd64 - 9292 - deb - systemd - Debian - 232-25+deb9u4 - - - amd64 - 106 - deb - systemd-sysv - Debian - 232-25+deb9u4 - - - amd64 - 110 - deb - sysvinit-utils - Debian - 2.88dsf-59.9 - - - amd64 - 2770 - deb - tar - Debian - 1.29b-1.1 - - - all - 6 - deb - task-english - Debian - 3.39 - - - all - 6 - deb - task-ssh-server - Debian - 3.39 - - - all - 374 - deb - tasksel - Debian - 3.39 - - - all - 213 - deb - tasksel-data - Debian - 3.39 - - - amd64 - 92 - deb - tcpd - Debian - 7.6.q-26 - - - amd64 - 157 - deb - telnet - Debian - 0.17-41 - - - amd64 - 154 - deb - traceroute - Debian - 1:2.1.0-2 - - - all - 3013 - deb - tzdata - Debian - 2018e-0+deb9u1 - - - all - 191 - deb - ucf - Debian - 3.0036 - - - amd64 - 7064 - deb - udev - Debian - 232-25+deb9u4 - - - amd64 - 721 - deb - usbutils - Debian - 1:007-4+b1 - - - amd64 - 3558 - deb - util-linux - Debian - 2.29.2-1+deb9u1 - - - all - 6169 - deb - util-linux-locales - Debian - 2.29.2-1+deb9u1 - - - amd64 - 156 - deb - uuid-runtime - Debian - 2.29.2-1+deb9u1 - - - amd64 - 2374 - deb - vim - Debian - 2:8.0.0197-4+deb9u1 - - - all - 275 - deb - vim-common - Debian - 2:8.0.0197-4+deb9u1 - - - all - 27580 - deb - vim-runtime - Debian - 2:8.0.0197-4+deb9u1 - - - amd64 - 1067 - deb - vim-tiny - Debian - 2:8.0.0197-4+deb9u1 - - - all - 990 - deb - wamerican - Debian - 7.1-1 - - - amd64 - 2747 - deb - wget - Debian - 1.18-5+deb9u2 - - - amd64 - 69 - deb - whiptail - Debian - 0.52.19-1+b1 - - - amd64 - 82 - deb - xauth - Debian - 1:1.0.9-1+b2 - - - all - 5774 - deb - xkb-data - Debian - 2.19-1+deb9u1 - - - all - 117 - deb - xml-core - Debian - 0.17 - - - amd64 - 167 - deb - xxd - Debian - 2:8.0.0197-4+deb9u1 - - - amd64 - 516 - deb - xz-utils - Debian - 5.2.2-1.2+b1 - - - amd64 - 829 - deb - zabbix-agent - Debian - 1:3.0.7+dfsg-3 - - - amd64 - 156 - deb - zlib1g - Debian - 1:1.2.8.dfsg-5 - - - Virtual - 10485 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.24.1 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - wz--n- - 0 - 2 - 1 - 10477 - 4.19 - prod-db-01-vg - GvTicm-9zMy-rHr3-4ceu-7Crd-3VUP-MbY9N7 - - - prod-db-01-2018-08-06-18-13-42 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs.sign deleted file mode 100644 index eb0221793f6..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-db-01-c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=8c152beb9fe463cb63b334d45d612b780a9e593a7ee0243c8c19068108c80f596796f59416a7b64d22a311d68bf53806716dcae07ae0d8f6c8570217c3dfcfbc5160acdc8686fd6901fb9318d6a978cd9e3131ff1b05e81c5e4b06b868365a87fd74902e3d496a91ea84d90880e1aef7170114ac906b674b34288a1894134e37b1753b794317a05b9ad6f1b76978803eb0827a5c69f6a6a11ec20350b90bc7e9f705c82ae64eb2dfa477cacf41a0fdbd67f1555e443c940cddf215b4b63cb88c41faee8e905c0c96bc5a7605829c1582a3c77b917f0a7df4558dbf17d768d81bb455a66158040f06568a665d1b08e298d15a5ab71017e4a109b1e759699fefe1f138cd7fd445f2a53ad4325cafb4470515dce5710ce603ff5fb43f74e0e5dd79a7cb1c90d10931227014ac2748c4dfd264c95b6249e40e0466d9cbdefb8fd238fd0135696208b89e5341ad8bf83716a183812814b36b8a1eacebe0b3d1853db32f9664ca53876a353fef2c519aee331e05661217704c25792b97f74aeaa38b937b8c8adfa85b68c7fe42a665ba379974985184c14c170f106d875e6f26fec204e62f91fcc8bada483c7012d03a9d51f4df8529e907efdcf4b5734424371950871c8cec634a0577b5933b9cf2b0629de9974053f564c16e32265200e17224cda89b04a095fb41b9deddb531fe8e3456167181961b0cc6d4a5cf040c6fd3632a96 -hostname=prod-db-01 -keydate=2018-08-06 18:13:35.191442701 +0200 -keyid=F8BFEDFF diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs deleted file mode 100644 index 58048da9b96..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs +++ /dev/null @@ -1,5705 +0,0 @@ - - - - - 2019-09-12 05:54:20 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - QXL paravirtual graphic card - qxl - Red Hat, Inc. - QXL paravirtual graphic card - 0300 - 00:02.0 - 0100 - 04 - VGA compatible controller - 1b36 - - - Virtio network device - virtio - Red Hat, Inc - Virtio network device - 0200 - 00:03.0 - 1000 - Ethernet controller - 1af4 - - - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - snd_hda_intel - Intel Corporation - 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - 0403 - 00:04.0 - 2668 - 01 - Audio device - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #1 - 0c03 - 00:05.0 - 2934 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #2 - 0c03 - 00:05.1 - 2935 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #3 - 0c03 - 00:05.2 - 2936 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - ehci - Intel Corporation - 82801I (ICH9 Family) USB2 EHCI Controller #1 - 0c03 - 00:05.7 - 293a - 03 - USB controller - 8086 - - - Virtio console - virtio - Red Hat, Inc - Virtio console - 0780 - 00:06.0 - 1003 - Communication controller - 1af4 - - - Virtio block device - virtio - Red Hat, Inc - Virtio block device - 0100 - 00:07.0 - 1001 - SCSI storage controller - 1af4 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 00ff - 00:08.0 - 1002 - Unclassified device - 1af4 - - - Virtio RNG - virtio - Red Hat, Inc - Virtio RNG - 00ff - 00:09.0 - 1005 - Unclassified device - 1af4 - - - i386 - 1 - Other - 6 - E3 06 05 00 FF FB 8B 0F - Intel - 94 - Intel Core Processor (Skylake, IBRS) - 3 - 1 - - - ext4 - 14622 - 60b5a571-aa02-46c5-9927-8c8feccb013c - 18014 - / - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - MANPATH - /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/rudder/share/man - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/rudder/cfengine-community/bin - - - VERBOSITY_OPTION - - - - INVOCATION_ID - aea654d0049f440bbecbccdf3e29a62e - - - PWD - /var/rudder - - - JOURNAL_STREAM - 9:56848 - - - x86_64-linux-gnu-thread-multi - Other - 131071 - Wed Sep 11 10:31 - 192.168.210.1 - 192.168.210.1 - 192.168.210.9 - farmand - 1995 - prod-itop-01 - #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) - Debian GNU/Linux 10 (buster) - 4.19.0-5-amd64 - 1 - Intel Core Processor (Skylake, IBRS) - 2044 - 38fd7b40-bce8-4364-8e34-b21a9844db78 - QEMU - demo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - PC Speaker - PC Speaker - Keyboard - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - 24 - fdallidet - cdrom - - - 25 - fdallidet - floppy - - - 27 - bpeccatte - sudo - - - 29 - fdallidet - audio - - - 30 - fdallidet - dip - - - 44 - fdallidet - video - - - 46 - fdallidet - plugdev - - - 108 - fdallidet - netdev - - - /root - 0 - root - root - /bin/bash - - - /usr/sbin - 1 - daemon - daemon - /usr/sbin/nologin - - - /bin - 2 - bin - bin - /usr/sbin/nologin - - - /dev - 3 - sys - sys - /usr/sbin/nologin - - - /bin - 4 - sync - sync - /bin/sync - - - /usr/games - 5 - games - games - /usr/sbin/nologin - - - /var/cache/man - 6 - man - man - /usr/sbin/nologin - - - /var/spool/lpd - 7 - lp - lp - /usr/sbin/nologin - - - /var/mail - 8 - mail - mail - /usr/sbin/nologin - - - /var/spool/news - 9 - news - news - /usr/sbin/nologin - - - /var/spool/uucp - 10 - uucp - uucp - /usr/sbin/nologin - - - /bin - 13 - proxy - proxy - /usr/sbin/nologin - - - /var/www - 33 - www-data - www-data - /usr/sbin/nologin - - - /var/backups - 34 - backup - backup - /usr/sbin/nologin - - - /var/list - 38 - list - Mailing List Manager - /usr/sbin/nologin - - - /var/run/ircd - 39 - irc - ircd - /usr/sbin/nologin - - - /var/lib/gnats - 41 - gnats - Gnats Bug-Reporting System (admin) - /usr/sbin/nologin - - - /nonexistent - 65534 - nobody - nobody - /usr/sbin/nologin - - - /run/systemd - 100 - systemd-timesync - systemd Time Synchronization,,, - /bin/false - - - /run/systemd/netif - 101 - systemd-network - systemd Network Management,,, - /bin/false - - - /run/systemd/resolve - 102 - systemd-resolve - systemd Resolver,,, - /bin/false - - - /nonexistent - 104 - _apt - - /bin/false - - - /var/spool/exim4 - 105 - Debian-exim - - /bin/false - - - /var/run/dbus - 106 - messagebus - - /bin/false - - - /run/sshd - 107 - sshd - - /usr/sbin/nologin - - - /home/fdallidet - 1000 - fdallidet - fdallidet,,, - /bin/bash - - - /nonexistent - 108 - mysql - MySQL Server,,, - /bin/false - - - /run/uuidd - 109 - uuidd - - /bin/false - - - /home/bpeccatte - 1001 - bpeccatte - ,,, - /bin/bash - - - /home/amousset - 1002 - amousset - - /bin/bash - - - /home/farmand - 1003 - farmand - - /bin/bash - - - /home/abrianceau - 1004 - abrianceau - - /bin/bash - - - /home/ncharles - 1005 - ncharles - - /bin/bash - - - /home/jdoe - 1006 - jdoe - - /bin/bash - - - /var/lib/snmp - 103 - Debian-snmp - - /bin/false - - - / - 999 - systemd-coredump - systemd Core Dumper - /sbin/nologin - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - ens3 - virtio_net - 192.168.210.9 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:52:8b:c6 - -1 - Up - ethernet - 0 - - - ens3 - virtio_net - fe80::5054:ff:fe52:8bc6 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:52:8b:c6 - -1 - Up - ethernet - 0 - - - x86_64 - 2019-08-28 05:25:45 - demo.normation.com - prod-itop-01.demo.normation.com - Debian GNU/Linux 10 (buster) - 007f0101 - linux - 4.19.0-5-amd64 - Debian - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINmy1OI9dq93jXGRMAjiKvfekRmouZVbQHwtPm4BhaIp - - America/New_York - -0400 - - 10 - - - /sbin/init - 0.0 - 0.5 - 1 - 2019-08-28 05:25 - ? - root - 170576 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-08-28 05:25 - ? - root - 0 - - - [rcu_gp] - 0.0 - 0.0 - 3 - 2019-08-28 05:25 - ? - root - 0 - - - [rcu_par_gp] - 0.0 - 0.0 - 4 - 2019-08-28 05:25 - ? - root - 0 - - - [kworker/0:0H-kblockd] - 0.0 - 0.0 - 6 - 2019-08-28 05:25 - ? - root - 0 - - - [mm_percpu_wq] - 0.0 - 0.0 - 8 - 2019-08-28 05:25 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 9 - 2019-08-28 05:25 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 10 - 2019-08-28 05:25 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 11 - 2019-08-28 05:25 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 12 - 2019-08-28 05:25 - ? - root - 0 - - - [cpuhp/0] - 0.0 - 0.0 - 14 - 2019-08-28 05:25 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 15 - 2019-08-28 05:25 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 16 - 2019-08-28 05:25 - ? - root - 0 - - - [kauditd] - 0.0 - 0.0 - 17 - 2019-08-28 05:25 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 18 - 2019-08-28 05:25 - ? - root - 0 - - - [oom_reaper] - 0.0 - 0.0 - 19 - 2019-08-28 05:25 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 20 - 2019-08-28 05:25 - ? - root - 0 - - - [kcompactd0] - 0.0 - 0.0 - 21 - 2019-08-28 05:25 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 22 - 2019-08-28 05:25 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 23 - 2019-08-28 05:25 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 24 - 2019-08-28 05:25 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 25 - 2019-08-28 05:25 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 26 - 2019-08-28 05:25 - ? - root - 0 - - - [edac-poller] - 0.0 - 0.0 - 27 - 2019-08-28 05:25 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 28 - 2019-08-28 05:25 - ? - root - 0 - - - [watchdogd] - 0.0 - 0.0 - 29 - 2019-08-28 05:25 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 30 - 2019-08-28 05:25 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 48 - 2019-08-28 05:25 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 49 - 2019-08-28 05:25 - ? - root - 0 - - - [kstrp] - 0.0 - 0.0 - 59 - 2019-08-28 05:25 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 109 - 2019-08-28 05:25 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 112 - 2019-08-28 05:25 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 114 - 2019-08-28 05:25 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 115 - 2019-08-28 05:25 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 117 - 2019-08-28 05:25 - ? - root - 0 - - - [kworker/0:1H-kblockd] - 0.0 - 0.0 - 156 - 2019-08-28 05:25 - ? - root - 0 - - - [kworker/u3:0] - 0.0 - 0.0 - 181 - 2019-08-28 05:25 - ? - root - 0 - - - [jbd2/vda1-8] - 0.0 - 0.0 - 183 - 2019-08-28 05:25 - ? - root - 0 - - - [ext4-rsv-conver] - 0.0 - 0.0 - 184 - 2019-08-28 05:25 - ? - root - 0 - - - [hwrng] - 0.0 - 0.0 - 195 - 2019-08-28 05:25 - ? - root - 0 - - - /lib/systemd/systemd-journald - 0.0 - 0.5 - 215 - 2019-08-28 05:25 - ? - root - 43504 - - - /lib/systemd/systemd-udevd - 0.0 - 0.2 - 237 - 2019-08-28 05:25 - ? - root - 21916 - - - /lib/systemd/systemd-timesyncd - 0.0 - 0.3 - 263 - 2019-08-28 05:25 - ? - systemd+ - 93080 - - - [ttm_swap] - 0.0 - 0.0 - 290 - 2019-08-28 05:25 - ? - root - 0 - - - /usr/sbin/rsyslogd -n -iNONE - 0.0 - 0.2 - 314 - 2019-08-28 05:25 - ? - root - 225960 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only - 0.0 - 0.2 - 315 - 2019-08-28 05:25 - ? - message+ - 9104 - - - /lib/systemd/systemd-logind - 0.0 - 0.3 - 316 - 2019-08-28 05:25 - ? - root - 19516 - - - /usr/sbin/cron -f - 0.0 - 0.1 - 319 - 2019-08-28 05:25 - ? - root - 8504 - - - /sbin/dhclient -4 -v -i -pf /run/dhclient.ens3.pid -lf /var/lib/dhcp/dhclient.ens3.leases -I -df /var/lib/dhcp/dhclient6.ens3.leases ens3 - 0.0 - 0.2 - 343 - 2019-08-28 05:25 - ? - root - 9492 - - - /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pid - 0.0 - 0.7 - 370 - 2019-08-28 05:25 - ? - Debian-+ - 43844 - - - /sbin/agetty -o -p -- \u --noclear tty1 linux - 0.0 - 0.0 - 377 - 2019-08-28 05:25 - tty1 - root - 5612 - - - /usr/sbin/sshd -D - 0.0 - 0.3 - 393 - 2019-08-28 05:25 - ? - root - 15856 - - - /usr/sbin/exim4 -bd -q30m - 0.0 - 0.2 - 820 - 2019-08-28 05:25 - ? - Debian-+ - 20056 - - - [kworker/0:2] - 0.0 - 0.0 - 5149 - 2019-09-12 05:39 - ? - root - 0 - - - [kworker/0:1-events] - 0.0 - 0.0 - 5810 - 2019-09-12 05:49 - ? - root - 0 - - - /usr/sbin/apache2 -k start - 0.0 - 1.5 - 5950 - 2019-08-28 05:29 - ? - root - 235656 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.0 - 6236 - 2019-09-12 05:54 - ? - root - 2388 - - - /var/rudder/cfengine-community/bin/cf-agent - 121 - 1.0 - 6247 - 2019-09-12 05:54 - ? - root - 60856 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs - 0.0 - 0.0 - 6321 - 2019-09-12 05:54 - ? - root - 2388 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs - 0.0 - 2.5 - 6328 - 2019-09-12 05:54 - ? - root - 55064 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 6337 - 2019-09-12 05:54 - ? - root - 2388 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.1 - 6338 - 2019-09-12 05:54 - ? - root - 7640 - - - /usr/sbin/mysqld - 0.0 - 6.1 - 6607 - 2019-08-28 05:31 - ? - mysql - 1256084 - - - /usr/sbin/apache2 -k start - 0.0 - 0.6 - 7057 - 2019-09-12 00:00 - ? - www-data - 235964 - - - /usr/sbin/apache2 -k start - 0.0 - 0.6 - 7058 - 2019-09-12 00:00 - ? - www-data - 235964 - - - /usr/sbin/apache2 -k start - 0.0 - 0.6 - 7059 - 2019-09-12 00:00 - ? - www-data - 235964 - - - /usr/sbin/apache2 -k start - 0.0 - 0.6 - 7060 - 2019-09-12 00:00 - ? - www-data - 235964 - - - /usr/sbin/apache2 -k start - 0.0 - 0.6 - 7061 - 2019-09-12 00:00 - ? - www-data - 235964 - - - /var/rudder/cfengine-community/bin/cf-serverd --no-fork --inform - 0.0 - 0.5 - 9728 - 2019-08-28 05:51 - ? - root - 17180 - - - /var/rudder/cfengine-community/bin/cf-execd --no-fork - 0.0 - 0.5 - 9730 - 2019-08-28 05:51 - ? - root - 84644 - - - [kworker/u2:2-flush-254:0] - 0.0 - 0.0 - 11478 - 2019-08-28 05:51 - ? - root - 0 - - - [kworker/u2:0] - 0.0 - 0.0 - 29876 - 2019-09-04 21:39 - ? - root - 0 - - - [kworker/0:0-cgroup_destroy] - 0.0 - 0.0 - 32047 - 2019-09-11 10:32 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEAo5eTZztlAQiXRuiqrvv04tyqejE3Pp+J7b8OCyCiPNTMkDaUhRQY -ZShiJQRF4iP3/pqi/DBNDcYOpoAvHCf7arMfXURRIC4KrkvqotjhN2L4T6nuGKSD -41RknpuuYJBG2f86jTW3ra6AFzzTanmUxVctfnjespo3+krON5O/tZhA2T0kr0ey -IwyUJT5q3Vn9XoNCVfAET0EOvW8+5NeeYnsPQm1bmHPonZM1JNeEEwCNZm6d1ayl -IG/hOQKgYaYfsmBTGKYnwHpq0DNhe0/WJBAyG6zWhOuhRxgqLIvtNUFbteTvl0yp -SdVw2kdYvTYrXp6zFWAV54AFohBEueIhyWmAO0xHtRhZaZuLz0KA09wtIi0W/EXO -6jJO+YKoqAwLlW755sAA4X2PBQ/5FY7MohUgUKVwVYjT5PN9u95k/7yCo+ElgLWz -b/58TEop4s9Xr4faHqC341iU9FrBMpDc6QlD0I24zWWdDlcSev70j5GI1QIZjT9W -SzyKY6FMh8Q0X4yUa5ymGpTyDWUub94gu7T+vN0fs7IQeOLdO+pCmhNP3bM7g+rp -UuD2L9fjcDTCVEvulC5Neal4vqvL77bAr3Vd3HAbbJz4YN6lg3jiMY9p948XeN82 -dYE2cPcqXT5xLRItB4qbNBmrJ9h7pkGMcIdwoU+R2NdWa0NjrpR4O4MCAwEAAQ== ------END RSA PUBLIC KEY----- - - root - rudder.lab.rudder.io - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - [{"cpu_vulnerabilities":{"meltdown":{"details":"PTI","status":"mitigated"},"spectre_v2":{"status":"mitigated","details":"Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling"},"spec_store_bypass":{"status":"vulnerable"},"mds":{"details":"Clear CPU buffers attempted, no microcode; SMT Host state unknown","status":"vulnerable"},"l1tf":{"details":"PTE Inversion; VMX: conditional cache flushes, SMT disabled","status":"mitigated"},"spectre_v1":{"status":"mitigated","details":"usercopy/swapgs barriers and __user pointer sanitization"}}}] - prod-itop-01.lab.rudder.io - - c8e2c037-78df-4530-8f3a-db7d337517c9 - - - all - 849 - deb - adduser - Debian - 3.118 - - - amd64 - 599 - deb - apache2 - Debian - 2.4.38-3+deb10u1 - - - amd64 - 4788 - deb - apache2-bin - Debian - 2.4.38-3+deb10u1 - - - all - 892 - deb - apache2-data - Debian - 2.4.38-3+deb10u1 - - - amd64 - 450 - deb - apache2-utils - Debian - 2.4.38-3+deb10u1 - - - amd64 - 1833 - deb - apparmor - Debian - 2.13.2-10 - - - amd64 - 4064 - deb - apt - Debian - 1.8.2 - - - all - 399 - deb - apt-listchanges - Debian - 3.19 - - - amd64 - 1127 - deb - apt-utils - Debian - 1.8.2 - - - amd64 - 340 - deb - base-files - Debian - 10.3 - - - amd64 - 232 - deb - base-passwd - Debian - 3.5.46 - - - amd64 - 6439 - deb - bash - Debian - 5.0-4 - - - all - 1364 - deb - bash-completion - Debian - 1:2.8-6 - - - amd64 - 359 - deb - bind9-host - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 587 - deb - bsdmainutils - Debian - 11.1.2+b1 - - - amd64 - 293 - deb - bsdutils - Debian - 1:2.33.1-0.1 - - - amd64 - 768 - deb - busybox - Debian - 1:1.30.1-4 - - - amd64 - 196 - deb - bzip2 - Debian - 1.0.6-9.1 - - - all - 384 - deb - ca-certificates - Debian - 20190110 - - - all - 420 - deb - console-setup - Debian - 1.191 - - - all - 1758 - deb - console-setup-linux - Debian - 1.191 - - - amd64 - 15719 - deb - coreutils - Debian - 8.30-3 - - - amd64 - 1005 - deb - cpio - Debian - 2.12+dfsg-9 - - - amd64 - 263 - deb - cron - Debian - 3.0pl1-134 - - - amd64 - 400 - deb - curl - Debian - 7.64.0-4 - - - amd64 - 212 - deb - dash - Debian - 0.5.10.2-5 - - - amd64 - 598 - deb - dbus - Debian - 1.12.16-1 - - - all - 520 - deb - debconf - Debian - 1.5.71 - - - all - 781 - deb - debconf-i18n - Debian - 1.5.71 - - - all - 198 - deb - debian-archive-keyring - Debian - 2019.1 - - - all - 1277 - deb - debian-faq - Debian - 9.0 - - - amd64 - 226 - deb - debianutils - Debian - 4.8.6.1 - - - all - 758 - deb - dictionaries-common - Debian - 1.28.1 - - - amd64 - 1574 - deb - diffutils - Debian - 1:3.7-3 - - - amd64 - 1241 - deb - dirmngr - Debian - 2.2.12-1 - - - amd64 - 90 - deb - discover - Debian - 2.1.2-8 - - - all - 4392 - deb - discover-data - Debian - 2.2013.01.11 - - - all - 15 - deb - distro-info-data - Debian - 0.41 - - - amd64 - 201 - deb - dmidecode - Debian - 3.2-1 - - - amd64 - 253 - deb - dmsetup - Debian - 2:1.02.155-3 - - - amd64 - 720 - deb - dnsutils - Debian - 1:9.11.5.P4+dfsg-5.1 - - - all - 166 - deb - doc-debian - Debian - 6.4 - - - amd64 - 6693 - deb - dpkg - Debian - 1.19.7 - - - amd64 - 70 - deb - e2fslibs - Debian - 1.44.5-1 - - - amd64 - 1412 - deb - e2fsprogs - Debian - 1.44.5-1 - - - all - 2891 - deb - e2fsprogs-l10n - Debian - 1.44.5-1 - - - amd64 - 229 - deb - eject - Debian - 2.1.5+deb1+cvs20081104-13.2 - - - all - 62 - deb - emacsen-common - Debian - 3.0.4 - - - all - 27 - deb - exim4 - Debian - 4.92-8+deb10u1 - - - amd64 - 1624 - deb - exim4-base - Debian - 4.92-8+deb10u1 - - - all - 985 - deb - exim4-config - Debian - 4.92-8+deb10u1 - - - amd64 - 1332 - deb - exim4-daemon-light - Debian - 4.92-8+deb10u1 - - - amd64 - 483 - deb - fdisk - Debian - 2.33.1-0.1 - - - amd64 - 103 - deb - file - Debian - 1:5.35-4 - - - amd64 - 1938 - deb - findutils - Debian - 4.6.0+git+20190209-2 - - - all - 68 - deb - firmware-linux-free - Debian - 3.4 - - - amd64 - 575 - deb - fontconfig - Debian - 2.13.1-2 - - - all - 441 - deb - fontconfig-config - Debian - 2.13.1-2 - - - all - 2954 - deb - fonts-dejavu-core - Debian - 2.37-1 - - - all - 2093 - deb - fonts-liberation - Debian - 1:1.07.4-9 - - - amd64 - 2820 - deb - galera-3 - Debian - 25.3.25-2 - - - amd64 - 2412 - deb - gawk - Debian - 1:4.2.1+dfsg-1 - - - amd64 - 209 - deb - gcc-6-base - Debian - 6.3.0-18+deb9u1 - - - amd64 - 248 - deb - gcc-8-base - Debian - 8.3.0-6 - - - all - 7925 - deb - geoip-database - Debian - 20181108-1 - - - amd64 - 744 - deb - gettext-base - Debian - 0.19.8.1-9 - - - all - 724 - deb - gnupg - Debian - 2.2.12-1 - - - all - 396 - deb - gnupg-agent - Debian - 2.2.12-1 - - - all - 4602 - deb - gnupg-l10n - Debian - 2.2.12-1 - - - amd64 - 1845 - deb - gnupg-utils - Debian - 2.2.12-1 - - - amd64 - 1461 - deb - gpg - Debian - 2.2.12-1 - - - amd64 - 1233 - deb - gpg-agent - Debian - 2.2.12-1 - - - amd64 - 613 - deb - gpg-wks-client - Debian - 2.2.12-1 - - - amd64 - 597 - deb - gpg-wks-server - Debian - 2.2.12-1 - - - amd64 - 750 - deb - gpgconf - Debian - 2.2.12-1 - - - amd64 - 907 - deb - gpgsm - Debian - 2.2.12-1 - - - amd64 - 837 - deb - gpgv - Debian - 2.2.12-1 - - - amd64 - 2675 - deb - graphviz - Debian - 2.40.1-6 - - - amd64 - 1014 - deb - grep - Debian - 3.3-1 - - - amd64 - 3603 - deb - groff-base - Debian - 1.22.4-3 - - - amd64 - 16153 - deb - grub-common - Debian - 2.02+dfsg1-20 - - - amd64 - 532 - deb - grub-pc - Debian - 2.02+dfsg1-20 - - - amd64 - 2920 - deb - grub-pc-bin - Debian - 2.02+dfsg1-20 - - - amd64 - 1180 - deb - grub2-common - Debian - 2.02+dfsg1-20 - - - amd64 - 44116 - deb - guile-2.2-libs - Debian - 2.2.4+1-2 - - - amd64 - 243 - deb - gzip - Debian - 1.9-3 - - - amd64 - 255 - deb - hdparm - Debian - 9.58+ds-1 - - - all - 190 - deb - host - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u5 - - - amd64 - 54 - deb - hostname - Debian - 3.21 - - - all - 201 - deb - iamerican - Debian - 3.4.00-6 - - - all - 202 - deb - ibritish - Debian - 3.4.00-6 - - - all - 58 - deb - ienglish-common - Debian - 3.4.00-6 - - - amd64 - 217 - deb - ifupdown - Debian - 0.8.35 - - - amd64 - 21 - deb - init - Debian - 1.56+nmu1 - - - all - 133 - deb - init-system-helpers - Debian - 1.56+nmu1 - - - all - 111 - deb - initramfs-tools - Debian - 0.133 - - - all - 208 - deb - initramfs-tools-core - Debian - 0.133 - - - all - 44 - deb - installation-report - Debian - 2.71 - - - amd64 - 2585 - deb - iproute2 - Debian - 4.20.0-2 - - - amd64 - 2569 - deb - iptables - Debian - 1.8.2-4 - - - amd64 - 100 - deb - iputils-ping - Debian - 3:20180629-2 - - - amd64 - 673 - deb - isc-dhcp-client - Debian - 4.4.1-2 - - - amd64 - 148 - deb - isc-dhcp-common - Debian - 4.4.1-2 - - - all - 19418 - deb - iso-codes - Debian - 4.2-1 - - - amd64 - 353 - deb - ispell - Debian - 3.4.00-6+b1 - - - amd64 - 26 - deb - itop - Debian - 0.1-4+b2 - - - amd64 - 101 - deb - jq - Debian - 1.5+dfsg-2+b1 - - - amd64 - 1725 - deb - kbd - Debian - 2.0.4-4 - - - all - 2901 - deb - keyboard-configuration - Debian - 1.191 - - - amd64 - 538 - deb - klibc-utils - Debian - 2.0.6-1 - - - amd64 - 237 - deb - kmod - Debian - 26-1 - - - all - 304 - deb - krb5-locales - Debian - 1.17-3 - - - all - 20 - deb - laptop-detect - Debian - 0.16 - - - amd64 - 281 - deb - less - Debian - 487-0.1+b1 - - - amd64 - 70 - deb - libacl1 - Debian - 2.2.53-4 - - - amd64 - 35 - deb - libaio1 - Debian - 0.3.112-3 - - - all - 16 - deb - libapache2-mod-php - Debian - 2:7.3+69 - - - amd64 - 4610 - deb - libapache2-mod-php7.3 - Debian - 7.3.4-2 - - - amd64 - 164 - deb - libapparmor1 - Debian - 2.13.2-10 - - - amd64 - 278 - deb - libapr1 - Debian - 1.6.5-1+b1 - - - amd64 - 285 - deb - libaprutil1 - Debian - 1.6.1-4 - - - amd64 - 53 - deb - libaprutil1-dbd-sqlite3 - Debian - 1.6.1-4 - - - amd64 - 45 - deb - libaprutil1-ldap - Debian - 1.6.1-4 - - - amd64 - 489 - deb - libapt-inst2.0 - Debian - 1.8.2 - - - amd64 - 3243 - deb - libapt-pkg5.0 - Debian - 1.8.2 - - - amd64 - 57 - deb - libargon2-1 - Debian - 0~20171227-0.2 - - - amd64 - 121 - deb - libassuan0 - Debian - 2.5.2-1 - - - amd64 - 55 - deb - libattr1 - Debian - 1:2.4.48-4 - - - all - 33 - deb - libaudit-common - Debian - 1:2.8.4-3 - - - amd64 - 161 - deb - libaudit1 - Debian - 1:2.8.4-3 - - - amd64 - 302 - deb - libbind9-161 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 428 - deb - libblkid1 - Debian - 2.33.1-0.1 - - - amd64 - 775 - deb - libbrotli1 - Debian - 1.0.7-2 - - - amd64 - 191 - deb - libbsd0 - Debian - 0.9.1-2 - - - amd64 - 104 - deb - libbz2-1.0 - Debian - 1.0.6-9.1 - - - amd64 - 3493 - deb - libc-bin - Debian - 2.28-10 - - - all - 4228 - deb - libc-l10n - Debian - 2.28-10 - - - amd64 - 12337 - deb - libc6 - Debian - 2.28-10 - - - amd64 - 1407 - deb - libcairo2 - Debian - 1.16.0-4 - - - amd64 - 47 - deb - libcap-ng0 - Debian - 0.7.9-2 - - - amd64 - 52 - deb - libcap2 - Debian - 1:2.25-2 - - - amd64 - 111 - deb - libcap2-bin - Debian - 1:2.25-2 - - - amd64 - 96 - deb - libcdt5 - Debian - 2.40.1-6 - - - all - 28 - deb - libcgi-fast-perl - Debian - 1:2.13-1 - - - all - 479 - deb - libcgi-pm-perl - Debian - 4.40-1 - - - amd64 - 166 - deb - libcgraph6 - Debian - 2.40.1-6 - - - all - 26 - deb - libclass-isa-perl - Debian - 0.36-6 - - - amd64 - 92 - deb - libcom-err2 - Debian - 1.44.5-1 - - - amd64 - 70 - deb - libcomerr2 - Debian - 1.44.5-1 - - - all - 129 - deb - libconfig-inifiles-perl - Debian - 3.000001-1 - - - amd64 - 429 - deb - libcryptsetup12 - Debian - 2:2.1.0-5 - - - amd64 - 217 - deb - libcryptsetup4 - Debian - 2:1.7.3-4 - - - amd64 - 689 - deb - libcurl3-gnutls - Debian - 7.64.0-4 - - - amd64 - 697 - deb - libcurl4 - Debian - 7.64.0-4 - - - amd64 - 78 - deb - libdatrie1 - Debian - 0.2.12-2 - - - amd64 - 1802 - deb - libdb5.3 - Debian - 5.3.28+dfsg1-0.5 - - - amd64 - 283 - deb - libdbd-mysql-perl - Debian - 4.050-2 - - - amd64 - 2123 - deb - libdbi-perl - Debian - 1.642-1+b1 - - - amd64 - 473 - deb - libdbus-1-3 - Debian - 1.12.16-1 - - - amd64 - 72 - deb - libdebconfclient0 - Debian - 0.249 - - - amd64 - 473 - deb - libdevmapper1.02.1 - Debian - 2:1.02.155-3 - - - amd64 - 257 - deb - libdiscover2 - Debian - 2.1.2-8 - - - amd64 - 2416 - deb - libdns-export1104 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 2119 - deb - libdns-export162 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u5 - - - amd64 - 4945 - deb - libdns1104 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 250 - deb - libedit2 - Debian - 3.1-20181209-1 - - - amd64 - 117 - deb - libefiboot1 - Debian - 37-2 - - - amd64 - 162 - deb - libefivar1 - Debian - 37-2 - - - amd64 - 932 - deb - libelf1 - Debian - 0.176-1.1 - - - all - 34 - deb - libencode-locale-perl - Debian - 1.05-1 - - - amd64 - 32 - deb - libestr0 - Debian - 0.1.10-2.1 - - - amd64 - 427 - deb - libevent-2.1-6 - Debian - 2.1.8-stable-4 - - - amd64 - 519 - deb - libexpat1 - Debian - 2.2.6-2 - - - amd64 - 476 - deb - libext2fs2 - Debian - 1.44.5-1 - - - amd64 - 68 - deb - libfastjson4 - Debian - 0.99.8-2 - - - amd64 - 105 - deb - libfcgi-perl - Debian - 0.78-2+b3 - - - amd64 - 546 - deb - libfdisk1 - Debian - 2.33.1-0.1 - - - amd64 - 56 - deb - libffi6 - Debian - 3.2.1-9 - - - amd64 - 525 - deb - libfontconfig1 - Debian - 2.13.1-2 - - - amd64 - 841 - deb - libfreetype6 - Debian - 2.9.1-3 - - - amd64 - 175 - deb - libfribidi0 - Debian - 1.0.5-3.1 - - - amd64 - 70 - deb - libfstrm0 - Debian - 0.4.0-1 - - - amd64 - 350 - deb - libfuse2 - Debian - 2.9.9-1 - - - amd64 - 396 - deb - libgc1c2 - Debian - 1:7.6.4-0.4 - - - amd64 - 116 - deb - libgcc1 - Debian - 1:8.3.0-6 - - - amd64 - 1343 - deb - libgcrypt20 - Debian - 1.8.4-5 - - - amd64 - 458 - deb - libgd3 - Debian - 2.2.5-5.2 - - - amd64 - 66 - deb - libgdbm-compat4 - Debian - 1.18.1-4 - - - amd64 - 68 - deb - libgdbm3 - Debian - 1.8.3-14 - - - amd64 - 117 - deb - libgdbm6 - Debian - 1.18.1-4 - - - amd64 - 253 - deb - libgeoip1 - Debian - 1.6.12-1 - - - amd64 - 3734 - deb - libglib2.0-0 - Debian - 2.58.3-2 - - - all - 8467 - deb - libglib2.0-data - Debian - 2.58.3-2 - - - amd64 - 565 - deb - libgmp10 - Debian - 2:6.1.2+dfsg-4 - - - amd64 - 369 - deb - libgnutls-dane0 - Debian - 3.6.7-4 - - - amd64 - 2643 - deb - libgnutls30 - Debian - 3.6.7-4 - - - all - 536 - deb - libgpg-error-l10n - Debian - 1.35-1 - - - amd64 - 175 - deb - libgpg-error0 - Debian - 1.35-1 - - - amd64 - 64 - deb - libgpm2 - Debian - 1.20.7-5 - - - amd64 - 206 - deb - libgraphite2-3 - Debian - 1.3.13-7 - - - amd64 - 620 - deb - libgsasl7 - Debian - 1.8.0-8+b2 - - - amd64 - 428 - deb - libgssapi-krb5-2 - Debian - 1.17-3 - - - amd64 - 430 - deb - libgts-0.7-5 - Debian - 0.7.6+darcs121130-4 - - - amd64 - 191 - deb - libgts-bin - Debian - 0.7.6+darcs121130-4 - - - amd64 - 1766 - deb - libgvc6 - Debian - 2.40.1-6 - - - amd64 - 563 - deb - libgvpr2 - Debian - 2.40.1-6 - - - amd64 - 1828 - deb - libharfbuzz0b - Debian - 2.3.1-1 - - - amd64 - 245 - deb - libhogweed4 - Debian - 3.4.1-1 - - - amd64 - 230 - deb - libhtml-parser-perl - Debian - 3.72-3+b3 - - - all - 32 - deb - libhtml-tagset-perl - Debian - 3.20-3 - - - all - 188 - deb - libhtml-template-perl - Debian - 2.97-1 - - - all - 56 - deb - libhttp-date-perl - Debian - 6.02-1 - - - all - 194 - deb - libhttp-message-perl - Debian - 6.18-1 - - - amd64 - 134 - deb - libice6 - Debian - 2:1.0.9-2 - - - amd64 - 31686 - deb - libicu63 - Debian - 63.1-6 - - - amd64 - 307 - deb - libidn11 - Debian - 1.33-2.2 - - - amd64 - 279 - deb - libidn2-0 - Debian - 2.0.5-1 - - - all - 40 - deb - libio-html-perl - Debian - 1.001-1 - - - amd64 - 120 - deb - libip4tc0 - Debian - 1.8.2-4 - - - amd64 - 120 - deb - libip6tc0 - Debian - 1.8.2-4 - - - amd64 - 98 - deb - libiptc0 - Debian - 1.8.2-4 - - - amd64 - 279 - deb - libirs161 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 676 - deb - libisc-export1100 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 603 - deb - libisc-export160 - Debian - 1:9.10.3.dfsg.P4-12.3+deb9u5 - - - amd64 - 1332 - deb - libisc1100 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 281 - deb - libisccc161 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 421 - deb - libisccfg163 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 87 - deb - libjansson4 - Debian - 2.12-1 - - - amd64 - 78 - deb - libjbig0 - Debian - 2.1-3.1+b2 - - - amd64 - 472 - deb - libjpeg62-turbo - Debian - 1:1.5.2-2+b1 - - - amd64 - 330 - deb - libjq1 - Debian - 1.5+dfsg-2+b1 - - - amd64 - 74 - deb - libjson-c3 - Debian - 0.12.1+ds-2 - - - amd64 - 313 - deb - libk5crypto3 - Debian - 1.17-3 - - - amd64 - 45 - deb - libkeyutils1 - Debian - 1.6-6 - - - amd64 - 109 - deb - libklibc - Debian - 2.0.6-1 - - - amd64 - 129 - deb - libkmod2 - Debian - 26-1 - - - amd64 - 1134 - deb - libkrb5-3 - Debian - 1.17-3 - - - amd64 - 170 - deb - libkrb5support0 - Debian - 1.17-3 - - - amd64 - 264 - deb - libksba8 - Debian - 1.3.5-2 - - - amd64 - 1014 - deb - libkyotocabinet16v5 - Debian - 1.2.76-4.2+b1 - - - amd64 - 2503 - deb - liblab-gamut1 - Debian - 2.40.1-6 - - - amd64 - 525 - deb - libldap-2.4-2 - Debian - 2.4.47+dfsg-3 - - - all - 112 - deb - libldap-common - Debian - 2.4.47+dfsg-3 - - - amd64 - 104 - deb - liblmdb0 - Debian - 0.9.22-1 - - - amd64 - 55 - deb - liblocale-gettext-perl - Debian - 1.07-3+b4 - - - amd64 - 46 - deb - liblockfile-bin - Debian - 1.14-1.1 - - - amd64 - 38 - deb - liblogging-stdlog0 - Debian - 1.0.5-2+b2 - - - amd64 - 161 - deb - liblognorm5 - Debian - 2.0.5-1 - - - amd64 - 418 - deb - libltdl7 - Debian - 2.4.6-9 - - - amd64 - 425 - deb - liblua5.2-0 - Debian - 5.2.4-1.1+b2 - - - all - 100 - deb - liblwp-mediatypes-perl - Debian - 6.02-1 - - - amd64 - 314 - deb - liblwres161 - Debian - 1:9.11.5.P4+dfsg-5.1 - - - amd64 - 141 - deb - liblz4-1 - Debian - 1.8.3-1 - - - amd64 - 263 - deb - liblzma5 - Debian - 5.2.4-1 - - - amd64 - 162 - deb - liblzo2-2 - Debian - 2.10-0.1 - - - amd64 - 5300 - deb - libmagic-mgc - Debian - 1:5.35-4 - - - amd64 - 233 - deb - libmagic1 - Debian - 1:5.35-4 - - - amd64 - 2365 - deb - libmailutils5 - Debian - 1:3.5-3 - - - amd64 - 528 - deb - libmariadb3 - Debian - 1:10.3.15-1 - - - amd64 - 207 - deb - libmcrypt4 - Debian - 2.5.8-3.4 - - - amd64 - 46 - deb - libmnl0 - Debian - 1.0.4-2 - - - amd64 - 475 - deb - libmount1 - Debian - 2.33.1-0.1 - - - amd64 - 254 - deb - libmpdec2 - Debian - 2.4.2-2 - - - amd64 - 1101 - deb - libmpfr6 - Debian - 4.0.2-1 - - - amd64 - 311 - deb - libncurses5 - Debian - 6.1+20181013-2 - - - amd64 - 330 - deb - libncurses6 - Debian - 6.1+20181013-2 - - - amd64 - 375 - deb - libncursesw5 - Debian - 6.1+20181013-2 - - - amd64 - 411 - deb - libncursesw6 - Debian - 6.1+20181013-2 - - - amd64 - 138 - deb - libnetfilter-conntrack3 - Debian - 1.0.7-1 - - - amd64 - 380 - deb - libnettle6 - Debian - 3.4.1-1 - - - amd64 - 374 - deb - libnewt0.52 - Debian - 0.52.20-8 - - - amd64 - 41 - deb - libnfnetlink0 - Debian - 1.0.1-3+b1 - - - amd64 - 675 - deb - libnftables0 - Debian - 0.9.0-2 - - - amd64 - 212 - deb - libnftnl11 - Debian - 1.1.2-2 - - - amd64 - 210 - deb - libnghttp2-14 - Debian - 1.36.0-2 - - - amd64 - 46 - deb - libnpth0 - Debian - 1.6-1 - - - amd64 - 392 - deb - libnss-systemd - Debian - 241-5 - - - amd64 - 59 - deb - libntlm0 - Debian - 1.5-1 - - - amd64 - 616 - deb - libonig5 - Debian - 6.9.1-1 - - - amd64 - 1365 - deb - libp11-kit0 - Debian - 0.23.15-2 - - - amd64 - 45 - deb - libpam-cap - Debian - 1:2.25-2 - - - amd64 - 1059 - deb - libpam-modules - Debian - 1.3.1-5 - - - amd64 - 238 - deb - libpam-modules-bin - Debian - 1.3.1-5 - - - all - 1072 - deb - libpam-runtime - Debian - 1.3.1-5 - - - amd64 - 394 - deb - libpam-systemd - Debian - 241-5 - - - amd64 - 244 - deb - libpam0g - Debian - 1.3.1-5 - - - amd64 - 408 - deb - libpango-1.0-0 - Debian - 1.42.4-7~deb10u1 - - - amd64 - 114 - deb - libpangocairo-1.0-0 - Debian - 1.42.4-7~deb10u1 - - - amd64 - 152 - deb - libpangoft2-1.0-0 - Debian - 1.42.4-7~deb10u1 - - - amd64 - 100 - deb - libpathplan4 - Debian - 2.40.1-6 - - - amd64 - 102 - deb - libpci3 - Debian - 1:3.5.2-1 - - - amd64 - 576 - deb - libpcre2-8-0 - Debian - 10.32-5 - - - amd64 - 673 - deb - libpcre3 - Debian - 2:8.39-12 - - - amd64 - 26261 - deb - libperl5.28 - Debian - 5.28.1-6 - - - amd64 - 85 - deb - libpipeline1 - Debian - 1.5.1-2 - - - amd64 - 983 - deb - libpixman-1-0 - Debian - 0.36.0-1 - - - amd64 - 439 - deb - libpng16-16 - Debian - 1.6.36-6 - - - amd64 - 222 - deb - libpopt0 - Debian - 1.16-12 - - - amd64 - 121 - deb - libprocps6 - Debian - 2:3.3.12-3+deb9u1 - - - amd64 - 122 - deb - libprocps7 - Debian - 2:3.3.15-2 - - - amd64 - 65 - deb - libprotobuf-c1 - Debian - 1.3.1-1+b1 - - - amd64 - 90 - deb - libpsl5 - Debian - 0.20.2-2 - - - amd64 - 38 - deb - libpython-stdlib - Debian - 2.7.16-1 - - - amd64 - 38 - deb - libpython2-stdlib - Debian - 2.7.16-1 - - - amd64 - 3414 - deb - libpython2.7 - Debian - 2.7.16-2 - - - amd64 - 2781 - deb - libpython2.7-minimal - Debian - 2.7.16-2 - - - amd64 - 8915 - deb - libpython2.7-stdlib - Debian - 2.7.16-2 - - - amd64 - 37 - deb - libpython3-stdlib - Debian - 3.7.3-1 - - - amd64 - 3903 - deb - libpython3.7-minimal - Debian - 3.7.3-2 - - - amd64 - 8140 - deb - libpython3.7-stdlib - Debian - 3.7.3-2 - - - amd64 - 343 - deb - libreadline5 - Debian - 5.2+dfsg-3+b13 - - - amd64 - 416 - deb - libreadline7 - Debian - 7.0-5 - - - amd64 - 141 - deb - librtmp1 - Debian - 2.4+20151223.gitfa8646d.1-2 - - - amd64 - 188 - deb - libsasl2-2 - Debian - 2.1.27+dfsg-1 - - - amd64 - 268 - deb - libsasl2-modules - Debian - 2.1.27+dfsg-1 - - - amd64 - 101 - deb - libsasl2-modules-db - Debian - 2.1.27+dfsg-1 - - - amd64 - 306 - deb - libseccomp2 - Debian - 2.3.3-4 - - - amd64 - 194 - deb - libselinux1 - Debian - 2.8-1+b1 - - - all - 30 - deb - libsemanage-common - Debian - 2.8-2 - - - amd64 - 301 - deb - libsemanage1 - Debian - 2.8-2 - - - all - 50 - deb - libsensors-config - Debian - 1:3.5.0-3 - - - amd64 - 118 - deb - libsensors4 - Debian - 1:3.4.0-4 - - - amd64 - 108 - deb - libsensors5 - Debian - 1:3.5.0-3 - - - amd64 - 724 - deb - libsepol1 - Debian - 2.8-1 - - - amd64 - 56 - deb - libsigsegv2 - Debian - 2.12-2 - - - amd64 - 1627 - deb - libslang2 - Debian - 2.3.2-2 - - - amd64 - 73 - deb - libsm6 - Debian - 2:1.2.3-1 - - - amd64 - 314 - deb - libsmartcols1 - Debian - 2.33.1-0.1 - - - amd64 - 47 - deb - libsnappy1v5 - Debian - 1.1.7-1 - - - all - 2125 - deb - libsnmp-base - Debian - 5.7.3+dfsg-5 - - - amd64 - 4828 - deb - libsnmp30 - Debian - 5.7.3+dfsg-5 - - - amd64 - 406 - deb - libsodium23 - Debian - 1.0.17-1 - - - amd64 - 1288 - deb - libsqlite3-0 - Debian - 3.27.2-3 - - - amd64 - 104 - deb - libss2 - Debian - 1.44.5-1 - - - amd64 - 270 - deb - libssh2-1 - Debian - 1.8.0-2.1 - - - amd64 - 3557 - deb - libssl1.0.2 - Debian - 1.0.2r-1~deb9u1 - - - amd64 - 4079 - deb - libssl1.1 - Debian - 1.1.1c-1 - - - amd64 - 2017 - deb - libstdc++6 - Debian - 8.3.0-6 - - - all - 76 - deb - libswitch-perl - Debian - 2.17-2 - - - amd64 - 766 - deb - libsystemd0 - Debian - 241-5 - - - amd64 - 112 - deb - libtasn1-6 - Debian - 4.13-3 - - - amd64 - 70 - deb - libterm-readkey-perl - Debian - 2.38-1 - - - amd64 - 43 - deb - libtext-charwidth-perl - Debian - 0.04-7.1+b1 - - - amd64 - 50 - deb - libtext-iconv-perl - Debian - 1.7-5+b7 - - - all - 26 - deb - libtext-wrapi18n-perl - Debian - 0.06-7.1 - - - all - 613 - deb - libthai-data - Debian - 0.1.28-2 - - - amd64 - 95 - deb - libthai0 - Debian - 0.1.28-2 - - - amd64 - 628 - deb - libtiff5 - Debian - 4.0.10-4 - - - all - 96 - deb - libtimedate-perl - Debian - 2.3000-2 - - - amd64 - 506 - deb - libtinfo5 - Debian - 6.1+20181013-2 - - - amd64 - 521 - deb - libtinfo6 - Debian - 6.1+20181013-2 - - - amd64 - 180 - deb - libuchardet0 - Debian - 0.0.6-3 - - - amd64 - 257 - deb - libudev1 - Debian - 241-5 - - - amd64 - 1059 - deb - libunbound8 - Debian - 1.9.0-2 - - - amd64 - 1144 - deb - libunistring0 - Debian - 0.9.6+really0.9.3-0.1 - - - amd64 - 1600 - deb - libunistring2 - Debian - 0.9.10-1 - - - all - 230 - deb - liburi-perl - Debian - 1.76-1 - - - amd64 - 58 - deb - libusb-0.1-4 - Debian - 2:0.1.12-32 - - - amd64 - 133 - deb - libusb-1.0-0 - Debian - 2:1.0.22-2 - - - amd64 - 258 - deb - libustr-1.0-1 - Debian - 1.0.4-6 - - - amd64 - 120 - deb - libuuid1 - Debian - 2.33.1-0.1 - - - amd64 - 503 - deb - libwebp6 - Debian - 0.6.1-2 - - - amd64 - 108 - deb - libwrap0 - Debian - 7.6.q-28 - - - amd64 - 1555 - deb - libx11-6 - Debian - 2:1.6.7-1 - - - all - 1673 - deb - libx11-data - Debian - 2:1.6.7-1 - - - amd64 - 2656 - deb - libxapian30 - Debian - 1.4.11-1 - - - amd64 - 43 - deb - libxau6 - Debian - 1:1.0.8-1+b2 - - - amd64 - 515 - deb - libxaw7 - Debian - 2:1.0.13-1+b2 - - - amd64 - 170 - deb - libxcb-render0 - Debian - 1.13.1-2 - - - amd64 - 120 - deb - libxcb-shm0 - Debian - 1.13.1-2 - - - amd64 - 290 - deb - libxcb1 - Debian - 1.13.1-2 - - - amd64 - 53 - deb - libxdmcp6 - Debian - 1:1.1.2-3 - - - amd64 - 92 - deb - libxdot4 - Debian - 2.40.1-6 - - - amd64 - 124 - deb - libxext6 - Debian - 2:1.3.3-1+b2 - - - all - 64 - deb - libxml-treepp-perl - Debian - 0.43-1 - - - amd64 - 1851 - deb - libxml2 - Debian - 2.9.4+dfsg1-7+b3 - - - amd64 - 141 - deb - libxmu6 - Debian - 2:1.1.2-2+b3 - - - amd64 - 51 - deb - libxmuu1 - Debian - 2:1.1.2-2+b3 - - - amd64 - 104 - deb - libxpm4 - Debian - 1:3.5.12-1 - - - amd64 - 70 - deb - libxrender1 - Debian - 1:0.9.10-1 - - - amd64 - 481 - deb - libxslt1.1 - Debian - 1.1.32-2 - - - amd64 - 482 - deb - libxt6 - Debian - 1:1.1.5-1+b3 - - - amd64 - 149 - deb - libxtables12 - Debian - 1.8.2-4 - - - amd64 - 136 - deb - libyaml-0-2 - Debian - 0.2.1-1 - - - amd64 - 132 - deb - libzip4 - Debian - 1.5.1-4 - - - amd64 - 670 - deb - libzstd1 - Debian - 1.3.8+dfsg-3 - - - all - 82 - deb - linux-base - Debian - 4.6 - - - amd64 - 260714 - deb - linux-image-4.19.0-5-amd64 - Debian - 4.19.37-5+deb10u2 - - - amd64 - 188590 - deb - linux-image-4.9.0-9-amd64 - Debian - 4.9.168-1+deb9u2 - - - amd64 - 17 - deb - linux-image-amd64 - Debian - 4.19+105 - - - all - 16106 - deb - locales - Debian - 2.28-10 - - - amd64 - 2695 - deb - login - Debian - 1:4.5-1.1 - - - amd64 - 150 - deb - logrotate - Debian - 3.14.0-4 - - - all - 49 - deb - lsb-base - Debian - 10.2019051400 - - - all - 62 - deb - lsb-release - Debian - 10.2019051400 - - - amd64 - 454 - deb - lsof - Debian - 4.91+dfsg-1 - - - amd64 - 995 - deb - mailutils - Debian - 1:3.5-3 - - - all - 1674 - deb - mailutils-common - Debian - 1:3.5-3 - - - amd64 - 2675 - deb - man-db - Debian - 2.8.5-2 - - - all - 1500 - deb - manpages - Debian - 4.16-2 - - - amd64 - 45622 - deb - mariadb-client-10.1 - Debian - 10.1.38-0+deb9u1 - - - amd64 - 23132 - deb - mariadb-client-10.3 - Debian - 1:10.3.15-1 - - - amd64 - 26648 - deb - mariadb-client-core-10.3 - Debian - 1:10.3.15-1 - - - all - 73 - deb - mariadb-common - Debian - 1:10.3.15-1 - - - all - 65 - deb - mariadb-server - Debian - 1:10.3.15-1 - - - amd64 - 76648 - deb - mariadb-server-10.1 - Debian - 10.1.38-0+deb9u1 - - - amd64 - 65011 - deb - mariadb-server-10.3 - Debian - 1:10.3.15-1 - - - amd64 - 36564 - deb - mariadb-server-core-10.3 - Debian - 1:10.3.15-1 - - - amd64 - 183 - deb - mawk - Debian - 1.3.3-17+b3 - - - all - 110 - deb - mime-support - Debian - 3.62 - - - amd64 - 418 - deb - mount - Debian - 2.33.1-0.1 - - - amd64 - 234 - deb - multiarch-support - Debian - 2.28-10 - - - all - 34 - deb - mysql-common - Debian - 5.8+1.0.5 - - - amd64 - 2216 - deb - nano - Debian - 3.2-3 - - - all - 368 - deb - ncurses-base - Debian - 6.1+20181013-2 - - - amd64 - 616 - deb - ncurses-bin - Debian - 6.1+20181013-2 - - - all - 4166 - deb - ncurses-term - Debian - 6.1+20181013-2 - - - amd64 - 979 - deb - net-tools - Debian - 1.60+git20180626.aebd88e-1 - - - all - 44 - deb - netbase - Debian - 5.6 - - - amd64 - 136 - deb - netcat-traditional - Debian - 1.10-41.1 - - - amd64 - 113 - deb - nftables - Debian - 0.9.0-2 - - - amd64 - 3546 - deb - openssh-client - Debian - 1:7.9p1-10 - - - amd64 - 1449 - deb - openssh-server - Debian - 1:7.9p1-10 - - - amd64 - 122 - deb - openssh-sftp-server - Debian - 1:7.9p1-10 - - - amd64 - 1458 - deb - openssl - Debian - 1.1.1c-1 - - - amd64 - 108 - deb - os-prober - Debian - 1.77 - - - amd64 - 2591 - deb - passwd - Debian - 1:4.5-1.1 - - - amd64 - 1220 - deb - pciutils - Debian - 1:3.5.2-1 - - - amd64 - 575 - deb - perl - Debian - 5.28.1-6 - - - amd64 - 10136 - deb - perl-base - Debian - 5.28.1-6 - - - all - 17631 - deb - perl-modules-5.24 - Debian - 5.24.1-3+deb9u5 - - - all - 18894 - deb - perl-modules-5.28 - Debian - 5.28.1-6 - - - all - 12 - deb - php - Debian - 2:7.3+69 - - - all - 12 - deb - php-cli - Debian - 2:7.3+69 - - - all - 70 - deb - php-common - Debian - 2:69 - - - all - 12 - deb - php-curl - Debian - 2:7.3+69 - - - all - 12 - deb - php-gd - Debian - 2:7.3+69 - - - all - 12 - deb - php-ldap - Debian - 2:7.3+69 - - - all - 12 - deb - php-mcrypt - Debian - 1:7.0+49 - - - all - 12 - deb - php-mysql - Debian - 2:7.3+69 - - - all - 12 - deb - php-soap - Debian - 2:7.3+69 - - - all - 12 - deb - php-xml - Debian - 2:7.3+69 - - - all - 12 - deb - php-zip - Debian - 2:7.3+69 - - - amd64 - 4616 - deb - php7.0-common - Debian - 7.0.33-0+deb9u3 - - - amd64 - 115 - deb - php7.0-curl - Debian - 7.0.33-0+deb9u3 - - - amd64 - 71 - deb - php7.0-mcrypt - Debian - 7.0.33-0+deb9u3 - - - all - 69 - deb - php7.3 - Debian - 7.3.4-2 - - - amd64 - 4715 - deb - php7.3-cli - Debian - 7.3.4-2 - - - amd64 - 6899 - deb - php7.3-common - Debian - 7.3.4-2 - - - amd64 - 132 - deb - php7.3-curl - Debian - 7.3.4-2 - - - amd64 - 135 - deb - php7.3-gd - Debian - 7.3.4-2 - - - amd64 - 76 - deb - php7.3-json - Debian - 7.3.4-2 - - - amd64 - 120 - deb - php7.3-ldap - Debian - 7.3.4-2 - - - amd64 - 447 - deb - php7.3-mysql - Debian - 7.3.4-2 - - - amd64 - 532 - deb - php7.3-opcache - Debian - 7.3.4-2 - - - amd64 - 64 - deb - php7.3-readline - Debian - 7.3.4-2 - - - amd64 - 336 - deb - php7.3-soap - Debian - 7.3.4-2 - - - amd64 - 469 - deb - php7.3-xml - Debian - 7.3.4-2 - - - amd64 - 96 - deb - php7.3-zip - Debian - 7.3.4-2 - - - amd64 - 253 - deb - pigz - Debian - 2.4-1 - - - amd64 - 121 - deb - pinentry-curses - Debian - 1.1.0-2 - - - all - 28 - deb - powermgmt-base - Debian - 1.34 - - - amd64 - 729 - deb - procps - Debian - 2:3.3.15-2 - - - amd64 - 637 - deb - psmisc - Debian - 23.2-1 - - - amd64 - 68 - deb - python - Debian - 2.7.16-1 - - - all - 631 - deb - python-apt-common - Debian - 1.8.4 - - - amd64 - 43 - deb - python-minimal - Debian - 2.7.16-1 - - - amd64 - 136 - deb - python2 - Debian - 2.7.16-1 - - - amd64 - 144 - deb - python2-minimal - Debian - 2.7.16-1 - - - amd64 - 377 - deb - python2.7 - Debian - 2.7.16-2 - - - amd64 - 3731 - deb - python2.7-minimal - Debian - 2.7.16-2 - - - amd64 - 187 - deb - python3 - Debian - 3.7.3-1 - - - amd64 - 687 - deb - python3-apt - Debian - 1.8.4 - - - all - 300 - deb - python3-certifi - Debian - 2018.8.24-1 - - - all - 411 - deb - python3-chardet - Debian - 3.0.4-3 - - - all - 18 - deb - python3-debconf - Debian - 1.5.71 - - - all - 301 - deb - python3-debian - Debian - 0.1.35 - - - all - 50 - deb - python3-debianbts - Debian - 2.8.2 - - - all - 119 - deb - python3-httplib2 - Debian - 0.11.3-2 - - - all - 271 - deb - python3-idna - Debian - 2.6-1 - - - amd64 - 121 - deb - python3-minimal - Debian - 3.7.3-1 - - - all - 534 - deb - python3-pkg-resources - Debian - 40.8.0-1 - - - amd64 - 190 - deb - python3-pycurl - Debian - 7.43.0.2-0.1 - - - all - 191 - deb - python3-pysimplesoap - Debian - 1.16.2-1 - - - all - 363 - deb - python3-reportbug - Debian - 7.5.2 - - - all - 223 - deb - python3-requests - Debian - 2.21.0-1 - - - all - 60 - deb - python3-six - Debian - 1.12.0-1 - - - all - 389 - deb - python3-urllib3 - Debian - 1.24.1-1 - - - amd64 - 408 - deb - python3.7 - Debian - 3.7.3-2 - - - amd64 - 9652 - deb - python3.7-minimal - Debian - 3.7.3-2 - - - all - 89 - deb - readline-common - Debian - 7.0-5 - - - all - 247 - deb - reportbug - Debian - 7.5.2 - - - amd64 - 729 - deb - rsync - Debian - 3.1.3-6 - - - amd64 - 1812 - deb - rsyslog - Debian - 8.1901.0-1 - - - amd64 - 44812 - deb - rudder-agent - Debian - 5.0.12-buster0 - - - amd64 - 883 - deb - sed - Debian - 4.7-1 - - - all - 62 - deb - sensible-utils - Debian - 0.0.12 - - - amd64 - 4831 - deb - shared-mime-info - Debian - 1.10-1 - - - amd64 - 140 - deb - snmpd - Debian - 5.7.3+dfsg-5 - - - amd64 - 1010 - deb - socat - Debian - 1.7.3.2-2 - - - all - 63 - deb - ssl-cert - Debian - 1.0.39 - - - amd64 - 3795 - deb - sudo - Debian - 1.8.27-1 - - - amd64 - 13485 - deb - systemd - Debian - 241-5 - - - amd64 - 123 - deb - systemd-sysv - Debian - 241-5 - - - amd64 - 131 - deb - sysvinit-utils - Debian - 2.93-8 - - - amd64 - 2884 - deb - tar - Debian - 1.30+dfsg-6 - - - all - 6 - deb - task-english - Debian - 3.53 - - - all - 6 - deb - task-ssh-server - Debian - 3.53 - - - all - 378 - deb - tasksel - Debian - 3.53 - - - all - 211 - deb - tasksel-data - Debian - 3.53 - - - amd64 - 163 - deb - telnet - Debian - 0.17-41.2 - - - amd64 - 154 - deb - traceroute - Debian - 1:2.1.0-2 - - - all - 3033 - deb - tzdata - Debian - 2019b-0+deb10u1 - - - all - 188 - deb - ucf - Debian - 3.0038+nmu1 - - - amd64 - 8287 - deb - udev - Debian - 241-5 - - - amd64 - 554 - deb - unzip - Debian - 6.0-23 - - - all - 611 - deb - usb.ids - Debian - 2019.04.23-1 - - - amd64 - 312 - deb - usbutils - Debian - 1:010-3 - - - amd64 - 4327 - deb - util-linux - Debian - 2.33.1-0.1 - - - all - 6592 - deb - util-linux-locales - Debian - 2.33.1-0.1 - - - amd64 - 206 - deb - uuid-runtime - Debian - 2.33.1-0.1 - - - amd64 - 2800 - deb - vim - Debian - 2:8.1.0875-5 - - - all - 334 - deb - vim-common - Debian - 2:8.1.0875-5 - - - all - 29627 - deb - vim-runtime - Debian - 2:8.1.0875-5 - - - amd64 - 1344 - deb - vim-tiny - Debian - 2:8.1.0875-5 - - - all - 991 - deb - wamerican - Debian - 2018.04.16-1 - - - amd64 - 3257 - deb - wget - Debian - 1.20.1-1.1 - - - amd64 - 70 - deb - whiptail - Debian - 0.52.20-8 - - - all - 305 - deb - x11-common - Debian - 1:7.7+19 - - - amd64 - 81 - deb - xauth - Debian - 1:1.0.10-1 - - - amd64 - 375 - deb - xdg-user-dirs - Debian - 0.17-2 - - - all - 6050 - deb - xkb-data - Debian - 2.26-2 - - - amd64 - 188 - deb - xxd - Debian - 2:8.1.0875-5 - - - amd64 - 442 - deb - xz-utils - Debian - 5.2.4-1 - - - amd64 - 174 - deb - zlib1g - Debian - 1:1.2.11.dfsg-1 - - - rev 01 - Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - Audio device - - - Virtual - 20971 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.28.1 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - prod-itop-01-2019-06-11-04-49-35 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs.sign deleted file mode 100644 index e684378e748..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-itop-01-c8e2c037-78df-4530-8f3a-db7d337517c9.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=7e603f8f5f136cd69e6adea4669ee54bec7a17a43853ad68e5d16824e5bc83344f3687f78149b20a36b501a42137b5b0f997191dd8dc1ca306eeee7d959f8922f7d5dbaeca8f32503fc2684e679950ce5b3029a3e7bfeb5af69567b04a396b1cd4186321b224dcf9000b7deefd4b1ebd92e0aaa8316306e98471b7c903ad450e2ef172550b13beb8ad903a55aab0ff958da569148ea313d6f4453347139bc7b3dd093c519c7a5f49cbd12b7961aa2f2b77adae99611eca2fd7863876d509295ca4d6a5ef9da65cf2cb6fe4bb0f07c01af6f08d93ff018ce29ff824e218f7579600860d759a8b72d20335e3d14b02ba43e517c3b989ac22aed35b1705d5b02c570b7a245d7a358fcea73af0dd01ed979acb92b8ed75cc8dc9df42d512c200913a53b1a18a845ea9be2bce82ecf8fbac70bc6dcfd3cb731d1b56c244ee52960d75fc27e000e489f110d75efc384e493c274bda6de5df531befef5b6e97b14ab690b65742485f0472954bdc65240cf7a14acc94416d24db18fb859adf966cf62cb6b8dc8de2ec8c547b9c0582d676fea890eb205bedaa262bf58721e324130d50aad02589d26ca774eb9e1b5d839fac722e756facc4954ae29fd17a830616078f697985dd850fb7eeffe379151c0fbd916d79daa120879967a97f2176a912d0c3bee48e8c1fe6abd8b31ed47bd520a7e97fc6e398457cb0f12aacdb2274a8fe1922 -hostname=prod-itop-01 -keydate=2019-06-11 04:46:45.835439607 -0400 -keyid=94783B83 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs deleted file mode 100644 index eead42a8f93..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs +++ /dev/null @@ -1,4909 +0,0 @@ - - - - - 2019-09-13 04:28:21 - - - 04/01/2014 - SeaBIOS - 1.12.0-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - i386 - 1 - Other - 6 - D2 06 03 00 FF FB 8B 07 - Intel - 61 - Intel Core Processor (Broadwell) - 2 - 1 - - - xfs - 6786 - dd565d41-f14a-4476-b012-2cd3dceac050 - 8178 - / - /dev/mapper/centos_prod--www--02-root - - - xfs - 872 - a10f463a-f5e9-4e45-824a-edf83fbb413d - 1014 - /boot - /dev/vda1 - - - DEBIAN_FRONTEND - noninteractive - - - LOGNAME - root - - - SHLVL - 2 - - - HOSTNAME - prod-www-02 - - - MANPATH - /usr/local/share/man:/usr/share/man:/opt/rudder/share/man - - - _ - /usr/bin/perl - - - PATH - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/rudder/cfengine-community/bin - - - LESSOPEN - ||/usr/bin/lesspipe.sh %s - - - MAIL - /var/spool/mail/root - - - HISTSIZE - 1000 - - - PWD - /var/rudder - - - USER - root - - - LANG - en_US.UTF-8 - - - HISTCONTROL - ignoredups - - - x86_64-linux-thread-multi - Other - 131071 - Wed Jun 26 14:04 - 192.168.210.1 - 192.168.210.1 - 1 - 192.168.210.6 - bpeccatt - 718 - prod-www-02 - #1 SMP Fri Apr 20 16:44:24 UTC 2018 - CentOS Linux release 7.5.1804 (Core) - 3.10.0-862.el7.x86_64 - 1 - Intel Core Processor (Broadwell) - 1023 - 376D13AA-7B3E-490D-82F3-F63E81D27CF8 - QEMU - demo.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - PC Speaker - PC Speaker - Keyboard - - - 10 - abrianceau - wheel - - - 12 - postfix - mail - mail - - - 1000 - abrianceau - abrianceau - abrianceau - - - /root - 0 - root - root - /bin/bash - - - /bin - 1 - bin - bin - /sbin/nologin - - - /sbin - 2 - daemon - daemon - /sbin/nologin - - - /var/adm - 3 - adm - adm - /sbin/nologin - - - /var/spool/lpd - 4 - lp - lp - /sbin/nologin - - - /sbin - 5 - sync - sync - /bin/sync - - - /sbin - 6 - shutdown - shutdown - /sbin/shutdown - - - /sbin - 7 - halt - halt - /sbin/halt - - - /var/spool/mail - 8 - mail - mail - /sbin/nologin - - - /root - 11 - operator - operator - /sbin/nologin - - - /usr/games - 12 - games - games - /sbin/nologin - - - /var/ftp - 14 - ftp - FTP User - /sbin/nologin - - - / - 99 - nobody - Nobody - /sbin/nologin - - - / - 192 - systemd-network - systemd Network Management - /sbin/nologin - - - / - 81 - dbus - System message bus - /sbin/nologin - - - / - 999 - polkitd - User for polkitd - /sbin/nologin - - - /var/empty/sshd - 74 - sshd - Privilege-separated SSH - /sbin/nologin - - - /var/spool/postfix - 89 - postfix - - /sbin/nologin - - - /var/lib/chrony - 998 - chrony - - /sbin/nologin - - - /home/abrianceau - 1000 - abrianceau - abrianceau - /bin/bash - - - /home/bpeccatte - 1001 - bpeccatte - - /bin/bash - - - /usr/share/httpd - 48 - apache - Apache - /sbin/nologin - - - /home/ncharles - 1002 - ncharles - - /bin/bash - - - /home/amousset - 1003 - amousset - - /bin/bash - - - /home/fdallidet - 1004 - fdallidet - - /bin/bash - - - -wi-ao---- - root - V2wZju-mWoy-vL86-hCg9-wLCR-VtAw-3EW9gV - 1 - 8585 - RBHu0y-AolP-WCG7-t3sA-L3CK-XMXB-0rpJ0L - - - -wi-ao---- - swap - ylaw1A-55hK-TVgr-pf6q-E7W4-7i3O-a2cLtN - 1 - 1073 - RBHu0y-AolP-WCG7-t3sA-L3CK-XMXB-0rpJ0L - - - 4096 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - virtio_net - 192.168.210.6 - 192.168.210.1 - 255.255.255.128 - 192.168.210.0 - 52:54:00:1f:90:26 - Up - ethernet - 0 - - - eth0 - virtio_net - fe80::5054:ff:fe1f:9026 - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:1f:90:26 - Up - ethernet - 0 - - - x86_64 - 2019-08-27 17:29:46 - demo.normation.com - prod-www-02.demo.normation.com - CentOS Linux release 7.5.1804 (Core) - 007f0100 - linux - 3.10.0-862.el7.x86_64 - CentOS - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDqElwEKQ0+R6SmBq5JAZUjVPjRr3X+3Buo+jvLlxGOudCbw3U+Dzrt4uWMtpDebqOFGNoItw1Ar9NoNEF/GdYe7Z/+QPyMYUgGXguRwoMXS8NrEk7sVdp4vQYI1Ya1jDVoGUosXtzI2g/19mq8KSmgPLSWuE8bjCgiO7w9qcdDX/8qb1yk0Vr3sKQFvcaVCvNW6Yp6TUbVoVPo9DEPgZ51m6ENQZ0SVZU24M9tGNu1ut8xSjdyK6XSaALHeNoDzifMKqrhNkIlf4ztv4KGB8qa6lGoAwTOXW1MPZoPcW9yO/jdWW4wRyEm9W1VbM7SXXT6Pt6I03hblhqDSG0a20Nn - - Europe/Paris - +0200 - - 7.5.1804 - - - a-- - /dev/vda2 - lvm2 - 0 - 4 - 2303 - SY2E7X-dItq-Oe7b-p6zJ-ozrV-xzhK-FOV8bX - 9659 - RBHu0y-AolP-WCG7-t3sA-L3CK-XMXB-0rpJ0L - - - /usr/lib/systemd/systemd --switched-root --system --deserialize 22 - 0.0 - 0.7 - 1 - 2019-08-27 17:29 - ? - root - 127936 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-08-27 17:29 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2019-08-27 17:29 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 7 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 8 - 2019-08-27 17:29 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 9 - 2019-08-27 17:29 - ? - root - 0 - - - [lru-add-drain] - 0.0 - 0.0 - 10 - 2019-08-27 17:29 - ? - root - 0 - - - [watchdog/0] - 0.0 - 0.0 - 11 - 2019-08-27 17:29 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 13 - 2019-08-27 17:29 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 14 - 2019-08-27 17:29 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 15 - 2019-08-27 17:29 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 16 - 2019-08-27 17:29 - ? - root - 0 - - - [kintegrityd] - 0.0 - 0.0 - 17 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 18 - 2019-08-27 17:29 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 19 - 2019-08-27 17:29 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 20 - 2019-08-27 17:29 - ? - root - 0 - - - [edac-poller] - 0.0 - 0.0 - 21 - 2019-08-27 17:29 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 27 - 2019-08-27 17:29 - ? - root - 0 - - - [ksmd] - 0.0 - 0.0 - 28 - 2019-08-27 17:29 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 29 - 2019-08-27 17:29 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 30 - 2019-08-27 17:29 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 38 - 2019-08-27 17:29 - ? - root - 0 - - - [kmpath_rdacd] - 0.0 - 0.0 - 40 - 2019-08-27 17:29 - ? - root - 0 - - - [kaluad] - 0.0 - 0.0 - 41 - 2019-08-27 17:29 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 42 - 2019-08-27 17:29 - ? - root - 0 - - - [ipv6_addrconf] - 0.0 - 0.0 - 43 - 2019-08-27 17:29 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 57 - 2019-08-27 17:29 - ? - root - 0 - - - [kauditd] - 0.0 - 0.0 - 88 - 2019-08-27 17:29 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 266 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_0] - 0.0 - 0.0 - 273 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_0] - 0.0 - 0.0 - 274 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_eh_1] - 0.0 - 0.0 - 275 - 2019-08-27 17:29 - ? - root - 0 - - - [scsi_tmf_1] - 0.0 - 0.0 - 276 - 2019-08-27 17:29 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 279 - 2019-08-27 17:29 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 285 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 346 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 347 - 2019-08-27 17:29 - ? - root - 0 - - - [kdmflush] - 0.0 - 0.0 - 357 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 358 - 2019-08-27 17:29 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 370 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsalloc] - 0.0 - 0.0 - 371 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs_mru_cache] - 0.0 - 0.0 - 372 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-buf/dm-0] - 0.0 - 0.0 - 373 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-data/dm-0] - 0.0 - 0.0 - 374 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-conv/dm-0] - 0.0 - 0.0 - 375 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-cil/dm-0] - 0.0 - 0.0 - 376 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-reclaim/dm-] - 0.0 - 0.0 - 377 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-log/dm-0] - 0.0 - 0.0 - 378 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-eofblocks/d] - 0.0 - 0.0 - 379 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsaild/dm-0] - 0.0 - 0.0 - 380 - 2019-08-27 17:29 - ? - root - 0 - - - /usr/lib/systemd/systemd-journald - 0.0 - 3.1 - 447 - 2019-08-27 17:29 - ? - root - 68960 - - - /usr/sbin/lvmetad -f - 0.0 - 0.3 - 470 - 2019-08-27 17:29 - ? - root - 127256 - - - /usr/lib/systemd/systemd-udevd - 0.0 - 0.3 - 482 - 2019-08-27 17:29 - ? - root - 46908 - - - [xfs-buf/vda1] - 0.0 - 0.0 - 512 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-data/vda1] - 0.0 - 0.0 - 513 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-conv/vda1] - 0.0 - 0.0 - 514 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-cil/vda1] - 0.0 - 0.0 - 516 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-reclaim/vda] - 0.0 - 0.0 - 517 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-log/vda1] - 0.0 - 0.0 - 518 - 2019-08-27 17:29 - ? - root - 0 - - - [xfs-eofblocks/v] - 0.0 - 0.0 - 519 - 2019-08-27 17:29 - ? - root - 0 - - - [xfsaild/vda1] - 0.0 - 0.0 - 525 - 2019-08-27 17:29 - ? - root - 0 - - - /sbin/auditd - 0.0 - 0.0 - 578 - 2019-08-27 17:29 - ? - root - 55508 - - - /usr/bin/qemu-ga --method=virtio-serial --path=/dev/virtio-ports/org.qemu.guest_agent.0 --blacklist=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush,guest-exec,guest-exec-status -F/etc/qemu-ga/fsfreeze-hook - 0.0 - 0.1 - 599 - 2019-08-27 17:29 - ? - root - 25040 - - - /usr/lib/polkit-1/polkitd --no-debug - 0.0 - 0.7 - 603 - 2019-08-27 17:29 - ? - polkitd - 538440 - - - /var/rudder/cfengine-community/bin/cf-execd --no-fork - 0.0 - 3.8 - 609 - 2019-08-27 17:29 - ? - root - 151916 - - - /usr/sbin/chronyd - 0.0 - 0.2 - 610 - 2019-08-27 17:29 - ? - chrony - 117752 - - - /usr/lib/systemd/systemd-logind - 0.0 - 0.2 - 612 - 2019-08-27 17:29 - ? - root - 26376 - - - /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation - 0.0 - 0.2 - 613 - 2019-08-27 17:29 - ? - dbus - 66424 - - - /usr/sbin/NetworkManager --no-daemon - 0.0 - 0.8 - 625 - 2019-08-27 17:29 - ? - root - 549988 - - - /usr/sbin/crond -n - 0.0 - 0.1 - 632 - 2019-08-27 17:29 - ? - root - 126280 - - - /sbin/agetty --noclear tty1 linux - 0.0 - 0.1 - 634 - 2019-08-27 17:29 - tty1 - root - 110088 - - - /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-00d1d1ac-e649-4917-9da1-c39ba73e4530-eth0.lease -cf /var/lib/NetworkManager/dhclient-eth0.conf eth0 - 0.0 - 0.4 - 688 - 2019-08-27 17:29 - ? - root - 107380 - - - /usr/sbin/snmpd -LS0-6d -f - 0.0 - 1.1 - 899 - 2019-08-27 17:29 - ? - root - 223520 - - - /usr/sbin/rsyslogd -n - 0.0 - 2.2 - 900 - 2019-08-27 17:29 - ? - root - 417032 - - - /usr/bin/python -Es /usr/sbin/tuned -l -P - 0.0 - 2.3 - 901 - 2019-08-27 17:29 - ? - root - 573820 - - - /usr/sbin/sshd -D - 0.0 - 0.4 - 904 - 2019-08-27 17:29 - ? - root - 112796 - - - /var/rudder/cfengine-community/bin/cf-serverd --no-fork - 0.0 - 1.1 - 905 - 2019-08-27 17:29 - ? - root - 51376 - - - /usr/libexec/postfix/master -w - 0.0 - 0.2 - 1284 - 2019-08-27 17:29 - ? - root - 89620 - - - qmgr -l -t unix -u - 0.0 - 0.5 - 1289 - 2019-08-27 17:29 - ? - postfix - 89792 - - - pickup -l -t unix -u - 0.0 - 0.5 - 7782 - 2019-09-13 03:03 - ? - postfix - 89724 - - - [kworker/0:1] - 0.0 - 0.0 - 10604 - 2019-09-13 03:40 - ? - root - 0 - - - [kworker/u2:1] - 0.0 - 0.0 - 11033 - 2019-09-12 05:09 - ? - root - 0 - - - [kworker/0:2] - 0.0 - 0.0 - 12810 - 2019-09-13 04:13 - ? - root - 0 - - - [kworker/0:0] - 0.0 - 0.0 - 13195 - 2019-09-13 04:18 - ? - root - 0 - - - sh -c "/var/rudder/cfengine-community/bin/cf-agent" -f failsafe.cf ; "/var/rudder/cfengine-community/bin/cf-agent" - 0.0 - 0.1 - 13877 - 2019-09-13 04:28 - ? - root - 11680 - - - /var/rudder/cfengine-community/bin/cf-agent - 57.0 - 2.2 - 13887 - 2019-09-13 04:28 - ? - root - 68208 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs - 0.0 - 0.2 - 13965 - 2019-09-13 04:28 - ? - root - 115300 - - - perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs - 0.0 - 3.9 - 13981 - 2019-09-13 04:28 - ? - root - 186764 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.1 - 13986 - 2019-09-13 04:28 - ? - root - 11680 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.2 - 13987 - 2019-09-13 04:28 - ? - root - 51708 - - - [kworker/u2:0] - 0.0 - 0.0 - 15942 - 2019-09-12 06:15 - ? - root - 0 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEA2ENPKzqJEvktmrfclwygh1d+HTB8dcTzG6QXUdCmSYmsr4GStg1r -ozVCjIEg87YSBOEeuSt6fiaOAujPTplmzIWESTFe8D9QS/DbzoXC6mmsmbzpL1Rl -2SpeJJ1Hc93M1qx+gtt0SvKIFc3mbTqj5qUt0etJuTl4a5wwr0ZfuxVtmEy0OJP4 -v/TwG74MXuXThhuvDJ2DHb6IrQMaBGpIB1HT8jEPfP3bOQhp5Wvd88ujkVzqK3UC -uB4J2gzWbjrDR8UcuZZVZ5ZfeGP0O/KlNMs2wHrIrVnZZKM6fhjrTzxU9oSLon/M -YYqjfEt+QmybKqGnYJ9pcCGPJV/zjQ8+fbA+AjPGsraFAqpSCmBrHznI8okXIpe4 -UgOzkErRD8LLPzZIKiEmlLz3DqoDU+aRlKgE38mwT9SEfF1CiArcRDQPASTdwPxG -yRpfIfquPN0T4KE1ZdwS8LV92YCCKMNKzT74MzZl38AZiA8moEOnUHLQiXEhMQBS -Ue+GCUwB7nvyQA1hcZ0O49R2rS7Pzi1hbJLr9RnCO9jSwdE1L6rf5dapx7uPdNfM -BQ65vNoKEcXa+ufg/+BUUzU1O2FU4iCA/Jqvzp0GS/5uCKu6oUY3WJ7PRAsFT9WY -HvhMp+h3YDlxUz6SFHSWgZnfjN+8zP3sotMs6hpqwzn1pTooVItM5WUCAwEAAQ== ------END RSA PUBLIC KEY----- - - root - prod-rudder - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - [] - prod-www-02.lab.rudder.io - - 6c199162-c23b-47f7-a27b-e0ef93994a09 - - - x86_64 - Team device plugin for NetworkManager - 54552 - rpm - 06/08/2018 - NetworkManager-team - CentOS - 1.10.2-13.el7 - - - noarch - grub2 common layout - 3915374 - rpm - 06/08/2018 - grub2-common - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Userland logical volume management tools - 3055975 - rpm - 06/08/2018 - lvm2 - CentOS - 2.02.177-4.el7 - - - noarch - Descriptions of common terminals - 223432 - rpm - 06/08/2018 - ncurses-base - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Bootloader with support for Linux, Multiboot and more - 0 - rpm - 06/08/2018 - grub2 - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - License of the BIND DNS suite - 26831 - rpm - 06/08/2018 - bind-license - CentOS - 9.9.4-61.el7 - - - x86_64 - An open source SSH server daemon - 993810 - rpm - 06/08/2018 - openssh-server - CentOS - 7.4p1-16.el7 - - - noarch - Timezone data - 1954525 - rpm - 06/08/2018 - tzdata - CentOS - 2018c-1.el7 - - - x86_64 - HardWare LiSter - 955626 - rpm - 06/08/2018 - lshw - CentOS - B.02.18-12.el7 - - - x86_64 - A system tool for maintaining the /etc/rc*.d hierarchy - 779531 - rpm - 06/08/2018 - chkconfig - CentOS - 1.7.4-1.el7 - - - x86_64 - User space tools for 2.6 kernel auditing - 639108 - rpm - 06/08/2018 - audit - CentOS - 2.8.1-3.el7 - - - x86_64 - Common binaries and locale data for glibc - 120325207 - rpm - 06/08/2018 - glibc-common - CentOS - 2.17-222.el7 - - - x86_64 - The Linux kernel - 64576056 - rpm - 06/08/2018 - kernel - CentOS - 3.10.0-862.el7 - - - noarch - A set of system configuration and setup files - 696925 - rpm - 06/08/2018 - setup - CentOS - 2.8.71-9.el7 - - - noarch - Adaptec SAS 44300, 48300, 58300 Sequencer Firmware for AIC94xx driver - 30752 - rpm - 06/08/2018 - aic94xx-firmware - CentOS - 30-6.el7 - - - noarch - The skeleton package which defines a simple CentOS Linux system - 0 - rpm - 06/08/2018 - basesystem - CentOS - 10.0-7.el7.centos - - - x86_64 - Udev helper for naming devices per BIOS names - 59183 - rpm - 06/08/2018 - biosdevname - CentOS - 0.7.3-1.el7 - - - x86_64 - The compression and decompression library - 185710 - rpm - 06/08/2018 - zlib - CentOS - 1.2.7-17.el7 - - - x86_64 - The GNU disk partition manipulation program - 2336757 - rpm - 06/08/2018 - parted - CentOS - 3.1-29.el7 - - - x86_64 - Network Security Services Utilities Library - 194944 - rpm - 06/08/2018 - nss-util - CentOS - 3.34.0-2.el7 - - - x86_64 - Assortment of tools for the Linux kernel - 284717 - rpm - 06/08/2018 - kernel-tools - CentOS - 3.10.0-862.el7 - - - x86_64 - GNU Standard C++ Library - 1081666 - rpm - 06/08/2018 - libstdc++ - CentOS - 4.8.5-28.el7 - - - x86_64 - Utilities for managing ext2, ext3, and ext4 filesystems - 2555829 - rpm - 06/08/2018 - e2fsprogs - CentOS - 1.42.9-11.el7 - - - x86_64 - A stand-alone TTY-based reader for GNU texinfo documentation - 494630 - rpm - 06/08/2018 - info - CentOS - 5.1-5.el7 - - - x86_64 - An utility for setting or changing passwords using PAM - 429874 - rpm - 06/08/2018 - passwd - CentOS - 0.79-4.el7 - - - x86_64 - The GNU version of the awk text processing utility - 2435978 - rpm - 06/08/2018 - gawk - CentOS - 4.0.2-4.el7_3.1 - - - x86_64 - Utilities for managing the XFS filesystem - 4080035 - rpm - 06/08/2018 - xfsprogs - CentOS - 4.5.0-15.el7 - - - x86_64 - Dynamic library for extended attribute support - 19896 - rpm - 06/08/2018 - libattr - CentOS - 2.4.46-13.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 2030 Series Adapters - 828852 - rpm - 06/08/2018 - iwl2030-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - Library for getting and setting POSIX.1e capabilities - 111445 - rpm - 06/08/2018 - libcap - CentOS - 2.22-9.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 135 Series Adapters - 822688 - rpm - 06/08/2018 - iwl135-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - Perl-compatible regular expression library - 1475532 - rpm - 06/08/2018 - pcre - CentOS - 8.32-17.el7 - - - noarch - Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors - 271560 - rpm - 06/08/2018 - iwl3945-firmware - CentOS - 15.32.2.9-62.el7 - - - x86_64 - A GNU stream text editor - 601208 - rpm - 06/08/2018 - sed - CentOS - 4.2.2-5.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 7260 Series Adapters - 6505180 - rpm - 06/08/2018 - iwl7260-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - Library for loading and sharing PKCS#11 modules - 1337825 - rpm - 06/08/2018 - p11-kit - CentOS - 0.23.5-3.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters - 1054932 - rpm - 06/08/2018 - iwl6050-firmware - CentOS - 41.28.5.1-62.el7 - - - x86_64 - A GNU arbitrary precision library - 657046 - rpm - 06/08/2018 - gmp - CentOS - 6.0.0-15.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 3160 Series Adapters - 10429840 - rpm - 06/08/2018 - iwl3160-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - The ASN.1 library used in GNUTLS - 424486 - rpm - 06/08/2018 - libtasn1 - CentOS - 4.10-1.el7 - - - noarch - The basic required files for the root user's directory - 599 - rpm - 06/08/2018 - rootfiles - CentOS - 8.1-11.el7 - - - noarch - The Mozilla CA root certificate bundle - 998895 - rpm - 06/08/2018 - ca-certificates - CentOS - 2017.2.20-71.el7 - - - noarch - Firmware for Intel® PRO/Wireless 1000 B/G/N network adaptors - 794036 - rpm - 06/08/2018 - iwl1000-firmware - CentOS - 39.31.5.1-62.el7 - - - x86_64 - A general purpose cryptography library with TLS implementation - 3200172 - rpm - 06/08/2018 - openssl-libs - CentOS - 1.0.2k-12.el7 - - - noarch - Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors - 309432 - rpm - 06/08/2018 - iwl4965-firmware - CentOS - 228.61.2.24-62.el7 - - - x86_64 - The non-admin shared libraries used by Kerberos 5 - 1988950 - rpm - 06/08/2018 - krb5-libs - CentOS - 1.15.1-18.el7 - - - noarch - Firmware for Intel® PRO/Wireless 5150 A/G/N network adaptors - 458860 - rpm - 06/08/2018 - iwl5150-firmware - CentOS - 8.24.2.2-62.el7 - - - x86_64 - Universally unique ID library - 20326 - rpm - 06/08/2018 - libuuid - CentOS - 2.23.2-52.el7 - - - (none) - gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>) - 0 - rpm - 06/08/2018 - gpg-pubkey - f4a80eb5-53a7ff4b - - - x86_64 - Libraries for applications using bzip2 - 70093 - rpm - 06/08/2018 - bzip2-libs - CentOS - 1.0.6-13.el7 - - - noarch - Small, simple, correct HTTP/1.1 client - 97210 - rpm - 06/08/2018 - perl-HTTP-Tiny - CentOS - 0.033-3.el7 - - - x86_64 - A library for editing typed command lines - 460464 - rpm - 06/08/2018 - readline - CentOS - 6.2-10.el7 - - - noarch - Look up Perl documentation in Pod format - 166910 - rpm - 06/08/2018 - perl-Pod-Perldoc - CentOS - 3.20-4.el7 - - - x86_64 - Library providing XML and HTML support - 1710062 - rpm - 06/08/2018 - libxml2 - CentOS - 2.9.1-6.el7_2.3 - - - noarch - Perl module for resolving POD escape sequences - 21091 - rpm - 06/08/2018 - perl-Pod-Escapes - CentOS - 1.04-292.el7 - - - x86_64 - An alternate posix capabilities library - 50510 - rpm - 06/08/2018 - libcap-ng - CentOS - 0.7.5-4.el7 - - - noarch - Print a usage message from embedded POD documentation - 44671 - rpm - 06/08/2018 - perl-Pod-Usage - CentOS - 1.63-3.el7 - - - x86_64 - A general-purpose cryptography library - 597727 - rpm - 06/08/2018 - libgcrypt - CentOS - 1.5.3-14.el7 - - - x86_64 - The libraries for the perl runtime - 1647272 - rpm - 06/08/2018 - perl-libs - CentOS - 5.16.3-292.el7 - - - x86_64 - A GNU archiving program - 689335 - rpm - 06/08/2018 - cpio - CentOS - 2.11-27.el7 - - - noarch - Implements default import method for modules - 56612 - rpm - 06/08/2018 - perl-Exporter - CentOS - 5.68-3.el7 - - - x86_64 - An XML parser library - 208315 - rpm - 06/08/2018 - expat - CentOS - 2.1.0-10.el7_3 - - - noarch - Efficiently compute time from local and GMT time - 44062 - rpm - 06/08/2018 - perl-Time-Local - CentOS - 1.2300-2.el7 - - - x86_64 - Powerful light-weight programming language - 640319 - rpm - 06/08/2018 - lua - CentOS - 5.1.4-15.el7 - - - noarch - Alternative warn and die for modules - 28276 - rpm - 06/08/2018 - perl-Carp - CentOS - 1.26-244.el7 - - - x86_64 - Displays where a particular program in your path is located - 76962 - rpm - 06/08/2018 - which - CentOS - 2.20-7.el7 - - - x86_64 - PathTools Perl module (Cwd, File::Spec) - 174131 - rpm - 06/08/2018 - perl-PathTools - CentOS - 3.40-5.el7 - - - x86_64 - A password-checking library - 209610 - rpm - 06/08/2018 - cracklib - CentOS - 2.9.0-11.el7 - - - noarch - Return name and handle of a temporary file safely - 158781 - rpm - 06/08/2018 - perl-File-Temp - CentOS - 0.23.01-3.el7 - - - x86_64 - A library of handy utility functions - 11986873 - rpm - 06/08/2018 - glib2 - CentOS - 2.54.2-2.el7 - - - x86_64 - Perl extension for sharing data structures between threads - 73972 - rpm - 06/08/2018 - perl-threads-shared - CentOS - 1.43-6.el7 - - - x86_64 - Libraries for applications using libmagic - 3077690 - rpm - 06/08/2018 - file-libs - CentOS - 5.11-33.el7 - - - x86_64 - Perl source filters - 148475 - rpm - 06/08/2018 - perl-Filter - CentOS - 1.49-3.el7 - - - x86_64 - A minimalistic Netlink library - 51847 - rpm - 06/08/2018 - libmnl - CentOS - 1.0.3-7.el7 - - - noarch - Extended processing of command line options - 134846 - rpm - 06/08/2018 - perl-Getopt-Long - CentOS - 2.40-3.el7 - - - x86_64 - The standard CrackLib dictionaries - 9389116 - rpm - 06/08/2018 - cracklib-dicts - CentOS - 2.9.0-11.el7 - - - noarch - Modules that calculate message digests - 28661 - rpm - 06/08/2018 - perl-Digest - CentOS - 1.17-245.el7 - - - x86_64 - A library for password generation and password quality checking - 332421 - rpm - 06/08/2018 - libpwquality - CentOS - 1.2.3-5.el7 - - - x86_64 - Basic networking tools - 938986 - rpm - 06/08/2018 - net-tools - CentOS - 2.0-0.22.20131004git.el7 - - - x86_64 - PEM file reader for Network Security Services (NSS) - 201219 - rpm - 06/08/2018 - nss-pem - CentOS - 1.0.3-4.el7 - - - x86_64 - Apache Portable Runtime library - 226686 - rpm - 07/09/2018 - apr - CentOS - 1.4.8-3.el7_4.1 - - - x86_64 - System NSS Initialization - 14066 - rpm - 06/08/2018 - nss-sysinit - CentOS - 3.34.0-4.el7 - - - x86_64 - Tools for use with the Apache HTTP Server - 172756 - rpm - 07/09/2018 - httpd-tools - CentOS - 2.4.6-80.el7.centos.1 - - - x86_64 - GnuPG IPC library - 155391 - rpm - 06/08/2018 - libassuan - CentOS - 2.1.0-3.el7 - - - x86_64 - Apache HTTP Server - 9817285 - rpm - 07/09/2018 - httpd - CentOS - 2.4.6-80.el7.centos.1 - - - x86_64 - LZMA compression utilities - 798130 - rpm - 06/08/2018 - xz - CentOS - 5.2.2-1.el7 - - - x86_64 - Lm_sensors core libraries - 61600 - rpm - 17/09/2018 - lm_sensors-libs - CentOS - 3.4.0-4.20160601gitf9185e5.el7 - - - x86_64 - GCC OpenMP v3.0 shared support library - 212144 - rpm - 06/08/2018 - libgomp - CentOS - 4.8.5-28.el7 - - - x86_64 - Stringify perl data structures, suitable for printing and eval - 99287 - rpm - 17/09/2018 - perl-Data-Dumper - CentOS - 2.145-3.el7 - - - x86_64 - Internationalized Domain Name support library - 630407 - rpm - 06/08/2018 - libidn - CentOS - 1.28-4.el7 - - - x86_64 - Dynamic library for for the gpm - 27736 - rpm - 25/03/2019 - gpm-libs - CentOS - 1.20.7-5.el7 - - - x86_64 - Ext2/3/4 filesystem-specific shared libraries - 363569 - rpm - 06/08/2018 - e2fsprogs-libs - CentOS - 1.42.9-11.el7 - - - x86_64 - The common files needed by any version of the VIM editor - 22146036 - rpm - 25/03/2019 - vim-common - CentOS - 7.4.160-5.el7 - - - x86_64 - Libraries for tcp_wrappers - 134602 - rpm - 06/08/2018 - tcp_wrappers-libs - CentOS - 7.6-77.el7 - - - x86_64 - Configuration management and audit tool - agent - 42049434 - rpm - 25/03/2019 - rudder-agent - Normation - 5.0.8.release-1.EL.7 - - - x86_64 - Tools used for process and utmp management. - 109118 - rpm - 06/08/2018 - sysvinit-tools - CentOS - 2.88-14.dsf.el7 - - - x86_64 - A library for text mode user interfaces - 185196 - rpm - 06/08/2018 - newt - CentOS - 0.52.15-4.el7 - - - x86_64 - Extremely fast compression algorithm - 366872 - rpm - 06/08/2018 - lz4 - CentOS - 1.7.5-2.el7 - - - x86_64 - A GNU set of database routines which use extensible hashing - 184322 - rpm - 06/08/2018 - gdbm - CentOS - 1.10-8.el7 - - - x86_64 - An interpreted, interactive, object-oriented programming language - 80907 - rpm - 06/08/2018 - python - CentOS - 2.7.5-68.el7 - - - x86_64 - Utility to set/show the host name or domain name - 19449 - rpm - 06/08/2018 - hostname - CentOS - 3.13-3.el7 - - - x86_64 - SELinux python bindings for libselinux - 603236 - rpm - 06/08/2018 - libselinux-python - CentOS - 2.5-12.el7 - - - x86_64 - Python bindings for lzma - 190112 - rpm - 06/08/2018 - pyliblzma - CentOS - 0.5.3-11.el7 - - - x86_64 - Python bindings for newt - 116916 - rpm - 06/08/2018 - newt-python - CentOS - 0.52.15-4.el7 - - - x86_64 - Linux scheduler python bindings - 43123 - rpm - 06/08/2018 - python-schedutils - CentOS - 0.4-6.el7 - - - noarch - Config file reading, writing, and validation - 611855 - rpm - 06/08/2018 - python-configobj - CentOS - 4.7.2-7.el7 - - - x86_64 - Extended attributes library wrapper for Python - 63304 - rpm - 06/08/2018 - pyxattr - CentOS - 0.5.1-5.el7 - - - x86_64 - Tools for managing Linux kernel packet filtering capabilities - 1555941 - rpm - 06/08/2018 - iptables - CentOS - 1.4.21-24.el7 - - - x86_64 - Libraries for gettext - 1546952 - rpm - 06/08/2018 - gettext-libs - CentOS - 0.19.8.1-2.el7 - - - x86_64 - A text file browser similar to more, but better - 215376 - rpm - 06/08/2018 - less - CentOS - 458-9.el7 - - - x86_64 - Tools for the Network Security Services - 2061331 - rpm - 06/08/2018 - nss-tools - CentOS - 3.34.0-4.el7 - - - x86_64 - Manage Linux IP sets - 75482 - rpm - 06/08/2018 - ipset - CentOS - 6.29-1.el7 - - - x86_64 - Introspection system for GObject-based libraries - 834149 - rpm - 06/08/2018 - gobject-introspection - CentOS - 1.50.0-1.el7 - - - x86_64 - Command line tools for managing Berkeley DB databases - 326487 - rpm - 06/08/2018 - libdb-utils - CentOS - 5.3.21-24.el7 - - - x86_64 - Libraries to handle kernel module loading and unloading - 91800 - rpm - 06/08/2018 - kmod-libs - CentOS - 20-21.el7 - - - x86_64 - Rotates, compresses, removes and mails system log files - 106988 - rpm - 06/08/2018 - logrotate - CentOS - 3.8.6-15.el7 - - - x86_64 - The Advanced Linux Sound Architecture (ALSA) library - 1424769 - rpm - 06/08/2018 - alsa-lib - CentOS - 1.1.4.1-2.el7 - - - x86_64 - A library for integrity verification of FIPS validated modules - 38839 - rpm - 06/08/2018 - fipscheck - CentOS - 1.4.1-6.el7 - - - x86_64 - A library implementing the SSH2 protocol - 341782 - rpm - 06/08/2018 - libssh2 - CentOS - 1.4.3-10.el7_2.1 - - - x86_64 - A utility for getting files from remote servers (FTP, HTTP, and others) - 540259 - rpm - 06/08/2018 - curl - CentOS - 7.29.0-46.el7 - - - x86_64 - The RPM package management system - 2621900 - rpm - 06/08/2018 - rpm - CentOS - 4.11.3-32.el7 - - - x86_64 - A user and group account administration library - 1952592 - rpm - 06/08/2018 - libuser - CentOS - 0.60-9.el7 - - - noarch - A high-level cross-protocol url-grabber - 500670 - rpm - 06/08/2018 - python-urlgrabber - CentOS - 3.10-8.el7 - - - x86_64 - A minimal version of the VIM editor - 917640 - rpm - 06/08/2018 - vim-minimal - CentOS - 7.4.160-4.el7 - - - x86_64 - A GNU file archiving program - 2838271 - rpm - 06/08/2018 - tar - CentOS - 1.26-34.el7 - - - x86_64 - A GNU tool which simplifies the build process for users - 1160684 - rpm - 06/08/2018 - make - CentOS - 3.82-23.el7 - - - x86_64 - Collection of simple PIN or passphrase entry dialogs - 159929 - rpm - 06/08/2018 - pinentry - CentOS - 0.8.1-17.el7 - - - x86_64 - Fast compression and decompression library - 119521 - rpm - 06/08/2018 - snappy - CentOS - 1.1.0-3.el7 - - - x86_64 - Library for country/city/organization to IP address or hostname mapping - 2905020 - rpm - 06/08/2018 - GeoIP - CentOS - 1.5.0-11.el7 - - - x86_64 - Create a tree of hardlinks - 16545 - rpm - 06/08/2018 - hardlink - CentOS - 1.0-19.el7 - - - x86_64 - Shared library for sg3_utils - 184551 - rpm - 06/08/2018 - sg3_utils-libs - CentOS - 1.37-12.el7 - - - x86_64 - Library for Neighbor Discovery Protocol - 75612 - rpm - 06/08/2018 - libndp - CentOS - 1.2-7.el7 - - - x86_64 - Library for writing UNIX daemons - 62045 - rpm - 06/08/2018 - libdaemon - CentOS - 0.14-7.el7 - - - x86_64 - Linux-native asynchronous I/O access library - 39182 - rpm - 06/08/2018 - libaio - CentOS - 0.3.109-13.el7 - - - x86_64 - String library, very low memory overhead, simple to import - 285943 - rpm - 06/08/2018 - ustr - CentOS - 1.0.4-16.el7 - - - x86_64 - Utilities for managing accounts and shadow password files - 3534490 - rpm - 06/08/2018 - shadow-utils - CentOS - 4.1.5.1-24.el7 - - - x86_64 - System and process monitoring utilities - 759252 - rpm - 06/08/2018 - procps-ng - CentOS - 3.3.10-17.el7 - - - x86_64 - Device mapper utility - 338922 - rpm - 06/08/2018 - device-mapper - CentOS - 1.02.146-4.el7 - - - x86_64 - Initramfs generator using udev - 897713 - rpm - 06/08/2018 - dracut - CentOS - 033-535.el7 - - - x86_64 - Device-mapper shared library - 400551 - rpm - 06/08/2018 - device-mapper-libs - CentOS - 1.02.146-4.el7 - - - x86_64 - Libraries to handle compiled objects - 747527 - rpm - 06/08/2018 - elfutils-libs - CentOS - 0.170-4.el7 - - - x86_64 - Libraries for accessing D-BUS - 362584 - rpm - 06/08/2018 - dbus-libs - CentOS - 1.10.24-7.el7 - - - x86_64 - D-BUS message bus - 595223 - rpm - 06/08/2018 - dbus - CentOS - 1.10.24-7.el7 - - - x86_64 - An authorization framework - 487578 - rpm - 06/08/2018 - polkit - CentOS - 0.112-14.el7 - - - x86_64 - Network monitoring tools including ping - 343497 - rpm - 06/08/2018 - iputils - CentOS - 20160308-10.el7 - - - x86_64 - SysV tools for systemd - 3979 - rpm - 06/08/2018 - systemd-sysv - CentOS - 219-57.el7 - - - x86_64 - Support tools for GRUB. - 685843 - rpm - 06/08/2018 - grub2-tools-minimal - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Probes disks on the system for installed operating systems - 97946 - rpm - 06/08/2018 - os-prober - CentOS - 1.58-9.el7 - - - x86_64 - Hardware identification and configuration data - 13422381 - rpm - 06/08/2018 - hwdata - CentOS - 0.252-8.8.el7 - - - x86_64 - Cron daemon for executing programs at set times - 220396 - rpm - 06/08/2018 - cronie - CentOS - 1.4.11-19.el7 - - - x86_64 - Shared libraries used by ISC dhcp client and server - 149176 - rpm - 06/08/2018 - dhcp-libs - CentOS - 4.2.5-68.el7.centos - - - x86_64 - An open source implementation of SSH protocol versions 1 and 2 - 1995364 - rpm - 06/08/2018 - openssh - CentOS - 7.4p1-16.el7 - - - x86_64 - Provides the ISC DHCP client daemon and dhclient-script - 486155 - rpm - 06/08/2018 - dhclient - CentOS - 4.2.5-68.el7.centos - - - x86_64 - PCI access library - 45649 - rpm - 06/08/2018 - libpciaccess - CentOS - 0.14-1.el7 - - - x86_64 - Support tools for GRUB. - 6328356 - rpm - 06/08/2018 - grub2-tools-extra - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - SELinux policy configuration - 5920 - rpm - 06/08/2018 - selinux-policy - CentOS - 3.13.1-192.el7 - - - x86_64 - Shared libraries for lvm2 - 3683188 - rpm - 06/08/2018 - lvm2-libs - CentOS - 2.02.177-4.el7 - - - x86_64 - Network connection manager and user applications - 5234794 - rpm - 06/08/2018 - NetworkManager - CentOS - 1.10.2-13.el7 - - - noarch - Firmware for several ALSA-supported sound cards - 9572469 - rpm - 06/08/2018 - alsa-firmware - CentOS - 1.0.28-2.el7 - - - x86_64 - Ethernet Bridge frame table administration tool - 350763 - rpm - 06/08/2018 - ebtables - CentOS - 2.0.10-16.el7 - - - x86_64 - GLib bindings for D-Bus - 301237 - rpm - 06/08/2018 - dbus-glib - CentOS - 0.100-7.el7 - - - noarch - Convenience functions for dbus services - 76410 - rpm - 06/08/2018 - python-slip-dbus - CentOS - 0.4.0-4.el7 - - - noarch - A libudev binding - 241404 - rpm - 06/08/2018 - python-pyudev - CentOS - 0.15-9.el7 - - - x86_64 - Plymouth related scripts - 22795 - rpm - 06/08/2018 - plymouth-scripts - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - String handling essentials library - 44322 - rpm - 06/08/2018 - libestr - CentOS - 0.1.9-2.el7 - - - x86_64 - A JSON implementation in C - 57201 - rpm - 06/08/2018 - libfastjson - CentOS - 0.99.4-2.el7 - - - x86_64 - A pipeline manipulation library - 142521 - rpm - 06/08/2018 - libpipeline - CentOS - 1.2.3-3.el7 - - - x86_64 - Detect if we are running in a virtual machine - 45720 - rpm - 06/08/2018 - virt-what - CentOS - 1.18-4.el7 - - - x86_64 - Utility for secure communication and data storage - 6644890 - rpm - 06/08/2018 - gnupg2 - CentOS - 2.0.22-4.el7 - - - x86_64 - Python bindings for apps which will manipulate RPM packages - 149714 - rpm - 06/08/2018 - rpm-python - CentOS - 4.11.3-32.el7 - - - x86_64 - Python module for working with OpenPGP messages - 197501 - rpm - 06/08/2018 - pygpgme - CentOS - 0.3-9.el7 - - - noarch - RPM package installer/updater/manager - 5814102 - rpm - 06/08/2018 - yum - CentOS - 3.4.3-158.el7.centos - - - x86_64 - Tools for configuring the console (keyboard, virtual terminals, etc.) - 1380661 - rpm - 06/08/2018 - kbd - CentOS - 1.15.5-13.el7 - - - x86_64 - Tools for searching and reading man pages - 1874275 - rpm - 06/08/2018 - man-db - CentOS - 2.6.3-9.el7 - - - x86_64 - Enhanced system logging and kernel message trapping daemon - 2001916 - rpm - 06/08/2018 - rsyslog - CentOS - 8.24.0-16.el7 - - - noarch - A firewall daemon with D-Bus interface providing a dynamic firewall - 1853385 - rpm - 06/08/2018 - firewalld - CentOS - 0.4.4.4-14.el7 - - - x86_64 - GCC version 4.8 shared support library - 179272 - rpm - 06/08/2018 - libgcc - CentOS - 4.8.5-28.el7 - - - x86_64 - NetworkManager curses-based UI - 262429 - rpm - 06/08/2018 - NetworkManager-tui - CentOS - 1.10.2-13.el7 - - - noarch - Modules used to build custom grub images - 2309702 - rpm - 06/08/2018 - grub2-pc-modules - CentOS - 2.02-0.65.el7.centos.2 - - - noarch - SELinux targeted base policy - 19279106 - rpm - 06/08/2018 - selinux-policy-targeted - CentOS - 3.13.1-192.el7 - - - noarch - Firewalld directory layout and rpm macros - 239 - rpm - 06/08/2018 - firewalld-filesystem - CentOS - 0.4.4.4-14.el7 - - - x86_64 - The kexec/kdump userspace component. - 775491 - rpm - 06/08/2018 - kexec-tools - CentOS - 2.0.15-13.el7 - - - noarch - Data for kbd package - 2397086 - rpm - 06/08/2018 - kbd-misc - CentOS - 1.15.5-13.el7 - - - x86_64 - An open source SSH client applications - 2651616 - rpm - 06/08/2018 - openssh-clients - CentOS - 7.4p1-16.el7 - - - x86_64 - The GNU Bourne Again shell - 3667709 - rpm - 06/08/2018 - bash - CentOS - 4.2.46-30.el7 - - - x86_64 - Command line tool for setting up authentication from network services - 2316601 - rpm - 06/08/2018 - authconfig - CentOS - 6.2.8-30.el7 - - - x86_64 - Freebl library for the Network Security Services - 561372 - rpm - 06/08/2018 - nss-softokn-freebl - CentOS - 3.34.0-2.el7 - - - x86_64 - Postfix Mail Transport Agent - 12773475 - rpm - 06/08/2018 - postfix - CentOS - 2.10.1-6.el7 - - - x86_64 - Ncurses support utilities - 439378 - rpm - 06/08/2018 - ncurses - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Tool to transform and deploy CPU microcode update for x86. - 1600168 - rpm - 06/08/2018 - microcode_ctl - CentOS - 2.1-29.el7 - - - x86_64 - The basic directory layout for a Linux system - 0 - rpm - 06/08/2018 - filesystem - CentOS - 3.2-25.el7 - - - x86_64 - QEMU guest agent - 510398 - rpm - 06/08/2018 - qemu-guest-agent - CentOS - 2.8.0-2.el7 - - - x86_64 - The GNU libc libraries - 14223248 - rpm - 06/08/2018 - glibc - CentOS - 2.17-222.el7 - - - x86_64 - An NTP client/server - 487489 - rpm - 06/08/2018 - chrony - CentOS - 3.2-2.el7 - - - x86_64 - Netscape Portable Runtime - 287560 - rpm - 06/08/2018 - nspr - CentOS - 4.17.0-1.el7 - - - x86_64 - dracut configuration to turn on rescue image generation - 4067 - rpm - 06/08/2018 - dracut-config-rescue - CentOS - 033-535.el7 - - - x86_64 - Common error description library - 60417 - rpm - 06/08/2018 - libcom_err - CentOS - 1.42.9-11.el7 - - - x86_64 - Utilities for devices that use SCSI command sets - 1738032 - rpm - 06/08/2018 - sg3_utils - CentOS - 1.37-12.el7 - - - x86_64 - Ncurses libraries - 1028216 - rpm - 06/08/2018 - ncurses-libs - CentOS - 5.9-14.20130511.el7_4 - - - x86_64 - Allows restricted root access for specified users - 4055906 - rpm - 06/08/2018 - sudo - CentOS - 1.8.19p2-13.el7 - - - x86_64 - C library for parsing command line parameters - 88516 - rpm - 06/08/2018 - popt - CentOS - 1.13-16.el7 - - - x86_64 - Userspace programs for btrfs - 4142307 - rpm - 06/08/2018 - btrfs-progs - CentOS - 4.9.1-1.el7 - - - x86_64 - SELinux binary policy manipulation library - 686568 - rpm - 06/08/2018 - libsepol - CentOS - 2.5-8.1.el7 - - - x86_64 - Shared library for interfacing with sysfs - 149365 - rpm - 06/08/2018 - libsysfs - CentOS - 2.1.0-16.el7 - - - x86_64 - Dynamic library for access control list support - 37056 - rpm - 06/08/2018 - libacl - CentOS - 2.2.51-14.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters - 811140 - rpm - 06/08/2018 - iwl105-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - A portable foreign function interface library - 47766 - rpm - 06/08/2018 - libffi - CentOS - 3.0.13-18.el7 - - - noarch - Firmware for Intel(R) Centrino Wireless-N 2000 Series Adapters - 817336 - rpm - 06/08/2018 - iwl2000-firmware - CentOS - 18.168.6.1-62.el7 - - - x86_64 - SELinux library and simple utilities - 217874 - rpm - 06/08/2018 - libselinux - CentOS - 2.5-12.el7 - - - noarch - Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors - 1160404 - rpm - 06/08/2018 - iwl5000-firmware - CentOS - 8.83.5.1_1-62.el7 - - - x86_64 - Pattern matching utilities - 1195131 - rpm - 06/08/2018 - grep - CentOS - 2.20-3.el7 - - - noarch - Firmware for the Hauppauge PVR 250/350/150/500/USB2 model series - 857256 - rpm - 06/08/2018 - ivtv-firmware - CentOS - 20080701-26.el7 - - - x86_64 - Key utilities library - 42138 - rpm - 06/08/2018 - keyutils-libs - CentOS - 1.5.8-3.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters - 459032 - rpm - 06/08/2018 - iwl100-firmware - CentOS - 39.31.5.1-62.el7 - - - x86_64 - Main loop abstraction library - 23060 - rpm - 06/08/2018 - libverto - CentOS - 0.2.5-4.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters - 1242884 - rpm - 06/08/2018 - iwl6000g2a-firmware - CentOS - 17.168.5.3-62.el7 - - - x86_64 - System trust module from p11-kit - 437261 - rpm - 06/08/2018 - p11-kit-trust - CentOS - 0.23.5-3.el7 - - - noarch - Firmware for Intel(R) Dual Band Wireless-AC 7265 Series Adapters - 53043488 - rpm - 06/08/2018 - iwl7265-firmware - CentOS - 22.0.7.0-62.el7 - - - x86_64 - CentOS Linux release file - 40173 - rpm - 06/08/2018 - centos-release - CentOS - 7-5.1804.el7.centos - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6000 AGN Adapter - 576068 - rpm - 06/08/2018 - iwl6000-firmware - CentOS - 9.221.4.1-62.el7 - - - x86_64 - A set of basic GNU tools commonly used in shell scripts - 14588989 - rpm - 06/08/2018 - coreutils - CentOS - 8.22-21.el7 - - - noarch - Firmware for Intel(R) Wireless WiFi Link 6030 Series Adapters - 1261132 - rpm - 06/08/2018 - iwl6000g2b-firmware - CentOS - 17.168.5.2-62.el7 - - - x86_64 - Libraries for decoding LZMA compression - 239967 - rpm - 06/08/2018 - xz-libs - CentOS - 5.2.2-1.el7 - - - (none) - gpg(Rudder Project (RPM release key) <security@rudder-project.org>) - 0 - rpm - 06/08/2018 - gpg-pubkey - 6f07d355-509cdb91 - - - x86_64 - Block device ID library - 261805 - rpm - 06/08/2018 - libblkid - CentOS - 2.23.2-52.el7 - - - noarch - Establish an ISA relationship with base classes at compile time - 8141 - rpm - 06/08/2018 - perl-parent - CentOS - 0.225-244.el7 - - - x86_64 - The Berkeley DB database library for C - 1858008 - rpm - 06/08/2018 - libdb - CentOS - 5.3.21-24.el7 - - - noarch - Format POD source into various output formats - 287679 - rpm - 06/08/2018 - perl-podlators - CentOS - 2.5.1-3.el7 - - - x86_64 - Library to read and write ELF files - 936931 - rpm - 06/08/2018 - elfutils-libelf - CentOS - 0.170-4.el7 - - - noarch - Parse text into an array of tokens or array of arrays - 16431 - rpm - 06/08/2018 - perl-Text-ParseWords - CentOS - 3.29-4.el7 - - - x86_64 - Library for error values used by GnuPG components - 350865 - rpm - 06/08/2018 - libgpg-error - CentOS - 1.12-3.el7 - - - x86_64 - Character encodings in Perl - 10176350 - rpm - 06/08/2018 - perl-Encode - CentOS - 2.51-7.el7 - - - x86_64 - Dynamic library for libaudit - 256226 - rpm - 06/08/2018 - audit-libs - CentOS - 2.8.1-3.el7 - - - x86_64 - Macros for rpmbuild - 5134 - rpm - 06/08/2018 - perl-macros - CentOS - 5.16.3-292.el7 - - - x86_64 - The GNU data compression program - 250440 - rpm - 06/08/2018 - gzip - CentOS - 1.5-10.el7 - - - x86_64 - Persistence for Perl data structures - 181031 - rpm - 06/08/2018 - perl-Storable - CentOS - 2.45-3.el7 - - - x86_64 - Convenience library for kernel netlink sockets - 864984 - rpm - 06/08/2018 - libnl3 - CentOS - 3.2.28-4.el7 - - - noarch - Perl pragma to declare constants - 26364 - rpm - 06/08/2018 - perl-constant - CentOS - 1.27-2.el7 - - - x86_64 - Library that implements an embeddable SQL database engine - 814231 - rpm - 06/08/2018 - sqlite - CentOS - 3.7.17-8.el7 - - - x86_64 - Networking constants and support functions - 114497 - rpm - 06/08/2018 - perl-Socket - CentOS - 2.010-4.el7 - - - x86_64 - The GNU versions of find utilities (find and xargs) - 1855626 - rpm - 06/08/2018 - findutils - CentOS - 4.5.11-5.el7 - - - x86_64 - High resolution alarm, sleep, gettimeofday, interval timers - 94069 - rpm - 06/08/2018 - perl-Time-HiRes - CentOS - 1.9725-3.el7 - - - x86_64 - A GNU collection of diff utilities - 1065157 - rpm - 06/08/2018 - diffutils - CentOS - 3.3-4.el7 - - - x86_64 - A selection of general-utility scalar and list subroutines - 67994 - rpm - 06/08/2018 - perl-Scalar-List-Utils - CentOS - 1.27-248.el7 - - - x86_64 - Device mounting library - 273965 - rpm - 06/08/2018 - libmount - CentOS - 2.23.2-52.el7 - - - noarch - Create or remove directory trees - 50067 - rpm - 06/08/2018 - perl-File-Path - CentOS - 2.09-2.el7 - - - x86_64 - Shared MIME information database - 2379317 - rpm - 06/08/2018 - shared-mime-info - CentOS - 1.8-4.el7 - - - x86_64 - Perl interpreter-based threads - 98615 - rpm - 06/08/2018 - perl-threads - CentOS - 1.87-4.el7 - - - x86_64 - A utility for determining file types - 67368 - rpm - 06/08/2018 - file - CentOS - 5.11-33.el7 - - - noarch - Framework for parsing POD documentation - 538320 - rpm - 06/08/2018 - perl-Pod-Simple - CentOS - 3.28-4.el7 - - - x86_64 - A CSS2 parsing library - 320686 - rpm - 06/08/2018 - libcroco - CentOS - 0.6.11-1.el7 - - - x86_64 - Practical Extraction and Report Language - 23544135 - rpm - 06/08/2018 - perl - CentOS - 5.16.3-292.el7 - - - x86_64 - An extensible library which provides authentication for applications - 2630324 - rpm - 06/08/2018 - pam - CentOS - 1.1.8-22.el7 - - - x86_64 - YAML 1.1 parser and emitter written in C - 132993 - rpm - 06/08/2018 - libyaml - CentOS - 0.1.4-11.el7_0 - - - x86_64 - Network Security Services Softoken Module - 1122430 - rpm - 06/08/2018 - nss-softokn - CentOS - 3.34.0-2.el7 - - - x86_64 - Network Security Services - 2474103 - rpm - 06/08/2018 - nss - CentOS - 3.34.0-4.el7 - - - x86_64 - Apache Portable Runtime Utility library - 198751 - rpm - 07/09/2018 - apr-util - CentOS - 1.5.2-6.el7 - - - x86_64 - Command line interface utils for libnl3 - 706246 - rpm - 06/08/2018 - libnl3-cli - CentOS - 3.2.28-4.el7 - - - noarch - Helper application and MIME type associations for file types - 63360 - rpm - 07/09/2018 - mailcap - CentOS - 2.1.41-2.el7 - - - x86_64 - Shared libraries needed by applications which use Cyrus SASL - 396911 - rpm - 06/08/2018 - cyrus-sasl-lib - CentOS - 2.1.26-23.el7 - - - x86_64 - The NET-SNMP runtime client libraries - 3067528 - rpm - 17/09/2018 - net-snmp-libs - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - Parts of the groff formatting system required to display manual pages - 3453946 - rpm - 06/08/2018 - groff-base - CentOS - 1.22.2-8.el7 - - - x86_64 - The NET-SNMP runtime agent libraries - 2152296 - rpm - 17/09/2018 - net-snmp-agent-libs - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - GNU Unicode string library - 1145761 - rpm - 06/08/2018 - libunistring - CentOS - 0.9.3-9.el7 - - - x86_64 - A collection of SNMP protocol tools and libraries - 902986 - rpm - 17/09/2018 - net-snmp - CentOS - 5.7.2-33.el7_5.2 - - - x86_64 - The NetBSD Editline library - 244257 - rpm - 06/08/2018 - libedit - CentOS - 3.0-12.20121213cvs.el7 - - - x86_64 - VIM filesystem layout - 0 - rpm - 25/03/2019 - vim-filesystem - CentOS - 7.4.160-5.el7 - - - x86_64 - Netfilter netlink userspace library - 47123 - rpm - 06/08/2018 - libnfnetlink - CentOS - 1.0.1-4.el7 - - - x86_64 - A version of the VIM editor which includes recent enhancements - 2296666 - rpm - 25/03/2019 - vim-enhanced - CentOS - 7.4.160-5.el7 - - - x86_64 - Data compression library with very fast (de)compression - 165360 - rpm - 06/08/2018 - lzo - CentOS - 2.06-8.el7 - - - x86_64 - The shared library for the S-Lang extension language - 1881912 - rpm - 06/08/2018 - slang - CentOS - 2.2.4-11.el7 - - - x86_64 - Settings tool for Ethernet NICs - 349848 - rpm - 06/08/2018 - ethtool - CentOS - 4.8-7.el7 - - - x86_64 - C library for encoding, decoding and manipulating JSON data - 74998 - rpm - 06/08/2018 - jansson - CentOS - 2.10-1.el7 - - - x86_64 - Runtime libraries for Python - 24713315 - rpm - 06/08/2018 - python-libs - CentOS - 2.7.5-68.el7 - - - noarch - Module to simplify usage of decorators - 72291 - rpm - 06/08/2018 - python-decorator - CentOS - 3.4.0-3.el7 - - - x86_64 - Linux PCI library - 72691 - rpm - 06/08/2018 - pciutils-libs - CentOS - 3.5.1-3.el7 - - - noarch - Miscellaneous convenience, extension and workaround code for Python - 61353 - rpm - 06/08/2018 - python-slip - CentOS - 0.4.0-4.el7 - - - noarch - Linux /proc abstraction classes - 96639 - rpm - 06/08/2018 - python-linux-procfs - CentOS - 0.4.9-3.el7 - - - x86_64 - A fast metadata parser for yum - 58789 - rpm - 06/08/2018 - yum-metadata-parser - CentOS - 1.1.4-10.el7 - - - x86_64 - Python bindings for apps which will manipulate perf events - 331917 - rpm - 06/08/2018 - python-perf - CentOS - 3.10.0-862.el7 - - - noarch - Python Module for Accessing and Modifying Configuration Data in INI files - 115166 - rpm - 06/08/2018 - python-iniparse - CentOS - 0.4-9.el7 - - - x86_64 - Netfilter conntrack userspace library - 143566 - rpm - 06/08/2018 - libnetfilter_conntrack - CentOS - 1.0.6-1.el7_3 - - - x86_64 - Advanced IP routing and network device configuration tools - 1788731 - rpm - 06/08/2018 - iproute - CentOS - 4.11.0-14.el7 - - - x86_64 - GNU libraries and utilities for producing multi-lingual messages - 5029340 - rpm - 06/08/2018 - gettext - CentOS - 0.19.8.1-2.el7 - - - x86_64 - Library for controlling team network device - 100852 - rpm - 06/08/2018 - libteam - CentOS - 1.27-4.el7 - - - x86_64 - Shared library providing the IP sets functionality - 270690 - rpm - 06/08/2018 - ipset-libs - CentOS - 6.29-1.el7 - - - x86_64 - A tool for determining compilation options - 105522 - rpm - 06/08/2018 - pkgconfig - CentOS - 0.27.1-4.el7 - - - x86_64 - Python 2 bindings for GObject Introspection base package - 1123114 - rpm - 06/08/2018 - python-gobject-base - CentOS - 3.22.0-1.el7_4.1 - - - x86_64 - Command line tool for updating bootloader configs - 127346 - rpm - 06/08/2018 - grubby - CentOS - 8.28-23.el7 - - - noarch - Firmware files used by the Linux kernel - 177359870 - rpm - 06/08/2018 - linux-firmware - CentOS - 20180220-62.git6d51311.el7 - - - x86_64 - A GNU collection of binary utilities - 25148535 - rpm - 06/08/2018 - binutils - CentOS - 2.27-27.base.el7 - - - noarch - CentOS-related icons and pictures - 22548401 - rpm - 06/08/2018 - centos-logos - CentOS - 70.0.6-3.el7.centos - - - x86_64 - Library files for fipscheck - 11466 - rpm - 06/08/2018 - fipscheck-lib - CentOS - 1.4.1-6.el7 - - - x86_64 - A library for getting files from web servers - 435192 - rpm - 06/08/2018 - libcurl - CentOS - 7.29.0-46.el7 - - - x86_64 - Libraries for manipulating RPM packages - 611384 - rpm - 06/08/2018 - rpm-libs - CentOS - 4.11.3-32.el7 - - - x86_64 - LDAP support libraries - 1037307 - rpm - 06/08/2018 - openldap - CentOS - 2.4.44-13.el7 - - - x86_64 - A Python interface to libcurl - 241513 - rpm - 06/08/2018 - python-pycurl - CentOS - 7.19.0-19.el7 - - - x86_64 - The shared libraries required for MariaDB/MySQL clients - 4614814 - rpm - 06/08/2018 - mariadb-libs - CentOS - 5.5.56-2.el7 - - - x86_64 - SELinux libselinux utilies - 172738 - rpm - 06/08/2018 - libselinux-utils - CentOS - 2.5-12.el7 - - - x86_64 - Access control list utilities - 201225 - rpm - 06/08/2018 - acl - CentOS - 2.2.51-14.el7 - - - x86_64 - Utilities from the general purpose cryptography library with TLS implementation - 833707 - rpm - 06/08/2018 - openssl - CentOS - 1.0.2k-12.el7 - - - x86_64 - JavaScript interpreter and libraries - 4045213 - rpm - 06/08/2018 - mozjs17 - CentOS - 17.0.0-20.el7 - - - x86_64 - Command line interface parsing library - 73009 - rpm - 06/08/2018 - libss - CentOS - 1.42.9-11.el7 - - - x86_64 - Libraries for working with the DNS protocol - 1816016 - rpm - 06/08/2018 - bind-libs-lite - CentOS - 9.9.4-61.el7 - - - x86_64 - A free and portable font rendering engine - 898651 - rpm - 06/08/2018 - freetype - CentOS - 2.4.11-15.el7 - - - x86_64 - Libraries for the kernels-tools - 18640 - rpm - 06/08/2018 - kernel-tools-libs - CentOS - 3.10.0-862.el7 - - - x86_64 - Enhanced seccomp library - 304131 - rpm - 06/08/2018 - libseccomp - CentOS - 2.3.1-3.el7 - - - x86_64 - QR Code encoding library - Shared libraries - 126732 - rpm - 06/08/2018 - qrencode-libs - CentOS - 3.4.1-3.el7 - - - x86_64 - Device-mapper Persistent Data Tools - 1294094 - rpm - 06/08/2018 - device-mapper-persistent-data - CentOS - 0.7.3-3.el7 - - - x86_64 - SELinux binary policy manipulation library - 302369 - rpm - 06/08/2018 - libsemanage - CentOS - 2.5-11.el7 - - - x86_64 - A privileged helper for utmp/wtmp updates - 49749 - rpm - 06/08/2018 - libutempter - CentOS - 1.1.6-4.el7 - - - x86_64 - Partition device manager for device-mapper devices - 41363 - rpm - 06/08/2018 - kpartx - CentOS - 0.4.9-119.el7 - - - x86_64 - A collection of basic system utilities - 8642769 - rpm - 06/08/2018 - util-linux - CentOS - 2.23.2-52.el7 - - - x86_64 - Linux kernel module management utilities - 243127 - rpm - 06/08/2018 - kmod - CentOS - 20-21.el7 - - - x86_64 - Cryptsetup shared library - 969908 - rpm - 06/08/2018 - cryptsetup-libs - CentOS - 1.7.4-4.el7 - - - x86_64 - systemd libraries - 1263560 - rpm - 06/08/2018 - systemd-libs - CentOS - 219-57.el7 - - - x86_64 - A System and Service Manager - 24389374 - rpm - 06/08/2018 - systemd - CentOS - 219-57.el7 - - - noarch - Default yama attach scope sysctl setting - 1810 - rpm - 06/08/2018 - elfutils-default-yama-scope - CentOS - 0.170-4.el7 - - - x86_64 - Rules for polkit to add compatibility with pklocalauthority - 82409 - rpm - 06/08/2018 - polkit-pkla-compat - CentOS - 0.1-4.el7 - - - x86_64 - The inittab file and the /etc/init.d scripts - 1519968 - rpm - 06/08/2018 - initscripts - CentOS - 9.49.41-1.el7 - - - x86_64 - Device-mapper event daemon shared library - 50636 - rpm - 06/08/2018 - device-mapper-event-libs - CentOS - 1.02.146-4.el7 - - - x86_64 - SELinux policy core utilities - 5161496 - rpm - 06/08/2018 - policycoreutils - CentOS - 2.5-22.el7 - - - x86_64 - Support tools for GRUB. - 10075694 - rpm - 06/08/2018 - grub2-tools - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Utility for running regular jobs - 41611 - rpm - 06/08/2018 - cronie-anacron - CentOS - 1.4.11-19.el7 - - - noarch - Root crontab files used to schedule the execution of programs - 3700 - rpm - 06/08/2018 - crontabs - CentOS - 1.11-6.20121102git.el7 - - - x86_64 - Libraries for adding NetworkManager support to applications (new API). - 6393187 - rpm - 06/08/2018 - NetworkManager-libnm - CentOS - 1.10.2-13.el7 - - - x86_64 - Common files used by ISC dhcp client and server - 245529 - rpm - 06/08/2018 - dhcp-common - CentOS - 4.2.5-68.el7.centos - - - x86_64 - dracut modules to build a dracut initramfs with network support - 147466 - rpm - 06/08/2018 - dracut-network - CentOS - 033-535.el7 - - - x86_64 - Direct Rendering Manager runtime library - 366342 - rpm - 06/08/2018 - libdrm - CentOS - 2.4.83-2.el7 - - - x86_64 - Bootloader with support for Linux, Multiboot, and more - 0 - rpm - 06/08/2018 - grub2-pc - CentOS - 2.02-0.65.el7.centos.2 - - - x86_64 - Device-mapper event daemon - 42786 - rpm - 06/08/2018 - device-mapper-event - CentOS - 1.02.146-4.el7 - - - x86_64 - WPA/WPA2/IEEE 802.1X Supplicant - 4411276 - rpm - 06/08/2018 - wpa_supplicant - CentOS - 2.6-9.el7 - - - x86_64 - A helper program to download firmware into FX and FX2 EZ-USB devices - 42589 - rpm - 06/08/2018 - fxload - CentOS - 2002_04_11-16.el7 - - - x86_64 - ALSA tools for uploading firmware to some soundcards - 86387 - rpm - 06/08/2018 - alsa-tools-firmware - CentOS - 1.1.0-1.el7 - - - x86_64 - Team network device control daemon - 278067 - rpm - 06/08/2018 - teamd - CentOS - 1.27-4.el7 - - - x86_64 - D-Bus Python Bindings - 848122 - rpm - 06/08/2018 - dbus-python - CentOS - 1.1.1-9.el7 - - - noarch - Python2 bindings for firewalld - 1859178 - rpm - 06/08/2018 - python-firewall - CentOS - 0.4.4.4-14.el7 - - - x86_64 - Plymouth core libraries - 222848 - rpm - 06/08/2018 - plymouth-core-libs - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - Graphical Boot Animation and Logger - 233311 - rpm - 06/08/2018 - plymouth - CentOS - 0.8.9-0.31.20140113.el7.centos - - - x86_64 - List SCSI devices (or hosts) and associated information - 90475 - rpm - 06/08/2018 - lsscsi - CentOS - 0.27-6.el7 - - - x86_64 - libnuma libraries - 50752 - rpm - 06/08/2018 - numactl-libs - CentOS - 2.0.9-7.el7 - - - x86_64 - Tool to analyse BIOS DMI data - 247119 - rpm - 06/08/2018 - dmidecode - CentOS - 3.0-5.el7 - - - x86_64 - The GNU Portable Threads library - 267851 - rpm - 06/08/2018 - pth - CentOS - 2.0.7-23.el7 - - - x86_64 - Libraries for building and signing RPM packages - 166664 - rpm - 06/08/2018 - rpm-build-libs - CentOS - 4.11.3-32.el7 - - - x86_64 - GnuPG Made Easy - high level crypto API - 547534 - rpm - 06/08/2018 - gpgme - CentOS - 1.3.2-5.el7 - - - noarch - Yum plugin which chooses fastest repository from a mirrorlist - 53897 - rpm - 06/08/2018 - yum-plugin-fastestmirror - CentOS - 1.1.31-45.el7 - - - noarch - Legacy data for kbd package - 503608 - rpm - 06/08/2018 - kbd-legacy - CentOS - 1.15.5-13.el7 - - - noarch - A dynamic adaptive system tuning daemon - 739225 - rpm - 06/08/2018 - tuned - CentOS - 2.9.0-1.el7 - - - x86_64 - IRQ balancing daemon - 71251 - rpm - 06/08/2018 - irqbalance - CentOS - 1.0.7-11.el7 - - - x86_64 - Utilities for the IBM Power Linux RAID adapters - 955982 - rpm - 06/08/2018 - iprutils - CentOS - 2.4.15.1-1.el7 - - - Virtual - 10485 - 0x1af4 - vda - disk - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /usr/bin/perl - v5.16.3 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - wz--n- - 0 - 2 - 1 - 9659 - 4.19 - centos_prod-www-02 - RBHu0y-AolP-WCG7-t3sA-L3CK-XMXB-0rpJ0L - - - prod-www-02-2018-08-06-18-14-43 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs.sign deleted file mode 100644 index 9e544530a57..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/prod-www-02-6c199162-c23b-47f7-a27b-e0ef93994a09.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=3d282420dfc2644f2ae6bb600b67831f547465c5832b75fcae5400e05688c15151ff20b4400e78facc2fe5a872dd0ff2c2965bf11285cf261e04f6fd9331756faa9af229ea926a2991a7496691686b08a28f54459f31089d46b29280811398297e666654afcdcb6bcacc8c68d78819b801b4b6767b6a0506b75965c83cb02f1dae9847f41b05d772b344d20f29a00ed367243b54d02ca56bc023a1553508f0b62c013d41bc851bfc40fcf444483b1a24795feb8f8ed1b1ad1d930302daf0d69ee225cdbe5b217a9b91ca886daa03dfede26813ca3faf015a935208b92e9844171689f4b4939cffb59867bcb475d907b2b8b1c11bab05f34e8003883cfdf9fc156f8d1e33ff5d686e93efd11ff692417c487af61dc832810178ba813b3f00d3e4f4603af51e27df6e5cb87c043d633cebc20bc72e665c2c3d6f3de223be3281d58466819ce1b5bb36a2bd2a47b152ad4aaca0046ab1c142cf2d8e48be0ea7271971699b22ae6f1f7cbff21dac6d2f2d72ea5c427e661e232dc78037570d9735993af51ba25ab1856038065154e106e7e6a8ca124fcb7a454ce5211e9eeb821bd4bf612890290acd59723312961eabdf4d42e78f2c58adbdb8cfc343e269c553ac0643e899b8aaba229d798bcf1e643f711b91043b8f395a891d3d25b7f89d8d197da84715df149ca3a72859ff4da2ee0c495ce94a1b52e25c0af4f110e472fbef -hostname=prod-www-02 -keydate=2018-08-06 18:14:32.595739251 +0200 -keyid=8B4CE565 diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs deleted file mode 100644 index 1f9599df7bd..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs +++ /dev/null @@ -1,4745 +0,0 @@ - - - - - 2019-04-02 11:45:27 - - - 04/01/2014 - SeaBIOS - 1.10.2-1 - QEMU - Standard PC (i440FX + PIIX, 1996) - - - 440FX - 82441FX PMC [Natoma] - Intel Corporation - 440FX - 82441FX PMC [Natoma] - 0600 - 00:00.0 - 1237 - 02 - Host bridge - 8086 - - - 82371SB PIIX3 ISA [Natoma/Triton II] - Intel Corporation - 82371SB PIIX3 ISA [Natoma/Triton II] - 0601 - 00:01.0 - 7000 - ISA bridge - 8086 - - - 82371SB PIIX3 IDE [Natoma/Triton II] - ata_piix - Intel Corporation - 82371SB PIIX3 IDE [Natoma/Triton II] - 0101 - 00:01.1 - 7010 - IDE interface - 8086 - - - 82371AB/EB/MB PIIX4 ACPI - piix4_smbus - Intel Corporation - 82371AB/EB/MB PIIX4 ACPI - 0680 - 00:01.3 - 7113 - 03 - Bridge - 8086 - - - QXL paravirtual graphic card - qxl - Red Hat, Inc. - QXL paravirtual graphic card - 0300 - 00:02.0 - 0100 - 04 - VGA compatible controller - 1b36 - - - 82540EM Gigabit Ethernet Controller - e1000 - Intel Corporation - 82540EM Gigabit Ethernet Controller - 0200 - 00:03.0 - 100e - 03 - Ethernet controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #1 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #1 - 0c03 - 00:04.0 - 2934 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #2 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #2 - 0c03 - 00:04.1 - 2935 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB UHCI Controller #3 - uhci_hcd - Intel Corporation - 82801I (ICH9 Family) USB UHCI Controller #3 - 0c03 - 00:04.2 - 2936 - 03 - USB controller - 8086 - - - 82801I (ICH9 Family) USB2 EHCI Controller #1 - ehci - Intel Corporation - 82801I (ICH9 Family) USB2 EHCI Controller #1 - 0c03 - 00:04.7 - 293a - 03 - USB controller - 8086 - - - Virtio memory balloon - virtio - Red Hat, Inc - Virtio memory balloon - 00ff - 00:05.0 - 1002 - Unclassified device - 1af4 - - - i386 - 1 - Other - 6 - 63 06 00 00 FD FB 8B 07 - Intel - 6 - QEMU Virtual CPU version 2.5+ - 3 - 1 - - - ext4 - 3973 - f6357ba9-9294-4fd5-8e7e-e517a1a7f51a - 7935 - / - /dev/sda1 - - - CPLUS_INCLUDE_PATH - /usr/lib/qt/include:/usr/lib/qt/include - - - LESS - -M - - - SSH_CLIENT - 192.168.90.75 56966 22 - - - PWD - /var/rudder - - - SSH_TTY - /dev/pts/0 - - - LC_COLLATE - C - - - PATH - /usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/qt/bin - - - SHELL - /bin/bash - - - TERM - xterm-256color - - - MINICOM - -c on - - - G_BROKEN_FILENAMES - 1 - - - PS2 - > - - - MAIL - /var/mail/root - - - PKG_CONFIG_PATH - /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig - - - QT4DIR - /usr/lib/qt - - - SSH_CONNECTION - 192.168.90.75 56966 192.168.180.120 22 - - - DEBIAN_FRONTEND - noninteractive - - - LS_COLORS - no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.bat=01;32:*.BAT=01;32:*.btm=01;32:*.BTM=01;32:*.cmd=01;32:*.CMD=01;32:*.com=01;32:*.COM=01;32:*.dll=01;32:*.DLL=01;32:*.exe=01;32:*.EXE=01;32:*.7z=01;31:*.ace=01;31:*.ACE=01;31:*.arj=01;31:*.bz2=01;31:*.cpio=01;31:*.deb=01;31:*.dz=01;31:*.gz=01;31:*.jar=01;31:*.lzh=01;31:*.lzma=01;31:*.rar=01;31:*.RAR=01;31:*.rpm=01;31:*.rz=01;31:*.tar=01;31:*.taz=01;31:*.tb2=01;31:*.tbz2=01;31:*.tbz=01;31:*.tgz=01;31:*.tlz=01;31:*.trz=01;31:*.txz=01;31:*.tz=01;31:*.tz2=01;31:*.xz=01;31:*.z=01;31:*.Z=01;31:*.zip=01;31:*.ZIP=01;31:*.zoo=01;31:*.aac=01;35:*.AAC=01;35:*.anx=01;35:*.asf=01;35:*.ASF=01;35:*.au=01;35:*.axa=01;35:*.axv=01;35:*.avi=01;35:*.AVI=01;35:*.bmp=01;35:*.BMP=01;35:*.divx=01;35:*.DIVX=01;35:*.flac=01;35:*.FLAC=01;35:*.gif=01;35:*.GIF=01;35:*.jpg=01;35:*.JPG=01;35:*.jpeg=01;35:*.JPEG=01;35:*.m2a=01;35:*.M2A=01;35:*.m2v=01;35:*.M2V=01;35:*.m4a=01;35:*.M4A=01;35:*.m4p=01;35:*.M4P=01;35:*.m4v=01;35:*.M4V=01;35:*.mid=01;35:*.midi=01;35:*.mka=01;35:*.mkv=01;35:*.MKV=01;35:*.mov=01;35:*.MOV=01;35:*.mp3=01;35:*.MP3=01;35:*.mp4=01;35:*.MP4=01;35:*.mp4v=01;35:*.mpc=01;35:*.MPC=01;35:*.mpeg=01;35:*.MPEG=01;35:*.mpg=01;35:*.MPG=01;35:*.nuv=01;35:*.oga=01;35:*.ogv=01;35:*.ogx=01;35:*.ogg=01;35:*.OGG=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.PNG=01;35:*.ppm=01;35:*.qt=01;35:*.ra=01;35:*.RA=01;35:*.ram=01;35:*.RAM=01;35:*.rm=01;35:*.RM=01;35:*.spx=01;35:*.svg=01;35:*.svgz=01;35:*.tga=01;35:*.TGA=01;35:*.tif=01;35:*.TIF=01;35:*.tiff=01;35:*.TIFF=01;35:*.vob=01;35:*.VOB=01;35:*.wav=01;35:*.WAV=01;35:*.wma=01;35:*.WMA=01;35:*.wmv=01;35:*.WMV=01;35:*.xbm=01;35:*.xcf=01;35:*.xpm=01;35:*.xspf=01;35:*.xwd=01;35:*.XWD=01;35:*.xvid=01;35: - - - HOSTNAME - slackware-14-1-64.labo.normation.com - - - INPUTRC - /etc/inputrc - - - LOGNAME - root - - - MANPATH - /usr/local/man:/usr/man - - - LS_OPTIONS - -F -b -T 0 --color=auto - - - _ - /opt/rudder/bin/perl - - - BASEDIR - /opt/rudder/share/commands - - - RUDDER_BIN - /usr/bin/rudder - - - GDK_USE_XFT - 1 - - - SHLVL - 4 - - - T1LIB_CONFIG - /usr/share/t1lib/t1lib.config - - - LESSOPEN - |lesspipe.sh %s - - - HOME - /root - - - PS1 - \u@\h:\w\$ - - - LANG - en_US - - - USER - root - - - i686-linux-thread-multi - Other - 131071 - Tue Apr 2 11:28 - 192.168.180.1 - 192.168.180.1 - 2 - 192.168.180.120 - root - 2015 - slackware-14-1-64 - #2 SMP Wed Oct 23 17:13:14 CDT 2013 - Slackware 14.1 - 3.10.17-smp - 1 - QEMU Virtual CPU version 2.5+ - root - 875702CC-A3B7-42A0-8F7B-2944882BA2B4 - QEMU - priv.normation.com - - - AT Translated Set 2 keyboard - AT Translated Set 2 keyboard - sysrq - - - Speakup - Speakup - Keyboard - - - QEMU QEMU USB Tablet - QEMU QEMU USB Tablet - Pointing - - - ImExPS/2 Generic Explorer Mouse - ImExPS/2 Generic Explorer Mouse - Pointing - - - 0 - root - root - sync - shutdown - halt - operator - root - - - 1 - root - bin - bin - bin - - - 2 - root - bin - daemon - daemon - daemon - - - 3 - root - bin - adm - sys - - - 4 - root - adm - daemon - adm - adm - - - 6 - root - adm - disk - - - 7 - lp - lp - lp - - - 10 - root - wheel - - - 12 - mail - mail - mail - - - 13 - news - news - news - - - 14 - uucp - uucp - uucp - - - 16 - uucp - dialout - - - 25 - smmsp - smmsp - smmsp - - - 33 - sshd - sshd - sshd - - - 90 - pop - pop - pop - - - 98 - nobody - nobody - - - /root - 0 - root - - /bin/bash - - - /bin - 1 - bin - bin - /bin/false - - - /sbin - 2 - daemon - daemon - /bin/false - - - /var/log - 3 - adm - adm - /bin/false - - - /var/spool/lpd - 4 - lp - lp - /bin/false - - - /sbin - 5 - sync - sync - /bin/sync - - - /sbin - 6 - shutdown - shutdown - /sbin/shutdown - - - /sbin - 7 - halt - halt - /sbin/halt - - - / - 8 - mail - mail - /bin/false - - - /usr/lib/news - 9 - news - news - /bin/false - - - /var/spool/uucppublic - 10 - uucp - uucp - /bin/false - - - /root - 11 - operator - operator - /bin/bash - - - /usr/games - 12 - games - games - /bin/false - - - /home/ftp - 14 - ftp - - /bin/false - - - /var/spool/clientmqueue - 25 - smmsp - smmsp - /bin/false - - - /var/lib/mysql - 27 - mysql - MySQL - /bin/false - - - / - 32 - rpc - RPC portmap user - /bin/false - - - / - 33 - sshd - sshd - /bin/false - - - /var/state/gdm - 42 - gdm - GDM - /bin/bash - - - / - 51 - oprofile - oprofile - /bin/false - - - /srv/httpd - 80 - apache - User for Apache - /bin/false - - - /var/run/dbus - 81 - messagebus - User for D-BUS - /bin/false - - - /var/run/hald - 82 - haldaemon - User for HAL - /bin/false - - - / - 90 - pop - POP - /bin/false - - - / - 99 - nobody - nobody - /bin/false - - - 2048 - DIMM 0 - DIMM - QEMU - Multi-bit ECC - 1 - RAM - - - lo - 127.0.0.1 - 255.0.0.0 - 127.0.0.0 - 00:00:00:00:00:00 - Up - loopback - 1 - - - lo - ::1 - fff0:: - :: - 00:00:00:00:00:00 - Up - loopback - 1 - - - eth0 - e1000 - 192.168.180.120 - 192.168.180.1 - 255.255.255.128 - 192.168.180.0 - 52:54:00:38:22:0e - 8086:100E:1AF4:1100 - 0000:00:03.0 - 1000 - Up - ethernet - 0 - - - eth0 - e1000 - fe80::5054:ff:fe38:220e - ffff:ffff:ffff:ffff:: - fe80:: - 52:54:00:38:22:0e - 8086:100E:1AF4:1100 - 0000:00:03.0 - 1000 - Up - ethernet - 0 - - - i686 - 2019-04-02 11:25:20 - priv.normation.com - slackware-14-1-64.priv.normation.com - Slackware 14.1 - 007f0100 - linux - 3.10.17-smp - Slackware - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcLgBof1/RZ+NcbU+keg5RWT4uh70ChC7dIUgMVnjqACdQrh7Q2lxL69h7IgRmpWk5pHfCvARUTHSeqAhPfyR0C3KeBMaKrxtXhPPI/nNEE5U/mqEm/d9z4GBM/WpgJQP9964Q+M/ScghBFuNZ0uN0TTFkhRZzcmyr6XekynEfltDLJx/h8u1jWy29wAfxioiIShE63+3mCBbC7o9PqU8ATnkp78DvKiyKqfXhyIiokM1RR6H/xbKh6nbi8ZoPhq8XwC8eo7+ILHD7MRDrbeokl5ls9LtQtYVHosD9Fyk46XV+BXhZrwhS8/nfo3zkASkLGnnLtSSdp0mm+1mvIFq5 - - Europe/Paris - +0200 - - 14.1 - - - init [3] - 0.1 - 0.0 - 1 - 2019-04-02 11:25 - ? - root - 2032 - - - [kthreadd] - 0.0 - 0.0 - 2 - 2019-04-02 11:25 - ? - root - 0 - - - [ksoftirqd/0] - 0.0 - 0.0 - 3 - 2019-04-02 11:25 - ? - root - 0 - - - [kworker/0:0H] - 0.0 - 0.0 - 5 - 2019-04-02 11:25 - ? - root - 0 - - - [migration/0] - 0.0 - 0.0 - 7 - 2019-04-02 11:25 - ? - root - 0 - - - [rcu_bh] - 0.0 - 0.0 - 8 - 2019-04-02 11:25 - ? - root - 0 - - - [rcu_sched] - 0.0 - 0.0 - 9 - 2019-04-02 11:25 - ? - root - 0 - - - [khelper] - 0.0 - 0.0 - 10 - 2019-04-02 11:25 - ? - root - 0 - - - [kdevtmpfs] - 0.0 - 0.0 - 11 - 2019-04-02 11:25 - ? - root - 0 - - - [netns] - 0.0 - 0.0 - 12 - 2019-04-02 11:25 - ? - root - 0 - - - [writeback] - 0.0 - 0.0 - 13 - 2019-04-02 11:25 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 14 - 2019-04-02 11:25 - ? - root - 0 - - - [kblockd] - 0.0 - 0.0 - 15 - 2019-04-02 11:25 - ? - root - 0 - - - [ata_sff] - 0.0 - 0.0 - 16 - 2019-04-02 11:25 - ? - root - 0 - - - [khubd] - 0.0 - 0.0 - 17 - 2019-04-02 11:25 - ? - root - 0 - - - [md] - 0.0 - 0.0 - 18 - 2019-04-02 11:25 - ? - root - 0 - - - [devfreq_wq] - 0.0 - 0.0 - 19 - 2019-04-02 11:25 - ? - root - 0 - - - [kworker/0:1] - 0.0 - 0.0 - 20 - 2019-04-02 11:25 - ? - root - 0 - - - [rpciod] - 0.0 - 0.0 - 21 - 2019-04-02 11:25 - ? - root - 0 - - - [khungtaskd] - 0.0 - 0.0 - 24 - 2019-04-02 11:25 - ? - root - 0 - - - [kswapd0] - 0.0 - 0.0 - 25 - 2019-04-02 11:25 - ? - root - 0 - - - [khugepaged] - 0.0 - 0.0 - 26 - 2019-04-02 11:25 - ? - root - 0 - - - [fsnotify_mark] - 0.0 - 0.0 - 27 - 2019-04-02 11:25 - ? - root - 0 - - - [nfsiod] - 0.0 - 0.0 - 28 - 2019-04-02 11:25 - ? - root - 0 - - - [jfsIO] - 0.0 - 0.0 - 29 - 2019-04-02 11:25 - ? - root - 0 - - - [jfsCommit] - 0.0 - 0.0 - 30 - 2019-04-02 11:25 - ? - root - 0 - - - [jfsSync] - 0.0 - 0.0 - 31 - 2019-04-02 11:25 - ? - root - 0 - - - [xfsalloc] - 0.0 - 0.0 - 32 - 2019-04-02 11:25 - ? - root - 0 - - - [xfs_mru_cache] - 0.0 - 0.0 - 33 - 2019-04-02 11:25 - ? - root - 0 - - - [xfslogd] - 0.0 - 0.0 - 34 - 2019-04-02 11:25 - ? - root - 0 - - - [ocfs2_wq] - 0.0 - 0.0 - 35 - 2019-04-02 11:25 - ? - root - 0 - - - [user_dlm] - 0.0 - 0.0 - 36 - 2019-04-02 11:25 - ? - root - 0 - - - [bioset] - 0.0 - 0.0 - 37 - 2019-04-02 11:25 - ? - root - 0 - - - [crypto] - 0.0 - 0.0 - 38 - 2019-04-02 11:25 - ? - root - 0 - - - [kthrotld] - 0.0 - 0.0 - 81 - 2019-04-02 11:25 - ? - root - 0 - - - [kworker/u2:1] - 0.0 - 0.0 - 82 - 2019-04-02 11:25 - ? - root - 0 - - - [cciss_scan] - 0.0 - 0.0 - 83 - 2019-04-02 11:25 - ? - root - 0 - - - [fc_exch_workque] - 0.0 - 0.0 - 84 - 2019-04-02 11:25 - ? - root - 0 - - - [fc_rport_eq] - 0.0 - 0.0 - 85 - 2019-04-02 11:25 - ? - root - 0 - - - [fcoethread/0] - 0.0 - 0.0 - 86 - 2019-04-02 11:25 - ? - root - 0 - - - [fnic_event_wq] - 0.0 - 0.0 - 87 - 2019-04-02 11:25 - ? - root - 0 - - - [scsi_eh_2] - 0.0 - 0.0 - 91 - 2019-04-02 11:25 - ? - root - 0 - - - [scsi_eh_3] - 0.0 - 0.0 - 92 - 2019-04-02 11:25 - ? - root - 0 - - - [exec-osm] - 0.0 - 0.0 - 93 - 2019-04-02 11:25 - ? - root - 0 - - - [block-osm] - 0.0 - 0.0 - 94 - 2019-04-02 11:25 - ? - root - 0 - - - [speakup] - 0.0 - 0.0 - 95 - 2019-04-02 11:25 - ? - root - 0 - - - [deferwq] - 0.0 - 0.0 - 97 - 2019-04-02 11:25 - ? - root - 0 - - - [kworker/0:1H] - 0.0 - 0.0 - 98 - 2019-04-02 11:25 - ? - root - 0 - - - [jbd2/sda1-8] - 0.0 - 0.0 - 99 - 2019-04-02 11:25 - ? - root - 0 - - - [ext4-dio-unwrit] - 0.0 - 0.0 - 100 - 2019-04-02 11:25 - ? - root - 0 - - - /sbin/udevd --daemon - 0.0 - 0.0 - 132 - 2019-04-02 11:25 - ? - root - 5248 - - - [kworker/0:2] - 0.0 - 0.0 - 216 - 2019-04-02 11:25 - ? - root - 0 - - - [kpsmoused] - 0.0 - 0.0 - 218 - 2019-04-02 11:25 - ? - root - 0 - - - [vballoon] - 0.0 - 0.0 - 219 - 2019-04-02 11:25 - ? - root - 0 - - - [ttm_swap] - 0.0 - 0.0 - 223 - 2019-04-02 11:25 - ? - root - 0 - - - [qxl_gc] - 0.0 - 0.0 - 224 - 2019-04-02 11:25 - ? - root - 0 - - - /usr/sbin/syslogd - 0.0 - 0.0 - 333 - 2019-04-02 11:25 - ? - root - 2092 - - - /usr/sbin/klogd -c 3 -x - 0.0 - 0.0 - 337 - 2019-04-02 11:25 - ? - root - 2032 - - - /sbin/udevd --daemon - 0.0 - 0.0 - 385 - 2019-04-02 11:25 - ? - root - 5244 - - - /sbin/udevd --daemon - 0.0 - 0.0 - 386 - 2019-04-02 11:25 - ? - root - 5244 - - - /sbin/dhcpcd -t 10 eth0 - 0.0 - 0.0 - 474 - 2019-04-02 11:25 - ? - root - 2300 - - - /usr/sbin/inetd - 0.0 - 0.0 - 548 - 2019-04-02 11:25 - ? - root - 2072 - - - /usr/sbin/sshd - 0.0 - 0.0 - 553 - 2019-04-02 11:25 - ? - root - 4988 - - - /usr/sbin/acpid - 0.0 - 0.0 - 561 - 2019-04-02 11:25 - ? - root - 2044 - - - /usr/bin/dbus-daemon --system - 0.0 - 0.0 - 574 - 2019-04-02 11:25 - ? - 81 - 2964 - - - /usr/sbin/console-kit-daemon - 0.0 - 0.2 - 577 - 2019-04-02 11:25 - ? - root - 20536 - - - /usr/libexec/polkitd --no-debug - 0.0 - 0.1 - 645 - 2019-04-02 11:25 - ? - root - 26260 - - - /usr/sbin/crond -l notice - 0.0 - 0.0 - 662 - 2019-04-02 11:26 - ? - root - 2276 - - - /usr/sbin/atd -b 15 -l 1 - 0.0 - 0.0 - 664 - 2019-04-02 11:26 - ? - daemon - 2268 - - - /usr/sbin/gpm -m /dev/mouse -t imps2 - 0.0 - 0.0 - 674 - 2019-04-02 11:27 - ? - root - 2360 - - - -bash - 0.0 - 0.0 - 676 - 2019-04-02 11:27 - tty1 - root - 3692 - - - /sbin/agetty 38400 tty2 linux - 0.0 - 0.0 - 677 - 2019-04-02 11:27 - tty2 - root - 2280 - - - /sbin/agetty 38400 tty3 linux - 0.0 - 0.0 - 678 - 2019-04-02 11:27 - tty3 - root - 2280 - - - /sbin/agetty 38400 tty4 linux - 0.0 - 0.0 - 679 - 2019-04-02 11:27 - tty4 - root - 2280 - - - /sbin/agetty 38400 tty5 linux - 0.0 - 0.0 - 680 - 2019-04-02 11:27 - tty5 - root - 2280 - - - /sbin/agetty 38400 tty6 linux - 0.0 - 0.0 - 681 - 2019-04-02 11:27 - tty6 - root - 2280 - - - sshd: root@pts/0 - 0.0 - 0.1 - 694 - 2019-04-02 11:28 - ? - root - 7576 - - - -bash - 0.0 - 0.0 - 696 - 2019-04-02 11:28 - pts/0 - root - 3744 - - - [kworker/u2:0] - 0.0 - 0.0 - 989 - 2019-04-02 11:30 - ? - root - 0 - - - /bin/sh /opt/rudder/share/commands/agent-inventory - 0.3 - 0.0 - 1726 - 2019-04-02 11:45 - pts/0 - root - 3376 - - - /bin/sh /opt/rudder/share/commands/agent-run -D force_inventory -b doInventory - 0.3 - 0.0 - 1744 - 2019-04-02 11:45 - pts/0 - root - 3388 - - - /var/rudder/cfengine-community/bin/cf-agent -Calways -K -b doInventory -D force_inventory - 35.3 - 0.3 - 1808 - 2019-04-02 11:45 - ? - root - 12688 - - - tee /var/rudder/cfengine-community/outputs/cf_slackware_14_1_64_labo_normation_com__1554198325_Tue_Apr__2_11_45_25_2019_0 - 0.0 - 0.0 - 1809 - 2019-04-02 11:45 - pts/0 - root - 2284 - - - /bin/sh /opt/rudder/share/commands/agent-run -D force_inventory -b doInventory - 0.0 - 0.0 - 1810 - 2019-04-02 11:45 - pts/0 - root - 3392 - - - awk -v info=0 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\033[1;32m -v darkgreen=\033[0;32m -v red=\033[1;31m -v yellow=\033[1;33m -v magenta=\033[1;35m -v normal=\033[0;39m\033[0;49m -v white=\033[0;02m -v cyan=\033[1;36m -v dblue=\033[0;34m -v dgreen=\033[0;32m -v timing=0 -v has_fflush=OK -v full_compliance=1 -v partial_run=1 -f /opt/rudder/share/commands/../lib/reports.awk - 0.0 - 0.0 - 1811 - 2019-04-02 11:45 - pts/0 - root - 4260 - - - /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs - 0.0 - 0.0 - 1978 - 2019-04-02 11:45 - ? - root - 3368 - - - /opt/rudder/bin/perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs - 47.0 - 1.2 - 1993 - 2019-04-02 11:45 - ? - root - 28348 - - - sh -c ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command 2>/dev/null - 0.0 - 0.0 - 2002 - 2019-04-02 11:45 - ? - root - 2876 - - - ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command - 0.0 - 0.0 - 2003 - 2019-04-02 11:45 - ? - root - 2724 - - - - cfengine-community - -----BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEAvQFK0H0YeUBEJlTOKmdn24Rea1HjyTbEUOKDRDaOVXi/HXlj25Qf -i/D2tPLOMGsPOMnsp0/2Xy+BNU8+j4c5DpQJTv9xRaVnJwnu7qNt5lPccfzqiS/z -d8JMFk1idPzb8mS2s+RJnMCIZJzcpqADLY6+hmV7oJyG7n8hSlbXPXiI4DhXiv1K -umCnmEeRlDbs3JMo5+70GoS9z3hDZY4JugjmEG0Eau5RYfNHrpPn0EZHEXD/OtnG -U5Nqnaue9HvTwf62xq+/6xfdfsODwEAJhcIyVxbt7GK066IPlgxRvTBCpyxMz+zu -PWXCO9ouElOULdfxaQk9xpDrOG94lcEsfzRvB5hDipGGwJR8VufT6OZOnakNJKfO -nJwST7XPvwKf/3KsONheSQ/4uzV41BMiY5ix90CuSGXNxHagxqQny/pxlERqGAQq -bPQfxFOolqsxegJ0NNN9fMAvFq5NIHcA+YtzYH4EQxviiHW0KuQA/IUORLWqZ4Nu -E84Iu8GElBwdhkW2WwiUze2XshaCLuB/RHN4lNm82n0UvpGqIzMrjChBmxrLHXuS -wW2zF4FI8kO2GhUdffVVlaxgf8TKkLbWBaOzO1yz9SYUSKkA8EP1U5G35hUL3Pof -9BGDegiLkstISZ+85arGN5s1Y7eAL7a49MaJkqsgaNuUeDDIGUiWV58CAwEAAQ== ------END RSA PUBLIC KEY----- - - root - 192.168.180.92 - root - - - cfengine - dumpdatastate - bodydefault - yaml - xml - curl - acl - - slackware-14-1-64.labo.normation.com - - 93e375c4-914e-49b0-98d2-c2aa3b3a6095 - - - i486 - aspell - 0.60.6 - - - i486 - proftpd - 1.3.4c - - - i386 - amp - 0.7.6 - - - i486 - bind - 9.9.3_P2 - - - i486 - liboil - 0.3.17 - - - i486 - gd - 2.0.35 - - - i486 - polkit - 0.105 - - - i486 - kbd - 1.15.3 - - - i486 - wget - 1.14 - - - i486 - aaa_base - 14.1 - - - i486 - pm-utils - 1.4.1 - - - i486 - glibc-profile - 2.17 - - - i686 - kernel-modules-smp - 3.10.17_smp - - - i486 - vbetool - 1.1 - - - i486 - cdrtools - 3.01a17 - - - i486 - libvisual - 0.4.0 - - - i486 - djvulibre - 3.5.25.3 - - - i486 - libmng - 1.0.10 - - - i486 - libnotify - 0.7.5 - - - i486 - libmowgli - 0.7.1 - - - i486 - biff+comsat - 0.17 - - - i486 - getmail - 4.30.1 - - - i486 - ntp - 4.2.6p5 - - - i486 - libcap - 2.22 - - - i486 - netwrite - 0.17 - - - i486 - dmidecode - 2.11 - - - i486 - upower - 0.9.17 - - - i486 - alsa-oss - 1.0.25 - - - i486 - gcc-g++ - 4.8.2 - - - i486 - pygobject - 2.28.6 - - - noarch - iso-codes - 3.41 - - - i486 - ncftp - 3.2.5 - - - i486 - which - 2.20 - - - i486 - mcelog - 1.0pre3 - - - i486 - libcanberra - 0.29 - - - i486 - wpa_supplicant - 2.0 - - - i486 - gtk+2 - 2.24.20 - - - i486 - svgalib - 1.9.25 - - - i486 - powertop - 2.4 - - - noarch - tango-icon-theme-extras - 0.1.0 - - - i486 - gegl - 0.2.0 - - - i486 - shared-desktop-ontologies - 0.10.0 - - - i486 - GConf - 3.2.6 - - - i486 - httpd - 2.4.6 - - - i486 - gnupg - 1.4.15 - - - i486 - wireless-tools - 29 - - - i486 - libmtp - 1.1.6 - - - i486 - gcc-go - 4.8.2 - - - i486 - diffstat - 1.53 - - - i486 - libieee1284 - 0.2.11 - - - i486 - mt-st - 0.9b - - - i486 - libmnl - 1.0.3 - - - i486 - foomatic-filters - 4.0.12 - - - i486 - notify-python - 0.1.1 - - - i486 - libmpc - 0.8.2 - - - i486 - openssl-solibs - 1.0.1e - - - i486 - portmap - 6.0 - - - i486 - clucene - 2.3.3.4 - - - i486 - gtk+ - 1.2.10 - - - i486 - libssh - 0.5.4 - - - i486 - libplist - 1.8 - - - i486 - dbus - 1.6.12 - - - i486 - vte - 0.28.2 - - - i486 - ghostscript - 9.07 - - - i486 - ilmbase - 1.0.3 - - - i486 - tmux - 1.8 - - - i486 - apr - 1.4.6 - - - i486 - itstool - 1.2.0 - - - i486 - tree - 1.6.0 - - - i486 - libxslt - 1.1.28 - - - i486 - tar - 1.26 - - - i486 - libnetfilter_cttimeout - 1.0.0 - - - i486 - links - 2.8 - - - i486 - dialog - 1.2_20130523 - - - i486 - libnjb - 2.2.6 - - - i486 - uucp - 1.07 - - - noarch - tango-icon-theme - 0.8.90 - - - i486 - enchant - 1.6.0 - - - i486 - dnsmasq - 2.57 - - - noarch - hicolor-icon-theme - 0.12 - - - i486 - doxygen - 1.8.5 - - - i486 - workbone - 2.40 - - - i486 - openssh - 6.3p1 - - - i486 - yptools - 2.14 - - - i486 - joe - 3.7 - - - i486 - libxklavier - 5.3 - - - i386 - netpipes - 4.2 - - - i486 - polkit-gnome - 0.102 - - - i486 - libart_lgpl - 2.3.21 - - - i486 - at - 3.1.12 - - - i486 - cscope - 15.7a - - - i486 - icon-naming-utils - 0.8.90 - - - i486 - quota - 3.17 - - - i486 - alsa-utils - 1.0.27.1 - - - i486 - lcms - 1.19 - - - i486 - make - 3.82 - - - i486 - netkit-rusers - 0.17 - - - i486 - cvs - 1.11.23 - - - i686 - kernel-generic-smp - 3.10.17_smp - - - i386 - seejpeg - 1.10 - - - i486 - mtx - 1.3.12 - - - noarch - ca-certificates - 20130906 - - - i486 - babl - 0.1.10 - - - i486 - ebtables - 2.0.10 - - - i486 - glade3 - 3.8.3 - - - i486 - loudmouth - 1.5.0_20121201 - - - i486 - rzip - 2.1 - - - i486 - libjpeg - v8a - - - i486 - netkit-routed - 0.17 - - - i486 - pciutils - 3.2.0 - - - noarch - terminus-font - 4.38 - - - i486 - grub - 2.00 - - - i486 - rpm - 4.10.0 - - - i486 - fuse - 2.8.5 - - - i486 - qca - 2.0.2 - - - i486 - btrfs-progs - 20130418 - - - i486 - wavpack - 4.60.1 - - - i486 - minicom - 2.6.2 - - - i486 - ash - 0.4.0 - - - i486 - cryptsetup - 1.4.3 - - - i486 - gnome-themes-standard - 3.8.4 - - - i486 - enscript - 1.6.5.2 - - - i486 - slang1 - 1.4.9 - - - i486 - madplay - 0.15.2b - - - i486 - popt - 1.16 - - - i486 - bsd-finger - 0.17 - - - i486 - inotify-tools - 3.14 - - - i486 - openldap-client - 2.4.31 - - - i486 - gawk - 4.1.0 - - - i486 - dhcpcd - 6.0.5 - - - i486 - gperf - 3.0.4 - - - noarch - network-scripts - 14.1 - - - i486 - gutenprint - 5.2.9 - - - i486 - slacktrack - 2.15 - - - i486 - radeontool - 1.6.1 - - - i486 - man - 1.6g - - - i486 - libmbim - 1.4.0 - - - i486 - linuxdoc-tools - 0.9.68 - - - i486 - cpufrequtils - 008 - - - i486 - jasper - 1.900.1 - - - i486 - jed - 0.99_19 - - - i486 - librsvg - 2.36.4 - - - i486 - usb_modeswitch - 2.0.1 - - - i486 - gstreamer - 0.10.36 - - - i486 - etc - 14.1 - - - i486 - glib - 1.2.10 - - - i486 - time - 1.7 - - - i486 - udisks2 - 2.1.0 - - - i486 - sudo - 1.8.6p8 - - - i486 - libvorbis - 1.3.3 - - - i486 - sysvinit-functions - 8.53 - - - i486 - mutt - 1.5.22 - - - i486 - pcre - 8.33 - - - i486 - lzo - 2.03 - - - i486 - kernel-generic - 3.10.17 - - - i486 - pssh - 2.3.1 - - - i486 - distcc - 3.1 - - - i486 - gdbm - 1.8.3 - - - i386 - nc - 1.10 - - - i486 - ppp - 2.4.5 - - - i486 - grep - 2.14 - - - i486 - mkinitrd - 1.4.8 - - - i486 - libnfnetlink - 1.0.1 - - - i486 - system-config-printer - 1.3.13 - - - i486 - qca-ossl - 2.0.0_beta3 - - - i486 - acl - 2.2.51 - - - i486 - cpio - 2.11 - - - i486 - mdadm - 3.2.6 - - - i486 - attica - 0.4.1 - - - i486 - gzip - 1.6 - - - i486 - acct - 6.5.4 - - - i486 - ytalk - 3.3.0 - - - i486 - iftop - 1.0pre2 - - - i486 - metamail - 2.7 - - - i486 - rdist - 6.1.5 - - - i486 - netkit-ntalk - 0.17 - - - i486 - grantlee - 0.3.0 - - - i486 - coreutils - 8.21 - - - i486 - p11-kit - 0.16.4 - - - i486 - screen - 4.0.3 - - - i486 - libnetfilter_queue - 1.0.2 - - - i486 - zsh - 5.0.2 - - - i486 - normalize - 0.7.7 - - - i486 - eject - 2.1.5 - - - i486 - gdk-pixbuf2 - 2.28.2 - - - i486 - libassuan - 2.1.0 - - - i486 - gdb - 7.6.1 - - - i486 - nasm - 2.10.04 - - - i486 - libnetfilter_conntrack - 1.0.4 - - - i486 - ncurses - 5.9 - - - i486 - hplip - 3.13.10 - - - i486 - sqlite - 3.7.17 - - - i486 - seamonkey-solibs - 2.21 - - - i486 - imapd - 2.11 - - - i486 - usbutils - 007 - - - i486 - expat - 2.1.0 - - - i486 - libpcap - 1.4.0 - - - i486 - texinfo - 4.13a - - - i486 - ConsoleKit - 0.4.5 - - - i486 - most - 5.0.0a - - - i486 - obexftp - 0.23 - - - i486 - procps - 3.2.8 - - - i486 - acpid - 2.0.19 - - - i486 - binutils - 2.23.52.0.1 - - - i486 - hunspell - 1.3.2 - - - i486 - udisks - 1.0.4 - - - i486 - syslinux - 4.06 - - - i486 - nfacct - 1.0.1 - - - i486 - elilo - 3.14 - - - i486 - sox - 14.4.1 - - - i486 - libcroco - 0.6.8 - - - i486 - libidl - 0.8.14 - - - i486 - keyutils - 1.5.5 - - - i486 - perl - 5.18.1 - - - i486 - tcpdump - 4.4.0 - - - i486 - taglib-extras - 1.0.1 - - - i486 - pycurl - 7.19.0 - - - i486 - sysfsutils - 2.1.0 - - - i486 - diffutils - 3.3 - - - i486 - esound - 0.2.41 - - - i486 - popa3d - 1.0.2 - - - i486 - bc - 1.06.95 - - - i486 - libspectre - 0.2.7 - - - noarch - pkgtools - 14.1 - - - i486 - aaa_elflibs - 14.1 - - - i486 - phonon-gstreamer - 4.6.3 - - - i486 - telnet - 0.17 - - - i486 - netwatch - 1.3.0 - - - i486 - bzip2 - 1.0.6 - - - i486 - ebook-tools - 0.2.2 - - - i486 - NetworkManager - 0.9.8.8 - - - i486 - libksba - 1.3.0 - - - i486 - libao - 1.1.0 - - - i486 - swig - 2.0.10 - - - i486 - herqq - 1.0.0 - - - i486 - elm - 2.5.8 - - - i486 - libgpg-error - 1.11 - - - i486 - libvncserver - 0.9.9 - - - i486 - libwmf - 0.2.8.4 - - - i486 - udev - 182 - - - i486 - iputils - s20121221 - - - i486 - attr - 2.4.46 - - - i486 - netpbm - 10.49.02 - - - i486 - lm_sensors - 3.3.4 - - - i486 - gcc-java - 4.8.2 - - - i486 - ed - 1.9 - - - i486 - mpfr - 3.1.2 - - - i486 - readline - 5.2 - - - i486 - ethtool - 3.10 - - - i486 - findutils - 4.4.2 - - - i486 - sip - 4.14.2 - - - i486 - gpa - 0.9.4 - - - i486 - libwpd - 0.9.6 - - - i486 - rfkill - 0.5 - - - i486 - ncompress - 4.2.4.3 - - - i486 - isapnptools - 1.26 - - - i486 - gcr - 3.8.2 - - - i486 - yasm - 1.2.0 - - - fw - zd1211-firmware - 1.4 - - - i486 - python - 2.7.5 - - - i486 - gnu-efi - 3.0s - - - i486 - strace - 4.8 - - - i486 - p2c - 1.21alpha2 - - - i486 - strigi - 0.7.7 - - - i486 - moc - 2.5.0_beta1 - - - i486 - whois - 5.0.25 - - - i486 - iptables - 1.4.20 - - - i486 - libexif - 0.6.21 - - - i486 - cxxlibs - 6.0.18 - - - i486 - libcaca - 0.99.beta18 - - - i486 - keybinder - 0.3.0 - - - i486 - nano - 2.3.2 - - - i486 - vorbis-tools - 1.4.0 - - - i486 - gnutls - 3.1.16 - - - i486 - pkg-config - 0.25 - - - i486 - netkit-rwho - 0.17 - - - i486 - lxc - 0.9.0 - - - i486 - dcron - 4.5 - - - i486 - dhcp - 4.2.5_P1 - - - i486 - pinentry - 0.8.3 - - - i486 - libunistring - 0.9.3 - - - i486 - liblastfm - 1.0.7 - - - i486 - htdig - 3.2.0b6 - - - i486 - bluez - 4.99 - - - i486 - gc - 7.2d - - - i486 - aalib - 1.4rc5 - - - i486 - phonon-xine - 4.4.4 - - - i486 - logrotate - 3.8.6 - - - i486 - libx86 - 1.1 - - - i386 - ispell - 3.2.06 - - - i486 - gcc-gnat - 4.8.2 - - - i486 - gobject-introspection - 1.36.0 - - - i486 - chmlib - 0.40 - - - i486 - rcs - 5.9.0 - - - i486 - gpm - 1.20.7 - - - i486 - imlib - 1.9.15 - - - noarch - sysvinit-scripts - 2.0 - - - i486 - splitvt - 1.6.5 - - - i486 - M2Crypto - 0.21.1 - - - i486 - m4 - 1.4.17 - - - noarch - ghostscript-fonts-std - 8.11 - - - i486 - bootp - 2.4.3 - - - i486 - parted - 3.1 - - - i486 - slang - 2.2.4 - - - i486 - floppy - 5.5 - - - i486 - qt - 4.8.5 - - - i486 - libaio - 0.3.109 - - - i486 - qca-cyrus-sasl - 2.0.0_beta3 - - - i486 - libidn - 1.25 - - - i486 - mercurial - 2.7.2 - - - i486 - audiofile - 0.3.6 - - - i486 - libarchive - 3.1.2 - - - i486 - libnetfilter_cthelper - 1.0.0 - - - i486 - libgnome-keyring - 3.8.0 - - - i586 - rudder-agent - 5.0.9.rc1_git201903300127 - - - i486 - newspost - 2.1.1 - - - i486 - soprano - 2.9.0 - - - i486 - libzip - 0.10.1 - - - i486 - ntfs-3g - 2013.1.13 - - - i486 - tin - 2.0.1 - - - i486 - inetd - 1.79s - - - i486 - iptraf-ng - 1.1.4 - - - i486 - samba - 4.1.0 - - - i486 - gamin - 0.1.10 - - - i486 - libqmi - 1.4.0 - - - i486 - libtermcap - 1.2.3 - - - i486 - at-spi2-core - 2.8.0 - - - i486 - net-tools - 1.60.20120726git - - - i486 - shadow - 4.1.5.1 - - - i486 - dev86 - 0.16.17 - - - i486 - lftp - 4.4.9 - - - i486 - epic5 - 1.1.6 - - - i486 - pidentd - 3.0.19 - - - i486 - libdiscid - 0.2.2 - - - i486 - polkit-qt-1 - 0.103.0 - - - i486 - pycups - 1.9.61 - - - i486 - dconf - 0.18.0 - - - i486 - qimageblitz - 0.0.6 - - - i486 - liboggz - 1.1.1 - - - i486 - lsof - 4.83 - - - i486 - flac - 1.2.1 - - - i486 - flex - 2.5.37 - - - i486 - sg3_utils - 1.36 - - - i486 - db44 - 4.4.20 - - - i486 - libogg - 1.3.0 - - - i486 - nettle - 2.7.1 - - - i486 - libraw1394 - 2.0.7 - - - i486 - v4l-utils - 0.9.5 - - - i486 - cups - 1.5.4 - - - i486 - sendmail - 8.14.7 - - - i486 - libvisual-plugins - 0.4.0 - - - i486 - bpe - 2.01.00 - - - i486 - genpower - 1.0.5 - - - i486 - mtr - 0.85 - - - i486 - gcc - 4.8.2 - - - noarch - automake - 1.11.5 - - - i486 - os-prober - 1.63 - - - i486 - libglade - 2.6.4 - - - i486 - libxml2 - 2.9.1 - - - i486 - sdl - 1.2.15 - - - i486 - at-spi2-atk - 2.8.1 - - - i486 - ddrescue - 1.17 - - - i486 - e2fsprogs - 1.42.8 - - - i486 - ruby - 1.9.3_p448 - - - i486 - ulogd - 2.0.2 - - - noarch - libwmf-docs - 0.2.8.4 - - - i486 - tcsh - 6.18.01 - - - i486 - help2man - 1.43.3 - - - noarch - man-pages - 3.53 - - - i486 - harfbuzz - 0.9.16 - - - i486 - openssl - 1.0.1e - - - i486 - libiodbc - 3.52.7 - - - i486 - dbus-python - 1.2.0 - - - noarch - aspell-en - 6.0_0 - - - i486 - gtkspell - 2.0.16 - - - i486 - pygtk - 2.24.0 - - - i486 - slrn - 1.0.1 - - - i486 - cmake - 2.8.12 - - - i486 - phonon-mplayer - 1b1fd1f_20110823git - - - i486 - alpine - 2.11 - - - i486 - bridge-utils - 1.4 - - - i486 - libusb - 1.0.9 - - - i486 - procmail - 3.22 - - - i486 - vlan - 1.9 - - - i486 - desktop-file-utils - 0.21 - - - i486 - icu4c - 51.2 - - - i486 - pil - 1.1.7 - - - i486 - glib2 - 2.36.4 - - - i486 - gvfs - 1.16.3 - - - i486 - netkit-bootparamd - 0.17 - - - i486 - lrzip - 0.616 - - - i486 - sysklogd - 1.5 - - - i486 - gnome-keyring - 3.8.2 - - - i486 - akonadi - 1.9.2 - - - i486 - oprofile - 0.9.7 - - - i486 - startup-notification - 0.12 - - - i486 - getty-ps - 2.1.0b - - - i486 - infozip - 6.0 - - - i486 - gmime - 2.6.15 - - - i486 - db48 - 4.8.30 - - - i486 - qjson - 0.8.1 - - - i486 - php - 5.4.20 - - - i486 - ccache - 3.1.9 - - - noarch - soma - 2.8.5 - - - i486 - pilot-link - 0.12.5 - - - i486 - hdparm - 9.43 - - - i486 - libgpod - 0.8.2 - - - i486 - lsscsi - 0.27 - - - i486 - libpng - 1.4.12 - - - i486 - libtiff - 3.9.7 - - - i486 - pyrex - 0.9.9 - - - i686 - kernel-huge-smp - 3.10.17_smp - - - i486 - snownews - 1.5.12 - - - i486 - libid3tag - 0.15.1b - - - fw - ipw2200-fw - 3.1 - - - i486 - libkarma - 0.1.1 - - - i486 - libffi - 3.0.13 - - - i486 - groff - 1.22.2 - - - i486 - zoo - 2.10_22 - - - i486 - fribidi - 0.19.2 - - - i486 - irssi - 0.8.15 - - - i486 - tcp_wrappers - 7.6 - - - i486 - libgcrypt - 1.5.3 - - - i486 - netkit-rsh - 0.17 - - - i486 - autofs - 5.0.7 - - - i486 - cifs-utils - 5.5 - - - i486 - vsftpd - 3.0.2 - - - i486 - icmpinfo - 1.11 - - - i486 - libcdio - 0.83 - - - i486 - ksh93 - 2012_08_01 - - - i486 - lynx - 2.8.7 - - - i486 - libnetfilter_log - 1.0.1 - - - i486 - t1lib - 5.1.2 - - - i486 - llvm - 3.3 - - - i486 - libsndfile - 1.0.25 - - - i486 - shared-mime-info - 1.0 - - - i486 - mozilla-nss - 3.15.2 - - - i486 - kernel-modules - 3.10.17 - - - i486 - virtuoso-ose - 6.1.6 - - - i486 - gettext-tools - 0.18.2.1 - - - i486 - subversion - 1.7.13 - - - i486 - glibc - 2.17 - - - i486 - rsync - 3.1.0 - - - i486 - mobile-broadband-provider-info - 20120614 - - - i486 - freetype - 2.5.0.1 - - - i486 - zlib - 1.2.8 - - - i486 - unarj - 265 - - - i486 - libmad - 0.15.1b - - - i486 - js185 - 1.0.0 - - - i486 - libtool - 2.4.2 - - - i486 - mcabber - 0.10.2 - - - i486 - libsamplerate - 0.1.8 - - - i486 - libical - 1.0 - - - i486 - sharutils - 4.14 - - - i486 - glibc-solibs - 2.17 - - - i486 - redland - 1.0.16 - - - i486 - gettext - 0.18.2.1 - - - i486 - qca-gnupg - 2.0.0_beta3 - - - i486 - raptor2 - 2.0.9 - - - i486 - sysstat - 9.0.6.1 - - - i486 - slocate - 3.1 - - - i486 - phonon - 4.6.0 - - - i486 - indent - 2.2.10 - - - i486 - libelf - 0.8.13 - - - i486 - netkit-timed - 0.17 - - - i486 - neon - 0.29.6 - - - i486 - libcddb - 1.3.2 - - - i486 - sysvinit - 2.88dsf - - - i486 - lvm2 - 2.02.100 - - - noarch - devs - 2.3.1 - - - i486 - libnl - 1.1.4 - - - i486 - libnetfilter_acct - 1.0.2 - - - i486 - mariadb - 5.5.32 - - - i486 - rasqal - 0.9.30 - - - x86 - kernel-headers - 3.10.17_smp - - - i486 - mm - 1.4.2 - - - i486 - dmapi - 2.2.12 - - - i486 - efibootmgr - 0.5.4 - - - i486 - xfsprogs - 3.1.11 - - - i486 - libnl3 - 3.2.21 - - - i486 - libgphoto2 - 2.5.2 - - - i486 - net-snmp - 5.7.2 - - - noarch - autoconf - 2.69 - - - i486 - libevent - 2.0.21 - - - i486 - rp-pppoe - 3.11 - - - i486 - iproute2 - 3.10.0 - - - i486 - glib-networking - 2.36.2 - - - i486 - conntrack-tools - 1.4.2 - - - i486 - netdate - bsd4 - - - i486 - fetchmail - 6.3.21 - - - i486 - gst-plugins-good - 0.10.31 - - - i486 - giflib - 4.1.6 - - - i486 - bluez-hcidump - 2.4 - - - i486 - gcc-objc - 4.8.2 - - - i486 - libsoup - 2.42.2 - - - i486 - sed - 4.2.2 - - - i486 - sdparm - 1.08 - - - i486 - gptfdisk - 0.8.7 - - - i486 - netatalk - 2.2.3 - - - noarch - kernel-firmware - 20131008git - - - i486 - pycairo - 1.8.10 - - - i486 - pth - 2.0.7 - - - i486 - automoc4 - 0.9.88 - - - i486 - lilo - 24.0 - - - i486 - libyaml - 0.1.4 - - - i486 - eigen2 - 2.0.10 - - - i486 - pmake - 1.111 - - - i486 - util-linux - 2.21.2 - - - i486 - libgsf - 1.14.26 - - - i486 - idnkit - 1.0 - - - i486 - gcc-gfortran - 4.8.2 - - - i486 - vim - 7.4.050 - - - i486 - cyrus-sasl - 2.1.23 - - - i486 - libwnck - 2.30.7 - - - i486 - a2ps - 4.14 - - - i486 - bluez-firmware - 1.2 - - - i486 - bison - 2.7 - - - i486 - nmap - 6.40 - - - i486 - lha - 114i - - - i486 - xfsdump - 3.1.3 - - - i486 - openvpn - 2.3.2 - - - i486 - exiv2 - 0.23 - - - i486 - urwid - 1.0.1 - - - i486 - clisp - 2.49 - - - noarch - sendmail-cf - 8.14.7 - - - i486 - cdparanoia - III_10.2 - - - i486 - lcms2 - 2.4 - - - i486 - stunnel - 4.53 - - - i486 - utempter - 1.1.5 - - - i486 - iw - 3.5 - - - i486 - libproxy - 0.4.11 - - - i486 - dc3dd - 7.1.614 - - - i486 - file - 5.14 - - - i486 - libmsn - 4.2.1 - - - i486 - libusb-compat - 0.1.4 - - - i486 - glibc-i18n - 2.17 - - - i486 - libtheora - 1.1.1 - - - i486 - dvd+rw-tools - 7.1 - - - i486 - aaa_terminfo - 5.8 - - - i486 - libtasn1 - 3.3 - - - i486 - bin - 11.1 - - - i486 - boost - 1.54.0 - - - noarch - glibc-zoneinfo - 2013d - - - i486 - gsettings-desktop-schemas - 3.8.2 - - - i486 - curl - 7.31.0 - - - i486 - dbus-glib - 0.100.2 - - - i486 - reiserfsprogs - 3.6.23 - - - i486 - bash - 4.2.045 - - - i486 - traceroute - 2.0.19 - - - i486 - QScintilla - 2.6.1 - - - i486 - pcmciautils - 017 - - - i486 - kmod - 15 - - - i486 - alsa-lib - 1.0.27.2 - - - i486 - taglib - 1.8 - - - i486 - rpm2tgz - 1.2.2 - - - i486 - git - 1.8.4 - - - i486 - libsecret - 0.15 - - - i486 - sc - 7.16 - - - i486 - atk - 2.8.0 - - - i486 - nfs-utils - 1.2.8 - - - i486 - qtscriptgenerator - 0.2.0 - - - i486 - poppler - 0.24.3 - - - i486 - intltool - 0.50.2 - - - i486 - libdbusmenu-qt - 0.9.2 - - - i486 - openexr - 1.7.1 - - - i486 - db42 - 4.2.52 - - - i486 - elvis - 2.2_0 - - - i486 - smartmontools - 5.43 - - - i486 - dirmngr - 1.1.1 - - - i486 - dosfstools - 3.0.22 - - - i486 - PyQt - 4.9.6 - - - i486 - obex-data-server - 0.4.6 - - - i486 - guile - 2.0.9 - - - i486 - pango - 1.34.1 - - - i486 - jfsutils - 1.1.15 - - - noarch - media-player-info - 18 - - - i486 - openobex - 1.5 - - - i486 - gmp - 5.1.3 - - - i486 - mc - 4.8.10 - - - i486 - gnupg2 - 2.0.22 - - - noarch - gmm - 4.2 - - - i486 - libbluedevil - 1.9.3 - - - i486 - libdvdread - 4.2.0 - - - noarch - sound-theme-freedesktop - 0.7 - - - i486 - obexfs - 0.12 - - - i486 - nn - 6.7.3 - - - i486 - crda - 1.1.1 - - - noarch - poppler-data - 0.4.6 - - - i486 - mpg123 - 1.15.4 - - - i486 - gpgme - 1.4.1 - - - i486 - gst-plugins-base - 0.10.36 - - - i486 - ModemManager - 1.0.0 - - - i486 - gtk+3 - 3.8.2 - - - i486 - fftw - 3.3.3 - - - i486 - netkit-ftp - 0.17 - - - i486 - libatasmart - 0.19 - - - fw - ipw2100-fw - 1.3 - - - i486 - xz - 5.0.5 - - - i486 - ipset - 6.20 - - - i486 - jove - 4.16.0.73 - - - i486 - gphoto2 - 2.5.2 - - - i486 - patch - 2.7 - - - i486 - cairo - 1.12.14 - - - i486 - apr-util - 1.5.1 - - - i486 - apmd - 3.2.2 - - - i486 - libmcrypt - 2.5.8 - - - i486 - cdrdao - 1.2.3 - - - i486 - libcgroup - 0.38 - - - i486 - lesstif - 0.95.2 - - - i486 - kernel-huge - 3.10.17 - - - i486 - gnome-icon-theme - 3.8.3 - - - i486 - less - 451 - - - i486 - htop - 1.0.2 - - - i486 - libmcs - 0.7.2 - - - i386 - trn - 3.6 - - - i486 - open-cobol - 1.1 - - - i486 - tftp-hpa - 5.2 - - - i486 - netkit-rwall - 0.17 - - - i486 - mailx - 12.5 - - - i486 - mhash - 0.9.9.9 - - - noarch - slackpkg - 2.82.0 - - - SATA - 8388 - 25+ - QEMU HARDDISK - QEMU HARDDISK - sda - QM00001 - disk - - - root - - FusionInventory-Agent_v2.3.19 - - FusionInventory - /opt/rudder/bin/perl - v5.22.4 - /opt/rudder/bin/fusioninventory-agent - 2.3.19 - - - slackware-14-1-64-2019-04-02-11-45-27 - INVENTORY - diff --git a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs.sign b/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs.sign deleted file mode 100644 index 23ce03e16b7..00000000000 --- a/webapp/sources/ldap-inventory/inventory-fusion/src/test/resources/fusion-inventories/5.0/slackware-14-1-64-93e375c4-914e-49b0-98d2-c2aa3b3a6095.ocs.sign +++ /dev/null @@ -1,6 +0,0 @@ -header=rudder-signature-v1 -algorithm=sha512 -digest=50e7e1f94f2b7725fe28612d20ac093507e2a82b7cac819ecb327838cfbcd6d6135652b4efe45124228b01954ab8183483aa981c775c134a344770c960aa804e3ba5d47508000be6c15e652273f554622cb96eea7e016103afd7ef607b93c9465f4eb22df7325279a0acffcee930cc4dc6f3b3e6b7808ab082e1aadc901d3a85ea4abfa8a6b0ecf06a3b2922fcd27a90466eeb86ed3a6cef32e7b780a5d94b3302e53330cebb4ee24e783d8ce6a31fe1bb5b5c6b5d19efe77908398690a744d55f3b5b6c0bfb4b1ac44c5e94e13868dad1fada3cab4324253d5c14b9bc5de7e9faabaabe0d0df4686279ef06313e06dddb28af707d511cbf36461d366960cd0dd167b2d0fd4822f8d1919df74868f150647170e693356f007e1444d9c5bdb182a616c836adb9f7ebc7a80c36aa50ddd533c037fc4de8ff9e2c8ff921e61ec56b379b730a550a871ad0c9be9243f63c84b1bef2af32522d5302d278160d95bce7f3e222b5dca176f58e7067eda36cbad3fd707d8b33db4c5618d4b00ed3249cfd34cf20dfb486244ecb0bb26d21e0ef0253670a190e4cf63b734e6e2d3df06a952a4cff1ece24b0292e1ee29e588d1d327a56ef1e048163120386916a9f9be94e5299a0cb87ce69ad6fcd4759345da64758694dbe1990708bee0cc580e41a470aac1a01bba8a4dfd3c69d1a8a4d14eafc3508ef2766341d793649c61278e95bdf -hostname=slackware-14-1-64 -keydate=2019-04-02 11:30:57.010982248 +0200 -keyid=4896579F diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/DefaultInventorySaver.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/DefaultInventorySaver.scala deleted file mode 100644 index 1b0589af545..00000000000 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/DefaultInventorySaver.scala +++ /dev/null @@ -1,105 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.inventory.ldap.provisioning - -import com.normation.errors._ -import com.normation.inventory.domain.Inventory -import com.normation.inventory.domain.InventoryProcessingLogger -import com.normation.inventory.ldap.core._ -import com.normation.inventory.services.provisioning._ -import com.normation.ldap.sdk.LDAPConnectionProvider -import com.normation.ldap.sdk.RwLDAPConnection -import com.normation.zio._ -import com.unboundid.ldif.LDIFChangeRecord -import zio._ -import zio.syntax.ToZio - -/** - * Post-commit convention: - * - Post-commit can't modify Inventory - * - if succed, they can enhanced the list of ChangeRecords, - * but at least must forward existing LDIFChangeRecords - * - a post commit which returns Failure or Empty stop the post-commit pipeline - * - */ - -class DefaultInventorySaver( - ldapConnectionProvider: LDAPConnectionProvider[RwLDAPConnection], - dit: InventoryDit, - mapper: InventoryMapper, - override val preCommitPipeline: Seq[PreCommit], - override val postCommitPipeline: Seq[PostCommit[Seq[LDIFChangeRecord]]] -) extends PipelinedInventorySaver[Seq[LDIFChangeRecord]] { - - def commitChange(inventory: Inventory): IOResult[Seq[LDIFChangeRecord]] = { - - for { - con <- ldapConnectionProvider - t0 <- currentTimeMillis - // we really want to save each software, and not the software tree as a whole - just think about the diff... - d0 <- ZIO.foreach(inventory.applications)(x => con.save(mapper.entryFromSoftware(x))) - t1 <- currentTimeMillis - _ <- InventoryProcessingLogger.timing.trace(s"Saving software: ${t1 - t0} ms") - - d1 <- con.saveTree(mapper.treeFromMachine(inventory.machine), deleteRemoved = true) - t2 <- currentTimeMillis - _ <- InventoryProcessingLogger.timing.trace(s"Saving machine: ${t2 - t1} ms") - - d2 <- con.saveTree(mapper.treeFromNode(inventory.node), deleteRemoved = true) - t3 <- currentTimeMillis - _ <- InventoryProcessingLogger.timing.trace(s"Saving node: ${t3 - t2} ms") - - d3 <- con - .save(mapper.processesFromNode(inventory.node), removeMissingAttributes = false) - .map(x => Seq(x)) - .catchAll(err => { // we don't want to fail because we tried to compensate - InventoryProcessingLogger.error( - s"Couldn't update 'processes' for node '${inventory.node.main.id.value}', Error is: ${err.fullMsg}" - ) *> Seq().succeed - }) - t4 <- currentTimeMillis - _ <- InventoryProcessingLogger.timing.trace(s"Saving processes: ${t4 - t3} ms") - - d4 <- ZIO.foreach(inventory.vms)(x => con.saveTree(mapper.treeFromMachine(x), deleteRemoved = true)) - t5 <- currentTimeMillis - _ <- InventoryProcessingLogger.timing.trace(s"Saving vms: ${t5 - t4} ms") - } yield { - d0 ++ d1 ++ d2 ++ d3 ++ d4.flatten - } - } -} diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/LdifReportLogger.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/LdifReportLogger.scala deleted file mode 100644 index eb1ddcc8e46..00000000000 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/LdifReportLogger.scala +++ /dev/null @@ -1,130 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.inventory.ldap.provisioning - -import com.normation.NamedZioLogger -import com.unboundid.ldap.sdk.Modification -import com.unboundid.ldap.sdk.ModificationType.REPLACE -import com.unboundid.ldif._ -import org.joda.time.DateTime -import zio._ -/* - * Log given LDIF record in a file - * with given name (a timestamp will be added) - * File will be stored under a configured directory - */ -trait LDIFInventoryLogger extends Any { - - /** - * - * @param inventoryName - * a name from witch the log id will be derived - * @param comments - * an optional comment to append at the top of the file - * @param tag - * an optional tag to put in the file name, like REPORT, MODIFICATION, etc - * @param LDIFRecords - * list of records to log - * @return the generated id / path for the log - */ - def log( - inventoryName: String, - comments: Option[String], - tag: Option[String], - LDIFRecords: => Seq[LDIFRecord] - ): Task[String] -} - -object DefaultLDIFInventoryLogger { - val logger = NamedZioLogger("trace.ldif.in.file") - val defaultLogDir = java.lang.System.getProperty("java.io.tmpdir") + - java.lang.System.getProperty("file.separator") + "LDIFLogReport" -} - -import com.normation.inventory.ldap.provisioning.DefaultLDIFInventoryLogger.logger -import java.io.File - -class DefaultLDIFInventoryLogger(val LDIFLogDir: String = DefaultLDIFInventoryLogger.defaultLogDir) extends LDIFInventoryLogger { - - def rootDir = { - val dir = new File(LDIFLogDir) - if (!dir.exists()) dir.mkdirs - dir - } - - protected def fileFromName(name: String, opType: Option[String]): File = { - val fileName = name.replaceAll(File.separator, "|") - - // time stamp are not that much readable, use a YYYYMMDD-HH.MM.SSS format - new File( - rootDir, - fileName + - "_" + DateTime.now().toString("YYYY-MM-dd_HH.mm.ss.SS") + - (opType.map("_" + _).getOrElse("")) + - ".LDIF" - ) - } - - def log( - inventoryName: String, - comments: Option[String], - tag: Option[String], - LDIFRecords: => Seq[LDIFRecord] - ): Task[String] = { - val LDIFFile = fileFromName(inventoryName, tag) - ZIO.when(logger.logEffect.isTraceEnabled) { - ZIO.acquireReleaseWith(ZIO.attempt(new LDIFWriter(LDIFFile)))(writer => - ZIO.attempt(writer.close).catchAll(ex => logger.debug("LDIF log for inventory processing: " + LDIFFile.getAbsolutePath)) - ) { writer => - ZIO.attempt { - val ldif = LDIFRecords // that's important, else we evaluate again and again LDIFRecords - - if (ldif.nonEmpty) { // don't check it if logger trace is not enabled - writer.writeLDIFRecord(ldif.head, comments.getOrElse(null)) - - ldif.tail.foreach(LDIFRecord => writer.writeLDIFRecord(LDIFRecord)) - } else { - // write a dummy record - val c = comments.getOrElse("") + "(There was no record to log, a dummy modification is added in log as a placeholder)" - writer.writeLDIFRecord(new LDIFModifyChangeRecord("cn=dummy", new Modification(REPLACE, "dummy", "dummy")), c) - } - } - } - } *> ZIO.succeed(LDIFFile.getAbsolutePath) - } -} diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/MachineIdFinder.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/MachineIdFinder.scala deleted file mode 100644 index 338cafaf08a..00000000000 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/MachineIdFinder.scala +++ /dev/null @@ -1,117 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.inventory.ldap.provisioning - -import com.normation.errors._ -import com.normation.inventory.domain._ -import com.normation.inventory.ldap.core._ -import com.normation.inventory.ldap.core.LDAPConstants._ -import com.normation.inventory.services.provisioning._ -import com.normation.ldap.sdk._ -import com.normation.ldap.sdk.BuildFilter._ -import com.normation.ldap.sdk.LDAPIOResult._ -import com.unboundid.ldap.sdk.DN -import net.liftweb.common._ -import zio._ -import zio.syntax._ - -///// -///// these finders are used for VMs. For the machine linked to a node, the ID is derived from nodeId. -///// - -/** - * Retrieve the ID from the LDAP directory - */ -class UseExistingMachineIdFinder( - inventoryDitService: InventoryDitService, - ldap: LDAPConnectionProvider[RoLDAPConnection], - rootDN: DN -) extends MachineDNFinderAction { - override def tryWith(entity: MachineInventory): IOResult[Option[(MachineUuid, InventoryStatus)]] = { - for { - con <- ldap - entry <- con - .searchSub(rootDN, AND(IS(OC_MACHINE), EQ(A_MACHINE_UUID, entity.id.value)), "1.1") - .map(_.headOption) - .notOptional(s"No machine entry found for id '${entity.id.value}'") // TODO: error if more than one !! #555 - dit <- inventoryDitService.getDit(entry.dn) match { - case None => s"No DIT found for machine DN ${entry.dn.toString}".fail - case Some(x) => x.succeed - } - } yield { - Some((entity.id, inventoryDitService.getInventoryStatus(dit))) - } - } -} - -/** - * Retrieve the uuid from the Mother Board Id - */ -class FromMotherBoardUuidIdFinder( - ldapConnectionProvider: LDAPConnectionProvider[RoLDAPConnection], - dit: InventoryDit, - inventoryDitService: InventoryDitService -) extends MachineDNFinderAction with Loggable { - - // the onlyTypes is an AND filter - override def tryWith(entity: MachineInventory): IOResult[Option[(MachineUuid, InventoryStatus)]] = { - entity.mbUuid match { - case None => None.succeed - case Some(uuid) => - // build filter - val uuidFilter = AND(HAS(A_MACHINE_UUID), EQ(A_MB_UUID, uuid.value)) - - for { - con <- ldapConnectionProvider - entries <- con.searchOne(dit.MACHINES.dn, uuidFilter, A_MACHINE_UUID) - res <- (if (entries.size >= 1) { - /* - * that means that several os have the same public key, probably they should be - * merge. Notify the human merger service for candidate. - * For that case, take the first one - */ - InventoryProcessingLogger.info("Several ids found with UUID '%s':".format(uuid.value)) *> - ZIO.foreach(entries)(e => InventoryProcessingLogger.info(s"-> ${e(A_MACHINE_UUID).get}")) *> - Some((MachineUuid(entries(0)(A_MACHINE_UUID).get), inventoryDitService.getInventoryStatus(dit))).succeed - } else None.succeed) - } yield { - res - } - } - } -} diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/NodeIdFinder.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/NodeIdFinder.scala deleted file mode 100644 index eba821a7c3c..00000000000 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/NodeIdFinder.scala +++ /dev/null @@ -1,72 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.inventory.ldap.provisioning - -import com.normation.errors._ -import com.normation.inventory.domain._ -import com.normation.inventory.ldap.core._ -import com.normation.inventory.ldap.core.LDAPConstants._ -import com.normation.inventory.services.provisioning._ -import com.normation.ldap.sdk._ -import com.normation.ldap.sdk.BuildFilter._ -import com.unboundid.ldap.sdk.DN - -trait NodeInventoryDNFinder extends NodeInventoryDNFinderAction - -/** - * Find the UUID in the whole LDAP and find if the uuid is already use - * - */ -class UseExistingNodeIdFinder( - inventoryDitService: InventoryDitService, - ldap: LDAPConnectionProvider[RoLDAPConnection], - rootDN: DN -) extends NodeInventoryDNFinder { - override def tryWith(entity: NodeInventory): IOResult[Option[(NodeId, InventoryStatus)]] = { - for { - con <- ldap - entry <- con - .searchSub(rootDN, AND(IS(OC_NODE), EQ(A_NODE_UUID, entity.main.id.value)), "1.1") - .map(_.headOption) // TODO: error if more than one !! #555 - } yield { - entry - .flatMap(e => inventoryDitService.getDit(e.dn)) - .map(dit => (entity.main.id, inventoryDitService.getInventoryStatus(dit))) - } - } -} diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PostCommits.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PostCommits.scala deleted file mode 100644 index c0c8c72f132..00000000000 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PostCommits.scala +++ /dev/null @@ -1,152 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.inventory.ldap.provisioning - -import com.normation.errors._ -import com.normation.errors.SystemError -import com.normation.inventory.domain._ -import com.normation.inventory.domain.Inventory -import com.normation.inventory.ldap.core._ -import com.normation.inventory.services.core._ -import com.normation.inventory.services.provisioning._ -import com.unboundid.ldif.LDIFChangeRecord -import net.liftweb.common._ -import zio.syntax._ - -/* - * This file contains post commit action to - * weave in with the inventory saver. - */ - -/** - * Post-commit: Accept a machine in Pending Branch if - * a server whose container is that machine already is in - * accepted branch. - */ -class AcceptPendingMachineIfServerIsAccepted( - fullInventoryRepositoryImpl: FullInventoryRepositoryImpl -) extends PostCommit[Seq[LDIFChangeRecord]] with Loggable { - - override val name = "post_commit_inventory:accept_pending_machine_for_accepted_server" - - override def apply(inventory: Inventory, records: Seq[LDIFChangeRecord]): IOResult[Seq[LDIFChangeRecord]] = { - (inventory.node.main.status, inventory.machine.status) match { - case (AcceptedInventory, PendingInventory) => - // Change the container state, no need to keep the machine - val fullInventory = FullInventory(inventory.node.copy(machineId = Some((inventory.machine.id, AcceptedInventory))), None) - InventoryProcessingLogger.debug( - s"Found machine '${inventory.machine.id.value}' in pending DIT but that machine is the container of the accepted node '${inventory.node.main.id.value}'. Moving machine to accpeted" - ) *> - (for { - res <- fullInventoryRepositoryImpl.move(inventory.machine.id, AcceptedInventory) - // Save Inventory to change the container too, no need to have the machine saved again - saved <- fullInventoryRepositoryImpl.save(fullInventory) - _ <- InventoryProcessingLogger.debug("Machine '%s' moved to accepted DIT".format(inventory.machine.id)) - } yield { - records ++ res ++ saved - }) - - case _ => // nothing to do, just forward to next post commit - records.succeed - } - } -} - -/** - * Post-commit: Move a node from Deleted Branch to Pending - * if a new inventory arrives from this node - */ -class PendingNodeIfNodeWasRemoved( - writeOnlyFullInventoryRepository: WriteOnlyFullInventoryRepository[Seq[LDIFChangeRecord]] -) extends PostCommit[Seq[LDIFChangeRecord]] with Loggable { - - override val name = "post_commit_inventory:pending_node_for_deleted_server" - - override def apply(inventory: Inventory, records: Seq[LDIFChangeRecord]): IOResult[Seq[LDIFChangeRecord]] = { - - (inventory.node.main.status, inventory.machine.status) match { - case (RemovedInventory, RemovedInventory) => - InventoryProcessingLogger.debug( - "Found node '%s' and machine '%s' in removed DIT but we received an inventory for it, moving them into pending".format( - inventory.node.main.id, - inventory.machine.id - ) - ) *> - (for { - res <- writeOnlyFullInventoryRepository.move(inventory.node.main.id, RemovedInventory, PendingInventory) - _ <- InventoryProcessingLogger.debug("Node and machine '%s' moved to pending DIT".format(inventory.machine.id)) - } yield { - records ++ res - }) - - case (RemovedInventory, _) => - InventoryProcessingLogger.debug( - "Found node '%s' ain removed DIT but we received an inventory for it, moving it into pending and leaving the container alone" - .format(inventory.node.main.id) - ) *> - (for { - res <- writeOnlyFullInventoryRepository.moveNode(inventory.node.main.id, RemovedInventory, PendingInventory) - _ <- InventoryProcessingLogger.debug("Node '%s' moved to pending DIT".format(inventory.node.main.id)) - } yield { - records ++ res - }) - case _ => // nothing to do, just forward to next post commit - records.succeed - } - } -} - -/** - * A post commit which log the list of - * modification actually done in the directory - */ -class PostCommitLogger(log: LDIFInventoryLogger) extends PostCommit[Seq[LDIFChangeRecord]] { - - override val name = "post_commit_inventory:log_inventory" - - override def apply(inventory: Inventory, records: Seq[LDIFChangeRecord]): IOResult[Seq[LDIFChangeRecord]] = { - log - .log( - inventory.name, - Some("LDIF actually commited to the LDAP directory for given inventory processing"), - Some("COMMITED"), - records - ) - .mapError(ex => SystemError("An error happen during LDIF log", ex)) *> records.succeed - } -} diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PreCommits.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PreCommits.scala index 977fb79b5f6..9b3954b7fb6 100644 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PreCommits.scala +++ b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/PreCommits.scala @@ -40,7 +40,6 @@ package com.normation.inventory.ldap.provisioning import com.normation.errors._ import com.normation.inventory.domain._ import com.normation.inventory.domain.Inventory -import com.normation.inventory.ldap.core.InventoryMapper import com.normation.inventory.services.provisioning._ import zio.syntax._ @@ -69,64 +68,6 @@ object CheckOsType extends PreCommit { } } -/** - * Normalize machine Name. - * They are mandatory, but not always provided - */ -object CheckMachineName extends PreCommit { - - private[this] def checkName(machine: MachineInventory): MachineInventory = { - // machine cn is mandatory, if not set we use the uuid - if (!machine.name.isDefined) { - machine.copy(name = Some(machine.id.value)) - } else { - machine - } - } - - override val name = "pre_commit_inventory:check_machine_cn" - - override def apply(inventory: Inventory): IOResult[Inventory] = { - // machine are in FullMachine and VMs - inventory - .copy( - machine = checkName(inventory.machine), - vms = inventory.vms.map(m => checkName(m)) - ) - .succeed - } -} - -/** - * Log the inventory to save - */ -class LogInventoryPreCommit( - mapper: InventoryMapper, - ldifLogger: LDIFInventoryLogger -) extends PreCommit { - private[this] def inventoryToLdif(invenotry: Inventory) = { - mapper.treeFromNode(invenotry.node).toLDIFRecords ++ - mapper.treeFromMachine(invenotry.machine).toLDIFRecords ++ - invenotry.vms.flatMap(vm => mapper.treeFromMachine(vm).toLDIFRecords) ++ - invenotry.applications.map(s => mapper.entryFromSoftware(s).toLDIFRecord) - } - - override val name = "pre_commit_inventory:log_inventory" - - override def apply(inventory: Inventory): IOResult[Inventory] = { - ldifLogger.log( - inventory.name, - Some( - "LDIF describing the state of inventory to reach after save. What will be actually saved may be modified by pre/post processing" - ), - Some("REPORT"), - inventoryToLdif(inventory) - ) - inventory.succeed - } - -} - /** * Update last inventory date for Server and machine */ diff --git a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/UuidMergerPreCommit.scala b/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/UuidMergerPreCommit.scala deleted file mode 100644 index 057a7605b01..00000000000 --- a/webapp/sources/ldap-inventory/inventory-provisioning-core/src/main/scala/com/normation/inventory/ldap/provisioning/UuidMergerPreCommit.scala +++ /dev/null @@ -1,196 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.inventory.ldap.provisioning - -import com.normation.errors._ -import com.normation.errors.Chained -import com.normation.inventory.domain._ -import com.normation.inventory.domain.Inventory -import com.normation.inventory.ldap.core._ -import com.normation.inventory.services.provisioning._ -import com.normation.utils.StringUuidGenerator -import org.slf4j.LoggerFactory -import zio._ -import zio.syntax._ - -object UuidMergerPreCommit { - val logger = LoggerFactory.getLogger(classOf[UuidMergerPreCommit]) -} - -/** - * this service takes care of reconciliation - * between UUID of objects on the repository and new - * coming object from automatic inventories. - * - * The service may fail if given an inconsistant inventories, - * or if the database is unavailable at time of merge. - * - */ -class UuidMergerPreCommit( - uuidGen: StringUuidGenerator, - DIT: InventoryDit, - serverIdFinder: NodeInventoryDNFinderAction, - vmIdFinder: MachineDNFinderAction, - softwareIdFinder: SoftwareDNFinderAction -) extends PreCommit { - - override val name = "pre_commit_inventory:merge_uuid" - - /** - * The goal of this method is: - * - for each elements, find its ID. That may be a new ID if the automatic resolution - * was not able to find this element on the repos, or the ID of a element already on - * the repos if the reconciliation succeed ; - * - for each elements, save it in its repos, perhaps after a merge with its last past state ; - * - * - * The big problem is that we can't have any transaction here, and so we MUST take into - * account the possibility of change between a resolution or merge and the commit. - * Moreover, as we are in a automatic mode, all choices about such a situation - * must be predefined (retry being optimistic ? How many time ? etc) - * - * @return The actually saved inventory, or a failure if one happened - */ - override def apply(inventory: Inventory): IOResult[Inventory] = { - - /////// - ////// we don't want to add anything about a inventory if any of the merging part fails ///// - ////// - - for { - // check some size matching - _ <- ZIO.when(inventory.node.softwareIds.toSet != inventory.applications.map(_.id).toSet) { - val msg = "Inconsistant inventory. Server#softwareIds does not match list of application in the inventory" - InventoryProcessingLogger.error(msg) *> InventoryError.Inconsistency(msg).fail - } - /* - * Software are special. They are legions. And they are really simple. - * So, if one merge works, we assume that the software is the same - * and just remove it from the list of application BUT NOT - * from the values in server - * - */ - mergedSoftwares <- softwareIdFinder - .tryWith(inventory.applications.toSet) - .mapError(e => Chained("Error when trying to find existing software UUIDs", e)) - // update node's soft ids - node = inventory.node.copy( - softwareIds = (mergedSoftwares.alreadySavedSoftware.map(_.id) ++ mergedSoftwares.newSoftware.map(_.id)).toSeq - ) - - /* - * Don't forget to update: - * - server's software if one or more softwareId changed ; - * - server's vms is one or more vms id changed - */ - vms <- - ZIO - .foreach(inventory.vms)(vm => mergeVm(vm)) - .catchAll(e => InventoryProcessingLogger.error(s"Error when merging vm. Reported message was: ${e.fullMsg}") *> e.fail) - /* - * We always want the node and machine to have the same status. - * Also, we ALWAYS derive machine ID from nodeId. So we only check - * if the nodeId is present to find the correct status. - */ - - finalNodeMachine <- mergeNode(node) - .foldZIO( - err => - InventoryProcessingLogger.error( - s"Error when merging node inventory. Reported message: ${err.fullMsg}. Remove machine for saving" - ) *> err.fail, - optNode => { - optNode match { - case None => - // New node, save machine and node in reporting - node.copyWithMain(m => m.copy(status = PendingInventory)).succeed - case Some(n) => - // Existing Node, save the machine with a new id in the same status than node - n.succeed - } - } - ) - .map { nodeWithStatus => - // now, set the correct machineId and status for machine - val newMachineId = MachineUuid(IdGenerator.md5Hash(nodeWithStatus.main.id.value)) - val newMachine = inventory.machine.copy(id = newMachineId, status = nodeWithStatus.main.status) - val newNode = nodeWithStatus.copy(machineId = Some((newMachineId, nodeWithStatus.main.status))) - - (newNode, newMachine) - } - } yield { - - // ok, build the merged inventory - Inventory( - inventory.name, - inventory.inventoryAgentDevideId, - finalNodeMachine._1, - finalNodeMachine._2, - inventory.version, - vms.flatten, // no need to put again already saved softwares - - mergedSoftwares.newSoftware.toSeq, - inventory.sourceFile - ) - } - } - - protected def mergeVm(machine: MachineInventory): IOResult[Option[MachineInventory]] = { - for { - opt <- vmIdFinder.tryWith(machine) - } yield { - opt.map { - case (uuid, status) => - machine.copy(id = uuid, status = status) - } - } - } - - protected def mergeNode(node: NodeInventory): IOResult[Option[NodeInventory]] = { - for { - opt <- serverIdFinder.tryWith(node) - } yield { - opt.map { - case (uuid, status) => - val main = node.main - node.copy(main = main.copy(id = uuid, status = status)) - } - } - } - -} diff --git a/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/FullInventoryRepositoryImpl.scala b/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/FullInventoryRepositoryImpl.scala index aaff1a6c1c3..ef15b6fb1b1 100644 --- a/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/FullInventoryRepositoryImpl.scala +++ b/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/FullInventoryRepositoryImpl.scala @@ -120,6 +120,13 @@ class FullInventoryRepositoryImpl( } } + def getStatus(nodeId: NodeId): IOResult[Option[InventoryStatus]] = { + for { + con <- ldap + res <- findDnForId[NodeId](con, nodeId, dn) + } yield res.map(_._2) + } + /** * Get a machine by its ID */ @@ -270,19 +277,6 @@ class FullInventoryRepositoryImpl( } }.chainError(s"Error when getting machine with ID '${id.value}' and status '${inventoryStatus.name}'") - override def getAllNodeInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, NodeInventory]] = { - (for { - con <- ldap - nodeTrees <- con.getTree(inventoryDitService.getDit(inventoryStatus).NODES.dn) - nodes <- nodeTrees match { - case Some(root) => ZIO.foreach(root.children.values)(tree => mapper.nodeFromTree(tree)) - case None => Seq().succeed - } - } yield { - nodes.map(n => (n.main.id, n)).toMap - }) - }.chainError(s"Error when getting all node inventories") - // utility methods to get node/machine from ldap entries from the base dn private[core] def machinesFromOuMachines(machinesTree: LDAPTree): IOResult[Iterable[Option[MachineInventory]]] = { ZIO.foreach(machinesTree.children.values) { tree => @@ -312,43 +306,7 @@ class FullInventoryRepositoryImpl( } } - override def getAllInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, FullInventory]] = { - - for { - con <- ldap - dit = inventoryDitService.getDit(inventoryStatus) - // Get base tree, we will go into each subtree after - tree <- con.getTree(dit.BASE_DN) - - // Get into Nodes subtree - nodesTree <- tree.flatMap(_.children.get(dit.NODES.rdn)) match { - case None => LDAPRudderError.Consistancy(s"Could not find node inventories in ${dit.BASE_DN.toString}").fail - case Some(tree) => tree.succeed - } - // we don't want that one error somewhere breaks everything - nodes <- nodesFromOuNodes(nodesTree) - - // Get into Machines subtree - machinesTree <- tree.flatMap(_.children.get(dit.MACHINES.rdn)) match { - case None => - LDAPRudderError.Consistancy(s"Could not find machine inventories in ${dit.BASE_DN.toString}").fail - case Some(tree) => tree.succeed - } - machines <- machinesFromOuMachines(machinesTree) - - } yield { - val machineMap = machines.flatten.map(m => (m.id, m)).toMap - nodes.flatten - .map(node => { - val machine = node.machineId.flatMap(mid => machineMap.get(mid._1)) - val inventory = FullInventory(node, machine) - node.main.id -> inventory - }) - .toMap - } - }.chainError(s"Error when getting all node inventories for status '${inventoryStatus.name}'") - - override def getInventories(inventoryStatus: InventoryStatus, nodeIds: Set[NodeId]): IOResult[Map[NodeId, FullInventory]] = { + def getInventories(inventoryStatus: InventoryStatus, nodeIds: Set[NodeId]): IOResult[Map[NodeId, FullInventory]] = { /* * We need to only get back the tree for nodes that we are looking for, we need to build filter like: * "(entryDN:dnSubtreeMatch:=cn=group_a,dc=abc,dc=xyz)" @@ -400,32 +358,56 @@ class FullInventoryRepositoryImpl( } override def get(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[FullInventory]] = { - for { - con <- ldap - tree <- con.getTree(dn(id, inventoryStatus)) - server <- tree match { - case Some(t) => mapper.nodeFromTree(t).map(Some(_)) - case None => None.succeed - } - // now, try to add a machine - optMachine <- { - server.flatMap(_.machineId) match { - case None => None.succeed - case Some((machineId, status)) => - // here, we want to actually use the provided DN to: - // 1/ not make 3 existence tests each time we get a node, - // 2/ make the thing more debuggable. If we don't use the DN and display - // information taken elsewhere, future debugging will leads people to madness - con.getTree(dnMachine(machineId, status)).flatMap { - case None => None.succeed - case Some(x) => mapper.machineFromTree(x).map(Some(_)) - } + getWithSoftware(id, inventoryStatus, false).map(_.map(_._1)) + } + + // if getSoftware is true, return the seq of software UUIDs, else an empty seq in addition to inventory. + def getWithSoftware( + id: NodeId, + inventoryStatus: InventoryStatus, + getSoftware: Boolean + ): IOResult[Option[(FullInventory, Seq[SoftwareUuid])]] = { + ( + for { + con <- ldap + tree <- con.getTree(dn(id, inventoryStatus)) + server <- tree match { + case Some(t) => mapper.nodeFromTree(t).map(Some(_)) + case None => None.succeed + } + // now, try to add a machine + optMachine <- { + server.flatMap(_.machineId) match { + case None => None.succeed + case Some((machineId, status)) => + // here, we want to actually use the provided DN to: + // 1/ not make 3 existence tests each time we get a node, + // 2/ make the thing more debuggable. If we don't use the DN and display + // information taken elsewhere, future debugging will leads people to madness + con.getTree(dnMachine(machineId, status)).flatMap { + case None => None.succeed + case Some(x) => mapper.machineFromTree(x).map(Some(_)) + } + } } + } yield { + server.map(s => { + ( + FullInventory(s, optMachine), + if (getSoftware) { + tree.map(t => getSoftwareUuids(t.root)).getOrElse(Seq()) + } else Seq() + ) + }) } - } yield { - server.map(s => FullInventory(s, optMachine)) - } - }.chainError(s"Error when getting node with ID '${id.value}' and status ${inventoryStatus.name}") + ).chainError(s"Error when getting node with ID '${id.value}' and status ${inventoryStatus.name}") + } + + def getSoftwareUuids(e: LDAPEntry): Chunk[SoftwareUuid] = { + // it's faster to get all software in one go than doing N requests, one for each DN + e.valuesForChunk(LDAPConstants.A_SOFTWARE_DN) + .map(dn => SoftwareUuid(new DN(dn).getRDN.getAttributeValues()(0))) // RDN has at least one value + } override def get(id: NodeId): IOResult[Option[FullInventory]] = { for { diff --git a/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala b/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala index a4434f11bda..c103370ae82 100644 --- a/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala +++ b/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala @@ -461,20 +461,20 @@ class InventoryMapper( private[this] def machineType2ObjectClass(mt: MachineType): LDAPObjectClass = { mt match { - case VirtualMachineType(UnknownVmType) => OC(OC_VM) - case VirtualMachineType(VirtualBox) => OC(OC_VM_VIRTUALBOX) - case VirtualMachineType(Xen) => OC(OC_VM_XEN) - case VirtualMachineType(VMWare) => OC(OC_VM_VMWARE) - case VirtualMachineType(SolarisZone) => OC(OC_VM_SOLARIS_ZONE) - case VirtualMachineType(QEmu) => OC(OC_VM_QEMU) - case VirtualMachineType(AixLPAR) => OC(OC_VM_AIX_LPAR) - case VirtualMachineType(HyperV) => OC(OC_VM_HYPERV) - case VirtualMachineType(BSDJail) => OC(OC_VM_BSDJAIL) - case VirtualMachineType(OpenVZ) => OC(OC_VM_OPENVZ) - case VirtualMachineType(Virtuozzo) => OC(OC_VM_VIRTUOZZO) - case VirtualMachineType(LXC) => OC(OC_VM_LXC) - case PhysicalMachineType => OC(OC_PM) - case UnknownMachineType => OC(OC_PM) // we didn't had unknown in that time and physical was the default + case VirtualMachineType(UnknownVmType) => OC_OC_VM + case VirtualMachineType(VirtualBox) => OC_OC_VM_VIRTUALBOX + case VirtualMachineType(Xen) => OC_OC_VM_XEN + case VirtualMachineType(VMWare) => OC_OC_VM_VMWARE + case VirtualMachineType(SolarisZone) => OC_OC_VM_SOLARIS_ZONE + case VirtualMachineType(QEmu) => OC_OC_VM_QEMU + case VirtualMachineType(AixLPAR) => OC_OC_VM_AIX_LPAR + case VirtualMachineType(HyperV) => OC_OC_VM_HYPERV + case VirtualMachineType(BSDJail) => OC_OC_VM_BSDJAIL + case VirtualMachineType(OpenVZ) => OC_OC_VM_OPENVZ + case VirtualMachineType(Virtuozzo) => OC_OC_VM_VIRTUOZZO + case VirtualMachineType(LXC) => OC_OC_VM_LXC + case PhysicalMachineType => OC_OC_PM + case UnknownMachineType => OC_OC_PM // we didn't had unknown in that time and physical was the default } } @@ -507,10 +507,10 @@ class InventoryMapper( val dit = ditService.getDit(machine.status) val root = dit.MACHINES.MACHINE.model(machine.id) root.setOpt(machine.mbUuid, A_MB_UUID, (x: MotherBoardUuid) => x.value) - root.addValues(A_OC, machineType2ObjectClass(machine.machineType).name) + root.addValues(A_OC, OC.objectClassNames(machineType2ObjectClass(machine.machineType).name): _*) root.setOpt(machine.inventoryDate, A_INVENTORY_DATE, (x: DateTime) => GeneralizedTime(x).toString) root.setOpt(machine.receiveDate, A_RECEIVE_DATE, (x: DateTime) => GeneralizedTime(x).toString) - root.setOpt(machine.name, A_NAME, (x: String) => x) + root.setOpt(machine.name.orElse(Some(machine.id.value)), A_NAME, (x: String) => x) root.setOpt(machine.manufacturer, A_MANUFACTURER, (x: Manufacturer) => x.name) root.setOpt(machine.systemSerialNumber, A_SERIAL_NUMBER, (x: String) => x) diff --git a/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala b/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala index 02a9d666ac1..17490edbc5b 100644 --- a/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala +++ b/webapp/sources/ldap-inventory/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala @@ -288,19 +288,19 @@ object LDAPConstants { may = Set(A_MB_UUID, A_MANUFACTURER, A_SERIAL_NUMBER) ) - OC.createObjectClass(OC_PM) - OC.createObjectClass(OC_VM) - OC.createObjectClass(OC_VM_VIRTUALBOX, OC(OC_VM)) - OC.createObjectClass(OC_VM_XEN, OC(OC_VM)) - OC.createObjectClass(OC_VM_VMWARE, OC(OC_VM)) - OC.createObjectClass(OC_VM_SOLARIS_ZONE, OC(OC_VM)) - OC.createObjectClass(OC_VM_QEMU, OC(OC_VM)) - OC.createObjectClass(OC_VM_AIX_LPAR, OC(OC_VM)) - OC.createObjectClass(OC_VM_HYPERV, OC(OC_VM)) - OC.createObjectClass(OC_VM_BSDJAIL, OC(OC_VM)) - OC.createObjectClass(OC_VM_LXC, OC(OC_VM)) - OC.createObjectClass(OC_VM_VIRTUOZZO, OC(OC_VM)) - OC.createObjectClass(OC_VM_OPENVZ, OC(OC_VM)) + val OC_OC_PM = OC.createObjectClass(OC_PM) + val OC_OC_VM = OC.createObjectClass(OC_VM) + val OC_OC_VM_VIRTUALBOX = OC.createObjectClass(OC_VM_VIRTUALBOX, OC(OC_VM)) + val OC_OC_VM_XEN = OC.createObjectClass(OC_VM_XEN, OC(OC_VM)) + val OC_OC_VM_VMWARE = OC.createObjectClass(OC_VM_VMWARE, OC(OC_VM)) + val OC_OC_VM_SOLARIS_ZONE = OC.createObjectClass(OC_VM_SOLARIS_ZONE, OC(OC_VM)) + val OC_OC_VM_QEMU = OC.createObjectClass(OC_VM_QEMU, OC(OC_VM)) + val OC_OC_VM_AIX_LPAR = OC.createObjectClass(OC_VM_AIX_LPAR, OC(OC_VM)) + val OC_OC_VM_HYPERV = OC.createObjectClass(OC_VM_HYPERV, OC(OC_VM)) + val OC_OC_VM_BSDJAIL = OC.createObjectClass(OC_VM_BSDJAIL, OC(OC_VM)) + val OC_OC_VM_LXC = OC.createObjectClass(OC_VM_LXC, OC(OC_VM)) + val OC_OC_VM_VIRTUOZZO = OC.createObjectClass(OC_VM_VIRTUOZZO, OC(OC_VM)) + val OC_OC_VM_OPENVZ = OC.createObjectClass(OC_VM_OPENVZ, OC(OC_VM)) OC.createObjectClass( OC_PE, @@ -421,10 +421,10 @@ object LDAPConstants { OC.createObjectClass(OC_WINDOWS_NODE, sup = OC(OC_NODE), may = Set(A_WIN_USER_DOMAIN, A_WIN_COMPANY, A_WIN_KEY, A_WIN_ID)) OC.createObjectClass(OC_LE, must = Set(), may = Set(A_NAME, A_DESCRIPTION)) - OC.createObjectClass(OC_FS, must = Set(A_MOUNT_POINT), may = Set(A_FILE_COUNT, A_FREE_SPACE, A_TOTAL_SPACE)) + OC.createObjectClass(OC_FS, sup = OC(OC_LE), must = Set(A_MOUNT_POINT), may = Set(A_FILE_COUNT, A_FREE_SPACE, A_TOTAL_SPACE)) OC.createObjectClass( OC_NET_IF, - sup = OC(OC_TOP), + sup = OC(OC_LE), must = Set(A_NETWORK_NAME), may = Set( A_SPEED, @@ -440,6 +440,7 @@ object LDAPConstants { ) OC.createObjectClass( OC_VM_INFO, + sup = OC(OC_LE), must = Set(A_VM_ID), may = Set(A_VM_CPU, A_VM_MEMORY, A_VM_NAME, A_VM_OWNER, A_VM_STATUS, A_VM_SUBSYSTEM, A_VM_TYPE) ) diff --git a/webapp/sources/pom.xml b/webapp/sources/pom.xml index 5d5086df92f..c8850003ad3 100644 --- a/webapp/sources/pom.xml +++ b/webapp/sources/pom.xml @@ -853,6 +853,11 @@ limitations under the License. zio-stacktracer_${scala-binary-version} ${dev-zio-version} + + dev.zio + zio-concurrent_${scala-binary-version} + ${dev-zio-version} + dev.zio zio-streams_${scala-binary-version} diff --git a/webapp/sources/rudder/rudder-core/pom.xml b/webapp/sources/rudder/rudder-core/pom.xml index 563fabbb091..fff66eee323 100644 --- a/webapp/sources/rudder/rudder-core/pom.xml +++ b/webapp/sources/rudder/rudder-core/pom.xml @@ -89,6 +89,11 @@ along with Rudder. If not, see . + + org.openjdk.jol + jol-core + 0.17 + com.normation.inventory inventory-api @@ -101,6 +106,12 @@ along with Rudder. If not, see . ${rudder-version} + + com.normation.inventory + inventory-provisioning-core + ${rudder-version} + + com.normation.inventory diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/apidata/NodeDetailLevel.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/apidata/NodeDetailLevel.scala index 7b2d2bd8592..d11abfea6a5 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/apidata/NodeDetailLevel.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/apidata/NodeDetailLevel.scala @@ -46,6 +46,7 @@ import net.liftweb.json.JsonDSL._ import org.joda.time.DateTime sealed trait NodeDetailLevel { + def fields: Set[String] /** @@ -277,7 +278,7 @@ object NodeDetailLevel { if (soft.isEmpty) { JNothing } else { - val softwares = soft.toList.map { software => + val softwares = soft.toList.sortBy(_.name).map { software => ("name" -> software.name) ~ ("editor" -> software.editor.map(_.name)) ~ ("version" -> software.version.map(_.value)) ~ diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/batch/CheckInventoryUpdate.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/batch/CheckInventoryUpdate.scala deleted file mode 100644 index 468ecc2dafc..00000000000 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/batch/CheckInventoryUpdate.scala +++ /dev/null @@ -1,103 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2017 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.rudder.batch - -import com.normation.errors.IOResult -import com.normation.eventlog.ModificationId -import com.normation.rudder.domain.eventlog.RudderEventActor -import com.normation.rudder.domain.logger.ScheduledJobLoggerPure -import com.normation.rudder.services.nodes.NodeInfoServiceCachedImpl -import com.normation.utils.StringUuidGenerator -import com.normation.zio._ -import org.joda.time.DateTime -import scala.annotation.nowarn -import zio._ - -/** - * A scheduler which checks every N seconds if inventories are updated. - * If so, I will trigger a promise generation. - * - * Note that without this scheduler, if nobody needs the nodeInfoCache, it will never - * be updated. - */ -class CheckInventoryUpdate( - nodeInfoCacheImpl: NodeInfoServiceCachedImpl, - asyncDeploymentAgent: AsyncDeploymentActor, - uuidGen: StringUuidGenerator, - updateInterval: Duration -) { - - // we need to store the time of last modification we saw so that is someone else update the cache - // (for example, a user is using the UI), then even if the cache is upToDate, we now we have to start - // a policy generation. - val lastUpdate = Ref.make(new DateTime(0)).runNow - - val logger = ScheduledJobLoggerPure - // start batch - if (updateInterval < 1.second) { - logger.logEffect.info(s"Disable automatic check for node inventories main information updates (update interval less than 1s)") - } else { - logger.logEffect.trace( - s"***** starting check of node main inventories information update to trigger policy generation, every ${updateInterval.toString()} *****" - ) - } - - // type annotation is necessary to avoid a "Any was infered, perhaps an error" - val prog: UIO[Unit] = { - (for { - _ <- nodeInfoCacheImpl.updateCache() - cacheTime <- nodeInfoCacheImpl.getCacheLastUpdate - lastSeen <- lastUpdate.getAndUpdate(_ => cacheTime) - _ <- if (lastSeen.isBefore(cacheTime)) { - logger.info("Update in node inventories main information detected: triggering a policy generation") *> - IOResult.attempt(asyncDeploymentAgent ! AutomaticStartDeployment(ModificationId(uuidGen.newUuid), RudderEventActor)) - } else { - logger.trace("No update in node inventories main information detected") - } - } yield ()).catchAll(err => - logger.error(s"Error when trying to update node inventories information. Error is: ${err.fullMsg}") - ) - } - - ZioRuntime.unsafeRun( - prog.repeat(Schedule.fixed(updateInterval)).delay(30.seconds).forkDaemon - ): @nowarn( - "msg=a type was inferred to be `\\w+`; this may indicate a programming error." - ) - -} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/logger/ApplicationLogger.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/logger/ApplicationLogger.scala index 7e1dc208cc8..3cf701d4bea 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/logger/ApplicationLogger.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/logger/ApplicationLogger.scala @@ -147,6 +147,14 @@ object NodeLoggerPure extends NamedZioLogger { parent => def loggerName: String = parent.loggerName + ".cache" } + object Metrics extends NamedZioLogger { + def loggerName: String = parent.loggerName + ".metrics" + } + + object Details extends NamedZioLogger { + def loggerName: String = parent.loggerName + ".details" + } + object PendingNode extends NamedZioLogger { // the logger for information about pending nodes (accept/refuse) def loggerName: String = parent.loggerName + ".pending" @@ -228,8 +236,12 @@ object ReportLogger extends Logger { } } -object FactQueryProcessorPure extends NamedZioLogger { +object FactQueryProcessorLoggerPure extends NamedZioLogger { override def loggerName: String = "query.node-fact" + + object Metrics extends NamedZioLogger { + override def loggerName: String = FactQueryProcessorLoggerPure.loggerName + ".metrics" + } } object ReportLoggerPure extends NamedZioLogger { diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/CmdbQuery.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/CmdbQuery.scala index 539cf95445b..b69a2c1db44 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/CmdbQuery.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/CmdbQuery.scala @@ -103,6 +103,42 @@ object KeyValueComparator { def values = ca.mrvisser.sealerate.values[KeyValueComparator] } +object NodePropertyMatcherUtils { + + // split k=v (v may not exists if there is no '=' + // is there is several '=', we consider they are part of the value + def splitInput(value: String, sep: String): SplittedValue = { + val array = value.split(sep) + val k = array(0) // always exists with split + val v = array.toList.tail + SplittedValue(k, v, sep) + } + + def matchJsonPath(key: String, path: PureResult[JsonPath])(p: NodeProperty): Boolean = { + (p.name == key) && path.flatMap(JsonSelect.exists(_, p.valueAsString).toPureResult).getOrElse(false) + } + + val regexMatcher = (value: String) => { + new NodeInfoMatcher { + override val debugString = s"Prop matches '${value}'" + + override def matches(node: NodeInfo): Boolean = matchesRegex(value, node.properties) + } + } + + def matchesRegex(value: String, properties: Iterable[NodeProperty]) = { + val predicat = (p: NodeProperty) => { + try { + value.r.pattern.matcher(s"${p.name}=${p.valueAsString}").matches() + } catch { // malformed patterned should not be saved, but never let an exception be silent + case ex: PatternSyntaxException => false + } + } + properties.exists(predicat) + } + +} + sealed trait ComparatorList { def comparators: Seq[CriterionComparator] @@ -189,6 +225,9 @@ object NodeInfoMatcher { } } +/************************* old matcher logic **********************************/ +// we will need to only keep the rendering part // + /* * Below goes all NodeInfo Criterion Type */ @@ -363,22 +402,13 @@ case object NodeIpListComparator extends NodeCriterionType { * {"name":"k","value":{ "any":"json","here":"here"}} * */ -final case class SplittedValue(key: String, values: List[String]) { - def value = values.mkString("=") +final case class SplittedValue(key: String, values: List[String], separator: String = "=") { + def value = values.mkString(separator) } final case class NodePropertyComparator(ldapAttr: String) extends NodeCriterionType { override val comparators = KeyValueComparator.values.toList ++ BaseComparators.comparators - // split k=v (v may not exists if there is no '=' - // is there is several '=', we consider they are part of the value - def splitInput(value: String, sep: String): SplittedValue = { - val array = value.split(sep) - val k = array(0) // always exists with split - val v = array.toList.tail - SplittedValue(k, v) - } - override def validateSubCase(value: String, comparator: CriterionComparator): PureResult[String] = { comparator match { case Equals | NotEquals => @@ -408,31 +438,13 @@ final case class NodePropertyComparator(ldapAttr: String) extends NodeCriterionT } } - def matchJsonPath(key: String, path: PureResult[JsonPath])(p: NodeProperty): Boolean = { - (p.name == key) && path.flatMap(JsonSelect.exists(_, p.valueAsString).toPureResult).getOrElse(false) - } - - val regexMatcher = (value: String) => { - new NodeInfoMatcher { - val predicat = (p: NodeProperty) => { - try { - value.r.pattern.matcher(s"${p.name}=${p.valueAsString}").matches() - } catch { // malformed patterned should not be saved, but never let an exception be silent - case ex: PatternSyntaxException => false - } - } - override val debugString = s"Prop matches '${value}'" - override def matches(node: NodeInfo): Boolean = node.properties.exists(predicat) - } - } - override def matches(comparator: CriterionComparator, value: String): NodeInfoMatcher = { import com.normation.rudder.domain.queries.{KeyValueComparator => KVC} comparator match { // equals mean: the key is equals to kv._1 and the value is defined and the value is equals to kv._2.get case Equals => { - val kv = splitInput(value, "=") + val kv = NodePropertyMatcherUtils.splitInput(value, "=") NodeInfoMatcher( s"Prop name=value equals'${value}'", (node: NodeInfo) => node.properties.find(p => p.name == kv.key && p.valueAsString == kv.value).isDefined @@ -445,19 +457,19 @@ final case class NodePropertyComparator(ldapAttr: String) extends NodeCriterionT NodeInfoMatcher(s"Prop name=value exists (at least one property)", (node: NodeInfo) => node.properties.nonEmpty) case NotExists => NodeInfoMatcher(s"Prop name=value not exists (empty properties)", (node: NodeInfo) => node.properties.isEmpty) - case Regex => regexMatcher(value) + case Regex => NodePropertyMatcherUtils.regexMatcher(value) case NotRegex => new NodeInfoMatcher { - val regex = regexMatcher(value) + val regex = NodePropertyMatcherUtils.regexMatcher(value) override val debugString = s"Prop matches regex '${value}'" override def matches(node: NodeInfo): Boolean = !regex.matches(node) } case KVC.HasKey => NodeInfoMatcher(s"Prop has key '${value}'", (node: NodeInfo) => node.properties.exists(_.name == value)) case KVC.JsonSelect => new NodeInfoMatcher { - val kv = splitInput(value, ":") + val kv = NodePropertyMatcherUtils.splitInput(value, ":") val path = JsonSelect.compilePath(kv.value).toPureResult - val matcher = matchJsonPath(kv.key, path) _ + val matcher = NodePropertyMatcherUtils.matchJsonPath(kv.key, path) _ override val debugString = s"Prop json select '${value}'" override def matches(node: NodeInfo): Boolean = node.properties.exists(matcher) } @@ -886,11 +898,10 @@ final case class NameValueComparator(ldapAttr: String) extends TStringComparator // split k=v (v may not exists if there is no '=' // is there is several '=', we consider they are part of the value def splitInput(value: String): (String, Option[String]) = { - val array = value.split('=') - val k = array(0) // always exists with split - val v = array.toList.tail match { + val SplittedValue(k, l, s) = NodePropertyMatcherUtils.splitInput(value, "=") + val v = l match { case Nil => None - case t => Some(t.mkString("=")) + case t => Some(t.mkString(s)) } (k, v) } @@ -937,7 +948,8 @@ final case class NameValueComparator(ldapAttr: String) extends TStringComparator */ final case class SubGroupChoice(id: NodeGroupId, name: String) -class SubGroupComparator(getGroups: () => IOResult[Seq[SubGroupChoice]]) extends TStringComparator { +// we must use `() => IOResult[...]` to avoid cyclic reference +final case class SubGroupComparator(subGroupComparatorRepo: () => SubGroupComparatorRepository) extends TStringComparator { override val comparators = Equals :: Nil override def buildFilter(attributeName: String, comparator: CriterionComparator, value: String): Filter = comparator match { @@ -949,7 +961,7 @@ class SubGroupComparator(getGroups: () => IOResult[Seq[SubGroupChoice]]) extends // we need to query for the list of groups here val subGroups: Seq[SelectableOption[String]] = { (for { - res <- getGroups() + res <- subGroupComparatorRepo().getGroups } yield { val g = res.map { case SubGroupChoice(id, name) => SelectableOption(id.serialize, name) } // if current value is defined but not in the list, add it with a "missing group" label @@ -986,7 +998,12 @@ class SubGroupComparator(getGroups: () => IOResult[Seq[SubGroupChoice]]) extends * on an inventory (or successlly on an inventory) property but on a RudderNode property. * In that case, give the predicat that the node must follows. */ -final case class Criterion(val name: String, val cType: CriterionType, overrideObjectType: Option[String] = None) { +final case class Criterion( + val name: String, + val cType: CriterionType, + nodeCriterionMatcher: NodeCriterionMatcher, + overrideObjectType: Option[String] = None +) { require(name != null && name.nonEmpty, "Criterion name must be defined") require(cType != null, "Criterion Type must be defined") } @@ -995,7 +1012,7 @@ case class ObjectCriterion(val objectType: String, val criteria: Seq[Criterion]) require(objectType.nonEmpty, "Unique identifier for line must be defined") require(criteria.nonEmpty, "You must at least have one criterion for the line") - // optionnaly retrieve the criterion from a "string" attribute + // optionally retrieve the criterion from a "string" attribute def criterionForName(name: String): (Option[Criterion]) = { for (c <- criteria) { if (name.equalsIgnoreCase(c.name)) return Some(c) diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/DitQueryData.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/DitQueryData.scala index e25d3971692..23651018477 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/DitQueryData.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/DitQueryData.scala @@ -37,16 +37,12 @@ package com.normation.rudder.domain.queries -import com.normation.errors._ import com.normation.inventory.ldap.core._ import com.normation.inventory.ldap.core.LDAPConstants._ import com.normation.ldap.sdk._ import com.normation.ldap.sdk.BuildFilter._ import com.normation.rudder.domain.NodeDit import com.normation.rudder.domain.RudderDit -import com.normation.rudder.domain.RudderLDAPConstants.A_NODE_GROUP_UUID -import com.normation.rudder.domain.RudderLDAPConstants.A_NODE_PROPERTY -import com.normation.rudder.domain.RudderLDAPConstants.A_STATE import com.normation.rudder.domain.RudderLDAPConstants.OC_RUDDER_NODE_GROUP import com.normation.rudder.services.queries.SpecialFilter import com.unboundid.ldap.sdk.DN @@ -103,237 +99,9 @@ case object NodeDnJoin extends LDAPJoinElement(A_NODE_UUID) //request for that object type. final case class LDAPObjectTypeFilter(value: Filter) extends AnyVal -class DitQueryData(dit: InventoryDit, nodeDit: NodeDit, rudderDit: RudderDit, getGroups: () => IOResult[Seq[SubGroupChoice]]) { - private val peObjectCriterion = ObjectCriterion( - OC_PE, - Seq( - // Criterion(A_MACHINE_UUID, StringComparator), - // Criterion(A_MACHINE_DN, StringComparator), //we don't want to search on that - Criterion(A_DESCRIPTION, StringComparator), - Criterion(A_MODEL, StringComparator), - Criterion(A_SERIAL_NUMBER, StringComparator), - Criterion(A_FIRMWARE, StringComparator), - Criterion(A_QUANTITY, LongComparator), - Criterion(A_SME_TYPE, StringComparator), - Criterion(A_STATUS, LongComparator), - Criterion(A_MANUFACTURER, StringComparator) - ) - ) - - private val leObjectCriterion = ObjectCriterion( - OC_LE, - Seq( -// Criterion(A_NODE_UUID, StringComparator), -// Criterion(A_NODE_DN, StringComparator), -// Criterion(A_NAME, StringComparator), - Criterion(A_DESCRIPTION, StringComparator) - ) - ) - - private val licenseObjectCriterion = ObjectCriterion( - "licence", - Seq( - Criterion(A_LICENSE_EXP, DateComparator), - Criterion(A_LICENSE_NAME, StringComparator), - Criterion(A_LICENSE_PRODUCT_ID, StringComparator), - Criterion(A_LICENSE_PRODUCT_KEY, StringComparator) - ) - ); - - protected val criteriaSet = Set( - ObjectCriterion( - OC_MACHINE, - Seq( - Criterion("machineType", MachineComparator), - Criterion("provider", VmTypeComparator), - Criterion(A_MACHINE_UUID, StringComparator), - Criterion(A_NAME, StringComparator), - Criterion(A_DESCRIPTION, StringComparator), - Criterion(A_MB_UUID, StringComparator), - Criterion(A_MANUFACTURER, StringComparator), - Criterion(A_SERIAL_NUMBER, StringComparator) - ) - ), - ObjectCriterion( - OC_MEMORY, - peObjectCriterion.criteria ++ Seq( - Criterion(A_MEMORY_SLOT_NUMBER, LongComparator), - Criterion(A_NAME, StringComparator), - Criterion(A_MEMORY_CAPACITY, MemoryComparator), - Criterion(A_MEMORY_CAPTION, StringComparator), - Criterion(A_MEMORY_SPEED, LongComparator), - Criterion(A_MEMORY_TYPE, StringComparator) - ) - ), - ObjectCriterion( - OC_STORAGE, - peObjectCriterion.criteria ++ Seq( - Criterion(A_STORAGE_NAME, StringComparator), - Criterion(A_STORAGE_SIZE, MemoryComparator), - Criterion(A_STORAGE_FIRMWARE, StringComparator) - ) - ), - ObjectCriterion( - OC_BIOS, - peObjectCriterion.criteria ++ Seq( - Criterion(A_BIOS_NAME, StringComparator), - Criterion(A_RELEASE_DATE, StringComparator), - Criterion(A_EDITOR, StringComparator), - Criterion(A_SOFT_VERSION, StringComparator) - ) ++ - licenseObjectCriterion.criteria - ), - ObjectCriterion( - OC_CONTROLLER, - peObjectCriterion.criteria ++ Seq( - Criterion(A_CONTROLLER_NAME, StringComparator) - ) - ), - ObjectCriterion( - OC_PORT, - peObjectCriterion.criteria ++ Seq( - Criterion(A_PORT_NAME, StringComparator) - ) - ), - ObjectCriterion( - OC_PROCESSOR, - peObjectCriterion.criteria ++ Seq( - Criterion(A_PROCESSOR_NAME, StringComparator), - Criterion(A_PROCESSOR_SPEED, LongComparator), - Criterion(A_PROCESSOR_STEPPING, StringComparator), - Criterion(A_PROCESSOR_FAMILLY, StringComparator), - Criterion(A_PROCESSOR_FAMILY_NAME, StringComparator), - Criterion(A_THREAD, StringComparator), - Criterion(A_CORE, StringComparator) - ) - ), - ObjectCriterion( - OC_SLOT, - peObjectCriterion.criteria ++ Seq( - Criterion(A_SLOT_NAME, StringComparator) - ) - ), - ObjectCriterion( - OC_SOUND, - peObjectCriterion.criteria ++ Seq( - Criterion(A_SOUND_NAME, StringComparator) - ) - ), - ObjectCriterion( - OC_VIDEO, - peObjectCriterion.criteria ++ Seq( - Criterion(A_VIDEO_NAME, StringComparator), - Criterion(A_VIDEO_CHIPSET, StringComparator), - Criterion(A_VIDEO_RESOLUTION, StringComparator), - Criterion(A_MEMORY_CAPACITY, MemoryComparator) - ) - ), - ObjectCriterion( - OC_NODE, - Seq( - Criterion("OS", NodeOstypeComparator), - Criterion(A_NODE_UUID, NodeStringComparator(node => node.node.id.value)), - Criterion(A_HOSTNAME, NodeStringComparator(node => node.hostname)), - Criterion(A_OS_NAME, NodeOsNameComparator), - Criterion(A_OS_FULL_NAME, OrderedStringComparator), - Criterion(A_OS_VERSION, OrderedStringComparator), - Criterion(A_OS_SERVICE_PACK, OrderedStringComparator), - Criterion(A_OS_KERNEL_VERSION, OrderedStringComparator), - Criterion(A_ARCH, StringComparator), - Criterion(A_STATE, NodeStateComparator, Some("rudderNode")), - Criterion(A_OS_RAM, MemoryComparator), - Criterion(A_OS_SWAP, MemoryComparator), - Criterion(A_AGENTS_NAME, AgentComparator), - Criterion(A_ACCOUNT, StringComparator), - Criterion(A_LIST_OF_IP, NodeIpListComparator), - Criterion(A_ROOT_USER, NodeStringComparator(node => node.localAdministratorAccountName)), - Criterion(A_INVENTORY_DATE, DateComparator), - Criterion(A_POLICY_SERVER_UUID, NodeStringComparator(node => node.policyServerId.value)) - ) - ), - ObjectCriterion( - OC_SOFTWARE, - Seq( - Criterion(A_NAME, StringComparator), - Criterion(A_DESCRIPTION, StringComparator), - Criterion(A_SOFT_VERSION, StringComparator), - Criterion(A_RELEASE_DATE, DateComparator), - Criterion(A_EDITOR, EditorComparator) - ) ++ - licenseObjectCriterion.criteria - ), - ObjectCriterion( - OC_NET_IF, - leObjectCriterion.criteria ++ Seq( - Criterion(A_NETWORK_NAME, StringComparator), - Criterion(A_NETIF_ADDRESS, StringComparator), - Criterion(A_NETIF_DHCP, StringComparator), - Criterion(A_NETIF_GATEWAY, StringComparator), - Criterion(A_NETIF_MASK, StringComparator), - Criterion(A_NETIF_SUBNET, StringComparator), - Criterion(A_NETIF_MAC, StringComparator), - Criterion(A_NETIF_TYPE, StringComparator), - Criterion(A_NETIF_TYPE_MIB, StringComparator) - ) - ), - ObjectCriterion( - OC_FS, - leObjectCriterion.criteria ++ Seq( - Criterion(A_NAME, StringComparator), - Criterion(A_MOUNT_POINT, StringComparator), - Criterion(A_FILE_COUNT, StringComparator), - Criterion(A_FREE_SPACE, MemoryComparator), - Criterion(A_TOTAL_SPACE, MemoryComparator) - ) - ), - ObjectCriterion( - A_PROCESS, - Seq( - Criterion("pid", JsonFixedKeyComparator(A_PROCESS, "pid", false)), - Criterion("commandName", JsonFixedKeyComparator(A_PROCESS, "commandName", true)), - Criterion("cpuUsage", JsonFixedKeyComparator(A_PROCESS, "cpuUsage", false)), - Criterion("memory", JsonFixedKeyComparator(A_PROCESS, "memory", false)), - Criterion("tty", JsonFixedKeyComparator(A_PROCESS, "tty", true)), - Criterion("virtualMemory", JsonFixedKeyComparator(A_PROCESS, "virtualMemory", false)), - Criterion("started", JsonFixedKeyComparator(A_PROCESS, "started", true)), - Criterion("user", JsonFixedKeyComparator(A_PROCESS, "user", true)) - ) - ), - ObjectCriterion( - OC_VM_INFO, - leObjectCriterion.criteria ++ Seq( - Criterion(A_VM_TYPE, StringComparator), - Criterion(A_VM_OWNER, StringComparator), - Criterion(A_VM_STATUS, StringComparator), - Criterion(A_VM_CPU, LongComparator), - Criterion(A_VM_MEMORY, LongComparator), - Criterion(A_VM_ID, StringComparator), - Criterion(A_VM_SUBSYSTEM, StringComparator), - Criterion(A_VM_NAME, StringComparator) - ) - ), - ObjectCriterion( - A_EV, - Seq( - Criterion("name.value", NameValueComparator(A_EV)) - ) - ), - ObjectCriterion( - A_NODE_PROPERTY, - Seq( - Criterion("name.value", NodePropertyComparator(A_NODE_PROPERTY)) - ) - ), - ObjectCriterion( - "group", - Seq( - Criterion(A_NODE_GROUP_UUID, new SubGroupComparator(getGroups)) - ) - ) - ) +class DitQueryData(dit: InventoryDit, nodeDit: NodeDit, rudderDit: RudderDit, criteria: NodeQueryCriteriaData) { - val criteriaMap: SortedMap[String, ObjectCriterion] = - SortedMap[String, ObjectCriterion]() ++ (criteriaSet map { crit => (crit.objectType, crit) }) + val criteriaMap: SortedMap[String, ObjectCriterion] = criteria.criteriaMap /* * * "baseDn" of the object type to search for diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/NodeQueryCriteriaData.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/NodeQueryCriteriaData.scala new file mode 100644 index 00000000000..9d1e07521d3 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/domain/queries/NodeQueryCriteriaData.scala @@ -0,0 +1,733 @@ +/* + ************************************************************************************* + * Copyright 2011 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.domain.queries + +import com.normation.errors._ +import com.normation.inventory.domain.AgentType +import com.normation.inventory.domain.NodeId +import com.normation.inventory.ldap.core.LDAPConstants._ +import com.normation.inventory.ldap.core.LDAPConstants.A_PROCESS +import com.normation.rudder.domain.RudderLDAPConstants.A_NODE_GROUP_UUID +import com.normation.rudder.domain.RudderLDAPConstants.A_NODE_PROPERTY +import com.normation.rudder.domain.RudderLDAPConstants.A_STATE +import com.normation.rudder.domain.logger.FactQueryProcessorLoggerPure +import com.normation.rudder.domain.nodes.NodeGroupId +import com.normation.rudder.domain.properties.NodeProperty +import com.normation.rudder.domain.queries.{KeyValueComparator => KVC} +import com.normation.rudder.domain.queries.KeyValueComparator.HasKey +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.NodeFact +import com.normation.rudder.repository.RoNodeGroupRepository +import com.normation.utils.DateFormaterService +import java.util.function.Predicate +import java.util.regex.Pattern +import org.joda.time.DateTime +import org.joda.time.format.DateTimeFormat +import scala.collection.SortedMap +import scala.util.Try +import zio._ +import zio.syntax._ + +trait SubGroupComparatorRepository { + def getNodeIds(groupId: NodeGroupId): IOResult[Chunk[NodeId]] + def getGroups: IOResult[Chunk[SubGroupChoice]] +} +// default implementation out of test use GroupRepo for that +class DefaultSubGroupComparatorRepository(repo: RoNodeGroupRepository) extends SubGroupComparatorRepository { + + override def getNodeIds(groupId: NodeGroupId): IOResult[Chunk[NodeId]] = { + repo.getNodeGroupOpt(groupId).map { + case None => Chunk.empty + case Some((group, _)) => Chunk.fromIterable(group.serverList) + } + } + + override def getGroups: IOResult[Chunk[SubGroupChoice]] = { + repo.getAll().map(seq => Chunk.fromIterable(seq).map(g => SubGroupChoice(g.id, g.name))) + } +} + +// groupRepo must be `=> ` to avoid cyclic dep +class NodeQueryCriteriaData(groupRepo: () => SubGroupComparatorRepository) { + + implicit class IterableToChunk[A](it: Iterable[A]) { + def toChunk: Chunk[A] = Chunk.fromIterable(it) + } + + implicit class OptionToChunk[A](opt: Option[A]) { + def toChunk: Chunk[A] = Chunk.fromIterable(opt) + } + + implicit class OneToChunk[A](a: A) { + def wrap: Chunk[A] = Chunk(a) + } + + val criteria = Chunk( + ObjectCriterion( + OC_MACHINE, + Chunk( + Criterion("machineType", MachineComparator, NodeCriterionMatcherString(_.machine.machineType.kind.wrap)), + Criterion(A_MACHINE_UUID, StringComparator, NodeCriterionMatcherString(_.machine.id.value.wrap)), + Criterion(A_NAME, StringComparator, AlwaysFalse("machine does not have a 'name' attribute in fusion")), + Criterion(A_DESCRIPTION, StringComparator, AlwaysFalse("machine does not have a 'description' attribute in fusion")), + Criterion(A_MB_UUID, StringComparator, AlwaysFalse("machine does not have a 'mother board uuid' attribute in fusion")), + Criterion( + A_MANUFACTURER, + StringComparator, + AlwaysFalse("machine does not have a 'mother board uuid' attribute in fusion") + ), + Criterion(A_SERIAL_NUMBER, StringComparator, NodeCriterionMatcherString(_.machine.systemSerial.toChunk)) + ) + ), + ObjectCriterion( + OC_MEMORY, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MEMORY_CAPACITY, MemoryComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MEMORY_CAPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MEMORY_SPEED, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MEMORY_SLOT_NUMBER, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MEMORY_TYPE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SERIAL_NUMBER, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_STORAGE, + Chunk( + Criterion(A_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MODEL, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SERIAL_NUMBER, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_FIRMWARE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SME_TYPE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MANUFACTURER, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_STORAGE_SIZE, MemoryComparator, UnsupportedByNodeMinimalApi), + Criterion(A_STORAGE_FIRMWARE, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_BIOS, + Chunk( + Criterion(A_BIOS_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SOFT_VERSION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_RELEASE_DATE, DateComparator, UnsupportedByNodeMinimalApi), + Criterion(A_EDITOR, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_CONTROLLER, + Chunk( + Criterion(A_CONTROLLER_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SME_TYPE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MANUFACTURER, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_PORT, + Chunk( + Criterion(A_PORT_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SME_TYPE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_PROCESSOR, + Chunk( + Criterion(A_PROCESSOR_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MODEL, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MANUFACTURER, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_PROCESSOR_SPEED, LongComparator, UnsupportedByNodeMinimalApi), + Criterion( + A_PROCESSOR_STEPPING, + StringComparator, + UnsupportedByNodeMinimalApi + ), + Criterion( + A_PROCESSOR_FAMILLY, + StringComparator, + UnsupportedByNodeMinimalApi + ), + Criterion(A_PROCESSOR_FAMILY_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_THREAD, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_CORE, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_SLOT, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_STATUS, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SLOT_NAME, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_SOUND, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SOUND_NAME, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_VIDEO, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_QUANTITY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VIDEO_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VIDEO_CHIPSET, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VIDEO_RESOLUTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MEMORY_CAPACITY, MemoryComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_NODE, + Chunk( + Criterion("OS", NodeOstypeComparator, NodeCriterionMatcherString(_.os.os.kernelName.wrap)), + Criterion(A_NODE_UUID, StringComparator, NodeCriterionMatcherString(_.id.value.wrap)), + Criterion(A_HOSTNAME, StringComparator, NodeCriterionMatcherString(_.fqdn.wrap)), + Criterion(A_OS_NAME, NodeOsNameComparator, NodeCriterionMatcherString(_.os.os.name.wrap)), + Criterion(A_OS_FULL_NAME, OrderedStringComparator, NodeCriterionMatcherString(_.os.fullName.wrap)), + Criterion(A_OS_VERSION, OrderedStringComparator, NodeCriterionMatcherString(_.os.version.value.wrap)), + Criterion(A_OS_SERVICE_PACK, OrderedStringComparator, NodeCriterionMatcherString(_.os.servicePack.toChunk)), + Criterion(A_OS_KERNEL_VERSION, OrderedStringComparator, NodeCriterionMatcherString(_.os.kernelVersion.value.wrap)), + Criterion(A_ARCH, StringComparator, NodeCriterionMatcherString(_.archDescription.toChunk)), + Criterion(A_STATE, NodeStateComparator, NodeCriterionMatcherString(_.rudderSettings.state.name.wrap)), + Criterion(A_OS_RAM, MemoryComparator, NodeCriterionMatcherLong(_.ram.map(_.size).toChunk)), + Criterion(A_OS_SWAP, MemoryComparator, UnsupportedByNodeMinimalApi), + Criterion(A_AGENTS_NAME, AgentComparator, AgentMatcher), + Criterion(A_ACCOUNT, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_LIST_OF_IP, NodeIpListComparator, NodeCriterionMatcherString(_.ipAddresses.map(_.inet))), + Criterion(A_ROOT_USER, StringComparator, NodeCriterionMatcherString(_.rudderAgent.user.wrap)), + Criterion(A_INVENTORY_DATE, DateComparator, NodeCriterionMatcherDate(_.lastInventoryDate.toChunk)), + Criterion( + A_POLICY_SERVER_UUID, + StringComparator, + NodeCriterionMatcherString(_.rudderSettings.policyServerId.value.wrap) + ) + ) + ), + ObjectCriterion( + OC_SOFTWARE, + Chunk( + Criterion(A_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_SOFT_VERSION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_EDITOR, EditorComparator, UnsupportedByNodeMinimalApi), + Criterion(A_LICENSE_EXP, DateComparator, UnsupportedByNodeMinimalApi), + Criterion(A_LICENSE_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_LICENSE_PRODUCT_ID, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_LICENSE_PRODUCT_KEY, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_NET_IF, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_NETWORK_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion( + A_NETIF_ADDRESS, + StringComparator, + UnsupportedByNodeMinimalApi + ), + Criterion(A_NETIF_DHCP, StringComparator, UnsupportedByNodeMinimalApi), + Criterion( + A_NETIF_GATEWAY, + StringComparator, + UnsupportedByNodeMinimalApi + ), + Criterion(A_NETIF_MASK, StringComparator, UnsupportedByNodeMinimalApi), + Criterion( + A_NETIF_SUBNET, + StringComparator, + UnsupportedByNodeMinimalApi + ), + Criterion(A_NETIF_MAC, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_NETIF_TYPE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_NETIF_TYPE_MIB, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + OC_FS, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_NAME, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_MOUNT_POINT, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_FILE_COUNT, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_FREE_SPACE, MemoryComparator, UnsupportedByNodeMinimalApi), + Criterion(A_TOTAL_SPACE, MemoryComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + A_PROCESS, + Chunk( + Criterion("pid", JsonFixedKeyComparator(A_PROCESS, "pid", false), UnsupportedByNodeMinimalApi), + Criterion( + "commandName", + JsonFixedKeyComparator(A_PROCESS, "commandName", true), + UnsupportedByNodeMinimalApi + ), + Criterion( + "cpuUsage", + JsonFixedKeyComparator(A_PROCESS, "cpuUsage", false), + UnsupportedByNodeMinimalApi + ), + Criterion( + "memory", + JsonFixedKeyComparator(A_PROCESS, "memory", false), + UnsupportedByNodeMinimalApi + ), + Criterion("tty", JsonFixedKeyComparator(A_PROCESS, "tty", true), UnsupportedByNodeMinimalApi), + Criterion( + "virtualMemory", + JsonFixedKeyComparator(A_PROCESS, "virtualMemory", false), + UnsupportedByNodeMinimalApi + ), + Criterion( + "started", + JsonFixedKeyComparator(A_PROCESS, "started", true), + UnsupportedByNodeMinimalApi + ), + Criterion( + "user", + JsonFixedKeyComparator(A_PROCESS, "user", true), + UnsupportedByNodeMinimalApi + ) + ) + ), + ObjectCriterion( + OC_VM_INFO, + Chunk( + Criterion(A_DESCRIPTION, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_TYPE, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_OWNER, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_STATUS, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_CPU, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_MEMORY, LongComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_ID, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_SUBSYSTEM, StringComparator, UnsupportedByNodeMinimalApi), + Criterion(A_VM_NAME, StringComparator, UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + A_EV, + Chunk( + Criterion("name.value", NameValueComparator(A_EV), UnsupportedByNodeMinimalApi) + ) + ), + ObjectCriterion( + A_NODE_PROPERTY, + Chunk( + Criterion("name.value", NodePropertyComparator(A_NODE_PROPERTY), NodePropertiesMatcher) + ) + ), + ObjectCriterion( + "group", + Chunk( + Criterion( + A_NODE_GROUP_UUID, + SubGroupComparator(groupRepo), + UnsupportedByNodeMinimalApi + ) + ) + ) + ) + + val criteriaMap: SortedMap[String, ObjectCriterion] = SortedMap.from(criteria.map(c => (c.objectType, c))) +} + +////// below, criterion matching logic /////. + +////////////////////////////////////////////////////////////////////// +/////////////////// direct matching with NodeFact /////////////////// +///////////////////////////////////////////////////////////////////// + +object MatcherUtils { + def getRegex(regexText: String): IOResult[Predicate[String]] = { + IOResult.attempt( + s"The regular expression '${regexText}' is not valid. Expected regex syntax is the java " + + s"one, documented here: http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html" + )(Pattern.compile(regexText, Pattern.DOTALL).asMatchPredicate()) + } + +} + +final case class DebugInfo(comparatorName: String, value: Option[String]) { + def formatValue = value match { + case None => "" + case Some(v) => s" ${v}" + } + def debugMsg[A](values: Chunk[A], res: Boolean)(implicit serializer: A => String): String = { + s" [${res}] for '${comparatorName}${formatValue}' on [${values.map(serializer).mkString("|")}]" + } +} + +final case class MatchHolderZio[A](debug: DebugInfo, values: Chunk[A], matcher: Chunk[A] => IOResult[Boolean])(implicit + serializer: A => String +) { + def matches = for { + res <- matcher(values) + _ <- FactQueryProcessorLoggerPure.trace(debug.debugMsg(values, res)) + } yield res +} + +object MatchHolder { + def apply[A](debugInfo: DebugInfo, values: Chunk[A], matcher: Chunk[A] => Boolean)(implicit + serializer: A => String + ): MatchHolderZio[A] = { + MatchHolderZio[A](debugInfo, values, (vs: Chunk[A]) => matcher(vs).succeed) + } +} + +trait NodeCriterionMatcher { + def matches(n: CoreNodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] +} + +trait FullNodeCriterionMatcher { + def matches(n: NodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] +} + +case class AlwaysFalse(reason: String) extends NodeCriterionMatcher { + override def matches(n: CoreNodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] = { + FactQueryProcessorLoggerPure.trace(s" [false] for AlwaysFalse: ${reason} ") *> + false.succeed + } +} + +case object UnsupportedByNodeMinimalApi extends NodeCriterionMatcher { + override def matches(n: CoreNodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] = { + FactQueryProcessorLoggerPure.trace( + s" [false] ${comparator.id} is not supported by minimal node API, it must be handled by a special operator " + ) *> + false.succeed + } +} + +/* + * A generic matcher that matches anything that has an order and can be parsed/serialized + * to one value. Typically, it can be String, numeric value, date, memories, etc. + */ +trait NodeCriterionOrderedValueMatcher[A] extends NodeCriterionMatcher { + def extractor: CoreNodeFact => Chunk[A] + def parseNum(value: String): Option[A] + def serialise(a: A): String + def order: Ordering[A] + + def tryMatches(value: String, matches: A => MatchHolderZio[A]): IOResult[Boolean] = { + parseNum(value) match { + case Some(a) => matches(a).matches + case None => + FactQueryProcessorLoggerPure.trace(s" - '${value}' can not be parsed into correct type: false'") *> + false.succeed + } + } + + def matches(n: CoreNodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] = { + implicit val ser = serialise _ + + comparator match { + case Equals => + tryMatches(value, a => MatchHolder[A](DebugInfo(Equals.id, Some(value)), extractor(n), _.exists(_ == a))) + case NotEquals => + tryMatches(value, a => MatchHolder[A](DebugInfo(NotEquals.id, Some(value)), extractor(n), _.forall(_ != a))) + case Regex => + for { + m <- MatcherUtils.getRegex(value) + r <- MatchHolder[A]( + DebugInfo(Regex.id, Some(value)), + extractor(n), + _.exists(s => m.test(serialise(s))) + ).matches + } yield r + case NotRegex => + for { + m <- MatcherUtils.getRegex(value) + r <- MatchHolder[A]( + DebugInfo(NotRegex.id, Some(value)), + extractor(n), + _.forall(s => !m.test(serialise(s))) + ).matches + } yield r + case Exists => + MatchHolder[A](DebugInfo(Exists.id, None), extractor(n), _.nonEmpty).matches + case NotExists => + MatchHolder[A](DebugInfo(NotExists.id, None), extractor(n), _.isEmpty).matches + case Lesser => + tryMatches(value, a => MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(order.lt(_, a)))) + case LesserEq => + tryMatches(value, a => MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(order.lteq(_, a)))) + case Greater => + tryMatches(value, a => MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(order.gt(_, a)))) + case GreaterEq => + tryMatches( + value, + a => MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(order.gteq(_, a))) + ) + case c => MatchHolder[A](DebugInfo(s"unknown comparator: ${c}", Some(value)), Chunk(), _ => false).matches + } + } +} + +final case class NodeCriterionMatcherString(extractor: CoreNodeFact => Chunk[String]) + extends NodeCriterionOrderedValueMatcher[String] { + override def parseNum(value: String): Option[String] = Some(value) + override def serialise(a: String): String = a + val order = Ordering.String +} + +final case class NodeCriterionMatcherInt(extractor: CoreNodeFact => Chunk[Int]) extends NodeCriterionOrderedValueMatcher[Int] { + override def parseNum(value: String): Option[Int] = try { Some(Integer.parseInt(value)) } + catch { case ex: NumberFormatException => None } + override def serialise(a: Int): String = a.toString + val order = Ordering.Int +} + +final case class NodeCriterionMatcherLong(extractor: CoreNodeFact => Chunk[Long]) extends NodeCriterionOrderedValueMatcher[Long] { + override def parseNum(value: String): Option[Long] = try { Some(java.lang.Long.parseLong(value)) } + catch { case ex: NumberFormatException => None } + override def serialise(a: Long): String = a.toString + val order = Ordering.Long +} + +final case class NodeCriterionMatcherFloat(extractor: CoreNodeFact => Chunk[Float]) + extends NodeCriterionOrderedValueMatcher[Float] { + override def parseNum(value: String): Option[Float] = try { Some(java.lang.Float.parseFloat(value)) } + catch { case ex: NumberFormatException => None } + override def serialise(a: Float): String = a.toString + val order = Ordering.Float.TotalOrdering +} + +final case class NodeCriterionMatcherDouble(extractor: CoreNodeFact => Chunk[Double]) + extends NodeCriterionOrderedValueMatcher[Double] { + override def parseNum(value: String): Option[Double] = try { Some(java.lang.Double.parseDouble(value)) } + catch { case ex: NumberFormatException => None } + override def serialise(a: Double): String = a.toString + val order = Ordering.Double.TotalOrdering +} + +final case class NodeCriterionMatcherDate(extractorNode: CoreNodeFact => Chunk[DateTime]) + extends NodeCriterionOrderedValueMatcher[DateTime] { + val parseDate = (s: String) => + DateFormaterService.parseDate(s).toOption.orElse(Try(DateTimeFormat.forPattern("dd/MM/YYYY").parseDateTime(s)).toOption) + // we need to accept both ISO format and old dd/MM/YYYY format for compatibility + // also, we discard the time, only keep date + + override def extractor: CoreNodeFact => Chunk[DateTime] = (n: CoreNodeFact) => extractorNode(n).map(_.withTimeAtStartOfDay()) + override def parseNum(value: String): Option[DateTime] = parseDate(value).map(_.withTimeAtStartOfDay()) + override def serialise(a: DateTime): String = DateFormaterService.serialize(a) + val order = Ordering.by(_.getMillis) +} + +/* + * Agent matcher is very special with some magic case like "any cfengine" + */ +object AgentMatcher extends NodeCriterionMatcher { + override def matches(n: CoreNodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] = { + + implicit val serializer = (a: AgentType) => a.id + // this is magic: we equals on agent ID and in addition we have the magic value "cfengine" that matches + // any cfengine, which is just cfengine-community since we don't do anything else + def eq(value: String, tpe: AgentType): Boolean = { + value match { + case AgentComparator.ANY_CFENGINE => tpe == AgentType.CfeCommunity || tpe == AgentType.CfeEnterprise + case x => tpe.id == x || tpe.oldShortName == x + } + } + + comparator match { + case Equals => + MatchHolder[AgentType](DebugInfo(Equals.id, Some(value)), Chunk(n.rudderAgent.agentType), _.exists(eq(value, _))).matches + case NotEquals => matches(n, Equals, value).map(!_) + case c => MatchHolder[AgentType](DebugInfo(s"unknown comparator: ${c}", Some(value)), Chunk(), _ => false).matches + } + } +} + +/* + * A generic matcher for (key, value) elements. + * Key are string, values are string or json. + * It will allow to match on: + * - key=value + * - hasKey + * - jsonSelect + * In addition to eq/exist/regex + * Regex follows a + * + * The serialise method is used for the debug representation and k=v matcher. + * The getValue method is for the value part, used in jsonSelect. + */ +trait NodeCriterionKeyValueMatcher[A] extends NodeCriterionMatcher { + def extractor: CoreNodeFact => Chunk[A] + def serialise(a: A): String + def getKey(a: A): String + def getValue(a: A): String + // ordering on key, alternative could be done on values + def order: Ordering[String] = Ordering.String + + def matches(n: CoreNodeFact, comparator: CriterionComparator, value: String): IOResult[Boolean] = { + implicit val ser = serialise _ + + // for Key/Value comparator, we have an expected format for the value for some operator: + // Equals and NotEquals: value is: ${key}=${value}, ie "=" is mandatory + // HasKey: value is: ${key}:${value} , ie ":" is mandatory + def getKVEquals(value: String): IOResult[SplittedValue] = { + val kv = NodePropertyMatcherUtils.splitInput(value, "=") + kv.values match { + case Nil => + Inconsistency( + s"When looking for 'key=value', the '=' is mandatory. The left part is a key name, and the right part is the string to look for." + ).fail + case _ => kv.succeed + } + } + + def getKVHasKey(value: String): IOResult[SplittedValue] = { + val kv = NodePropertyMatcherUtils.splitInput(value, ":") + kv.values match { + case Nil => + Inconsistency( + s"When looking for 'key:json path expression', we found zero ':', but at least one is mandatory. The left " + + "part is a key name, and the right part is the JSON path expression (see https://github.com/json-path/JsonPath). " + + "For example: datacenter:world.europe.[?(@.city=='Paris')]" + ).fail + case _ => kv.succeed + } + } + + comparator match { + case Equals => + for { + kv <- getKVEquals(value) + res <- MatchHolder[A]( + DebugInfo(Equals.id, Some(value)), + extractor(n), + _.exists(v => getKey(v) == kv.key && getValue(v) == kv.value) + ).matches + } yield res + + // not equals look for a value not equal to parameter but only for the given key + // not having the key is also not equals + case NotEquals => + for { + kv <- getKVEquals(value) + res <- MatchHolder[A]( + DebugInfo(Equals.id, Some(value)), + extractor(n), + _.forall(v => getKey(v) != kv.key || (getKey(v) == kv.key && getValue(v) != kv.value)) + ).matches + } yield res + + case Regex => + for { + m <- MatcherUtils.getRegex(value) + res <- MatchHolder[A]( + DebugInfo(Regex.id, Some(value)), + extractor(n), + _.exists(s => m.test(serialise(s))) + ).matches + } yield res + case NotRegex => + for { + m <- MatcherUtils.getRegex(value) + res <- MatchHolder[A]( + DebugInfo(NotRegex.id, Some(value)), + extractor(n), + _.forall(s => !m.test(serialise(s))) + ).matches + } yield res + case Exists => + MatchHolder[A](DebugInfo(Exists.id, None), extractor(n), _.nonEmpty).matches + case NotExists => + MatchHolder[A](DebugInfo(NotExists.id, None), extractor(n), _.isEmpty).matches + case Lesser => + MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(a => order.lt(getKey(a), value))).matches + case LesserEq => + MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(a => order.lteq(getKey(a), value))).matches + case Greater => + MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(a => order.gt(getKey(a), value))).matches + case GreaterEq => + MatchHolder[A](DebugInfo(Lesser.id, Some(value)), extractor(n), _.exists(a => order.gteq(getKey(a), value))).matches + + case HasKey => + MatchHolder[A](DebugInfo(HasKey.id, Some(value)), extractor(n), _.exists(kv => getKey(kv) == value)).matches + case KVC.JsonSelect => + // for JSON select: error in json path matching (ie "JsonSelect.exists") are considered as not matching, not as errors + for { + kv <- getKVHasKey(value) + path <- JsonSelect.compilePath(kv.value).toIO + matcher = (as: Chunk[A]) => { + ZIO.exists(as)(a => { + ZIO + .when(getKey(a) == kv.key)(JsonSelect.exists(path, getValue(a)).toIO) + .map(_.getOrElse(false)) + .catchAll(_ => false.succeed) + }) + } + res <- MatchHolderZio[A](DebugInfo(KVC.JsonSelect.id, Some(value)), extractor(n), matcher).matches + } yield res + + case c => MatchHolder[A](DebugInfo(s"unknown comparator: ${c}", Some(value)), Chunk(), _ => false).matches + } + } +} + +//object EnvironmentVariableMatcher extends NodeCriterionKeyValueMatcher[(String, String)] { +// override def extractor: NodeFact => Chunk[(String, String)] = { (n: NodeFact) => n.environmentVariables } +// override def serialise(a: (String, String)): String = s"""${a._1}=${a._2}""" +// override def getKey(a: (String, String)): String = a._1 +// override def getValue(a: (String, String)): String = a._2 +//} + +object NodePropertiesMatcher extends NodeCriterionKeyValueMatcher[NodeProperty] { + /* + * Node properties search are done on both node properties and inventory custom properties + */ + override def extractor: CoreNodeFact => Chunk[NodeProperty] = { (n: CoreNodeFact) => n.properties } + override def serialise(a: NodeProperty): String = s"""${a.name}=${a.valueAsString}""" + override def getKey(a: NodeProperty): String = a.name + override def getValue(a: NodeProperty): String = a.valueAsString +} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFact.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFact.scala index a55953f74c8..0f011aedb94 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFact.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFact.scala @@ -37,8 +37,12 @@ package com.normation.rudder.facts.nodes +import com.normation.eventlog.EventActor +import com.normation.eventlog.ModificationId import com.normation.inventory.domain._ import com.normation.inventory.domain.{Version => SVersion} +import com.normation.rudder.apidata.NodeDetailLevel +import com.normation.rudder.domain.eventlog import com.normation.rudder.domain.nodes.MachineInfo import com.normation.rudder.domain.nodes.Node import com.normation.rudder.domain.nodes.NodeInfo @@ -157,7 +161,7 @@ final case class SoftwareFact( object SoftwareFact { implicit class ToSoftware(sf: SoftwareFact) { def toSoftware: Software = Software( - SoftwareUuid(sf.name), + SoftwareUuid(""), // here, we don't know the uuid. We need a way to mark that it's not valid and don't risk using a bad one Some(sf.name), None, Some(sf.version), @@ -168,13 +172,18 @@ object SoftwareFact { sf.sourceVersion ) } + + def fromSoftware(s: Software): Option[SoftwareFact] = { + import NodeFact._ + s.toFact + } } -object NodeFact { +object MinimalNodeFactInterface { /* * Check if the node fact are the same. - * Sameness is not equatity. It does not look for: + * Sameness is not equality. It does not look for: * - inventory date * - fact processing time * - acceptation time @@ -184,17 +193,15 @@ object NodeFact { * most node fact are never compared for sameness. * Same is heavy, don't use it often ! */ - def same(a: NodeFact, b: NodeFact): Boolean = { - // compare two chunk sameness - def compare[A, B: Ordering](accessor: NodeFact => Chunk[A])(orderOn: A => B): Boolean = { + def same(a: MinimalNodeFactInterface, b: MinimalNodeFactInterface): Boolean = { + def eq[A](accessor: MinimalNodeFactInterface => A): Boolean = { + accessor(a) == accessor(b) + } + def compare[A, B: Ordering](accessor: MinimalNodeFactInterface => Chunk[A])(orderOn: A => B): Boolean = { accessor(a).size == accessor(b).size && accessor(a).sortBy(orderOn) == accessor(b).sortBy(orderOn) } - def eq[A](accessor: NodeFact => A): Boolean = { - accessor(a) == accessor(b) - } - eq(_.id) && eq(_.description) && eq(_.fqdn) && @@ -204,7 +211,109 @@ object NodeFact { eq(_.rudderAgent) && compare(_.properties)(_.name) && compare(_.ipAddresses)(_.inet) && - eq(_.timezone) && + eq(_.timezone) + } + + def isSystem(node: MinimalNodeFactInterface): Boolean = { + node.rudderSettings.kind != NodeKind.Node + } + + def ipAddresses(node: MinimalNodeFactInterface): List[String] = { + node.ipAddresses.map(_.inet).toList + } + + def toNode(node: MinimalNodeFactInterface): Node = Node( + node.id, + node.fqdn, + "", // description + node.rudderSettings.state, + isSystem(node), + isSystem((node)), + node.creationDate, + node.rudderSettings.reportingConfiguration, + node.properties.toList, + node.rudderSettings.policyMode + ) + + def toNodeInfo(node: MinimalNodeFactInterface, ram: Option[MemorySize], archDescription: Option[String]): NodeInfo = NodeInfo( + toNode(node), + node.fqdn, + Some(node.machine), + node.os, + node.ipAddresses.toList.map(_.inet), + node.lastInventoryDate.getOrElse(node.factProcessedDate), + node.rudderSettings.keyStatus, + Chunk( + AgentInfo( + node.rudderAgent.agentType, + Some(node.rudderAgent.version), + node.rudderAgent.securityToken, + node.rudderAgent.capabilities.toSet + ) + ), + node.rudderSettings.policyServerId, + node.rudderAgent.user, + archDescription, + ram, + node.timezone + ) + + def toSrv(node: MinimalNodeFactInterface): Srv = { + Srv( + node.id, + node.rudderSettings.status, + node.fqdn, + node.os.os.kernelName, + node.os.os.name, + node.os.fullName, + ipAddresses(node), + node.creationDate, + isSystem(node) + ) + } + + def toNodeSummary(node: MinimalNodeFactInterface): NodeSummary = { + NodeSummary( + node.id, + node.rudderSettings.status, + node.rudderAgent.user, + node.fqdn, + node.os, + node.rudderSettings.policyServerId, + node.rudderSettings.keyStatus + ) + } +} + +object NodeFact { + + /* + * Check if the node fact are the same. + * Sameness is not equatity. It does not look for: + * - inventory date + * - fact processing time + * - acceptation time + * - order in any collection + * + * Having a hashcode on node fact would be inefficient, + * most node fact are never compared for sameness. + * Same is heavy, don't use it often ! + */ + def same(nfa: NodeFact, nfb: NodeFact)(implicit attrs: SelectFacts): Boolean = { + + val a = SelectFacts.mask(nfa) + val b = SelectFacts.mask(nfb) + + def eq[A](accessor: NodeFact => A): Boolean = { + accessor(a) == accessor(b) + } + // compare two chunk sameness + def compare[A, B: Ordering](accessor: NodeFact => Chunk[A])(orderOn: A => B): Boolean = { + accessor(a).size == accessor(b).size && + accessor(a).sortBy(orderOn) == accessor(b).sortBy(orderOn) + } + + MinimalNodeFactInterface.same(a, b) && eq(_.ram) && eq(_.swap) && eq(_.archDescription) && @@ -282,7 +391,7 @@ object NodeFact { .using(_.sortBy(_.name)) } - def toMachineId(nodeId: NodeId) = MachineUuid("machine-" + nodeId.value) + def toMachineId(nodeId: NodeId) = MachineUuid("machine-for-" + nodeId.value) implicit class IterableToChunk[A](it: Iterable[A]) { def toChunk: Chunk[A] = Chunk.fromIterable(it) @@ -330,68 +439,49 @@ object NodeFact { } implicit class ToCompat(node: NodeFact) { + def mask[A](s: SelectFactConfig[A]) = { + s.mode match { + case SelectMode.Retrieve => node + case SelectMode.Ignore => s.modify.setTo(s.zero)(node) + } + } - def toNode: Node = Node( - node.id, - node.fqdn, - "", // description - node.rudderSettings.state, - node.isSystem, - node.isPolicyServer, - node.creationDate, - node.rudderSettings.reportingConfiguration, - node.properties.toList, - node.rudderSettings.policyMode - ) + def maskWith(attrs: SelectFacts): NodeFact = { + node + .mask(attrs.swap) + .mask(attrs.accounts) + .mask(attrs.bios) + .mask(attrs.controllers) + .mask(attrs.environmentVariables) + .mask(attrs.inputs) + .mask(attrs.fileSystems) + .mask(attrs.localGroups) + .mask(attrs.localUsers) + .mask(attrs.logicalVolumes) + .mask(attrs.memories) + .mask(attrs.networks) + .mask(attrs.ports) + .mask(attrs.physicalVolumes) + .mask(attrs.processes) + .mask(attrs.processors) + .mask(attrs.slots) + .mask(attrs.software) + .mask(attrs.softwareUpdate) + .mask(attrs.sounds) + .mask(attrs.storages) + .mask(attrs.videos) + .mask(attrs.vms) + } - def toNodeInfo: NodeInfo = NodeInfo( - node.toNode, - node.fqdn, - Some(node.machine), - node.os, - node.ipAddresses.toList.map(_.inet), - node.lastInventoryDate.getOrElse(node.factProcessedDate), - node.rudderSettings.keyStatus, - Chunk( - AgentInfo( - node.rudderAgent.agentType, - Some(node.rudderAgent.version), - node.rudderAgent.securityToken, - node.rudderAgent.capabilities.toSet - ) - ), - node.rudderSettings.policyServerId, - node.rudderAgent.user, - node.archDescription, - node.ram, - node.timezone - ) + def toCore: CoreNodeFact = CoreNodeFact.fromMininal(node) - def toSrv: Srv = { - Srv( - node.id, - node.rudderSettings.status, - node.fqdn, - node.os.os.kernelName, - node.os.os.name, - node.os.fullName, - node.serverIps, - node.creationDate, - node.isPolicyServer - ) - } + def toNode: Node = MinimalNodeFactInterface.toNode(node) - def toNodeSummary: NodeSummary = { - NodeSummary( - node.id, - node.rudderSettings.status, - node.rudderAgent.user, - node.fqdn, - node.os, - node.rudderSettings.policyServerId, - node.rudderSettings.keyStatus - ) - } + def toNodeInfo: NodeInfo = MinimalNodeFactInterface.toNodeInfo(node, node.ram, node.archDescription) + + def toSrv: Srv = MinimalNodeFactInterface.toSrv(node) + + def toNodeSummary: NodeSummary = MinimalNodeFactInterface.toNodeSummary(node) def toNodeInventory: NodeInventory = NodeInventory( node.toNodeSummary, @@ -456,7 +546,12 @@ object NodeFact { }, nodeInfo.hostname, nodeInfo.osDetails, - nodeInfo.machine.getOrElse(MachineInfo(NodeFact.toMachineId(nodeInfo.id), UnknownMachineType, None, None)), + nodeInfo.machine.getOrElse(inventory match { + case Right(FullInventory(_, Some(m))) => + MachineInfo(m.id, m.machineType, m.systemSerialNumber, m.manufacturer) + case _ => // in that case, we just don't have any info on the matchine, derive a false id from node id + MachineInfo(NodeFact.toMachineId(nodeInfo.id), UnknownMachineType, None, None) + }), RudderSettings( nodeInfo.keyStatus, nodeInfo.nodeReportingConfiguration, @@ -480,9 +575,9 @@ object NodeFact { Some(nodeInfo.inventoryDate), nodeInfo.ips.map(IpAddress(_)).toChunk, nodeInfo.timezone, + nodeInfo.archDescription, nodeInfo.ram, inventory.toOption.flatMap(_.node.swap), - nodeInfo.archDescription, inventory.toChunk.flatMap(_.node.accounts), inventory.toChunk.flatMap(_.machine.chunk(_.bios)), inventory.toChunk.flatMap(_.machine.chunk(_.controllers)), @@ -538,7 +633,8 @@ object NodeFact { inventory.node.main.hostname, inventory.node.main.osDetails, MachineInfo( - NodeFact.toMachineId(inventory.node.main.id), + // we should have the machine in a new full inventory, else generate an uuid for the unknown one + inventory.machine.map(_.id).getOrElse(NodeFact.toMachineId(inventory.node.main.id)), inventory.machine.map(_.machineType).getOrElse(UnknownMachineType), inventory.machine.flatMap(_.systemSerialNumber), inventory.machine.flatMap(_.manufacturer) @@ -556,6 +652,30 @@ object NodeFact { newFromFullInventory(FullInventory(inventory.node, Some(inventory.machine)), Some(inventory.applications)) } + def fromMinimal(a: MinimalNodeFactInterface): NodeFact = { + a match { + case x: NodeFact => x + case _ => + NodeFact( + a.id, + a.description, + a.fqdn, + a.os, + a.machine, + a.rudderSettings, + a.rudderAgent, + a.properties, + a.creationDate, + a.factProcessedDate, + a.lastInventoryDate, + a.ipAddresses, + a.timezone, + a.archDescription, + a.ram + ) + } + } + /* * Update all inventory parts from that node fact. * The inventory parts are overridden, there is no merge @@ -565,6 +685,14 @@ object NodeFact { updateFullInventory(node, FullInventory(inventory.node, Some(inventory.machine)), Some(inventory.applications)) } + def updateInventory(core: CoreNodeFact, inventory: Inventory): NodeFact = { + updateFullInventory( + NodeFact.fromMinimal(core), + FullInventory(inventory.node, Some(inventory.machine)), + Some(inventory.applications) + ) + } + // FullInventory does keep the software, but only their IDs, which is not a concept we still have. // So the caller can say "I don't know what software" with a None, or "there's no software" with a Some(Nil) // Also, we don't update status here, use move or similar methods to change node status. @@ -592,7 +720,7 @@ object NodeFact { // now machine are mandatory so if we don't have it inventory, don't update val machine = inventory.machine.map { m => MachineInfo( - NodeFact.toMachineId(inventory.node.main.id), + m.id, m.machineType, m.systemSerialNumber, m.manufacturer @@ -686,6 +814,357 @@ object NodeFact { } +trait MinimalNodeFactInterface { + def id: NodeId + def description: Option[String] + def fqdn: String + def os: OsDetails + def machine: MachineInfo + def rudderSettings: RudderSettings + def rudderAgent: RudderAgent + def properties: Chunk[NodeProperty] + def creationDate: DateTime + def factProcessedDate: DateTime + def lastInventoryDate: Option[DateTime] + def ipAddresses: Chunk[IpAddress] + def timezone: Option[NodeTimezone] + def archDescription: Option[String] + def ram: Option[MemorySize] +} + +/* + * Subset of commonly used properties of node fact, same as NodeInfo. + * It should have exactly the same fields as MinimalNodeFactInterface + */ +final case class CoreNodeFact( + id: NodeId, + description: Option[String], + @jsonField("hostname") + fqdn: String, + os: OsDetails, + machine: MachineInfo, + rudderSettings: RudderSettings, + rudderAgent: RudderAgent, + properties: Chunk[NodeProperty], + creationDate: DateTime, + factProcessedDate: DateTime, + lastInventoryDate: Option[DateTime] = None, + ipAddresses: Chunk[IpAddress] = Chunk.empty, + timezone: Option[NodeTimezone] = None, + archDescription: Option[String] = None, + ram: Option[MemorySize] = None +) extends MinimalNodeFactInterface + +object CoreNodeFact { + + def updateNode(node: CoreNodeFact, n: Node): CoreNodeFact = { + import com.softwaremill.quicklens._ + node + .modify(_.description) + .setTo(Some(n.description)) + .modify(_.rudderSettings.state) + .setTo(n.state) + .modify(_.rudderSettings.kind) + .setTo(if (n.isPolicyServer) NodeKind.Relay else NodeKind.Node) + .modify(_.creationDate) + .setTo(n.creationDate) + .modify(_.rudderSettings.reportingConfiguration) + .setTo(n.nodeReportingConfiguration) + .modify(_.properties) + .setTo(Chunk.fromIterable(n.properties)) + .modify(_.rudderSettings.policyMode) + .setTo(n.policyMode) + } + + def fromMininal(a: MinimalNodeFactInterface): CoreNodeFact = { + a match { + case c: CoreNodeFact => c + case _ => + CoreNodeFact( + a.id, + a.description, + a.fqdn, + a.os, + a.machine, + a.rudderSettings, + a.rudderAgent, + a.properties, + a.creationDate, + a.factProcessedDate, + a.lastInventoryDate, + a.ipAddresses, + a.timezone, + a.archDescription, + a.ram + ) + } + } + + def same(a: CoreNodeFact, b: CoreNodeFact): Boolean = { + MinimalNodeFactInterface.same(a, b) && + a.archDescription == b.archDescription && + a.ram == b.ram + } + + implicit class ToCompat(node: CoreNodeFact) { + + def toNode: Node = MinimalNodeFactInterface.toNode(node) + + def toNodeInfo: NodeInfo = MinimalNodeFactInterface.toNodeInfo(node, node.ram, node.archDescription) + + def toSrv: Srv = MinimalNodeFactInterface.toSrv(node) + + def toNodeSummary: NodeSummary = MinimalNodeFactInterface.toNodeSummary(node) + } +} + +sealed trait SelectMode +object SelectMode { + case object Ignore extends SelectMode + case object Retrieve extends SelectMode +} + +case class SelectFactConfig[A]( + mode: SelectMode, + selector: NodeFact => A, + modify: PathLazyModify[NodeFact, A], + zero: A +) { + // copy helper for fluent api + def toIgnore: SelectFactConfig[A] = this.copy(mode = SelectMode.Ignore) + def toRetrieve: SelectFactConfig[A] = this.copy(mode = SelectMode.Retrieve) + def invertMode: SelectFactConfig[A] = if (this.mode == SelectMode.Ignore) toRetrieve else toIgnore + + override def toString = this.mode.toString +} + +case class SelectFacts( + swap: SelectFactConfig[Option[MemorySize]], + accounts: SelectFactConfig[Chunk[String]], + bios: SelectFactConfig[Chunk[Bios]], + controllers: SelectFactConfig[Chunk[Controller]], + environmentVariables: SelectFactConfig[Chunk[(String, String)]], + fileSystems: SelectFactConfig[Chunk[FileSystem]], + inputs: SelectFactConfig[Chunk[InputDevice]], + localGroups: SelectFactConfig[Chunk[LocalGroup]], + localUsers: SelectFactConfig[Chunk[LocalUser]], + logicalVolumes: SelectFactConfig[Chunk[LogicalVolume]], + memories: SelectFactConfig[Chunk[MemorySlot]], + networks: SelectFactConfig[Chunk[Network]], + physicalVolumes: SelectFactConfig[Chunk[PhysicalVolume]], + ports: SelectFactConfig[Chunk[Port]], + processes: SelectFactConfig[Chunk[Process]], + processors: SelectFactConfig[Chunk[Processor]], + slots: SelectFactConfig[Chunk[Slot]], + software: SelectFactConfig[Chunk[SoftwareFact]], + softwareUpdate: SelectFactConfig[Chunk[SoftwareUpdate]], + sounds: SelectFactConfig[Chunk[Sound]], + storages: SelectFactConfig[Chunk[Storage]], + videos: SelectFactConfig[Chunk[Video]], + vms: SelectFactConfig[Chunk[VirtualMachine]] +) { + def debugString = + this.productElementNames.zip(this.productIterator).map { case (a, b) => s"${a}: ${b.toString}" }.mkString(", ") +} + +sealed trait SelectNodeStatus { def name: String } +object SelectNodeStatus { + object Pending extends SelectNodeStatus { val name = PendingInventory.name } + object Accepted extends SelectNodeStatus { val name = AcceptedInventory.name } + object Any extends SelectNodeStatus { val name = "any" } +} + +object SelectFacts { + + implicit class Invert(c: SelectFacts) { + def invert: SelectFacts = { + SelectFacts( + c.swap.invertMode, + c.accounts.invertMode, + c.bios.invertMode, + c.controllers.invertMode, + c.environmentVariables.invertMode, + c.fileSystems.invertMode, + c.inputs.invertMode, + c.localGroups.invertMode, + c.localUsers.invertMode, + c.logicalVolumes.invertMode, + c.memories.invertMode, + c.networks.invertMode, + c.physicalVolumes.invertMode, + c.ports.invertMode, + c.processes.invertMode, + c.processors.invertMode, + c.slots.invertMode, + c.software.invertMode, + c.softwareUpdate.invertMode, + c.sounds.invertMode, + c.storages.invertMode, + c.videos.invertMode, + c.vms.invertMode + ) + } + } + + // format: off + // there's perhaps a better way to do that, but `shrug` don't know about it + val none = SelectFacts( + SelectFactConfig(SelectMode.Ignore,_.swap, modifyLens[NodeFact](_.swap), None), + SelectFactConfig(SelectMode.Ignore,_.accounts, modifyLens[NodeFact](_.accounts), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.bios, modifyLens[NodeFact](_.bios), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.controllers, modifyLens[NodeFact](_.controllers), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.environmentVariables, modifyLens[NodeFact](_.environmentVariables), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.fileSystems, modifyLens[NodeFact](_.fileSystems), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.inputs, modifyLens[NodeFact](_.inputs), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.localGroups, modifyLens[NodeFact](_.localGroups), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.localUsers, modifyLens[NodeFact](_.localUsers), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.logicalVolumes, modifyLens[NodeFact](_.logicalVolumes), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.memories, modifyLens[NodeFact](_.memories), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.networks, modifyLens[NodeFact](_.networks), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.physicalVolumes, modifyLens[NodeFact](_.physicalVolumes), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.ports, modifyLens[NodeFact](_.ports), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.processes, modifyLens[NodeFact](_.processes), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.processors, modifyLens[NodeFact](_.processors), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.slots, modifyLens[NodeFact](_.slots), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.software, modifyLens[NodeFact](_.software), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.softwareUpdate, modifyLens[NodeFact](_.softwareUpdate), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.sounds, modifyLens[NodeFact](_.sounds), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.storages, modifyLens[NodeFact](_.storages), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.videos, modifyLens[NodeFact](_.videos), Chunk.empty), + SelectFactConfig(SelectMode.Ignore,_.vms, modifyLens[NodeFact](_.vms), Chunk.empty) + ) + + val all = SelectFacts( + none.swap.toRetrieve, + none.accounts.toRetrieve, + none.bios.toRetrieve, + none.controllers.toRetrieve, + none.environmentVariables.toRetrieve, + none.fileSystems.toRetrieve, + none.inputs.toRetrieve, + none.localGroups.toRetrieve, + none.localUsers.toRetrieve, + none.logicalVolumes.toRetrieve, + none.memories.toRetrieve, + none.networks.toRetrieve, + none.physicalVolumes.toRetrieve, + none.ports.toRetrieve, + none.processes.toRetrieve, + none.processors.toRetrieve, + none.slots.toRetrieve, + none.software.toRetrieve, + none.softwareUpdate.toRetrieve, + none.sounds.toRetrieve, + none.storages.toRetrieve, + none.videos.toRetrieve, + none.vms.toRetrieve + ) + // format: on + + val softwareOnly = none.copy(software = none.software.toRetrieve) + val noSoftware = all.copy(software = all.software.toIgnore) + val default = all.copy(processes = all.processes.toIgnore, software = all.software.toIgnore) + + // inventory elements, not carring for software + def retrieveInventory(attrs: SelectFacts): Boolean = { + !(attrs.copy(software = SelectFacts.none.software) == SelectFacts.none) + } + + def fromNodeDetailLevel(level: NodeDetailLevel): SelectFacts = { + // change from none to get + def toGet[A](s: SelectFactConfig[A], switch: Boolean): SelectFactConfig[A] = { + if (switch) s.toRetrieve + else s + } + SelectFacts( + toGet(none.swap, level.fields.contains("fileSystems")), + toGet(none.accounts, level.fields.contains("accounts")), + toGet(none.bios, level.fields.contains("bios")), + toGet(none.controllers, level.fields.contains("controllers")), + toGet(none.environmentVariables, level.fields.contains("environmentVariables")), + toGet(none.fileSystems, level.fields.contains("fileSystems")), + none.inputs, + none.localGroups, + none.localUsers, + none.logicalVolumes, + toGet(none.memories, level.fields.contains("memories")), + toGet(none.networks, level.fields.contains("networkInterfaces")), + none.physicalVolumes, + toGet(none.ports, level.fields.contains("ports")), + toGet(none.processes, level.fields.contains("processes")), + toGet(none.processors, level.fields.contains("processors")), + toGet(none.slots, level.fields.contains("slots")), + toGet(none.software, level.fields.contains("software")), + toGet(none.softwareUpdate, level.fields.contains("softwareUpdate")), + toGet(none.sounds, level.fields.contains("sound")), + toGet(none.storages, level.fields.contains("storage")), + toGet(none.videos, level.fields.contains("videos")), + toGet(none.vms, level.fields.contains("virtualMachines")) + ) + } + + // semantic: having a new node fact, keep old fact info if the select mode says "ignore" + // and keep new fact if it says "retrieve" + def merge(newFact: NodeFact, existing: Option[NodeFact])(implicit attrs: SelectFacts): NodeFact = { + implicit class NodeFactMerge(newFact: NodeFact) { + + // keep newFact + def update[A](config: SelectFactConfig[A])(implicit oldFact: NodeFact) = { + config.mode match { + case SelectMode.Retrieve => // keep new fact + newFact + case SelectMode.Ignore => // get info from old fact + config.modify.setTo(config.selector(oldFact))(newFact) + } + } + } + + existing match { + case None => newFact + // we assume that all the properties not in SelectFacts are up-to-date, so we start with newFact and only update + case Some(of) => + implicit val oldFact = of + + newFact + .update(attrs.swap) + .update(attrs.accounts) + .update(attrs.bios) + .update(attrs.controllers) + .update(attrs.environmentVariables) + .update(attrs.inputs) + .update(attrs.fileSystems) + .update(attrs.localGroups) + .update(attrs.localUsers) + .update(attrs.logicalVolumes) + .update(attrs.memories) + .update(attrs.networks) + .update(attrs.ports) + .update(attrs.physicalVolumes) + .update(attrs.processes) + .update(attrs.processors) + .update(attrs.slots) + .update(attrs.software) + .update(attrs.softwareUpdate) + .update(attrs.sounds) + .update(attrs.storages) + .update(attrs.videos) + .update(attrs.vms) + } + } + + // given a core node fact, add attributes from an other fact based on what attrs says + def mergeCore(cnf: CoreNodeFact, fact: NodeFact)(implicit attrs: SelectFacts): NodeFact = { + // from a implementation point of view, it's the opposite of merge WRT SelectFacts + merge(NodeFact.fromMinimal(cnf), Some(fact))(attrs.invert) + } + + // mask the given NodeFact to only expose attrs that are in "Retrieve" + def mask(fact: NodeFact)(implicit attrs: SelectFacts): NodeFact = { + // masking is merging with the input fact as "old" and a version with everything set to empty + mergeCore(CoreNodeFact.fromMininal(fact), fact) + } +} + final case class NodeFact( id: NodeId, description: Option[String], @@ -712,9 +1191,9 @@ final case class NodeFact( // inventory details, optional + archDescription: Option[String] = None, ram: Option[MemorySize] = None, swap: Option[MemorySize] = None, - archDescription: Option[String] = None, accounts: Chunk[String] = Chunk.empty, bios: Chunk[Bios] = Chunk.empty, controllers: Chunk[Controller] = Chunk.empty, @@ -737,9 +1216,8 @@ final case class NodeFact( storages: Chunk[Storage] = Chunk.empty, videos: Chunk[Video] = Chunk.empty, vms: Chunk[VirtualMachine] = Chunk.empty -) { - // we don't have a machine id anymore, by convention it's the node id prefixed by "machine-" - def machineId = NodeFact.toMachineId(id) +) extends MinimalNodeFactInterface { + def machineId = machine.id def isPolicyServer: Boolean = rudderSettings.kind != NodeKind.Node def isSystem: Boolean = isPolicyServer @@ -775,6 +1253,60 @@ final case class JSecurityToken(kind: String, token: String) final case class JNodeProperty(name: String, value: ConfigValue, mode: Option[String], provider: Option[String]) +sealed trait NodeFactChangeEvent { + def name: String + def debugString: String +} + +object NodeFactChangeEvent { + final case class NewPending(node: NodeFact, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "newPending" + override def debugString: String = s"[${name}] node '${node.fqdn}' (${node.id.value})" + } + final case class UpdatedPending(oldNode: NodeFact, newNode: NodeFact, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "updatedPending" + override def debugString: String = s"[${name}] node '${newNode.fqdn}' (${newNode.id.value})" + } + final case class Accepted(node: NodeFact, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "accepted" + override def debugString: String = s"[${name}] node '${node.fqdn}' (${node.id.value})" + } + final case class Refused(node: NodeFact, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "refused" + override def debugString: String = s"[${name}] node '${node.fqdn}' (${node.id.value})" + } + final case class Updated(oldNode: NodeFact, newNode: NodeFact, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "updatedAccepted" + override def debugString: String = s"[${name}] node '${newNode.fqdn}' (${newNode.id.value})" + } + final case class Deleted(node: NodeFact, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "deleted" + override def debugString: String = s"[${name}] node '${node.fqdn}' (${node.id.value})" + } + final case class Noop(nodeId: NodeId, attrs: SelectFacts) extends NodeFactChangeEvent { + override val name: String = "noop" + override def debugString: String = s"[${name}] node '${nodeId.value}' " + } +} + +final case class ChangeContext( + modId: ModificationId, + actor: EventActor, + eventDate: DateTime, + message: Option[String], + actorIp: Option[String] +) + +object ChangeContext { + def newForRudder(msg: Option[String] = None, actorIp: Option[String] = None) = + ChangeContext(ModificationId(java.util.UUID.randomUUID.toString), eventlog.RudderEventActor, DateTime.now(), msg, actorIp) +} + +final case class NodeFactChangeEventCC( + event: NodeFactChangeEvent, + cc: ChangeContext +) + object NodeFactSerialisation { // we need to have several object to avoid: diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactChangeEventCallback.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactChangeEventCallback.scala new file mode 100644 index 00000000000..762d5771f50 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactChangeEventCallback.scala @@ -0,0 +1,385 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import com.normation.errors.IOResult +import com.normation.eventlog.ModificationId +import com.normation.inventory.domain.AcceptedInventory +import com.normation.inventory.domain.InventoryStatus +import com.normation.inventory.domain.NodeId +import com.normation.inventory.domain.PendingInventory +import com.normation.inventory.domain.RemovedInventory +import com.normation.rudder.batch.AsyncDeploymentActor +import com.normation.rudder.batch.AutomaticStartDeployment +import com.normation.rudder.batch.UpdateDynamicGroups +import com.normation.rudder.domain.eventlog.AcceptNodeEventLog +import com.normation.rudder.domain.eventlog.DeleteNodeEventLog +import com.normation.rudder.domain.eventlog.InventoryLogDetails +import com.normation.rudder.domain.eventlog.RefuseNodeEventLog +import com.normation.rudder.domain.logger.NodeLoggerPure +import com.normation.rudder.domain.nodes.ModifyNodeDiff +import com.normation.rudder.facts.nodes.MinimalNodeFactInterface.toNode +import com.normation.rudder.repository.CachedRepository +import com.normation.rudder.repository.EventLogRepository +import com.normation.rudder.services.nodes.history.impl.FactLogData +import com.normation.rudder.services.nodes.history.impl.InventoryHistoryJdbcRepository +import com.normation.rudder.services.reports.CacheComplianceQueueAction +import com.normation.rudder.services.reports.CacheExpectedReportAction +import com.normation.rudder.services.reports.InvalidateCache +import com.normation.utils.StringUuidGenerator +import org.joda.time.DateTime +import zio.ZIO + +/* + * This file store callbacks for node events. + * The canonical example case is event log records + */ +trait NodeFactChangeEventCallback { + def name: String + def run(change: NodeFactChangeEventCC): IOResult[Unit] +} + +case class CoreNodeFactChangeEventCallback( + name: String, + exec: NodeFactChangeEventCC => IOResult[Unit] +) extends NodeFactChangeEventCallback { + override def run(change: NodeFactChangeEventCC): IOResult[Unit] = { + exec(change) + } +} + +/* + * A call back that give a basic log in webapp logs with the expected log level, + * so that other callbacks don't have to do it + */ +class AppLogNodeFactChangeEventCallback() extends NodeFactChangeEventCallback { + override def name: String = "node-fact-cec: webapp log" + + override def run(change: NodeFactChangeEventCC): IOResult[Unit] = { + change.event match { + case NodeFactChangeEvent.UpdatedPending(old, next, attrs) => + NodeLoggerPure.debug(s"Pending node '${next.fqdn}' [${next.id.value}]' was updated") + case NodeFactChangeEvent.Updated(old, next, attrs) => + NodeLoggerPure.debug(s"Node '${next.fqdn}' [${next.id.value}]' was updated") + case NodeFactChangeEvent.NewPending(node, attrs) => + NodeLoggerPure.info(s"New pending node: '${node.fqdn}' [${node.id.value}]'") + case NodeFactChangeEvent.Accepted(node, attrs) => + NodeLoggerPure.info(s"New accepted node: '${node.fqdn}' [${node.id.value}]'") + case NodeFactChangeEvent.Refused(node, attrs) => + NodeLoggerPure.info(s"Pending node '${node.fqdn}' [${node.id.value}]' was refused") + case NodeFactChangeEvent.Deleted(node, attrs) => + NodeLoggerPure.info(s"Node '${node.fqdn}' [${node.id.value}]' was deleted") + case NodeFactChangeEvent.Noop(nodeId, attrs) => + NodeLoggerPure.debug(s"No change for node '${nodeId.value}'") + } + } +} + +/* + * A callback that trigger a dynamic group update on change. + * We still start a generation after, because even without a group change, properties and other + * things can lead to a generation update. + */ +class GenerationOnChange( + updateDynamicGroups: UpdateDynamicGroups, + asyncDeploymentAgent: AsyncDeploymentActor, + uuidGen: StringUuidGenerator +) extends NodeFactChangeEventCallback { + + override def name: String = "node-fact-ecc: update dyn group and start-generation-on-change" + + private[nodes] def startGeneration(nodeId: NodeId): IOResult[Unit] = { + NodeLoggerPure.info( + s"Update in node '${nodeId.value}' inventories main information detected: triggering dynmaci group update and a policy generation" + ) *> + IOResult.attempt(updateDynamicGroups.startManualUpdate) *> + IOResult.attempt( + asyncDeploymentAgent ! AutomaticStartDeployment( + ModificationId(uuidGen.newUuid), + com.normation.rudder.domain.eventlog.RudderEventActor + ) + ) + } + + override def run(change: NodeFactChangeEventCC): IOResult[Unit] = { + change.event match { + case NodeFactChangeEvent.NewPending(node, attrs) => ZIO.unit + case NodeFactChangeEvent.UpdatedPending(oldNode, newNode, attrs) => ZIO.unit + case NodeFactChangeEvent.Accepted(node, attrs) => startGeneration(node.id) + case NodeFactChangeEvent.Refused(node, attrs) => ZIO.unit + case NodeFactChangeEvent.Updated(oldNode, newNode, attrs) => startGeneration(newNode.id) + case NodeFactChangeEvent.Deleted(node, attrs) => startGeneration(node.id) + case NodeFactChangeEvent.Noop(nodeId, attrs) => ZIO.unit + } + } +} + +/* + * Callback related to cache invalidation when a node changes + */ +class CacheInvalidateNodeFactEventCallback( + cacheExpectedReports: InvalidateCache[CacheExpectedReportAction], + cacheConfiguration: InvalidateCache[CacheComplianceQueueAction], + cacheToClear: List[CachedRepository] +) extends NodeFactChangeEventCallback { + + import com.normation.rudder.services.reports.CacheExpectedReportAction._ + + override def name: String = "node-fact-cec: invalidate caches" + + override def run(change: NodeFactChangeEventCC): IOResult[Unit] = { + change.event match { + case NodeFactChangeEvent.NewPending(node, attrs) => ZIO.unit + case NodeFactChangeEvent.UpdatedPending(oldNode, newNode, attrs) => ZIO.unit + case NodeFactChangeEvent.Accepted(node, attrs) => + // ping the NodeConfiguration Cache and NodeCompliance Cache about this new node + val i = InsertNodeInCache(node.id) + for { + _ <- cacheConfiguration + .invalidateWithAction(Seq((node.id, CacheComplianceQueueAction.ExpectedReportAction(i)))) + .chainError(s"Error when adding node ${node.id.value} to node configuration cache") + _ <- cacheExpectedReports + .invalidateWithAction(Seq((node.id, i))) + .chainError(s"Error when adding node ${node.id.value} to compliance cache") + _ <- ZIO.foreach(cacheToClear)(c => IOResult.attempt(c.clearCache())) + } yield { + () + } + case NodeFactChangeEvent.Refused(node, attrs) => ZIO.unit + case NodeFactChangeEvent.Updated(oldNode, newNode, attrs) => ZIO.unit + case NodeFactChangeEvent.Deleted(node, attrs) => + val a = CacheExpectedReportAction.RemoveNodeInCache(node.id) + for { + _ <- NodeLoggerPure.Delete.debug(s" - remove node ${node.id.value} from compliance and expected report cache") + _ <- + cacheConfiguration + .invalidateWithAction(Seq((node.id, CacheComplianceQueueAction.ExpectedReportAction(a)))) + .catchAll(err => { + NodeLoggerPure.Delete + .error(s"Error when removing node ${node.id.value} from node configuration cache: ${err.fullMsg}") + }) + _ <- cacheExpectedReports + .invalidateWithAction(Seq((node.id, a))) + .catchAll(err => + NodeLoggerPure.Delete.error(s"Error when removing node ${node.id.value} from compliance cache: ${err.fullMsg}") + ) + } yield () + + case NodeFactChangeEvent.Noop(nodeId, attrs) => NodeLoggerPure.debug(s"No change for node '${nodeId.value}'") + } + } +} + +/* + * Manage event logs related to nodes: register a change in properties, a node acceptation, etc + */ +class EventLogsNodeFactChangeEventCallback( + eventLogRepository: EventLogRepository +) extends NodeFactChangeEventCallback { + override def name: String = "node-fact-cec: register even log" + + override def run(change: NodeFactChangeEventCC): IOResult[Unit] = { + def modifyEventLog( + cc: ChangeContext, + old: MinimalNodeFactInterface, + next: MinimalNodeFactInterface + ): IOResult[Unit] = { + val diff = ModifyNodeDiff(toNode(old), toNode(next)) + eventLogRepository.saveModifyNode(cc.modId, cc.actor, diff, cc.message, cc.eventDate).unit + } + + change.event match { + case NodeFactChangeEvent.UpdatedPending(old, next, attrs) => modifyEventLog(change.cc, old, next) + case NodeFactChangeEvent.Updated(old, next, attrs) => modifyEventLog(change.cc, old, next) + case NodeFactChangeEvent.NewPending(node, attrs) => ZIO.unit + case NodeFactChangeEvent.Accepted(node, attrs) => + val log = AcceptNodeEventLog.fromInventoryLogDetails( + principal = change.cc.actor, + creationDate = change.cc.eventDate, + inventoryDetails = InventoryLogDetails( + nodeId = node.id, + inventoryVersion = node.lastInventoryDate.getOrElse(node.factProcessedDate), + hostname = node.fqdn, + fullOsName = node.os.fullName, + actorIp = change.cc.actorIp.getOrElse("actor ip unknown") + ) + ) + eventLogRepository + .saveEventLog(change.cc.modId, log) + .tapBoth( + error => + NodeLoggerPure.PendingNode + .warn(s"Node '${node.fqdn}' [${node.id.value}] accepted, but the action couldn't be logged"), + ok => NodeLoggerPure.PendingNode.debug(s"Successfully accepted node '${node.fqdn}' [${node.id.value}]") + ) + .unit + case NodeFactChangeEvent.Refused(node, attrs) => + val log = RefuseNodeEventLog.fromInventoryLogDetails( + principal = change.cc.actor, + creationDate = change.cc.eventDate, + inventoryDetails = InventoryLogDetails( + nodeId = node.id, + inventoryVersion = node.lastInventoryDate.getOrElse(node.factProcessedDate), + hostname = node.fqdn, + fullOsName = node.os.fullName, + actorIp = change.cc.actorIp.getOrElse("actor ip unknown") + ) + ) + eventLogRepository + .saveEventLog(change.cc.modId, log) + .tapBoth( + error => + NodeLoggerPure.PendingNode + .warn(s"Node '${node.fqdn}' [${node.id.value}] refused, but the action couldn't be logged"), + ok => NodeLoggerPure.PendingNode.debug(s"Successfully refused node '${node.fqdn}' [${node.id.value}]") + ) + .unit + case NodeFactChangeEvent.Deleted(node, attrs) => + val log = DeleteNodeEventLog.fromInventoryLogDetails( + None, + principal = change.cc.actor, + creationDate = change.cc.eventDate, + inventoryDetails = InventoryLogDetails( + node.id, + node.lastInventoryDate.getOrElse(node.factProcessedDate), + node.fqdn, + node.os.fullName, + change.cc.actorIp.getOrElse("actor ip unknown") + ) + ) + eventLogRepository + .saveEventLog(change.cc.modId, log) + .tapBoth( + error => + NodeLoggerPure.PendingNode + .warn(s"Node '${node.fqdn}' [${node.id.value}] deleted, but the action couldn't be stored in eventlogs"), + ok => NodeLoggerPure.debug(s"Successfully deleted node '${node.fqdn}' [${node.id.value}]") + ) + .unit + + case NodeFactChangeEvent.Noop(nodeId, attrs) => ZIO.unit + } + } +} + +/* + * Keep a trace of the full inventory of the node where we need to. + * This happens on acceptation/refusal + */ +class HistorizeNodeState( + historyRepos: InventoryHistoryJdbcRepository, + sourceFactStorage: NodeFactStorage, + gitFactStorage: NodeFactStorage, + cleanUpImmediately: Boolean +) extends NodeFactChangeEventCallback { + + override def name: String = "node-fact-ecc: historize node fact on choice" + + override def run(change: NodeFactChangeEventCC): IOResult[Unit] = { + + def save(node: MinimalNodeFactInterface, eventDate: DateTime, alsoJDBC: Boolean, status: InventoryStatus): IOResult[Unit] = { + // we want to save the fact with everything + implicit val attrs = SelectFacts.all + if (gitFactStorage == NoopFactStorage && !alsoJDBC) ZIO.unit + else { + (if (status == PendingInventory) sourceFactStorage.getPending(node.id) + else sourceFactStorage.getAccepted(node.id)).flatMap { res => + val nf = res match { + case Some(x) => x + case None => // in case of refuse event, node is already deleted + NodeFact.fromMinimal(node) + } + for { + _ <- ZIO.when(alsoJDBC)(historyRepos.save(node.id, FactLogData(nf, change.cc.actor, AcceptedInventory), eventDate)) + _ <- gitFactStorage.save(nf) + } yield () + } + } + } + + def delete(nodeId: NodeId): IOResult[Unit] = { + /* + * This hook registers the deletion events into postgresql `nodefacts` table so that the inventory accept/refuse + * fact can be latter cleaned-up. + */ + ( + ( + if (cleanUpImmediately) { + historyRepos.delete(nodeId) + } else { // save delete event, clean-up will be automatically done by script + historyRepos.saveDeleteEvent(nodeId, change.cc.eventDate, change.cc.actor) + } + ).catchAll(err => { + NodeLoggerPure + .warn(s"Error when updating node '${nodeId.value}' historical inventory information in base: ${err.fullMsg}") + }) + ) *> + NodeLoggerPure.Delete.debug(s" - delete fact about node '${nodeId.value}'") *> + gitFactStorage + .changeStatus(nodeId, RemovedInventory) + .catchAll(err => + NodeLoggerPure.info(s"Error when trying to update fact when deleting node '${nodeId.value}': ${err.fullMsg}") + ) + .unit + } + + change.event match { + case NodeFactChangeEvent.NewPending(node, attrs) => + NodeLoggerPure.debug(s"Save new in node fact fs") *> + save(node, change.cc.eventDate, false, PendingInventory) + case NodeFactChangeEvent.UpdatedPending(oldNode, newNode, attrs) => + NodeLoggerPure.debug(s"Update pending in node fact fs") *> + save(newNode, change.cc.eventDate, false, PendingInventory) + case NodeFactChangeEvent.Accepted(node, attrs) => + NodeLoggerPure.debug(s"Accept in node fact fs and postgres") *> + save(node, change.cc.eventDate, true, AcceptedInventory) // callback done post accept + case NodeFactChangeEvent.Refused(node, attrs) => + NodeLoggerPure.debug(s"Refused in node fact fs and postgres") *> + save(node, change.cc.eventDate, true, AcceptedInventory) + case NodeFactChangeEvent.Updated(oldNode, newNode, attrs) => + NodeLoggerPure.debug(s"Update in node fact fs") *> + save(newNode, change.cc.eventDate, false, AcceptedInventory) + case NodeFactChangeEvent.Deleted(node, attrs) => + NodeLoggerPure.debug(s"Delete in node fact fs") *> + delete(node.id) + case NodeFactChangeEvent.Noop(nodeId, attrs) => + NodeLoggerPure.debug(s"noop") *> + ZIO.unit + } + } +} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactRepository.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactRepository.scala index 7f8bfcf554f..e9c9395335a 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactRepository.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactRepository.scala @@ -37,51 +37,164 @@ package com.normation.rudder.facts.nodes -import NodeFactSerialisation._ -import better.files.File import com.normation.errors._ import com.normation.errors.IOResult import com.normation.inventory.domain._ -import com.normation.rudder.domain.logger.NodeLogger -import com.normation.rudder.git.GitItemRepository -import com.normation.rudder.git.GitRepositoryProvider -import java.nio.charset.StandardCharsets -import org.eclipse.jgit.lib.PersonIdent +import com.normation.inventory.services.core.ReadOnlySoftwareDAO +import com.normation.rudder.domain.Constants +import com.normation.rudder.domain.logger.NodeLoggerPure +import com.normation.rudder.domain.nodes.NodeState +import com.softwaremill.quicklens._ import zio._ -import zio.json._ +import zio.concurrent.ReentrantLock import zio.stream.ZStream import zio.syntax._ /* - * Serialize a fact type (to/from JSON), for example nodes. - * The format is versioned so that we are able to unserialize old files into newer domain representation. + * NodeFactRepository is the main interface between Rudder user space and nodes. It manages + * the whole persistence and consistency, efficient access to a (core) set of information on + * nodes, and access permissions. * - * We store a fileFormat and the serialized object type. - * To let more space for evolution, file format will be a string even if it should be parsed as an int. + * The basic contract regarding performance is that: + * - saving things is slow and accounts for the consistency of data view, + * - view on the subset of node fact that matches minimal API / core node fact is fast (~in memory map) + * - access to other data is slow and need a cold storage retrieval + * + * + * The typical use case we need to be able to handle: + * - save a new inventory (full node fact, pending) + * - save an inventory update + * - save the audit mode change or node scheduling + * - save a new property + * + * Getting: + * - fast access to node code info for [computing compliance, access to node main inventory variable, display node info...] + * - get the whole inventory APART software and process (b/c too slow) + * - get only software for the node + * + * Note: is it not the same to retrieve "most of nodefact" and "node fact", because we can have extreme performance + * impacts for just some, rarely used (or use only on some nodes), information. Typically: + * - software ; + * - process ; + * - some hardware information on very complex harware. + * And in all case, * - * There's two parameter, one minimal (A) that allows to identify where the fact should be store (typically, it's a - * kind of ID), and (B) which the whole fact to serialize. There should exists a constraint of derivability from B to A, - * but it's not modeled. */ -trait SerializeFacts[A, B] { +trait NodeFactRepository { - def fileFormat: String - def entity: String + /* + * Add a call back that will be called when a change occurs. + * The callbacks are not ordered and not blocking and will have a short time-out + * on them, the caller will need to manage that constraint. + */ + def registerChangeCallbackAction(callback: NodeFactChangeEventCallback): IOResult[Unit] - def toJson(data: B): IOResult[String] + /* + * Get the status of the node, or RemovedStatus if it is + * not found. + */ + def getStatus(id: NodeId): IOResult[InventoryStatus] - // this is just a relative path from a virtual root, for example for node it will be: "accepted/node-uuid.json" - def getEntityPath(id: A): String + /* + * Translation between old inventory status and new SelectNodeStatus for IOResult methods + */ + def statusCompat[A](status: InventoryStatus, f: SelectNodeStatus => IOResult[A]): IOResult[A] = { + status match { + case AcceptedInventory => f(SelectNodeStatus.Accepted) + case PendingInventory => f(SelectNodeStatus.Pending) + case RemovedInventory => Inconsistency("You can not query deleted nodes").fail + } + } -} + /* + * Translation between old inventory status and new SelectNodeStatus for IOStream methods + */ + def statusStreamCompat[A](status: InventoryStatus, f: SelectNodeStatus => IOStream[A]): IOStream[A] = { + status match { + case AcceptedInventory => f(SelectNodeStatus.Accepted) + case PendingInventory => f(SelectNodeStatus.Pending) + case RemovedInventory => ZStream.fromZIO(Inconsistency("You can not query deleted nodes").fail) + } + } + + /* + * Get node on given status + */ + def get(nodeId: NodeId)(implicit status: SelectNodeStatus = SelectNodeStatus.Any): IOResult[Option[CoreNodeFact]] + + def getCompat(nodeId: NodeId, status: InventoryStatus): IOResult[Option[CoreNodeFact]] = { + statusCompat(status, get(nodeId)(_)) + } + + /* + * Return the node fact corresponding to the given node id with + * the fields from select mode "ignored" set to empty. + */ + def slowGet(nodeId: NodeId)(implicit + status: SelectNodeStatus = SelectNodeStatus.Any, + attrs: SelectFacts = SelectFacts.default + ): IOResult[Option[NodeFact]] + + def slowGetCompat(nodeId: NodeId, status: InventoryStatus, attrs: SelectFacts): IOResult[Option[NodeFact]] = { + statusCompat(status, slowGet(nodeId)(_, attrs)) + } -trait NodeFactStorage { + def getNodesbySofwareName(softName: String): IOResult[List[(NodeId, Software)]] /* - * Save node fact in the status given in the corresponding attribute. - * No check will be done. + * get all node facts. + * SelectStatus allows to choose which nodes are retrieved (pending, accepted, all) */ - def save(nodeFact: NodeFact): IOResult[Unit] + def getAll()(implicit status: SelectNodeStatus = SelectNodeStatus.Accepted): IOStream[CoreNodeFact] + + def getAllCompat(status: InventoryStatus, attrs: SelectFacts): IOStream[CoreNodeFact] = { + statusStreamCompat(status, getAll()(_)) + } + + /* + * A version of getAll that allows to retrieve attributes out of CoreNodeFact at the + * price of a round trip to the cold storage. + * Implementation must be smart and ensure that if attrs == SelectFacts.none, + * then it reverts back to the quick version. + */ + def slowGetAll()(implicit + status: SelectNodeStatus = SelectNodeStatus.Accepted, + attrs: SelectFacts = SelectFacts.default + ): IOStream[NodeFact] + + def slowGetAllCompat(status: InventoryStatus, attrs: SelectFacts): IOStream[NodeFact] = { + statusStreamCompat(status, slowGetAll()(_, attrs)) + } + + ///// changes ///// + + /* + * Save (create or override) a core node fact + * Use "updateInventory` if you want to save in pending, it's likely what you want. + * + * Not that the diff is only done on the core properties + */ + def save( + nodeFact: NodeFact + )(implicit cc: ChangeContext, attrs: SelectFacts = SelectFacts.all): IOResult[NodeFactChangeEventCC] + + /* + * Save the full node fact. + * If some fields are marked as ignored, they must not be updated by the persistence layer + * (it's up to it to do it). + * + * Not sure it's interesting since we have "update inventory" ? + */ + // def saveFull[A](nodeId: NodeId, fact: NodeFact)(implicit cc: ChangeContext, s: SelectFacts = SelectFacts.all): IOResult[Unit] + + /* + * A method that will create in new node fact in pending, or + * update inventory part of the node with that nodeId in + * pending or in accepted. + */ + def updateInventory(inventory: FullInventory, software: Option[Iterable[Software]])(implicit + cc: ChangeContext + ): IOResult[NodeFactChangeEventCC] /* * Change the status of the node with given id to given status. @@ -89,201 +202,460 @@ trait NodeFactStorage { * - if the target status is the current one, this function does nothing * - if target status is "removed", persisted inventory is deleted */ - def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[Unit] + def changeStatus(nodeId: NodeId, into: InventoryStatus)(implicit + cc: ChangeContext + ): IOResult[NodeFactChangeEventCC] /* - * Delete the node. Storage need to loop for any status and delete - * any reference to that node. + * Delete any reference to that node id. */ - def delete(nodeId: NodeId): IOResult[Unit] - - def getAllPending(): IOStream[NodeFact] - def getAllAccepted(): IOStream[NodeFact] + def delete(nodeId: NodeId)(implicit cc: ChangeContext): IOResult[NodeFactChangeEventCC] } /* - * Implementaton that store nothing and that can be used in tests or when a pure - * in-memory version of the nodeFactRepos is needed. + * A partial in memory implementation of the NodeFactRepository that persist (for cold storage) + * it's information in given backend. + * + * NodeFacts are split in two parts: + * - CoreNodeFacts are kept in memory which allows for fast lookup and search on main attributes + * - full NodeFacts are retrieved from cold storage on demand. + * + * The following operation are always persisted in cold storage and will be blocking: + * - create a new node fact + * - update an existing one + * - change status of a node + * - delete a node. + * + * Core node facts info are always saved. + * To be more precise on what is retrieved or saved for non-core nodeFact, you can use the `SelectFacts` + * parametrization which will restraint get/save only the specified info. + * + * Once initialized, that repository IS the truth for CoreNodeFact info. No change done by + * an other mean in the cold storage will be visible from Rudder without an explicit + * `fetchAndSync` call. + * Moreover, that repository is in charge to ensure consistency of states for nodes. + * Consequently, any change in a nodes must go through that repository, from inventory updates to + * node acceptation or properties setting. + * + * For change, that repos try to ensure that the backend does commit the change before having it done + * in memory. That arch does not scale to many backend, since once there is more than one, compensation + * strategy must be put into action to compensate for errors (see zio-workflow for that kind of things). + * */ -object NoopFactStorage extends NodeFactStorage { - override def save(nodeFact: NodeFact): IOResult[Unit] = ZIO.unit - override def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[Unit] = ZIO.unit - override def delete(nodeId: NodeId): IOResult[Unit] = ZIO.unit - override def getAllPending(): IOStream[NodeFact] = ZStream.empty - override def getAllAccepted(): IOStream[NodeFact] = ZStream.empty -} +object CoreNodeFactRepository { + def make( + storage: NodeFactStorage, + softByName: GetNodesbySofwareName, + callbacks: Chunk[NodeFactChangeEventCallback] + ): IOResult[CoreNodeFactRepository] = for { + _ <- InventoryDataLogger.debug("Getting pending node info for node fact repos") + pending <- storage.getAllPending()(SelectFacts.none).map(f => (f.id, f.toCore)).runCollect.map(_.toMap) + _ <- InventoryDataLogger.debug("Getting accepted node info for node fact repos") + accepted <- storage.getAllAccepted()(SelectFacts.none).map(f => (f.id, f.toCore)).runCollect.map(_.toMap) + _ <- InventoryDataLogger.debug("Creating node fact repos") + repo <- make(storage, softByName, pending, accepted, callbacks) + } yield { + repo + } -/* - * We have only one git for all fact repositories. This is the one managing semaphore, init, etc. - * All fact repositories will be a subfolder on it: - * - /var/rudder/fact-repository/nodes - * - /var/rudder/fact-repository/rudder-config - * - /var/rudder/fact-repository/groups - * etc - */ + def make( + storage: NodeFactStorage, + softByName: GetNodesbySofwareName, + pending: Map[NodeId, CoreNodeFact], + accepted: Map[NodeId, CoreNodeFact], + callbacks: Chunk[NodeFactChangeEventCallback] + ): UIO[CoreNodeFactRepository] = for { + p <- Ref.make(pending) + a <- Ref.make(accepted) + lock <- ReentrantLock.make() + cbs <- Ref.make(callbacks) + } yield { + new CoreNodeFactRepository(storage, softByName, p, a, cbs, lock) + } -object GitNodeFactRepositoryImpl { +} - final case class NodeFactArchive( - entity: String, - fileFormat: String, - node: NodeFact - ) +// we have some specialized services / materialized view for complex queries. Implementation can manage cache and +// react to callbacks (update events) to manage consistency +trait GetNodesbySofwareName { + def apply(softName: String): IOResult[List[(NodeId, Software)]] +} - implicit val codecNodeFactArchive: JsonCodec[NodeFactArchive] = DeriveJsonCodec.gen +// default implementation is just a proxy on top of software dao +class SoftDaoGetNodesbySofwareName(val softwareDao: ReadOnlySoftwareDAO) extends GetNodesbySofwareName { + override def apply(softName: String): IOResult[List[(NodeId, Software)]] = { + softwareDao.getNodesbySofwareName(softName) + } } /* - * Nodes are stored in the git facts repo under the relative path "nodes". - * They are then stored: - * - under nodes/pending or nodes/accepted given their status (which means that changing status of a node is - * a special operation) + * The core node fact repository save: + * - CoreNodeFact in a local map that is always in sync with persisted layers + * - extension data (for inventory) in external caches + * + * It also provide et default implementation for getting/saving CoreNodeFact and Full facts + * thanks to the provided NodeFactStorage. Other getter/saver will need to be implemented + * by your own. + * + * Rudder server (id=root) is special among nodes. It can be disabled, non system, deleted, etc. */ -class GitNodeFactRepositoryImpl( - override val gitRepo: GitRepositoryProvider, - groupOwner: String, - actuallyCommit: Boolean -) extends NodeFactStorage with GitItemRepository with SerializeFacts[(NodeId, InventoryStatus), NodeFact] { - - override val relativePath = "nodes" - override val entity: String = "node" - override val fileFormat: String = "10" - val committer = new PersonIdent("rudder-fact", "email not set") - - if (actuallyCommit) { - NodeLogger.info(s"Nodes changes will be historized in Git in ${gitRepo.rootDirectory.pathAsString}/nodes") - } else { - NodeLogger.info( - s"Nodes changes won't be historized in Git, only last state is stored in ${gitRepo.rootDirectory.pathAsString}/nodes" - ) +class CoreNodeFactRepository( + storage: NodeFactStorage, + softwareByName: GetNodesbySofwareName, + pendingNodes: Ref[Map[NodeId, CoreNodeFact]], + acceptedNodes: Ref[Map[NodeId, CoreNodeFact]], + callbacks: Ref[Chunk[NodeFactChangeEventCallback]], + lock: ReentrantLock, + cbTimeout: zio.Duration = 5.seconds +) extends NodeFactRepository { + import NodeFactChangeEvent._ + + // debug log +// (for { +// p <- pendingNodes.get.map(_.values.map(_.id.value).mkString(", ")) +// a <- acceptedNodes.get.map(_.values.map(_.id.value).mkString(", ")) +// _ <- InventoryDataLogger.debug(s"Loaded node fact repos with: \n - pending: ${p} \n - accepted: ${a}") +// } yield ()).runNow + + override def registerChangeCallbackAction( + callback: NodeFactChangeEventCallback + ): IOResult[Unit] = { + callbacks.update(_.appended(callback)) } - override def getEntityPath(id: (NodeId, InventoryStatus)): String = { - s"${id._2.name}/${id._1.value}.json" + /* + * This method will need some thoughts: + * - do we want to fork and timeout each callbacks ? likely so + * - do we want to parallel exec them ? likely so, the user can build his own callback sequencer callback if he wants + */ + private[nodes] def runCallbacks(e: NodeFactChangeEventCC): IOResult[Unit] = { + for { + cs <- callbacks.get + _ <- ZIO.foreachParDiscard(cs)(_.run(e)).timeout(cbTimeout).forkDaemon + } yield () + } + + override def getStatus(id: NodeId): IOResult[InventoryStatus] = { + pendingNodes.get.flatMap { p => + if (p.keySet.contains(id)) PendingInventory.succeed + else { + acceptedNodes.get.flatMap(a => { + if (a.keySet.contains(id)) AcceptedInventory.succeed + else RemovedInventory.succeed + }) + } + } } - def getFile(id: NodeId, status: InventoryStatus): File = { - gitRepo.rootDirectory / relativePath / getEntityPath((id, status)) + private[nodes] def getOnRef(ref: Ref[Map[NodeId, CoreNodeFact]], nodeId: NodeId): IOResult[Option[CoreNodeFact]] = { + ref.get.map(_.get(nodeId)) } /* - * serialize the inventory into a normalized JSON string. - * As we want it to be human readable and searchable, we will use an indented format. + * Require to re-sync from cold storage cache info. + * It will lead to a diff and subsequent callbacks for any changes */ - def toJson(nodeFact: NodeFact): IOResult[String] = { - import GitNodeFactRepositoryImpl._ - NodeFactArchive(entity, fileFormat, nodeFact).toJsonPretty.succeed + def fetchAndSync(nodeId: NodeId)(implicit cc: ChangeContext): IOResult[NodeFactChangeEventCC] = { + implicit val attrs: SelectFacts = SelectFacts.default + for { + a <- storage.getAccepted(nodeId) + p <- storage.getPending(nodeId) + c <- get(nodeId)(SelectNodeStatus.Any) + diff <- (a, p, c) match { + case (None, None, _) => delete(nodeId) + case (None, Some(x), _) => + saveOn(pendingNodes, x.toCore).map { e => + e.updateWith(StorageChangeEventSave.Created(x, attrs)) + .toChangeEvent(nodeId, PendingInventory, cc) + } + case (Some(x), _, _) => + saveOn(acceptedNodes, x.toCore).map { e => + e.updateWith(StorageChangeEventSave.Created(x, attrs)) + .toChangeEvent(nodeId, AcceptedInventory, cc) + } + } + } yield diff } - private[nodes] def getAll(base: File): IOStream[NodeFact] = { - // TODO should be from git head, not from file directory - val stream = ZStream.fromIterator(base.collectChildren(_.extension(includeDot = true, includeAll = true) == Some(".json"))) - stream - .mapError(ex => SystemError("Error when reading node fact persisted file", ex)) - .mapZIO(f => - f.contentAsString(StandardCharsets.UTF_8).fromJson[NodeFact].toIO.chainError(s"Error when decoding ${f.pathAsString}") - ) + override def get(nodeId: NodeId)(implicit status: SelectNodeStatus = SelectNodeStatus.Any): IOResult[Option[CoreNodeFact]] = { + status match { + case SelectNodeStatus.Pending => + getOnRef(pendingNodes, nodeId) + case SelectNodeStatus.Accepted => + getOnRef(acceptedNodes, nodeId) + case SelectNodeStatus.Any => + getOnRef(acceptedNodes, nodeId).flatMap(opt => opt.fold(getOnRef(pendingNodes, nodeId))(Some(_).succeed)) + } } - override def getAllPending(): IOStream[NodeFact] = getAll(gitRepo.rootDirectory / relativePath / PendingInventory.name) - override def getAllAccepted(): IOStream[NodeFact] = getAll(gitRepo.rootDirectory / relativePath / AcceptedInventory.name) + override def slowGet(nodeId: NodeId)(implicit status: SelectNodeStatus, attrs: SelectFacts): IOResult[Option[NodeFact]] = { + (for { + optCNF <- get(nodeId)(status) + res <- optCNF match { + case None => None.succeed + case Some(v) => + val fact = NodeFact.fromMinimal(v) + if (attrs == SelectFacts.none) { + Some(fact).succeed + } else { + (status match { + case SelectNodeStatus.Pending => storage.getPending(nodeId)(attrs) + case SelectNodeStatus.Accepted => storage.getAccepted(nodeId)(attrs) + case SelectNodeStatus.Any => + storage.getAccepted(nodeId)(attrs).flatMap { + case Some(x) => Some(x).succeed + case None => storage.getPending(nodeId)(attrs) + } + }).flatMap { + case None => + // here, we have the value in cache but not in cold storage. + // This is an inconsistency and likely going to pause problem latter on + // perhaps we should compensate, CoreNodeFactRepo should be the reference. + // At least log. + NodeLoggerPure.warn( + s"Inconsistency: node '${fact.fqdn}' [${fact.id.value}] was found in Rudder memory base but not in cold storage. " + + s"This is not supposed to be, perhaps cold storage was modified not through Rudder. This is likely to lead to consistency problem. " + + s"You should use Rudder API." + ) *> // in that case still return core fact + Some(fact).succeed + case Some(b) => + Some(SelectFacts.mergeCore(v, b)(attrs)).succeed + } + } + } + } yield res) + } - override def save(nodeFact: NodeFact): IOResult[Unit] = { - if (nodeFact.rudderSettings.status == RemovedInventory) { - InventoryDataLogger.info( - s"Not persisting deleted node '${nodeFact.fqdn}' [${nodeFact.id.value}]: it has removed inventory status" - ) *> - ZIO.unit + private[nodes] def getAllOnRef[A](ref: Ref[Map[NodeId, CoreNodeFact]]): IOStream[CoreNodeFact] = { + ZStream.fromZIO(ref.get.map(_.values)).flatMap(x => ZStream.fromIterable(x)) + } + + override def getAll()(implicit status: SelectNodeStatus = SelectNodeStatus.Accepted): IOStream[CoreNodeFact] = { + status match { + case SelectNodeStatus.Pending => getAllOnRef(pendingNodes) + case SelectNodeStatus.Accepted => getAllOnRef(acceptedNodes) + case SelectNodeStatus.Any => getAllOnRef(pendingNodes) ++ getAllOnRef(acceptedNodes) + } + } + + override def slowGetAll()(implicit status: SelectNodeStatus, attrs: SelectFacts): IOStream[NodeFact] = { + if (attrs == SelectFacts.none) { + getAll()(status).map(cnf => NodeFact.fromMinimal(cnf)) } else { - for { - json <- toJson(nodeFact) - file = getFile(nodeFact.id, nodeFact.rudderSettings.status) - _ <- IOResult.attempt(file.write(json)) - _ <- IOResult.attempt(file.setGroup(groupOwner)) - _ <- ZIO.when(actuallyCommit) { - commitAddFile( - committer, - toGitPath(file.toJava), - s"Save inventory facts for ${nodeFact.rudderSettings.status.name} node '${nodeFact.fqdn}' (${nodeFact.id.value})" - ) - } - } yield () + status match { + case SelectNodeStatus.Pending => storage.getAllPending()(attrs) + case SelectNodeStatus.Accepted => storage.getAllAccepted()(attrs) + case SelectNodeStatus.Any => storage.getAllPending()(attrs) ++ storage.getAllAccepted()(attrs) + } } } - // when we delete, we check for all path to also remove possible left-over - // we may need to recreate pending/accepted directory, because git delete - // empty directories. - override def delete(nodeId: NodeId) = { - ZIO.foreach(List(PendingInventory, AcceptedInventory)) { s => - val file = getFile(nodeId, s) - ZIO.whenZIO(IOResult.attempt(file.exists)) { - if (actuallyCommit) { - commitRmFile(committer, toGitPath(file.toJava), s"Updating facts for node '${nodeId.value}': deleted") - } else { - IOResult.attempt(file.delete()) + override def getNodesbySofwareName(softName: String): IOResult[List[(NodeId, Software)]] = { + softwareByName(softName) + } + + /* + * + */ + private def saveOn(ref: Ref[Map[NodeId, CoreNodeFact]], nodeFact: CoreNodeFact): IOResult[StorageChangeEventSave] = { + ref + .getAndUpdate(_ + ((nodeFact.id, nodeFact))) + .map { old => + old.get(nodeFact.id) match { + case Some(n) => + if (CoreNodeFact.same(n, nodeFact)) StorageChangeEventSave.Noop(nodeFact.id, SelectFacts.none) + else StorageChangeEventSave.Updated(NodeFact.fromMinimal(n), NodeFact.fromMinimal(nodeFact), SelectFacts.none) + case None => StorageChangeEventSave.Created(NodeFact.fromMinimal(nodeFact), SelectFacts.none) } } - } *> checkInit() } - override def changeStatus(nodeId: NodeId, toStatus: InventoryStatus): IOResult[Unit] = { - // pending and accepted are symmetric, utility function for the two cases - def move(to: InventoryStatus) = { - val from = if (to == AcceptedInventory) PendingInventory else AcceptedInventory - - val fromFile = getFile(nodeId, from) - val toFile = getFile(nodeId, to) - // check if fact already where it should - ZIO.ifZIO(IOResult.attempt(fromFile.exists))( - // however toFile exists, move, because if present it may be because a deletion didn't work and - // we need to overwrite - IOResult.attempt(fromFile.moveTo(toFile)(File.CopyOptions(overwrite = true))) *> - ZIO.when(actuallyCommit) { - commitMvDirectory( - committer, - toGitPath(fromFile.toJava), - toGitPath(toFile.toJava), - s"Updating facts for node '${nodeId.value}' to status: ${to.name}" + private def deleteOn(ref: Ref[Map[NodeId, CoreNodeFact]], nodeId: NodeId): IOResult[StorageChangeEventDelete] = { + ref + .getAndUpdate(_.removed(nodeId)) + .map(old => { + old.get(nodeId) match { + case None => StorageChangeEventDelete.Noop(nodeId) + case Some(n) => StorageChangeEventDelete.Deleted(NodeFact.fromMinimal(n), SelectFacts.none) + } + }) + } + + private def checkRootProperties(node: NodeFact): IOResult[Unit] = { + // use cats validation + import cats.data._ + import cats.implicits._ + + type ValidationResult = ValidatedNel[String, Unit] + val ok = ().validNel + + def validateRoot(node: NodeFact): IOResult[Unit] = { + // transform a validation result to a Full | Failure + implicit class toIOResult(validation: ValidatedNel[String, List[Unit]]) { + def toZIO: IOResult[Unit] = { + validation.fold( + nel => Inconsistency(nel.toList.mkString("; ")).fail, + _ => ZIO.unit ) - }, // if source file does not exist, check if dest is present. If present, assume it's ok, else error + } + } - ZIO.whenZIO(IOResult.attempt(!toFile.exists)) { - Inconsistency( - s"Error when trying to move fact for node '${nodeId.value}' from '${fromFile.pathAsString}' to '${toFile.pathAsString}': missing files" - ).fail + val checks: List[NodeFact => ValidationResult] = List( + (node: NodeFact) => { // root is enablef + if (node.rudderSettings.state == NodeState.Enabled) ok + else s"Root node must always be in '${NodeState.Enabled.name}' lifecycle state.".invalidNel + }, + (node: NodeFact) => { // root is PolicyServer + if (node.isPolicyServer) ok + else "You can't change the 'policy server' nature of Root policy server".invalidNel + }, + (node: NodeFact) => { // rootIsSystem + if (node.isSystem) ok + else "You can't change the 'system' nature of Root policy server".invalidNel + }, + (node: NodeFact) => { // rootIsAccepted + if (node.rudderSettings.status == AcceptedInventory) ok + else "You can't change the 'status' of Root policy server, it must be accepted".invalidNel } ) + + checks.traverse(_(node)).toZIO } - (toStatus match { - case RemovedInventory => delete(nodeId) - case x => move(x) - }).unit + ZIO.when(node.id == Constants.ROOT_POLICY_SERVER_ID)(validateRoot(node)).unit } - /* - * check that everything is ok for that repo entities (typically: subfolder created, perm ok, etc) - */ - def checkInit(): IOResult[Unit] = { - val dirs = List(AcceptedInventory.name, PendingInventory.name) - dirs.accumulate { dir => - val d = gitRepo.rootDirectory / relativePath / dir + def save( + nodeFact: NodeFact + )(implicit cc: ChangeContext, attrs: SelectFacts = SelectFacts.all): IOResult[NodeFactChangeEventCC] = { + checkRootProperties(nodeFact) *> + ZIO.scoped( for { - _ <- ZIO - .whenZIO(IOResult.attempt(d.notExists)) { - IOResult.attempt { - d.createDirectories() - d.setGroup(groupOwner) - } - } - .chainError(s"Error when creating directory '${d.pathAsString}' for historising inventories: ${}") - _ <- ZIO.whenZIO(IOResult.attempt(!d.isOwnerWritable)) { - Inconsistency( - s"Error, directory '${d.pathAsString}' must be a writable directory to allow inventory historisation" - ).fail + _ <- lock.withLock + // here we persist all the core data with the provided solution + s <- storage.save(nodeFact) + // but then the diff are only done on the core elements + e <- nodeFact.rudderSettings.status match { + case RemovedInventory => // this case is ignored, we don't delete node based on status value + NodeFactChangeEventCC(Noop(nodeFact.id, attrs), cc).succeed + case PendingInventory => + saveOn(pendingNodes, nodeFact.toCore).map(e => e.updateWith(s).toChangeEvent(nodeFact.id, PendingInventory, cc)) + case AcceptedInventory => + saveOn(acceptedNodes, nodeFact.toCore).map(e => + e.updateWith(s).toChangeEvent(nodeFact.id, AcceptedInventory, cc) + ) } - } yield () - }.unit + _ <- runCallbacks(e) + } yield e + ) + } + + override def changeStatus(nodeId: NodeId, into: InventoryStatus)(implicit + cc: ChangeContext + ): IOResult[NodeFactChangeEventCC] = { + if (nodeId == Constants.ROOT_POLICY_SERVER_ID && into != AcceptedInventory) { + Inconsistency(s"Rudder server (id='root' must be accepted").fail + } else { + ZIO.scoped( + for { + _ <- lock.withLock + _ <- storage.changeStatus(nodeId, into) + e <- + for { + pending <- getOnRef(pendingNodes, nodeId) + accepted <- getOnRef(acceptedNodes, nodeId) + e <- (into, pending, accepted) match { + case (RemovedInventory, Some(x), None) => + deleteOn(pendingNodes, nodeId) *> NodeFactChangeEventCC( + Refused(NodeFact.fromMinimal(x), SelectFacts.none), + cc + ).succeed + case (RemovedInventory, None, Some(x)) => + deleteOn(acceptedNodes, nodeId) *> NodeFactChangeEventCC( + Deleted(NodeFact.fromMinimal(x), SelectFacts.none), + cc + ).succeed + case (RemovedInventory, Some(_), Some(x)) => + deleteOn(pendingNodes, nodeId) *> + deleteOn(acceptedNodes, nodeId) *> + NodeFactChangeEventCC(Deleted(NodeFact.fromMinimal(x), SelectFacts.none), cc).succeed + case (RemovedInventory, None, None) => + NodeFactChangeEventCC(Noop(nodeId, SelectFacts.none), cc).succeed + case (_, None, None) => + Inconsistency( + s"Error: node '${nodeId.value}' was not found in rudder (neither pending nor accepted nodes" + ).fail + case (AcceptedInventory, None, Some(_)) => + NodeFactChangeEventCC(Noop(nodeId, SelectFacts.none), cc).succeed + case (AcceptedInventory, Some(x), None) => + deleteOn(pendingNodes, nodeId) *> saveOn( + acceptedNodes, + x.modify(_.rudderSettings.status).setTo(AcceptedInventory) + ) *> NodeFactChangeEventCC(Accepted(NodeFact.fromMinimal(x), SelectFacts.none), cc).succeed + case (AcceptedInventory, Some(_), Some(_)) => + deleteOn(pendingNodes, nodeId) *> NodeFactChangeEventCC(Noop(nodeId, SelectFacts.none), cc).succeed + case (PendingInventory, None, Some(x)) => + deleteOn(acceptedNodes, nodeId) *> saveOn( + pendingNodes, + x.modify(_.rudderSettings.status).setTo(PendingInventory) + ) *> NodeFactChangeEventCC( + Deleted(NodeFact.fromMinimal(x), SelectFacts.none), + cc + ).succeed // not sure about the semantic here + case (PendingInventory, Some(_), None) => + NodeFactChangeEventCC(Noop(nodeId, SelectFacts.none), cc).succeed + case (PendingInventory, Some(_), Some(x)) => + deleteOn(acceptedNodes, nodeId) *> NodeFactChangeEventCC( + Deleted(NodeFact.fromMinimal(x), SelectFacts.none), + cc + ).succeed + } + } yield e + _ <- runCallbacks(e) + } yield e + ) + } + } + + override def delete(nodeId: NodeId)(implicit cc: ChangeContext): IOResult[NodeFactChangeEventCC] = { + ZIO.scoped( + for { + _ <- lock.withLock + cnf <- get(nodeId)(SelectNodeStatus.Any) + s <- storage.delete(nodeId)(SelectFacts.all) + e <- cnf match { + case Some(n) => + if (n.rudderSettings.status == PendingInventory) { + deleteOn(pendingNodes, nodeId).map(_.updateWith(s).toChangeEvent(n, PendingInventory, cc)) + } else { + deleteOn(acceptedNodes, nodeId).map(_.updateWith(s).toChangeEvent(n, AcceptedInventory, cc)) + } + case None => NodeFactChangeEventCC(NodeFactChangeEvent.Noop(nodeId, SelectFacts.all), cc).succeed + } + _ <- runCallbacks(e) + } yield e + ) + } + + override def updateInventory(inventory: FullInventory, software: Option[Iterable[Software]])(implicit + cc: ChangeContext + ): IOResult[NodeFactChangeEventCC] = { + val nodeId = inventory.node.main.id + implicit val attrs = if (software.isEmpty) SelectFacts.noSoftware else SelectFacts.all + ZIO.scoped( + for { + _ <- lock.withLock + optPending <- getOnRef(pendingNodes, nodeId) + optFact <- optPending match { + case Some(f) => Some(f).succeed + case None => getOnRef(acceptedNodes, nodeId) + } + fact = optFact match { + case Some(f) => NodeFact.updateFullInventory(NodeFact.fromMinimal(f), inventory, software) + case None => NodeFact.newFromFullInventory(inventory, software) + } + e <- save(fact) // save already runs callbacks + } yield e + ) } } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactServiceProxies.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactServiceProxies.scala new file mode 100644 index 00000000000..e63b231f3af --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactServiceProxies.scala @@ -0,0 +1,270 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import com.normation.errors.IOResult +import com.normation.eventlog.EventActor +import com.normation.eventlog.ModificationId +import com.normation.inventory.domain.AcceptedInventory +import com.normation.inventory.domain.Certificate +import com.normation.inventory.domain.FullInventory +import com.normation.inventory.domain.Inventory +import com.normation.inventory.domain.InventoryError.Inconsistency +import com.normation.inventory.domain.InventoryStatus +import com.normation.inventory.domain.KeyStatus +import com.normation.inventory.domain.MachineUuid +import com.normation.inventory.domain.NodeId +import com.normation.inventory.domain.PendingInventory +import com.normation.inventory.domain.RemovedInventory +import com.normation.inventory.domain.SecurityToken +import com.normation.inventory.domain.Software +import com.normation.inventory.services.core.FullInventoryRepository +import com.normation.inventory.services.core.ReadOnlySoftwareNameDAO +import com.normation.inventory.services.provisioning.PipelinedInventorySaver +import com.normation.inventory.services.provisioning.PostCommit +import com.normation.inventory.services.provisioning.PreCommit +import com.normation.rudder.domain.nodes.Node +import com.normation.rudder.domain.nodes.NodeInfo +import com.normation.rudder.domain.nodes.NodeKind +import com.normation.rudder.repository.WoNodeRepository +import com.normation.rudder.services.nodes.NodeInfoService +import com.softwaremill.quicklens._ +import org.joda.time.DateTime +import zio._ +import zio.stream.ZSink +import zio.syntax._ + +class NodeFactInventorySaver( + backend: NodeFactRepository, + val preCommitPipeline: Seq[PreCommit], + val postCommitPipeline: Seq[PostCommit[Unit]] +) extends PipelinedInventorySaver[Unit] { + + override def commitChange(inventory: Inventory): IOResult[Unit] = { + implicit val cc = ChangeContext.newForRudder() + backend.updateInventory(FullInventory(inventory.node, Some(inventory.machine)), Some(inventory.applications)).unit + } +} + +/* + * Proxy for node fact to full inventory / node inventory / machine inventory / node info and their repositories + */ +class NodeInfoServiceProxy(backend: NodeFactRepository) extends NodeInfoService { + + override def getNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = { + backend.get(nodeId)(SelectNodeStatus.Accepted).map(_.map(_.toNodeInfo)) + } + + override def getNodeInfos(nodeIds: Set[NodeId]): IOResult[Set[NodeInfo]] = { + backend + .getAll()(SelectNodeStatus.Accepted) + .collect { case n if (nodeIds.contains(n.id)) => n.toNodeInfo } + .run(ZSink.collectAllToSet) + } + + override def getNodeInfosSeq(nodeIds: Seq[NodeId]): IOResult[Seq[NodeInfo]] = { + backend + .getAll()(SelectNodeStatus.Accepted) + .collect { case n if (nodeIds.contains(n.id)) => n.toNodeInfo } + .run(ZSink.collectAll) + .map(_.toSeq) + } + + override def getNumberOfManagedNodes: IOResult[Int] = { + backend.getAll()(SelectNodeStatus.Accepted).run(ZSink.count).map(_.toInt) + } + + override def getAll(): IOResult[Map[NodeId, NodeInfo]] = { + backend.getAll()(SelectNodeStatus.Accepted).map(_.toNodeInfo) run (ZSink.collectAllToMap[NodeInfo, NodeId](_.node.id)( + (a, b) => b + )) + } + + override def getAllNodesIds(): IOResult[Set[NodeId]] = { + backend.getAll()(SelectNodeStatus.Accepted).map(_.id).run(ZSink.collectAllToSet) + } + + override def getAllNodes(): IOResult[Map[NodeId, Node]] = { + backend.getAll()(SelectNodeStatus.Accepted).map(_.toNode).run(ZSink.collectAllToMap[Node, NodeId](_.id)((a, b) => b)) + } + + override def getAllNodeInfos(): IOResult[Seq[NodeInfo]] = { + backend.getAll()(SelectNodeStatus.Accepted).map(_.toNodeInfo).run(ZSink.collectAll).map(_.toSeq) + } + + override def getAllSystemNodeIds(): IOResult[Seq[NodeId]] = { + backend + .getAll()(SelectNodeStatus.Accepted) + .collect { case n if (n.rudderSettings.kind != NodeKind.Node) => n.id } + .run(ZSink.collectAll) + .map(_.toSeq) + } + + override def getPendingNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = { + backend.getAll()(SelectNodeStatus.Pending).map(_.toNodeInfo).run(ZSink.collectAllToMap[NodeInfo, NodeId](_.id)((a, b) => b)) + } + + override def getPendingNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = { + backend.get(nodeId)(SelectNodeStatus.Pending).map(_.map(_.toNodeInfo)) + } + + // not supported anymore + override def getDeletedNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = { + Map().succeed + } + + // not supported anymore + override def getDeletedNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = { + None.succeed + } +} + +/* + * Proxy for full node inventory. + * We willfully chose to not implement machine repo because it doesn't make any sense with fact. + * There is also a limit with software, since now they are directly in the node and they don't + * have specific IDs. So they will need to be retrieved by node id. + */ +class NodeFactFullInventoryRepositoryProxy(backend: NodeFactRepository) + extends FullInventoryRepository[Unit] with ReadOnlySoftwareNameDAO { + + override def get(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[FullInventory]] = { + backend.slowGetCompat(id, inventoryStatus, SelectFacts.noSoftware).map(_.map(_.toFullInventory)) + } + + override def get(id: NodeId): IOResult[Option[FullInventory]] = { + get(id, AcceptedInventory) + } + + override def getMachineId(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[(MachineUuid, InventoryStatus)]] = { + (Some((NodeFact.toMachineId(id), inventoryStatus))).succeed + } + + override def save(serverAndMachine: FullInventory): IOResult[Unit] = { + // we must know if it's new or not to get back the correct facts. + // if the fact exists, we keep its status (use move to change it). + // if it does not yet, we use the given status BUT know that you should not + // use that to save node in accepted status directly. + backend.updateInventory(serverAndMachine, None)(ChangeContext.newForRudder()).unit + } + + override def delete(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Unit] = { + // we need to only delete if the status is the one asked + backend.getStatus(id).flatMap { s => + s match { + case RemovedInventory => ZIO.unit + case s => ZIO.when(s == inventoryStatus)(backend.delete(id)(ChangeContext.newForRudder())).unit + } + } + } + + override def move(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Unit] = { + backend.changeStatus(id, into)(ChangeContext.newForRudder()).unit + } + + override def moveNode(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Unit] = { + backend.changeStatus(id, into)(ChangeContext.newForRudder()).unit + } + + override def getSoftwareByNode(nodeIds: Set[NodeId], status: InventoryStatus): IOResult[Map[NodeId, Seq[Software]]] = { + def getAll(s: SelectNodeStatus): IOResult[Map[NodeId, Chunk[Software]]] = { + implicit val attrs = SelectFacts.none.copy(software = SelectFacts.all.software) + + ZIO + .foreach(nodeIds.toList) { + case id => + backend.slowGet(id)(s, attrs).map(_.map(n => (n.id, n.software.map(_.toSoftware)))) + } + .map(_.flatten.toMap) + } + + status match { + case AcceptedInventory => getAll(SelectNodeStatus.Accepted) + case PendingInventory => getAll(SelectNodeStatus.Pending) + case RemovedInventory => Map().succeed + } + } + + override def getNodesbySofwareName(softName: String): IOResult[List[(NodeId, Software)]] = { + backend.getNodesbySofwareName(softName) + } +} + +class WoFactNodeRepositoryProxy(backend: NodeFactRepository) extends WoNodeRepository { + override def updateNode(node: Node, modId: ModificationId, actor: EventActor, reason: Option[String]): IOResult[Node] = { + for { + opt <- backend.get(node.id)(SelectNodeStatus.Any) + fact <- opt match { + case None => Inconsistency(s"Node with id '${node.id.value}' was not found").fail + case Some(fact) => CoreNodeFact.updateNode(fact, node).succeed + } + _ <- backend.save(NodeFact.fromMinimal(fact))(ChangeContext(modId, actor, DateTime.now(), reason, None), SelectFacts.none) + } yield fact.toNode + } + + override def deleteNode(node: Node, modId: ModificationId, actor: EventActor, reason: Option[String]): IOResult[Node] = ??? + + override def createNode(node: Node, modId: ModificationId, actor: EventActor, reason: Option[String]): IOResult[Node] = ??? + + override def updateNodeKeyInfo( + nodeId: NodeId, + agentKey: Option[SecurityToken], + agentKeyStatus: Option[KeyStatus], + modId: ModificationId, + actor: EventActor, + reason: Option[String] + ): IOResult[Unit] = { + if (agentKey.isEmpty && agentKeyStatus.isEmpty) ZIO.unit + else { + for { + _ <- agentKey match { + case Some(Certificate(value)) => SecurityToken.checkCertificateForNode(nodeId, Certificate(value)) + case _ => ZIO.unit + } + node <- backend.get(nodeId).notOptional(s"Cannot update node with id ${nodeId.value}: there is no node with that id") + newNode = node + .modify(_.rudderAgent.securityToken) + .setToIfDefined(agentKey) + .modify(_.rudderSettings.keyStatus) + .setToIfDefined(agentKeyStatus) + _ <- + backend.save(NodeFact.fromMinimal(newNode))(ChangeContext(modId, actor, DateTime.now(), reason, None), SelectFacts.none) + } yield () + } + } +} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactStorage.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactStorage.scala new file mode 100644 index 00000000000..8b4e896cd6a --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/facts/nodes/NodeFactStorage.scala @@ -0,0 +1,911 @@ +/* + ************************************************************************************* + * Copyright 2021 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import NodeFactSerialisation._ +import better.files.File +import com.normation.errors._ +import com.normation.errors.IOResult +import com.normation.inventory.domain._ +import com.normation.inventory.ldap.core.FullInventoryRepositoryImpl +import com.normation.inventory.ldap.core.InventoryDitService +import com.normation.inventory.ldap.core.InventoryMapper +import com.normation.inventory.ldap.core.LDAPConstants._ +import com.normation.inventory.services.core.ReadOnlySoftwareDAO +import com.normation.inventory.services.provisioning.SoftwareDNFinderAction +import com.normation.ldap.sdk.BuildFilter._ +import com.normation.ldap.sdk.LDAPConnectionProvider +import com.normation.ldap.sdk.LDAPEntry +import com.normation.ldap.sdk.One +import com.normation.ldap.sdk.RwLDAPConnection +import com.normation.rudder.domain.NodeDit +import com.normation.rudder.domain.logger.NodeLogger +import com.normation.rudder.domain.logger.NodeLoggerPure +import com.normation.rudder.domain.nodes.MachineInfo +import com.normation.rudder.domain.nodes.NodeInfo +import com.normation.rudder.facts.nodes.LdapNodeFactStorage.needsSoftware +import com.normation.rudder.git.GitItemRepository +import com.normation.rudder.git.GitRepositoryProvider +import com.normation.rudder.repository.ldap.LDAPEntityMapper +import com.normation.rudder.repository.ldap.ScalaReadWriteLock +import com.normation.rudder.services.nodes.NodeInfoService +import com.normation.utils.StringUuidGenerator +import com.normation.zio._ +import com.softwaremill.quicklens._ +import com.unboundid.ldap.sdk.DN +import java.nio.charset.StandardCharsets +import org.eclipse.jgit.lib.PersonIdent +import org.joda.time.DateTime +import scala.annotation.nowarn +import zio._ +import zio.json._ +import zio.stream.ZStream +import zio.syntax._ + +/* + * This file contains the base to persist facts into a git repository. There is a lot of question + * remaining, so don't take current traits/classes as an API, it *WILL* change. The basic questions to answer are: + * - do we want one bit "FactRepo" that knows about all kind of facts and is able to persis any of them ? In that case, + * we will need some kind of parametrization of `persist` with a type class to teach that repo how to serialize and + * persist each case + * - do we prefer lots of small repos, one by entity, which knows how to persist only that entity ? + * - plus, we want to have some latitude on the serialization part, and be able to use both liftjson and zio-json + * (because the complete migration toward zio-json won't be finish immediately) + * + * The "one big" repo feels more like it is what we need, since it's really just one big git repo with sub-cases, + * with shared tools and specialisation by entity. But I'm not sure how to build the capacities with type class + * until I have several examples. + * The small repos (one by entity) is what we used to do, so we are in known territory (see archive of configuration + * entities), even if it is not a very satisfying one. Its advantage is that it's very simple, but it leads to a lot + * of code duplication and maintenance is complicated (and adding a new entity is basically "copy that 100 lines of + * code, and sed things", while we would like it to be "implement just that interface") + * + * Finally, we some coupling between serialization and repos as they are written for now: the path can't be known + * without some part of the entity, but we don't know which part exactly (for node, it's its uuid and status, but + * perhaps it's an exception, and for all other it's just an ID). + * + * With all these unknowns, I prefer to let parametrisation as simple as possible: + * - no abstraction for repo, we just have a "node repo" with all the concrete types. It's likely to become a: + * ``` + * trait FactRepo { def persist[E](e: E)(implicit Serialize[E]): IOResult[Unit]) + * ``` + * Or something alike, but we just don't know. + * + * - some abstraction for serialisation, but just to put in plain sight the fact that there a characteristic of + * the entity that is not the whole entity, and more then its ID, that is needed to build where the entity + * will be saved. + * + * - a simple implementation for nodes, that will need to be refactored depending of the chosen final arch. + * + * And finally, to complexity a bit more the picture, we see that there is events (observations?) linked to facts + * that can update the previous fact partially. For nodes, it's "change the status" (which is, perhaps by luck, + * the same subpart of the entity than the one used in the more-than-just-an-id parameter of serialization). + * I don't know for now if it's a general truth, or if it's just an happenstance, and if there is a general + * capability (like "partialUpdate[SomeSubParOfE => E]") to define (in a pure events-tore, we would save that + * event as if, but well we want to have readable text files for users in our git repos) + */ + +/* + * Serialize a fact type (to/from JSON), for example nodes. + * The format is versioned so that we are able to unserialize old files into newer domain representation. + * + * We store a fileFormat and the serialized object type. + * To let more space for evolution, file format will be a string even if it should be parsed as an int. + * + * There's two parameter, one minimal (A) that allows to identify where the fact should be store (typically, it's a + * kind of ID), and (B) which the whole fact to serialize. There should exists a constraint of derivability from B to A, + * but it's not modeled. + */ +trait SerializeFacts[A, B] { + + def fileFormat: String + def entity: String + + def toJson(data: B): IOResult[String] + + // this is just a relative path from a virtual root, for example for node it will be: "accepted/node-uuid.json" + def getEntityPath(id: A): String + +} + +/* + * Storage have a very simple change event output datastructure. This is because they don't know + * about business logic, just about the action done to the serialized data. + * + * SelectFacts informs about what the storage know about the change. + * For ex, if SelectFacts.software is "Ignore" and the change event is Noop, it only + * says that things other than software changed and nothing about software (it may or may + * not have changed). + * This is also a way to limit the quantity of data returned in the change event: NodeFact + * will (must be) masked. Finally, storage must not change the attrs requirement given in + * parameter and must do whatever is needed to honor the requirement. + * + * When no requirement is done in the parameters for SelectFacts, storage can return + * what it wants, always trying to maximize perf / minimize data transfered in that case . + */ +sealed trait StorageChangeEvent +// save +sealed trait StorageChangeEventSave extends StorageChangeEvent +object StorageChangeEventSave { + final case class Created(node: NodeFact, attrs: SelectFacts) extends StorageChangeEventSave + final case class Updated(oldNode: NodeFact, newNode: NodeFact, attrs: SelectFacts) extends StorageChangeEventSave + final case class Noop(nodeId: NodeId, attrs: SelectFacts) extends StorageChangeEventSave + + implicit class StorageChangeEventExtensions(e: StorageChangeEventSave) { + def toChangeEvent( + nodeId: NodeId, + s: InventoryStatus, + cc: ChangeContext + ): NodeFactChangeEventCC = { + import NodeFactChangeEvent.{Noop => NoopCE} + import NodeFactChangeEvent.{Updated => UpdatedCE, _} + s match { + case RemovedInventory => // this case is ignored, we don't delete node based on status value + NodeFactChangeEventCC(NoopCE(nodeId, SelectFacts.all), cc) + case PendingInventory => + e match { + case StorageChangeEventSave.Created(node, attrs) => NodeFactChangeEventCC(NewPending(node, attrs), cc) + case StorageChangeEventSave.Updated(old, next, attrs) => NodeFactChangeEventCC(UpdatedPending(old, next, attrs), cc) + case StorageChangeEventSave.Noop(nodeId, attrs) => NodeFactChangeEventCC(NoopCE(nodeId, attrs), cc) + } + case AcceptedInventory => + e match { + case StorageChangeEventSave.Created(node, attrs) => NodeFactChangeEventCC(Accepted(node, attrs), cc) + case StorageChangeEventSave.Updated(old, next, attrs) => NodeFactChangeEventCC(UpdatedCE(old, next, attrs), cc) + case StorageChangeEventSave.Noop(nodeId, attrs) => NodeFactChangeEventCC(NoopCE(nodeId, attrs), cc) + } + } + } + + def updateWith(b: StorageChangeEventSave): StorageChangeEventSave = { + def update(nfa: NodeFact, nfb: NodeFact, attrs: SelectFacts) = SelectFacts.merge(nfa, Some(nfb))(attrs.invert) + + (e, b) match { + case (Noop(_, _), x) => x + case (x, Noop(_, _)) => x + case (Created(a1, _), Created(a2, attrs)) => Created(update(a1, a2, attrs), attrs) + case (Created(a1, _), Updated(ob, nb, attrs)) => Updated(ob, update(a1, nb, attrs), attrs) + case (Updated(oa, na, _), Created(b1, attrs)) => Updated(oa, update(na, b1, attrs), attrs) + case (Updated(ob1, nb1, _), Updated(ob2, nb2, attrs)) => + Updated( + update(ob1, ob2, attrs), + update(nb1, nb1, attrs), + attrs + ) + } + } + } +} + +sealed trait StorageChangeEventStatus extends StorageChangeEvent +object StorageChangeEventStatus { + final case class Done(nodeId: NodeId) extends StorageChangeEventStatus + final case class Noop(nodeId: NodeId) extends StorageChangeEventStatus +} + +sealed trait StorageChangeEventDelete extends StorageChangeEvent +object StorageChangeEventDelete { + final case class Deleted(node: NodeFact, attrs: SelectFacts) extends StorageChangeEventDelete + // this one is to signal something was deleted, but we weren't able to retrieve node info + final case class DeletedNoInfo(nodeId: NodeId) extends StorageChangeEventDelete + final case class Noop(nodeId: NodeId) extends StorageChangeEventDelete + + implicit class StorageChangeEventExtensions(e: StorageChangeEventDelete) { + def toChangeEvent( + cnf: CoreNodeFact, + s: InventoryStatus, + cc: ChangeContext + ): NodeFactChangeEventCC = { + import NodeFactChangeEvent.{Noop => NoopCE, Deleted => DeletedCE, _} + + def patternMatch( + event: StorageChangeEventDelete, + toEvent: (NodeFact, SelectFacts) => NodeFactChangeEvent + ): NodeFactChangeEventCC = { + event match { + case Deleted(node, attrs) => NodeFactChangeEventCC(toEvent(node, attrs), cc) + case DeletedNoInfo(_) => NodeFactChangeEventCC(toEvent(NodeFact.fromMinimal(cnf), SelectFacts.none), cc) + case Noop(_) => NodeFactChangeEventCC(NoopCE(cnf.id, SelectFacts.all), cc) + } + } + + s match { + case RemovedInventory => NodeFactChangeEventCC(NoopCE(cnf.id, SelectFacts.all), cc) + case PendingInventory => patternMatch(e, Refused(_, _)) + case AcceptedInventory => patternMatch(e, DeletedCE(_, _)) + } + } + + def updateWith(b: StorageChangeEventDelete): StorageChangeEventDelete = { + def update(nfa: NodeFact, nfb: NodeFact, attrs: SelectFacts) = SelectFacts.merge(nfa, Some(nfb))(attrs.invert) + + (e, b) match { + case (Noop(_), x) => x + case (x, Noop(_)) => x + case (DeletedNoInfo(_), x) => x + case (x, DeletedNoInfo(_)) => x + case (Deleted(a1, _), Deleted(a2, attrs)) => Deleted(update(a1, a2, attrs), attrs) + } + } + } +} + +trait NodeFactStorage { + + /* + * Save node fact in the status given in the corresponding attribute. + * No check will be done. + */ + def save(nodeFact: NodeFact)(implicit attrs: SelectFacts = SelectFacts.all): IOResult[StorageChangeEventSave] + + /* + * Change the status of the node with given id to given status. + * - if the node is not found, an error is raised apart if target status is "delete" + * - if the target status is the current one, this function does nothing + * - if target status is "removed", persisted inventory is deleted + */ + def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[StorageChangeEventStatus] + + /* + * Delete the node. Storage need to loop for any status and delete + * any reference to that node. + */ + def delete(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[StorageChangeEventDelete] + + def getPending(nodeId: NodeId)(implicit attrs: SelectFacts = SelectFacts.default): IOResult[Option[NodeFact]] + def getAccepted(nodeId: NodeId)(implicit attrs: SelectFacts = SelectFacts.default): IOResult[Option[NodeFact]] + + def getAllPending()(implicit attrs: SelectFacts = SelectFacts.default): IOStream[NodeFact] + def getAllAccepted()(implicit attrs: SelectFacts = SelectFacts.default): IOStream[NodeFact] +} + +/* + * Implementation that store nothing and that can be used in tests or when a pure + * in-memory version of the nodeFactRepos is needed. + */ +object NoopFactStorage extends NodeFactStorage { + override def save(nodeFact: NodeFact)(implicit attrs: SelectFacts = SelectFacts.default): IOResult[StorageChangeEventSave] = + StorageChangeEventSave.Noop(nodeFact.id, attrs).succeed + override def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[StorageChangeEventStatus] = + StorageChangeEventStatus.Noop(nodeId).succeed + override def delete(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[StorageChangeEventDelete] = + StorageChangeEventDelete.Noop(nodeId).succeed + @nowarn("msg=parameter attrs in method getAllPending is never used") + override def getAllPending()(implicit attrs: SelectFacts = SelectFacts.default): IOStream[NodeFact] = ZStream.empty + @nowarn("msg=parameter attrs in method getAllAccepted is never used") + override def getAllAccepted()(implicit attrs: SelectFacts = SelectFacts.default): IOStream[NodeFact] = ZStream.empty + override def getPending(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = None.succeed + override def getAccepted(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = None.succeed +} + +/* + * We have only one git for all fact repositories. This is the one managing semaphore, init, etc. + * All fact repositories will be a subfolder on it: + * - /var/rudder/fact-repository/nodes + * - /var/rudder/fact-repository/rudder-config + * - /var/rudder/fact-repository/groups + * etc + */ + +object GitNodeFactStorageImpl { + + final case class NodeFactArchive( + entity: String, + fileFormat: String, + node: NodeFact + ) + + implicit val codecNodeFactArchive: JsonCodec[NodeFactArchive] = DeriveJsonCodec.gen +} + +/* + * Nodes are stored in the git facts repo under the relative path "nodes". + * They are then stored: + * - under nodes/pending or nodes/accepted given their status (which means that changing status of a node is + * a special operation) + */ +class GitNodeFactStorageImpl( + override val gitRepo: GitRepositoryProvider, + groupOwner: Option[String], + actuallyCommit: Boolean +) extends NodeFactStorage with GitItemRepository with SerializeFacts[(NodeId, InventoryStatus), NodeFact] { + + override val relativePath = "nodes" + override val entity: String = "node" + override val fileFormat: String = "10" + val committer = new PersonIdent("rudder-fact", "email not set") + + if (actuallyCommit) { + NodeLogger.info(s"Nodes changes will be historized in Git in ${gitRepo.rootDirectory.pathAsString}/nodes") + } else { + NodeLogger.info( + s"Nodes changes won't be historized in Git, only last state is stored in ${gitRepo.rootDirectory.pathAsString}/nodes" + ) + } + + if (actuallyCommit) { + NodeLogger.info(s"Nodes changes will be historized in Git in ${gitRepo.rootDirectory.pathAsString}/nodes") + } else { + NodeLogger.info( + s"Nodes changes won't be historized in Git, only last state is stored in ${gitRepo.rootDirectory.pathAsString}/nodes" + ) + } + + override def getEntityPath(id: (NodeId, InventoryStatus)): String = { + s"${id._2.name}/${id._1.value}.json" + } + + def getFile(id: NodeId, status: InventoryStatus): File = { + gitRepo.rootDirectory / relativePath / getEntityPath((id, status)) + } + + /* + * serialize the inventory into a normalized JSON string. + * As we want it to be human readable and searchable, we will use an indented format. + */ + def toJson(nodeFact: NodeFact): IOResult[String] = { + import GitNodeFactStorageImpl._ + val node = nodeFact + .modify(_.accounts) + .using(_.sorted) + .modify(_.properties) + .using(_.sortBy(_.name)) + .modify(_.environmentVariables) + .using(_.sortBy(_._1)) + .modify(_.fileSystems) + .using(_.sortBy(_.name)) + .modify(_.networks) + .using(_.sortBy(_.name)) + .modify(_.processes) + .using(_.sortBy(_.commandName)) + .modify(_.bios) + .using(_.sortBy(_.name)) + .modify(_.controllers) + .using(_.sortBy(_.name)) + .modify(_.memories) + .using(_.sortBy(_.name)) + .modify(_.ports) + .using(_.sortBy(_.name)) + .modify(_.processors) + .using(_.sortBy(_.name)) + .modify(_.slots) + .using(_.sortBy(_.name)) + .modify(_.sounds) + .using(_.sortBy(_.name)) + .modify(_.storages) + .using(_.sortBy(_.name)) + .modify(_.videos) + .using(_.sortBy(_.name)) + + NodeFactArchive(entity, fileFormat, node).toJsonPretty.succeed + } + + // we don't want to write the codec to "not unserialize" given SelectFacts right now, so we are + // just masking + private[nodes] def fileToNode(f: File)(implicit attrs: SelectFacts): IOResult[NodeFact] = { + for { + c <- IOResult.attempt(s"Error reading file: ${f.pathAsString}")(f.contentAsString(StandardCharsets.UTF_8)) + j <- c.fromJson[NodeFact].toIO.chainError(s"Error when decoding ${f.pathAsString}") + } yield { + j.maskWith(attrs) + } + } + + private[nodes] def get(nodeId: NodeId, status: InventoryStatus)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + val f = getFile(nodeId, status) + if (f.exists) fileToNode(f).map(Some(_)) + else None.succeed + } + + private[nodes] def getAll(base: File)(implicit attrs: SelectFacts): IOStream[NodeFact] = { + // TODO should be from git head, not from file directory + val stream = ZStream.fromIterator(base.collectChildren(_.extension(includeDot = true, includeAll = true) == Some(".json"))) + stream + .mapError(ex => SystemError("Error when reading node fact persisted file", ex)) + .mapZIO(f => fileToNode(f)) + } + + override def getPending(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + get(nodeId, PendingInventory) + } + + override def getAccepted(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + get(nodeId, AcceptedInventory) + } + + override def getAllPending()(implicit attrs: SelectFacts): IOStream[NodeFact] = getAll( + gitRepo.rootDirectory / relativePath / PendingInventory.name + ) + override def getAllAccepted()(implicit attrs: SelectFacts): IOStream[NodeFact] = getAll( + gitRepo.rootDirectory / relativePath / AcceptedInventory.name + ) + + // We saving, we must ignore attrs that are "ignored" - ie in that case, if the source list is empty, we take the existing one + // Save does not know about status change. If it's called with a status change, this leads to duplicated data. + override def save(nodeFact: NodeFact)(implicit attrs: SelectFacts): IOResult[StorageChangeEventSave] = { + if (nodeFact.rudderSettings.status == RemovedInventory) { + InventoryDataLogger.info( + s"Not persisting deleted node '${nodeFact.fqdn}' [${nodeFact.id.value}]: it has removed inventory status" + ) *> StorageChangeEventSave.Noop(nodeFact.id, attrs).succeed + } else { + val file = getFile(nodeFact.id, nodeFact.rudderSettings.status) + for { + old <- fileToNode(file).map(Some(_)).catchAll(_ => None.succeed) + merged = SelectFacts.merge(nodeFact, old) + json <- toJson(merged) + _ <- IOResult.attempt(file.write(json)) + _ <- groupOwner match { + case None => ZIO.unit + case Some(go) => IOResult.attempt(file.setGroup(go)) + } + _ <- ZIO.when(actuallyCommit) { + commitAddFile( + committer, + toGitPath(file.toJava), + s"Save inventory facts for ${merged.rudderSettings.status.name} node '${merged.fqdn}' (${merged.id.value})" + ) + } + } yield { + old match { + case Some(o) => + StorageChangeEventSave.Updated(o, nodeFact, attrs) + case None => + StorageChangeEventSave.Created(nodeFact, attrs) + } + } + } + } + + // when we delete, we check for all path to also remove possible left-over + // we may need to recreate pending/accepted directory, because git delete + // empty directories. + override def delete(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[StorageChangeEventDelete] = { + def exists(nodeId: NodeId, status: InventoryStatus): IOResult[Option[File]] = { + val file = getFile(nodeId, status) + IOResult.attempt(file.exists).map { + case true => Some(file) + case false => None + } + } + def delete(file: File) = { + (if (actuallyCommit) { + commitRmFile(committer, toGitPath(file.toJava), s"Updating facts for node '${nodeId.value}': deleted") + } else { + IOResult.attempt(file.delete()) + }).flatMap(_ => fileToNode(file)(attrs).map(Some(_)).catchAll(_ => None.succeed)).map { + case Some(n) => StorageChangeEventDelete.Deleted(n, attrs) + case None => StorageChangeEventDelete.Noop(nodeId) + } + } + + (for { + p <- exists(nodeId, PendingInventory) + a <- exists(nodeId, AcceptedInventory) + c <- (p, a) match { + case (None, None) => StorageChangeEventDelete.Noop(nodeId).succeed + case (_, Some(f)) => delete(f) + case (Some(f), _) => delete(f) + } + } yield c) + .tap(_ => checkInit()) + } + + override def changeStatus(nodeId: NodeId, toStatus: InventoryStatus): IOResult[StorageChangeEventStatus] = { + // pending and accepted are symmetric, utility function for the two cases + def move(to: InventoryStatus): IOResult[StorageChangeEventStatus] = { + val from = if (to == AcceptedInventory) PendingInventory else AcceptedInventory + + val fromFile = getFile(nodeId, from) + val toFile = getFile(nodeId, to) + // check if fact already where it should + ZIO.ifZIO(IOResult.attempt(fromFile.exists))( + // however toFile exists, move, because if present it may be because a deletion didn't work and + // we need to overwrite + IOResult.attempt(fromFile.moveTo(toFile)(File.CopyOptions(overwrite = true))) *> + ZIO.when(actuallyCommit) { + commitMvDirectory( + committer, + toGitPath(fromFile.toJava), + toGitPath(toFile.toJava), + s"Updating facts for node '${nodeId.value}' to status: ${to.name}" + ) + } *> fileToNode(toFile)(SelectFacts.none).map(Some(_)).catchAll(_ => None.succeed).map { + case Some(n) => StorageChangeEventStatus.Done(n.id) + case None => StorageChangeEventStatus.Noop(nodeId) + }, + // if source file does not exist, check if dest is present. If present, assume it's ok, else error + ZIO + .whenZIO(IOResult.attempt(!toFile.exists)) { + Inconsistency( + s"Error when trying to move fact for node '${nodeId.value}' from '${fromFile.pathAsString}' to '${toFile.pathAsString}': missing files" + ).fail + } + .map(_ => StorageChangeEventStatus.Noop(nodeId)) + ) + } + + toStatus match { + case RemovedInventory => + delete(nodeId)(SelectFacts.none).map { + case StorageChangeEventDelete.Deleted(node, attrs) => StorageChangeEventStatus.Done(nodeId) + case StorageChangeEventDelete.DeletedNoInfo(node) => StorageChangeEventStatus.Done(nodeId) + case StorageChangeEventDelete.Noop(nodeId) => StorageChangeEventStatus.Noop(nodeId) + } + case x => move(x) + } + } + + /* + * check that everything is ok for that repo entities (typically: subfolder created, perm ok, etc) + */ + def checkInit(): IOResult[Unit] = { + val dirs = List(AcceptedInventory.name, PendingInventory.name) + dirs.accumulate { dir => + val d = gitRepo.rootDirectory / relativePath / dir + for { + _ <- ZIO + .whenZIO(IOResult.attempt(d.notExists)) { + IOResult.attempt { + d.createDirectories() + groupOwner.map(go => d.setGroup(go)) + } + } + .chainError(s"Error when creating directory '${d.pathAsString}' for historising inventories: ${}") + _ <- ZIO.whenZIO(IOResult.attempt(!d.isOwnerWritable)) { + Inconsistency( + s"Error, directory '${d.pathAsString}' must be a writable directory to allow inventory historisation" + ).fail + } + } yield () + }.unit + } +} + +/* + * An LDAP implementation for NodeFactStorage. + * It takes most of its code from old FullLdapInventory/NodeInfoService + */ + +object LdapNodeFactStorage { + + /* + * We have 3 main places where facts can be stored: + * - in ou=Nodes,cn=rudder-configuration + * for settings, properties, state, etc + * - in ou=[Nodes, Machines],ou=[Accepted|Pengin] Inventories,ou=Inventories,cn=rudder-configuration + * (and sub entries) for os, ram, swap, machine type, CPU, etc + * The mapping is very complicated, and we just want to reuse inventory repository for that + * - in ou=Software, ou=Inventories,cn=rudder-configuration + * For software. + * + * So we need for each element of SelectFact to know what part of entries it need + */ + + def needsSoftware(selectFacts: SelectFacts): Boolean = { + selectFacts.software.mode == SelectMode.Retrieve + } + + def inventoryFacts(s: SelectFacts) = { + List( + s.swap, + s.accounts, + s.bios, + s.controllers, + s.environmentVariables, + s.fileSystems, + s.inputs, + s.localGroups, + s.localUsers, + s.logicalVolumes, + s.memories, + s.networks, + s.physicalVolumes, + s.ports, + s.processes, + s.processors, + s.slots, + s.softwareUpdate, + s.sounds, + s.storages, + s.videos, + s.vms + ) + } + + def needsInventory(selectFacts: SelectFacts): Boolean = { + inventoryFacts(selectFacts).exists(_.mode == SelectMode.Retrieve) + } + +} + +class LdapNodeFactStorage( + ldap: LDAPConnectionProvider[RwLDAPConnection], + nodeDit: NodeDit, + inventoryDitService: InventoryDitService, + nodeMapper: LDAPEntityMapper, + inventoryMapper: InventoryMapper, + nodeLibMutex: ScalaReadWriteLock, // that's a scala-level mutex to have some kind of consistency with LDAP + fullInventoryRepository: FullInventoryRepositoryImpl, + softwareGet: ReadOnlySoftwareDAO, + softwareSave: SoftwareDNFinderAction, + uuidGen: StringUuidGenerator +) extends NodeFactStorage { + + // for save, we always store the full node. Since we don't know how to restrict attributes to save + // for the inventory part (node part is always complete), we do retrieve then merge, avoiding software if possible + override def save(nodeFact: NodeFact)(implicit attrs: SelectFacts): IOResult[StorageChangeEventSave] = { + nodeLibMutex.writeLock(for { + con <- ldap + _ <- con + .save(nodeMapper.nodeToEntry(nodeFact.toNode)) + .chainError(s"Cannot save node with id '${nodeFact.id.value}' in LDAP") + mergedSoft <- if (LdapNodeFactStorage.needsSoftware(attrs)) { + softwareSave.tryWith(nodeFact.software.map(_.toSoftware).toSet).map(Some(_)) + } else None.succeed + newSoftIds <- mergedSoft match { + case None => None.succeed + case Some(merged) => + val newSoft = merged.newSoftware.toSeq.map(_.modify(_.id.value).setTo(uuidGen.newUuid)) + for { + _ <- ZIO.foreach(newSoft)(x => con.save(inventoryMapper.entryFromSoftware(x))) + } yield Some(newSoft.map(_.id) ++ merged.alreadySavedSoftware.map(_.id)) + } + optOld <- getNodeFact(nodeFact.id, nodeFact.rudderSettings.status, SelectFacts.noSoftware).map( + _.map { nf => + // add back software if needed + val optSoft = if (LdapNodeFactStorage.needsSoftware(attrs)) { + mergedSoft.map(m => Chunk.fromIterable(m.alreadySavedSoftware).flatMap(s => SoftwareFact.fromSoftware(s))) + } else { + None + } + nf.modify(_.software).setToIfDefined(optSoft) + } + ) + inv = SelectFacts + .merge(nodeFact, optOld)(attrs) + .toFullInventory + .modify(_.node.softwareIds) + .setToIfDefined(newSoftIds) + _ <- fullInventoryRepository.save(inv) + } yield { + optOld match { + case Some(old) => + if (NodeFact.same(old, nodeFact)) StorageChangeEventSave.Noop(nodeFact.id, attrs) + else StorageChangeEventSave.Updated(old, nodeFact, attrs) + case None => + StorageChangeEventSave.Created(nodeFact, attrs) + } + }) + } + + override def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[StorageChangeEventStatus] = { + for { + s <- fullInventoryRepository.getStatus(nodeId).notOptional(s"Error: node with ID '${nodeId.value}' was not found'") + _ <- if (s == status) ZIO.unit + else if (s == RemovedInventory) { + Inconsistency( + s"Error: node with ID '${nodeId.value}' is deleted, can not change its status to '${status.name}''" + ).fail + } else fullInventoryRepository.move(nodeId, s, status) + } yield StorageChangeEventStatus.Done(nodeId) + } + + override def delete(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[StorageChangeEventDelete] = { + def cleanLdapData(): UIO[Boolean] = { + val cleanNode = ( + for { + con <- ldap + d1 <- nodeLibMutex.writeLock(con.delete(nodeDit.NODES.NODE.dn(nodeId.value))) + } yield d1.nonEmpty + ).catchAll { err => + NodeLoggerPure.Delete.error( + s"Error when deleting node main information in LDAP, please try to call the delete API with " + + s"node ID parameter: ${nodeId.value} to correct it; Error: ${err.fullMsg}" + ) *> true.succeed // there was things in LDAP, they may have changed + } + + def cleanInventory(s: InventoryStatus): UIO[Boolean] = { + fullInventoryRepository.delete(nodeId, s).map(_.nonEmpty).catchAll { err => + NodeLoggerPure.Delete.error( + s"Error when deleting node inventory information in LDAP '${s.name}', please try to call the delete API with " + + s"node ID parameter: ${nodeId.value} to correct it; Error: ${err.fullMsg}" + ) *> true.succeed + } + } + + ZIO + .foreachPar(List(cleanNode, cleanInventory(PendingInventory), cleanInventory(AcceptedInventory)))(identity) + .map(_.exists(_ == true)) + } + + for { + // get information for change event + p <- getNodeFact(nodeId, PendingInventory, attrs) + a <- getNodeFact(nodeId, AcceptedInventory, attrs) + // in all case, delete everywhere + mod <- cleanLdapData() + } yield { + (p, a) match { + case (_, Some(x)) => + StorageChangeEventDelete.Deleted(x, attrs) + case (Some(x), None) => + StorageChangeEventDelete.Deleted(x, attrs) + case (None, None) => + if (mod) { + StorageChangeEventDelete.Noop(nodeId) + } else { + StorageChangeEventDelete.DeletedNoInfo(nodeId) + } + } + } + } + + /* + * Get node fact with trying to make the minimum data retieval from ldap (the granularity is coarse: we only check if + * we need full inventory or just node info, and software or not) + */ + private[nodes] def getNodeFact(nodeId: NodeId, status: InventoryStatus, attrs: SelectFacts): IOResult[Option[NodeFact]] = { + + def getNodeEntry(con: RwLDAPConnection, id: NodeId): IOResult[Option[LDAPEntry]] = { + con.get(nodeDit.NODES.NODE.dn(nodeId.value), NodeInfoService.nodeInfoAttributes: _*) + } + def getSoftware( + con: RwLDAPConnection, + ids: Seq[SoftwareUuid], + needSoftware: Boolean + ): IOResult[Seq[Software]] = { + if (needSoftware && ids.nonEmpty) { + softwareGet.getSoftware(ids) + } else Seq().succeed + } + def getFromFullInventory( + con: RwLDAPConnection, + nodeId: NodeId, + nodeEntry: LDAPEntry, + needSoftware: Boolean + ): IOResult[Option[NodeFact]] = { + for { + node <- nodeMapper.entryToNode(nodeEntry).toIO + optInvS <- fullInventoryRepository.getWithSoftware(nodeId, status, needSoftware) + softs <- getSoftware(con, optInvS.map(_._2).getOrElse(Seq()), needSoftware) + } yield { + optInvS.map { + case (inv, _) => + val info = NodeInfo( + node, + inv.node.main.hostname, + inv.machine.map(m => MachineInfo(m.id, m.machineType, m.systemSerialNumber, m.manufacturer)), + inv.node.main.osDetails, + inv.node.serverIps.toList, + inv.node.inventoryDate.getOrElse(DateTime.now), + inv.node.main.keyStatus, + inv.node.agents, + inv.node.main.policyServerId, + inv.node.main.rootUser, + inv.node.archDescription, + inv.node.ram, + inv.node.timezone + ) + NodeFact.fromCompat(info, Right(inv), softs) + } + } + } + + def getFromLdapInfo( + con: RwLDAPConnection, + nodeId: NodeId, + nodeEntry: LDAPEntry, + status: InventoryStatus, + needSoftware: Boolean + ): IOResult[Option[NodeFact]] = { + // mostly copied from com.normation.rudder.services.nodes.NodeInfoServiceCachedImpl # getBackendLdapNodeInfo + val ldapAttrs = (if (needSoftware) Seq(A_SOFTWARE_DN) else Seq()) ++ NodeInfoService.nodeInfoAttributes + + con.get(inventoryDitService.getDit(status).NODES.NODE.dn(nodeId.value), ldapAttrs: _*).flatMap { + case None => // end of game, no node here + None.succeed + case Some(inv) => + for { + optM <- inv(A_CONTAINER_DN) match { + case None => None.succeed + case Some(m) => con.get(new DN(m), ldapAttrs: _*) + } + info <- nodeMapper.convertEntriesToNodeInfos(nodeEntry, inv, optM) + soft <- getSoftware(con, fullInventoryRepository.getSoftwareUuids(inv), needSoftware) + } yield Some(NodeFact.fromCompat(info, Left(status), soft)) + } + } + + for { + t0 <- currentTimeMillis + _ <- + NodeLoggerPure.debug( + s"Getting node '${nodeId.value}' with inventory: ${SelectFacts + .retrieveInventory(attrs)}; software: ${attrs.software.mode == SelectMode.Retrieve}" + ) + con <- ldap + optNode <- getNodeEntry(con, nodeId) + res <- optNode match { + case None => None.succeed + case Some(nodeEntry) => + if (LdapNodeFactStorage.needsInventory(attrs)) { + getFromFullInventory(con, nodeId, nodeEntry, needsSoftware(attrs)) + } else { + getFromLdapInfo(con, nodeId, nodeEntry, status, needsSoftware(attrs)) + } + } + t1 <- currentTimeMillis + _ <- NodeLoggerPure.Metrics.debug(s"node '${nodeId.value}' retrieved in ${t1 - t0} ms") + _ <- NodeLoggerPure.Details.trace(s"node '${nodeId.value}' fetched details: ${res}") + } yield res + } + + override def getPending(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + getNodeFact(nodeId, PendingInventory, attrs) + } + + override def getAccepted(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + getNodeFact(nodeId, AcceptedInventory, attrs) + } + + private[nodes] def getNodeIds(baseDN: DN): IOResult[Seq[NodeId]] = { + for { + con <- ldap + nodeEntries <- con.search(baseDN, One, ALL, "1.1") + } yield { + nodeEntries.flatMap(e => e(A_NODE_UUID).map(NodeId(_))) + } + } + + private[nodes] def getAllNodeFacts(baseDN: DN, getOne: NodeId => IOResult[Option[NodeFact]]): IOStream[NodeFact] = { + ZStream + .fromZIO(getNodeIds(baseDN)) + .tap(ids => NodeLoggerPure.Metrics.debug(s"Getting ${ids.size} nodes}")) + .flatMap(ids => ZStream.fromIterable(ids)) + .mapZIO(getOne) + .flatMap(ZStream.fromIterable(_)) + } + + override def getAllPending()(implicit attrs: SelectFacts): IOStream[NodeFact] = { + getAllNodeFacts(inventoryDitService.getDit(PendingInventory).NODES.dn, getPending(_)) + } + + override def getAllAccepted()(implicit attrs: SelectFacts): IOStream[NodeFact] = { + getAllNodeFacts(nodeDit.NODES.dn, getAccepted) + } +} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/inventory/PostCommits.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/inventory/PostCommits.scala index 9621c7579fc..3aab8a799f6 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/inventory/PostCommits.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/inventory/PostCommits.scala @@ -115,8 +115,8 @@ class PostCommitInventoryHooks[A]( } class FactRepositoryPostCommit[A]( - nodeFactStorage: NodeFactStorage, - nodeInfoService: NodeInfoService + nodeFactsRepository: NodeFactStorage, + nodeInfoService: NodeInfoService ) extends PostCommit[A] { override def name: String = "commit node in fact-repository" @@ -140,7 +140,7 @@ class FactRepositoryPostCommit[A]( ZIO.unit // does nothing case Some(nodeInfo) => - nodeFactStorage.save( + nodeFactsRepository.save( NodeFact.fromCompat( nodeInfo, Right(FullInventory(inventory.node, Some(inventory.machine))), diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/EventLogRepository.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/EventLogRepository.scala index 6f56df1a47e..82d3c63b32c 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/EventLogRepository.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/EventLogRepository.scala @@ -71,6 +71,7 @@ import com.normation.rudder.domain.workflows.ChangeRequestId import com.normation.rudder.domain.workflows.WorkflowStepChange import com.normation.rudder.services.eventlog.EventLogFactory import doobie._ +import org.joda.time.DateTime trait EventLogRepository { def eventLogFactory: EventLogFactory @@ -396,14 +397,16 @@ trait EventLogRepository { modId: ModificationId, principal: EventActor, modifyDiff: ModifyNodeDiff, - reason: Option[String] + reason: Option[String], + eventDate: DateTime ) = { saveEventLog( modId, eventLogFactory.getModifyNodeFromDiff( principal = principal, modifyDiff = modifyDiff, - reason = reason + reason = reason, + creationDate = eventDate ) ) } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPEntityMapper.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPEntityMapper.scala index 2ea1b8a91b6..2669e7140b9 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPEntityMapper.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPEntityMapper.scala @@ -259,7 +259,9 @@ class LDAPEntityMapper( ) .fail } - nodeInfo <- inventoryEntriesToNodeInfos(node, inventoryEntry, machineEntry) + nodeInfo <- inventoryEntriesToNodeInfos(node, inventoryEntry, machineEntry).chainError( + s"Error when getting '${node.id.value}' from LDAP" + ) } yield { nodeInfo } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPNodeRepository.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPNodeRepository.scala index 1337daaeaed..81bf284f350 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPNodeRepository.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/repository/ldap/LDAPNodeRepository.scala @@ -57,6 +57,7 @@ import com.normation.rudder.repository.WoNodeRepository import com.normation.rudder.services.reports.CacheComplianceQueueAction import com.normation.rudder.services.reports.CacheExpectedReportAction import com.normation.rudder.services.reports.InvalidateCache +import org.joda.time.DateTime import zio._ import zio.syntax._ @@ -97,7 +98,7 @@ class WoLDAPNodeRepository( case LDIFNoopChangeRecord(_) => ZIO.unit case _ => val diff = ModifyNodeDiff(oldNode, node) - actionLogger.saveModifyNode(modId, actor, diff, reason) + actionLogger.saveModifyNode(modId, actor, diff, reason, DateTime.now()) } } yield { node @@ -164,7 +165,7 @@ class WoLDAPNodeRepository( case _ => val diff = ModifyNodeDiff.keyInfo(nodeId, agentsInfo._1.map(_.securityToken), agentsInfo._2, agentKey, agentKeyStatus) - actionLogger.saveModifyNode(modId, actor, diff, reason) + actionLogger.saveModifyNode(modId, actor, diff, reason, DateTime.now()) } } yield ()) } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/healthcheck/HealthcheckService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/healthcheck/HealthcheckService.scala index b7c3b7291c3..beb57f16bfa 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/healthcheck/HealthcheckService.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/healthcheck/HealthcheckService.scala @@ -152,8 +152,8 @@ final class CheckFileDescriptorLimit(val nodeInfoService: NodeInfoService) exten ).fail } limit <- IOResult.attempt(res.stdout.trim.toLong) + nodeCount <- nodeInfoService.getNumberOfManagedNodes } yield { - val nodeCount = nodeInfoService.getNumberOfManagedNodes val reasonableMaxLimit = 64_000 val approximatedMinLimit = 100 * nodeCount // 64000 seems to be more than enough even with hundreds of nodes see https://issues.rudder.io/issues/22430 diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NewNodeManager.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NewNodeManager.scala index 05f91f7d29c..8f500e6ca4a 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NewNodeManager.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NewNodeManager.scala @@ -37,36 +37,14 @@ package com.normation.rudder.services.servers -import com.normation.box._ +import com.normation.errors.BoxToIO +import com.normation.errors.Inconsistency import com.normation.errors.IOResult -import com.normation.eventlog.EventActor -import com.normation.eventlog.ModificationId import com.normation.inventory.domain.AcceptedInventory -import com.normation.inventory.domain.FullInventory -import com.normation.inventory.domain.InventoryStatus import com.normation.inventory.domain.NodeId -import com.normation.inventory.domain.PendingInventory -import com.normation.inventory.domain.RemovedInventory -import com.normation.inventory.ldap.core.InventoryDit import com.normation.inventory.ldap.core.LDAPConstants._ -import com.normation.inventory.ldap.core.LDAPFullInventoryRepository -import com.normation.inventory.services.core.FullInventoryRepository -import com.normation.inventory.services.core.ReadOnlyFullInventoryRepository -import com.normation.ldap.sdk.BuildFilter.ALL -import com.normation.ldap.sdk.LDAPConnectionProvider -import com.normation.ldap.sdk.RoLDAPConnection -import com.normation.ldap.sdk.RwLDAPConnection -import com.normation.rudder.batch.UpdateDynamicGroups import com.normation.rudder.domain.Constants -import com.normation.rudder.domain.NodeDit -import com.normation.rudder.domain.eventlog.AcceptNodeEventLog -import com.normation.rudder.domain.eventlog.InventoryLogDetails -import com.normation.rudder.domain.eventlog.RefuseNodeEventLog -import com.normation.rudder.domain.logger.NodeLogger import com.normation.rudder.domain.logger.NodeLoggerPure -import com.normation.rudder.domain.nodes.Node -import com.normation.rudder.domain.nodes.NodeState -import com.normation.rudder.domain.policies.PolicyMode import com.normation.rudder.domain.queries.CriterionLine import com.normation.rudder.domain.queries.DitQueryData import com.normation.rudder.domain.queries.Equals @@ -74,37 +52,20 @@ import com.normation.rudder.domain.queries.NodeReturnType import com.normation.rudder.domain.queries.Or import com.normation.rudder.domain.queries.Query import com.normation.rudder.domain.queries.ResultTransformation -import com.normation.rudder.domain.servers.Srv -import com.normation.rudder.facts.nodes.NodeFact -import com.normation.rudder.facts.nodes.NodeFactStorage +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.NodeFactRepository +import com.normation.rudder.facts.nodes.SelectNodeStatus import com.normation.rudder.hooks.HookEnvPairs import com.normation.rudder.hooks.HooksLogger import com.normation.rudder.hooks.RunHooks -import com.normation.rudder.reports.ReportingConfiguration -import com.normation.rudder.repository.CachedRepository -import com.normation.rudder.repository.EventLogRepository import com.normation.rudder.repository.RoNodeGroupRepository import com.normation.rudder.repository.WoNodeGroupRepository -import com.normation.rudder.repository.ldap.LDAPEntityMapper -import com.normation.rudder.services.nodes.NodeInfoService -import com.normation.rudder.services.nodes.history.HistoryLogRepository -import com.normation.rudder.services.nodes.history.impl.FactLog -import com.normation.rudder.services.nodes.history.impl.FactLogData import com.normation.rudder.services.queries.QueryProcessor -import com.normation.rudder.services.reports.CacheComplianceQueueAction -import com.normation.rudder.services.reports.CacheComplianceQueueAction.ExpectedReportAction -import com.normation.rudder.services.reports.CacheExpectedReportAction -import com.normation.rudder.services.reports.CacheExpectedReportAction.InsertNodeInCache -import com.normation.rudder.services.reports.InvalidateCache -import com.normation.utils.Control.sequence +import com.normation.zio._ import com.softwaremill.quicklens._ -import net.liftweb.common.Box -import net.liftweb.common.Empty -import net.liftweb.common.EmptyBox -import net.liftweb.common.Failure -import net.liftweb.common.Full -import org.joda.time.DateTime import zio.{System => _, _} +import zio.stream.ZSink import zio.syntax._ /** @@ -113,7 +74,7 @@ import zio.syntax._ trait NewNodePostAcceptHooks { def name: String - def run(nodeId: NodeId): Unit + def run(nodeId: NodeId): IOResult[Unit] } @@ -124,9 +85,9 @@ trait NewNodeManagerHooks { * their result. They are responsible to log * their errors. */ - def afterNodeAcceptedAsync(nodeId: NodeId): Unit + def afterNodeAcceptedAsync(nodeId: NodeId): IOResult[Unit] - def appendPostAcceptCodeHook(hook: NewNodePostAcceptHooks): Unit + def appendPostAcceptCodeHook(hook: NewNodePostAcceptHooks): IOResult[Unit] } /** @@ -137,31 +98,31 @@ trait NewNodeManager { /** * List all pending node */ - def listNewNodes: Box[Seq[Srv]] + def listNewNodes: IOResult[Seq[CoreNodeFact]] /** * Accept a pending node in Rudder */ - def accept(id: NodeId, modId: ModificationId, actor: EventActor): Box[FullInventory] + def accept(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] /** * refuse node * @param ids : the node id * @return : the srv representations of the refused node */ - def refuse(id: NodeId, modId: ModificationId, actor: EventActor): Box[Srv] + def refuse(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] /** * Accept a list of pending nodes in Rudder */ - def accept(ids: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[FullInventory]] + def acceptAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] /** * refuse a list of pending nodes * @param ids : node ids * @return : the srv representations of the refused nodes */ - def refuse(id: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[Srv]] + def refuseAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] } @@ -173,38 +134,36 @@ trait NewNodeManager { class PostNodeAcceptanceHookScripts( HOOKS_D: String, HOOKS_IGNORE_SUFFIXES: List[String], - nodeInfoService: NodeInfoService + nodeFactRepository: NodeFactRepository ) extends NewNodePostAcceptHooks { override def name: String = "new-node-post-accept-hooks" - override def run(nodeId: NodeId): Unit = { + override def run(nodeId: NodeId): IOResult[Unit] = { val systemEnv = { import scala.jdk.CollectionConverters._ HookEnvPairs.build(System.getenv.asScala.toSeq: _*) } - val postHooksTime = System.currentTimeMillis HooksLogger.debug(s"Executing post-node-acceptance hooks for node with id '${nodeId.value}'") for { - optNodeInfo <- nodeInfoService.getNodeInfo(nodeId).toBox - nodeInfo <- optNodeInfo match { - case None => - Failure( + postHooksTime0 <- currentTimeMillis + nodeFact <- nodeFactRepository + .get(nodeId) + .notOptional( s"Just accepted node with id '${nodeId.value}' was not found - perhaps a bug?" + " Please report with /var/log/rudder/webapp/DATE_OF_DAY.stdout.log file attached" ) - case Some(x) => Full(x) - } - hookEnv = HookEnvPairs.build( - ("RUDDER_NODE_ID", nodeInfo.id.value), - ("RUDDER_NODE_HOSTNAME", nodeInfo.hostname), - ("RUDDER_NODE_POLICY_SERVER_ID", nodeInfo.policyServerId.value), - ("RUDDER_AGENT_TYPE", nodeInfo.agentsName.headOption.map(_.agentType.id).getOrElse("")) - ) - postHooks <- RunHooks.getHooks(HOOKS_D + "/node-post-acceptance", HOOKS_IGNORE_SUFFIXES) - runPostHook = RunHooks.syncRun(postHooks, hookEnv, systemEnv) - timePostHooks = (System.currentTimeMillis - postHooksTime) - _ = NodeLogger.PendingNode.debug(s"Node-post-acceptance scripts hooks ran in ${timePostHooks} ms") + hookEnv = HookEnvPairs.build( + ("RUDDER_NODE_ID", nodeFact.id.value), + ("RUDDER_NODE_HOSTNAME", nodeFact.fqdn), + ("RUDDER_NODE_POLICY_SERVER_ID", nodeFact.rudderSettings.policyServerId.value), + ("RUDDER_AGENT_TYPE", nodeFact.rudderAgent.agentType.id) + ) + postHooks <- RunHooks.getHooksPure(HOOKS_D + "/node-post-acceptance", HOOKS_IGNORE_SUFFIXES) + runPostHook <- RunHooks.asyncRun(postHooks, hookEnv, systemEnv) + postHooksTime1 <- currentTimeMillis + timePostHooks = (postHooksTime1 - postHooksTime0) + _ <- NodeLoggerPure.PendingNode.debug(s"Node-post-acceptance scripts hooks ran in ${timePostHooks} ms") } yield { () } @@ -212,22 +171,26 @@ class PostNodeAcceptanceHookScripts( } class NewNodeManagerHooksImpl( - nodeInfoService: NodeInfoService, + nodeFactRepository: NodeFactRepository, HOOKS_D: String, HOOKS_IGNORE_SUFFIXES: List[String] ) extends NewNodeManagerHooks { - private[this] val codeHooks = collection.mutable.Buffer[NewNodePostAcceptHooks]() - - // by default, add the script hooks - appendPostAcceptCodeHook(new PostNodeAcceptanceHookScripts(HOOKS_D, HOOKS_IGNORE_SUFFIXES, nodeInfoService)) + val codeHooks = Ref + .make( + Chunk[NewNodePostAcceptHooks]( + // by default, add the script hooks + new PostNodeAcceptanceHookScripts(HOOKS_D, HOOKS_IGNORE_SUFFIXES, nodeFactRepository) + ) + ) + .runNow - override def afterNodeAcceptedAsync(nodeId: NodeId): Unit = { - codeHooks.foreach(_.run(nodeId)) + override def afterNodeAcceptedAsync(nodeId: NodeId): IOResult[Unit] = { + codeHooks.get.flatMap(hooks => ZIO.foreach(hooks)(h => IOResult.attempt(h.run(nodeId)))).unit } - def appendPostAcceptCodeHook(hook: NewNodePostAcceptHooks): Unit = { - this.codeHooks.append(hook) + def appendPostAcceptCodeHook(hook: NewNodePostAcceptHooks): IOResult[Unit] = { + this.codeHooks.update(_.appended(hook)) } } @@ -244,600 +207,150 @@ class NewNodeManagerImpl[A]( listNodes: ListNewNode ) extends NewNodeManager { - override def listNewNodes: Box[Seq[Srv]] = { + override def listNewNodes: IOResult[Seq[CoreNodeFact]] = { listNodes.listNewNodes } - override def accept(id: NodeId, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - composedNewNodeManager.accept(id, modId, actor) + override def accept(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] = { + composedNewNodeManager.accept(id) } - override def refuse(id: NodeId, modId: ModificationId, actor: EventActor): Box[Srv] = { - composedNewNodeManager.refuse(id, modId, actor) + override def refuse(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] = { + composedNewNodeManager.refuse(id) } - override def accept(ids: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[FullInventory]] = { - composedNewNodeManager.accept(ids, modId, actor, actorIp) + override def acceptAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] = { + composedNewNodeManager.acceptAll(ids) } - override def refuse(id: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[Srv]] = { - composedNewNodeManager.refuse(id, modId, actor, actorIp) + override def refuseAll(id: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] = { + composedNewNodeManager.refuseAll(id) } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// trait ListNewNode { - def listNewNodes: Box[Seq[Srv]] + def listNewNodes: IOResult[Seq[CoreNodeFact]] } -class LdapListNewNode( - ldap: LDAPConnectionProvider[RoLDAPConnection], - serverSummaryService: NodeSummaryServiceImpl, - pendingNodesDit: InventoryDit -) extends ListNewNode { - override def listNewNodes: Box[Seq[Srv]] = { - for { - con <- ldap - seq <- con.searchOne(pendingNodesDit.NODES.dn, ALL, Srv.ldapAttributes: _*) - srvs <- ZIO.foreach(seq) { e => - serverSummaryService - .makeSrv(e) - .foldZIO( - err => - IOResult.attempt( - NodeLogger.PendingNode - .debug(s"Error when mapping a pending node entry '${e.dn}' to a node object. Error was: ${err.fullMsg}") - ) *> - None.succeed, - srv => Some(srv).succeed - ) - } - } yield { - srvs.flatten - } - }.toBox +class FactListNewNodes(backend: NodeFactRepository) extends ListNewNode { + override def listNewNodes: IOResult[Seq[CoreNodeFact]] = { + backend.getAll()(SelectNodeStatus.Pending).run(ZSink.collectAll) + } } trait UnitRefuseInventory { def name: String - def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] + def refuseOne(cnf: CoreNodeFact)(implicit cc: ChangeContext): IOResult[Unit] } -trait UnitAcceptInventory { +/* + * Checks running before actually accepting the inventory. + * If one is in error, acceptation of node fails. + */ +trait UnitCheckAcceptInventory { /** * A name to describe the role of that acceptor */ def name: String - /** - * The status of the inventory before that action - */ - def fromInventoryStatus: InventoryStatus - - /** - * The status of the inventory after that action - */ - def toInventoryStatus: InventoryStatus - - /** - * What to do ? - */ - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] - /** * An action to execute before the whole batch */ - def preAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] - - /** - * An action to execute after the whole batch - */ - def postAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] - - /** - * Execute a rollback for the given inventory - */ - def rollback(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Unit - - def rollbackErrorMsg(e: EmptyBox, id: String): String = { - val msg = "Error when rollbacking server node id %s in process '%s', you should delete it by hand. ".format(id, this.name) - - e match { - case Empty => msg + "No error message was left." - case f: Failure => msg + "Error messages: " + f.messageChain - } - } - + def preAccept(cnf: CoreNodeFact)(implicit cc: ChangeContext): IOResult[Unit] } class ComposedNewNodeManager[A]( - smRepo: FullInventoryRepository[A], - serverSummaryService: NodeSummaryService, - unitAcceptors: Seq[UnitAcceptInventory], - unitRefusors: Seq[UnitRefuseInventory], - historyLogRepository: HistoryLogRepository[NodeId, DateTime, FactLogData, FactLog], - eventLogRepository: EventLogRepository, - updateDynamicGroups: UpdateDynamicGroups, - cachedNodeConfigurationService: InvalidateCache[CacheExpectedReportAction], - cachedReportingService: InvalidateCache[CacheComplianceQueueAction], - cacheToClear: List[CachedRepository], - hooksRunner: NewNodeManagerHooks + nodeFactRepo: NodeFactRepository, + unitAcceptors: Seq[UnitCheckAcceptInventory], + unitRefusors: Seq[UnitRefuseInventory], + hooksRunner: NewNodeManagerHooks ) { //////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////// Refuse ////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - /** - * Retrieve the last inventory for the selected server - */ - def retrieveLastVersions(nodeId: NodeId): Option[DateTime] = { - historyLogRepository.versions(nodeId).toBox.flatMap(_.headOption) - } - /** * Refuse one server */ - private[this] def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] = { - var errors = Option.empty[Failure] - unitRefusors.foreach { refusor => - try { - refusor.refuseOne(srv, modId, actor) match { - case e: EmptyBox => - val msg = "Error refusing %s: step %s".format(srv.id, refusor.name) - errors match { - case None => errors = Some(e ?~! msg) - case Some(old) => errors = Some(Failure(msg, Empty, Full(old))) - } - case Full(x) => - NodeLogger.PendingNode.trace("Refuse %s: step %s ok".format(srv.id, refusor.name)) - } - } catch { - case e: Exception => - val msg = "Error when trying to executre the step %s, when refusing inventory %".format(refusor.name, srv.id) - errors match { - case None => errors = Some(Failure(msg, Full(e), Empty)) - case Some(old) => errors = Some(Failure(msg, Full(e), Full(old))) - } - } - } - errors match { - case Some(f) => f - case None => Full(srv) - } + private[this] def refuseOne(cnf: CoreNodeFact)(implicit cc: ChangeContext): IOResult[Unit] = { + ZIO + .foreach(unitRefusors)(r => { + r.refuseOne(cnf) + .tapBoth( + err => NodeLoggerPure.PendingNode.error(s"Error when refusing node '${cnf.id.value}': ${err.fullMsg}"), + _ => NodeLoggerPure.PendingNode.debug(s"Refusing node '${cnf.id.value}' step '${r.name}': OK") + ) + }) + .unit } - def refuse(id: NodeId, modId: ModificationId, actor: EventActor): Box[Srv] = { + def refuse(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] = { for { - srvs <- serverSummaryService.find(PendingInventory, id) - srv <- - if (srvs.size == 1) Full(srvs(0)) else Failure("Found several pending nodes matching id %s: %s".format(id.value, srvs)) - refuse <- refuseOne(srv, modId, actor) - } yield { - refuse - } + cnf <- + nodeFactRepo.get(id)(SelectNodeStatus.Pending).notOptional(s"Node with id '${id.value}' was not found in pending nodes") + _ <- refuseOne(cnf) + _ <- nodeFactRepo.delete(id) + } yield cnf } - def refuse(ids: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[Srv]] = { - - // Best effort it, starting with an empty result - val start: Box[Seq[Srv]] = Full(Seq()) - ids.foldLeft(start) { - case (result, id) => - // Refuse the node and get the result - val refusal = for { - srvs <- serverSummaryService.find(PendingInventory, id) - // I don't think this is possible, either we have one, either we don't have any - srv <- if (srvs.size == 1) { - Full(srvs.head) - } else { - Failure(s"Found ${srvs.size} pending nodes matching id ${id.value}: ${srvs.mkString(", ")}") - } - refuse <- refuseOne(srv, modId, actor) - } yield { - - // Make an event log of the refusale - retrieveLastVersions(srv.id) match { - case Some(x) => - val inventoryDetails = InventoryLogDetails( - nodeId = srv.id, - inventoryVersion = x, - hostname = srv.hostname, - fullOsName = srv.osFullName, - actorIp = actorIp - ) - val entry = RefuseNodeEventLog.fromInventoryLogDetails( - principal = actor, - inventoryDetails = inventoryDetails - ) - - eventLogRepository.saveEventLog(modId, entry).toBox match { - case Full(_) => - NodeLogger.PendingNode.debug(s"Successfully refused node '${id.value}'") - case _ => - NodeLogger.PendingNode.warn(s"Node '${id.value}' refused, but the action couldn't be logged") - } - case None => - NodeLogger.PendingNode.warn(s"Node '${id}' refused, but couldn't find it's inventory") - } - refuse - } - - // accumulate result - (refusal, result) match { - // Node deleted, and result ok, accumulate success - case (Full(srv), Full(seq)) => - Full(srv +: seq) - // Node deleted, but there was an error before, keep error - case (Full(_), error) => - error - // An error while deleting, and there was none, create a new error - case (eb: EmptyBox, Full(_)) => - eb - // A new error while deleting, and there was already one, accumulate error - case (eb: EmptyBox, result: EmptyBox) => - // That message will not be used, since we have 'Failure' and no 'Empty' - val error = eb ?~ "An error occured while refusing a Node" - result ?~! error.messageChain - } - } + def refuseAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] = { + ZIO.foreachPar(ids)(id => refuse(id)) } //////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////// Accept ////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - private[this] def rollback( - unitAcceptors: Seq[UnitAcceptInventory], - rollbackOn: Seq[FullInventory], - modId: ModificationId, - actor: EventActor - ): Unit = { - NodeLogger.PendingNode.debug( - "\n*****************************************************\nRollbacking\n*****************************************************" - ) - - for { - toRollback <- unitAcceptors.reverse - } { - NodeLogger.PendingNode.debug( - "Rollbacking %s for %s".format(toRollback.name, rollbackOn.map(_.node.main.id.value).mkString("; ")) - ) - try { - toRollback.rollback(rollbackOn, modId, actor) - } catch { - case e: Exception => NodeLogger.PendingNode.error("Error when rollbacking acceptor process '%s'".format(toRollback.name)) - } - } - } - - def accept(id: NodeId, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - accept(List(id), modId, actor, "rudder-ui").flatMap { - case h +: _ => Full(h) - case _ => - Failure( - s"Error when trying to accept node with ID: '${id.value}'. The acceptation method returned " + - s"an empty result, it is likely a bug, please report it." - ) - } - } - - def accept(ids: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[FullInventory]] = { - - // Get inventory from a nodeId - def getInventory(nodeId: NodeId) = { - smRepo.get(nodeId, PendingInventory).toBox match { - case Full(x) => Full(x) - case eb: EmptyBox => - val msg = s"Can not accept not found inventory with id '${nodeId.value}'" - eb ?~! msg - } - } + def accept(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] = { // validate pre acceptance for a Node, if an error occurs, stop everything on that node. - def passPreAccept(inventory: FullInventory) = { - sequence(unitAcceptors)(unitAcceptor => { - unitAcceptor.preAccept(Seq(inventory), modId, actor) match { - case Full(seq) => // ok, cool - NodeLogger.PendingNode.debug(s"Pre acceptance phase: '${unitAcceptor.name}' OK") - Full(seq) - case eb: EmptyBox => // on an error here, stop - val id = inventory.node.main.id.value - val msg = s"Error when trying to add node with id '${id}'" - val e = eb ?~! msg - NodeLogger.PendingNode.error(e.messageChain) - NodeLogger.PendingNode.debug( - s"Node with id '${id}' was refused during 'pre-accepting' step of phase '${unitAcceptor.name}'" - ) - e - } - }) - } - - // accept one node - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - (sequence(unitAcceptors) { unitAcceptor => - try { - unitAcceptor.acceptOne(sm, modId, actor) ?~! "Error when executing accept node process named %s".format( - unitAcceptor.name - ) - } catch { - case e: Exception => { - NodeLogger.PendingNode.debug("Exception in unit acceptor %s".format(unitAcceptor.name), e) - Failure(e.getMessage, Full(e), Empty) - } - } - }) match { - case Full(seq) => Full(sm) - case e: EmptyBox => // rollback that one - NodeLogger.PendingNode.error( - (e ?~! "Error when trying to accept node %s. Rollbacking.".format(sm.node.main.id.value)).messageChain + def passPreAccept(nodeFact: CoreNodeFact) = { + ZIO.foreachDiscard(unitAcceptors) { a => + a.preAccept(nodeFact) + .tapBoth( + err => + NodeLoggerPure.PendingNode.debug( + s"Node with id '${nodeFact.id.value}' was refused during 'pre-accepting' step of phase '${a.name}'" + ) *> + NodeLoggerPure.PendingNode + .error(s"Error when trying to accept node with id '${nodeFact.id.value}': ${err.fullMsg}"), + _ => NodeLoggerPure.PendingNode.debug(s"Pre acceptance phase: '${a.name}' OK for node ${nodeFact.id.value}") ) - rollback(unitAcceptors, Seq(sm), modId, actor) - e } } - // validate post acceptance for a Node, if an error occurs, Rollback the node acceptance - def passPostAccept(inventory: FullInventory) = { - sequence(unitAcceptors)(unitAcceptor => { - unitAcceptor.postAccept(Seq(inventory), modId, actor) match { - case Full(seq) => // ok, cool - NodeLogger.PendingNode.debug(s"Post acceptance phase: '${unitAcceptor.name}' OK") - Full(seq) - case eb: EmptyBox => // on an error here, rollback - val msg = s"Error when trying to execute post-accepting for phase '${unitAcceptor.name}. Rollback." - val e = eb ?~! msg - NodeLogger.PendingNode.error(e.messageChain) - rollback(unitAcceptors, Seq(inventory), modId, actor) - e - } - }) - } - - // Get all acceptance, we will not accumulate errors in that pass, so we can start a promise generation - val acceptanceResults = ids.map(id => { - for { - // Get inventory og the node - inventory <- getInventory(id).flatMap { - case None => Failure(s"Missing inventory for node with ID: '${id.value}'") - case Some(i) => Full(i) - } - // Pre accept it - preAccept <- passPreAccept(inventory) - // Accept it - acceptationResults <- acceptOne(inventory, modId, actor) ?~! s"Error when trying to accept node ${id.value}" - _ = NodeLogger.PendingNode.debug(s"Unit acceptors ok for '${id.value}'") - // Post accept it - postAccept <- passPostAccept(inventory) - } yield { - - // Make an event log for acceptance - retrieveLastVersions(id) match { - case Some(x) => - val inventoryDetails = InventoryLogDetails( - nodeId = id, - inventoryVersion = x, - hostname = inventory.node.main.hostname, - fullOsName = inventory.node.main.osDetails.fullName, - actorIp = actorIp - ) - val entry = AcceptNodeEventLog.fromInventoryLogDetails( - principal = actor, - inventoryDetails = inventoryDetails - ) - - eventLogRepository.saveEventLog(modId, entry).toBox match { - case Full(_) => - NodeLogger.info(s"New node accepted and managed by Rudder: ${id.value}") - case _ => - NodeLogger.PendingNode.warn(s"Node '${id.value}' accepted, but the action couldn't be logged") - } - - case None => - NodeLogger.PendingNode.warn(s"Node '${id.value}' accepted, but couldn't find it's inventory") - } - - // Update hooks for the node - hooksRunner.afterNodeAcceptedAsync(id) - // ping the NodeConfiguration Cache and NodeCompliance Cache about this new node - - for { - _ <- cachedNodeConfigurationService - .invalidateWithAction(Seq((id, InsertNodeInCache(id)))) - .toBox ?~! s"Error when adding node ${id.value} to node configuration cache" - _ <- cachedReportingService - .invalidateWithAction(Seq((id, ExpectedReportAction(InsertNodeInCache(id))))) - .toBox ?~! s"Error when adding node ${id.value} to compliance cache" - _ <- ZIO.foreach(cacheToClear)(c => IOResult.attempt(c.clearCache())).toBox - } yield { - () - } - acceptationResults - } - }) - - // If one node succeed, then update policies - if (acceptanceResults.exists { case Full(_) => true; case _ => false }) { - updateDynamicGroups.startManualUpdate - } - - // Transform the sequence of box into a boxed result, best effort it! - acceptanceResults.foldRight(Full(Seq()): Box[Seq[FullInventory]]) { - // Node accepted, and result ok, accumulate success - case (Full(inv), Full(seq)) => - Full(inv +: seq) - // Node accepted, but there was an error before, keep error - case (Full(_), error) => - error - // An error while accepting, and there was none, create a new error - case (eb: EmptyBox, Full(_)) => - eb - // A new error while accepting, and there was already one, accumulate error - case (eb: EmptyBox, result: EmptyBox) => - // That message will not be used, since we have 'Failure' and no 'Empty' - val error = eb ?~ "An error occured while refusing a Node" - result ?~! error.messageChain - } - } - -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * Unit acceptor for the inventory part. - * Essentially: move FullInventory information - * where they belongs. - * - */ -class AcceptInventory( - override val name: String, - pendingNodesDit: InventoryDit, - acceptedNodesDit: InventoryDit, - smRepo: LDAPFullInventoryRepository -) extends UnitAcceptInventory with UnitRefuseInventory { - - override def preAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - - override def postAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - - override val fromInventoryStatus = PendingInventory - - override val toInventoryStatus = AcceptedInventory - - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - - smRepo.move(sm.node.main.id, fromInventoryStatus, toInventoryStatus).toBox.map(_ => sm) - } - - def rollback(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Unit = { - sms.foreach { sm => - // rollback from accepted - (for { - result <- smRepo.move(sm.node.main.id, toInventoryStatus, fromInventoryStatus).toBox - } yield { - result - }) match { - case e: EmptyBox => NodeLogger.PendingNode.error(rollbackErrorMsg(e, sm.node.main.id.value)) - case Full(f) => - NodeLogger.PendingNode.debug("Succesfully rollbacked %s for process '%s'".format(sm.node.main.id, this.name)) - } - } + for { + // Get inventory og the node + cnf <- nodeFactRepo.get(id)(SelectNodeStatus.Pending).notOptional(s"Missing inventory for node with ID: '${id.value}'") + // Pre accept it + preAccept <- passPreAccept(cnf) + // Accept it + _ <- nodeFactRepo.changeStatus(id, AcceptedInventory) + // Update hooks for the node + _ <- hooksRunner + .afterNodeAcceptedAsync(id) + .catchAll(err => { + NodeLoggerPure.PendingNode.error( + s"Error when executing post-acceptation hooks for node '${cnf.fqdn}' " + + s"[${cnf.id.value}]: ${err.fullMsg}" + ) + }) + } yield cnf.modify(_.rudderSettings.status).setTo(AcceptedInventory) } - //////////// refuse //////////// - override def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] = { - // refuse an inventory: delete it - smRepo.delete(srv.id, fromInventoryStatus).toBox.map(_ => srv) + def acceptAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] = { + ZIO.foreachPar(ids)(id => accept(id)) } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * Accept FullInventory at ou=node level: just add it - */ -class AcceptFullInventoryInNodeOu( - override val name: String, - nodeDit: NodeDit, - ldap: LDAPConnectionProvider[RwLDAPConnection], - ldapEntityMapper: LDAPEntityMapper, - inventoryStatus: InventoryStatus, // expected inventory status of nodes for that processor - - defaultPolicyMode: () => Box[Option[PolicyMode]], - defaultNodeState: () => Box[NodeState] -) extends UnitAcceptInventory with UnitRefuseInventory { - - override def preAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - - override def postAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - - override val fromInventoryStatus = inventoryStatus - - override val toInventoryStatus = inventoryStatus - - /** - * Add a node entry in ou=Nodes - */ - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - val name = sm.node.name.getOrElse(sm.node.main.id.value) - val description = sm.node.description.getOrElse("") - - // naive test to find if the node is the master policy server. - // TODO: that can not handle relay server - val isPolicyServer = sm.node.main.id == sm.node.main.policyServerId - - val node = Node( - sm.node.main.id, - name, - description, - defaultNodeState().openOr(NodeState.Enabled), - false, - isPolicyServer, - DateTime.now, // won't be used on save - dummy value - - ReportingConfiguration(None, None, None), // use global schedule, and default configuration for reporting - - Nil, // no user properties for now - - defaultPolicyMode().openOr(None) - ) - - val entry = ldapEntityMapper.nodeToEntry(node) - for { - con <- ldap - res <- con.save(entry).chainError(s"Error when trying to save node '${entry.dn}' in process '${this.name}'") - } yield { - sm - } - }.toBox - - /** - * Just remove the node entry - */ - def rollback(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Unit = { - sms.foreach { sm => - (for { - con <- ldap - dn = nodeDit.NODES.NODE.dn(sm.node.main.id.value) - result <- con.delete(dn) - } yield { - result - }).toBox match { - case e: EmptyBox => NodeLogger.PendingNode.error(rollbackErrorMsg(e, sm.node.main.id.value)) - case Full(f) => - NodeLogger.PendingNode.debug("Succesfully rollbacked %s for process '%s'".format(sm.node.main.id, this.name)) - } - } - } - - //////////// refuse //////////// - override def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] = { - // refuse ou=nodes: delete it - for { - con <- ldap - dn = nodeDit.NODES.NODE.dn(srv.id.value) - result <- con.delete(dn) - } yield { - srv - } - }.toBox - -} - class RefuseGroups( override val name: String, roGroupRepo: RoNodeGroupRepository, @@ -845,20 +358,20 @@ class RefuseGroups( ) extends UnitRefuseInventory { //////////// refuse //////////// - override def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] = { + override def refuseOne(cnf: CoreNodeFact)(implicit cc: ChangeContext): IOResult[Unit] = { // remove server id in all groups for { - groupIds <- roGroupRepo.findGroupWithAnyMember(Seq(srv.id)) + groupIds <- roGroupRepo.findGroupWithAnyMember(Seq(cnf.id)) modifiedGroups <- ZIO.foreach(groupIds) { groupId => for { groupPair <- roGroupRepo.getNodeGroup(groupId) - modGroup = groupPair._1.copy(serverList = groupPair._1.serverList - srv.id) - msg = Some("Automatic update of groups due to refusal of node " + srv.id.value) + modGroup = groupPair._1.copy(serverList = groupPair._1.serverList - cnf.id) + msg = Some("Automatic update of groups due to refusal of node " + cnf.id.value) saved <- { val res = if (modGroup.isSystem) { - woGroupRepo.updateSystemGroup(modGroup, modId, actor, msg) + woGroupRepo.updateSystemGroup(modGroup, cc.modId, cc.actor, cc.message) } else { - woGroupRepo.update(modGroup, modId, actor, msg) + woGroupRepo.update(modGroup, cc.modId, cc.actor, cc.message) } res } @@ -866,10 +379,8 @@ class RefuseGroups( saved } } - } yield { - srv - } - }.toBox + } yield () + } } /** @@ -879,19 +390,23 @@ class RefuseGroups( */ class AcceptHostnameAndIp( override val name: String, - inventoryStatus: InventoryStatus, queryProcessor: QueryProcessor, ditQueryData: DitQueryData, policyServerNet: PolicyServerManagementService, - nodeInfoService: NodeInfoService, + nodeFactRepo: NodeFactRepository, acceptDuplicateHostnames: IOResult[Boolean] -) extends UnitAcceptInventory { +) extends UnitCheckAcceptInventory { // return the list of ducplicated hostname from user input - we want that to be empty - private[this] def checkDuplicateString(attributes: Seq[String], attributeName: String): Box[Unit] = { + private[this] def checkDuplicateString(attributes: Seq[String], attributeName: String): IOResult[Unit] = { val duplicates = attributes.groupBy(x => x).collect { case (k, v) if v.size > 1 => v.head }.toSeq.sorted - if (duplicates.isEmpty) Full({}) - else Failure("You can not accept two nodes with the same %s: %s".format(attributeName, duplicates.mkString("'", "', ", "'"))) + ZIO + .when(duplicates.nonEmpty) { + Inconsistency( + s"You can not accept two nodes with the same ${attributeName}: ${duplicates.mkString("'", "', ", "'")}" + ).fail + } + .unit } // some constant data for the query about hostname on node @@ -908,14 +423,11 @@ class AcceptHostnameAndIp( * search in database nodes having the same hostname as one provided. * Only return existing hostname (and so again, we want that to be empty) */ - private[this] def queryForDuplicateHostname(hostnames: Seq[String]): Box[Unit] = { + private[this] def queryForDuplicateHostname(hostnames: Seq[String]): IOResult[Unit] = { def failure(duplicates: Seq[String], name: String) = { - Failure( - "There is already a node with %s %s in database. You can not add it again.".format( - name, - duplicates.mkString("'", "' or '", "'") - ) - ) + Inconsistency( + s"There is already a node with ${name} ${duplicates.mkString("'", "' or '", "'")} in database. You can not add it again." + ).fail } val hostnameCriterion = hostnames.toList.map { h => @@ -928,184 +440,36 @@ class AcceptHostnameAndIp( } for { - duplicatesH <- queryProcessor.process(Query(NodeReturnType, Or, ResultTransformation.Identity, hostnameCriterion)) + duplicatesH <- BoxToIO( + queryProcessor.process(Query(NodeReturnType, Or, ResultTransformation.Identity, hostnameCriterion)) + ).toIO // here, all nodes found are duplicate-in-being. They should be unique, but // if not, we don't group them that the duplicate appears in the list - noDuplicatesH <- if (duplicatesH.isEmpty) Full({}) + noDuplicatesH <- if (duplicatesH.isEmpty) ZIO.unit else { // get the hostname from nodeInfoService - for { - nodesInfo <- nodeInfoService.getNodeInfosSeq(duplicatesH).toBox - hostnames = nodesInfo.map(ni => ni.hostname) - } yield { - failure(hostnames, "Hostname") - } + nodeFactRepo + .getAll() + .collect { case n if (duplicatesH.contains(n.id)) => n.fqdn } + .runCollect + .flatMap(failure(_, "Hostname")) } - } yield {} + } yield () } - override def preAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = { - - val hostnames = sms.map(_.node.main.hostname) - + override def preAccept(cnf: CoreNodeFact)(implicit cc: ChangeContext): IOResult[Unit] = { for { authorizedNetworks <- policyServerNet .getAllowedNetworks(Constants.ROOT_POLICY_SERVER_ID) - .toBox ?~! "Can not get authorized networks: check their configuration, and that rudder-init was done" - acceptDuplicated <- acceptDuplicateHostnames.toBox - _ <- if (acceptDuplicated) Full(()) - else { + .chainError("Can not get authorized networks: check their configuration, and that rudder-init was done") + acceptDuplicated <- acceptDuplicateHostnames + _ <- ZIO.when(!acceptDuplicated) { for { - noDuplicateHostnames <- checkDuplicateString(hostnames, "hostname") - noDuplicateInDB <- queryForDuplicateHostname(hostnames) + noDuplicateHostnames <- checkDuplicateString(List(cnf.fqdn), "hostname") + noDuplicateInDB <- queryForDuplicateHostname(List(cnf.fqdn)) } yield () } - } yield { - sms - } - } - - override val fromInventoryStatus = inventoryStatus - - override val toInventoryStatus = inventoryStatus - - /** - * Only add the server to the list of children of the policy server - */ - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] = Full(sm) - - /** - * An action to execute after the whole batch - */ - def postAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full(sms) - - /** - * Execute a rollback for the given inventory - */ - def rollback(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Unit = {} -} - -/** - * A unit acceptor in charge to historize the - * state of the Inventory so that we can keep it - * forever. - * That acceptor should be call before node - * is actually deleted or accepted - */ -class HistorizeNodeStateOnChoice( - override val name: String, - repos: ReadOnlyFullInventoryRepository, - historyRepos: HistoryLogRepository[NodeId, DateTime, FactLogData, FactLog], - inventoryStatus: InventoryStatus // expected inventory status of nodes for that processor -) extends UnitAcceptInventory with UnitRefuseInventory { - - override def preAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - - override def postAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - - override val fromInventoryStatus = inventoryStatus - - override val toInventoryStatus = inventoryStatus - - /** - * Add a node entry in ou=Nodes - */ - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - // set status to "acccepted" before historisation - val postSM = sm.modify(_.node.main.status).setTo(AcceptedInventory) - historyRepos - .save(postSM.node.main.id, FactLogData(NodeFact.newFromFullInventory(postSM, None), actor, AcceptedInventory)) - .toBox - .map(_ => postSM) - } - - /** - * Does nothing - we don't have the "id" of the historized - * inventory to remove - */ - def rollback(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Unit = {} - - //////////// refuse //////////// - override def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] = { - // refuse ou=nodes: delete it - for { - full <- repos.get(srv.id, inventoryStatus) - _ <- full match { - case None => - "ok".succeed - case Some(inv) => - historyRepos.save( - srv.id, - FactLogData( - NodeFact.newFromFullInventory(inv.modify(_.node.main.status).setTo(RemovedInventory), None), - actor, - RemovedInventory - ) - ) - } - } yield srv - }.toBox -} - -/** - * A unit acceptor in charge do what is necessary regarding fact repo. - * In the long term, it will replace `HistorizeNodeStateOnChoice`. - * Semantic: - * - if a node is refused, delete+commit its inventory - * - if a node is accepted, move to accepted subdif+commit its inventory - */ -class UpdateFactRepoOnChoice( - override val name: String, - inventoryStatus: InventoryStatus, // expected inventory status of nodes for that processor - nodeFactStorage: NodeFactStorage -) extends UnitAcceptInventory with UnitRefuseInventory { - override def preAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - override def postAccept(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Box[Seq[FullInventory]] = Full( - sms - ) // nothing to do - override val fromInventoryStatus = inventoryStatus - override val toInventoryStatus = inventoryStatus - - /** - * Move node fact from fact-repo/pending to fact-repo/accepted - */ - def acceptOne(sm: FullInventory, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - // in 7.0, we don't fail on historization problem, only log - nodeFactStorage - .changeStatus(sm.node.main.id, AcceptedInventory) - .catchAll(err => { - NodeLoggerPure.info( - s"Error when trying to update facts historization when accepting node '${sm.node.main.hostname}' (${sm.node.main.id.value})" - ) - }) - .toBox - .map(_ => sm) - } - - /** - * Does nothing - we don't have the "id" of the historized - * inventory to remove - */ - def rollback(sms: Seq[FullInventory], modId: ModificationId, actor: EventActor): Unit = {} - - //////////// refuse //////////// - override def refuseOne(srv: Srv, modId: ModificationId, actor: EventActor): Box[Srv] = { - // in 7.0, we don't fail on historization problem, only log - nodeFactStorage - .changeStatus(srv.id, RemovedInventory) - .catchAll(err => { - NodeLoggerPure.info( - s"Error when trying to update facts historization when accepting node '${srv.hostname}' (${srv.id.value})" - ) - }) - .toBox - .map(_ => srv) + } yield () } } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NodeInfoService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NodeInfoService.scala index 5f7f23bcc3b..56e887fbc00 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NodeInfoService.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/NodeInfoService.scala @@ -37,39 +37,14 @@ package com.normation.rudder.services.nodes -import com.normation.NamedZioLogger -import com.normation.errors._ import com.normation.errors.IOResult import com.normation.inventory.domain._ -import com.normation.inventory.ldap.core.InventoryDit -import com.normation.inventory.ldap.core.InventoryMapper import com.normation.inventory.ldap.core.LDAPConstants._ import com.normation.ldap.sdk._ -import com.normation.ldap.sdk.BuildFilter._ -import com.normation.ldap.sdk.LDAPConnectionProvider -import com.normation.ldap.sdk.LDAPIOResult._ -import com.normation.ldap.sdk.syntax._ -import com.normation.rudder.domain.Constants -import com.normation.rudder.domain.NodeDit import com.normation.rudder.domain.RudderLDAPConstants._ -import com.normation.rudder.domain.logger.NodeLoggerPure -import com.normation.rudder.domain.logger.TimingDebugLogger -import com.normation.rudder.domain.logger.TimingDebugLoggerPure import com.normation.rudder.domain.nodes.Node import com.normation.rudder.domain.nodes.NodeInfo -import com.normation.rudder.repository.CachedRepository -import com.normation.rudder.repository.ldap.LDAPEntityMapper -import com.normation.rudder.services.nodes.NodeInfoService.A_MOD_TIMESTAMP -import com.normation.rudder.services.nodes.NodeInfoServiceCached.UpdatedNodeEntries -import com.normation.rudder.services.nodes.NodeInfoServiceCached.buildInfoMaps -import com.normation.zio._ -import com.unboundid.ldap.sdk._ import org.joda.time.DateTime -import scala.collection.mutable.{Map => MutMap} -import scala.collection.mutable.Buffer -import scala.concurrent.duration.FiniteDuration -import zio.{System => _, _} -import zio.syntax._ /* * General logic for the cache implementation of NodeInfo. @@ -119,10 +94,8 @@ trait NodeInfoService { /** * Return the number of managed (ie non policy server, no rudder role nodes. * Implementation of that method must as efficient as possible. - * It can't fails (implementation must use a sane default if backend is not accessible, - * or cache the information) */ - def getNumberOfManagedNodes: Int + def getNumberOfManagedNodes: IOResult[Int] /** * Get all node infos. @@ -251,1014 +224,3 @@ final case class LocalNodeInfoCache( lastModEntryCSN: Seq[String], managedNodes: Int ) - -/* - * Companion object of NodeInfoServiceCached where pure computing function are - * put. Here, you will find: - * - * - the logic to build a `LDAPNodeInfo` from existing cache and partial updates, - * - - */ -object NodeInfoServiceCached { - val logEffect = NodeLoggerPure.Cache.logEffect - - // utility class to move node updates around - final case class NodeUpdates( - updated: Buffer[LDAPNodeInfo] = Buffer(), - nodeErrors: Buffer[String] = - Buffer(), // that's actually nodeId, but we are in perf/mem sensitive part and avoid object instanciation - - containerErrors: Buffer[String] = Buffer() // that's actually a container DN - ) - // utility class to move around entries (node, inventories, CSN) from LDAP - final case class InfoMaps( - // some map of things - mutable, yes - nodes: MutMap[String, LDAPEntry] = MutMap(), // node_uuid -> entry - - nodeInventories: MutMap[String, LDAPEntry] = MutMap(), // node_uuid -> entry - - machineInventories: MutMap[String, LDAPEntry] = MutMap(), // machine_dn -> entry - - entriesCSN: Buffer[String] = Buffer() - ) - - /* - * That method constructs new LDAPInfo entries from partial update on nodes and inventories (nodes and machines). - * To keep consistency, each map is processed in turn, and we mark errors (an update on a node when node inventory is missing, - * or an update on an inventory (node and machine) where the node is missing) appart. - * These errors can happen when a node is in the middle of acceptation and only half of data are created in LDAP when - * the cache is updated. - */ - def constructNodesFromPartialUpdate( - currentCache: LocalNodeInfoCache, - infoMaps: InfoMaps - ): NodeUpdates = { - - // get machine inventory from inventory map. it will lazely use cacheEntry if not found in machineInventories - def getNonOptionnalMachineInventory( - containerDn: String, - machineInventories: MutMap[String, LDAPEntry], // only read - - managedMachineInventories: scala.collection.mutable.Buffer[String], - cacheEntry: () => Option[LDAPEntry] - ): Option[LDAPEntry] = { - for { - machineEntry <- machineInventories.get(containerDn) match { - case Some(value) => - // machine inventory is handled - managedMachineInventories += containerDn - Some(value) - case None => // look in cache - cacheEntry() - } - } yield { - machineEntry - } - } - - val managedNodeInventories = scala.collection.mutable.Buffer[String]() - val managedMachineInventories = scala.collection.mutable.Buffer[String]() - val result = NodeUpdates() - - // we have three loops with map/filter on entries - - /* loop1: for nodes - * For each entry updated in ou=Nodes, we look if the inventories are - * also updated. If so, we mark them as "done" to avoid work in following loops. - * If not, we look in cache. If no inventory is in cache for that node, we may - * be in the middle of an inventory addition, and mark the nodeId as "try to compensate with full lookup". - */ - infoMaps.nodes.foreach { - case (id, nodeEntry) => - infoMaps.nodeInventories.get(id) match { - case Some(nodeInv) => - // Node inventory with this is handled, so we should not look for it again - managedNodeInventories += id - // if a containerDn is defined, we must find a node - nodeInv(A_CONTAINER_DN) match { - case Some(containerDn) => - val machineInv = getNonOptionnalMachineInventory( - containerDn, - infoMaps.machineInventories, - managedMachineInventories, - () => currentCache.nodeInfos.get(NodeId(id)).flatMap(_._1.machineEntry) - ) - machineInv match { - case Some(_) => - result.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, machineInv)) - case None => - // container is defined, but not found. This is an error - result.nodeErrors.addOne(id) - } - case None => // no container expected - result.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, None)) - } - case None => // look in cache - currentCache.nodeInfos.get(NodeId(id)) match { - case None => // oups, mark as problem - result.nodeErrors.addOne(id) - case Some((ldapInfo, nodeInfo)) => // use that - val nodeInv = ldapInfo.nodeInventoryEntry - // if a containerDn is defined, we must find a node - nodeInv(A_CONTAINER_DN) match { - case Some(containerDn) => - val machineInv = getNonOptionnalMachineInventory( - containerDn, - infoMaps.machineInventories, - managedMachineInventories, - () => ldapInfo.machineEntry - ) - machineInv match { - case Some(_) => - result.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, machineInv)) - case None => - // container is defined, but not found. This is an error - result.nodeErrors.addOne(id) - } - case None => // no container expected - result.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, None)) - } - } - - } - } - val nbNodeEntries = result.updated.size - logEffect.trace(s"Constructing nodes from partial update") - logEffect.trace(s" -- nodeEntries: ${result.updated.mkString(",")}") - - /* - * Loop 2: for node inventories. - * Only process node inventories that are not yet marked as done. - * Again, we can have error: here, we know the node info for these inventories must - * be in cache, since the one form updates were done in loop 1. If not in cache, it's - * an error. - */ - infoMaps.nodeInventories.foreach { - case (id, nodeInv) => - if (!managedNodeInventories.contains(id)) { - currentCache.nodeInfos.get(NodeId(id)) match { - case None => // oups - result.nodeErrors.addOne(id) - case Some((ldapInfo, nodeInfo)) => - val nodeEntry = ldapInfo.nodeEntry - nodeInv(A_CONTAINER_DN) match { - case Some(containerDn) => - val machineInv = getNonOptionnalMachineInventory( - containerDn, - infoMaps.machineInventories, - managedMachineInventories, - () => ldapInfo.machineEntry - ) - machineInv match { - case Some(_) => - result.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, machineInv)) - case None => - // container is defined, but not found. This is an error - result.nodeErrors.addOne(id) - } - case None => - result.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, None)) - } - } - } - } - - val nbNodeInvs = result.updated.size - nbNodeEntries - logEffect.trace(s" -- inventoryEntries: ${result.updated.iterator.drop(nbNodeEntries).mkString(",")}") - logEffect.debug(s" -- following nodes were not complete for cache: ${result.nodeErrors.mkString(",")}") - - /* loop3: for machine inventories - * Very similar than node inventories, for same reasons, but one machine can be mapped to several nodes! - */ - infoMaps.machineInventories.foreach { - case (containerDn, machineInv) => - if (!managedMachineInventories.contains(containerDn)) { - // the tricky part: there may be several nodes with the same containerDn - // now, we must have AT LEAST one value in res, else it's the same kind of error than a node inventory without a node. - var atLeastOne = false - currentCache.nodeInfos.collect { - case (nodeId, (ldapInfo, _)) if (ldapInfo.nodeInventoryEntry(A_CONTAINER_DN).equals(Some(containerDn))) => - atLeastOne = true - result.updated.addOne(LDAPNodeInfo(ldapInfo.nodeEntry, ldapInfo.nodeInventoryEntry, Some(machineInv))) - } - if (!atLeastOne) { - result.containerErrors.addOne(containerDn) - } - } - } - - logEffect.trace(s" -- machineInventoriesEntries: ${result.updated.iterator.drop(nbNodeEntries + nbNodeInvs).mkString(",")}") - logEffect.debug(s" -- following machineInventories were not complete for cache: ${result.containerErrors.mkString(",")}") - - result - } - - /* - * Simpler version of `constructNodesFromPartialUpdate` where we assume that we have all datas, - * so we can only loop one time for nodes and be done. - */ - def constructNodesFromAllEntries(infoMaps: InfoMaps, checkRoot: Boolean = true): IOResult[NodeUpdates] = { - for { - results <- Ref.make(NodeUpdates()) - rootMissing <- Ref.make(checkRoot) - // foreach cannot work on mutableMap - _ <- ZIO.foreach(infoMaps.nodes: Iterable[(String, LDAPEntry)]) { - case (id, nodeEntry) => - infoMaps.nodeInventories.get(id) match { - case None => - // We can safely skip it - when the inventory will appear, it will be caught up in the partial update - // For the case where we have an inventory but no node, it's the same - // If partial update get only part of the object (inv, or node), then the nodeErrors will fetch it - NodeLoggerPure.Cache.debug( - s"Node with id '${id}' is in ou=Nodes,cn=rudder-configuration but doesn't have an inventory: skipping it" - ) *> - results.update { x => x.nodeErrors.addOne(id); x } - case Some(nodeInv) => - val machineInv = for { - containerDn <- nodeInv(A_CONTAINER_DN) - machineEntry <- infoMaps.machineInventories.get(containerDn) - } yield { - machineEntry - } - results.update { x => x.updated.addOne(LDAPNodeInfo(nodeEntry, nodeInv, machineInv)); x } *> - ZIO.when(id == Constants.ROOT_POLICY_SERVER_ID.value)(rootMissing.set(false)) - } - } - // here, we must ensure that root ID is on the list, else chaos ensue. - // If root is missing, invalidate the case - _ <- ZIO.whenZIO(rootMissing.get) { - val msg = { - "'root' node is missing from the list of nodes. Rudder can not work in that state. We clear the cache now to try" + - "to auto-correct the problem. If it persists, try to run 'rudder agent inventory && rudder agent run' " + - "from the root server and check /var/log/rudder/webapp/ logs for additionnal information." - } - NodeLoggerPure.Cache.error(msg) *> msg.fail - } - ldapNodes <- results.get - } yield { - ldapNodes - } - } - - // utility class to move around deleted and existing/updated node entries - final case class UpdatedNodeEntries( - deleted: Seq[LDAPEntry], - updated: Seq[LDAPEntry] - ) - // logic to sort out different kind of node entries from generic LDAP entries - def buildInfoMaps(updatedNodeEntries: UpdatedNodeEntries, currentLastModif: DateTime): (InfoMaps, DateTime) = { - val infoMaps = InfoMaps(MutMap.empty, MutMap.empty, MutMap.empty, Buffer()) - val t0 = System.currentTimeMillis - - // two vars to keep track of the new last modification time and entries csn - var lastModif = currentLastModif - - // look for the maxed timestamp - (updatedNodeEntries.deleted ++ updatedNodeEntries.updated).foreach { e => - e.getAsGTime(A_MOD_TIMESTAMP) match { - case None => // nothing - case Some(x) => - if (x.dateTime.isAfter(lastModif)) { - lastModif = x.dateTime - infoMaps.entriesCSN.clear() - } - if (x.dateTime == lastModif) { - e("entryCSN").map(csn => infoMaps.entriesCSN.append(csn)) - } - } - } - - // now, create the nodeInfo - updatedNodeEntries.updated.foreach { e => - if (e.isA(OC_MACHINE)) { - infoMaps.machineInventories += (e.dn.toString -> e) - } else if (e.isA(OC_NODE)) { - infoMaps.nodeInventories += (e.value_!(A_NODE_UUID) -> e) - } else if (e.isA(OC_RUDDER_NODE)) { - infoMaps.nodes += (e.value_!(A_NODE_UUID) -> e) - } else { - // it's an error, don't use - } - } - - val t1 = System.currentTimeMillis - NodeLoggerPure.Cache.trace( - s"Updated entries are machineInventories: ${infoMaps.machineInventories.mkString(",")} \n" + - s"nodeInventories: ${infoMaps.nodeInventories.mkString(",")} \n" + - s"nodes: ${infoMaps.nodes.mkString(",")} " - ) - TimingDebugLogger.debug(s"Getting node info entries: ${t1 - t0}ms") - (infoMaps, lastModif) - } -} - -trait NodeInfoServiceCached extends NodeInfoService with NamedZioLogger with CachedRepository { - import NodeInfoService._ - - def ldap: LDAPConnectionProvider[RoLDAPConnection] - def nodeDit: NodeDit - def inventoryDit: InventoryDit - def removedDit: InventoryDit - def pendingDit: InventoryDit - def ldapMapper: LDAPEntityMapper - def inventoryMapper: InventoryMapper - - override def loggerName: String = this.getClass.getName - - val semaphore = Semaphore.make(1).runNow - /* - * Compare if cache is up to date (based on internal state of the cache) - */ - def isUpToDate(): IOResult[Boolean] = { - IOResult.attempt(nodeCache).flatMap { - case Some(cache) => checkUpToDate(cache.lastModTime, cache.lastModEntryCSN) - case None => false.succeed // an empty cache is never up to date - } - } - - /** - * Check is LDAP directory contains updated entries compare - * to the date we pass in arguments. - * Entries may be any entry relevant for our cache, in particular, - * some attention must be provided to deleted entries. - */ - protected[this] def checkUpToDate(lastKnowModification: DateTime, lastModEntryCSN: Seq[String]): IOResult[Boolean] - - /** - * This method must return only and all entries under: - * - ou=Nodes, - * - ou=[Node, Machine], ou=Accepted Inventories, etc - * - * attributes is the list of attributes needed in returned entries - */ - def getNodeInfoEntries( - con: RoLDAPConnection, - attributes: Seq[String], - status: InventoryStatus, - lastModification: Option[DateTime] - ): LDAPIOResult[Seq[LDAPEntry]] - - /* - * Retrieve from backend LDANodeInfo for the entries - */ - def getBackendLdapNodeInfo(nodeIds: Seq[String]): IOResult[Seq[LDAPNodeInfo]] - - // containerDn look like machineId=000f6268-e825-d13c-fa14-f9e55d05038c,ou=Machines,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration - def getBackendLdapContainerinfo(containersDn: Seq[String]): IOResult[Seq[LDAPNodeInfo]] - - override def getNumberOfManagedNodes: Int = nodeCache.map(_.managedNodes).getOrElse(0) - - /* - * Our cache - */ - protected[this] var nodeCache = Option.empty[LocalNodeInfoCache] - - // we need modifyTimestamp to search for update and entryCSN to remove already processed entries - private[this] val searchAttributes = nodeInfoAttributes :+ A_MOD_TIMESTAMP :+ "entryCSN" - - /** - * Remove a node from cache. It cannot fail - if node is not in cache, it is a success - */ - def removeNodeFromCache(nodeId: NodeId): IOResult[Unit] = { - semaphore.withPermit( - IOResult.attempt({ nodeCache = nodeCache.map(x => x.copy(nodeInfos = x.nodeInfos.removed(nodeId))) }) - ) - } - - /** - * Update cache, without doing anything with the data - */ - def updateCache(): IOResult[Unit] = { - withUpToDateCache("update cache")(_ => ZIO.unit) - } - - /** - * That's the method that do all the logic - */ - private[this] def withUpToDateCache[T]( - label: String - )(useCache: Map[NodeId, (LDAPNodeInfo, NodeInfo)] => IOResult[T]): IOResult[T] = { - /* - * Get all relevant info from backend along with the - * date of the last modification. - * If `existingCache` is None, all data will be fetched to fully build a fresh new cache. - * If `existingCache` is Some(cache), then only a partial update will be computed based on - * modified entries since cache last update datetime. - * - * That method is not threadsafe and must be enclosed in a semaphore or other guarding mean. - */ - def getDataFromBackend(existingCache: Option[LocalNodeInfoCache]): IOResult[LocalNodeInfoCache] = { - - // Find entries modified since `lastKnowModification` (or all entries if None) - def getUpdatedDataIO(lastKnowModification: Option[DateTime]): IOResult[UpdatedNodeEntries] = { - val filter = lastKnowModification match { - case Some(date) => AND(IS(OC_NODE), GTEQ(A_MOD_TIMESTAMP, GeneralizedTime(date).toString)) - case None => AND(IS(OC_NODE)) - } - - for { - con <- ldap - t0 <- currentTimeMillis - deleted <- con.search(removedDit.NODES.dn, One, filter, A_MOD_TIMESTAMP, "entryCSN") - t1 <- currentTimeMillis - updated <- getNodeInfoEntries(con, searchAttributes, AcceptedInventory, lastKnowModification) - t2 <- currentTimeMillis - } yield { - TimingDebugLogger.debug( - s"Getting updated node info data from LDAP: ${t2 - t0}ms total (${t1 - t0}ms for removed nodes, ${t2 - t1} for accepted inventories)" - ) - UpdatedNodeEntries(deleted, updated) - } - } - - // create a fresh new cache with `updatedEntries`. If `existingCache` is None, we assume these entries are all - // available entries, else we assume these are only the ones updated since cache last update. - def getUpdatedCache( - existingCache: Option[LocalNodeInfoCache], - updatedEntries: UpdatedNodeEntries - ): IOResult[(LocalNodeInfoCache, Int)] = { - // if we don't have an existing cache, then we are (re)initializing cache, so we get all entries since epoch - val (infoMaps, lastModif) = buildInfoMaps(updatedEntries, existingCache.map(_.lastModTime).getOrElse(new DateTime(0))) - - for { - updates <- existingCache match { - case None => // full build - NodeInfoServiceCached.constructNodesFromAllEntries(infoMaps) - case Some(cache) => // only update what need to be updated - NodeInfoServiceCached.constructNodesFromPartialUpdate(cache, infoMaps).succeed - } - // try to compasente for errors: for node id, get full info from backend, for containers, dedicated search (todo) - _ <- NodeLoggerPure.Cache.debug(s"Found ${updates.updated.size} new entries to update cache") - compensate <- if (updates.nodeErrors.nonEmpty) { - getBackendLdapNodeInfo(updates.nodeErrors.toSeq).catchAll( - err => { // we don't want to fail because we tried to compensate - NodeLoggerPure.Cache.warn( - s"Error when trying to find in LDAP node entries: ${updates.nodeErrors.mkString(", ")}: ${err.fullMsg}" - ) *> Seq().succeed - } - ) - } else { - Seq().succeed - } - _ <- ZIO.when(updates.nodeErrors.size > 0) { - NodeLoggerPure.Cache.debug(s"${updates.nodeErrors.size} were in errors, compensated ${compensate.size}") - } - compensateContainer <- if (updates.containerErrors.nonEmpty) { - getBackendLdapContainerinfo(updates.containerErrors.toSeq).catchAll( - err => { // we don't want to fail because we tried to compensate - NodeLoggerPure.Cache.warn( - s"Error when trying to find in LDAP containers entries: ${updates.containerErrors - .mkString(", ")}: ${err.fullMsg}" - ) *> Seq().succeed - } - ) - } else { - Seq().succeed - } - _ <- ZIO.when(updates.containerErrors.size > 0) { - NodeLoggerPure.Cache.debug( - s"${updates.containerErrors.size} were in errors, compensated ${compensateContainer.size}" - ) - } - // now construct the nodeInfo - updated <- ZIO.foreach((updates.updated ++ compensate ++ compensateContainer): Iterable[LDAPNodeInfo]) { ldapNode => - val id = ldapNode.nodeEntry.value_!(A_NODE_UUID) // id is mandatory - ldapMapper - .convertEntriesToNodeInfos( - ldapNode.nodeEntry, - ldapNode.nodeInventoryEntry, - ldapNode.machineEntry - ) - .foldZIO( - err => - NodeLoggerPure.Cache.error( - s"An error occured while updating node cache: can not unserialize node with id '${id}', it will be ignored: ${err.fullMsg}" - ) *> None.succeed, - nodeInfo => Some((nodeInfo.id, (ldapNode, nodeInfo))).succeed - ) - } - _ <- - NodeLoggerPure.Cache.trace(s"Updated entries are updatedNodeInfos: ${updated.flatten.map(_._1.value).mkString(", ")}") - } yield { - val allEntries = existingCache.map(_.nodeInfos).getOrElse(Map()) ++ updated.flatten.toMap - val cache = LocalNodeInfoCache( - allEntries, - lastModif, - infoMaps.entriesCSN.toSeq, - allEntries.filter { case (_, (_, n)) => !n.isPolicyServer }.size - ) - (cache, infoMaps.nodes.size) - } - } - - for { - t0 <- currentTimeMillis - data <- getUpdatedDataIO(existingCache.map(_.lastModTime)) - res <- getUpdatedCache(existingCache, data) - (cache, nb) = res - t1 <- currentTimeMillis - _ <- TimingDebugLoggerPure.debug(s"Converting ${nb} node info entries to node info: ${t1 - t0}ms") - } yield { - cache - } - } - - // Here finaly comes the whole logic that - for { - // only checking the cache validity should be in a semaphore - logic to read it does not need to - // we cannot get (cache, t0), because it fails with Cannot prove that NoSuchElementException <:< com.normation.errors.RudderError - result <- - semaphore.withPermit( - for { - t0 <- currentTimeMillis - updatedCache <- nodeCache match { - case None => - for { - updated <- getDataFromBackend(None).foldZIO( - err => - IOResult.attempt({ nodeCache = None; () }) *> Chained( - "Could not get node information from database", - err - ).fail, - newCache => { - logPure.debug( - s"NodeInfo cache is now initialized, last modification time: '${newCache.lastModTime}', last cache update:" + - s" with ${newCache.nodeInfos.size} entries" - ) *> - logPure - .trace(s"NodeInfo cache initialized entries: [${newCache.nodeInfos.keySet - .map(_.value) - .mkString(", ")}]") *> - IOResult.attempt({ nodeCache = Some(newCache); () }) *> - newCache.succeed - } - ) - } yield { - updated - } - - case Some(currentCache) => - isUpToDate().flatMap(isClean => { - if (!isClean) { - for { - updated <- getDataFromBackend(Some(currentCache)).foldZIO( - err => - IOResult.attempt({ - nodeCache = None; () - }) *> Chained( - "Could not get updated node information from database", - err - ).fail, - newCache => { - logPure.debug( - s"NodeInfo cache is not up to date, last modification time: '${newCache.lastModTime}', last cache update:" + - s" '${currentCache.lastModTime}' => updating cache with ${newCache.nodeInfos.size} entries" - ) *> - logPure.trace( - s"NodeInfo cache updated entries: [${newCache.nodeInfos.keySet.map { - _.value - }.mkString(", ")}]" - ) *> - IOResult.attempt({ - nodeCache = Some(newCache); () - }) *> - newCache.succeed - } - ) - } yield { - updated - } - } else { - logPure.debug(s"NodeInfo cache is up to date, ${nodeCache - .map(c => s"last modification time: '${c.lastModTime}' for: '${c.lastModEntryCSN.mkString("','")}'") - .getOrElse("")}") *> - currentCache.succeed - } - }) - } - - t1 <- currentTimeMillis - _ <- IOResult.attempt(TimingDebugLogger.debug(s"Get cache for node info (${label}): ${t1 - t0}ms")) - } yield { - (t0, updatedCache) - } - ) - (t0, updatedCache) = result - t1 <- currentTimeMillis - res <- useCache(updatedCache.nodeInfos) // this does not need to be in a semaphore - t2 <- currentTimeMillis - _ <- IOResult.attempt( - TimingDebugLogger.debug(s"Get node info (${label}): ${t2 - t0}ms - exploring the cache took ${t2 - t1}ms ") - ) - } yield { - res - } - } - - /** - * An utility method that gets data from backend for things that are - * node really nodes (pending or deleted). - */ - private[this] def getNotAcceptedNodeDataFromBackend(status: InventoryStatus): IOResult[Map[NodeId, NodeInfo]] = { - import scala.collection.mutable.{Map => MutMap} - - for { - con <- ldap - allEntries <- getNodeInfoEntries(con, searchAttributes, status, None) - res <- { - // some map of things - mutable, yes - val nodeInventories = MutMap[String, LDAPEntry]() // node_uuid -> entry - val machineInventories = MutMap[String, LDAPEntry]() // machine_dn -> entry - - // now, create the nodeInfo - allEntries.foreach { e => - if (e.isA(OC_MACHINE)) { - machineInventories += (e.dn.toString -> e) - } else if (e.isA(OC_NODE)) { - nodeInventories += (e.value_!(A_NODE_UUID) -> e) - } else { - // it's an error, don't use - } - } - - ZIO.foreach(nodeInventories.toMap) { - case (id, nodeEntry) => - val machineInfo = for { - containerDn <- nodeEntry(A_CONTAINER_DN) - machineEntry <- machineInventories.get(containerDn) - } yield { - machineEntry - } - for { - nodeInfo <- ldapMapper.convertEntriesToSpecialNodeInfos(nodeEntry, machineInfo) - } yield { - (nodeInfo.id, nodeInfo) - } - } - } - } yield { - res - } - } - - private[this] def getNotAcceptedNodeInfo(nodeId: NodeId, status: InventoryStatus): IOResult[Option[NodeInfo]] = { - val dit = status match { - case AcceptedInventory => inventoryDit - case PendingInventory => pendingDit - case RemovedInventory => removedDit - } - - for { - con <- ldap - optNodeEntry <- con.get(dit.NODES.NODE.dn(nodeId), searchAttributes: _*) - nodeInfo <- (optNodeEntry match { - case None => None.succeed - case Some(nodeEntry) => - nodeEntry.getAsDn(A_CONTAINER_DN) match { - case None => None.succeed - case Some(dn) => - for { - machineEntry <- con.get(dn, searchAttributes: _*) - nodeInfo <- ldapMapper.convertEntriesToSpecialNodeInfos(nodeEntry, machineEntry) - } yield { - Some(nodeInfo) - } - } - }) - } yield { - nodeInfo - } - } - - final override def getPendingNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = getNotAcceptedNodeDataFromBackend(PendingInventory) - final override def getDeletedNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = getNotAcceptedNodeDataFromBackend(RemovedInventory) - final override def getPendingNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = - getNotAcceptedNodeInfo(nodeId, PendingInventory) - final override def getDeletedNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = - getNotAcceptedNodeInfo(nodeId, RemovedInventory) - - /** - * Clear cache. - */ - override def clearCache(): Unit = { - semaphore - .withPermit( - (this.nodeCache = None).succeed - ) - .runNow - } - - // return the cache last update time, or epoch if cache is not init - def getCacheLastUpdate: UIO[DateTime] = { - semaphore.withPermit(ZIO.succeed(this.nodeCache.map(_.lastModTime).getOrElse(new DateTime(0)))) - } - - def getAll(): IOResult[Map[NodeId, NodeInfo]] = withUpToDateCache("all nodes info") { cache => - cache.view.mapValues(_._2).toMap.succeed - } - def getAllNodesIds(): IOResult[Set[NodeId]] = withUpToDateCache("all nodes id")(cache => cache.keySet.succeed) - def getAllSystemNodeIds(): IOResult[Seq[NodeId]] = withUpToDateCache("all system nodes") { cache => - cache.collect { case (k, (_, x)) if (x.isPolicyServer) => k }.toSeq.succeed - } - - def getAllNodes(): IOResult[Map[NodeId, Node]] = withUpToDateCache("all nodes") { cache => - cache.view.mapValues(_._2.node).toMap.succeed - } - - def getAllNodeInfos(): IOResult[Seq[NodeInfo]] = withUpToDateCache("all nodeinfos") { cache => - cache.view.values.map(_._2).toSeq.succeed - } - - def getNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = withUpToDateCache(s"${nodeId.value} node info") { cache => - cache.get(nodeId).map(_._2).succeed - } - - def getNodeInfos(nodeIds: Set[NodeId]): IOResult[Set[NodeInfo]] = withUpToDateCache(s"${nodeIds.size} nodes infos") { cache => - cache.filter(x => nodeIds.contains(x._1)).values.map(_._2).toSet.succeed - } - - def getNodeInfosSeq(nodeIds: Seq[NodeId]): IOResult[Seq[NodeInfo]] = withUpToDateCache(s"${nodeIds.size} nodes infos") { - cache => nodeIds.map(id => cache.get(id).map(_._2)).flatten.succeed - } -} - -/** - * A testing implementation, that just retrieve node info each time. Not very efficient. - */ -class NaiveNodeInfoServiceCachedImpl( - override val ldap: LDAPConnectionProvider[RoLDAPConnection], - override val nodeDit: NodeDit, - override val inventoryDit: InventoryDit, - override val removedDit: InventoryDit, - override val pendingDit: InventoryDit, - override val ldapMapper: LDAPEntityMapper, - override val inventoryMapper: InventoryMapper -) extends NodeInfoServiceCached { - - override def loggerName: String = this.getClass.getName - - override def checkUpToDate(lastKnowModification: DateTime, lastModEntryCSN: Seq[String]): IOResult[Boolean] = { - false.succeed // yes naive - } - - def getNewNodeInfoEntries( - con: RoLDAPConnection, - lastKnowModification: DateTime, - searchAttributes: Seq[String] - ): LDAPIOResult[Seq[LDAPEntry]] = ??? - - /** - * This method must return only and all entries under: - * - ou=Nodes, - * - ou=[Node, Machine], ou=Accepted Inventories, etc - */ - override def getNodeInfoEntries( - con: RoLDAPConnection, - searchAttributes: Seq[String], - status: InventoryStatus, - lastModification: Option[DateTime] - ): LDAPIOResult[Seq[LDAPEntry]] = { - for { - nodeInvs <- con.search(inventoryDit.NODES.dn, One, BuildFilter.ALL, searchAttributes: _*) - machineInvs <- con.search(inventoryDit.MACHINES.dn, One, BuildFilter.ALL, searchAttributes: _*) - nodes <- if (status == AcceptedInventory) { - con.search(nodeDit.NODES.dn, One, BuildFilter.ALL, searchAttributes: _*) - } else { - Seq().succeed - } - } yield { - nodeInvs ++ machineInvs ++ nodes - } - } - // necessary for tests - override def getBackendLdapNodeInfo(nodeIds: Seq[String]): IOResult[Seq[LDAPNodeInfo]] = { - Seq().succeed - } - - override def getBackendLdapContainerinfo(containersDn: Seq[String]): IOResult[Seq[LDAPNodeInfo]] = ??? -} - -/** - * A cache on top of node info service. - * - */ - -class NodeInfoServiceCachedImpl( - override val ldap: LDAPConnectionProvider[RoLDAPConnection], - override val nodeDit: NodeDit, - override val inventoryDit: InventoryDit, - override val removedDit: InventoryDit, - override val pendingDit: InventoryDit, - override val ldapMapper: LDAPEntityMapper, - override val inventoryMapper: InventoryMapper, - minimumCacheValidity: FiniteDuration -) extends NodeInfoServiceCached { - import NodeInfoService._ - val minimumCacheValidityMillis = minimumCacheValidity.toMillis - - override def loggerName: String = this.getClass.getName - - /* - * Check if node related infos are up to date. - * - * Here, we need to only check for attributeModifyTimestamp - * under ou=AcceptedInventories and under ou=Nodes (onelevel) - * and only for machines, inventory nodes, and node, - * and inventory nodes under ou=RemovedInventories - * Reason: - * - only these three entries are used for node info (and none of their - * sub-entries) - * - if a node is deleted, it either go to RemovedInventories (and so the - * machine, but we don't care as soon as we know a node went there) and we - * will see its based on modify timestamps, or if "node full erase" is enabled, - * a special call to "remove node from cache" must be done - * - for ou=Node, all modifications happen in the entry, so the modifyTimestamp - * is changed accordingly. - * - * Moreover, it is less costly to only do one search and post-filter result - * than to do 2 or more. - * - * We also need to filter out entry in the previous last modify set to not - * have them always matching. The reason is that modifyTimestamp is on - * second. But we can have several modify in a second. If we get our - * lastModificationTimestamp in just before the second modification, that - * modification will be ignore forever (or at least until an other modification - * happens - see ticket https://www.rudder-project.org/redmine/issues/12988) - * The filter is based on entryCSN, which is sure to be unique (by def). - * - * Finally, we limit the result to one, because here, we just need to know if - * some update exists, not WHAT they are, nor the MOST RECENT one. Just that - * at least one exists. - * - * A cleaner implementation could use a two persistent search which would notify - * when a cache becomes invalid and reset it, but the rational for that implementation is: - * - it's extremely simple to understand the logic (if(cache is up-to-date) use it else update cache) - * - most of the time (99.99% of it), the search will return 0 result and will be cache on OpenLDAP, - * whatever the number of entries. So we talking of a request taking a couple of ms on the server - * (with a vagrant VM on the same host (so, almost no network), it takes from client to server and - * back ~10ms on a dev machine. - */ - override def checkUpToDate(lastKnowModification: DateTime, lastModEntryCSN: Seq[String]): IOResult[Boolean] = { - ZIO.succeed(System.currentTimeMillis).flatMap { n0 => - // if last check is less than 100 ms ago, consider cache ok - if (n0 - lastKnowModification.getMillis < minimumCacheValidityMillis) { - true.succeed - } else { - val searchRequest = new SearchRequest( - nodeDit.BASE_DN.toString, - Sub.toUnboundid, - DereferencePolicy.NEVER, - 1, - 0, - false, - AND( - OR( - // ou=Removed Inventories,ou=Inventories,cn=rudder-configuration - AND( - IS(OC_NODE), - Filter.create(s"entryDN:dnOneLevelMatch:=${removedDit.NODES.dn.toString}") - ), // ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration - - AND(IS(OC_NODE), Filter.create(s"entryDN:dnOneLevelMatch:=${inventoryDit.NODES.dn.toString}")), - AND( - IS(OC_MACHINE), - Filter.create(s"entryDN:dnOneLevelMatch:=${inventoryDit.MACHINES.dn.toString}") - ), // ou=Nodes,cn=rudder-configuration - the objectClass is used only here - - AND(IS(OC_RUDDER_NODE), Filter.create(s"entryDN:dnOneLevelMatch:=${nodeDit.NODES.dn.toString}")) - ), - GTEQ(A_MOD_TIMESTAMP, GeneralizedTime(lastKnowModification).toString), - NOT(OR(lastModEntryCSN.map(csn => EQ("entryCSN", csn)): _*)) - ), - "1.1" - ) - - for { - con <- ldap - entries <- // here, I have to rely on low-level LDAP connection, because I need to proceed size-limit exceeded as OK - (ZIO.attempt(con.backed.search(searchRequest).getSearchEntries) catchAll { - case e: LDAPSearchException if (e.getResultCode == ResultCode.SIZE_LIMIT_EXCEEDED) => - e.getSearchEntries().succeed - case e: Throwable => - SystemError("Error when searching node information", e).fail - }).foldZIO( - err => - logPure.debug( - s"Error when checking for cache expiration: invalidating it. Error was: ${err.fullMsg}" - ) *> false.succeed, - seq => { - // we only have interesting entries in the result, so it's up to date if we have exactly 0 entries - val res = seq.isEmpty - logPure.trace(s"Cache check for node info gave '${res}' (${seq.size} entry returned)") *> res.succeed - } - ) - n1 <- ZIO.succeed(System.currentTimeMillis) - _ <- IOResult.attempt(TimingDebugLogger.debug(s"Cache for nodes info expire ?: ${n1 - n0}ms")) - } yield { - entries - } - } - } - } - - /** - * This method must return only and all entries under: - * - ou=Nodes, - * - ou=[Node, Machine], ou=Accepted Inventories, etc - */ - override def getNodeInfoEntries( - con: RoLDAPConnection, - searchAttributes: Seq[String], - status: InventoryStatus, - lastModification: Option[DateTime] - ): LDAPIOResult[Seq[LDAPEntry]] = { - val dit = status match { - case AcceptedInventory => inventoryDit - case PendingInventory => pendingDit - case RemovedInventory => removedDit - } - - val filterNodes = OR( - Seq( - AND(IS(OC_NODE), Filter.create(s"entryDN:dnOneLevelMatch:=${dit.NODES.dn.toString}")), - AND(IS(OC_MACHINE), Filter.create(s"entryDN:dnOneLevelMatch:=${dit.MACHINES.dn.toString}")) - ) ++ (if (status == AcceptedInventory) { - Seq(AND(IS(OC_RUDDER_NODE), Filter.create(s"entryDN:dnOneLevelMatch:=${nodeDit.NODES.dn.toString}"))) - } else { - Seq() - }): _* - ) - - val filter = lastModification match { - case None => filterNodes - case Some(d) => AND(filterNodes, GTEQ(A_MOD_TIMESTAMP, GeneralizedTime(d).toString)) - } - - con.search(nodeDit.BASE_DN, Sub, filter, searchAttributes: _*) - } - - // Utility method to construct infomaps for getBackEnd methods - private[this] def constructInfoMaps(nodeEntries: Seq[LDAPEntry], nodeInvs: Seq[LDAPEntry], machineInvs: Seq[LDAPEntry]) = { - val res = NodeInfoServiceCached.InfoMaps() - nodeEntries.foreach(e => res.nodes.addOne((e.value_!(A_NODE_UUID), e))) - nodeInvs.foreach(e => res.nodeInventories.addOne((e.value_!(A_NODE_UUID), e))) - machineInvs.foreach(e => res.machineInventories.addOne((e.dn.toString, e))) - res - } - - override def getBackendLdapNodeInfo(nodeIds: Seq[String]): IOResult[Seq[LDAPNodeInfo]] = { - for { - con <- ldap - nodeEntries <- - con.search(nodeDit.NODES.dn, One, OR(nodeIds.map(id => EQ(A_NODE_UUID, id)): _*), NodeInfoService.nodeInfoAttributes: _*) - nodeInvs <- con.search( - inventoryDit.NODES.dn, - One, - OR(nodeIds.map(id => EQ(A_NODE_UUID, id)): _*), - NodeInfoService.nodeInfoAttributes: _* - ) - containers = nodeInvs.flatMap(e => e(A_CONTAINER_DN).map(dn => new DN(dn).getRDN.getAttributeValues()(0))) - machineInvs <- con.search( - inventoryDit.MACHINES.dn, - One, - OR(containers.map(id => EQ(A_MACHINE_UUID, id)): _*), - NodeInfoService.nodeInfoAttributes: _* - ) - infoMaps <- IOResult.attempt(constructInfoMaps(nodeEntries, nodeInvs, machineInvs)) - res <- NodeInfoServiceCached.constructNodesFromAllEntries(infoMaps, checkRoot = false) - } yield { - // here, we ignore error cases - res.updated.toSeq - } - } - - // containerDn look like machineId=000f6268-e825-d13c-fa14-f9e55d05038c,ou=Machines,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration - override def getBackendLdapContainerinfo(containersDn: Seq[String]): IOResult[Seq[LDAPNodeInfo]] = { - for { - con <- ldap - containers = containersDn.map(dn => - new DN(dn).getRDN.getAttributeValues()(0) - ) // I'm using the same logic as up so that I can get all machines in one query, rather than on get per dn - machineInvs <- con.search( - inventoryDit.MACHINES.dn, - One, - OR(containers.map(id => EQ(A_MACHINE_UUID, id)): _*), - NodeInfoService.nodeInfoAttributes: _* - ) - nodeInvs <- con.search( - inventoryDit.NODES.dn, - One, - OR(containersDn.map(container => EQ(A_CONTAINER_DN, container)): _*), - NodeInfoService.nodeInfoAttributes: _* - ) - nodeIds = nodeInvs.flatMap(_(A_NODE_UUID)) - nodeEntries <- - con.search(nodeDit.NODES.dn, One, OR(nodeIds.map(id => EQ(A_NODE_UUID, id)): _*), NodeInfoService.nodeInfoAttributes: _*) - infoMaps <- IOResult.attempt(constructInfoMaps(nodeEntries, nodeInvs, machineInvs)) - res <- NodeInfoServiceCached.constructNodesFromAllEntries(infoMaps, checkRoot = false) - } yield { - // here, we ignore error cases - res.updated.toSeq - } - } -} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/RemoveNodeService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/RemoveNodeService.scala index 5dab2cf6869..9f7aad6132c 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/RemoveNodeService.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/RemoveNodeService.scala @@ -38,7 +38,6 @@ package com.normation.rudder.services.servers import com.normation.box._ import com.normation.errors._ -import com.normation.eventlog.EventActor import com.normation.eventlog.ModificationId import com.normation.inventory.domain.AcceptedInventory import com.normation.inventory.domain.AgentType @@ -61,25 +60,20 @@ import com.normation.rudder.domain.logger.NodeLoggerPure import com.normation.rudder.domain.nodes.Node import com.normation.rudder.domain.nodes.NodeInfo import com.normation.rudder.domain.nodes.NodeState -import com.normation.rudder.facts.nodes.NodeFactStorage +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.NodeFactRepository +import com.normation.rudder.facts.nodes.SelectNodeStatus import com.normation.rudder.hooks.HookEnvPairs import com.normation.rudder.hooks.HookReturnCode import com.normation.rudder.hooks.RunHooks import com.normation.rudder.reports.ReportingConfiguration -import com.normation.rudder.repository.EventLogRepository import com.normation.rudder.repository.RoNodeGroupRepository import com.normation.rudder.repository.UpdateExpectedReportsRepository import com.normation.rudder.repository.WoNodeGroupRepository import com.normation.rudder.repository.ldap.ScalaReadWriteLock import com.normation.rudder.services.nodes.NodeInfoService -import com.normation.rudder.services.nodes.NodeInfoServiceCached -import com.normation.rudder.services.nodes.history.impl.InventoryHistoryJdbcRepository import com.normation.rudder.services.policies.write.NodePoliciesPaths import com.normation.rudder.services.policies.write.PathComputer -import com.normation.rudder.services.reports.CacheComplianceQueueAction.ExpectedReportAction -import com.normation.rudder.services.reports.CachedFindRuleNodeStatusReports -import com.normation.rudder.services.reports.CachedNodeConfigurationService -import com.normation.rudder.services.reports.CacheExpectedReportAction.RemoveNodeInCache import com.normation.rudder.services.servers.DeletionResult._ import com.normation.utils.StringUuidGenerator import com.normation.zio._ @@ -128,12 +122,18 @@ object DeleteMode { /* * Unitary post-deletion action. They happen once the node is actually deleted and eventlog saved. * Typically, done for cleaning things or notifying other parts of rudder. + * + * We keep here action that should be executed each time we call delete, whatever if the node + * was really deleted. + * The other post delete hooks should be migration to CoreNodeFactRepository callbacks. */ trait PostNodeDeleteAction { // a node can have several status (if inventories already deleted, and now in pending again for ex) // or zero (if only some things remain) // and if can optionnally have a nodeInfo - def run(nodeId: NodeId, mode: DeleteMode, info: Option[NodeInfo], status: Set[InventoryStatus], actor: EventActor): UIO[Unit] + def run(nodeId: NodeId, mode: DeleteMode, info: Option[NodeInfo], status: Set[InventoryStatus])(implicit + cc: ChangeContext + ): UIO[Unit] } object PostNodeDeleteAction { @@ -159,11 +159,11 @@ trait RemoveNodeService { * - move the node */ - def removeNode(nodeId: NodeId, modId: ModificationId, actor: EventActor): Box[DeletionResult] = { - removeNodePure(nodeId, DeleteMode.MoveToRemoved, modId, actor).map(_ => Success).toBox + def removeNode(nodeId: NodeId)(implicit cc: ChangeContext): Box[DeletionResult] = { + removeNodePure(nodeId, DeleteMode.MoveToRemoved).map(_ => Success).toBox } - def removeNodePure(nodeId: NodeId, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[NodeInfo] + def removeNodePure(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[NodeInfo] } trait RemoveNodeBackend { @@ -172,11 +172,30 @@ trait RemoveNodeBackend { def findNodeStatuses(nodeId: NodeId): IOResult[Set[InventoryStatus]] // the abstract method that actually commit in backend repo the deletion from accepted nodes - def commitDeleteAccepted(nodeInfo: NodeInfo, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[Unit] + def commitDeleteAccepted(nodeInfo: NodeInfo, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[Unit] // the abstract method that actually commit in backend repo the deletion from accepted nodes - def commitPurgeRemoved(nodeId: NodeId, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[Unit] + def commitPurgeRemoved(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[Unit] + +} + +class FactRemoveNodeBackend(backend: NodeFactRepository) extends RemoveNodeBackend { + override def findNodeStatuses(nodeId: NodeId): IOResult[Set[InventoryStatus]] = { + // here, we need to return "RemovedInventory" in case of missing node, so CoreNodeFactRepo #getStatus + // is not what we want; + backend.get(nodeId)(SelectNodeStatus.Any).map { + case None => Set(RemovedInventory) + case Some(x) => Set(x.rudderSettings.status) + } + } + + override def commitDeleteAccepted(nodeInfo: NodeInfo, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[Unit] = { + backend.delete(nodeInfo.id).unit + } + override def commitPurgeRemoved(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[Unit] = { + backend.delete(nodeId).unit + } } class RemoveNodeServiceImpl( @@ -184,7 +203,6 @@ class RemoveNodeServiceImpl( nodeInfoService: NodeInfoService, pathComputer: PathComputer, newNodeManager: NewNodeManager, - actionLogger: EventLogRepository, val postNodeDeleteActions: Ref[List[PostNodeDeleteAction]], HOOKS_D: String, HOOKS_IGNORE_SUFFIXES: List[String] @@ -203,11 +221,11 @@ class RemoveNodeServiceImpl( * if so, copy the container to the removed inventory * if not, move the container to the removed inventory * - * Return a couple with 2 boxes, one about the LDIF change, and one containing the result of the clear cache + * Return a couple RemoveNodeServiceImplwith 2 boxes, one about the LDIF change, and one containing the result of the clear cache * The main goal is to separate the clear cache as it could fail while the node is correctly deleted. * A failing clear cache should not be considered an error when deleting a Node. */ - override def removeNodePure(nodeId: NodeId, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[NodeInfo] = { + override def removeNodePure(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[NodeInfo] = { // main logic, see help function below nodeId match { case Constants.ROOT_POLICY_SERVER_ID => Inconsistency("The root node cannot be deleted.").fail @@ -221,7 +239,7 @@ class RemoveNodeServiceImpl( res1 <- if (status.contains(PendingInventory)) { (for { i <- nodeInfoService.getPendingNodeInfo(nodeId) - r <- deletePendingNode(nodeId, mode, modId, actor) + r <- deletePendingNode(nodeId, mode) _ <- info.set(i) } yield r).catchAll(err => Error(err).succeed) } else Success.succeed @@ -230,14 +248,14 @@ class RemoveNodeServiceImpl( i <- nodeInfoService.getNodeInfo(nodeId) r <- i match { case None => Success.succeed // perhaps deleted or something - case Some(x) => info.set(Some(x)) *> deleteAcceptedNode(x, mode, modId, actor) + case Some(x) => info.set(Some(x)) *> deleteAcceptedNode(x, mode) } } yield r).catchAll(err => Error(err).succeed) } else Success.succeed res3 <- if (status.contains(RemovedInventory)) { (for { i <- nodeInfoService.getDeletedNodeInfo(nodeId) - r <- deleteDeletedNode(nodeId, mode, modId, actor) + r <- deleteDeletedNode(nodeId, mode) // only update if nodeInfo is not already set, b/c accepted has more info _ <- info.update(opt => opt.orElse(i)) } yield r).catchAll(err => Error(err).succeed) @@ -248,7 +266,7 @@ class RemoveNodeServiceImpl( _ <- NodeLoggerPure.Delete.debug(s"-> execute clean-up actions for node '${nodeId.value}'") actions <- postNodeDeleteActions.get optInfo <- info.get - _ <- ZIO.foreachDiscard(actions)(_.run(nodeId, mode, optInfo, status, actor)) + _ <- ZIO.foreachDiscard(actions)(_.run(nodeId, mode, optInfo, status)) _ <- NodeLoggerPure.Delete.info( s"Node '${nodeId.value}' ${optInfo.map(_.hostname).getOrElse("")} was successfully deleted" ) @@ -295,19 +313,14 @@ class RemoveNodeServiceImpl( //////////////////////////////// // delete pending node is just refusing it - def deletePendingNode(nodeId: NodeId, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[DeletionResult] = { + def deletePendingNode(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[DeletionResult] = { NodeLoggerPure.Delete.debug(s"-> deleting node with ID '${nodeId.value}' from pending nodes (refuse)") *> - newNodeManager.refuse(nodeId, modId, actor).toIO.map(_ => DeletionResult.Success) + newNodeManager.refuse(nodeId).map(_ => DeletionResult.Success) } // this is the core delete that is run on accepted node: pre hook, post hook, move to delete or erase // in that case, we do have a nodeInfo - def deleteAcceptedNode( - nodeInfo: NodeInfo, - mode: DeleteMode, - modId: ModificationId, - actor: EventActor - ): IOResult[DeletionResult] = { + def deleteAcceptedNode(nodeInfo: NodeInfo, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[DeletionResult] = { for { _ <- NodeLoggerPure.Delete.debug(s"-> deleting node with ID '${nodeInfo.id.value}' from accepted nodes") @@ -319,21 +332,10 @@ class RemoveNodeServiceImpl( PreHookFailed(a).succeed case _ => for { - _ <- NodeLoggerPure.Delete.debug(s" - delete '${nodeInfo.id.value}' in LDAP (mode='${mode.name}')") - _ <- backend.commitDeleteAccepted(nodeInfo, mode, modId, actor) - invLogDetails = { - InventoryLogDetails( - nodeInfo.id, - nodeInfo.inventoryDate, - nodeInfo.hostname, - nodeInfo.osDetails.fullName, - actor.name - ) - } - eventlog = DeleteNodeEventLog.fromInventoryLogDetails(None, actor, invLogDetails) - saved <- actionLogger.saveEventLog(modId, eventlog) - _ <- NodeLoggerPure.Delete.debug(s" - run node post hooks for '${nodeInfo.id.value}'") - postRun <- runPostHooks(hookEnv) + _ <- NodeLoggerPure.Delete.debug(s" - delete '${nodeInfo.id.value}' in LDAP (mode='${mode.name}')") + _ <- backend.commitDeleteAccepted(nodeInfo, mode) + _ <- NodeLoggerPure.Delete.debug(s" - run node post hooks for '${nodeInfo.id.value}'") + postRun <- runPostHooks(hookEnv) } yield { postRun match { case stop: HookReturnCode.Error => PostHookFailed(stop) @@ -345,13 +347,13 @@ class RemoveNodeServiceImpl( } // delete a node for which we only have the inventory, so it's either deleted, or in accepted but somehow broken. - def deleteDeletedNode(nodeId: NodeId, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[DeletionResult] = { + def deleteDeletedNode(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[DeletionResult] = { // if mode is move, done if (mode == DeleteMode.MoveToRemoved) { Success.succeed } else { // erase NodeLoggerPure.Delete.debug(s"-> erase '${nodeId.value}' from removed nodes") *> - backend.commitPurgeRemoved(nodeId, mode, modId, actor).map(_ => Success) + backend.commitPurgeRemoved(nodeId, mode).map(_ => Success) } } @@ -455,29 +457,19 @@ class LdapRemoveNodeBackend( } } - override def commitPurgeRemoved(nodeId: NodeId, mode: DeleteMode, modId: ModificationId, actor: EventActor): IOResult[Unit] = { + override def commitPurgeRemoved(nodeId: NodeId, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[Unit] = { fullNodeRepo.delete(nodeId, RemovedInventory).unit } // the part that just move/delete node - override def commitDeleteAccepted( - nodeInfo: NodeInfo, - mode: DeleteMode, - modId: ModificationId, - actor: EventActor - ): IOResult[Unit] = { + override def commitDeleteAccepted(nodeInfo: NodeInfo, mode: DeleteMode)(implicit cc: ChangeContext): IOResult[Unit] = { for { _ <- - nodeLibMutex.writeLock(atomicDelete(nodeInfo.id, mode, modId, actor)).chainError("Error when deleting a node") + nodeLibMutex.writeLock(atomicDelete(nodeInfo.id, mode)).chainError("Error when deleting a node") } yield () } - def atomicDelete( - nodeId: NodeId, - mode: DeleteMode, - modId: ModificationId, - actor: EventActor - ): IOResult[Seq[LDIFChangeRecord]] = { + def atomicDelete(nodeId: NodeId, mode: DeleteMode): IOResult[Seq[LDIFChangeRecord]] = { for { cleanNode <- deleteFromNodes(nodeId).chainError(s"Could not remove the node '${nodeId.value}' from base") moveNodeInventory <- mode match { @@ -515,14 +507,13 @@ class RemoveNodeFromGroups( uuidGen: StringUuidGenerator ) extends PostNodeDeleteAction { override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { + nodeId: NodeId, + mode: DeleteMode, + info: Option[NodeInfo], + status: Set[InventoryStatus] + )(implicit cc: ChangeContext): UIO[Unit] = { (for { - _ <- NodeLoggerPure.Delete.debug(s" - remove node ${nodeId.value} from its groups") + _ <- NodeLoggerPure.Delete.debug(s" - remove node ${nodeId.value} from his groups") nodeGroupIds <- roNodeGroupRepository.findGroupWithAnyMember(Seq(nodeId)) _ <- ZIO.foreach(nodeGroupIds) { nodeGroupId => val msg = Some("Automatic update of group due to deletion of node " + nodeId.value) @@ -545,62 +536,17 @@ class RemoveNodeFromGroups( } } -class RemoveNodeInfoFromCache(nodeInfoService: NodeInfoServiceCached) extends PostNodeDeleteAction { - override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { - NodeLoggerPure.Delete.debug(s" - remove node from NodeInfoService Cache '${nodeId.value}'") *> - nodeInfoService - .removeNodeFromCache(nodeId) - .catchAll(err => NodeLoggerPure.Delete.error(s"Error when removing node ${(nodeId, info).name} from cache: ${err.fullMsg}")) - } -} - -class RemoveNodeFromComplianceCache( - configurationService: CachedNodeConfigurationService, - cachedCompliance: CachedFindRuleNodeStatusReports -) extends PostNodeDeleteAction { - override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { - for { - _ <- NodeLoggerPure.Delete.debug(s" - remove node ${nodeId.value} from compliance and expected report cache") - _ <- - configurationService - .invalidateWithAction(Seq((nodeId, RemoveNodeInCache(nodeId)))) - .catchAll(err => - NodeLoggerPure.Delete.error(s"Error when removing node ${nodeId.value} from node configuration cache: ${err.fullMsg}") - ) - _ <- cachedCompliance - .invalidateWithAction(Seq((nodeId, ExpectedReportAction(RemoveNodeInCache(nodeId))))) - .catchAll(err => - NodeLoggerPure.Delete.error(s"Error when removing node ${nodeId.value} from compliance cache: ${err.fullMsg}") - ) - } yield { - () - } - } -} /* * Close expected reports for node. * Also delete nodes_info for that node. */ class CloseNodeConfiguration(expectedReportsRepository: UpdateExpectedReportsRepository) extends PostNodeDeleteAction { override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { + nodeId: NodeId, + mode: DeleteMode, + info: Option[NodeInfo], + status: Set[InventoryStatus] + )(implicit cc: ChangeContext): UIO[Unit] = { for { _ <- NodeLoggerPure.Delete.debug(s" - close expected reports for '${nodeId.value}'") _ <- expectedReportsRepository @@ -615,12 +561,11 @@ class CloseNodeConfiguration(expectedReportsRepository: UpdateExpectedReportsRep // when the node is a policy server, delete directive/rule/group related to it class DeletePolicyServerPolicies(policyServerManagement: PolicyServerManagementService) extends PostNodeDeleteAction { override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { + nodeId: NodeId, + mode: DeleteMode, + info: Option[NodeInfo], + status: Set[InventoryStatus] + )(implicit cc: ChangeContext): UIO[Unit] = { // we can avoid to do LDAP requests if we are sure the node wasn't a policy server info.map(_.isPolicyServer) match { case Some(false) => @@ -641,12 +586,11 @@ class DeletePolicyServerPolicies(policyServerManagement: PolicyServerManagementS // clean up certification key status (only in move mode, not erase) class ResetKeyStatus(ldap: LDAPConnectionProvider[RwLDAPConnection], deletedDit: InventoryDit) extends PostNodeDeleteAction { override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { + nodeId: NodeId, + mode: DeleteMode, + info: Option[NodeInfo], + status: Set[InventoryStatus] + )(implicit cc: ChangeContext): UIO[Unit] = { if (mode == DeleteMode.MoveToRemoved) { NodeLoggerPure.Delete.debug(s" - reset node key certification status for '${nodeId.value}'") *> (for { @@ -667,12 +611,11 @@ class ResetKeyStatus(ldap: LDAPConnectionProvider[RwLDAPConnection], deletedDit: // clean-up cfengine key - only possible if we still have an inventory class CleanUpCFKeys extends PostNodeDeleteAction { override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { + nodeId: NodeId, + mode: DeleteMode, + info: Option[NodeInfo], + status: Set[InventoryStatus] + )(implicit cc: ChangeContext): UIO[Unit] = { info match { case Some(i) => val agentTypes = i.agentsName.map(_.agentType).toSet @@ -732,12 +675,11 @@ class CleanUpNodePolicyFiles(varRudderShare: String) extends PostNodeDeleteActio import better.files.File._ override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { + nodeId: NodeId, + mode: DeleteMode, + info: Option[NodeInfo], + status: Set[InventoryStatus] + )(implicit cc: ChangeContext): UIO[Unit] = { NodeLoggerPure.Delete.debug(s" - clean-up node '${nodeId.value}' policy files in /var/rudder/share") *> cleanPoliciesRec(nodeId, File(varRudderShare)).runDrain.catchAll(err => { NodeLoggerPure.Delete.info( @@ -810,43 +752,3 @@ class CleanUpNodePolicyFiles(varRudderShare: String) extends PostNodeDeleteActio }) } } - -class DeleteNodeFact(nodeFactStorage: NodeFactStorage) extends PostNodeDeleteAction { - override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { - NodeLoggerPure.Delete.debug(s" - delete fact about node '${nodeId.value}'") *> - nodeFactStorage - .changeStatus(nodeId, RemovedInventory) - .catchAll(err => - NodeLoggerPure.info(s"Error when trying to update fact when deleting node '${nodeId.value}': ${err.fullMsg}") - ) - .unit - } -} - -/* - * This hook registers the deletion events into postgresql `nodefacts` table so that the inventory accept/refuse - * fact can be latter cleaned-up. - */ -class StoreDeleteEventHistory(history: InventoryHistoryJdbcRepository, cleanUpImmediately: Boolean) extends PostNodeDeleteAction { - override def run( - nodeId: NodeId, - mode: DeleteMode, - info: Option[NodeInfo], - status: Set[InventoryStatus], - actor: EventActor - ): UIO[Unit] = { - (if (cleanUpImmediately) { - history.delete(nodeId) - } else { // save delete event, clean-up will be automatically done by script - history.saveDeleteEvent(nodeId, DateTime.now(), actor) - }).catchAll(err => - NodeLoggerPure.warn(s"Error when updating node '${nodeId.value}' historical inventory information in base: ${err.fullMsg}") - ) - } -} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/HistoryLogRepository.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/HistoryLogRepository.scala index 8355834ffe9..8497f541b56 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/HistoryLogRepository.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/HistoryLogRepository.scala @@ -31,7 +31,7 @@ trait WriteOnlyHistoryLogRepository[ID, V, T, HLog <: HistoryLog[ID, V, T]] { * @param historyLog * @return */ - def save(id: ID, data: T, datetime: DateTime = DateTime.now): IOResult[HLog] + def save(id: ID, data: T, datetime: DateTime): IOResult[HLog] } @@ -50,7 +50,7 @@ trait ReadOnlyHistoryLogRepository[ID, V, T, HLog <: HistoryLog[ID, V, T]] { * recorded history * Full(hlog) the recorded version of hlog */ - def get(id: ID, version: V): IOResult[HLog] + def get(id: ID, version: V): IOResult[Option[HLog]] /** * Return the list of version for ID. diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/FileHistoryLogRepository.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/FileHistoryLogRepository.scala index 4c4643f7812..38e2bae2129 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/FileHistoryLogRepository.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/FileHistoryLogRepository.scala @@ -151,15 +151,14 @@ class FileHistoryLogRepository[ID: ClassTag, T]( } /** - * Get the list of record for the given UUID and version. - * If no version is specified, get the last. + * Get the record for the given UUID and version if exists */ - def get(id: ID, version: DateTime): IOResult[HLog] = { + def get(id: ID, version: DateTime): IOResult[Option[HLog]] = { for { i <- idDir(id) file <- ZIO.succeed(new File(i, vToS(version))) - data <- parser.fromFile(file) - } yield DefaultHLog(id, version, data) + data <- ZIO.whenZIO(IOResult.attempt(file.exists()))(parser.fromFile(file)) + } yield data.map(d => DefaultHLog(id, version, d)) } // we don't want to catch exception here diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/InventoryHistoryJdbcRepository.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/InventoryHistoryJdbcRepository.scala index a0d8c3536d2..5a3199a600e 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/InventoryHistoryJdbcRepository.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/nodes/history/impl/InventoryHistoryJdbcRepository.scala @@ -118,7 +118,7 @@ class InventoryHistoryJdbcRepository( * Save an inventory and return the ID of the saved inventory, and * its version */ - override def save(id: NodeId, data: FactLogData, datetime: DateTime = DateTime.now): IOResult[FactLog] = { + override def save(id: NodeId, data: FactLogData, datetime: DateTime): IOResult[FactLog] = { val event = NodeAcceptRefuseEvent(datetime, data.actor.name, data.status.name) val q = sql"""insert into nodefacts (nodeId, acceptRefuseEvent, acceptRefuseFact) values (${id}, ${event}, ${data.fact}) on conflict (nodeId) do update set (acceptRefuseEvent, acceptRefuseFact) = (EXCLUDED.acceptRefuseEvent, EXCLUDED.acceptRefuseFact)""" @@ -141,13 +141,13 @@ class InventoryHistoryJdbcRepository( /** * Get the record for the given UUID and version. */ - override def get(id: NodeId, version: DateTime): IOResult[FactLog] = { + override def get(id: NodeId, version: DateTime): IOResult[Option[FactLog]] = { val q = { sql"select nodeId, acceptRefuseEvent, acceptRefuseFact from nodefacts where nodeId = ${id.value} and acceptRefuseEvent ->>'date' = ${DateFormaterService .serialize(version)}" } - transactIOResult(s"error when getting node '${id.value}' accept/refuse fact")(xa => q.query[FactLog].unique.transact(xa)) + transactIOResult(s"error when getting node '${id.value}' accept/refuse fact")(xa => q.query[FactLog].option.transact(xa)) } /** diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/policies/DeploymentService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/policies/DeploymentService.scala index 7190bb444c4..34d9198f958 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/policies/DeploymentService.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/policies/DeploymentService.scala @@ -45,11 +45,9 @@ import com.normation.cfclerk.domain.ReportingLogic.FocusReport import com.normation.cfclerk.domain.SectionSpec import com.normation.cfclerk.domain.TechniqueName import com.normation.errors._ -import com.normation.inventory.domain.AcceptedInventory import com.normation.inventory.domain.AixOS import com.normation.inventory.domain.MemorySize import com.normation.inventory.domain.NodeId -import com.normation.inventory.domain.NodeInventory import com.normation.inventory.services.core.ReadOnlyFullInventoryRepository import com.normation.rudder.batch.UpdateDynamicGroups import com.normation.rudder.configuration.ConfigurationRepository @@ -562,7 +560,6 @@ trait PromiseGenerationService { def getDirectiveLibrary(ids: Set[DirectiveId]): Box[FullActiveTechniqueCategory] def getGroupLibrary(): Box[FullNodeGroupCategory] def getAllGlobalParameters: Box[Seq[GlobalParameter]] - def getAllInventories(): Box[Map[NodeId, NodeInventory]] def getGlobalComplianceMode(): Box[GlobalComplianceMode] def getGlobalAgentRun(): Box[AgentRunInterval] def getScriptEngineEnabled: () => Box[FeatureSwitch] @@ -908,8 +905,6 @@ trait PromiseGeneration_performeIO extends PromiseGenerationService { } override def getGroupLibrary(): Box[FullNodeGroupCategory] = roNodeGroupRepository.getFullGroupLibrary().toBox override def getAllGlobalParameters: Box[Seq[GlobalParameter]] = parameterService.getAllGlobalParameters() - override def getAllInventories(): Box[Map[NodeId, NodeInventory]] = - roInventoryRepository.getAllNodeInventories(AcceptedInventory).toBox override def getGlobalComplianceMode(): Box[GlobalComplianceMode] = complianceModeService.getGlobalComplianceMode override def getGlobalAgentRun(): Box[AgentRunInterval] = agentRunService.getGlobalAgentRun() override def getAppliedRuleIds( diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/LdapQueryProcessor.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/LdapQueryProcessor.scala index efb97c8e27b..9bfa5ad6d49 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/LdapQueryProcessor.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/LdapQueryProcessor.scala @@ -38,7 +38,6 @@ package com.normation.rudder.services.queries import cats.implicits._ import com.normation.NamedZioLogger -import com.normation.box._ import com.normation.errors._ import com.normation.errors.RudderError import com.normation.inventory.domain._ @@ -53,13 +52,10 @@ import com.normation.rudder.domain.nodes.NodeInfo import com.normation.rudder.domain.queries._ import com.normation.rudder.repository.ldap.LDAPEntityMapper import com.normation.rudder.services.nodes.NodeInfoService -import com.normation.rudder.services.nodes.NodeInfoServiceCached import com.normation.zio.currentTimeMillis import com.unboundid.ldap.sdk.{LDAPConnection => _, SearchScope => _, _} import com.unboundid.ldap.sdk.DereferencePolicy.NEVER import java.util.regex.Pattern -import net.liftweb.common._ -import net.liftweb.util.Helpers import org.slf4j.LoggerFactory import zio.{System => _, _} import zio.syntax._ @@ -134,79 +130,6 @@ object InternalLDAPQueryProcessorLoggerPure extends NamedZioLogger { override def loggerName: String = "com.normation.rudder.services.queries.InternalLDAPQueryProcessor" } -/** - * Processor that translates Queries into LDAP search operations - * for accepted nodes (it also checks that the node is registered - * in the ou=Nodes branch) - */ -class AcceptedNodesLDAPQueryProcessor( - nodeDit: NodeDit, - inventoryDit: InventoryDit, - processor: InternalLDAPQueryProcessor, - nodeInfoService: NodeInfoServiceCached -) extends QueryProcessor with Loggable { - - private[this] case class QueryResult( - nodeEntry: LDAPEntry, - inventoryEntry: LDAPEntry, - machineInfo: Option[LDAPEntry] - ) - - /** - * only report entries that match query in also in node - * @param query - * @param select - * @param limitToNodeIds - * @return - */ - private[this] def queryAndChekNodeId( - query: Query, - select: Seq[String], - limitToNodeIds: Option[Seq[NodeId]] - ): Box[Seq[NodeId]] = { - - val debugId = if (logger.isDebugEnabled) Helpers.nextNum else 0L - val timePreCompute = System.currentTimeMillis - - for { - foundNodes <- - processor.internalQueryProcessor(query, select, limitToNodeIds, debugId, () => nodeInfoService.getAllNodeInfos()).toBox - timeres = (System.currentTimeMillis - timePreCompute) - _ = logger.debug(s"LDAP result: ${foundNodes.size} entries obtained in ${timeres}ms for query ${query.toString}") - } yield { - // filter out Rudder server component if necessary - query.returnType match { - case NodeReturnType => - // we have a special case for the root node that always never to that group, even if some weird - // scenario lead to the removal (or non addition) of them - val withoutServerRole = foundNodes.filterNot(_.value == "root") - if (logger.isDebugEnabled) { - val filtered = foundNodes.filter(_.value == "root") - if (!filtered.isEmpty) { - logger.debug( - "[%s] [post-filter:policyServer] %s results: %s".format(debugId, withoutServerRole.size, filtered.mkString(", ")) - ) - } - } - withoutServerRole - case NodeAndRootServerReturnType => foundNodes - } - } - } - - override def process(query: Query): Box[Seq[NodeId]] = { - - // only keep the one of the form Full(...) - queryAndChekNodeId(query, Seq(A_NODE_UUID), None) - } - - override def processOnlyId(query: Query): Box[Seq[NodeId]] = { - // only keep the one of the form Full(...) - queryAndChekNodeId(query, Seq(A_NODE_UUID), None) - } - -} - /** * This is the last step of query, where we are looking for check in NodeInfo - and complex, * the json path and check on node properties. @@ -391,13 +314,138 @@ class InternalLDAPQueryProcessor( * We have to make separated requests for special filter, * and we need to have one by filter. So these one are in separated requests. * + * => getMapDn */ - def ldapObjectTypeSets(normalizedQuery: LDAPNodeQuery) = createLDAPObjects(normalizedQuery, debugId) + for { + // log start query + _ <- logPure.debug(s"[${debugId}] Start search for ${query.toString}") + timeStart <- currentTimeMillis + // Construct & normalize the data + nq <- normalizedQuery + // special case: no query, but we create a dummy one, + // identified by noFilterButTakeAllFromCache = true + // in this case, we skip all the ldap part + optdms <- if (nq.noFilterButTakeAllFromCache) { + None.succeed + } else { + getMapDn(nq, debugId) + } + + // Fetching all node infos if necessary + // This is an optimisation procedue, as it is a bit costly to fetch it, so we want to + // have it only if the query is an OR, and Invertion, or and AND and there ae + // no LDAP criteria + allNodesInfos <- query.composition match { + case Or => lambdaAllNodeInfos() + case And if nq.noFilterButTakeAllFromCache => lambdaAllNodeInfos() + case And if query.transform == ResultTransformation.Invert => lambdaAllNodeInfos() + case And if optdms.isDefined => lambdaAllNodeInfos() + + case _ => Seq[NodeInfo]().succeed + } + timefetch <- currentTimeMillis + _ <- + logPure.debug( + s"[${debugId}] LDAP result: fetching if necessary all nodesInfos (${allNodesInfos.size} entries) in nodes obtained in ${timefetch - timeStart} ms for query ${query.toString}." + ) + + // If dnMapSets returns a None, then it means that we are ANDing composition with an empty value + // so we skip the last query + // It needs to returns a Seq because a Set of NodeInfo is really expensive to compute + results <- optdms match { + case None if nq.noFilterButTakeAllFromCache => + allNodesInfos.succeed + case None => + Seq[NodeInfo]().succeed + case Some(dms) => + for { + ids <- executeLdapQueries(dms, nq, select, debugId) + _ <- logPure.trace( + s"[${debugId}] Found ${ids.size} entries ; filtering with ${allNodesInfos.size} accepted nodes" + ) + } yield { + allNodesInfos.filter(nodeInfo => ids.contains(nodeInfo.node.id)) + } + } + // No more LDAP query is required here + // Do the filtering about non LDAP data here + timeldap <- currentTimeMillis + _ <- + logPure.debug( + s"[${debugId}] LDAP result: ${results.size} entries in nodes obtained in ${timeldap - timeStart} ms for query ${query.toString}" + ) + + nodeIdFiltered = query.composition match { + case And if results.isEmpty => + // And and nothing returns nothing + Seq[NodeId]() + case And => + // If i'm doing and AND, there is no need for the allNodes here + PostFilterNodeFromInfoService.getLDAPNodeInfo(results, nq.nodeInfoFilters, query.composition, Seq()) + case Or => + // Here we need the list of all nodes + PostFilterNodeFromInfoService.getLDAPNodeInfo( + results, + nq.nodeInfoFilters, + query.composition, + allNodesInfos + ) + } + timefilter <- currentTimeMillis + _ <- + logPure.debug( + s"[post-filter:rudderNode] Found ${nodeIdFiltered.size} nodes when filtering for info service existence and properties (${timefilter - timeldap} ms)" + ) + _ <- logPure.ifDebugEnabled { + val filtered = results.map(x => x.node.id.value).diff(nodeIdFiltered.map(x => x.value)) + if (filtered.nonEmpty) { + logPure.debug( + s"[${debugId}] [post-filter:rudderNode] ${nodeIdFiltered.size} results (following nodes not in ou=Nodes,cn=rudder-configuration or not matching filters on NodeInfo: ${filtered + .mkString(", ")}" + ) + } else { + logPure.debug( + s"[${debugId}] [post-filter:rudderNode] ${nodeIdFiltered.size} results (following nodes not in ou=Nodes,cn=rudder-configuration or not matching filters on NodeInfo: ${filtered + .mkString(", ")}" + ) + + } + } + + inverted = query.transform match { + case ResultTransformation.Identity => nodeIdFiltered + case ResultTransformation.Invert => + logPure.logEffect.debug(s"[${debugId}] |- (need to get all nodeIds for inversion) ") + val res = allNodesInfos.map(_.id).diff(nodeIdFiltered) + logPure.logEffect.debug(s"[${debugId}] |- (invert) entries after inversion: ${res.size}") + res + } + postFiltered = postFilterNode(inverted, query.returnType, limitToNodeIds) + } yield { + postFiltered + } + } + + /* + * A raw execution without log, special optimisation case, invert, etc + */ + def rawInternalQueryProcessor(query: Query, debugId: Long = 0L): IOResult[Seq[NodeId]] = { + for { + nq <- normalize(query).toIO.chainError("Error when normalizing LDAP query") + ids <- getMapDn(nq, debugId).flatMap { + case None => Seq().succeed + case Some(dns) => executeLdapQueries(dns, nq, Seq("1.1"), debugId) + } + } yield ids + } + + def getMapDn(nq: LDAPNodeQuery, debugId: Long): IOResult[Option[Map[DnType, Set[DN]]]] = { // then, actually execute queries def dnMapMapSets( normalizedQuery: LDAPNodeQuery, - ldapObjectTypeSets: Map[DnType, Map[String, LDAPObjectType]] + ldapObjectTypeSets: Map[DnType, Map[String, LDAPObjectType]], + debugId: Long ): IOResult[Map[DnType, Map[String, Set[DN]]]] = { ZIO .foreach(ldapObjectTypeSets) { @@ -465,14 +513,30 @@ class InternalLDAPQueryProcessor( } } + for { + lots <- createLDAPObjects(nq, debugId) + dmms <- dnMapMapSets(nq, lots, debugId) + } yield { + dnMapSets(nq, dmms) + } + } + + def executeLdapQueries( + dms: Map[DnType, Set[DN]], + nq: LDAPNodeQuery, + select: Seq[String], + debugId: Long + ): IOResult[Seq[NodeId]] = { // transform all the DNs we get to filters for the targeted object type // here, we are objectType dependent: we use a mapping that is saying // "for that objectType, that dnType is transformed into a filter like that" def filterSeqSet(dnMapSets: Map[DnType, Set[DN]]): Seq[Set[Filter]] = { - (dnMapSets map { - case (dnType, dnMapSet) => - dnMapSet map { dn => nodeJoinFilters(dnType)(dn) } - }).toSeq + ( + dnMapSets map { + case (dnType, dnMapSet) => + dnMapSet map { dn => nodeJoinFilters(dnType)(dn) } + } + ).toSeq } // now, build last filter depending on comparator : @@ -515,148 +579,39 @@ class InternalLDAPQueryProcessor( } } - for { - // log start query - _ <- logPure.debug(s"[${debugId}] Start search for ${query.toString}") - timeStart <- currentTimeMillis - // Construct & normalize the data - nq <- normalizedQuery - // special case: no query, but we create a dummy one, - // identified by noFilterButTakeAllFromCache = true - // in this case, we skip all the ldap part - optdms <- { - if (nq.noFilterButTakeAllFromCache) { - None.succeed - } else { - - for { - lots <- ldapObjectTypeSets(nq) - dmms <- dnMapMapSets(nq, lots) - inneroptdms = dnMapSets(nq, dmms) - } yield { - inneroptdms - } - } - } - - // Fetching all node infos if necessary - // This is an optimisation procedue, as it is a bit costly to fetch it, so we want to - // have it only if the query is an OR, and Invertion, or and AND and there ae - // no LDAP criteria - allNodesInfos <- query.composition match { - case Or => lambdaAllNodeInfos() - case And if nq.noFilterButTakeAllFromCache => lambdaAllNodeInfos() - case And if query.transform == ResultTransformation.Invert => lambdaAllNodeInfos() - case And if optdms.isDefined => lambdaAllNodeInfos() - - case _ => Seq[NodeInfo]().succeed - } - timefetch <- currentTimeMillis - _ <- - logPure.debug( - s"LDAP result: fetching if necessary all nodesInfos (${allNodesInfos.size} entries) in nodes obtained in ${timefetch - timeStart} ms for query ${query.toString}." - ) - - // If dnMapSets returns a None, then it means that we are ANDing composition with an empty value - // so we skip the last query - // It needs to returns a Seq because a Set of NodeInfo is really expensive to compute - results <- optdms match { - case None if nq.noFilterButTakeAllFromCache => - allNodesInfos.succeed - case None => - Seq[NodeInfo]().succeed - case Some(dms) => - (for { - // Ok, do the computation here - // still rely on LDAP here - _ <- logPure.ifTraceEnabled { - ZIO.foreachDiscard(dms) { - case (dnType, dns) => - logPure.trace(s"/// ${dnType} ==> ${dns.map(_.getRDN).mkString(", ")}") - } - } - fss = filterSeqSet(dms) - blf <- buildLastFilter(nq, fss) - - // for convenience - (finalLdapFilter, finalSpecialFilters) = blf - - // final query, add "match only server id" filter if needed - rt = nodeObjectTypes.copy(filter = finalLdapFilter) - _ <- logPure.debug(s"[${debugId}] |- (final query) ${rt}") - entries <- executeQuery( - rt.baseDn, - rt.scope, - nodeObjectTypes.objectFilter, - rt.filter, - finalSpecialFilters, - select.toSet, - nq.composition, - debugId - ) - // convert these entries into nodeInfo - nodesId = entries.flatMap(x => x(A_NODE_UUID)).toSet - nodeInfos = allNodesInfos.filter(nodeInfo => nodesId.contains(nodeInfo.node.id.value)) - } yield nodeInfos) - .tapError(err => logPure.debug(s"[${debugId}] `-> error: ${err.fullMsg}")) - .tap(seq => logPure.debug(s"[${debugId}] `-> ${seq.size} results")) - } - // No more LDAP query is required here - // Do the filtering about non LDAP data here - timeldap <- currentTimeMillis - _ <- logPure.debug( - s"LDAP result: ${results.size} entries in nodes obtained in ${timeldap - timeStart} ms for query ${query.toString}" - ) - - nodeIdFiltered = query.composition match { - case And if results.isEmpty => - // And and nothing returns nothing - Seq[NodeId]() - case And => - // If i'm doing and AND, there is no need for the allNodes here - PostFilterNodeFromInfoService.getLDAPNodeInfo(results, nq.nodeInfoFilters, query.composition, Seq()) - case Or => - // Here we need the list of all nodes - PostFilterNodeFromInfoService.getLDAPNodeInfo( - results, - nq.nodeInfoFilters, - query.composition, - allNodesInfos - ) - } - timefilter <- currentTimeMillis - _ <- - logPure.debug( - s"[post-filter:rudderNode] Found ${nodeIdFiltered.size} nodes when filtering for info service existence and properties (${timefilter - timeldap} ms)" - ) - _ <- logPure.ifDebugEnabled { - val filtered = results.map(x => x.node.id.value).diff(nodeIdFiltered.map(x => x.value)) - if (filtered.nonEmpty) { - logPure.debug( - s"[${debugId}] [post-filter:rudderNode] ${nodeIdFiltered.size} results (following nodes not in ou=Nodes,cn=rudder-configuration or not matching filters on NodeInfo: ${filtered - .mkString(", ")}" - ) - } else { - logPure.debug( - s"[${debugId}] [post-filter:rudderNode] ${nodeIdFiltered.size} results (following nodes not in ou=Nodes,cn=rudder-configuration or not matching filters on NodeInfo: ${filtered - .mkString(", ")}" - ) - - } - } - - inverted = query.transform match { - case ResultTransformation.Identity => nodeIdFiltered - case ResultTransformation.Invert => - logPure.logEffect.debug(s"[${debugId}] |- (need to get all nodeIds for inversion) ") - val res = allNodesInfos.map(_.id).diff(nodeIdFiltered) - logPure.logEffect.debug(s"[${debugId}] |- (invert) entries after inversion: ${res.size}") - res - } - postFiltered = postFilterNode(inverted, query.returnType, limitToNodeIds) - } yield { - postFiltered - } + ( + for { + // Ok, do the computation here + // still rely on LDAP here + _ <- logPure.ifTraceEnabled { + ZIO.foreachDiscard(dms) { + case (dnType, dns) => + logPure.trace(s"/// ${dnType} ==> ${dns.map(_.getRDN).mkString(", ")}") + } + } + fss = filterSeqSet(dms) + blf <- buildLastFilter(nq, fss) + + // for convenience + (finalLdapFilter, finalSpecialFilters) = blf + + // final query, add "match only server id" filter if needed + rt = nodeObjectTypes.copy(filter = finalLdapFilter) + _ <- logPure.debug(s"[${debugId}] |- (final query) ${rt}") + entries <- executeQuery( + rt.baseDn, + rt.scope, + nodeObjectTypes.objectFilter, + rt.filter, + finalSpecialFilters, + select.toSet, + nq.composition, + debugId + ) + } yield entries.flatMap(x => x(A_NODE_UUID).map(NodeId(_))) + ) + .tapError(err => logPure.debug(s"[${debugId}] `-> error: ${err.fullMsg}")) + .tap(seq => logPure.debug(s"[${debugId}] `-> ${seq.size} results")) } /** diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/NodeFactQueryProcessor.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/NodeFactQueryProcessor.scala new file mode 100644 index 00000000000..f6275ab5c70 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/queries/NodeFactQueryProcessor.scala @@ -0,0 +1,248 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.services.queries + +import com.normation.box._ +import com.normation.errors.IOResult +import com.normation.inventory.domain.AcceptedInventory +import com.normation.inventory.domain.InventoryStatus +import com.normation.inventory.domain.NodeId +import com.normation.inventory.domain.PendingInventory +import com.normation.inventory.domain.RemovedInventory +import com.normation.rudder.domain.logger.FactQueryProcessorLoggerPure +import com.normation.rudder.domain.nodes.NodeGroupId +import com.normation.rudder.domain.nodes.NodeGroupUid +import com.normation.rudder.domain.nodes.NodeKind +import com.normation.rudder.domain.queries._ +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.NodeFactRepository +import com.normation.rudder.facts.nodes.SelectNodeStatus +import com.normation.zio._ +import net.liftweb.common.Box +import zio._ +import zio.stream.ZSink +import zio.syntax._ + +/* + * A NodeFactMatcher is the transformation of a query into a method that is able to + * eval a NodeFact for that Query. + * It takes into account: + * - the different case (node, root, invert, etc) + * - the query criteria + * + * NodeFactMatcher is a group for AND and for OR + */ +final case class NodeFactMatcher(debugString: String, matches: CoreNodeFact => IOResult[Boolean]) + +object NodeFactMatcher { + val nodeAndRelayMatcher = { + val s = "only matches node and relay" + NodeFactMatcher( + s, + (n: CoreNodeFact) => { + for { + res <- (n.rudderSettings.kind != NodeKind.Root).succeed + _ <- FactQueryProcessorLoggerPure.trace(s" [${res}] for $s on '${n.rudderSettings.kind}'") + } yield res + } + ) + } +} + +trait Group { + def compose(a: NodeFactMatcher, b: NodeFactMatcher): NodeFactMatcher + def inverse(a: NodeFactMatcher): NodeFactMatcher + def zero: NodeFactMatcher +} +object GroupAnd extends Group { + def compose(a: NodeFactMatcher, b: NodeFactMatcher) = { + (a, b) match { + case (`zero`, _) => b + case (_, `zero`) => a + case _ => NodeFactMatcher(s"(${a.debugString}) && (${b.debugString})", (n: CoreNodeFact) => (a.matches(n) && b.matches(n))) + } + } + def inverse(a: NodeFactMatcher) = NodeFactMatcher(s"!(${a.debugString})", (n: CoreNodeFact) => a.matches(n).map(!_)) + val zero = NodeFactMatcher("true", _ => true.succeed) +} + +object GroupOr extends Group { + def compose(a: NodeFactMatcher, b: NodeFactMatcher) = { + (a, b) match { + case (`zero`, _) => b + case (_, `zero`) => a + case _ => NodeFactMatcher(s"(${a.debugString}) || (${b.debugString})", (n: CoreNodeFact) => (a.matches(n) || b.matches(n))) + } + } + def inverse(a: NodeFactMatcher) = NodeFactMatcher(s"!(${a.debugString})", (n: CoreNodeFact) => a.matches(n).map(!_)) + val zero = NodeFactMatcher("false", _ => false.succeed) +} + +class NodeFactQueryProcessor( + nodeFactRepo: NodeFactRepository, + groupRepo: SubGroupComparatorRepository, + ldapQueryProc: InternalLDAPQueryProcessor, + status: InventoryStatus = AcceptedInventory +) extends QueryProcessor with QueryChecker { + + def process(query: Query): Box[Seq[NodeId]] = processPure(query).map(_.toList.map(_.id)).toBox + def processOnlyId(query: Query): Box[Seq[NodeId]] = processPure(query).map(_.toList.map(_.id)).toBox + + def check(query: Query, nodeIds: Option[Seq[NodeId]]): IOResult[Set[NodeId]] = { ??? } + def processPure(query: Query): IOResult[Chunk[CoreNodeFact]] = { + def process(s: SelectNodeStatus) = { + for { + t0 <- currentTimeMillis + m <- analyzeQuery(query) + t1 <- currentTimeMillis + _ <- FactQueryProcessorLoggerPure.Metrics.debug(s"Analyse query in ${t1 - t0} ms") + res <- nodeFactRepo + .getAll()(s) + .filterZIO(node => FactQueryProcessorLoggerPure.debug(m.debugString) *> processOne(m, node)) + .run(ZSink.collectAll) + t2 <- currentTimeMillis + _ <- FactQueryProcessorLoggerPure.Metrics.debug(s"Run query in ${t2 - t1} ms") + _ <- FactQueryProcessorLoggerPure.debug(s"Found ${res.size} results") + _ <- FactQueryProcessorLoggerPure.trace(s"Matching nodes: '${res.map(_.id.value).mkString("', '")}'") + } yield res + } + + status match { + case AcceptedInventory => process(SelectNodeStatus.Accepted) + case PendingInventory => process(SelectNodeStatus.Pending) + case RemovedInventory => Chunk.empty.succeed + } + } + + /* + * transform the query into a function to apply to a NodeFact and that say "yes" or "no" + * + * We have different "querier": + * - CoreNodeFact (we have info in cache) + * - SubGroupQuery (we want to do only one query to external service for each line) + * - LdapQuery (we want to have all lines of that kind grouped in a new query) + */ + def analyzeQuery(query: Query): IOResult[NodeFactMatcher] = { + val group = if (query.composition == And) GroupAnd else GroupOr + + // we need a better pattern matching (extensible would be better) in place of `isInstanceOf` + val subgroupLines = subGroupMatcher( + query.criteria.collect { + case l if l.attribute.cType.isInstanceOf[SubGroupComparator] => l + }, + groupRepo + ) + val ldapLines = ldapMatcher( + query.criteria.collect { + case l if l.attribute.cType.isInstanceOf[LDAPCriterionType] => l + }, + query + ) + val nodeLines = nodeFactMatcher(query.criteria.collect { + case l if l.attribute.nodeCriterionMatcher != UnsupportedByNodeMinimalApi => l + }) + + for { + // build matcher for criterion lines + lineResult <- ZIO.foldLeft(subgroupLines ++ ldapLines ++ nodeLines)(group.zero) { + case (matcher, line) => + line.map(group.compose(matcher, _)) + } + } yield { + // inverse now if needed, because we don't want to return root if not asked *even* when inverse is present + val inv = if (query.transform == ResultTransformation.Invert) group.inverse(lineResult) else lineResult + // finally, filter out root if need + val res = + if (query.returnType == NodeAndRootServerReturnType) inv else GroupAnd.compose(NodeFactMatcher.nodeAndRelayMatcher, inv) + res + } + } + + // here, we have two kinds of processing: + // - one is testing on a node by node basis: this is the main case, where we want to know if a node + // matches of not a bunch of criteria regarding its inventory/properties + // - one is "on all node at once": it is when an external service is the oracle and can decide what node + // matches its criteria. This is the case for the node-group matcher for example. + // For now, we have to check the criterion to know, each external service is a special case + def ldapMatcher(lines: Seq[CriterionLine], q: Query): Seq[IOResult[NodeFactMatcher]] = { + // for LDAP, we rebuild a false query with only these lines and no transformation + val ldapQuery = q.copy(transform = ResultTransformation.Identity, criteria = lines.toList) + Seq(for { + nodeIds <- ldapQueryProc.rawInternalQueryProcessor(ldapQuery) + } yield { + NodeFactMatcher( + s"[sub-ldap query ${ldapQuery.toString()}]", + (n: CoreNodeFact) => nodeIds.contains(n.id).succeed + ) + }) + } + + def nodeFactMatcher(lines: Seq[CriterionLine]): Seq[IOResult[NodeFactMatcher]] = { + lines.map { c => + NodeFactMatcher( + s"[${c.objectType.objectType}.${c.attribute.name} ${c.comparator.id} ${c.value}]", + (n: CoreNodeFact) => c.attribute.nodeCriterionMatcher.matches(n, c.comparator, c.value) + ).succeed + } + } + + def subGroupMatcher( + lines: Seq[CriterionLine], + groupRepo: SubGroupComparatorRepository + ): Seq[IOResult[NodeFactMatcher]] = { + lines.map { c => + for { + groupNodes <- groupRepo.getNodeIds(NodeGroupId(NodeGroupUid(c.value))) + } yield { + NodeFactMatcher( + s"[${c.objectType.objectType}.${c.attribute.name} ${c.comparator.id} ${c.value}]", + (n: CoreNodeFact) => groupNodes.contains(n.id).succeed + ) + } + } + } + + def processOne(matcher: NodeFactMatcher, n: CoreNodeFact): IOResult[Boolean] = { + for { + _ <- FactQueryProcessorLoggerPure.debug(s" --'${n.fqdn}' (${n.id.value})--") + res <- matcher.matches(n) + _ <- FactQueryProcessorLoggerPure.debug(s" = [${res}] on '${n.fqdn}' (${n.id.value})") + } yield res + } + +} diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchBackendImpl.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchBackendImpl.scala index 948901eaf62..ffe35d4eb56 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchBackendImpl.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchBackendImpl.scala @@ -38,7 +38,6 @@ package com.normation.rudder.services.quicksearch import com.normation.box._ -import com.normation.inventory.ldap.core.InventoryDit import com.normation.inventory.ldap.core.LDAPConstants._ import com.normation.ldap.sdk.BuildFilter._ import com.normation.ldap.sdk.LDAPBoolean @@ -46,15 +45,17 @@ import com.normation.ldap.sdk.LDAPConnectionProvider import com.normation.ldap.sdk.LDAPEntry import com.normation.ldap.sdk.RoLDAPConnection import com.normation.ldap.sdk.Sub -import com.normation.rudder.domain.NodeDit import com.normation.rudder.domain.RudderDit import com.normation.rudder.domain.RudderLDAPConstants._ import com.normation.rudder.domain.policies.Tag import com.normation.rudder.domain.policies.TagName import com.normation.rudder.domain.policies.TagValue +import com.normation.rudder.domain.properties.NodeProperty +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.MinimalNodeFactInterface +import com.normation.rudder.facts.nodes.NodeFactRepository import com.normation.rudder.repository.RoDirectiveRepository import com.normation.rudder.repository.json.DataExtractor.CompleteJson -import com.normation.rudder.services.nodes.NodeInfoService import com.unboundid.ldap.sdk.Attribute import com.unboundid.ldap.sdk.Filter import java.util.regex.Pattern @@ -62,6 +63,7 @@ import net.liftweb.common.Box import net.liftweb.common.Full import net.liftweb.common.Loggable import scala.util.control.NonFatal +import zio.stream.ZSink /** * Correctly quote a token @@ -72,15 +74,118 @@ object QSPattern { } /** - * This file contains the differents possible implementation of + * This file contains the different possible implementations of * quick search backends. * * Backend are able to transform a query in a set of * quicksearch results. * - * For now, we have one for directive, and a different one + * For now, we have one for nodefacts, one for directive, and a different one * of everything else. */ +object QSNodeFactBackend extends Loggable { + import QSAttribute.{NodeId => QSNodeId, _} + import QSObject.{Node => QSNode} + import QuickSearchResultId.QRNodeId + + /* + * The filter that allows to know if a couple (activeTechnique, directive) match + * the expected query + */ + + /** + * Lookup directives + */ + def search(query: Query)(implicit repo: NodeFactRepository): Box[Seq[QuickSearchResult]] = { + + // only search if query is on Directives and attributes contains + // DirectiveId, DirectiveVarName, DirectiveVarValue, TechniqueName, TechniqueVersion + + val attributes: Set[QSAttribute] = query.attributes.intersect(QSObject.Node.attributes) + + if (query.objectClass.contains(QSNode) && attributes.nonEmpty) { + + repo + .getAll() + .mapConcat((n: CoreNodeFact) => attributes.flatMap(a => a.find(n, query.userToken))) + .run(ZSink.collectAll) + .toBox + } else { + Full(Seq()) + } + } + + implicit class QSAttributeFilter(val a: QSAttribute) extends AnyVal { + + private[this] def toMatch(node: CoreNodeFact): Option[Set[(String, String)]] = { + + def someSet(v: String) = Some(Set((v, v))) + def optSet(v: Option[String]) = v.map(x => Set((x, x))) + + /* + * A set of value to check against / value to return to the user + */ + a match { + case QSNodeId => someSet(node.id.value) + case Fqdn => someSet(node.fqdn) + case OsType => someSet(node.os.os.kernelName) + case OsName => someSet(node.os.os.name) + case OsVersion => someSet(node.os.version.value) + case OsFullName => someSet(node.os.fullName) + case OsKernelVersion => someSet(node.os.kernelVersion.value) + case OsServicePack => optSet(node.os.servicePack) + case Arch => optSet(node.archDescription) + case Ram => optSet(node.ram.map(_.size.toString)) + case IpAddresses => Some(MinimalNodeFactInterface.ipAddresses(node).map(ip => (ip, ip)).toSet) + case PolicyServerId => someSet(node.rudderSettings.policyServerId.value) + case Properties => + Some(node.properties.collect { + case p if (p.provider != Some(NodeProperty.customPropertyProvider)) => (p.toData, p.toData) + }.toSet) + case GroupProperties => None + case CustomProperties => + Some(node.properties.collect { + case p if (p.provider == Some(NodeProperty.customPropertyProvider)) => (p.toData, p.toData) + }.toSet) + case NodeState => someSet(node.rudderSettings.state.name) + case DirectiveId => None + case DirectiveVarName => None + case DirectiveVarValue => None + case TechniqueName => None + case TechniqueId => None + case TechniqueVersion => None + case Description => None + case LongDescription => None + case Name => None + case IsEnabled => None + case Tags => None + case TagKeys => None + case TagValues => None + case GroupId => None + case IsDynamic => None + case ParameterName => None + case ParameterValue => None + case RuleId => None + case DirectiveIds => None + case Targets => None + } + } + + def find(node: CoreNodeFact, token: String): Option[QuickSearchResult] = { + toMatch(node).flatMap { set => + set.collectFirst { + case (s, value) if QSPattern(token).matcher(s).matches => + QuickSearchResult( + QRNodeId(node.id.value), + s"${node.fqdn} [${node.id.value}]", + Some(a), + value + ) + } + } + } + } +} object QSDirectiveBackend extends Loggable { import QSAttribute.{DirectiveId => QSDirectiveId, _} @@ -97,7 +202,7 @@ object QSDirectiveBackend extends Loggable { /** * Lookup directives */ - def search(query: Query)(implicit repo: RoDirectiveRepository): Box[Set[QuickSearchResult]] = { + def search(query: Query)(implicit repo: RoDirectiveRepository): Box[Seq[QuickSearchResult]] = { // only search if query is on Directives and attributes contains // DirectiveId, DirectiveVarName, DirectiveVarValue, TechniqueName, TechniqueVersion @@ -114,10 +219,10 @@ object QSDirectiveBackend extends Loggable { attribute <- attributes } yield { attribute.find(at, dir, query.userToken) - }).flatten.toSet + }).flatten.toSeq } } else { - Full(Set()) + Full(Seq()) } } @@ -197,8 +302,8 @@ object QSDirectiveBackend extends Loggable { } /** - * The whole LDAP backend logic: look for Nodes, NodeGroups, Parameters, Rules, - * but not Directives. + * The whole LDAP backend logic: look for NodeGroups, Parameters, Rules, + * but not Directives nor Nodes */ object QSLdapBackend { import QSAttribute._ @@ -209,10 +314,7 @@ object QSLdapBackend { */ def search(query: Query)(implicit ldap: LDAPConnectionProvider[RoLDAPConnection], - inventoryDit: InventoryDit, - nodeDit: NodeDit, - rudderDit: RudderDit, - nodeInfos: NodeInfoService + rudderDit: RudderDit ): Box[Seq[QuickSearchResult]] = { // the filter for attribute and for attributes must be non empty, else return nothing val ocFilter = query.objectClass.map(_.filter).flatten.toSeq @@ -229,31 +331,16 @@ object QSLdapBackend { for { connection <- ldap - nodeIds <- nodeInfos.getAllNodesIds() - entries <- connection.search(nodeDit.BASE_DN, Sub, filter, returnedAttributes: _*) + entries <- connection.search(rudderDit.BASE_DN, Sub, filter, returnedAttributes: _*) } yield { if (ocFilter.isEmpty || attrFilter.isEmpty) { // nothing to search for in that backend Seq() } else { - - // here, we must merge "nodes" so that we don't report in log two times too many results, - // and we get node always with a hostname - val (nodes, others) = entries.partition(x => x.isA(OC_NODE) || x.isA(OC_RUDDER_NODE)) - // merge node attribute for node entries with same node id - val merged = nodes.groupBy(_.value_!(A_NODE_UUID)).filter(e => nodeIds.map(_.value).contains(e._1)).map { - case (_, samenodes) => - samenodes.reduce[LDAPEntry] { - case (n1, n2) => - n2.attributes.foreach(a => n1 mergeAttribute a) - n1 - } - } - // transformat LDAPEntries to quicksearch results, keeping only the attribute // that matches the query on the result and no system entries but nodes. // Also, only keep nodes that exists. - (others ++ merged).flatMap(_.toResult(query)) + entries.flatMap(_.toResult(query)) } } }.toBox @@ -267,24 +354,24 @@ object QSLdapBackend { Description -> A_DESCRIPTION, LongDescription -> A_LONG_DESCRIPTION, IsEnabled -> A_IS_ENABLED, - NodeId -> A_NODE_UUID, - Fqdn -> A_HOSTNAME, - OsType -> A_OC, - OsName -> A_OS_NAME, - OsVersion -> A_OS_VERSION, - OsFullName -> A_OS_FULL_NAME, - OsKernelVersion -> A_OS_KERNEL_VERSION, - OsServicePack -> A_OS_SERVICE_PACK, - Arch -> A_ARCH, - Ram -> A_OS_RAM, - IpAddresses -> A_LIST_OF_IP, - PolicyServerId -> A_POLICY_SERVER_UUID, - Properties -> A_NODE_PROPERTY, - GroupProperties -> A_JSON_PROPERTY, - CustomProperties -> A_CUSTOM_PROPERTY, - NodeState -> A_STATE, GroupId -> A_NODE_GROUP_UUID, IsDynamic -> A_IS_DYNAMIC, + NodeId -> A_NODE_UUID, + Fqdn -> "", + OsType -> "", + OsName -> "", + OsVersion -> "", + OsFullName -> "", + OsKernelVersion -> "", + OsServicePack -> "", + Arch -> "", + Ram -> "", + IpAddresses -> "", + PolicyServerId -> "", + Properties -> "", + GroupProperties -> A_JSON_PROPERTY, + CustomProperties -> "", + NodeState -> "", DirectiveId -> "", DirectiveVarName -> "", DirectiveVarValue -> "", @@ -463,17 +550,12 @@ object QSLdapBackend { * Build LDAP filter for a QSObject */ implicit final class QSObjectLDAPFilter(obj: QSObject)(implicit - inventoryDit: InventoryDit, - nodeDit: NodeDit, rudderDit: RudderDit ) { def filter = obj match { case Common => Nil - case Node => ( - AND(IS(OC_NODE), Filter.create(s"entryDN:dnOneLevelMatch:=${inventoryDit.NODES.dn.toString}")) - :: AND(IS(OC_RUDDER_NODE), Filter.create(s"entryDN:dnOneLevelMatch:=${nodeDit.NODES.dn.toString}")) :: Nil - ) + case Node => Nil case Group => AND(IS(OC_RUDDER_NODE_GROUP), Filter.create(s"entryDN:dnSubtreeMatch:=${rudderDit.GROUP.dn.toString}")) :: Nil case Directive => Nil case Parameter => @@ -485,15 +567,13 @@ object QSLdapBackend { /** * correctly transform entry to a result, putting what is needed in type and description */ - implicit final class EntryToSearchResult(val e: LDAPEntry)(implicit val nodeInfos: NodeInfoService) { + implicit final class EntryToSearchResult(val e: LDAPEntry) { import QSAttributeLdapFilter._ import QuickSearchResultId._ def toResult(query: Query): Option[QuickSearchResult] = { def getId(e: LDAPEntry): Option[QuickSearchResultId] = { - if (e.isA(OC_NODE)) { e(A_NODE_UUID).map(QRNodeId) } - else if (e.isA(OC_RUDDER_NODE)) { e(A_NODE_UUID).map(QRNodeId) } - else if (e.isA(OC_RULE)) { e(A_RULE_UUID).map(QRRuleId) } + if (e.isA(OC_RULE)) { e(A_RULE_UUID).map(QRRuleId) } else if (e.isA(OC_RUDDER_NODE_GROUP)) { e(A_NODE_GROUP_UUID).map(QRGroupId) } else if (e.isA(OC_PARAMETER)) { e(A_PARAMETER_NAME).map(QRParameterId) @@ -565,17 +645,7 @@ object QSLdapBackend { if (isNodeOrNotSystem(e)) } yield { // prefer hostname for nodes - val defaultName = e(A_HOSTNAME).orElse(e(A_NAME)).getOrElse(id.value) - val name = { - if (e.isA(OC_NODE) || e.isA(OC_RUDDER_NODE)) { - import com.normation.zio._ - getId(e) - .flatMap(id => nodeInfos.getNodeInfo(com.normation.inventory.domain.NodeId(id.value)).runNow.map(_.hostname)) - .getOrElse(defaultName) - } else { - defaultName - } - } + val name = e(A_HOSTNAME).orElse(e(A_NAME)).getOrElse(id.value) QuickSearchResult(id, name, Some(attr), desc) } } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchDomain.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchDomain.scala index 2ba176bd86e..acc0c955549 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchDomain.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchDomain.scala @@ -60,9 +60,9 @@ final case class Query( */ sealed trait QSBackend object QSBackend { - case object LdapBackend extends QSBackend - case object DirectiveBackend extends QSBackend - + final case object LdapBackend extends QSBackend + final case object DirectiveBackend extends QSBackend + final case object NodeFactBackend extends QSBackend final val all: Set[QSBackend] = sealerate.values[QSBackend] } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchService.scala index 44d61ae9837..868b2c475bd 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchService.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/quicksearch/QuickSearchService.scala @@ -43,8 +43,8 @@ import com.normation.ldap.sdk.LDAPConnectionProvider import com.normation.ldap.sdk.RoLDAPConnection import com.normation.rudder.domain.NodeDit import com.normation.rudder.domain.RudderDit +import com.normation.rudder.facts.nodes.NodeFactRepository import com.normation.rudder.repository.RoDirectiveRepository -import com.normation.rudder.services.nodes.NodeInfoService import com.normation.utils.Control._ import net.liftweb.common.Box import net.liftweb.common.EmptyBox @@ -64,7 +64,7 @@ class FullQuickSearchService(implicit val inventoryDit: InventoryDit, val rudderDit: RudderDit, val directiveRepo: RoDirectiveRepository, - val nodeInfos: NodeInfoService + val nodeInfos: NodeFactRepository ) extends Loggable { import QuickSearchService._ @@ -111,14 +111,15 @@ object QuickSearchService { inventoryDit: InventoryDit, nodeDit: NodeDit, rudderDit: RudderDit, - nodeInfos: NodeInfoService + nodeFactRepo: NodeFactRepository ) { import QSBackend._ - def search(query: Query) = b match { + def search(query: Query): Box[Seq[QuickSearchResult]] = b match { case LdapBackend => QSLdapBackend.search(query) case DirectiveBackend => QSDirectiveBackend.search(query) + case NodeFactBackend => QSNodeFactBackend.search(query) } } diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/PolicyServerManagementService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/PolicyServerManagementService.scala index 78eef95f7fd..86d1670ce71 100644 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/PolicyServerManagementService.scala +++ b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/PolicyServerManagementService.scala @@ -75,6 +75,7 @@ import com.normation.rudder.domain.queries.Criterion import com.normation.rudder.domain.queries.CriterionLine import com.normation.rudder.domain.queries.Equals import com.normation.rudder.domain.queries.NodeAndRootServerReturnType +import com.normation.rudder.domain.queries.NodeCriterionMatcherString import com.normation.rudder.domain.queries.ObjectCriterion import com.normation.rudder.domain.queries.Query import com.normation.rudder.domain.queries.ResultTransformation @@ -611,9 +612,10 @@ object PolicyServerConfigurationObjects { Criterion( "policyServerId", StringComparator, + NodeCriterionMatcherString(n => Chunk(n.rudderSettings.policyServerId.value)), None ), - Criterion("agentName", AgentComparator, None) + Criterion("agentName", AgentComparator, NodeCriterionMatcherString(n => Chunk(n.rudderAgent.agentType.id)), None) ) ) NodeGroup( @@ -629,13 +631,17 @@ object PolicyServerConfigurationObjects { List( CriterionLine( objectType, - Criterion("agentName", StringComparator), + Criterion("agentName", StringComparator, NodeCriterionMatcherString(n => Chunk(n.rudderAgent.agentType.id))), Equals, "cfengine" ), CriterionLine( objectType, - Criterion("policyServerId", StringComparator), + Criterion( + "policyServerId", + StringComparator, + NodeCriterionMatcherString(n => Chunk(n.rudderSettings.policyServerId.value)) + ), Equals, nodeId.value ) diff --git a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/ServerSummaryService.scala b/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/ServerSummaryService.scala deleted file mode 100644 index cf1c1aba248..00000000000 --- a/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/rudder/services/servers/ServerSummaryService.scala +++ /dev/null @@ -1,113 +0,0 @@ -/* - ************************************************************************************* - * Copyright 2011 Normation SAS - ************************************************************************************* - * - * This file is part of Rudder. - * - * Rudder is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * In accordance with the terms of section 7 (7. Additional Terms.) of - * the GNU General Public License version 3, the copyright holders add - * the following Additional permissions: - * Notwithstanding to the terms of section 5 (5. Conveying Modified Source - * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General - * Public License version 3, when you create a Related Module, this - * Related Module is not considered as a part of the work and may be - * distributed under the license agreement of your choice. - * A "Related Module" means a set of sources files including their - * documentation that, without modification of the Source Code, enables - * supplementary functions or services in addition to those offered by - * the Software. - * - * Rudder is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Rudder. If not, see . - - * - ************************************************************************************* - */ - -package com.normation.rudder.services.servers - -import com.normation.box._ -import com.normation.errors.IOResult -import com.normation.inventory.domain._ -import com.normation.inventory.ldap.core.InventoryDitService -import com.normation.ldap.sdk._ -import com.normation.rudder.domain.servers.Srv -import net.liftweb.common._ -import zio._ - -trait NodeSummaryService { - - /** - * Retrieve minimal information about the server - */ - def find(status: InventoryStatus, id: NodeId*): Box[Seq[Srv]] -} - -import com.normation.inventory.ldap.core._ -import com.normation.rudder.domain.RudderLDAPConstants._ -import org.joda.time.DateTime - -class NodeSummaryServiceImpl( - inventoryDitService: InventoryDitService, - inventoryMapper: InventoryMapper, - ldap: LDAPConnectionProvider[RoLDAPConnection] -) extends NodeSummaryService with Loggable { - - /** - * build a Srv from an LDAP Entry, using a node inventory - * for the mapping part - */ - def makeSrv(e: LDAPEntry): IOResult[Srv] = { - - for { - node <- inventoryMapper.nodeFromEntry(e) - } yield { - // fetch the creation datetime of the object - val dateTime = { - e(A_OBJECT_CREATION_DATE) match { - case None => DateTime.now() - case Some(date) => - GeneralizedTime.parse(date) match { - case Some(value) => value.dateTime - case None => DateTime.now() - } - } - } - - Srv( - id = node.main.id, - status = node.main.status, - hostname = node.main.hostname, - osType = node.main.osDetails.os.kernelName, - osName = node.main.osDetails.os.name, - osFullName = node.main.osDetails.fullName, - ips = node.serverIps.toList, - creationDate = dateTime, - isPolicyServer = e.isA(OC_POLICY_SERVER_NODE) - ) - } - } - - override def find(status: InventoryStatus, ids: NodeId*): Box[Seq[Srv]] = { - for { - con <- ldap - dit = inventoryDitService.getDit(status) - optEntries <- ZIO.foreach(ids)(id => con.get(dit.NODES.NODE.dn(id), Srv.ldapAttributes.toSeq: _*)) - srvs <- ZIO.foreach(optEntries.flatten)(e => makeSrv(e)) - } yield { - srvs - } - }.toBox - -} diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/inventories/7.2/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs b/webapp/sources/rudder/rudder-core/src/test/resources/inventories/7.2/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs new file mode 100644 index 00000000000..4acfdeaf688 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/inventories/7.2/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs @@ -0,0 +1,9332 @@ + + + + + 2023-04-03 12:24:57 + + + 12/01/2006 + innotek GmbH + VirtualBox + Oracle Corporation + VirtualBox + 0 + innotek GmbH + VirtualBox + 612f53b7-cdf4-f847-b938-71fe8ecc239d + + + 440FX - 82441FX PMC [Natoma] + Intel Corporation + 440FX - 82441FX PMC [Natoma] + 0600 + 00:00.0 + 1237 + 02 + Host bridge + 8086 + + + 82371SB PIIX3 ISA [Natoma/Triton II] + Intel Corporation + 82371SB PIIX3 ISA [Natoma/Triton II] + 0601 + 00:01.0 + 7000 + ISA bridge + 8086 + + + 82371AB/EB/MB PIIX4 IDE + ata_piix + Intel Corporation + 82371AB/EB/MB PIIX4 IDE + 0101 + 00:01.1 + 7111 + 01 + IDE interface + 8086 + + + VirtualBox Graphics Adapter + vboxvideo + InnoTek Systemberatung GmbH + VirtualBox Graphics Adapter + 0300 + 00:02.0 + beef + VGA compatible controller + 80ee + + + 82540EM Gigabit Ethernet Controller + e1000 + Intel Corporation + 82540EM Gigabit Ethernet Controller + 0200 + 00:03.0 + 100e + 02 + Ethernet controller + 8086 + + + VirtualBox Guest Service + vboxguest + InnoTek Systemberatung GmbH + VirtualBox Guest Service + 0880 + 00:04.0 + cafe + System peripheral + 80ee + + + 82801AA AC'97 Audio Controller + Intel Corporation + 82801AA AC'97 Audio Controller + 0401 + 00:05.0 + 2415 + 01 + Multimedia audio controller + 8086 + + + 82371AB/EB/MB PIIX4 ACPI + Intel Corporation + 82371AB/EB/MB PIIX4 ACPI + 0680 + 00:07.0 + 7113 + 08 + Bridge + 8086 + + + 82540EM Gigabit Ethernet Controller + e1000 + Intel Corporation + 82540EM Gigabit Ethernet Controller + 0200 + 00:08.0 + 100e + 02 + Ethernet controller + 8086 + + + 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI + mptspi + LSI Logic / Symbios Logic + 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI + 0100 + 00:14.0 + 0030 + SCSI storage controller + 1000 + + + i386 + 1 + 25 + AMD + 68 + AMD Ryzen 7 PRO 6850U with Radeon Graphics + 1 + 1 + + + ext4 + 37926 + d2a60571-4a8d-4496-a55f-c9303e2a11dd + 39630 + / + /dev/sda1 + + + vboxsf + 565605 + 870384 + /vagrant + vagrant + + + MAIL + /var/mail/root + + + SHLVL + 1 + + + SUDO_COMMAND + /usr/bin/su + + + SUDO_UID + 1000 + + + RUDDER_BIN + /usr/bin/rudder + + + _ + /usr/bin/rudder + + + DEBIAN_FRONTEND + noninteractive + + + LESSCLOSE + /usr/bin/lesspipe %s %s + + + LS_COLORS + rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: + + + PWD + /var/rudder + + + LOGNAME + root + + + HOME + /root + + + LESSOPEN + | /usr/bin/lesspipe %s + + + TERM + xterm + + + USER + root + + + SHELL + /bin/bash + + + SUDO_USER + vagrant + + + BASEDIR + /opt/rudder/share/commands + + + SUDO_GID + 1000 + + + PATH + /opt/rudder/bin:/usr/gnu/bin:/opt/rudder/bin:/usr/gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/usr/sbin:/sbin:/usr/sbin + + + off + + + Other + 131071 + Mon Apr 3 11:20 + 10.0.2.2 + 127.0.0.53 + 4 + 10.0.2.15/192.168.31.5 + vagrant + 467 + node2 + #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022 + Ubuntu 22.04 LTS + 5.15.0-41-generic + 1 + AMD Ryzen 7 PRO 6850U with Radeon Graphics + vagrant + 612f53b7-cdf4-f847-b938-71fe8ecc239d + VirtualBox + . + + + AT Translated Set 2 keyboard + AT Translated Set 2 keyboard + sysrq + + + ImExPS/2 Generic Explorer Mouse + ImExPS/2 Generic Explorer Mouse + Pointing + + + Video Bus + Video Bus + Keyboard + + + 4 + syslog + ubuntu + adm + + + 20 + ubuntu + dialout + + + 24 + ubuntu + cdrom + + + 25 + ubuntu + floppy + + + 27 + ubuntu + sudo + + + 29 + ubuntu + audio + + + 30 + ubuntu + dip + + + 44 + ubuntu + video + + + 46 + ubuntu + plugdev + + + 118 + ubuntu + netdev + + + 119 + ubuntu + lxd + + + /root + 0 + root + root + /bin/bash + + + /usr/sbin + 1 + daemon + daemon + /usr/sbin/nologin + + + /bin + 2 + bin + bin + /usr/sbin/nologin + + + /dev + 3 + sys + sys + /usr/sbin/nologin + + + /bin + 4 + sync + sync + /bin/sync + + + /usr/games + 5 + games + games + /usr/sbin/nologin + + + /var/cache/man + 6 + man + man + /usr/sbin/nologin + + + /var/spool/lpd + 7 + lp + lp + /usr/sbin/nologin + + + /var/mail + 8 + mail + mail + /usr/sbin/nologin + + + /var/spool/news + 9 + news + news + /usr/sbin/nologin + + + /var/spool/uucp + 10 + uucp + uucp + /usr/sbin/nologin + + + /bin + 13 + proxy + proxy + /usr/sbin/nologin + + + /var/www + 33 + www-data + www-data + /usr/sbin/nologin + + + /var/backups + 34 + backup + backup + /usr/sbin/nologin + + + /var/list + 38 + list + Mailing List Manager + /usr/sbin/nologin + + + /run/ircd + 39 + irc + ircd + /usr/sbin/nologin + + + /var/lib/gnats + 41 + gnats + Gnats Bug-Reporting System (admin) + /usr/sbin/nologin + + + /nonexistent + 65534 + nobody + nobody + /usr/sbin/nologin + + + /run/systemd + 100 + systemd-network + systemd Network Management,,, + /usr/sbin/nologin + + + /run/systemd + 101 + systemd-resolve + systemd Resolver,,, + /usr/sbin/nologin + + + /nonexistent + 102 + messagebus + + /usr/sbin/nologin + + + /run/systemd + 103 + systemd-timesync + systemd Time Synchronization,,, + /usr/sbin/nologin + + + /home/syslog + 104 + syslog + + /usr/sbin/nologin + + + /nonexistent + 105 + _apt + + /usr/sbin/nologin + + + /var/lib/tpm + 106 + tss + TPM software stack,,, + /bin/false + + + /run/uuidd + 107 + uuidd + + /usr/sbin/nologin + + + /nonexistent + 108 + tcpdump + + /usr/sbin/nologin + + + /run/sshd + 109 + sshd + + /usr/sbin/nologin + + + /var/cache/pollinate + 110 + pollinate + + /bin/false + + + /var/lib/landscape + 111 + landscape + + /usr/sbin/nologin + + + /home/vagrant + 1000 + vagrant + ,,, + /bin/bash + + + /home/ubuntu + 1001 + ubuntu + Ubuntu + /bin/bash + + + /var/snap/lxd/common/lxd + 999 + lxd + + /bin/false + + + AP///////wBYWAAAAAQAAwEAAQOAAAB47u6Ro1RMmSYPUFQAAAABAQEBAQEBAQEBAQEBAQEBrxIABkAABjACAgICAAAAAAAAAAAA/QAAyADIZAAKICAgICAgAAAA/ABWQk9YIG1vbml0b3IKAAAAEAAKICAgICAgICAgICAgABk= + VBOX monitor + 1/1990 + VBX + 03000400 + + + lo + 127.0.0.1 + 255.0.0.0 + 127.0.0.0 + 00:00:00:00:00:00 + Up + loopback + 1 + + + lo + ::1 + fff0:: + :: + 00:00:00:00:00:00 + Up + loopback + 1 + + + enp0s3 + e1000 + 10.0.2.15 + 10.0.2.2 + 255.255.255.0 + 10.0.2.0 + 02:e5:1b:70:f4:63 + 8086:100E:8086:001E + 0000:00:03.0 + 1000 + Up + ethernet + 0 + + + enp0s3 + e1000 + fe80::e5:1bff:fe70:f463 + ffff:ffff:ffff:ffff:: + fe80:: + 02:e5:1b:70:f4:63 + 8086:100E:8086:001E + 0000:00:03.0 + 1000 + Up + ethernet + 0 + + + enp0s8 + e1000 + 192.168.31.5 + 255.255.255.0 + 192.168.31.0 + 08:00:27:df:72:2b + 8086:100E:8086:001E + 0000:00:08.0 + 1000 + Up + ethernet + 0 + + + enp0s8 + e1000 + fe80::a00:27ff:fedf:722b + ffff:ffff:ffff:ffff:: + fe80:: + 08:00:27:df:72:2b + 8086:100E:8086:001E + 0000:00:08.0 + 1000 + Up + ethernet + 0 + + + x86_64 + 2023-04-03 09:23:27 + . + node2.. + Ubuntu 22.04 LTS + a8c0051f + linux + 5.15.0-41-generic + Ubuntu + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGmRRdJl/vGT1+/kVhAvjPLFMiLxs7Lu7qkhFaqfAABrdXw0Q8NgyKGuht3isb0zJzMWPd1Sa63IKPZqtTcU/0mduGlc44mx0KcUPZZwRAUHh+/MQkz7jJjOWF/Ckb4CLXruBcA2fU5VvdkpUBvZt4FgYBWG0GuQPrxiI2J+zDHi7F6QpFMWewYcgwaXHM0g2NRDF3cjCl/UHajue+E7GZgklsRDb+Bg3jLPBzwhVR/6m2Xf2JBph/5ghm2ZC6W1RBnBSeSboZIfj4iONzywvR78m+DR6IykSIkjFRPdoXhmA64RzSB2qLyz6w++AssXRZgJaRD7BTOSLz9sLB2y7IVmRVhtMEvmNz5gwug2kE92IPymcT+pduSYtEBUNRrQhuDuPrN49xdSg2nVwmVfZymAiwX4l87mt0zQ7hywuAtpbJLvM2d2/Y9WUg2cUP8GGcNJyaYhO3NRGyKT1GCzkq5yyRxBvW5qCYv2WtstKFKOyxJ0akaj3Ft69te3UBzBk= + + UTC + +0000 + + 22.04 + + + /sbin/init + 0.0 + 1.9 + 1 + 2023-04-03 09:23 + ? + root + 167496 + + + [kthreadd] + 0.0 + 0.0 + 2 + 2023-04-03 09:23 + ? + root + 0 + + + [rcu_gp] + 0.0 + 0.0 + 3 + 2023-04-03 09:23 + ? + root + 0 + + + [rcu_par_gp] + 0.0 + 0.0 + 4 + 2023-04-03 09:23 + ? + root + 0 + + + [netns] + 0.0 + 0.0 + 5 + 2023-04-03 09:23 + ? + root + 0 + + + [kworker/0:0-events] + 0.0 + 0.0 + 6 + 2023-04-03 09:23 + ? + root + 0 + + + [kworker/0:0H-events_highpri] + 0.0 + 0.0 + 7 + 2023-04-03 09:23 + ? + root + 0 + + + [mm_percpu_wq] + 0.0 + 0.0 + 10 + 2023-04-03 09:23 + ? + root + 0 + + + [rcu_tasks_rude_] + 0.0 + 0.0 + 11 + 2023-04-03 09:23 + ? + root + 0 + + + [rcu_tasks_trace] + 0.0 + 0.0 + 12 + 2023-04-03 09:23 + ? + root + 0 + + + [ksoftirqd/0] + 0.0 + 0.0 + 13 + 2023-04-03 09:23 + ? + root + 0 + + + [rcu_sched] + 0.0 + 0.0 + 14 + 2023-04-03 09:23 + ? + root + 0 + + + [migration/0] + 0.0 + 0.0 + 15 + 2023-04-03 09:23 + ? + root + 0 + + + [idle_inject/0] + 0.0 + 0.0 + 16 + 2023-04-03 09:23 + ? + root + 0 + + + [cpuhp/0] + 0.0 + 0.0 + 17 + 2023-04-03 09:23 + ? + root + 0 + + + [kdevtmpfs] + 0.0 + 0.0 + 18 + 2023-04-03 09:23 + ? + root + 0 + + + [inet_frag_wq] + 0.0 + 0.0 + 19 + 2023-04-03 09:23 + ? + root + 0 + + + [kauditd] + 0.0 + 0.0 + 20 + 2023-04-03 09:23 + ? + root + 0 + + + [khungtaskd] + 0.0 + 0.0 + 21 + 2023-04-03 09:23 + ? + root + 0 + + + [oom_reaper] + 0.0 + 0.0 + 22 + 2023-04-03 09:23 + ? + root + 0 + + + [writeback] + 0.0 + 0.0 + 23 + 2023-04-03 09:23 + ? + root + 0 + + + [kcompactd0] + 0.0 + 0.0 + 24 + 2023-04-03 09:23 + ? + root + 0 + + + [ksmd] + 0.0 + 0.0 + 25 + 2023-04-03 09:23 + ? + root + 0 + + + [kintegrityd] + 0.0 + 0.0 + 71 + 2023-04-03 09:23 + ? + root + 0 + + + [kblockd] + 0.0 + 0.0 + 72 + 2023-04-03 09:23 + ? + root + 0 + + + [blkcg_punt_bio] + 0.0 + 0.0 + 73 + 2023-04-03 09:23 + ? + root + 0 + + + [tpm_dev_wq] + 0.0 + 0.0 + 74 + 2023-04-03 09:23 + ? + root + 0 + + + [ata_sff] + 0.0 + 0.0 + 75 + 2023-04-03 09:23 + ? + root + 0 + + + [md] + 0.0 + 0.0 + 76 + 2023-04-03 09:23 + ? + root + 0 + + + [edac-poller] + 0.0 + 0.0 + 77 + 2023-04-03 09:23 + ? + root + 0 + + + [devfreq_wq] + 0.0 + 0.0 + 78 + 2023-04-03 09:23 + ? + root + 0 + + + [watchdogd] + 0.0 + 0.0 + 79 + 2023-04-03 09:23 + ? + root + 0 + + + [kworker/0:1H-kblockd] + 0.0 + 0.0 + 81 + 2023-04-03 09:23 + ? + root + 0 + + + [kswapd0] + 0.0 + 0.0 + 83 + 2023-04-03 09:23 + ? + root + 0 + + + [ecryptfs-kthrea] + 0.0 + 0.0 + 84 + 2023-04-03 09:23 + ? + root + 0 + + + [kthrotld] + 0.0 + 0.0 + 86 + 2023-04-03 09:23 + ? + root + 0 + + + [acpi_thermal_pm] + 0.0 + 0.0 + 87 + 2023-04-03 09:23 + ? + root + 0 + + + [scsi_eh_0] + 0.0 + 0.0 + 89 + 2023-04-03 09:23 + ? + root + 0 + + + [scsi_tmf_0] + 0.0 + 0.0 + 90 + 2023-04-03 09:23 + ? + root + 0 + + + [scsi_eh_1] + 0.0 + 0.0 + 91 + 2023-04-03 09:23 + ? + root + 0 + + + [scsi_tmf_1] + 0.0 + 0.0 + 92 + 2023-04-03 09:23 + ? + root + 0 + + + [vfio-irqfd-clea] + 0.0 + 0.0 + 94 + 2023-04-03 09:23 + ? + root + 0 + + + [mld] + 0.0 + 0.0 + 95 + 2023-04-03 09:23 + ? + root + 0 + + + [ipv6_addrconf] + 0.0 + 0.0 + 96 + 2023-04-03 09:23 + ? + root + 0 + + + [kstrp] + 0.0 + 0.0 + 106 + 2023-04-03 09:23 + ? + root + 0 + + + [zswap-shrink] + 0.0 + 0.0 + 109 + 2023-04-03 09:23 + ? + root + 0 + + + [kworker/u3:0] + 0.0 + 0.0 + 110 + 2023-04-03 09:23 + ? + root + 0 + + + [charger_manager] + 0.0 + 0.0 + 115 + 2023-04-03 09:23 + ? + root + 0 + + + [cryptd] + 0.0 + 0.0 + 154 + 2023-04-03 09:23 + ? + root + 0 + + + [mpt_poll_0] + 0.0 + 0.0 + 159 + 2023-04-03 09:23 + ? + root + 0 + + + [mpt/0] + 0.0 + 0.0 + 169 + 2023-04-03 09:23 + ? + root + 0 + + + [scsi_eh_2] + 0.0 + 0.0 + 188 + 2023-04-03 09:23 + ? + root + 0 + + + [scsi_tmf_2] + 0.0 + 0.0 + 189 + 2023-04-03 09:23 + ? + root + 0 + + + [raid5wq] + 0.0 + 0.0 + 221 + 2023-04-03 09:23 + ? + root + 0 + + + [jbd2/sda1-8] + 0.0 + 0.0 + 265 + 2023-04-03 09:23 + ? + root + 0 + + + [ext4-rsv-conver] + 0.0 + 0.0 + 266 + 2023-04-03 09:23 + ? + root + 0 + + + /lib/systemd/systemd-journald + 0.0 + 1.7 + 338 + 2023-04-03 09:23 + ? + root + 48392 + + + [ipmi-msghandler] + 0.0 + 0.0 + 361 + 2023-04-03 09:23 + ? + root + 0 + + + [kaluad] + 0.0 + 0.0 + 372 + 2023-04-03 09:23 + ? + root + 0 + + + [kmpath_rdacd] + 0.0 + 0.0 + 375 + 2023-04-03 09:23 + ? + root + 0 + + + [kmpathd] + 0.0 + 0.0 + 377 + 2023-04-03 09:23 + ? + root + 0 + + + [kmpath_handlerd] + 0.0 + 0.0 + 378 + 2023-04-03 09:23 + ? + root + 0 + + + /sbin/multipathd -d -s + 0.0 + 5.6 + 380 + 2023-04-03 09:23 + ? + root + 354888 + + + /lib/systemd/systemd-udevd + 0.0 + 1.0 + 383 + 2023-04-03 09:23 + ? + root + 23172 + + + /lib/systemd/systemd-timesyncd + 0.0 + 0.7 + 418 + 2023-04-03 09:23 + ? + systemd+ + 89352 + + + /lib/systemd/systemd-resolved + 0.0 + 1.7 + 557 + 2023-04-03 09:23 + ? + systemd+ + 25392 + + + /usr/sbin/cron -f -P + 0.0 + 0.5 + 666 + 2023-04-03 09:23 + ? + root + 7284 + + + @dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only + 0.0 + 0.8 + 668 + 2023-04-03 09:23 + ? + message+ + 8884 + + + /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers + 0.0 + 2.3 + 674 + 2023-04-03 09:23 + ? + root + 32992 + + + /usr/libexec/polkitd --no-debug + 0.0 + 0.7 + 675 + 2023-04-03 09:23 + ? + root + 234484 + + + /usr/sbin/rsyslogd -n -iNONE + 0.0 + 1.0 + 680 + 2023-04-03 09:23 + ? + syslog + 222400 + + + /usr/lib/snapd/snapd + 0.0 + 3.5 + 682 + 2023-04-03 09:23 + ? + root + 734956 + + + /lib/systemd/systemd-logind + 0.0 + 0.9 + 683 + 2023-04-03 09:23 + ? + root + 23716 + + + /usr/libexec/udisks2/udisksd + 0.0 + 1.5 + 689 + 2023-04-03 09:23 + ? + root + 392696 + + + /usr/sbin/ModemManager + 0.0 + 1.0 + 732 + 2023-04-03 09:23 + ? + root + 316936 + + + /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 ttyS0 vt220 + 0.0 + 0.1 + 744 + 2023-04-03 09:23 + ttyS0 + root + 6216 + + + /sbin/agetty -o -p -- \u --noclear tty1 linux + 0.0 + 0.1 + 772 + 2023-04-03 09:23 + tty1 + root + 6172 + + + /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal + 0.0 + 2.7 + 775 + 2023-04-03 09:23 + ? + root + 110088 + + + sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups + 0.0 + 1.2 + 799 + 2023-04-03 09:23 + ? + root + 15416 + + + /lib/systemd/systemd-networkd + 0.0 + 0.7 + 1710 + 2023-04-03 09:23 + ? + systemd+ + 16248 + + + /usr/libexec/packagekitd + 0.0 + 1.9 + 2323 + 2023-04-03 09:24 + ? + root + 295940 + + + /opt/rudder/bin/cf-execd --no-fork + 0.0 + 2.7 + 5025 + 2023-04-03 09:24 + ? + root + 31884 + + + /opt/rudder/bin/cf-serverd --graceful-detach=600 --no-fork --inform + 0.0 + 2.2 + 5026 + 2023-04-03 09:24 + ? + root + 31900 + + + sshd: vagrant [priv] + 0.0 + 1.2 + 11292 + 2023-04-03 11:19 + ? + root + 16908 + + + /lib/systemd/systemd --user + 0.0 + 1.0 + 11295 + 2023-04-03 11:19 + ? + vagrant + 17036 + + + (sd-pam) + 0.0 + 1.0 + 11296 + 2023-04-03 11:19 + ? + vagrant + 170404 + + + sshd: vagrant@pts/0 + 0.0 + 1.0 + 11378 + 2023-04-03 11:20 + ? + vagrant + 17420 + + + -bash + 0.0 + 0.8 + 11379 + 2023-04-03 11:20 + pts/0 + vagrant + 9148 + + + sudo su + 0.0 + 0.7 + 11440 + 2023-04-03 11:20 + pts/0 + root + 11888 + + + sudo su + 0.0 + 0.1 + 11441 + 2023-04-03 11:20 + pts/1 + root + 11888 + + + su + 0.0 + 0.5 + 11442 + 2023-04-03 11:20 + pts/1 + root + 10592 + + + bash + 0.0 + 0.7 + 11443 + 2023-04-03 11:20 + pts/1 + root + 8024 + + + /bin/sh /snap/lxd/22923/commands/daemon.start + 0.0 + 0.0 + 13629 + 2023-04-03 11:35 + ? + root + 2624 + + + lxcfs /var/snap/lxd/common/var/lib/lxcfs -p /var/snap/lxd/common/lxcfs.pid + 0.0 + 0.0 + 13781 + 2023-04-03 11:35 + ? + root + 85652 + + + lxd --logfile /var/snap/lxd/common/lxd/logs/lxd.log --group lxd + 0.1 + 5.7 + 13792 + 2023-04-03 11:35 + ? + root + 1392196 + + + [kworker/0:1] + 0.0 + 0.0 + 13801 + 2023-04-03 11:35 + ? + root + 0 + + + [dio/sda1] + 0.0 + 0.0 + 13897 + 2023-04-03 11:35 + ? + root + 0 + + + bpfilter_umh + 0.0 + 0.1 + 13913 + 2023-04-03 11:35 + ? + root + 2772 + + + [spl_system_task] + 0.0 + 0.0 + 13942 + 2023-04-03 11:35 + ? + root + 0 + + + [spl_delay_taskq] + 0.0 + 0.0 + 13943 + 2023-04-03 11:35 + ? + root + 0 + + + [spl_dynamic_tas] + 0.0 + 0.0 + 13944 + 2023-04-03 11:35 + ? + root + 0 + + + [spl_kmem_cache] + 0.0 + 0.0 + 13945 + 2023-04-03 11:35 + ? + root + 0 + + + [zvol] + 0.0 + 0.0 + 13946 + 2023-04-03 11:35 + ? + root + 0 + + + [arc_prune] + 0.0 + 0.0 + 13947 + 2023-04-03 11:35 + ? + root + 0 + + + [arc_evict] + 0.0 + 0.0 + 13948 + 2023-04-03 11:35 + ? + root + 0 + + + [arc_reap] + 0.0 + 0.0 + 13949 + 2023-04-03 11:35 + ? + root + 0 + + + [dbu_evict] + 0.0 + 0.0 + 13950 + 2023-04-03 11:35 + ? + root + 0 + + + [dbuf_evict] + 0.0 + 0.0 + 13951 + 2023-04-03 11:35 + ? + root + 0 + + + [z_vdev_file] + 0.0 + 0.0 + 13952 + 2023-04-03 11:35 + ? + root + 0 + + + [l2arc_feed] + 0.0 + 0.0 + 13953 + 2023-04-03 11:35 + ? + root + 0 + + + [kworker/u2:1-events_unbound] + 0.0 + 0.0 + 15918 + 2023-04-03 11:56 + ? + root + 0 + + + [kworker/u2:0-events_unbound] + 0.0 + 0.0 + 17297 + 2023-04-03 12:15 + ? + root + 0 + + + /bin/sh /opt/rudder/share/commands/agent-inventory + 0.0 + 0.3 + 18000 + 2023-04-03 12:24 + pts/1 + root + 2888 + + + /bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory + 0.0 + 0.3 + 18040 + 2023-04-03 12:24 + pts/1 + root + 2888 + + + /opt/rudder/bin/cf-agent -I -D info -Cnever -K -b doInventory -D force_inventory + 38.0 + 5.5 + 18133 + 2023-04-03 12:24 + ? + root + 74644 + + + cat + 0.0 + 0.2 + 18134 + 2023-04-03 12:24 + pts/1 + root + 6328 + + + cat + 0.0 + 0.2 + 18135 + 2023-04-03 12:24 + pts/1 + root + 6328 + + + cat + 0.0 + 0.2 + 18136 + 2023-04-03 12:24 + pts/1 + root + 6328 + + + /bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory + 0.0 + 0.0 + 18137 + 2023-04-03 12:24 + pts/1 + root + 2888 + + + awk -v info=0 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\033[1;32m -v darkgreen=\033[0;32m -v red=\033[1;31m -v yellow=\033[1;33m -v magenta=\033[1;35m -v normal=\033[0;39m\033[0;49m -v white=\033[0;02m -v cyan=\033[1;36m -v dblue=\033[0;34m -v dgreen=\033[0;32m -v timing=0 -v has_fflush=OK -v full_compliance=1 -v partial_run=1 -v error_fail=0 -v noncompliant_fail=0 -f /opt/rudder/share/commands/../lib/reports.awk + 0.0 + 0.8 + 18138 + 2023-04-03 12:24 + pts/1 + root + 11880 + + + /bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs + 0.0 + 0.1 + 18228 + 2023-04-03 12:24 + ? + root + 2888 + + + /bin/sh /opt/rudder/bin/rudder-perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs + 0.0 + 0.2 + 18232 + 2023-04-03 12:24 + ? + root + 2888 + + + fusioninventory-agent: running task Inventory + 20.0 + 10.0 + 18233 + 2023-04-03 12:24 + ? + root + 50448 + + + ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command + 0.0 + 0.3 + 18246 + 2023-04-03 12:24 + ? + root + 7060 + + + + -----BEGIN CERTIFICATE----- +MIIFqzCCA5OgAwIBAgIUBy0WHdwXwVZr1241fqZ3dHTT00kwDQYJKoZIhvcNAQEL +BQAwNjE0MDIGCgmSJomT8ixkAQEMJDg2ZDllYzc3LTlkYjUtNGJhMy1iZGNhLWYw +YmFmM2E1YjQ3NzAeFw0yMzA0MDMwOTI0NTdaFw0zMzAzMzEwOTI0NTdaMDYxNDAy +BgoJkiaJk/IsZAEBDCQ4NmQ5ZWM3Ny05ZGI1LTRiYTMtYmRjYS1mMGJhZjNhNWI0 +NzcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDilIBlWT+TIz13776N +QJSnKjnHyADqjXK8WVidt4xvYoP+Dcp5bAA3qrBdLxopIT/x2NBqXhaQoBeWTpdJ +tiBvCCjTZTBB85XkyPalNQ4DOyQwdO/mTdth1GXxyAScTyb5LmPzGt5HWUyubHpS +vPvHt5YzeXaP7Jrq5CMv9nKp4WTWHhGGRMwpw0JM4o5veEVUjUjNWuo4McW06Ntt +Ze6nHW2L42i9uCOmd1w66mP+FXVYRLQSW3VWel/gjnsJqFavzk1PUqIBZWyPpsEK +mS5ptzF2Pwnez1rYGBtdJdzwdF6FmbErbEsqAS+EZYCCaW6ilqw7M/Cpg6S9236i +iCSg0Z4MCceiSd/aFlPVBgCpM85j+IvrgIGvoe4VPF7HzEpK5cPiSo8v53k0h4FL +dDO5fWUCXNFxWekcbJrh7Xw36st328w4xLlVqvSWY4q2pNPDsq1y9G92TNaupyRM +Hb9jgW5DoXF2S53gQ2LLyRX8egHHHHxrTLbU8V9yrQadkn4qkubguncGobWiOGbX +xK8Oo9QccGIVzSZ8TztkfzRtYNAGkDQ+jY0GcjDQCrri8V3B867vDB0IdGc+k+rn +BNuJCQNGs5F4Fyi2X48tNrR3nMy8VYzXaboMVHmG/QbZR4iHowGUJ8DW52qHRamV +KrQlOCYfhHrs/VuXSoQXsY9ozQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYD +VR0OBBYEFExcqlVR4NA/Pkv4LVs62vM+QvdTMHEGA1UdIwRqMGiAFExcqlVR4NA/ +Pkv4LVs62vM+QvdToTqkODA2MTQwMgYKCZImiZPyLGQBAQwkODZkOWVjNzctOWRi +NS00YmEzLWJkY2EtZjBiYWYzYTViNDc3ghQHLRYd3BfBVmvXbjV+pnd0dNPTSTAL +BgNVHQ8EBAMCArwwDQYJKoZIhvcNAQELBQADggIBABHGoFglYKYCoXUtJEWiDD5E +HsYn0xGGoXXLOi82vRY9hyXLu1GqVHuIgP9RqvU3TUr/bFVYa6GDIUp890C1nH6o +k+SfCp7TW3OqvxEYmXTgLcXOveP2wVfd1YwVwPbsdU69MaMw1AxNOZX1e1Feb1SF +IkSO7Dmvv0I2pR7X4Ur8AHuTLfxKg4CfHED/51vJ0bXuA5IU+zaByioN3s1/Mf6J +37fOVXFuwP6Y0gbQdN2Qze4OM69m/GbIdYGcncbIAE2pCH4M3QOevyNAEyo87WYC +AKlU/SPswyUH2qtvzR5uzrskBvYOT5PJkD7AwHMcKbKL9ifwYDYproScynKoWb/T +9x5dBr1z+zzmYFvs+UMTLwD/jckztIs765gW/NQzCGvOQRv0TvWa4ezdxRrbMVgD +ENEQTED82JwDVHU8hNhuK2KKPdtCZ7ulRSGtCEFta++nvuKUkXMopZ/huS0j9/M7 +tDvSMtkQOXih3v5EO2WrG+zhueYA1Rw+TyZHI03PCy7oIaKvLqre2su/1LQVil2V +NKRq4Fibk09OuvNMEozyNzLecKd3XpLF8TCrBkW86ubdceHft7PWuJpOHTW60U6L +kwkQJKKFHXqX4AiBiqRJLbFX0od6iSaolcfBgOQXvLsNM+zz2qlOFafj7Z0eqN9Y +WIyBsNQ1oYnd5elHILQ2 +-----END CERTIFICATE----- + + cfengine-community + -----BEGIN RSA PUBLIC KEY----- +MIICCgKCAgEA4pSAZVk/kyM9d+++jUCUpyo5x8gA6o1yvFlYnbeMb2KD/g3KeWwA +N6qwXS8aKSE/8djQal4WkKAXlk6XSbYgbwgo02UwQfOV5Mj2pTUOAzskMHTv5k3b +YdRl8cgEnE8m+S5j8xreR1lMrmx6Urz7x7eWM3l2j+ya6uQjL/ZyqeFk1h4RhkTM +KcNCTOKOb3hFVI1IzVrqODHFtOjbbWXupx1ti+NovbgjpndcOupj/hV1WES0Elt1 +Vnpf4I57CahWr85NT1KiAWVsj6bBCpkuabcxdj8J3s9a2BgbXSXc8HRehZmxK2xL +KgEvhGWAgmluopasOzPwqYOkvdt+oogkoNGeDAnHoknf2hZT1QYAqTPOY/iL64CB +r6HuFTxex8xKSuXD4kqPL+d5NIeBS3QzuX1lAlzRcVnpHGya4e18N+rLd9vMOMS5 +Var0lmOKtqTTw7KtcvRvdkzWrqckTB2/Y4FuQ6Fxdkud4ENiy8kV/HoBxxx8a0y2 +1PFfcq0GnZJ+KpLm4Lp3BqG1ojhm18SvDqPUHHBiFc0mfE87ZH80bWDQBpA0Po2N +BnIw0Aq64vFdwfOu7wwdCHRnPpPq5wTbiQkDRrOReBcotl+PLTa0d5zMvFWM12m6 +DFR5hv0G2UeIh6MBlCfA1udqh0WplSq0JTgmH4R67P1bl0qEF7GPaM0CAwEAAQ== +-----END RSA PUBLIC KEY----- + + root + relay + 3f74e095-f2b9-4357-bdc2-d6abdf4366a0 + + + cfengine + jq + yaml + xml + curl + http_reporting + acl + + node2.rudder.local + + 86d9ec77-9db5-4ba3-bdca-f0baf3a5b477 + + + all + 608 + deb + adduser + Ubuntu + + 3.118ubuntu5 + admin + 3.118ubuntu5 + + + amd64 + 2664 + deb + apparmor + Ubuntu + + 3.0.4-2ubuntu2.1 + admin + 3.0.4-2ubuntu2.1 + + + all + 812 + deb + apport + Ubuntu + + 2.20.11-0ubuntu82.1 + utils + 2.20.11-0ubuntu82.1 + + + all + 61 + deb + apport-symptoms + Ubuntu + + 0.24 + utils + 0.24 + + + amd64 + 4156 + deb + apt + Ubuntu + + 2.4.5 + admin + 2.4.5 + + + all + 165 + deb + apt-transport-https + Ubuntu + apt + 2.4.8 + oldlibs + 2.4.8 + + + amd64 + 788 + deb + apt-utils + Ubuntu + apt + 2.4.5 + admin + 2.4.5 + + + all + 1861 + deb + augeas-lenses + Ubuntu + augeas + 1.13.0-1 + misc + 1.13.0-1 + + + amd64 + 105 + deb + augeas-tools + Ubuntu + augeas + 1.13.0-1 + admin + 1.13.0-1 + + + amd64 + 394 + deb + base-files + Ubuntu + + 12ubuntu4.1 + admin + 12ubuntu4.1 + + + amd64 + 243 + deb + base-passwd + Ubuntu + + 3.5.52build1 + admin + 3.5.52build1 + + + amd64 + 1864 + deb + bash + Ubuntu + + 5.1-6ubuntu1 + shells + 5.1-6ubuntu1 + + + all + 1464 + deb + bash-completion + Ubuntu + + 1:2.11-5ubuntu1 + shells + 1:2.11-5ubuntu1 + + + amd64 + 215 + deb + bc + Ubuntu + + 1.07.1-3build1 + math + 1.07.1-3build1 + + + amd64 + 107 + deb + bcache-tools + Ubuntu + + 1.0.8-4ubuntu3 + utils + 1.0.8-4ubuntu3 + + + amd64 + 484 + deb + bind9-dnsutils + Ubuntu + bind9 + 1:9.18.1-1ubuntu1.1 + net + 1:9.18.1-1ubuntu1.1 + + + amd64 + 156 + deb + bind9-host + Ubuntu + bind9 + 1:9.18.1-1ubuntu1.1 + net + 1:9.18.1-1ubuntu1.1 + + + amd64 + 8492 + deb + bind9-libs + Ubuntu + bind9 + 1:9.18.1-1ubuntu1.1 + libs + 1:9.18.1-1ubuntu1.1 + + + amd64 + 112 + deb + binutils + Ubuntu + + 2.38-4ubuntu2.1 + devel + 2.38-4ubuntu2.1 + + + amd64 + 504 + deb + binutils-common + Ubuntu + binutils + 2.38-4ubuntu2.1 + devel + 2.38-4ubuntu2.1 + + + amd64 + 10439 + deb + binutils-x86-64-linux-gnu + Ubuntu + binutils + 2.38-4ubuntu2.1 + devel + 2.38-4ubuntu2.1 + + + amd64 + 469 + deb + bolt + Ubuntu + + 0.9.2-1 + admin + 0.9.2-1 + + + amd64 + 337 + deb + bsdextrautils + Ubuntu + util-linux + 2.37.2-4ubuntu3 + utils + 2.37.2-4ubuntu3 + + + amd64 + 334 + deb + bsdutils + Ubuntu + util-linux (2.37.2-4ubuntu3) + 2.37.2-4ubuntu3 + utils + 1:2.37.2-4ubuntu3 + + + amd64 + 4190 + deb + btrfs-progs + Ubuntu + + 5.16.2-1 + admin + 5.16.2-1 + + + amd64 + 361 + deb + busybox-initramfs + Ubuntu + busybox + 1:1.30.1-7ubuntu3 + shells + 1:1.30.1-7ubuntu3 + + + amd64 + 2245 + deb + busybox-static + Ubuntu + busybox + 1:1.30.1-7ubuntu3 + shells + 1:1.30.1-7ubuntu3 + + + all + 624 + deb + byobu + Ubuntu + + 5.133-1 + misc + 5.133-1 + + + all + 375 + deb + ca-certificates + Ubuntu + + 20211016 + misc + 20211016 + + + all + 65 + deb + cloud-guest-utils + Ubuntu + cloud-utils + 0.32-22-g45fe84a5-0ubuntu1 + admin + 0.32-22-g45fe84a5-0ubuntu1 + + + all + 2563 + deb + cloud-init + Ubuntu + + 22.2-0ubuntu1~22.04.3 + admin + 22.2-0ubuntu1~22.04.3 + + + all + 25 + deb + cloud-initramfs-copymods + Ubuntu + cloud-initramfs-tools + 0.47ubuntu1 + admin + 0.47ubuntu1 + + + all + 31 + deb + cloud-initramfs-dyn-netconf + Ubuntu + cloud-initramfs-tools + 0.47ubuntu1 + admin + 0.47ubuntu1 + + + all + 37 + deb + command-not-found + Ubuntu + + 22.04.0 + admin + 22.04.0 + + + all + 426 + deb + console-setup + Ubuntu + + 1.205ubuntu3 + utils + 1.205ubuntu3 + + + all + 2171 + deb + console-setup-linux + Ubuntu + console-setup + 1.205ubuntu3 + utils + 1.205ubuntu3 + + + amd64 + 7112 + deb + coreutils + Ubuntu + + 8.32-4.1ubuntu1 + utils + 8.32-4.1ubuntu1 + + + amd64 + 324 + deb + cpio + Ubuntu + + 2.13+dfsg-7 + utils + 2.13+dfsg-7 + + + amd64 + 255 + deb + cron + Ubuntu + + 3.0pl1-137ubuntu3 + admin + 3.0pl1-137ubuntu3 + + + amd64 + 487 + deb + cryptsetup + Ubuntu + + 2:2.4.3-1ubuntu1 + admin + 2:2.4.3-1ubuntu1 + + + amd64 + 596 + deb + cryptsetup-bin + Ubuntu + cryptsetup + 2:2.4.3-1ubuntu1 + admin + 2:2.4.3-1ubuntu1 + + + all + 155 + deb + cryptsetup-initramfs + Ubuntu + cryptsetup + 2:2.4.3-1ubuntu1 + admin + 2:2.4.3-1ubuntu1 + + + amd64 + 443 + deb + curl + Ubuntu + + 7.81.0-1ubuntu1.10 + web + 7.81.0-1ubuntu1.10 + + + amd64 + 214 + deb + dash + Ubuntu + + 0.5.11+git20210903+057cd650a4ed-3build1 + shells + 0.5.11+git20210903+057cd650a4ed-3build1 + + + amd64 + 582 + deb + dbus + Ubuntu + + 1.12.20-2ubuntu4 + admin + 1.12.20-2ubuntu4 + + + amd64 + 130 + deb + dbus-user-session + Ubuntu + dbus + 1.12.20-2ubuntu4 + admin + 1.12.20-2ubuntu4 + + + all + 512 + deb + debconf + Ubuntu + + 1.5.79ubuntu1 + admin + 1.5.79ubuntu1 + + + all + 787 + deb + debconf-i18n + Ubuntu + debconf + 1.5.79ubuntu1 + localization + 1.5.79ubuntu1 + + + amd64 + 243 + deb + debianutils + Ubuntu + + 5.5-1ubuntu2 + utils + 5.5-1ubuntu2 + + + amd64 + 424 + deb + diffutils + Ubuntu + + 1:3.8-0ubuntu2 + utils + 1:3.8-0ubuntu2 + + + amd64 + 676 + deb + dirmngr + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 69 + deb + distro-info + Ubuntu + + 1.1build1 + devel + 1.1build1 + + + all + 19 + deb + distro-info-data + Ubuntu + + 0.52ubuntu0.1 + devel + 0.52ubuntu0.1 + + + amd64 + 245 + deb + dmeventd + Ubuntu + lvm2 (2.03.11-2.1ubuntu4) + 2.03.11-2.1ubuntu4 + admin + 2:1.02.175-2.1ubuntu4 + + + amd64 + 199 + deb + dmidecode + Ubuntu + + 3.3-3 + utils + 3.3-3 + + + amd64 + 273 + deb + dmsetup + Ubuntu + lvm2 (2.03.11-2.1ubuntu4) + 2.03.11-2.1ubuntu4 + admin + 2:1.02.175-2.1ubuntu4 + + + amd64 + 245 + deb + dosfstools + Ubuntu + + 4.2-1build3 + otherosfs + 4.2-1build3 + + + amd64 + 6733 + deb + dpkg + Ubuntu + + 1.21.1ubuntu2.1 + admin + 1.21.1ubuntu2.1 + + + amd64 + 1516 + deb + e2fsprogs + Ubuntu + + 1.46.5-2ubuntu1.1 + admin + 1.46.5-2ubuntu1.1 + + + all + 25 + deb + eatmydata + Ubuntu + libeatmydata + 130-2build1 + utils + 130-2build1 + + + amd64 + 108 + deb + ed + Ubuntu + + 1.18-1 + editors + 1.18-1 + + + amd64 + 152 + deb + eject + Ubuntu + util-linux + 2.37.2-4ubuntu3 + utils + 2.37.2-4ubuntu3 + + + amd64 + 630 + deb + ethtool + Ubuntu + + 1:5.16-1 + net + 1:5.16-1 + + + amd64 + 437 + deb + fdisk + Ubuntu + util-linux + 2.37.2-4ubuntu3 + utils + 2.37.2-4ubuntu3 + + + amd64 + 83 + deb + file + Ubuntu + + 1:5.41-3 + utils + 1:5.41-3 + + + all + 30 + deb + finalrd + Ubuntu + + 9build1 + utils + 9build1 + + + amd64 + 620 + deb + findutils + Ubuntu + + 4.8.0-1ubuntu3 + utils + 4.8.0-1ubuntu3 + + + all + 63 + deb + fonts-ubuntu-console + Ubuntu + fonts-ubuntu + 0.83-6ubuntu1 + fonts + 0.83-6ubuntu1 + + + all + 45 + deb + friendly-recovery + Ubuntu + + 0.2.42 + admin + 0.2.42 + + + all + 26 + deb + ftp + Ubuntu + tnftp + 20210827-4build1 + oldlibs + 20210827-4build1 + + + amd64 + 90 + deb + fuse3 + Ubuntu + + 3.10.5-1build1 + utils + 3.10.5-1build1 + + + amd64 + 6648 + deb + fwupd + Ubuntu + + 1.7.5-3 + admin + 1.7.5-3 + + + amd64 + 77 + deb + fwupd-signed + Ubuntu + fwupd-signed (1.44) + 1.44 + utils + 1.44+1.2-3 + + + amd64 + 1680 + deb + gawk + Ubuntu + + 1:5.1.0-1build3 + interpreters + 1:5.1.0-1build3 + + + amd64 + 266 + deb + gcc-12-base + Ubuntu + gcc-12 + 12-20220319-1ubuntu1 + libs + 12-20220319-1ubuntu1 + + + amd64 + 726 + deb + gdisk + Ubuntu + + 1.0.8-4build1 + admin + 1.0.8-4build1 + + + amd64 + 284 + deb + gettext-base + Ubuntu + gettext + 0.21-4ubuntu4 + utils + 0.21-4ubuntu4 + + + amd64 + 677 + deb + gir1.2-glib-2.0 + Ubuntu + gobject-introspection + 1.72.0-1 + introspection + 1.72.0-1 + + + amd64 + 123 + deb + gir1.2-packagekitglib-1.0 + Ubuntu + packagekit + 1.2.5-2ubuntu2 + introspection + 1.2.5-2ubuntu2 + + + amd64 + 18348 + deb + git + Ubuntu + + 1:2.34.1-1ubuntu1.8 + vcs + 1:2.34.1-1ubuntu1.8 + + + all + 1957 + deb + git-man + Ubuntu + git + 1:2.34.1-1ubuntu1.4 + doc + 1:2.34.1-1ubuntu1.4 + + + all + 473 + deb + gnupg + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + all + 392 + deb + gnupg-l10n + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + localization + 2.2.27-3ubuntu2.1 + + + amd64 + 787 + deb + gnupg-utils + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 1121 + deb + gpg + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 595 + deb + gpg-agent + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 184 + deb + gpg-wks-client + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 168 + deb + gpg-wks-server + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 280 + deb + gpgconf + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 480 + deb + gpgsm + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 324 + deb + gpgv + Ubuntu + gnupg2 + 2.2.27-3ubuntu2.1 + utils + 2.2.27-3ubuntu2.1 + + + amd64 + 496 + deb + grep + Ubuntu + + 3.7-1build1 + utils + 3.7-1build1 + + + amd64 + 3444 + deb + groff-base + Ubuntu + groff + 1.22.4-8build1 + text + 1.22.4-8build1 + + + amd64 + 13836 + deb + grub-common + Ubuntu + grub2 + 2.06-2ubuntu7 + admin + 2.06-2ubuntu7 + + + amd64 + 47 + deb + grub-gfxpayload-lists + Ubuntu + + 0.7 + admin + 0.7 + + + amd64 + 561 + deb + grub-pc + Ubuntu + grub2 + 2.06-2ubuntu7 + admin + 2.06-2ubuntu7 + + + amd64 + 3108 + deb + grub-pc-bin + Ubuntu + grub2 + 2.06-2ubuntu7 + admin + 2.06-2ubuntu7 + + + amd64 + 1354 + deb + grub2-common + Ubuntu + grub2 + 2.06-2ubuntu7 + admin + 2.06-2ubuntu7 + + + amd64 + 244 + deb + gzip + Ubuntu + + 1.10-4ubuntu4 + utils + 1.10-4ubuntu4 + + + amd64 + 244 + deb + hdparm + Ubuntu + + 9.60+ds-1build3 + admin + 9.60+ds-1build3 + + + amd64 + 51 + deb + hostname + Ubuntu + + 3.23ubuntu2 + admin + 3.23ubuntu2 + + + amd64 + 334 + deb + htop + Ubuntu + + 3.0.5-7build2 + utils + 3.0.5-7build2 + + + amd64 + 849 + deb + info + Ubuntu + texinfo + 6.8-4build1 + doc + 6.8-4build1 + + + amd64 + 22 + deb + init + Ubuntu + init-system-helpers + 1.62 + metapackages + 1.62 + + + all + 133 + deb + init-system-helpers + Ubuntu + + 1.62 + admin + 1.62 + + + all + 147 + deb + initramfs-tools + Ubuntu + + 0.140ubuntu13 + utils + 0.140ubuntu13 + + + amd64 + 135 + deb + initramfs-tools-bin + Ubuntu + initramfs-tools + 0.140ubuntu13 + utils + 0.140ubuntu13 + + + all + 274 + deb + initramfs-tools-core + Ubuntu + initramfs-tools + 0.140ubuntu13 + utils + 0.140ubuntu13 + + + amd64 + 257 + deb + install-info + Ubuntu + texinfo + 6.8-4build1 + doc + 6.8-4build1 + + + amd64 + 2880 + deb + iproute2 + Ubuntu + + 5.15.0-1ubuntu2 + net + 5.15.0-1ubuntu2 + + + amd64 + 2837 + deb + iptables + Ubuntu + + 1.8.7-1ubuntu5 + net + 1.8.7-1ubuntu5 + + + amd64 + 113 + deb + iputils-ping + Ubuntu + iputils + 3:20211215-1 + net + 3:20211215-1 + + + amd64 + 52 + deb + iputils-tracepath + Ubuntu + iputils + 3:20211215-1 + net + 3:20211215-1 + + + amd64 + 148 + deb + irqbalance + Ubuntu + + 1.8.0-1build1 + utils + 1.8.0-1build1 + + + amd64 + 671 + deb + isc-dhcp-client + Ubuntu + isc-dhcp + 4.4.1-2.3ubuntu2.1 + net + 4.4.1-2.3ubuntu2.1 + + + amd64 + 164 + deb + isc-dhcp-common + Ubuntu + isc-dhcp + 4.4.1-2.3ubuntu2.1 + net + 4.4.1-2.3ubuntu2.1 + + + all + 19769 + deb + iso-codes + Ubuntu + + 4.9.0-1 + misc + 4.9.0-1 + + + amd64 + 100 + deb + jq + Ubuntu + + 1.6-2.1ubuntu3 + utils + 1.6-2.1ubuntu3 + + + amd64 + 1328 + deb + kbd + Ubuntu + + 2.3.0-3ubuntu4 + utils + 2.3.0-3ubuntu4 + + + all + 842 + deb + keyboard-configuration + Ubuntu + console-setup + 1.205ubuntu3 + utils + 1.205ubuntu3 + + + amd64 + 547 + deb + klibc-utils + Ubuntu + klibc + 2.0.10-4 + libs + 2.0.10-4 + + + amd64 + 251 + deb + kmod + Ubuntu + + 29-1ubuntu1 + admin + 29-1ubuntu1 + + + amd64 + 95 + deb + kpartx + Ubuntu + multipath-tools + 0.8.8-1ubuntu1 + admin + 0.8.8-1ubuntu1 + + + amd64 + 402 + deb + landscape-common + Ubuntu + landscape-client + 19.12-0ubuntu13 + admin + 19.12-0ubuntu13 + + + amd64 + 694 + deb + ldap-utils + Ubuntu + openldap + 2.5.14+dfsg-0ubuntu0.22.04.1 + net + 2.5.14+dfsg-0ubuntu0.22.04.1 + + + all + 161 + deb + ldapscripts + Ubuntu + + 2.0.8-1ubuntu2 + admin + 2.0.8-1ubuntu2 + + + amd64 + 321 + deb + less + Ubuntu + + 590-1ubuntu0.22.04.1 + text + 590-1ubuntu0.22.04.1 + + + amd64 + 67 + deb + libacl1 + Ubuntu + acl + 2.3.1-1 + libs + 2.3.1-1 + + + amd64 + 37 + deb + libaio1 + Ubuntu + libaio + 0.3.112-13build1 + libs + 0.3.112-13build1 + + + amd64 + 170 + deb + libapparmor1 + Ubuntu + apparmor + 3.0.4-2ubuntu2.1 + libs + 3.0.4-2ubuntu2.1 + + + amd64 + 576 + deb + libappstream4 + Ubuntu + appstream + 0.15.2-2 + libs + 0.15.2-2 + + + amd64 + 3173 + deb + libapt-pkg6.0 + Ubuntu + apt + 2.4.5 + libs + 2.4.5 + + + amd64 + 876 + deb + libarchive13 + Ubuntu + libarchive + 3.6.0-1ubuntu1 + libs + 3.6.0-1ubuntu1 + + + amd64 + 56 + deb + libargon2-1 + Ubuntu + argon2 + 0~20171227-0.3 + libs + 0~20171227-0.3 + + + amd64 + 110 + deb + libassuan0 + Ubuntu + libassuan + 2.5.5-1build1 + libs + 2.5.5-1build1 + + + amd64 + 82 + deb + libatasmart4 + Ubuntu + libatasmart + 0.19-5build2 + libs + 0.19-5build2 + + + amd64 + 110 + deb + libatm1 + Ubuntu + linux-atm + 1:2.5.1-4build2 + libs + 1:2.5.1-4build2 + + + amd64 + 57 + deb + libattr1 + Ubuntu + attr + 1:2.5.1-1build1 + libs + 1:2.5.1-1build1 + + + all + 23 + deb + libaudit-common + Ubuntu + audit + 1:3.0.7-1build1 + libs + 1:3.0.7-1build1 + + + amd64 + 156 + deb + libaudit1 + Ubuntu + audit + 1:3.0.7-1build1 + libs + 1:3.0.7-1build1 + + + amd64 + 477 + deb + libaugeas0 + Ubuntu + augeas + 1.13.0-1 + libs + 1.13.0-1 + + + amd64 + 2776 + deb + libbinutils + Ubuntu + binutils + 2.38-4ubuntu2.1 + devel + 2.38-4ubuntu2.1 + + + amd64 + 323 + deb + libblkid1 + Ubuntu + util-linux + 2.37.2-4ubuntu3 + libs + 2.37.2-4ubuntu3 + + + amd64 + 71 + deb + libblockdev-crypto2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 81 + deb + libblockdev-fs2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 34 + deb + libblockdev-loop2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 35 + deb + libblockdev-part-err2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 64 + deb + libblockdev-part2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 43 + deb + libblockdev-swap2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 60 + deb + libblockdev-utils2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 224 + deb + libblockdev2 + Ubuntu + libblockdev + 2.26-1 + libs + 2.26-1 + + + amd64 + 344 + deb + libbpf0 + Ubuntu + libbpf (0.5.0-1) + 0.5.0-1 + libs + 1:0.5.0-1 + + + amd64 + 784 + deb + libbrotli1 + Ubuntu + brotli + 1.0.9-2build6 + libs + 1.0.9-2build6 + + + amd64 + 136 + deb + libbsd0 + Ubuntu + libbsd + 0.11.5-1 + libs + 0.11.5-1 + + + amd64 + 100 + deb + libbz2-1.0 + Ubuntu + bzip2 + 1.0.8-5build1 + libs + 1.0.8-5build1 + + + amd64 + 2537 + deb + libc-bin + Ubuntu + glibc + 2.35-0ubuntu3 + libs + 2.35-0ubuntu3 + + + amd64 + 13592 + deb + libc6 + Ubuntu + glibc + 2.35-0ubuntu3 + libs + 2.35-0ubuntu3 + + + amd64 + 45 + deb + libcap-ng0 + Ubuntu + libcap-ng + 0.7.9-2.2build3 + libs + 0.7.9-2.2build3 + + + amd64 + 65 + deb + libcap2 + Ubuntu + + 1:2.44-1build3 + libs + 1:2.44-1build3 + + + amd64 + 115 + deb + libcap2-bin + Ubuntu + libcap2 + 1:2.44-1build3 + utils + 1:2.44-1build3 + + + amd64 + 83 + deb + libcbor0.8 + Ubuntu + libcbor + 0.8.0-2ubuntu1 + libs + 0.8.0-2ubuntu1 + + + amd64 + 101 + deb + libcom-err2 + Ubuntu + e2fsprogs + 1.46.5-2ubuntu1.1 + libs + 1.46.5-2ubuntu1.1 + + + amd64 + 225 + deb + libcrypt1 + Ubuntu + libxcrypt + 1:4.4.27-1 + libs + 1:4.4.27-1 + + + amd64 + 576 + deb + libcryptsetup12 + Ubuntu + cryptsetup + 2:2.4.3-1ubuntu1 + libs + 2:2.4.3-1ubuntu1 + + + amd64 + 311 + deb + libctf-nobfd0 + Ubuntu + binutils + 2.38-3ubuntu1 + devel + 2.38-3ubuntu1 + + + amd64 + 239 + deb + libctf0 + Ubuntu + binutils + 2.38-4ubuntu2.1 + devel + 2.38-4ubuntu2.1 + + + amd64 + 766 + deb + libcurl3-gnutls + Ubuntu + curl + 7.81.0-1ubuntu1.3 + libs + 7.81.0-1ubuntu1.3 + + + amd64 + 787 + deb + libcurl4 + Ubuntu + curl + 7.81.0-1ubuntu1.10 + libs + 7.81.0-1ubuntu1.10 + + + amd64 + 1750 + deb + libdb5.3 + Ubuntu + db5.3 + 5.3.28+dfsg1-0.8ubuntu3 + libs + 5.3.28+dfsg1-0.8ubuntu3 + + + amd64 + 457 + deb + libdbus-1-3 + Ubuntu + dbus + 1.12.20-2ubuntu4 + libs + 1.12.20-2ubuntu4 + + + amd64 + 79 + deb + libdebconfclient0 + Ubuntu + cdebconf + 0.261ubuntu1 + libs + 0.261ubuntu1 + + + amd64 + 76 + deb + libdevmapper-event1.02.1 + Ubuntu + lvm2 (2.03.11-2.1ubuntu4) + 2.03.11-2.1ubuntu4 + libs + 2:1.02.175-2.1ubuntu4 + + + amd64 + 492 + deb + libdevmapper1.02.1 + Ubuntu + lvm2 (2.03.11-2.1ubuntu4) + 2.03.11-2.1ubuntu4 + libs + 2:1.02.175-2.1ubuntu4 + + + amd64 + 2262 + deb + libdns-export1110 + Ubuntu + bind9-libs + 1:9.11.19+dfsg-2.1ubuntu3 + libs + 1:9.11.19+dfsg-2.1ubuntu3 + + + all + 45 + deb + libdrm-common + Ubuntu + libdrm + 2.4.110-1ubuntu1 + libs + 2.4.110-1ubuntu1 + + + amd64 + 128 + deb + libdrm2 + Ubuntu + libdrm + 2.4.110-1ubuntu1 + libs + 2.4.110-1ubuntu1 + + + amd64 + 729 + deb + libdw1 + Ubuntu + elfutils + 0.186-1build1 + libs + 0.186-1build1 + + + amd64 + 39 + deb + libeatmydata1 + Ubuntu + libeatmydata + 130-2build1 + libs + 130-2build1 + + + amd64 + 260 + deb + libedit2 + Ubuntu + libedit + 3.1-20210910-1build1 + libs + 3.1-20210910-1build1 + + + amd64 + 123 + deb + libefiboot1 + Ubuntu + efivar + 37-6ubuntu2 + libs + 37-6ubuntu2 + + + amd64 + 171 + deb + libefivar1 + Ubuntu + efivar + 37-6ubuntu2 + libs + 37-6ubuntu2 + + + amd64 + 192 + deb + libelf1 + Ubuntu + elfutils + 0.186-1build1 + libs + 0.186-1build1 + + + all + 71 + deb + liberror-perl + Ubuntu + + 0.17029-1 + perl + 0.17029-1 + + + amd64 + 31 + deb + libestr0 + Ubuntu + libestr + 0.1.10-2.1build3 + libs + 0.1.10-2.1build3 + + + amd64 + 256 + deb + libevent-core-2.1-7 + Ubuntu + libevent + 2.1.12-stable-1build3 + libs + 2.1.12-stable-1build3 + + + amd64 + 432 + deb + libexpat1 + Ubuntu + expat + 2.4.7-1 + libs + 2.4.7-1 + + + amd64 + 574 + deb + libext2fs2 + Ubuntu + e2fsprogs + 1.46.5-2ubuntu1.1 + libs + 1.46.5-2ubuntu1.1 + + + amd64 + 69 + deb + libfastjson4 + Ubuntu + libfastjson + 0.99.9-1build2 + libs + 0.99.9-1build2 + + + amd64 + 433 + deb + libfdisk1 + Ubuntu + util-linux + 2.37.2-4ubuntu3 + libs + 2.37.2-4ubuntu3 + + + amd64 + 69 + deb + libffi8 + Ubuntu + libffi + 3.4.2-4 + libs + 3.4.2-4 + + + amd64 + 236 + deb + libfido2-1 + Ubuntu + libfido2 + 1.10.0-1 + libs + 1.10.0-1 + + + amd64 + 869 + deb + libflashrom1 + Ubuntu + flashrom + 1.2-5build1 + libs + 1.2-5build1 + + + amd64 + 870 + deb + libfreetype6 + Ubuntu + freetype + 2.11.1+dfsg-1build1 + libs + 2.11.1+dfsg-1build1 + + + amd64 + 136 + deb + libfribidi0 + Ubuntu + fribidi + 1.0.8-2ubuntu3.1 + libs + 1.0.8-2ubuntu3.1 + + + amd64 + 81 + deb + libftdi1-2 + Ubuntu + libftdi1 + 1.5-5build3 + libs + 1.5-5build3 + + + amd64 + 282 + deb + libfuse3-3 + Ubuntu + fuse3 + 3.10.5-1build1 + libs + 3.10.5-1build1 + + + amd64 + 389 + deb + libfwupd2 + Ubuntu + fwupd + 1.7.5-3 + libs + 1.7.5-3 + + + amd64 + 588 + deb + libfwupdplugin5 + Ubuntu + fwupd + 1.7.5-3 + libs + 1.7.5-3 + + + amd64 + 90 + deb + libgcab-1.0-0 + Ubuntu + gcab + 1.4-3build2 + libs + 1.4-3build2 + + + amd64 + 140 + deb + libgcc-s1 + Ubuntu + gcc-12 + 12-20220319-1ubuntu1 + libs + 12-20220319-1ubuntu1 + + + amd64 + 1354 + deb + libgcrypt20 + Ubuntu + + 1.9.4-3ubuntu3 + libs + 1.9.4-3ubuntu3 + + + amd64 + 45 + deb + libgdbm-compat4 + Ubuntu + gdbm + 1.23-1 + libs + 1.23-1 + + + amd64 + 100 + deb + libgdbm6 + Ubuntu + gdbm + 1.23-1 + libs + 1.23-1 + + + amd64 + 175 + deb + libgirepository-1.0-1 + Ubuntu + gobject-introspection + 1.72.0-1 + libs + 1.72.0-1 + + + amd64 + 4076 + deb + libglib2.0-0 + Ubuntu + glib2.0 + 2.72.1-1 + libs + 2.72.1-1 + + + amd64 + 341 + deb + libglib2.0-bin + Ubuntu + glib2.0 + 2.72.1-1 + misc + 2.72.1-1 + + + all + 112 + deb + libglib2.0-data + Ubuntu + glib2.0 + 2.72.1-1 + libs + 2.72.1-1 + + + amd64 + 544 + deb + libgmp10 + Ubuntu + gmp + 2:6.2.1+dfsg-3ubuntu1 + libs + 2:6.2.1+dfsg-3ubuntu1 + + + amd64 + 2284 + deb + libgnutls30 + Ubuntu + gnutls28 + 3.7.3-4ubuntu1 + libs + 3.7.3-4ubuntu1 + + + amd64 + 189 + deb + libgpg-error0 + Ubuntu + libgpg-error + 1.43-3 + libs + 1.43-3 + + + amd64 + 372 + deb + libgpgme11 + Ubuntu + gpgme1.0 + 1.16.0-1.2ubuntu4 + libs + 1.16.0-1.2ubuntu4 + + + amd64 + 65 + deb + libgpm2 + Ubuntu + gpm + 1.20.7-10build1 + libs + 1.20.7-10build1 + + + amd64 + 455 + deb + libgssapi-krb5-2 + Ubuntu + krb5 + 1.19.2-2 + libs + 1.19.2-2 + + + amd64 + 2984 + deb + libgstreamer1.0-0 + Ubuntu + gstreamer1.0 + 1.20.1-1 + libs + 1.20.1-1 + + + amd64 + 69 + deb + libgudev-1.0-0 + Ubuntu + libgudev (237-2build1) + 237-2build1 + libs + 1:237-2build1 + + + amd64 + 97 + deb + libgusb2 + Ubuntu + libgusb + 0.3.10-1 + libs + 0.3.10-1 + + + amd64 + 336 + deb + libhogweed6 + Ubuntu + nettle + 3.7.3-1build2 + libs + 3.7.3-1build2 + + + amd64 + 34444 + deb + libicu70 + Ubuntu + icu + 70.1-2 + libs + 70.1-2 + + + amd64 + 220 + deb + libidn2-0 + Ubuntu + libidn2 + 2.3.2-2build1 + libs + 2.3.2-2build1 + + + amd64 + 30 + deb + libinih1 + Ubuntu + libinih + 53-1ubuntu3 + libs + 53-1ubuntu3 + + + all + 4321 + deb + libintl-perl + Ubuntu + + 1.26-3build2 + perl + 1.26-3build2 + + + amd64 + 53 + deb + libintl-xs-perl + Ubuntu + libintl-perl + 1.26-3build2 + perl + 1.26-3build2 + + + amd64 + 83 + deb + libip4tc2 + Ubuntu + iptables + 1.8.7-1ubuntu5 + libs + 1.8.7-1ubuntu5 + + + amd64 + 83 + deb + libip6tc2 + Ubuntu + iptables + 1.8.7-1ubuntu5 + libs + 1.8.7-1ubuntu5 + + + amd64 + 510 + deb + libisc-export1105 + Ubuntu + bind9-libs + 1:9.11.19+dfsg-2.1ubuntu3 + libs + 1:9.11.19+dfsg-2.1ubuntu3 + + + amd64 + 492 + deb + libisns0 + Ubuntu + open-isns + 0.101-0ubuntu2 + libs + 0.101-0ubuntu2 + + + amd64 + 91 + deb + libjansson4 + Ubuntu + jansson + 2.13.1-1.1build3 + libs + 2.13.1-1.1build3 + + + amd64 + 96 + deb + libjcat1 + Ubuntu + libjcat + 0.1.9-1 + libs + 0.1.9-1 + + + amd64 + 347 + deb + libjq1 + Ubuntu + jq + 1.6-2.1ubuntu3 + utils + 1.6-2.1ubuntu3 + + + amd64 + 97 + deb + libjson-c5 + Ubuntu + json-c + 0.15-3~ubuntu1.22.04.1 + libs + 0.15-3~ubuntu1.22.04.1 + + + amd64 + 210 + deb + libjson-glib-1.0-0 + Ubuntu + json-glib + 1.6.6-1build1 + libs + 1.6.6-1build1 + + + all + 44 + deb + libjson-glib-1.0-common + Ubuntu + json-glib + 1.6.6-1build1 + libs + 1.6.6-1build1 + + + amd64 + 292 + deb + libk5crypto3 + Ubuntu + krb5 + 1.19.2-2 + libs + 1.19.2-2 + + + amd64 + 47 + deb + libkeyutils1 + Ubuntu + keyutils + 1.6.1-2ubuntu3 + misc + 1.6.1-2ubuntu3 + + + amd64 + 114 + deb + libklibc + Ubuntu + klibc + 2.0.10-4 + libs + 2.0.10-4 + + + amd64 + 139 + deb + libkmod2 + Ubuntu + kmod + 29-1ubuntu1 + libs + 29-1ubuntu1 + + + amd64 + 1052 + deb + libkrb5-3 + Ubuntu + krb5 + 1.19.2-2 + libs + 1.19.2-2 + + + amd64 + 164 + deb + libkrb5support0 + Ubuntu + krb5 + 1.19.2-2 + libs + 1.19.2-2 + + + amd64 + 302 + deb + libksba8 + Ubuntu + libksba + 1.6.0-2build1 + libs + 1.6.0-2build1 + + + amd64 + 565 + deb + libldap-2.5-0 + Ubuntu + openldap + 2.5.14+dfsg-0ubuntu0.22.04.1 + libs + 2.5.14+dfsg-0ubuntu0.22.04.1 + + + all + 108 + deb + libldap-common + Ubuntu + openldap + 2.5.12+dfsg-0ubuntu0.22.04.1 + libs + 2.5.12+dfsg-0ubuntu0.22.04.1 + + + amd64 + 109 + deb + liblmdb0 + Ubuntu + lmdb + 0.9.24-1build2 + libs + 0.9.24-1build2 + + + amd64 + 59 + deb + liblocale-gettext-perl + Ubuntu + + 1.07-4build3 + perl + 1.07-4build3 + + + amd64 + 419 + deb + libltdl7 + Ubuntu + libtool + 2.4.6-15build2 + libs + 2.4.6-15build2 + + + amd64 + 2938 + deb + liblvm2cmd2.03 + Ubuntu + lvm2 + 2.03.11-2.1ubuntu4 + libs + 2.03.11-2.1ubuntu4 + + + amd64 + 145 + deb + liblz4-1 + Ubuntu + lz4 + 1.9.3-2build2 + libs + 1.9.3-2build2 + + + amd64 + 290 + deb + liblzma5 + Ubuntu + xz-utils + 5.2.5-2ubuntu1 + libs + 5.2.5-2ubuntu1 + + + amd64 + 159 + deb + liblzo2-2 + Ubuntu + lzo2 + 2.10-2build3 + libs + 2.10-2build3 + + + amd64 + 7127 + deb + libmagic-mgc + Ubuntu + file + 1:5.41-3 + libs + 1:5.41-3 + + + amd64 + 228 + deb + libmagic1 + Ubuntu + file + 1:5.41-3 + libs + 1:5.41-3 + + + amd64 + 76 + deb + libmaxminddb0 + Ubuntu + libmaxminddb + 1.5.2-1build2 + libs + 1.5.2-1build2 + + + amd64 + 492 + deb + libmbim-glib4 + Ubuntu + libmbim + 1.26.2-1build1 + libs + 1.26.2-1build1 + + + amd64 + 33 + deb + libmbim-proxy + Ubuntu + libmbim + 1.26.2-1build1 + net + 1.26.2-1build1 + + + amd64 + 71 + deb + libmd0 + Ubuntu + libmd + 1.0.4-1build1 + libs + 1.0.4-1build1 + + + amd64 + 1122 + deb + libmm-glib0 + Ubuntu + modemmanager + 1.18.6-1 + libs + 1.18.6-1 + + + amd64 + 47 + deb + libmnl0 + Ubuntu + libmnl + 1.0.4-3build2 + libs + 1.0.4-3build2 + + + all + 29 + deb + libmodule-find-perl + Ubuntu + + 0.15-1 + perl + 0.15-1 + + + all + 95 + deb + libmodule-scandeps-perl + Ubuntu + + 1.31-1 + perl + 1.31-1 + + + amd64 + 382 + deb + libmount1 + Ubuntu + util-linux + 2.37.2-4ubuntu3 + libs + 2.37.2-4ubuntu3 + + + amd64 + 250 + deb + libmpdec3 + Ubuntu + mpdecimal + 2.5.1-2build2 + libs + 2.5.1-2build2 + + + amd64 + 3405 + deb + libmpfr6 + Ubuntu + mpfr4 + 4.1.0-3build3 + libs + 4.1.0-3build3 + + + amd64 + 96 + deb + libmspack0 + Ubuntu + libmspack + 0.10.1-2build2 + libs + 0.10.1-2build2 + + + amd64 + 329 + deb + libncurses6 + Ubuntu + ncurses + 6.3-2 + libs + 6.3-2 + + + amd64 + 422 + deb + libncursesw6 + Ubuntu + ncurses + 6.3-2 + libs + 6.3-2 + + + amd64 + 141 + deb + libnetfilter-conntrack3 + Ubuntu + libnetfilter-conntrack + 1.0.9-1 + libs + 1.0.9-1 + + + amd64 + 280 + deb + libnetplan0 + Ubuntu + netplan.io + 0.104-0ubuntu2 + libs + 0.104-0ubuntu2 + + + amd64 + 356 + deb + libnettle8 + Ubuntu + nettle + 3.7.3-1build2 + libs + 3.7.3-1build2 + + + amd64 + 200 + deb + libnewt0.52 + Ubuntu + newt + 0.52.21-5ubuntu2 + libs + 0.52.21-5ubuntu2 + + + amd64 + 48 + deb + libnfnetlink0 + Ubuntu + libnfnetlink + 1.0.1-3build3 + libs + 1.0.1-3build3 + + + amd64 + 913 + deb + libnftables1 + Ubuntu + nftables + 1.0.2-1ubuntu2 + libs + 1.0.2-1ubuntu2 + + + amd64 + 227 + deb + libnftnl11 + Ubuntu + libnftnl + 1.2.1-1build1 + libs + 1.2.1-1build1 + + + amd64 + 203 + deb + libnghttp2-14 + Ubuntu + nghttp2 + 1.43.0-1build3 + libs + 1.43.0-1build3 + + + amd64 + 180 + deb + libnl-3-200 + Ubuntu + libnl3 + 3.5.0-0.1 + libs + 3.5.0-0.1 + + + amd64 + 61 + deb + libnl-genl-3-200 + Ubuntu + libnl3 + 3.5.0-0.1 + libs + 3.5.0-0.1 + + + amd64 + 40 + deb + libnpth0 + Ubuntu + npth + 1.6-3build2 + libs + 1.6-3build2 + + + amd64 + 123 + deb + libnsl2 + Ubuntu + libnsl + 1.3.0-2build2 + libs + 1.3.0-2build2 + + + amd64 + 314 + deb + libnspr4 + Ubuntu + nspr + 2:4.32-3build1 + libs + 2:4.32-3build1 + + + amd64 + 488 + deb + libnss-systemd + Ubuntu + systemd + 249.11-0ubuntu3.4 + admin + 249.11-0ubuntu3.4 + + + amd64 + 3804 + deb + libnss3 + Ubuntu + nss + 2:3.68.2-0ubuntu1.1 + libs + 2:3.68.2-0ubuntu1.1 + + + amd64 + 371 + deb + libntfs-3g89 + Ubuntu + ntfs-3g + 1:2021.8.22-3ubuntu1.1 + libs + 1:2021.8.22-3ubuntu1.1 + + + amd64 + 71 + deb + libnuma1 + Ubuntu + numactl + 2.0.14-3ubuntu2 + libs + 2.0.14-3ubuntu2 + + + amd64 + 615 + deb + libonig5 + Ubuntu + libonig + 6.9.7.1-2build1 + libs + 6.9.7.1-2build1 + + + amd64 + 198 + deb + libopeniscsiusr + Ubuntu + open-iscsi + 2.1.5-1ubuntu1 + net + 2.1.5-1ubuntu1 + + + amd64 + 1292 + deb + libp11-kit0 + Ubuntu + p11-kit + 0.24.0-6build1 + libs + 0.24.0-6build1 + + + amd64 + 463 + deb + libpackagekit-glib2-18 + Ubuntu + packagekit + 1.2.5-2ubuntu2 + libs + 1.2.5-2ubuntu2 + + + amd64 + 45 + deb + libpam-cap + Ubuntu + libcap2 + 1:2.44-1build3 + admin + 1:2.44-1build3 + + + amd64 + 1138 + deb + libpam-modules + Ubuntu + pam + 1.4.0-11ubuntu2 + admin + 1.4.0-11ubuntu2 + + + amd64 + 248 + deb + libpam-modules-bin + Ubuntu + pam + 1.4.0-11ubuntu2 + admin + 1.4.0-11ubuntu2 + + + all + 312 + deb + libpam-runtime + Ubuntu + pam + 1.4.0-11ubuntu2 + admin + 1.4.0-11ubuntu2 + + + amd64 + 646 + deb + libpam-systemd + Ubuntu + systemd + 249.11-0ubuntu3.4 + admin + 249.11-0ubuntu3.4 + + + amd64 + 235 + deb + libpam0g + Ubuntu + pam + 1.4.0-11ubuntu2 + libs + 1.4.0-11ubuntu2 + + + amd64 + 148 + deb + libparted-fs-resize0 + Ubuntu + parted + 3.4-2build1 + libs + 3.4-2build1 + + + amd64 + 458 + deb + libparted2 + Ubuntu + parted + 3.4-2build1 + libs + 3.4-2build1 + + + amd64 + 357 + deb + libpcap0.8 + Ubuntu + libpcap + 1.10.1-4build1 + libs + 1.10.1-4build1 + + + amd64 + 90 + deb + libpci3 + Ubuntu + pciutils + 1:3.7.0-6 + libs + 1:3.7.0-6 + + + amd64 + 621 + deb + libpcre2-8-0 + Ubuntu + pcre2 + 10.39-3build1 + libs + 10.39-3build1 + + + amd64 + 683 + deb + libpcre3 + Ubuntu + pcre3 + 2:8.39-13ubuntu0.22.04.1 + libs + 2:8.39-13ubuntu0.22.04.1 + + + amd64 + 28629 + deb + libperl5.34 + Ubuntu + perl + 5.34.0-3ubuntu1 + libs + 5.34.0-3ubuntu1 + + + amd64 + 68 + deb + libpipeline1 + Ubuntu + libpipeline + 1.5.5-1 + libs + 1.5.5-1 + + + amd64 + 419 + deb + libplymouth5 + Ubuntu + plymouth + 0.9.5+git20211018-1ubuntu3 + libs + 0.9.5+git20211018-1ubuntu3 + + + amd64 + 353 + deb + libpng16-16 + Ubuntu + libpng1.6 + 1.6.37-3build5 + libs + 1.6.37-3build5 + + + amd64 + 80 + deb + libpolkit-agent-1-0 + Ubuntu + policykit-1 + 0.105-33 + libs + 0.105-33 + + + amd64 + 158 + deb + libpolkit-gobject-1-0 + Ubuntu + policykit-1 + 0.105-33 + libs + 0.105-33 + + + amd64 + 120 + deb + libpopt0 + Ubuntu + popt + 1.18-3build1 + libs + 1.18-3build1 + + + amd64 + 111 + deb + libproc-processtable-perl + Ubuntu + + 0.634-1build1 + perl + 0.634-1build1 + + + amd64 + 131 + deb + libprocps8 + Ubuntu + procps + 2:3.3.17-6ubuntu2 + libs + 2:3.3.17-6ubuntu2 + + + amd64 + 95 + deb + libpsl5 + Ubuntu + libpsl + 0.21.0-1.2build2 + libs + 0.21.0-1.2build2 + + + amd64 + 39 + deb + libpython3-stdlib + Ubuntu + python3-defaults + 3.10.4-0ubuntu2 + python + 3.10.4-0ubuntu2 + + + amd64 + 5773 + deb + libpython3.10 + Ubuntu + python3.10 + 3.10.4-3ubuntu0.1 + libs + 3.10.4-3ubuntu0.1 + + + amd64 + 5086 + deb + libpython3.10-minimal + Ubuntu + python3.10 + 3.10.4-3ubuntu0.1 + python + 3.10.4-3ubuntu0.1 + + + amd64 + 8031 + deb + libpython3.10-stdlib + Ubuntu + python3.10 + 3.10.4-3ubuntu0.1 + python + 3.10.4-3ubuntu0.1 + + + amd64 + 3481 + deb + libqmi-glib5 + Ubuntu + libqmi + 1.30.4-1 + libs + 1.30.4-1 + + + amd64 + 31 + deb + libqmi-proxy + Ubuntu + libqmi + 1.30.4-1 + net + 1.30.4-1 + + + amd64 + 461 + deb + libreadline8 + Ubuntu + readline + 8.1.2-1 + libs + 8.1.2-1 + + + amd64 + 141 + deb + librtmp1 + Ubuntu + rtmpdump + 2.4+20151223.gitfa8646d.1-2build4 + libs + 2.4+20151223.gitfa8646d.1-2build4 + + + amd64 + 170 + deb + libsasl2-2 + Ubuntu + cyrus-sasl2 + 2.1.27+dfsg2-3ubuntu1 + libs + 2.1.27+dfsg2-3ubuntu1 + + + amd64 + 267 + deb + libsasl2-modules + Ubuntu + cyrus-sasl2 + 2.1.27+dfsg2-3ubuntu1 + libs + 2.1.27+dfsg2-3ubuntu1 + + + amd64 + 97 + deb + libsasl2-modules-db + Ubuntu + cyrus-sasl2 + 2.1.27+dfsg2-3ubuntu1 + libs + 2.1.27+dfsg2-3ubuntu1 + + + amd64 + 145 + deb + libseccomp2 + Ubuntu + libseccomp + 2.5.3-2ubuntu2 + libs + 2.5.3-2ubuntu2 + + + amd64 + 207 + deb + libselinux1 + Ubuntu + libselinux + 3.3-1build2 + libs + 3.3-1build2 + + + all + 37 + deb + libsemanage-common + Ubuntu + libsemanage + 3.3-1build2 + libs + 3.3-1build2 + + + amd64 + 300 + deb + libsemanage2 + Ubuntu + libsemanage + 3.3-1build2 + libs + 3.3-1build2 + + + amd64 + 735 + deb + libsepol2 + Ubuntu + libsepol + 3.3-1build1 + libs + 3.3-1build1 + + + amd64 + 294 + deb + libsgutils2-2 + Ubuntu + sg3-utils + 1.46-1build1 + libs + 1.46-1build1 + + + amd64 + 49 + deb + libsigsegv2 + Ubuntu + libsigsegv + 2.13-1ubuntu3 + libs + 2.13-1ubuntu3 + + + amd64 + 1628 + deb + libslang2 + Ubuntu + slang2 + 2.3.2-5build4 + libs + 2.3.2-5build4 + + + amd64 + 209 + deb + libsmartcols1 + Ubuntu + util-linux + 2.37.2-4ubuntu3 + libs + 2.37.2-4ubuntu3 + + + amd64 + 304 + deb + libsmbios-c2 + Ubuntu + libsmbios + 2.4.3-1build1 + libs + 2.4.3-1build1 + + + amd64 + 402 + deb + libsodium23 + Ubuntu + libsodium + 1.0.18-1build2 + libs + 1.0.18-1build2 + + + all + 40 + deb + libsort-naturally-perl + Ubuntu + + 1.03-2 + perl + 1.03-2 + + + amd64 + 1602 + deb + libsqlite3-0 + Ubuntu + sqlite3 + 3.37.2-2 + libs + 3.37.2-2 + + + amd64 + 113 + deb + libss2 + Ubuntu + e2fsprogs + 1.46.5-2ubuntu1.1 + libs + 1.46.5-2ubuntu1.1 + + + amd64 + 486 + deb + libssh-4 + Ubuntu + libssh + 0.9.6-2build1 + libs + 0.9.6-2build1 + + + amd64 + 5822 + deb + libssl3 + Ubuntu + openssl + 3.0.2-0ubuntu1.6 + libs + 3.0.2-0ubuntu1.6 + + + amd64 + 2750 + deb + libstdc++6 + Ubuntu + gcc-12 + 12-20220319-1ubuntu1 + libs + 12-20220319-1ubuntu1 + + + amd64 + 839 + deb + libstemmer0d + Ubuntu + snowball + 2.2.0-1build1 + libs + 2.2.0-1build1 + + + amd64 + 993 + deb + libsystemd0 + Ubuntu + systemd + 249.11-0ubuntu3.4 + libs + 249.11-0ubuntu3.4 + + + amd64 + 133 + deb + libtasn1-6 + Ubuntu + + 4.18.0-4build1 + libs + 4.18.0-4build1 + + + amd64 + 4091 + deb + libtcl8.6 + Ubuntu + tcl8.6 + 8.6.12+dfsg-1build1 + libs + 8.6.12+dfsg-1build1 + + + amd64 + 72 + deb + libterm-readkey-perl + Ubuntu + + 2.38-1build4 + perl + 2.38-1build4 + + + amd64 + 45 + deb + libtext-charwidth-perl + Ubuntu + + 0.04-10build3 + perl + 0.04-10build3 + + + amd64 + 52 + deb + libtext-iconv-perl + Ubuntu + + 1.7-7build3 + perl + 1.7-7build3 + + + all + 25 + deb + libtext-wrapi18n-perl + Ubuntu + + 0.06-9 + perl + 0.06-9 + + + amd64 + 558 + deb + libtinfo6 + Ubuntu + ncurses + 6.3-2 + libs + 6.3-2 + + + all + 32 + deb + libtirpc-common + Ubuntu + libtirpc + 1.3.2-2build1 + libs + 1.3.2-2build1 + + + amd64 + 215 + deb + libtirpc3 + Ubuntu + libtirpc + 1.3.2-2build1 + libs + 1.3.2-2build1 + + + amd64 + 623 + deb + libtss2-esys-3.0.2-0 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 344 + deb + libtss2-mu0 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 170 + deb + libtss2-sys1 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 57 + deb + libtss2-tcti-cmd0 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 52 + deb + libtss2-tcti-device0 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 56 + deb + libtss2-tcti-mssim0 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 56 + deb + libtss2-tcti-swtpm0 + Ubuntu + tpm2-tss + 3.2.0-1ubuntu1 + libs + 3.2.0-1ubuntu1 + + + amd64 + 208 + deb + libuchardet0 + Ubuntu + uchardet + 0.0.7-1build2 + libs + 0.0.7-1build2 + + + amd64 + 345 + deb + libudev1 + Ubuntu + systemd + 249.11-0ubuntu3.4 + libs + 249.11-0ubuntu3.4 + + + amd64 + 835 + deb + libudisks2-0 + Ubuntu + udisks2 + 2.9.4-1ubuntu2 + libs + 2.9.4-1ubuntu2 + + + amd64 + 1746 + deb + libunistring2 + Ubuntu + libunistring + 1.0-1 + libs + 1.0-1 + + + amd64 + 196 + deb + libunwind8 + Ubuntu + libunwind + 1.3.2-2build2 + libs + 1.3.2-2build2 + + + amd64 + 331 + deb + liburcu8 + Ubuntu + liburcu + 0.13.1-1 + libs + 0.13.1-1 + + + amd64 + 144 + deb + libusb-1.0-0 + Ubuntu + libusb-1.0 + 2:1.0.25-1ubuntu2 + libs + 2:1.0.25-1ubuntu2 + + + amd64 + 51 + deb + libutempter0 + Ubuntu + libutempter + 1.2.1-2build2 + libs + 1.2.1-2build2 + + + amd64 + 134 + deb + libuuid1 + Ubuntu + util-linux + 2.37.2-4ubuntu3 + libs + 2.37.2-4ubuntu3 + + + amd64 + 252 + deb + libuv1 + Ubuntu + + 1.43.0-1 + libs + 1.43.0-1 + + + amd64 + 180 + deb + libvolume-key1 + Ubuntu + volume-key + 0.3.12-3.1build3 + libs + 0.3.12-3.1build3 + + + amd64 + 109 + deb + libwrap0 + Ubuntu + tcp-wrappers + 7.6.q-31build2 + libs + 7.6.q-31build2 + + + amd64 + 1386 + deb + libx11-6 + Ubuntu + libx11 + 2:1.7.5-1 + libs + 2:1.7.5-1 + + + all + 1429 + deb + libx11-data + Ubuntu + libx11 + 2:1.7.5-1 + x11 + 2:1.7.5-1 + + + amd64 + 35 + deb + libxau6 + Ubuntu + libxau + 1:1.0.9-1build5 + libs + 1:1.0.9-1build5 + + + amd64 + 206 + deb + libxcb1 + Ubuntu + libxcb + 1.14-3ubuntu3 + libs + 1.14-3ubuntu3 + + + amd64 + 43 + deb + libxdmcp6 + Ubuntu + libxdmcp + 1:1.1.3-0ubuntu5 + libs + 1:1.1.3-0ubuntu5 + + + amd64 + 110 + deb + libxext6 + Ubuntu + libxext + 2:1.3.4-1build1 + libs + 2:1.3.4-1build1 + + + all + 60 + deb + libxml-treepp-perl + Ubuntu + + 0.43-1 + perl + 0.43-1 + + + amd64 + 2096 + deb + libxml2 + Ubuntu + + 2.9.13+dfsg-1ubuntu0.1 + libs + 2.9.13+dfsg-1ubuntu0.1 + + + amd64 + 198 + deb + libxmlb2 + Ubuntu + libxmlb + 0.3.6-2build1 + libs + 0.3.6-2build1 + + + amd64 + 435 + deb + libxmlsec1 + Ubuntu + xmlsec1 + 1.2.33-1build2 + libs + 1.2.33-1build2 + + + amd64 + 304 + deb + libxmlsec1-openssl + Ubuntu + xmlsec1 + 1.2.33-1build2 + libs + 1.2.33-1build2 + + + amd64 + 41 + deb + libxmuu1 + Ubuntu + libxmu + 2:1.1.3-3 + libs + 2:1.1.3-3 + + + amd64 + 503 + deb + libxslt1.1 + Ubuntu + libxslt + 1.1.34-4build2 + libs + 1.1.34-4build2 + + + amd64 + 114 + deb + libxtables12 + Ubuntu + iptables + 1.8.7-1ubuntu5 + libs + 1.8.7-1ubuntu5 + + + amd64 + 97 + deb + libxxhash0 + Ubuntu + xxhash + 0.8.1-1 + libs + 0.8.1-1 + + + amd64 + 144 + deb + libyaml-0-2 + Ubuntu + libyaml + 0.2.2-1build2 + libs + 0.2.2-1build2 + + + amd64 + 846 + deb + libzstd1 + Ubuntu + libzstd + 1.4.8+dfsg-3build1 + libs + 1.4.8+dfsg-3build1 + + + all + 63 + deb + linux-base + Ubuntu + + 4.5ubuntu9 + kernel + 4.5ubuntu9 + + + all + 75459 + deb + linux-headers-5.15.0-41 + Ubuntu + linux + 5.15.0-41.44 + devel + 5.15.0-41.44 + + + amd64 + 23758 + deb + linux-headers-5.15.0-41-generic + Ubuntu + linux + 5.15.0-41.44 + devel + 5.15.0-41.44 + + + amd64 + 20 + deb + linux-headers-generic + Ubuntu + linux-meta + 5.15.0.41.43 + kernel + 5.15.0.41.43 + + + amd64 + 20 + deb + linux-headers-virtual + Ubuntu + linux-meta + 5.15.0.41.43 + kernel + 5.15.0.41.43 + + + amd64 + 10860 + deb + linux-image-5.15.0-41-generic + Ubuntu + linux-signed + 5.15.0-41.44 + kernel + 5.15.0-41.44 + + + amd64 + 20 + deb + linux-image-virtual + Ubuntu + linux-meta + 5.15.0.41.43 + kernel + 5.15.0.41.43 + + + amd64 + 108804 + deb + linux-modules-5.15.0-41-generic + Ubuntu + linux + 5.15.0-41.44 + kernel + 5.15.0-41.44 + + + amd64 + 20 + deb + linux-virtual + Ubuntu + linux-meta + 5.15.0.41.43 + kernel + 5.15.0.41.43 + + + all + 17064 + deb + locales + Ubuntu + glibc + 2.35-0ubuntu3 + localization + 2.35-0ubuntu3 + + + amd64 + 888 + deb + login + Ubuntu + shadow + 1:4.8.1-2ubuntu2 + admin + 1:4.8.1-2ubuntu2 + + + amd64 + 167 + deb + logrotate + Ubuntu + + 3.19.0-1ubuntu1.1 + admin + 3.19.0-1ubuntu1.1 + + + amd64 + 97 + deb + logsave + Ubuntu + e2fsprogs + 1.46.5-2ubuntu1.1 + admin + 1.46.5-2ubuntu1.1 + + + all + 58 + deb + lsb-base + Ubuntu + lsb + 11.1.0ubuntu4 + misc + 11.1.0ubuntu4 + + + all + 66 + deb + lsb-release + Ubuntu + lsb + 11.1.0ubuntu4 + misc + 11.1.0ubuntu4 + + + amd64 + 921 + deb + lshw + Ubuntu + + 02.19.git.2021.06.19.996aaad9c7-2build1 + utils + 02.19.git.2021.06.19.996aaad9c7-2build1 + + + amd64 + 447 + deb + lsof + Ubuntu + + 4.93.2+dfsg-1.1build2 + utils + 4.93.2+dfsg-1.1build2 + + + amd64 + 4032 + deb + lvm2 + Ubuntu + + 2.03.11-2.1ubuntu4 + admin + 2.03.11-2.1ubuntu4 + + + all + 24 + deb + lxd-agent-loader + Ubuntu + + 0.5 + misc + 0.5 + + + amd64 + 2824 + deb + man-db + Ubuntu + + 2.10.2-1 + doc + 2.10.2-1 + + + all + 1669 + deb + manpages + Ubuntu + + 5.10-1ubuntu1 + doc + 5.10-1ubuntu1 + + + amd64 + 229 + deb + mawk + Ubuntu + + 1.3.4.20200120-3 + utils + 1.3.4.20200120-3 + + + amd64 + 1180 + deb + mdadm + Ubuntu + + 4.2-0ubuntu1 + admin + 4.2-0ubuntu1 + + + all + 97 + deb + media-types + Ubuntu + + 7.0.0 + net + 7.0.0 + + + amd64 + 4340 + deb + modemmanager + Ubuntu + + 1.18.6-1 + net + 1.18.6-1 + + + all + 47 + deb + motd-news-config + Ubuntu + base-files + 12ubuntu4.1 + admin + 12ubuntu4.1 + + + amd64 + 389 + deb + mount + Ubuntu + util-linux + 2.37.2-4ubuntu3 + admin + 2.37.2-4ubuntu3 + + + amd64 + 157 + deb + mtr-tiny + Ubuntu + mtr + 0.95-1 + net + 0.95-1 + + + amd64 + 1227 + deb + multipath-tools + Ubuntu + + 0.8.8-1ubuntu1 + admin + 0.8.8-1ubuntu1 + + + amd64 + 860 + deb + nano + Ubuntu + + 6.2-1 + editors + 6.2-1 + + + all + 393 + deb + ncurses-base + Ubuntu + ncurses + 6.3-2 + utils + 6.3-2 + + + amd64 + 646 + deb + ncurses-bin + Ubuntu + ncurses + 6.3-2 + utils + 6.3-2 + + + all + 4249 + deb + ncurses-term + Ubuntu + ncurses + 6.3-2 + misc + 6.3-2 + + + all + 500 + deb + needrestart + Ubuntu + + 3.5-5ubuntu2.1 + admin + 3.5-5ubuntu2.1 + + + amd64 + 800 + deb + net-tools + Ubuntu + + 1.60+git20181103.0eebece-1ubuntu5 + net + 1.60+git20181103.0eebece-1ubuntu5 + + + all + 41 + deb + netbase + Ubuntu + + 6.3 + admin + 6.3 + + + amd64 + 106 + deb + netcat-openbsd + Ubuntu + + 1.218-4ubuntu1 + net + 1.218-4ubuntu1 + + + amd64 + 377 + deb + netplan.io + Ubuntu + + 0.104-0ubuntu2 + net + 0.104-0ubuntu2 + + + all + 69 + deb + networkd-dispatcher + Ubuntu + + 2.1-2ubuntu0.22.04.2 + utils + 2.1-2ubuntu0.22.04.2 + + + amd64 + 177 + deb + nftables + Ubuntu + + 1.0.2-1ubuntu2 + net + 1.0.2-1ubuntu2 + + + amd64 + 1300 + deb + ntfs-3g + Ubuntu + + 1:2021.8.22-3ubuntu1.1 + otherosfs + 1:2021.8.22-3ubuntu1.1 + + + amd64 + 1221 + deb + open-iscsi + Ubuntu + + 2.1.5-1ubuntu1 + net + 2.1.5-1ubuntu1 + + + amd64 + 3014 + deb + open-vm-tools + Ubuntu + + 2:11.3.5-1ubuntu4 + admin + 2:11.3.5-1ubuntu4 + + + amd64 + 3079 + deb + openssh-client + Ubuntu + openssh + 1:8.9p1-3 + net + 1:8.9p1-3 + + + amd64 + 1501 + deb + openssh-server + Ubuntu + openssh + 1:8.9p1-3 + net + 1:8.9p1-3 + + + amd64 + 101 + deb + openssh-sftp-server + Ubuntu + openssh + 1:8.9p1-3 + net + 1:8.9p1-3 + + + amd64 + 2053 + deb + openssl + Ubuntu + + 3.0.2-0ubuntu1.6 + utils + 3.0.2-0ubuntu1.6 + + + amd64 + 112 + deb + os-prober + Ubuntu + + 1.79ubuntu2 + utils + 1.79ubuntu2 + + + all + 66 + deb + overlayroot + Ubuntu + cloud-initramfs-tools + 0.47ubuntu1 + admin + 0.47ubuntu1 + + + amd64 + 1592 + deb + packagekit + Ubuntu + + 1.2.5-2ubuntu2 + admin + 1.2.5-2ubuntu2 + + + amd64 + 123 + deb + packagekit-tools + Ubuntu + packagekit + 1.2.5-2ubuntu2 + admin + 1.2.5-2ubuntu2 + + + amd64 + 167 + deb + parted + Ubuntu + + 3.4-2build1 + admin + 3.4-2build1 + + + amd64 + 2321 + deb + passwd + Ubuntu + shadow + 1:4.8.1-2ubuntu2 + admin + 1:4.8.1-2ubuntu2 + + + all + 152 + deb + pastebinit + Ubuntu + + 1.5.1-1ubuntu1 + misc + 1.5.1-1ubuntu1 + + + amd64 + 229 + deb + patch + Ubuntu + + 2.7.6-7build2 + vcs + 2.7.6-7build2 + + + all + 1282 + deb + pci.ids + Ubuntu + + 0.0~2022.01.22-1 + admin + 0.0~2022.01.22-1 + + + amd64 + 172 + deb + pciutils + Ubuntu + + 1:3.7.0-6 + admin + 1:3.7.0-6 + + + amd64 + 717 + deb + perl + Ubuntu + + 5.34.0-3ubuntu1 + perl + 5.34.0-3ubuntu1 + + + amd64 + 7775 + deb + perl-base + Ubuntu + perl + 5.34.0-3ubuntu1 + perl + 5.34.0-3ubuntu1 + + + all + 17668 + deb + perl-modules-5.34 + Ubuntu + perl + 5.34.0-3ubuntu1 + libs + 5.34.0-3ubuntu1 + + + amd64 + 92 + deb + pinentry-curses + Ubuntu + pinentry + 1.1.1-1build2 + utils + 1.1.1-1build2 + + + amd64 + 65 + deb + pkexec + Ubuntu + policykit-1 + 0.105-33 + admin + 0.105-33 + + + amd64 + 924 + deb + plymouth + Ubuntu + + 0.9.5+git20211018-1ubuntu3 + misc + 0.9.5+git20211018-1ubuntu3 + + + amd64 + 82 + deb + plymouth-theme-ubuntu-text + Ubuntu + plymouth + 0.9.5+git20211018-1ubuntu3 + misc + 0.9.5+git20211018-1ubuntu3 + + + amd64 + 29 + deb + policykit-1 + Ubuntu + + 0.105-33 + oldlibs + 0.105-33 + + + amd64 + 520 + deb + polkitd + Ubuntu + policykit-1 + 0.105-33 + admin + 0.105-33 + + + all + 92 + deb + pollinate + Ubuntu + + 4.33-3ubuntu2 + admin + 4.33-3ubuntu2 + + + all + 25 + deb + powermgmt-base + Ubuntu + + 1.36 + utils + 1.36 + + + amd64 + 1388 + deb + procps + Ubuntu + + 2:3.3.17-6ubuntu2 + admin + 2:3.3.17-6ubuntu2 + + + amd64 + 452 + deb + psmisc + Ubuntu + + 23.4-2build3 + admin + 23.4-2build3 + + + all + 330 + deb + publicsuffix + Ubuntu + + 20211207.1025-1 + net + 20211207.1025-1 + + + amd64 + 52 + deb + pwgen + Ubuntu + + 2.08-2build1 + admin + 2.08-2build1 + + + all + 188 + deb + python-apt-common + Ubuntu + python-apt + 2.3.0ubuntu2 + python + 2.3.0ubuntu2 + + + all + 26407 + deb + python-babel-localedata + Ubuntu + python-babel + 2.8.0+dfsg.1-7 + python + 2.8.0+dfsg.1-7 + + + amd64 + 90 + deb + python3 + Ubuntu + python3-defaults + 3.10.4-0ubuntu2 + python + 3.10.4-0ubuntu2 + + + all + 594 + deb + python3-apport + Ubuntu + apport + 2.20.11-0ubuntu82.1 + python + 2.20.11-0ubuntu82.1 + + + amd64 + 705 + deb + python3-apt + Ubuntu + python-apt + 2.3.0ubuntu2 + python + 2.3.0ubuntu2 + + + all + 207 + deb + python3-attr + Ubuntu + python-attrs + 21.2.0-1 + python + 21.2.0-1 + + + all + 141 + deb + python3-automat + Ubuntu + automat + 20.2.0-1 + python + 20.2.0-1 + + + all + 418 + deb + python3-babel + Ubuntu + python-babel + 2.8.0+dfsg.1-7 + python + 2.8.0+dfsg.1-7 + + + amd64 + 90 + deb + python3-bcrypt + Ubuntu + python-bcrypt + 3.2.0-1build1 + python + 3.2.0-1build1 + + + all + 55 + deb + python3-blinker + Ubuntu + blinker + 1.4+dfsg1-0.4 + python + 1.4+dfsg1-0.4 + + + all + 324 + deb + python3-certifi + Ubuntu + python-certifi + 2020.6.20-1 + python + 2020.6.20-1 + + + amd64 + 218 + deb + python3-cffi-backend + Ubuntu + python-cffi + 1.15.0-1build2 + python + 1.15.0-1build2 + + + all + 1068 + deb + python3-chardet + Ubuntu + chardet + 4.0.0-1 + python + 4.0.0-1 + + + all + 366 + deb + python3-click + Ubuntu + python-click + 8.0.3-1 + python + 8.0.3-1 + + + all + 91 + deb + python3-colorama + Ubuntu + python-colorama + 0.4.4-1 + python + 0.4.4-1 + + + all + 59 + deb + python3-commandnotfound + Ubuntu + command-not-found + 22.04.0 + python + 22.04.0 + + + all + 160 + deb + python3-configobj + Ubuntu + configobj + 5.0.6-5 + python + 5.0.6-5 + + + all + 40 + deb + python3-constantly + Ubuntu + constantly + 15.1.0-2 + python + 15.1.0-2 + + + amd64 + 1587 + deb + python3-cryptography + Ubuntu + python-cryptography + 3.4.8-1ubuntu2 + python + 3.4.8-1ubuntu2 + + + amd64 + 417 + deb + python3-dbus + Ubuntu + dbus-python + 1.2.18-3build1 + python + 1.2.18-3build1 + + + all + 18 + deb + python3-debconf + Ubuntu + debconf + 1.5.79ubuntu1 + python + 1.5.79ubuntu1 + + + all + 552 + deb + python3-debian + Ubuntu + python-debian + 0.1.43ubuntu1 + python + 0.1.43ubuntu1 + + + all + 77 + deb + python3-distro + Ubuntu + python-distro + 1.7.0-1 + python + 1.7.0-1 + + + all + 35 + deb + python3-distro-info + Ubuntu + distro-info + 1.1build1 + python + 1.1build1 + + + all + 632 + deb + python3-distupgrade + Ubuntu + ubuntu-release-upgrader + 1:22.04.11 + python + 1:22.04.11 + + + all + 675 + deb + python3-distutils + Ubuntu + python3-stdlib-extensions + 3.10.4-0ubuntu1 + python + 3.10.4-0ubuntu1 + + + amd64 + 57 + deb + python3-gdbm + Ubuntu + python3-stdlib-extensions + 3.10.4-0ubuntu1 + python + 3.10.4-0ubuntu1 + + + amd64 + 746 + deb + python3-gi + Ubuntu + pygobject + 3.42.0-3build1 + python + 3.42.0-3build1 + + + all + 166 + deb + python3-hamcrest + Ubuntu + pyhamcrest + 2.0.2-2 + python + 2.0.2-2 + + + all + 131 + deb + python3-httplib2 + Ubuntu + python-httplib2 + 0.20.2-2 + python + 0.20.2-2 + + + all + 228 + deb + python3-hyperlink + Ubuntu + hyperlink + 21.0.0-3 + python + 21.0.0-3 + + + all + 299 + deb + python3-idna + Ubuntu + python-idna + 3.3-1 + python + 3.3-1 + + + all + 67 + deb + python3-importlib-metadata + Ubuntu + python-importlib-metadata + 4.6.4-1 + python + 4.6.4-1 + + + all + 99 + deb + python3-incremental + Ubuntu + incremental + 21.3.0-1 + python + 21.3.0-1 + + + all + 186 + deb + python3-jeepney + Ubuntu + jeepney + 0.7.1-3 + python + 0.7.1-3 + + + all + 544 + deb + python3-jinja2 + Ubuntu + jinja2 + 3.0.3-1 + python + 3.0.3-1 + + + all + 44 + deb + python3-json-pointer + Ubuntu + python-json-pointer + 2.0-0ubuntu1 + python + 2.0-0ubuntu1 + + + all + 59 + deb + python3-jsonpatch + Ubuntu + python-json-patch + 1.32-2 + python + 1.32-2 + + + all + 259 + deb + python3-jsonschema + Ubuntu + python-jsonschema + 3.2.0-0ubuntu2 + python + 3.2.0-0ubuntu2 + + + all + 81 + deb + python3-jwt + Ubuntu + pyjwt + 2.3.0-1 + python + 2.3.0-1 + + + all + 154 + deb + python3-keyring + Ubuntu + python-keyring + 23.5.0-1 + python + 23.5.0-1 + + + all + 1762 + deb + python3-launchpadlib + Ubuntu + python-launchpadlib + 1.10.16-1 + python + 1.10.16-1 + + + all + 183 + deb + python3-lazr.restfulclient + Ubuntu + lazr.restfulclient + 0.14.4-1 + python + 0.14.4-1 + + + all + 75 + deb + python3-lazr.uri + Ubuntu + lazr.uri + 1.0.6-2 + python + 1.0.6-2 + + + all + 367 + deb + python3-lib2to3 + Ubuntu + python3-stdlib-extensions + 3.10.4-0ubuntu1 + python + 3.10.4-0ubuntu1 + + + amd64 + 50 + deb + python3-markupsafe + Ubuntu + markupsafe + 2.0.1-2build1 + python + 2.0.1-2build1 + + + amd64 + 122 + deb + python3-minimal + Ubuntu + python3-defaults + 3.10.4-0ubuntu2 + python + 3.10.4-0ubuntu2 + + + all + 226 + deb + python3-more-itertools + Ubuntu + more-itertools + 8.10.0-2 + python + 8.10.0-2 + + + amd64 + 54 + deb + python3-netifaces + Ubuntu + netifaces + 0.11.0-1build2 + python + 0.11.0-1build2 + + + amd64 + 111 + deb + python3-newt + Ubuntu + newt + 0.52.21-5ubuntu2 + python + 0.52.21-5ubuntu2 + + + all + 556 + deb + python3-oauthlib + Ubuntu + python-oauthlib + 3.2.0-1 + python + 3.2.0-1 + + + all + 238 + deb + python3-openssl + Ubuntu + pyopenssl + 21.0.0-1 + python + 21.0.0-1 + + + all + 200 + deb + python3-pexpect + Ubuntu + pexpect + 4.8.0-2ubuntu1 + python + 4.8.0-2ubuntu1 + + + all + 580 + deb + python3-pkg-resources + Ubuntu + setuptools + 59.6.0-1.2 + python + 59.6.0-1.2 + + + all + 180 + deb + python3-problem-report + Ubuntu + apport + 2.20.11-0ubuntu82.1 + python + 2.20.11-0ubuntu82.1 + + + all + 59 + deb + python3-ptyprocess + Ubuntu + ptyprocess + 0.7.0-3 + python + 0.7.0-3 + + + all + 390 + deb + python3-pyasn1 + Ubuntu + pyasn1 + 0.4.8-1 + python + 0.4.8-1 + + + all + 363 + deb + python3-pyasn1-modules + Ubuntu + python-pyasn1-modules + 0.2.1-1 + python + 0.2.1-1 + + + all + 298 + deb + python3-pyparsing + Ubuntu + pyparsing + 2.4.7-1 + python + 2.4.7-1 + + + amd64 + 249 + deb + python3-pyrsistent + Ubuntu + pyrsistent + 0.18.1-1build1 + python + 0.18.1-1build1 + + + all + 230 + deb + python3-requests + Ubuntu + requests + 2.25.1+dfsg-2 + python + 2.25.1+dfsg-2 + + + all + 56 + deb + python3-secretstorage + Ubuntu + python-secretstorage + 3.3.1-1 + python + 3.3.1-1 + + + all + 459 + deb + python3-serial + Ubuntu + pyserial + 3.5-1 + python + 3.5-1 + + + all + 53 + deb + python3-service-identity + Ubuntu + python-service-identity + 18.1.0-6 + python + 18.1.0-6 + + + all + 1747 + deb + python3-setuptools + Ubuntu + setuptools + 59.6.0-1.2 + python + 59.6.0-1.2 + + + all + 59 + deb + python3-six + Ubuntu + six + 1.16.0-3ubuntu1 + python + 1.16.0-3ubuntu1 + + + all + 174 + deb + python3-software-properties + Ubuntu + software-properties + 0.99.22.2 + python + 0.99.22.2 + + + amd64 + 193 + deb + python3-systemd + Ubuntu + python-systemd + 234-3ubuntu2 + python + 234-3ubuntu2 + + + all + 12654 + deb + python3-twisted + Ubuntu + twisted + 22.1.0-2ubuntu2.1 + python + 22.1.0-2ubuntu2.1 + + + all + 121 + deb + python3-tz + Ubuntu + python-tz + 2022.1-1 + python + 2022.1-1 + + + all + 255 + deb + python3-update-manager + Ubuntu + update-manager + 1:22.04.9 + python + 1:22.04.9 + + + all + 457 + deb + python3-urllib3 + Ubuntu + python-urllib3 + 1.26.5-1~exp1 + python + 1.26.5-1~exp1 + + + all + 365 + deb + python3-wadllib + Ubuntu + python-wadllib + 1.3.6-1 + python + 1.3.6-1 + + + amd64 + 529 + deb + python3-yaml + Ubuntu + pyyaml + 5.4.1-1ubuntu1 + python + 5.4.1-1ubuntu1 + + + all + 25 + deb + python3-zipp + Ubuntu + python-zipp + 1.0.0-3 + python + 1.0.0-3 + + + amd64 + 961 + deb + python3-zope.interface + Ubuntu + zope.interface + 5.4.0-1build1 + zope + 5.4.0-1build1 + + + amd64 + 611 + deb + python3.10 + Ubuntu + + 3.10.4-3ubuntu0.1 + python + 3.10.4-3ubuntu0.1 + + + amd64 + 5895 + deb + python3.10-minimal + Ubuntu + python3.10 + 3.10.4-3ubuntu0.1 + python + 3.10.4-3ubuntu0.1 + + + all + 80 + deb + readline-common + Ubuntu + readline + 8.1.2-1 + utils + 8.1.2-1 + + + amd64 + 794 + deb + rsync + Ubuntu + + 3.2.7-0ubuntu0.22.04.2 + net + 3.2.7-0ubuntu0.22.04.2 + + + amd64 + 1750 + deb + rsyslog + Ubuntu + + 8.2112.0-2ubuntu2.2 + admin + 8.2112.0-2ubuntu2.2 + + + amd64 + 29084 + deb + rudder-agent + Ubuntu + + 7.2.5-ubuntu22.04 + admin + 7.2.5-ubuntu22.04 + + + all + 44 + deb + run-one + Ubuntu + + 1.17-0ubuntu1 + admin + 1.17-0ubuntu1 + + + amd64 + 225 + deb + sbsigntool + Ubuntu + + 0.9.4-2ubuntu2 + utils + 0.9.4-2ubuntu2 + + + amd64 + 1005 + deb + screen + Ubuntu + + 4.9.0-1 + misc + 4.9.0-1 + + + amd64 + 29 + deb + secureboot-db + Ubuntu + + 1.8 + utils + 1.8 + + + amd64 + 328 + deb + sed + Ubuntu + + 4.8-1ubuntu2 + utils + 4.8-1ubuntu2 + + + all + 59 + deb + sensible-utils + Ubuntu + + 0.0.17 + utils + 0.0.17 + + + amd64 + 2789 + deb + sg3-utils + Ubuntu + + 1.46-1build1 + admin + 1.46-1build1 + + + all + 34 + deb + sg3-utils-udev + Ubuntu + sg3-utils + 1.46-1build1 + admin + 1.46-1build1 + + + amd64 + 2744 + deb + shared-mime-info + Ubuntu + + 2.1-2 + misc + 2.1-2 + + + amd64 + 524 + deb + sharutils + Ubuntu + + 1:4.15.2-5build1 + utils + 1:4.15.2-5build1 + + + amd64 + 87170 + deb + snapd + Ubuntu + + 2.55.5+22.04 + devel + 2.55.5+22.04 + + + all + 216 + deb + software-properties-common + Ubuntu + software-properties + 0.99.22.2 + admin + 0.99.22.2 + + + amd64 + 2708 + deb + sosreport + Ubuntu + + 4.3-1ubuntu2 + admin + 4.3-1ubuntu2 + + + amd64 + 414 + deb + squashfs-tools + Ubuntu + + 1:4.5-3build1 + kernel + 1:4.5-3build1 + + + all + 53 + deb + ssh-import-id + Ubuntu + + 5.11-0ubuntu1 + misc + 5.11-0ubuntu1 + + + amd64 + 2000 + deb + strace + Ubuntu + + 5.16-0ubuntu3 + utils + 5.16-0ubuntu3 + + + amd64 + 2504 + deb + sudo + Ubuntu + + 1.9.9-1ubuntu2 + admin + 1.9.9-1ubuntu2 + + + amd64 + 16288 + deb + systemd + Ubuntu + + 249.11-0ubuntu3.4 + admin + 249.11-0ubuntu3.4 + + + amd64 + 195 + deb + systemd-sysv + Ubuntu + systemd + 249.11-0ubuntu3.4 + admin + 249.11-0ubuntu3.4 + + + amd64 + 266 + deb + systemd-timesyncd + Ubuntu + systemd + 249.11-0ubuntu3.4 + admin + 249.11-0ubuntu3.4 + + + amd64 + 83 + deb + sysvinit-utils + Ubuntu + sysvinit + 3.01-1ubuntu1 + admin + 3.01-1ubuntu1 + + + amd64 + 956 + deb + tar + Ubuntu + + 1.34+dfsg-1build3 + utils + 1.34+dfsg-1build3 + + + amd64 + 22 + deb + tcl + Ubuntu + tcltk-defaults + 8.6.11+1build2 + interpreters + 8.6.11+1build2 + + + amd64 + 49 + deb + tcl8.6 + Ubuntu + + 8.6.12+dfsg-1build1 + interpreters + 8.6.12+dfsg-1build1 + + + amd64 + 1374 + deb + tcpdump + Ubuntu + + 4.99.1-3build2 + net + 4.99.1-3build2 + + + amd64 + 154 + deb + telnet + Ubuntu + netkit-telnet + 0.17-44build1 + net + 0.17-44build1 + + + amd64 + 1421 + deb + thin-provisioning-tools + Ubuntu + + 0.9.0-2ubuntu1 + admin + 0.9.0-2ubuntu1 + + + amd64 + 126 + deb + time + Ubuntu + + 1.9-0.1build2 + utils + 1.9-0.1build2 + + + amd64 + 1026 + deb + tmux + Ubuntu + + 3.2a-4build1 + admin + 3.2a-4build1 + + + amd64 + 231 + deb + tnftp + Ubuntu + + 20210827-4build1 + net + 20210827-4build1 + + + all + 18 + deb + tpm-udev + Ubuntu + + 0.6 + admin + 0.6 + + + amd64 + 113 + deb + tree + Ubuntu + + 2.0.2-1 + utils + 2.0.2-1 + + + all + 3833 + deb + tzdata + Ubuntu + + 2022a-0ubuntu1 + localization + 2022a-0ubuntu1 + + + amd64 + 2515 + deb + ubuntu-advantage-tools + Ubuntu + + 27.9~22.04.1 + misc + 27.9~22.04.1 + + + all + 41 + deb + ubuntu-keyring + Ubuntu + + 2021.03.26 + misc + 2021.03.26 + + + amd64 + 53 + deb + ubuntu-minimal + Ubuntu + ubuntu-meta + 1.481 + metapackages + 1.481 + + + all + 340 + deb + ubuntu-release-upgrader-core + Ubuntu + ubuntu-release-upgrader + 1:22.04.11 + admin + 1:22.04.11 + + + amd64 + 53 + deb + ubuntu-server + Ubuntu + ubuntu-meta + 1.481 + metapackages + 1.481 + + + amd64 + 53 + deb + ubuntu-standard + Ubuntu + ubuntu-meta + 1.481 + metapackages + 1.481 + + + all + 232 + deb + ucf + Ubuntu + + 3.0043 + utils + 3.0043 + + + amd64 + 9497 + deb + udev + Ubuntu + systemd + 249.11-0ubuntu3.4 + admin + 249.11-0ubuntu3.4 + + + amd64 + 1176 + deb + udisks2 + Ubuntu + + 2.9.4-1ubuntu2 + admin + 2.9.4-1ubuntu2 + + + all + 830 + deb + ufw + Ubuntu + + 0.36.1-4build1 + admin + 0.36.1-4build1 + + + all + 436 + deb + unattended-upgrades + Ubuntu + + 2.8ubuntu1 + admin + 2.8ubuntu1 + + + all + 192 + deb + update-manager-core + Ubuntu + update-manager + 1:22.04.9 + admin + 1:22.04.9 + + + all + 1137 + deb + update-notifier-common + Ubuntu + update-notifier + 3.192.54 + gnome + 3.192.54 + + + amd64 + 139 + deb + usb-modeswitch + Ubuntu + + 2.6.1-3ubuntu2 + comm + 2.6.1-3ubuntu2 + + + all + 94 + deb + usb-modeswitch-data + Ubuntu + + 20191128-4 + comm + 20191128-4 + + + all + 715 + deb + usb.ids + Ubuntu + + 2022.04.02-1 + admin + 2022.04.02-1 + + + amd64 + 325 + deb + usbutils + Ubuntu + + 1:014-1build1 + utils + 1:014-1build1 + + + all + 200 + deb + usrmerge + Ubuntu + + 25ubuntu2 + admin + 25ubuntu2 + + + amd64 + 3399 + deb + util-linux + Ubuntu + + 2.37.2-4ubuntu3 + utils + 2.37.2-4ubuntu3 + + + amd64 + 197 + deb + uuid-runtime + Ubuntu + util-linux + 2.37.2-4ubuntu3 + utils + 2.37.2-4ubuntu3 + + + amd64 + 3918 + deb + vim + Ubuntu + + 2:8.2.3995-1ubuntu2.4 + editors + 2:8.2.3995-1ubuntu2.4 + + + all + 377 + deb + vim-common + Ubuntu + vim + 2:8.2.3995-1ubuntu2.4 + editors + 2:8.2.3995-1ubuntu2.4 + + + all + 32778 + deb + vim-runtime + Ubuntu + vim + 2:8.2.3995-1ubuntu2.4 + editors + 2:8.2.3995-1ubuntu2.4 + + + amd64 + 1719 + deb + vim-tiny + Ubuntu + vim + 2:8.2.3995-1ubuntu2.4 + editors + 2:8.2.3995-1ubuntu2.4 + + + amd64 + 984 + deb + wget + Ubuntu + + 1.21.2-2ubuntu1 + web + 1.21.2-2ubuntu1 + + + amd64 + 72 + deb + whiptail + Ubuntu + newt + 0.52.21-5ubuntu2 + utils + 0.52.21-5ubuntu2 + + + amd64 + 77 + deb + xauth + Ubuntu + + 1:1.1-1build2 + x11 + 1:1.1-1build2 + + + amd64 + 542 + deb + xdg-user-dirs + Ubuntu + + 0.17-2ubuntu4 + utils + 0.17-2ubuntu4 + + + amd64 + 2784 + deb + xfsprogs + Ubuntu + + 5.13.0-1ubuntu2 + admin + 5.13.0-1ubuntu2 + + + all + 4236 + deb + xkb-data + Ubuntu + xkeyboard-config + 2.33-1 + x11 + 2.33-1 + + + amd64 + 274 + deb + xxd + Ubuntu + vim + 2:8.2.3995-1ubuntu2 + editors + 2:8.2.3995-1ubuntu2 + + + amd64 + 372 + deb + xz-utils + Ubuntu + + 5.2.5-2ubuntu1 + utils + 5.2.5-2ubuntu1 + + + amd64 + 30 + deb + zerofree + Ubuntu + + 1.1.1-1build3 + admin + 1.1.1-1build3 + + + amd64 + 164 + deb + zlib1g + Ubuntu + zlib + 1:1.2.11.dfsg-2ubuntu9 + libs + 1:1.2.11.dfsg-2ubuntu9 + + + amd64 + 2468 + deb + zsh + Ubuntu + + 5.8.1-1 + shells + 5.8.1-1 + + + all + 15293 + deb + zsh-common + Ubuntu + zsh + 5.8.1-1 + shells + 5.8.1-1 + + + amd64 + 1655 + deb + zstd + Ubuntu + libzstd + 1.4.8+dfsg-3build1 + utils + 1.4.8+dfsg-3build1 + + + all + apt-get + none + motd-news-config + Ubuntu:22.04/jammy-updates + 12ubuntu4.3 + + + amd64 + apt-get + none + libc6 + Ubuntu:22.04/jammy-updates + 2.35-0ubuntu3.1 + + + amd64 + apt-get + none + base-files + Ubuntu:22.04/jammy-updates + 12ubuntu4.3 + + + amd64 + apt-get + none + gzip + Ubuntu:22.04/jammy-updates + 1.10-4ubuntu4.1 + + + amd64 + apt-get + none + libc-bin + Ubuntu:22.04/jammy-updates + 2.35-0ubuntu3.1 + + + amd64 + apt-get + none + libapparmor1 + Ubuntu:22.04/jammy-updates + 3.0.4-2ubuntu2.2 + + + amd64 + apt-get + none + libcryptsetup12 + Ubuntu:22.04/jammy-updates + 2:2.4.3-1ubuntu1.1 + + + amd64 + apt-get + none + libapt-pkg6.0 + Ubuntu:22.04/jammy-updates + 2.4.8 + + + amd64 + apt-get + none + apt + Ubuntu:22.04/jammy-updates + 2.4.8 + + + amd64 + apt-get + none + apt-utils + Ubuntu:22.04/jammy-updates + 2.4.8 + + + all + apt-get + none + python3-distutils + Ubuntu:22.04/jammy-updates + 3.10.6-1~22.04 + + + all + apt-get + none + python3-lib2to3 + Ubuntu:22.04/jammy-updates + 3.10.6-1~22.04 + + + amd64 + apt-get + none + python3-minimal + Ubuntu:22.04/jammy-updates + 3.10.6-1~22.04 + + + amd64 + apt-get + none + python3 + Ubuntu:22.04/jammy-updates + 3.10.6-1~22.04 + + + amd64 + apt-get + none + libpython3-stdlib + Ubuntu:22.04/jammy-updates + 3.10.6-1~22.04 + + + amd64 + apt-get + none + openssh-sftp-server + Ubuntu:22.04/jammy-updates + 1:8.9p1-3ubuntu0.1 + + + amd64 + apt-get + none + openssh-server + Ubuntu:22.04/jammy-updates + 1:8.9p1-3ubuntu0.1 + + + amd64 + apt-get + none + openssh-client + Ubuntu:22.04/jammy-updates + 1:8.9p1-3ubuntu0.1 + + + all + apt-get + none + python-apt-common + Ubuntu:22.04/jammy-updates + 2.4.0ubuntu1 + + + all + apt-get + none + distro-info-data + Ubuntu:22.04/jammy-updates + 0.52ubuntu0.2 + + + amd64 + apt-get + none + python3-apt + Ubuntu:22.04/jammy-updates + 2.4.0ubuntu1 + + + all + apt-get + none + ubuntu-release-upgrader-core + Ubuntu:22.04/jammy-updates + 1:22.04.16 + + + all + apt-get + none + python3-distupgrade + Ubuntu:22.04/jammy-updates + 1:22.04.16 + + + all + apt-get + none + update-manager-core + Ubuntu:22.04/jammy-updates + 1:22.04.10 + + + all + apt-get + none + python3-update-manager + Ubuntu:22.04/jammy-updates + 1:22.04.10 + + + amd64 + apt-get + none + ubuntu-advantage-tools + Ubuntu:22.04/jammy-updates + 27.13.6~22.04.1 + + + all + apt-get + none + update-notifier-common + Ubuntu:22.04/jammy-updates + 3.192.54.6 + + + all + apt-get + none + libdrm-common + Ubuntu:22.04/jammy-updates + 2.4.113-2~ubuntu0.22.04.1 + + + amd64 + apt-get + none + libdrm2 + Ubuntu:22.04/jammy-updates + 2.4.113-2~ubuntu0.22.04.1 + + + all + apt-get + none + libglib2.0-data + Ubuntu:22.04/jammy-updates + 2.72.4-0ubuntu1 + + + amd64 + apt-get + none + libglib2.0-bin + Ubuntu:22.04/jammy-updates + 2.72.4-0ubuntu1 + + + amd64 + apt-get + none + libglib2.0-0 + Ubuntu:22.04/jammy-updates + 2.72.4-0ubuntu1 + + + amd64 + apt-get + none + open-vm-tools + Ubuntu:22.04/jammy-updates + 2:12.1.0-1~ubuntu0.22.04.1 + + + amd64 + apt-get + none + isc-dhcp-client + Ubuntu:22.04/jammy-updates + 4.4.1-2.3ubuntu2.4 + + + amd64 + apt-get + none + isc-dhcp-common + Ubuntu:22.04/jammy-updates + 4.4.1-2.3ubuntu2.4 + + + amd64 + apt-get + none + kbd + Ubuntu:22.04/jammy-updates + 2.3.0-3ubuntu4.22.04 + + + all + apt-get + none + initramfs-tools + Ubuntu:22.04/jammy-updates + 0.140ubuntu13.1 + + + all + apt-get + none + initramfs-tools-core + Ubuntu:22.04/jammy-updates + 0.140ubuntu13.1 + + + amd64 + apt-get + none + initramfs-tools-bin + Ubuntu:22.04/jammy-updates + 0.140ubuntu13.1 + + + amd64 + apt-get + none + netplan.io + Ubuntu:22.04/jammy-updates + 0.105-0ubuntu2~22.04.3 + + + amd64 + apt-get + none + libnetplan0 + Ubuntu:22.04/jammy-updates + 0.105-0ubuntu2~22.04.3 + + + all + apt-get + none + locales + Ubuntu:22.04/jammy-updates + 2.35-0ubuntu3.1 + + + amd64 + apt-get + none + python3-gi + Ubuntu:22.04/jammy-updates + 3.42.1-0ubuntu1 + + + amd64 + apt-get + none + apparmor + Ubuntu:22.04/jammy-updates + 3.0.4-2ubuntu2.2 + + + amd64 + apt-get + none + bind9-dnsutils + Ubuntu:22.04/jammy-updates + 1:9.18.12-0ubuntu0.22.04.1 + + + amd64 + apt-get + none + bind9-host + Ubuntu:22.04/jammy-updates + 1:9.18.12-0ubuntu0.22.04.1 + + + amd64 + apt-get + none + bind9-libs + Ubuntu:22.04/jammy-updates + 1:9.18.12-0ubuntu0.22.04.1 + + + amd64 + apt-get + none + dmidecode + Ubuntu:22.04/jammy-updates + 3.3-3ubuntu0.1 + + + amd64 + apt-get + none + nftables + Ubuntu:22.04/jammy-updates + 1.0.2-1ubuntu3 + + + amd64 + apt-get + none + libnftables1 + Ubuntu:22.04/jammy-updates + 1.0.2-1ubuntu3 + + + amd64 + apt-get + none + python3-gdbm + Ubuntu:22.04/jammy-updates + 3.10.6-1~22.04 + + + amd64 + apt-get + none + tcpdump + Ubuntu:22.04/jammy-updates + 4.99.1-3ubuntu0.1 + + + amd64 + apt-get + none + grub2-common + Ubuntu:22.04/jammy-updates + 2.06-2ubuntu7.1 + + + amd64 + apt-get + none + grub-pc + Ubuntu:22.04/jammy-updates + 2.06-2ubuntu7.1 + + + amd64 + apt-get + none + grub-pc-bin + Ubuntu:22.04/jammy-updates + 2.06-2ubuntu7.1 + + + amd64 + apt-get + none + grub-common + Ubuntu:22.04/jammy-updates + 2.06-2ubuntu7.1 + + + all + apt-get + none + python3-problem-report + Ubuntu:22.04/jammy-updates + 2.20.11-0ubuntu82.3 + + + all + apt-get + none + python3-apport + Ubuntu:22.04/jammy-updates + 2.20.11-0ubuntu82.3 + + + all + apt-get + none + apport + Ubuntu:22.04/jammy-updates + 2.20.11-0ubuntu82.3 + + + all + apt-get + none + cryptsetup-initramfs + Ubuntu:22.04/jammy-updates + 2:2.4.3-1ubuntu1.1 + + + amd64 + apt-get + none + cryptsetup-bin + Ubuntu:22.04/jammy-updates + 2:2.4.3-1ubuntu1.1 + + + amd64 + apt-get + none + cryptsetup + Ubuntu:22.04/jammy-updates + 2:2.4.3-1ubuntu1.1 + + + amd64 + apt-get + none + fwupd + Ubuntu:22.04/jammy-updates + 1.7.9-1~22.04.1 + + + amd64 + apt-get + none + libfwupdplugin5 + Ubuntu:22.04/jammy-updates + 1.7.9-1~22.04.1 + + + amd64 + apt-get + none + libfwupd2 + Ubuntu:22.04/jammy-updates + 1.7.9-1~22.04.1 + + + amd64 + apt-get + none + libmbim-proxy + Ubuntu:22.04/jammy-updates + 1.28.0-1~ubuntu20.04.1 + + + amd64 + apt-get + none + libmbim-glib4 + Ubuntu:22.04/jammy-updates + 1.28.0-1~ubuntu20.04.1 + + + amd64 + apt-get + none + libmm-glib0 + Ubuntu:22.04/jammy-updates + 1.20.0-1~ubuntu22.04.1 + + + amd64 + apt-get + none + libqmi-proxy + Ubuntu:22.04/jammy-updates + 1.32.0-1ubuntu0.22.04.1 + + + amd64 + apt-get + none + libqmi-glib5 + Ubuntu:22.04/jammy-updates + 1.32.0-1ubuntu0.22.04.1 + + + amd64 + apt-get + none + fwupd-signed + Ubuntu:22.04/jammy-updates + 1.51~22.04.1+1.2-3ubuntu0.2 + + + amd64 + apt-get + none + libgstreamer1.0-0 + Ubuntu:22.04/jammy-updates + 1.20.3-0ubuntu1 + + + all + apt-get + none + libldap-common + Ubuntu:22.04/jammy-updates + 2.5.14+dfsg-0ubuntu0.22.04.1 + + + amd64 + apt-get + none + libsasl2-modules-db + Ubuntu:22.04/jammy-updates + 2.1.27+dfsg2-3ubuntu1.2 + + + amd64 + apt-get + none + libsasl2-2 + Ubuntu:22.04/jammy-updates + 2.1.27+dfsg2-3ubuntu1.2 + + + amd64 + apt-get + none + libsasl2-modules + Ubuntu:22.04/jammy-updates + 2.1.27+dfsg2-3ubuntu1.2 + + + amd64 + apt-get + none + modemmanager + Ubuntu:22.04/jammy-updates + 1.20.0-1~ubuntu22.04.1 + + + all + apt-get + none + software-properties-common + Ubuntu:22.04/jammy-updates + 0.99.22.6 + + + all + apt-get + none + python3-software-properties + Ubuntu:22.04/jammy-updates + 0.99.22.6 + + + all + apt-get + none + python3-tz + Ubuntu:22.04/jammy-updates + 2022.1-1ubuntu0.22.04.0 + + + amd64 + apt-get + none + snapd + Ubuntu:22.04/jammy-updates + 2.58+22.04 + + + all + apt-get + none + cloud-init + Ubuntu:22.04/jammy-updates + 23.1.1-0ubuntu0~22.04.1 + + + rev 01 + Intel Corporation 82801AA AC'97 Audio Controller + Multimedia audio controller + + + SCSI + 42949 + 10 + VBOX + HARDDISK + sda + a23d4170 + disk + + + SCSI + 10 + 10 + VBOX + HARDDISK + sdb + disk + + + vagrant + + FusionInventory-Agent_v2.4.3 + + Platform : linux localhost 4.19.0 1 smp debian 4.19.0 x86_64 gnulinux + Build date: Wed Feb 1 04:18:40 2023 GMT + FusionInventory + /usr/bin/perl + v5.34.0 + /opt/rudder/bin/fusioninventory-agent + 2.4.3 + + + node2-2023-04-03-11-35-07 + INVENTORY + diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/inventories/7.2/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs.sign b/webapp/sources/rudder/rudder-core/src/test/resources/inventories/7.2/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs.sign new file mode 100644 index 00000000000..7ddf88b2c1a --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/inventories/7.2/node2-86d9ec77-9db5-4ba3-bdca-f0baf3a5b477.ocs.sign @@ -0,0 +1,6 @@ +header=rudder-signature-v1 +algorithm=sha512 +digest=2de834195f48cfe534ae419bdc2aa32d5f27f805f3149987f4f823574f1169d04712f65329ab336c5a13ddd86cd1d2d2250ec0c450ce7030c8d977f3473e823d185e43960eeb03a5db38ff991b98da53e6a103f3395177d699dd8517046eee27263a701049decfb0df4030c1112a7af9bbcc394420bf937c3a1adae4ee45ea3755af219538e1b5a89e7f25a43ad1e0f57ecc9865d6afaab09436265cd3c7d52e0800925d60b35d1b1d8efaf0c75f3b98d35a18647e8c52711c58f5633c1686242fc2a3563075443813341af05c2d0ce7f1e1281658d475ec1539352b77457f806fc0e9c8aa37a6ddd41028c41e75cb3d360955ae1a1468cc1857311e233d72f5f0f03da157bb3ad1df7818c379dce0b4178730a61c817f65323abc921fc605e69565e3bbdb7902804d890753734f38cec0f74be442dc9fa8c8091f4795889aaa2413669ee93ee7aa417343cfe04e531fd083f831f3ecd48d3bfe6691ff6f529576970e9664744d92db33c29d6e72f81d1f1f37c95a6c198bb6f61e5d9aa007daf1cbf3bdb7c3cf9cddb3630c9acf16a6466b9b833d2c1decab5b85925fd6ee52af7f27664f770c1ee4af86cfde30ef8f1356e696999b46ad21c724b5af3fca42613b954280a4b37f5e4b450f4758077642abee4d47c414f6ad794234ce71b4f0b245fdd9eadc999bb87a80d7e37509a3bc71c9c33cf20a3dabc727a04f31df5c +hostname=node2 +keydate=2023-04-03 09:24:57.167078314 +0000 +keyid=B18F68CD diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/ldap-data/inventory-sample-data.ldif b/webapp/sources/rudder/rudder-core/src/test/resources/ldap-data/inventory-sample-data.ldif index 14c8d25ffee..abc76f83a30 100644 --- a/webapp/sources/rudder/rudder-core/src/test/resources/ldap-data/inventory-sample-data.ldif +++ b/webapp/sources/rudder/rudder-core/src/test/resources/ldap-data/inventory-sample-data.ldif @@ -34,7 +34,7 @@ jsonNodeGroupQuery: {"select":"node","composition":"Or","where":[{"objectType":" nodeId: node1 nodeId: node2 -dn: nodeGroupId=test-group-node22,groupCategoryId=GroupRoot,ou=Rudder,cn=rudder-configuration +dn: nodeGroupId=test-group-node23,groupCategoryId=GroupRoot,ou=Rudder,cn=rudder-configuration objectClass: nodeGroup objectClass: top cn: Only contains node2 and node3 @@ -233,7 +233,7 @@ localAdministratorAccountName: root agentName: {"agentType":"Community","version":"4.1.8"} policyServerId:root nodeHostname: root.normation.com -inventoryDate: 20130515123456.948Z +inventoryDate: 20120515123456.948Z publicKey: "test" software: softwareId=soft0,ou=Software,ou=Inventories,cn=rudder-configuration @@ -289,6 +289,7 @@ cn: has attributes swap: 2878000000 ram: 100000000 nodeHostname: hasAttributes.normation.com +inventoryDate: 20140515123456.948Z description: #54-Ubuntu SMP Thu Dec 10 17:23:29 UTC 2009 localAccountName: francois.armand localAccountName: nicolas.charles @@ -327,6 +328,7 @@ localAdministratorAccountName: root agentName: {"agentType":"cfengine-nova","version":"4.2.0-jessie0","securityToken":{"value":"-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA2AlhQKo0lMwsInTJzOIimehRQDgeO4SuAAfnpzxKRLsBLcGViW4n\nZ4VrfW+xNOWXKJpEDRaVX6C/JQoVsCrvsLcnVPz/qxLZTGQzsirDPJE5WX+kN+nz\nYoo2jM5VNoZEioh1I9854dvyI6qv7BbNWHxZ9k5VcTSs33YUowBsiB+54h4w5MFN\nibrq5UcGMxhQAmWGzlACLM7E7Bu70O4NXEAmBFnXh6Gni7KL5MAPKQ0vy3O0is8+\n8Z6uA3Mo1yOtSiH3AtgpsSuRdNQqyinqMXkpBzE4mrIiftEo/FF8j/xFQTtoI/mw\nMMedHfNOeDzTGMtVjiXwtSZq6LmjIRtIDQIDAQAB\n-----END RSA PUBLIC KEY-----","type":"publicKey"}} policyServerId:root-policy-server nodeHostname: node2.normation.com +inventoryDate: 20150515123456.948Z ipHostNumber: 192.168.56.102 ipHostNumber: 127.0.0.1 publicKey: "test" @@ -347,6 +349,7 @@ localAdministratorAccountName: root agentName: {"agentType":"cfengine-community","version":"4.2.0-jessie0","securityToken":{"value":"-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA2AlhQKo0lMwsInTJzOIimehRQDgeO4SuAAfnpzxKRLsBLcGViW4n\nZ4VrfW+xNOWXKJpEDRaVX6C/JQoVsCrvsLcnVPz/qxLZTGQzsirDPJE5WX+kN+nz\nYoo2jM5VNoZEioh1I9854dvyI6qv7BbNWHxZ9k5VcTSs33YUowBsiB+54h4w5MFN\nibrq5UcGMxhQAmWGzlACLM7E7Bu70O4NXEAmBFnXh6Gni7KL5MAPKQ0vy3O0is8+\n8Z6uA3Mo1yOtSiH3AtgpsSuRdNQqyinqMXkpBzE4mrIiftEo/FF8j/xFQTtoI/mw\nMMedHfNOeDzTGMtVjiXwtSZq6LmjIRtIDQIDAQAB\n-----END RSA PUBLIC KEY-----","type":"publicKey"}} policyServerId:root-policy-server nodeHostname: node3.normation.com +inventoryDate: 20160515123456.948Z ipHostNumber: 192.168.56.103 ipHostNumber: 127.0.0.1 publicKey: "test" @@ -368,6 +371,7 @@ localAdministratorAccountName: root agentName: {"agentType":"cfengine-community","version":"4.2.0-jessie0","securityToken":{"value":"-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA2AlhQKo0lMwsInTJzOIimehRQDgeO4SuAAfnpzxKRLsBLcGViW4n\nZ4VrfW+xNOWXKJpEDRaVX6C/JQoVsCrvsLcnVPz/qxLZTGQzsirDPJE5WX+kN+nz\nYoo2jM5VNoZEioh1I9854dvyI6qv7BbNWHxZ9k5VcTSs33YUowBsiB+54h4w5MFN\nibrq5UcGMxhQAmWGzlACLM7E7Bu70O4NXEAmBFnXh6Gni7KL5MAPKQ0vy3O0is8+\n8Z6uA3Mo1yOtSiH3AtgpsSuRdNQqyinqMXkpBzE4mrIiftEo/FF8j/xFQTtoI/mw\nMMedHfNOeDzTGMtVjiXwtSZq6LmjIRtIDQIDAQAB\n-----END RSA PUBLIC KEY-----","type":"publicKey","test":"dsc"}} policyServerId:root-policy-server nodeHostname: node4.normation.com +inventoryDate: 20170515123456.948Z ipHostNumber: 127.0.0.1 environmentVariable: {"name":"SHELL","value":"/bin/sh"} @@ -386,6 +390,7 @@ localAdministratorAccountName: root agentName: {"agentType":"dsc","version":"4.2-1.0","securityToken":{"value":"-----BEGIN CERTIFICATE-----\nMIIFTTCCAzWgAwIBAgIJAL4vbx1mfhs5MA0GCSqGSIb3DQEBCwUAMEcxDzANBgNV\nBAMMBkFHRU5UMjE0MDIGCgmSJomT8ixkAQEMJDM1NWVhY2QxLWU4YjAtNDg4OC1i\nZTFkLTUxMDQ3MTdkZTZjZjAeFw0xNzEwMDQxNjUyMTJaFw0yNzEwMDIxNjUyMTJa\nMEcxDzANBgNVBAMMBkFHRU5UMjE0MDIGCgmSJomT8ixkAQEMJDM1NWVhY2QxLWU4\nYjAtNDg4OC1iZTFkLTUxMDQ3MTdkZTZjZjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBALv6AoYF59+F/jGPQq074gf8HZwowysuT4uxFbFpkYBc6FvLuRrZ\nnz0lJZKZOSjWbhndKLFkKgsHBi35ESfblBf4lqBguyCPWKRyGApSJP0cElSNKJsi\nzd0qXorTKV0aEQod2TUjz35Vbl2rYPbt+vIGX0zK0cBhTiSJ8ONLMoCUxeqVXmqL\nSisD6LfR9NH+0+LZ4g0ueQzC+DJncb0wbH66vbg6soykQ2c1XljRgdJHrEgPy43x\nL6WvL6Sb4hlPs7yBHwWTGXsAKjs8kMBON9ijPnS30gQm5flqd8lFd/s1/7yYrXBl\n+e8cOVTorgL1biQb250MRaPp4PL3NvbpLtMaSK8aAdxQSFhMxvCHq+41VbjAkIPG\n9yekMqsbs22BZn4XoTbn5F71FGh39j6cI/BJYOI6sDmnVfWuMTwdGnzh43fNDpch\n7FeuDUTomFkJXFNMZuvuEhLtf39OIknzhszxXrsSG8VSHAS4GdRXSFu9bbtuLm2Q\ngiiVLkE69NUgM+XHM9XKiNY2oDNtVpVrRte4hdH7NgG2LgBs+bYNPI44po4AfGnc\n2ICzC1UXEnNpH0WGVZ4OtBKZlmHLC7RhCXOkTBOX29yBag4jIfDaIYNthDmSX3By\nVoh1/hLrXcTnIzMn31Ku3CKVbYeMBEzmZGLtDSQvoedAgv0VCgf8fRhZAgMBAAGj\nPDA6MAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgK0MB0GA1UdDgQWBBSaV2KqEPqU\n2xWF2ajE/h0a5fB7LzANBgkqhkiG9w0BAQsFAAOCAgEAV7/A+nlL/bWOd906t3QR\nt57hQfgBkNralQyNvsspFaDJM19G+Xi2yhW/Vq9tZNJ0FzbMwp2OwcADmDtnFG/Y\nBa83jU8Cxa/wvQO86KCNK4NlzGjcWNtwGM4135r7M8t3dvx+uXu+AYa96QrVLTUX\n4XsRJWTdf4Qe6zgKuaDfsEr0eDAo6UNe+ZQyPNJoqPERKTTcv8BDimAGCdO0ZAUy\nMd6Cu6WTpMrWvhr/YzvwQm9tJ7GvQoVd3HAyO/+6dZOqFoJmoI6NXB2thSEMJMQ7\nAiniqRO04opf56Z1K0RO8/ECsr81OL4R0j7Bx+SNVGQP+FDDUdiJPZp1SeQgrgSb\nihCQr8zWZtmXZE0UKIAHXsfCFCNr/t4yPgOsAlD1Cs0QRglXr/M15jmpmWlD7IiB\nbx0aOdwH99a2HK7d41v1yoZn4bKdgtbEaPHXViAPnFdcJPQ1+1hm8G2vbhYJgv1d\no+ZgEyZNfamAPCKKyy79JVPeas4alSnBw+RRRKxH4ZAr7E+Urml7JFmoiab0jjGY\nOjgEzRQUOiTdSNvpzJUz71KrQPgR0gIlsjnyu3QOoFXdVtg+MzLyOb4bCmo3mFL2\nsAhdducYbLhNS/IOunspkZJzfgRodgzOj1ZRlTJztP+sdd5M2rJy6awpWL4AwUMP\nyDa4p7g4y2ju9vIh+t4C8qk=\n-----END CERTIFICATE-----","type":"certificate"}} policyServerId:root-policy-server nodeHostname: node5.normation.com +inventoryDate: 20180515123456.948Z publicKey: "test" dn: nodeId=node6,ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration @@ -403,6 +408,7 @@ localAdministratorAccountName: root agentName: Community policyServerId:root-policy-server nodeHostname: node6.normation.com +inventoryDate: 20190515123456.948Z publicKey: "test" dn: nodeId=node7,ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration @@ -421,6 +427,7 @@ localAdministratorAccountName: root agentName: {"agentType":"cfengine-community","version":"4.2.0-jessie0","securityToken":{"value":"-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA2AlhQKo0lMwsInTJzOIimehRQDgeO4SuAAfnpzxKRLsBLcGViW4n\nZ4VrfW+xNOWXKJpEDRaVX6C/JQoVsCrvsLcnVPz/qxLZTGQzsirDPJE5WX+kN+nz\nYoo2jM5VNoZEioh1I9854dvyI6qv7BbNWHxZ9k5VcTSs33YUowBsiB+54h4w5MFN\nibrq5UcGMxhQAmWGzlACLM7E7Bu70O4NXEAmBFnXh6Gni7KL5MAPKQ0vy3O0is8+\n8Z6uA3Mo1yOtSiH3AtgpsSuRdNQqyinqMXkpBzE4mrIiftEo/FF8j/xFQTtoI/mw\nMMedHfNOeDzTGMtVjiXwtSZq6LmjIRtIDQIDAdsc\n-----END RSA PUBLIC KEY-----","type":"publicKey"}} policyServerId:root-policy-server nodeHostname: node7.normation.com +inventoryDate: 20200515123456.948Z publicKey: "test" ################################################################################################### diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/4d3a43bc-8508-46a2-92d7-cfe7320309a5.json_ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/4d3a43bc-8508-46a2-92d7-cfe7320309a5.json_ new file mode 100644 index 00000000000..e6f41d00e51 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/4d3a43bc-8508-46a2-92d7-cfe7320309a5.json_ @@ -0,0 +1,5876 @@ +{ + "id" : "4d3a43bc-8508-46a2-92d7-cfe7320309a5", + "hostname" : "node1-overridden.rudder.local.override", + "os" : { + "type" : "Linux", + "name" : "Ubuntu", + "version" : "22.04", + "fullName" : "Ubuntu 22.04 LTS", + "kernelVersion" : "5.15.0-41-generic" + }, + "rudderSettings" : { + "keyStatus" : "certified", + "reportingConfiguration" : { + + }, + "kind" : "node", + "status" : "pending", + "state" : "enabled", + "policyMode" : "default", + "policyServerId" : "root" + }, + "rudderAgent" : { + "type" : "cfengine-community", + "user" : "root", + "version" : "7.2.0~rc1-ubuntu22.04", + "securityToken" : { + "kind" : "certificate", + "token" : "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIULhYaqmQZGDMab0FnySgkA3tCWpgwDQYJKoZIhvcNAQEL\nBQAwNjE0MDIGCgmSJomT8ixkAQEMJDRkM2E0M2JjLTg1MDgtNDZhMi05MmQ3LWNm\nZTczMjAzMDlhNTAeFw0yMjA5MDcwODUyNDdaFw0zMjA5MDQwODUyNDdaMDYxNDAy\nBgoJkiaJk/IsZAEBDCQ0ZDNhNDNiYy04NTA4LTQ2YTItOTJkNy1jZmU3MzIwMzA5\nYTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD7/K+BfMAT4pwJf03\nHH9nTBXdDyibg4wbSy0zjiUrQ2Ri5tiwCsfUQtpkeHl3a643FBmHKE2oDvKOvFFV\nrBJWqtJBydVMwhBlDuDXR0WV9fPyIizIcAX/LBt1yPRSrtBkWQZ2IAN/lCADmtEe\ngkVyLiVcp/msMAdwm0QkDvB1o+g3USq0DFbwkQyopvTsYfGgcW/Rn9ifCyxq2rKe\nF+zbUIF7AK5dPjXyDFEEo80WUAZEkn3hQrEKYOCXkEiRLI6+KCArnv9jRop92dCg\nTjGIoMLtAQYb+txytf8/4oQDpCdEENvRJqQ2SVB1K1dtvLPXe7jQ2vK9/chtmFut\ndirZCOBRtbRV0eAZ7te4K0RC5L0R2EI7uowmhE5a8xwmWGH1U7BMVKR9B76iPdR3\nK9fXiPRUEBvs2N/06OBviY18VSR5k4sp9sEifAq3kgP/kvVKTA1dNavoB1gDH8KS\n+0Nnp9nA+AxMLyU5PFFvwSfgYZjp+sbDlFPrOgryVK0BLfGNdm27xftKW8yyzNPM\nbRirrnIngvh8wPHjDxC02/SJ7Pikx0ffOV09ee+Ik4dTbqj+bHy/z8rp0aAtLbZV\nNIGqvzCaByWWJhmYZ3FFwHo3LXUeonljQOYVl8kSEQkcE8b5X657fG3RTrLUE6DK\nobsJcr7JUwijGcB+tADQ+gngtQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYD\nVR0OBBYEFChVcwIhgIr5vgRy8T8ol3MktitiMHEGA1UdIwRqMGiAFChVcwIhgIr5\nvgRy8T8ol3MktitioTqkODA2MTQwMgYKCZImiZPyLGQBAQwkNGQzYTQzYmMtODUw\nOC00NmEyLTkyZDctY2ZlNzMyMDMwOWE1ghQuFhqqZBkYMxpvQWfJKCQDe0JamDAL\nBgNVHQ8EBAMCArwwDQYJKoZIhvcNAQELBQADggIBAEzLJFdRib1gHQ3ZFU6YCeEX\nUYd8DBRAnPUdjSi/6+Qz9KhQdo5F+vngAdqWFggL2lv1yaahLKTYSdxibBpzX9ee\nH8mP+Gxt0su0xoAtuwkzvfg3G6BTtAXorVgsEfya3re3eShOuvXprzqi7Xsnbv9a\nUzJX4FCJJAXA+Qd/frzpw33cSa8M4SHn7xTo3c9ZgOs1zJ4BepFz/2MpKYY9RSfU\nDpeksnS+ij1BUcrScitwCVvmh0nFXIMWcnUREqxkRAPY1ln1ExAaSmYA0SKsUhoJ\nGx08WfzprwunlzZCA91gmNW+1WjMFr9Nonp6SlMXH0ZrBm+K+zNm6+aAnZdN2ttG\nPmmqotUbbCG737HY8VxE27rgZ8SYidprqvuPtz4WaQPg+4JPeCzOqLWfcX3nfmJM\nkO7nfL0DCqDaZgW+O3FCSFfXnb8TQnMgJZlnakI/w+mzx26YkxtZ2xgWi7yLyBk6\nJDeC5KwgyP+nJpgSOIwGNf4ZaOEYtg3DeFjXmFi5N4Vtq98819cTp3QL+RZG4cVs\nDwFR0T3KjB6QWcvSB2QpQUvdOITtUsACP/zk73y7RwZVQT0DHVWVw6eHhGH6LpKI\nY8skyhHnHUjG1A9eOvk4ZQGPedL9cG0af7TzmaUwFg5fGN594lv79o7iGT1srNBp\n2A/Eff5z/oWypwrLbjiI\n-----END CERTIFICATE-----" + }, + "capabilities" : [ + "jq", + "yaml", + "cfengine", + "curl", + "acl", + "xml", + "http_reporting" + ] + }, + "properties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local", + "provider" : "inventory" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override", + "provider" : "inventory" + } + ], + "lastInventoryDate" : "2022-09-07T17:56:55Z", + "inventoryReceivedDate" : "2022-09-07T17:56:55Z", + "ipAddresses" : [ + "192.168.32.4", + "0:0:0:0:0:0:0:1", + "127.0.0.1", + "fe80:0:0:0:a00:27ff:fe94:72e8", + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "timezone" : { + "name" : "UTC", + "offset" : "+0000" + }, + "machine" : { + "id" : "a9445c97-2640-5736-961f-514e9a34940a", + "provider" : "vbox", + "systemSerial" : "28eba2ed-b589-ec45-bae4-d33155c8288d", + "manufacturer" : "innotek GmbH" + }, + "ram" : 489684992, + "archDescription" : "x86_64", + "accounts" : [ + "_apt", + "backup", + "bin", + "daemon", + "games", + "gnats", + "irc", + "landscape", + "list", + "lp", + "lxd", + "mail", + "man", + "messagebus", + "news", + "nobody", + "pollinate", + "proxy", + "root", + "sshd", + "sync", + "sys", + "syslog", + "systemd-network", + "systemd-resolve", + "systemd-timesync", + "tcpdump", + "tss", + "ubuntu", + "uucp", + "uuidd", + "vagrant", + "www-data" + ], + "bios" : [ + { + "name" : "VirtualBox", + "version" : "VirtualBox", + "editor" : "innotek GmbH", + "releaseDate" : "2006-11-30T23:00:00Z", + "quantity" : 1 + } + ], + "controllers" : [ + { + "name" : "440FX - 82441FX PMC [Natoma]", + "manufacturer" : "Intel Corporation", + "cType" : "Host bridge", + "quantity" : 1 + }, + { + "name" : "53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI", + "manufacturer" : "LSI Logic / Symbios Logic", + "cType" : "SCSI storage controller", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 ACPI", + "manufacturer" : "Intel Corporation", + "cType" : "Bridge", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 IDE", + "manufacturer" : "Intel Corporation", + "cType" : "IDE interface", + "quantity" : 1 + }, + { + "name" : "82371SB PIIX3 ISA [Natoma/Triton II]", + "manufacturer" : "Intel Corporation", + "cType" : "ISA bridge", + "quantity" : 1 + }, + { + "name" : "82540EM Gigabit Ethernet Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Ethernet controller", + "quantity" : 2 + }, + { + "name" : "82801AA AC'97 Audio Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Multimedia audio controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Graphics Adapter", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "VGA compatible controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Guest Service", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "System peripheral", + "quantity" : 1 + } + ], + "customProperties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override" + } + ], + "environmentVariables" : [ + ["BASEDIR", "/opt/rudder/share/commands"], + ["DEBIAN_FRONTEND", "noninteractive"], + ["HOME", "/root"], + ["LESSCLOSE", "/usr/bin/lesspipe %s %s"], + ["LESSOPEN", "| /usr/bin/lesspipe %s"], + ["LOGNAME", "root"], + ["LS_COLORS", "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"], + ["MAIL", "/var/mail/root"], + ["PATH", "/opt/rudder/bin:/usr/gnu/bin:/opt/rudder/bin:/usr/gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/usr/sbin:/sbin:/usr/sbin"], + ["PWD", "/var/rudder"], + ["RUDDER_BIN", "/usr/bin/rudder"], + ["SHELL", "/bin/bash"], + ["SHLVL", "1"], + ["SUDO_COMMAND", "/usr/bin/su"], + ["SUDO_GID", "1000"], + ["SUDO_UID", "1000"], + ["SUDO_USER", "vagrant"], + ["TERM", "xterm"], + ["USER", "root"], + ["_", "/usr/bin/rudder"] + ], + "fileSystems" : [ + { + "mountPoint" : "/", + "name" : "ext4", + "freeSpace" : 39669727232, + "totalSpace" : 41555066880 + }, + { + "mountPoint" : "/vagrant", + "name" : "vboxsf", + "freeSpace" : 91722088448, + "totalSpace" : 397236240384 + } + ], + "inputs" : [], + "localGroups" : [], + "localUsers" : [], + "logicalVolumes" : [], + "memories" : [], + "networks" : [ + { + "name" : "enp0s3", + "ifAddresses" : [ + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "ifGateway" : [ + "10.0.2.2" + ], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "10.0.2.0" + ], + "macAddress" : "02:e5:1b:70:f4:63", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "enp0s8", + "ifAddresses" : [ + "fe80:0:0:0:a00:27ff:fe94:72e8", + "192.168.32.4" + ], + "ifGateway" : [], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "192.168.32.0" + ], + "macAddress" : "08:00:27:94:72:e8", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "lo", + "ifAddresses" : [ + "0:0:0:0:0:0:0:1", + "127.0.0.1" + ], + "ifGateway" : [], + "ifMask" : [ + "fff0:0:0:0:0:0:0:0", + "255.0.0.0" + ], + "ifSubnet" : [ + "0:0:0:0:0:0:0:0", + "127.0.0.0" + ], + "macAddress" : "00:00:00:00:00:00", + "status" : "Up", + "ifType" : "loopback" + } + ], + "physicalVolumes" : [], + "ports" : [], + "processes" : [ + { + "pid" : 24832, + "commandName" : "(sd-pam)", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 170396.0 + }, + { + "pid" : 24915, + "commandName" : "-bash", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "vagrant", + "virtualMemory" : 9148.0 + }, + { + "pid" : 50026, + "commandName" : "/bin/sh /opt/rudder/bin/rudder-perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/node1-4d3a43bc-8508-46a2-92d7-cfe7320309a5.ocs", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 50022, + "commandName" : "/bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/node1-4d3a43bc-8508-46a2-92d7-cfe7320309a5.ocs", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49923, + "commandName" : "/bin/sh /opt/rudder/share/commands/../lib/timestamp", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49785, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-inventory", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49925, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49825, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.4, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 24830, + "commandName" : "/lib/systemd/systemd --user", + "cpuUsage" : 0.0, + "memory" : 1.5, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17080.0 + }, + { + "pid" : 339, + "commandName" : "/lib/systemd/systemd-journald", + "cpuUsage" : 0.0, + "memory" : 1.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 48364.0 + }, + { + "pid" : 683, + "commandName" : "/lib/systemd/systemd-logind", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23720.0 + }, + { + "pid" : 1628, + "commandName" : "/lib/systemd/systemd-networkd", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 16248.0 + }, + { + "pid" : 558, + "commandName" : "/lib/systemd/systemd-resolved", + "cpuUsage" : 0.0, + "memory" : 1.7, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 25392.0 + }, + { + "pid" : 411, + "commandName" : "/lib/systemd/systemd-timesyncd", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 89352.0 + }, + { + "pid" : 385, + "commandName" : "/lib/systemd/systemd-udevd", + "cpuUsage" : 0.0, + "memory" : 1.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23304.0 + }, + { + "pid" : 49921, + "commandName" : "/opt/rudder/bin/cf-agent -I -D info -Cnever -K -b doInventory -D force_inventory", + "cpuUsage" : 55.0, + "memory" : 5.6, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 74680.0 + }, + { + "pid" : 4493, + "commandName" : "/opt/rudder/bin/cf-execd --no-fork", + "cpuUsage" : 0.0, + "memory" : 2.8, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33460.0 + }, + { + "pid" : 4495, + "commandName" : "/opt/rudder/bin/cf-serverd --graceful-detach=600 --no-fork --inform", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33480.0 + }, + { + "pid" : 746, + "commandName" : "/sbin/agetty -o -p -- \\u --keep-baud 115200,57600,38400,9600 ttyS0 vt220", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "ttyS0", + "user" : "root", + "virtualMemory" : 6216.0 + }, + { + "pid" : 757, + "commandName" : "/sbin/agetty -o -p -- \\u --noclear tty1 linux", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "tty1", + "user" : "root", + "virtualMemory" : 6172.0 + }, + { + "pid" : 1, + "commandName" : "/sbin/init", + "cpuUsage" : 0.0, + "memory" : 2.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 167620.0 + }, + { + "pid" : 381, + "commandName" : "/sbin/multipathd -d -s", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 354888.0 + }, + { + "pid" : 674, + "commandName" : "/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers", + "cpuUsage" : 0.0, + "memory" : 2.3, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 32992.0 + }, + { + "pid" : 773, + "commandName" : "/usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 110088.0 + }, + { + "pid" : 681, + "commandName" : "/usr/lib/snapd/snapd", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 743408.0 + }, + { + "pid" : 2287, + "commandName" : "/usr/libexec/packagekitd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "root", + "virtualMemory" : 295940.0 + }, + { + "pid" : 675, + "commandName" : "/usr/libexec/polkitd --no-debug", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 234484.0 + }, + { + "pid" : 689, + "commandName" : "/usr/libexec/udisks2/udisksd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 392700.0 + }, + { + "pid" : 732, + "commandName" : "/usr/sbin/ModemManager", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 316932.0 + }, + { + "pid" : 665, + "commandName" : "/usr/sbin/cron -f -P", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7284.0 + }, + { + "pid" : 680, + "commandName" : "/usr/sbin/rsyslogd -n -iNONE", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "syslog", + "virtualMemory" : 222400.0 + }, + { + "pid" : 666, + "commandName" : "@dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "message+", + "virtualMemory" : 8884.0 + }, + { + "pid" : 87, + "commandName" : "[acpi_thermal_pm]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5965, + "commandName" : "[arc_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5964, + "commandName" : "[arc_prune]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5966, + "commandName" : "[arc_reap]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 75, + "commandName" : "[ata_sff]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 73, + "commandName" : "[blkcg_punt_bio]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 115, + "commandName" : "[charger_manager]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 17, + "commandName" : "[cpuhp/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 153, + "commandName" : "[cryptd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5967, + "commandName" : "[dbu_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5968, + "commandName" : "[dbuf_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 78, + "commandName" : "[devfreq_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5911, + "commandName" : "[dio/sda1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 84, + "commandName" : "[ecryptfs-kthrea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 77, + "commandName" : "[edac-poller]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 267, + "commandName" : "[ext4-rsv-conver]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 16, + "commandName" : "[idle_inject/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 19, + "commandName" : "[inet_frag_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 362, + "commandName" : "[ipmi-msghandler]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 96, + "commandName" : "[ipv6_addrconf]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 266, + "commandName" : "[jbd2/sda1-8]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 372, + "commandName" : "[kaluad]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 20, + "commandName" : "[kauditd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 72, + "commandName" : "[kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 24, + "commandName" : "[kcompactd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 18, + "commandName" : "[kdevtmpfs]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 21, + "commandName" : "[khungtaskd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 71, + "commandName" : "[kintegrityd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 379, + "commandName" : "[kmpath_handlerd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 374, + "commandName" : "[kmpath_rdacd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 376, + "commandName" : "[kmpathd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 25, + "commandName" : "[ksmd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 13, + "commandName" : "[ksoftirqd/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 106, + "commandName" : "[kstrp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 83, + "commandName" : "[kswapd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 2, + "commandName" : "[kthreadd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 86, + "commandName" : "[kthrotld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 32626, + "commandName" : "[kworker/0:0-cgroup_destroy]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 16:50", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 7, + "commandName" : "[kworker/0:0H-events_highpri]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 81, + "commandName" : "[kworker/0:1H-kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47519, + "commandName" : "[kworker/0:2-events]", + "cpuUsage" : 0.1, + "memory" : 0.0, + "started" : "2022-09-07 19:34", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47059, + "commandName" : "[kworker/u2:0-writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:32", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48342, + "commandName" : "[kworker/u2:1-ext4-rsv-conversion]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:40", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48785, + "commandName" : "[kworker/u2:2-flush-8:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 110, + "commandName" : "[kworker/u3:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5970, + "commandName" : "[l2arc_feed]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 76, + "commandName" : "[md]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 15, + "commandName" : "[migration/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 95, + "commandName" : "[mld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 10, + "commandName" : "[mm_percpu_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 162, + "commandName" : "[mpt/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 161, + "commandName" : "[mpt_poll_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5, + "commandName" : "[netns]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 22, + "commandName" : "[oom_reaper]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 222, + "commandName" : "[raid5wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 3, + "commandName" : "[rcu_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 4, + "commandName" : "[rcu_par_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 14, + "commandName" : "[rcu_sched]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 11, + "commandName" : "[rcu_tasks_rude_]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 12, + "commandName" : "[rcu_tasks_trace]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 89, + "commandName" : "[scsi_eh_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 91, + "commandName" : "[scsi_eh_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 189, + "commandName" : "[scsi_eh_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 90, + "commandName" : "[scsi_tmf_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 92, + "commandName" : "[scsi_tmf_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 190, + "commandName" : "[scsi_tmf_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5960, + "commandName" : "[spl_delay_taskq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5961, + "commandName" : "[spl_dynamic_tas]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5962, + "commandName" : "[spl_kmem_cache]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5959, + "commandName" : "[spl_system_task]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 74, + "commandName" : "[tpm_dev_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 94, + "commandName" : "[vfio-irqfd-clea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 79, + "commandName" : "[watchdogd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 23, + "commandName" : "[writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5969, + "commandName" : "[z_vdev_file]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 109, + "commandName" : "[zswap-shrink]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5963, + "commandName" : "[zvol]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 49926, + "commandName" : "awk -v info=0 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\\033[1;32m -v darkgreen=\\033[0;32m -v red=\\033[1;31m -v yellow=\\033[1;33m -v magenta=\\033[1;35m -v normal=\\033[0;39m\\033[0;49m -v white=\\033[0;02m -v cyan=\\033[1;36m -v dblue=\\033[0;34m -v dgreen=\\033[0;32m -v timing=0 -v has_fflush=OK -v full_compliance=1 -v partial_run=1 -v error_fail=0 -v noncompliant_fail=0 -f /opt/rudder/share/commands/../lib/reports.awk", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11872.0 + }, + { + "pid" : 24930, + "commandName" : "bash", + "cpuUsage" : 0.0, + "memory" : 0.7, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 8024.0 + }, + { + "pid" : 5927, + "commandName" : "bpfilter_umh", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2772.0 + }, + { + "pid" : 49922, + "commandName" : "cat", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6328.0 + }, + { + "pid" : 50027, + "commandName" : "fusioninventory-agent: running task Inventory", + "cpuUsage" : 47.0, + "memory" : 10.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 50496.0 + }, + { + "pid" : 5878, + "commandName" : "lxcfs /var/snap/lxd/common/var/lib/lxcfs -p /var/snap/lxd/common/lxcfs.pid", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 85652.0 + }, + { + "pid" : 50040, + "commandName" : "ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7060.0 + }, + { + "pid" : 797, + "commandName" : "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups", + "cpuUsage" : 0.0, + "memory" : 1.1, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 15416.0 + }, + { + "pid" : 24827, + "commandName" : "sshd: vagrant [priv]", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "root", + "virtualMemory" : 17036.0 + }, + { + "pid" : 24914, + "commandName" : "sshd: vagrant@pts/0", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17420.0 + }, + { + "pid" : 24929, + "commandName" : "su", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 10592.0 + }, + { + "pid" : 24928, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 24927, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 49924, + "commandName" : "tee /var/rudder/tmp/reports//2022-09-07T19:56:54+00:00@4d3a43bc-8508-46a2-92d7-cfe7320309a5.log", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6192.0 + } + ], + "processors" : [ + { + "manufacturer" : "Intel", + "name" : "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz", + "arch" : "i386", + "speed" : 2800, + "core" : 1, + "thread" : 1, + "stepping" : 9, + "family" : 6, + "model" : 158, + "quantity" : 1 + } + ], + "slots" : [], + "software" : [ + { + "name" : "libassuan0", + "version" : "2.5.5-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libassuan", + "sourceVersion" : "2.5.5-1build1" + }, + { + "name" : "libbrotli1", + "version" : "1.0.9-2build6", + "publisher" : "Ubuntu", + "sourceName" : "brotli", + "sourceVersion" : "1.0.9-2build6" + }, + { + "name" : "pastebinit", + "version" : "1.5.1-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.5.1-1ubuntu1" + }, + { + "name" : "cryptsetup", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "libstemmer0d", + "version" : "2.2.0-1build1", + "publisher" : "Ubuntu", + "sourceName" : "snowball", + "sourceVersion" : "2.2.0-1build1" + }, + { + "name" : "python3-zope.interface", + "version" : "5.4.0-1build1", + "publisher" : "Ubuntu", + "sourceName" : "zope.interface", + "sourceVersion" : "5.4.0-1build1" + }, + { + "name" : "libedit2", + "version" : "3.1-20210910-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libedit", + "sourceVersion" : "3.1-20210910-1build1" + }, + { + "name" : "tcl8.6", + "version" : "8.6.12+dfsg-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "8.6.12+dfsg-1build1" + }, + { + "name" : "gnupg-utils", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libcom-err2", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "libopeniscsiusr", + "version" : "2.1.5-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "open-iscsi", + "sourceVersion" : "2.1.5-1ubuntu1" + }, + { + "name" : "adduser", + "version" : "3.118ubuntu5", + "publisher" : "Ubuntu", + "sourceVersion" : "3.118ubuntu5" + }, + { + "name" : "libsasl2-2", + "version" : "2.1.27+dfsg2-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cyrus-sasl2", + "sourceVersion" : "2.1.27+dfsg2-3ubuntu1" + }, + { + "name" : "libglib2.0-data", + "version" : "2.72.1-1", + "publisher" : "Ubuntu", + "sourceName" : "glib2.0", + "sourceVersion" : "2.72.1-1" + }, + { + "name" : "modemmanager", + "version" : "1.18.6-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.18.6-1" + }, + { + "name" : "python3-more-itertools", + "version" : "8.10.0-2", + "publisher" : "Ubuntu", + "sourceName" : "more-itertools", + "sourceVersion" : "8.10.0-2" + }, + { + "name" : "bc", + "version" : "1.7.1-3build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7.1-3build1" + }, + { + "name" : "ed", + "version" : "1.18-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.18-1" + }, + { + "name" : "augeas-lenses", + "version" : "1.13.0-1", + "publisher" : "Ubuntu", + "sourceName" : "augeas", + "sourceVersion" : "1.13.0-1" + }, + { + "name" : "libplymouth5", + "version" : "0.9.5+git20211018-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "plymouth", + "sourceVersion" : "0.9.5+git20211018-1ubuntu3" + }, + { + "name" : "fdisk", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "python3-certifi", + "version" : "2020.6.20-1", + "publisher" : "Ubuntu", + "sourceName" : "python-certifi", + "sourceVersion" : "2020.6.20-1" + }, + { + "name" : "multipath-tools", + "version" : "0.8.8-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.8.8-1ubuntu1" + }, + { + "name" : "python3-gi", + "version" : "3.42.0-3build1", + "publisher" : "Ubuntu", + "sourceName" : "pygobject", + "sourceVersion" : "3.42.0-3build1" + }, + { + "name" : "keyboard-configuration", + "version" : "1.205ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "console-setup", + "sourceVersion" : "1.205ubuntu3" + }, + { + "name" : "liburcu8", + "version" : "0.13.1-1", + "publisher" : "Ubuntu", + "sourceName" : "liburcu", + "sourceVersion" : "0.13.1-1" + }, + { + "name" : "libklibc", + "version" : "2.0.10-4", + "publisher" : "Ubuntu", + "sourceName" : "klibc", + "sourceVersion" : "2.0.10-4" + }, + { + "name" : "python3-json-pointer", + "version" : "2.0-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python-json-pointer", + "sourceVersion" : "2.0-0ubuntu1" + }, + { + "name" : "grub-gfxpayload-lists", + "version" : "0.7", + "publisher" : "Ubuntu", + "sourceVersion" : "0.7" + }, + { + "name" : "python3-requests", + "version" : "2.25.1+dfsg-2", + "publisher" : "Ubuntu", + "sourceName" : "requests", + "sourceVersion" : "2.25.1+dfsg-2" + }, + { + "name" : "libdrm-common", + "version" : "2.4.110-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libdrm", + "sourceVersion" : "2.4.110-1ubuntu1" + }, + { + "name" : "libp11-kit0", + "version" : "0.24.0-6build1", + "publisher" : "Ubuntu", + "sourceName" : "p11-kit", + "sourceVersion" : "0.24.0-6build1" + }, + { + "name" : "install-info", + "version" : "6.8-4build1", + "publisher" : "Ubuntu", + "sourceName" : "texinfo", + "sourceVersion" : "6.8-4build1" + }, + { + "name" : "liblmdb0", + "version" : "0.9.24-1build2", + "publisher" : "Ubuntu", + "sourceName" : "lmdb", + "sourceVersion" : "0.9.24-1build2" + }, + { + "name" : "linux-image-virtual", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "python3-pyrsistent", + "version" : "0.18.1-1build1", + "publisher" : "Ubuntu", + "sourceName" : "pyrsistent", + "sourceVersion" : "0.18.1-1build1" + }, + { + "name" : "snapd", + "version" : "2.55.5+22.4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.55.5+22.4" + }, + { + "name" : "libgudev-1.0-0", + "version" : "1:237-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libgudev (237-2build1)", + "sourceVersion" : "237-2build1" + }, + { + "name" : "grep", + "version" : "3.7-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.7-1build1" + }, + { + "name" : "fuse3", + "version" : "3.10.5-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.10.5-1build1" + }, + { + "name" : "libcrypt1", + "version" : "1:4.4.27-1", + "publisher" : "Ubuntu", + "sourceName" : "libxcrypt", + "sourceVersion" : "1:4.4.27-1" + }, + { + "name" : "libglib2.0-bin", + "version" : "2.72.1-1", + "publisher" : "Ubuntu", + "sourceName" : "glib2.0", + "sourceVersion" : "2.72.1-1" + }, + { + "name" : "libmd0", + "version" : "1.0.4-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libmd", + "sourceVersion" : "1.0.4-1build1" + }, + { + "name" : "libnspr4", + "version" : "2:4.32-3build1", + "publisher" : "Ubuntu", + "sourceName" : "nspr", + "sourceVersion" : "2:4.32-3build1" + }, + { + "name" : "libapparmor1", + "version" : "3.0.4-2ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "apparmor", + "sourceVersion" : "3.0.4-2ubuntu2.1" + }, + { + "name" : "gzip", + "version" : "1.10-4ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "1.10-4ubuntu4" + }, + { + "name" : "libintl-xs-perl", + "version" : "1.26-3build2", + "publisher" : "Ubuntu", + "sourceName" : "libintl-perl", + "sourceVersion" : "1.26-3build2" + }, + { + "name" : "libqmi-proxy", + "version" : "1.30.4-1", + "publisher" : "Ubuntu", + "sourceName" : "libqmi", + "sourceVersion" : "1.30.4-1" + }, + { + "name" : "python3-urllib3", + "version" : "1.26.5-1~exp1", + "publisher" : "Ubuntu", + "sourceName" : "python-urllib3", + "sourceVersion" : "1.26.5-1~exp1" + }, + { + "name" : "libefiboot1", + "version" : "37-6ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "efivar", + "sourceVersion" : "37-6ubuntu2" + }, + { + "name" : "python3-apt", + "version" : "2.3.0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-apt", + "sourceVersion" : "2.3.0ubuntu2" + }, + { + "name" : "libffi8", + "version" : "3.4.2-4", + "publisher" : "Ubuntu", + "sourceName" : "libffi", + "sourceVersion" : "3.4.2-4" + }, + { + "name" : "pciutils", + "version" : "1:3.7.0-6", + "publisher" : "Ubuntu", + "sourceVersion" : "1:3.7.0-6" + }, + { + "name" : "lsb-release", + "version" : "11.1.0ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lsb", + "sourceVersion" : "11.1.0ubuntu4" + }, + { + "name" : "debconf", + "version" : "1.5.79ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.5.79ubuntu1" + }, + { + "name" : "libfastjson4", + "version" : "0.99.9-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libfastjson", + "sourceVersion" : "0.99.9-1build2" + }, + { + "name" : "libargon2-1", + "version" : "0~20171227-0.3", + "publisher" : "Ubuntu", + "sourceName" : "argon2", + "sourceVersion" : "0~20171227-0.3" + }, + { + "name" : "lsb-base", + "version" : "11.1.0ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lsb", + "sourceVersion" : "11.1.0ubuntu4" + }, + { + "name" : "libkeyutils1", + "version" : "1.6.1-2ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "keyutils", + "sourceVersion" : "1.6.1-2ubuntu3" + }, + { + "name" : "libnl-genl-3-200", + "version" : "3.5.0-0.1", + "publisher" : "Ubuntu", + "sourceName" : "libnl3", + "sourceVersion" : "3.5.0-0.1" + }, + { + "name" : "gpgsm", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "binutils", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "systemd-timesyncd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "pinentry-curses", + "version" : "1.1.1-1build2", + "publisher" : "Ubuntu", + "sourceName" : "pinentry", + "sourceVersion" : "1.1.1-1build2" + }, + { + "name" : "python3-ptyprocess", + "version" : "0.7.0-3", + "publisher" : "Ubuntu", + "sourceName" : "ptyprocess", + "sourceVersion" : "0.7.0-3" + }, + { + "name" : "apparmor", + "version" : "3.0.4-2ubuntu2.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0.4-2ubuntu2.1" + }, + { + "name" : "python3-zipp", + "version" : "1.0.0-3", + "publisher" : "Ubuntu", + "sourceName" : "python-zipp", + "sourceVersion" : "1.0.0-3" + }, + { + "name" : "libflashrom1", + "version" : "1.2-5build1", + "publisher" : "Ubuntu", + "sourceName" : "flashrom", + "sourceVersion" : "1.2-5build1" + }, + { + "name" : "libdrm2", + "version" : "2.4.110-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libdrm", + "sourceVersion" : "2.4.110-1ubuntu1" + }, + { + "name" : "libcurl3-gnutls", + "version" : "7.81.0-1ubuntu1.3", + "publisher" : "Ubuntu", + "sourceName" : "curl", + "sourceVersion" : "7.81.0-1ubuntu1.3" + }, + { + "name" : "libcryptsetup12", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cryptsetup", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "python3-wadllib", + "version" : "1.3.6-1", + "publisher" : "Ubuntu", + "sourceName" : "python-wadllib", + "sourceVersion" : "1.3.6-1" + }, + { + "name" : "linux-base", + "version" : "4.5ubuntu9", + "publisher" : "Ubuntu", + "sourceVersion" : "4.5ubuntu9" + }, + { + "name" : "linux-headers-5.15.0-41", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "libnsl2", + "version" : "1.3.0-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libnsl", + "sourceVersion" : "1.3.0-2build2" + }, + { + "name" : "python3-oauthlib", + "version" : "3.2.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-oauthlib", + "sourceVersion" : "3.2.0-1" + }, + { + "name" : "libsasl2-modules", + "version" : "2.1.27+dfsg2-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cyrus-sasl2", + "sourceVersion" : "2.1.27+dfsg2-3ubuntu1" + }, + { + "name" : "base-files", + "version" : "12ubuntu4.1", + "publisher" : "Ubuntu", + "sourceVersion" : "12ubuntu4.1" + }, + { + "name" : "libtext-charwidth-perl", + "version" : "0.4-10build3", + "publisher" : "Ubuntu", + "sourceVersion" : "0.4-10build3" + }, + { + "name" : "pollinate", + "version" : "4.33-3ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.33-3ubuntu2" + }, + { + "name" : "landscape-common", + "version" : "19.12-0ubuntu13", + "publisher" : "Ubuntu", + "sourceName" : "landscape-client", + "sourceVersion" : "19.12-0ubuntu13" + }, + { + "name" : "libisc-export1105", + "version" : "1:9.11.19+dfsg-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "bind9-libs", + "sourceVersion" : "1:9.11.19+dfsg-2.1ubuntu3" + }, + { + "name" : "sudo", + "version" : "1.9.9-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.9.9-1ubuntu2" + }, + { + "name" : "liblz4-1", + "version" : "1.9.3-2build2", + "publisher" : "Ubuntu", + "sourceName" : "lz4", + "sourceVersion" : "1.9.3-2build2" + }, + { + "name" : "libattr1", + "version" : "1:2.5.1-1build1", + "publisher" : "Ubuntu", + "sourceName" : "attr", + "sourceVersion" : "1:2.5.1-1build1" + }, + { + "name" : "udisks2", + "version" : "2.9.4-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.9.4-1ubuntu2" + }, + { + "name" : "ucf", + "version" : "3.43", + "publisher" : "Ubuntu", + "sourceVersion" : "3.43" + }, + { + "name" : "libpackagekit-glib2-18", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "packagekit", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "libxml2", + "version" : "2.9.13+dfsg-1ubuntu0.1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.9.13+dfsg-1ubuntu0.1" + }, + { + "name" : "tcl", + "version" : "8.6.11+1build2", + "publisher" : "Ubuntu", + "sourceName" : "tcltk-defaults", + "sourceVersion" : "8.6.11+1build2" + }, + { + "name" : "dmidecode", + "version" : "3.3-3", + "publisher" : "Ubuntu", + "sourceVersion" : "3.3-3" + }, + { + "name" : "usrmerge", + "version" : "25ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "25ubuntu2" + }, + { + "name" : "libtext-wrapi18n-perl", + "version" : "0.6-9", + "publisher" : "Ubuntu", + "sourceVersion" : "0.6-9" + }, + { + "name" : "libelf1", + "version" : "0.186-1build1", + "publisher" : "Ubuntu", + "sourceName" : "elfutils", + "sourceVersion" : "0.186-1build1" + }, + { + "name" : "dbus-user-session", + "version" : "1.12.20-2ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "dbus", + "sourceVersion" : "1.12.20-2ubuntu4" + }, + { + "name" : "lvm2", + "version" : "2.3.11-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "ldap-utils", + "version" : "2.5.13+dfsg-0ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "openldap", + "sourceVersion" : "2.5.13+dfsg-0ubuntu0.22.4.1" + }, + { + "name" : "python3-click", + "version" : "8.0.3-1", + "publisher" : "Ubuntu", + "sourceName" : "python-click", + "sourceVersion" : "8.0.3-1" + }, + { + "name" : "python3-babel", + "version" : "2.8.0+dfsg.1-7", + "publisher" : "Ubuntu", + "sourceName" : "python-babel", + "sourceVersion" : "2.8.0+dfsg.1-7" + }, + { + "name" : "wget", + "version" : "1.21.2-2ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.21.2-2ubuntu1" + }, + { + "name" : "libreadline8", + "version" : "8.1.2-1", + "publisher" : "Ubuntu", + "sourceName" : "readline", + "sourceVersion" : "8.1.2-1" + }, + { + "name" : "libsigsegv2", + "version" : "2.13-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "libsigsegv", + "sourceVersion" : "2.13-1ubuntu3" + }, + { + "name" : "libxau6", + "version" : "1:1.0.9-1build5", + "publisher" : "Ubuntu", + "sourceName" : "libxau", + "sourceVersion" : "1:1.0.9-1build5" + }, + { + "name" : "grub-common", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "console-setup", + "version" : "1.205ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.205ubuntu3" + }, + { + "name" : "net-tools", + "version" : "1.60+git20181103.0eebece-1ubuntu5", + "publisher" : "Ubuntu", + "sourceVersion" : "1.60+git20181103.0eebece-1ubuntu5" + }, + { + "name" : "parted", + "version" : "3.4-2build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.4-2build1" + }, + { + "name" : "libqmi-glib5", + "version" : "1.30.4-1", + "publisher" : "Ubuntu", + "sourceName" : "libqmi", + "sourceVersion" : "1.30.4-1" + }, + { + "name" : "ubuntu-minimal", + "version" : "1.481", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-meta", + "sourceVersion" : "1.481" + }, + { + "name" : "python3-jsonschema", + "version" : "3.2.0-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-jsonschema", + "sourceVersion" : "3.2.0-0ubuntu2" + }, + { + "name" : "powermgmt-base", + "version" : "1.36", + "publisher" : "Ubuntu", + "sourceVersion" : "1.36" + }, + { + "name" : "libblockdev-loop2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "init-system-helpers", + "version" : "1.62", + "publisher" : "Ubuntu", + "sourceVersion" : "1.62" + }, + { + "name" : "libxmlsec1", + "version" : "1.2.33-1build2", + "publisher" : "Ubuntu", + "sourceName" : "xmlsec1", + "sourceVersion" : "1.2.33-1build2" + }, + { + "name" : "python3-secretstorage", + "version" : "3.3.1-1", + "publisher" : "Ubuntu", + "sourceName" : "python-secretstorage", + "sourceVersion" : "3.3.1-1" + }, + { + "name" : "manpages", + "version" : "5.10-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.10-1ubuntu1" + }, + { + "name" : "gpg-wks-client", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "packagekit", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "sg3-utils-udev", + "version" : "1.46-1build1", + "publisher" : "Ubuntu", + "sourceName" : "sg3-utils", + "sourceVersion" : "1.46-1build1" + }, + { + "name" : "libssh-4", + "version" : "0.9.6-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libssh", + "sourceVersion" : "0.9.6-2build1" + }, + { + "name" : "python3-chardet", + "version" : "4.0.0-1", + "publisher" : "Ubuntu", + "sourceName" : "chardet", + "sourceVersion" : "4.0.0-1" + }, + { + "name" : "software-properties-common", + "version" : "0.99.22.2", + "publisher" : "Ubuntu", + "sourceName" : "software-properties", + "sourceVersion" : "0.99.22.2" + }, + { + "name" : "xauth", + "version" : "1:1.1-1build2", + "publisher" : "Ubuntu", + "sourceVersion" : "1:1.1-1build2" + }, + { + "name" : "libtirpc-common", + "version" : "1.3.2-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libtirpc", + "sourceVersion" : "1.3.2-2build1" + }, + { + "name" : "tpm-udev", + "version" : "0.6", + "publisher" : "Ubuntu", + "sourceVersion" : "0.6" + }, + { + "name" : "libpsl5", + "version" : "0.21.0-1.2build2", + "publisher" : "Ubuntu", + "sourceName" : "libpsl", + "sourceVersion" : "0.21.0-1.2build2" + }, + { + "name" : "libtss2-esys-3.0.2-0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "usb.ids", + "version" : "2022.4.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "2022.4.2-1" + }, + { + "name" : "libmbim-glib4", + "version" : "1.26.2-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libmbim", + "sourceVersion" : "1.26.2-1build1" + }, + { + "name" : "packagekit-tools", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "packagekit", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "ubuntu-advantage-tools", + "version" : "27.9~22.4.1", + "publisher" : "Ubuntu", + "sourceVersion" : "27.9~22.4.1" + }, + { + "name" : "htop", + "version" : "3.0.5-7build2", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0.5-7build2" + }, + { + "name" : "pwgen", + "version" : "2.8-2build1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.8-2build1" + }, + { + "name" : "e2fsprogs", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "libgmp10", + "version" : "2:6.2.1+dfsg-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gmp", + "sourceVersion" : "2:6.2.1+dfsg-3ubuntu1" + }, + { + "name" : "libicu70", + "version" : "70.1-2", + "publisher" : "Ubuntu", + "sourceName" : "icu", + "sourceVersion" : "70.1-2" + }, + { + "name" : "python3-jinja2", + "version" : "3.0.3-1", + "publisher" : "Ubuntu", + "sourceName" : "jinja2", + "sourceVersion" : "3.0.3-1" + }, + { + "name" : "systemd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "bolt", + "version" : "0.9.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.2-1" + }, + { + "name" : "iputils-ping", + "version" : "3:20211215-1", + "publisher" : "Ubuntu", + "sourceName" : "iputils", + "sourceVersion" : "3:20211215-1" + }, + { + "name" : "libudisks2-0", + "version" : "2.9.4-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "udisks2", + "sourceVersion" : "2.9.4-1ubuntu2" + }, + { + "name" : "ubuntu-server", + "version" : "1.481", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-meta", + "sourceVersion" : "1.481" + }, + { + "name" : "python-babel-localedata", + "version" : "2.8.0+dfsg.1-7", + "publisher" : "Ubuntu", + "sourceName" : "python-babel", + "sourceVersion" : "2.8.0+dfsg.1-7" + }, + { + "name" : "libsort-naturally-perl", + "version" : "1.3-2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.3-2" + }, + { + "name" : "libxmlsec1-openssl", + "version" : "1.2.33-1build2", + "publisher" : "Ubuntu", + "sourceName" : "xmlsec1", + "sourceVersion" : "1.2.33-1build2" + }, + { + "name" : "python3.10-minimal", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "psmisc", + "version" : "23.4-2build3", + "publisher" : "Ubuntu", + "sourceVersion" : "23.4-2build3" + }, + { + "name" : "base-passwd", + "version" : "3.5.52build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.5.52build1" + }, + { + "name" : "libaudit1", + "version" : "1:3.0.7-1build1", + "publisher" : "Ubuntu", + "sourceName" : "audit", + "sourceVersion" : "1:3.0.7-1build1" + }, + { + "name" : "dbus", + "version" : "1.12.20-2ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "1.12.20-2ubuntu4" + }, + { + "name" : "libjq1", + "version" : "1.6-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "jq", + "sourceVersion" : "1.6-2.1ubuntu3" + }, + { + "name" : "squashfs-tools", + "version" : "1:4.5-3build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:4.5-3build1" + }, + { + "name" : "libmagic-mgc", + "version" : "1:5.41-3", + "publisher" : "Ubuntu", + "sourceName" : "file", + "sourceVersion" : "1:5.41-3" + }, + { + "name" : "libip6tc2", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "iptables", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "libctf-nobfd0", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "python3-yaml", + "version" : "5.4.1-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "pyyaml", + "sourceVersion" : "5.4.1-1ubuntu1" + }, + { + "name" : "gpg-wks-server", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libnuma1", + "version" : "2.0.14-3ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "numactl", + "sourceVersion" : "2.0.14-3ubuntu2" + }, + { + "name" : "zsh-common", + "version" : "5.8.1-1", + "publisher" : "Ubuntu", + "sourceName" : "zsh", + "sourceVersion" : "5.8.1-1" + }, + { + "name" : "dmsetup", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "binutils-common", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "libtss2-tcti-device0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "sg3-utils", + "version" : "1.46-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.46-1build1" + }, + { + "name" : "libkmod2", + "version" : "29-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "kmod", + "sourceVersion" : "29-1ubuntu1" + }, + { + "name" : "python3-serial", + "version" : "3.5-1", + "publisher" : "Ubuntu", + "sourceName" : "pyserial", + "sourceVersion" : "3.5-1" + }, + { + "name" : "libwrap0", + "version" : "7.6.q-31build2", + "publisher" : "Ubuntu", + "sourceName" : "tcp-wrappers", + "sourceVersion" : "7.6.q-31build2" + }, + { + "name" : "open-iscsi", + "version" : "2.1.5-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.1.5-1ubuntu1" + }, + { + "name" : "libpython3.10-stdlib", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "python3-debconf", + "version" : "1.5.79ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "debconf", + "sourceVersion" : "1.5.79ubuntu1" + }, + { + "name" : "bsdutils", + "version" : "1:2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux (2.37.2-4ubuntu3)", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "zerofree", + "version" : "1.1.1-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.1.1-1build3" + }, + { + "name" : "eatmydata", + "version" : "130-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libeatmydata", + "sourceVersion" : "130-2build1" + }, + { + "name" : "libjcat1", + "version" : "0.1.9-1", + "publisher" : "Ubuntu", + "sourceName" : "libjcat", + "sourceVersion" : "0.1.9-1" + }, + { + "name" : "linux-headers-virtual", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "python3-lazr.uri", + "version" : "1.0.6-2", + "publisher" : "Ubuntu", + "sourceName" : "lazr.uri", + "sourceVersion" : "1.0.6-2" + }, + { + "name" : "libldap-common", + "version" : "2.5.12+dfsg-0ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "openldap", + "sourceVersion" : "2.5.12+dfsg-0ubuntu0.22.4.1" + }, + { + "name" : "policykit-1", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceVersion" : "0.105-33" + }, + { + "name" : "kbd", + "version" : "2.3.0-3ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.3.0-3ubuntu4" + }, + { + "name" : "byobu", + "version" : "5.133-1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.133-1" + }, + { + "name" : "procps", + "version" : "2:3.3.17-6ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2:3.3.17-6ubuntu2" + }, + { + "name" : "xdg-user-dirs", + "version" : "0.17-2ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "0.17-2ubuntu4" + }, + { + "name" : "libfuse3-3", + "version" : "3.10.5-1build1", + "publisher" : "Ubuntu", + "sourceName" : "fuse3", + "sourceVersion" : "3.10.5-1build1" + }, + { + "name" : "dmeventd", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "libgpm2", + "version" : "1.20.7-10build1", + "publisher" : "Ubuntu", + "sourceName" : "gpm", + "sourceVersion" : "1.20.7-10build1" + }, + { + "name" : "libdbus-1-3", + "version" : "1.12.20-2ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "dbus", + "sourceVersion" : "1.12.20-2ubuntu4" + }, + { + "name" : "python3-hamcrest", + "version" : "2.0.2-2", + "publisher" : "Ubuntu", + "sourceName" : "pyhamcrest", + "sourceVersion" : "2.0.2-2" + }, + { + "name" : "update-notifier-common", + "version" : "3.192.54", + "publisher" : "Ubuntu", + "sourceName" : "update-notifier", + "sourceVersion" : "3.192.54" + }, + { + "name" : "libevent-core-2.1-7", + "version" : "2.1.12-stable-1build3", + "publisher" : "Ubuntu", + "sourceName" : "libevent", + "sourceVersion" : "2.1.12-stable-1build3" + }, + { + "name" : "sysvinit-utils", + "version" : "3.1-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "sysvinit", + "sourceVersion" : "3.1-1ubuntu1" + }, + { + "name" : "python3-lazr.restfulclient", + "version" : "0.14.4-1", + "publisher" : "Ubuntu", + "sourceName" : "lazr.restfulclient", + "sourceVersion" : "0.14.4-1" + }, + { + "name" : "debconf-i18n", + "version" : "1.5.79ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "debconf", + "sourceVersion" : "1.5.79ubuntu1" + }, + { + "name" : "libxxhash0", + "version" : "0.8.1-1", + "publisher" : "Ubuntu", + "sourceName" : "xxhash", + "sourceVersion" : "0.8.1-1" + }, + { + "name" : "unattended-upgrades", + "version" : "2.8ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.8ubuntu1" + }, + { + "name" : "libjson-glib-1.0-common", + "version" : "1.6.6-1build1", + "publisher" : "Ubuntu", + "sourceName" : "json-glib", + "sourceVersion" : "1.6.6-1build1" + }, + { + "name" : "ncurses-term", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libpam-systemd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "liblzo2-2", + "version" : "2.10-2build3", + "publisher" : "Ubuntu", + "sourceName" : "lzo2", + "sourceVersion" : "2.10-2build3" + }, + { + "name" : "libnetplan0", + "version" : "0.104-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "netplan.io", + "sourceVersion" : "0.104-0ubuntu2" + }, + { + "name" : "cloud-initramfs-dyn-netconf", + "version" : "0.47ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-initramfs-tools", + "sourceVersion" : "0.47ubuntu1" + }, + { + "name" : "libuv1", + "version" : "1.43.0-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.43.0-1" + }, + { + "name" : "ethtool", + "version" : "1:5.16-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:5.16-1" + }, + { + "name" : "cron", + "version" : "3.0pl1-137ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0pl1-137ubuntu3" + }, + { + "name" : "libnftnl11", + "version" : "1.2.1-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libnftnl", + "sourceVersion" : "1.2.1-1build1" + }, + { + "name" : "libgcrypt20", + "version" : "1.9.4-3ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.9.4-3ubuntu3" + }, + { + "name" : "libntfs-3g89", + "version" : "1:2021.8.22-3ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "ntfs-3g", + "sourceVersion" : "1:2021.8.22-3ubuntu1.1" + }, + { + "name" : "usb-modeswitch", + "version" : "2.6.1-3ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.6.1-3ubuntu2" + }, + { + "name" : "distro-info", + "version" : "1.1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.1build1" + }, + { + "name" : "libvolume-key1", + "version" : "0.3.12-3.1build3", + "publisher" : "Ubuntu", + "sourceName" : "volume-key", + "sourceVersion" : "0.3.12-3.1build3" + }, + { + "name" : "libksba8", + "version" : "1.6.0-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libksba", + "sourceVersion" : "1.6.0-2build1" + }, + { + "name" : "libnetfilter-conntrack3", + "version" : "1.0.9-1", + "publisher" : "Ubuntu", + "sourceName" : "libnetfilter-conntrack", + "sourceVersion" : "1.0.9-1" + }, + { + "name" : "shared-mime-info", + "version" : "2.1-2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.1-2" + }, + { + "name" : "distro-info-data", + "version" : "0.52ubuntu0.1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.52ubuntu0.1" + }, + { + "name" : "libtss2-tcti-swtpm0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "libaudit-common", + "version" : "1:3.0.7-1build1", + "publisher" : "Ubuntu", + "sourceName" : "audit", + "sourceVersion" : "1:3.0.7-1build1" + }, + { + "name" : "libtcl8.6", + "version" : "8.6.12+dfsg-1build1", + "publisher" : "Ubuntu", + "sourceName" : "tcl8.6", + "sourceVersion" : "8.6.12+dfsg-1build1" + }, + { + "name" : "overlayroot", + "version" : "0.47ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-initramfs-tools", + "sourceVersion" : "0.47ubuntu1" + }, + { + "name" : "python3-keyring", + "version" : "23.5.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-keyring", + "sourceVersion" : "23.5.0-1" + }, + { + "name" : "irqbalance", + "version" : "1.8.0-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.8.0-1build1" + }, + { + "name" : "xfsprogs", + "version" : "5.13.0-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "5.13.0-1ubuntu2" + }, + { + "name" : "libunistring2", + "version" : "1.0-1", + "publisher" : "Ubuntu", + "sourceName" : "libunistring", + "sourceVersion" : "1.0-1" + }, + { + "name" : "libx11-data", + "version" : "2:1.7.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libx11", + "sourceVersion" : "2:1.7.5-1" + }, + { + "name" : "libpam-cap", + "version" : "1:2.44-1build3", + "publisher" : "Ubuntu", + "sourceName" : "libcap2", + "sourceVersion" : "1:2.44-1build3" + }, + { + "name" : "initramfs-tools", + "version" : "0.140ubuntu13", + "publisher" : "Ubuntu", + "sourceVersion" : "0.140ubuntu13" + }, + { + "name" : "hdparm", + "version" : "9.60+ds-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "9.60+ds-1build3" + }, + { + "name" : "isc-dhcp-common", + "version" : "4.4.1-2.3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "isc-dhcp", + "sourceVersion" : "4.4.1-2.3ubuntu2.1" + }, + { + "name" : "libparted-fs-resize0", + "version" : "3.4-2build1", + "publisher" : "Ubuntu", + "sourceName" : "parted", + "sourceVersion" : "3.4-2build1" + }, + { + "name" : "bind9-dnsutils", + "version" : "1:9.18.1-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "bind9", + "sourceVersion" : "1:9.18.1-1ubuntu1.1" + }, + { + "name" : "libxext6", + "version" : "2:1.3.4-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libxext", + "sourceVersion" : "2:1.3.4-1build1" + }, + { + "name" : "liblocale-gettext-perl", + "version" : "1.7-4build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7-4build3" + }, + { + "name" : "librtmp1", + "version" : "2.4+20151223.gitfa8646d.1-2build4", + "publisher" : "Ubuntu", + "sourceName" : "rtmpdump", + "sourceVersion" : "2.4+20151223.gitfa8646d.1-2build4" + }, + { + "name" : "secureboot-db", + "version" : "1.8", + "publisher" : "Ubuntu", + "sourceVersion" : "1.8" + }, + { + "name" : "libcbor0.8", + "version" : "0.8.0-2ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libcbor", + "sourceVersion" : "0.8.0-2ubuntu1" + }, + { + "name" : "python3-problem-report", + "version" : "2.20.11-0ubuntu82.1", + "publisher" : "Ubuntu", + "sourceName" : "apport", + "sourceVersion" : "2.20.11-0ubuntu82.1" + }, + { + "name" : "iptables", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "rsync", + "version" : "3.2.3-8ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "3.2.3-8ubuntu3" + }, + { + "name" : "klibc-utils", + "version" : "2.0.10-4", + "publisher" : "Ubuntu", + "sourceName" : "klibc", + "sourceVersion" : "2.0.10-4" + }, + { + "name" : "nftables", + "version" : "1.0.2-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.0.2-1ubuntu2" + }, + { + "name" : "zlib1g", + "version" : "1:1.2.11.dfsg-2ubuntu9", + "publisher" : "Ubuntu", + "sourceName" : "zlib", + "sourceVersion" : "1:1.2.11.dfsg-2ubuntu9" + }, + { + "name" : "vim", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "libip4tc2", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "iptables", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "libonig5", + "version" : "6.9.7.1-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libonig", + "sourceVersion" : "6.9.7.1-2build1" + }, + { + "name" : "grub2-common", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "command-not-found", + "version" : "22.4.0", + "publisher" : "Ubuntu", + "sourceVersion" : "22.4.0" + }, + { + "name" : "python3-importlib-metadata", + "version" : "4.6.4-1", + "publisher" : "Ubuntu", + "sourceName" : "python-importlib-metadata", + "sourceVersion" : "4.6.4-1" + }, + { + "name" : "liblzma5", + "version" : "5.2.5-2ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "xz-utils", + "sourceVersion" : "5.2.5-2ubuntu1" + }, + { + "name" : "libperl5.34", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "perl", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "dirmngr", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libparted2", + "version" : "3.4-2build1", + "publisher" : "Ubuntu", + "sourceName" : "parted", + "sourceVersion" : "3.4-2build1" + }, + { + "name" : "cryptsetup-initramfs", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cryptsetup", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "tzdata", + "version" : "2022a-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2022a-0ubuntu1" + }, + { + "name" : "ca-certificates", + "version" : "20211016", + "publisher" : "Ubuntu", + "sourceVersion" : "20211016" + }, + { + "name" : "python3-configobj", + "version" : "5.0.6-5", + "publisher" : "Ubuntu", + "sourceName" : "configobj", + "sourceVersion" : "5.0.6-5" + }, + { + "name" : "libzstd1", + "version" : "1.4.8+dfsg-3build1", + "publisher" : "Ubuntu", + "sourceName" : "libzstd", + "sourceVersion" : "1.4.8+dfsg-3build1" + }, + { + "name" : "libblkid1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libctf0", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "coreutils", + "version" : "8.32-4.1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "8.32-4.1ubuntu1" + }, + { + "name" : "xxd", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "apt-utils", + "version" : "2.4.5", + "publisher" : "Ubuntu", + "sourceName" : "apt", + "sourceVersion" : "2.4.5" + }, + { + "name" : "strace", + "version" : "5.16-0ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "5.16-0ubuntu3" + }, + { + "name" : "libnpth0", + "version" : "1.6-3build2", + "publisher" : "Ubuntu", + "sourceName" : "npth", + "sourceVersion" : "1.6-3build2" + }, + { + "name" : "libxmlb2", + "version" : "0.3.6-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libxmlb", + "sourceVersion" : "0.3.6-2build1" + }, + { + "name" : "python3-pyasn1", + "version" : "0.4.8-1", + "publisher" : "Ubuntu", + "sourceName" : "pyasn1", + "sourceVersion" : "0.4.8-1" + }, + { + "name" : "libnl-3-200", + "version" : "3.5.0-0.1", + "publisher" : "Ubuntu", + "sourceName" : "libnl3", + "sourceVersion" : "3.5.0-0.1" + }, + { + "name" : "libtasn1-6", + "version" : "4.18.0-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.18.0-4build1" + }, + { + "name" : "busybox-initramfs", + "version" : "1:1.30.1-7ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "busybox", + "sourceVersion" : "1:1.30.1-7ubuntu3" + }, + { + "name" : "dpkg", + "version" : "1.21.1ubuntu2.1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.21.1ubuntu2.1" + }, + { + "name" : "ubuntu-standard", + "version" : "1.481", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-meta", + "sourceVersion" : "1.481" + }, + { + "name" : "libgusb2", + "version" : "0.3.10-1", + "publisher" : "Ubuntu", + "sourceName" : "libgusb", + "sourceVersion" : "0.3.10-1" + }, + { + "name" : "libpython3-stdlib", + "version" : "3.10.4-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python3-defaults", + "sourceVersion" : "3.10.4-0ubuntu2" + }, + { + "name" : "libblockdev-swap2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "cloud-init", + "version" : "22.2-0ubuntu1~22.4.3", + "publisher" : "Ubuntu", + "sourceVersion" : "22.2-0ubuntu1~22.4.3" + }, + { + "name" : "libexpat1", + "version" : "2.4.7-1", + "publisher" : "Ubuntu", + "sourceName" : "expat", + "sourceVersion" : "2.4.7-1" + }, + { + "name" : "openssh-sftp-server", + "version" : "1:8.9p1-3", + "publisher" : "Ubuntu", + "sourceName" : "openssh", + "sourceVersion" : "1:8.9p1-3" + }, + { + "name" : "libpam-modules-bin", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "linux-headers-5.15.0-41-generic", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "tcpdump", + "version" : "4.99.1-3build2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.99.1-3build2" + }, + { + "name" : "logsave", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "linux-virtual", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "python3-gdbm", + "version" : "3.10.4-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python3-stdlib-extensions", + "sourceVersion" : "3.10.4-0ubuntu1" + }, + { + "name" : "python3-markupsafe", + "version" : "2.0.1-2build1", + "publisher" : "Ubuntu", + "sourceName" : "markupsafe", + "sourceVersion" : "2.0.1-2build1" + }, + { + "name" : "libgssapi-krb5-2", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "ssh-import-id", + "version" : "5.11-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.11-0ubuntu1" + }, + { + "name" : "screen", + "version" : "4.9.0-1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.9.0-1" + }, + { + "name" : "logrotate", + "version" : "3.19.0-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.19.0-1ubuntu1.1" + }, + { + "name" : "libfido2-1", + "version" : "1.10.0-1", + "publisher" : "Ubuntu", + "sourceName" : "libfido2", + "sourceVersion" : "1.10.0-1" + }, + { + "name" : "debianutils", + "version" : "5.5-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "5.5-1ubuntu2" + }, + { + "name" : "perl-modules-5.34", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "perl", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "libpam0g", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "netbase", + "version" : "6.3", + "publisher" : "Ubuntu", + "sourceVersion" : "6.3" + }, + { + "name" : "python3-dbus", + "version" : "1.2.18-3build1", + "publisher" : "Ubuntu", + "sourceName" : "dbus-python", + "sourceVersion" : "1.2.18-3build1" + }, + { + "name" : "augeas-tools", + "version" : "1.13.0-1", + "publisher" : "Ubuntu", + "sourceName" : "augeas", + "sourceVersion" : "1.13.0-1" + }, + { + "name" : "pkexec", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "plymouth-theme-ubuntu-text", + "version" : "0.9.5+git20211018-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "plymouth", + "sourceVersion" : "0.9.5+git20211018-1ubuntu3" + }, + { + "name" : "polkitd", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "libxcb1", + "version" : "1.14-3ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "libxcb", + "sourceVersion" : "1.14-3ubuntu3" + }, + { + "name" : "libpam-runtime", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "xz-utils", + "version" : "5.2.5-2ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.2.5-2ubuntu1" + }, + { + "name" : "libgirepository-1.0-1", + "version" : "1.72.0-1", + "publisher" : "Ubuntu", + "sourceName" : "gobject-introspection", + "sourceVersion" : "1.72.0-1" + }, + { + "name" : "libselinux1", + "version" : "3.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libselinux", + "sourceVersion" : "3.3-1build2" + }, + { + "name" : "cpio", + "version" : "2.13+dfsg-7", + "publisher" : "Ubuntu", + "sourceVersion" : "2.13+dfsg-7" + }, + { + "name" : "libpython3.10", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "libdevmapper-event1.02.1", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "python3-pkg-resources", + "version" : "59.6.0-1.2", + "publisher" : "Ubuntu", + "sourceName" : "setuptools", + "sourceVersion" : "59.6.0-1.2" + }, + { + "name" : "mtr-tiny", + "version" : "0.95-1", + "publisher" : "Ubuntu", + "sourceName" : "mtr", + "sourceVersion" : "0.95-1" + }, + { + "name" : "libterm-readkey-perl", + "version" : "2.38-1build4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.38-1build4" + }, + { + "name" : "bcache-tools", + "version" : "1.0.8-4ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.0.8-4ubuntu3" + }, + { + "name" : "initramfs-tools-bin", + "version" : "0.140ubuntu13", + "publisher" : "Ubuntu", + "sourceName" : "initramfs-tools", + "sourceVersion" : "0.140ubuntu13" + }, + { + "name" : "libsgutils2-2", + "version" : "1.46-1build1", + "publisher" : "Ubuntu", + "sourceName" : "sg3-utils", + "sourceVersion" : "1.46-1build1" + }, + { + "name" : "libmodule-find-perl", + "version" : "0.15-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.15-1" + }, + { + "name" : "isc-dhcp-client", + "version" : "4.4.1-2.3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "isc-dhcp", + "sourceVersion" : "4.4.1-2.3ubuntu2.1" + }, + { + "name" : "libaio1", + "version" : "0.3.112-13build1", + "publisher" : "Ubuntu", + "sourceName" : "libaio", + "sourceVersion" : "0.3.112-13build1" + }, + { + "name" : "libgnutls30", + "version" : "3.7.3-4ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gnutls28", + "sourceVersion" : "3.7.3-4ubuntu1" + }, + { + "name" : "libsmartcols1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "openssl", + "version" : "3.0.2-0ubuntu1.6", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0.2-0ubuntu1.6" + }, + { + "name" : "plymouth", + "version" : "0.9.5+git20211018-1ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.5+git20211018-1ubuntu3" + }, + { + "name" : "libcap-ng0", + "version" : "0.7.9-2.2build3", + "publisher" : "Ubuntu", + "sourceName" : "libcap-ng", + "sourceVersion" : "0.7.9-2.2build3" + }, + { + "name" : "python3-debian", + "version" : "0.1.43ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python-debian", + "sourceVersion" : "0.1.43ubuntu1" + }, + { + "name" : "thin-provisioning-tools", + "version" : "0.9.0-2ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.0-2ubuntu1" + }, + { + "name" : "apport-symptoms", + "version" : "0.24", + "publisher" : "Ubuntu", + "sourceVersion" : "0.24" + }, + { + "name" : "liblvm2cmd2.03", + "version" : "2.3.11-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "libdw1", + "version" : "0.186-1build1", + "publisher" : "Ubuntu", + "sourceName" : "elfutils", + "sourceVersion" : "0.186-1build1" + }, + { + "name" : "gir1.2-glib-2.0", + "version" : "1.72.0-1", + "publisher" : "Ubuntu", + "sourceName" : "gobject-introspection", + "sourceVersion" : "1.72.0-1" + }, + { + "name" : "libtss2-sys1", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "python3-distutils", + "version" : "3.10.4-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python3-stdlib-extensions", + "sourceVersion" : "3.10.4-0ubuntu1" + }, + { + "name" : "curl", + "version" : "7.81.0-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceVersion" : "7.81.0-1ubuntu1.4" + }, + { + "name" : "mount", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libnettle8", + "version" : "3.7.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "nettle", + "sourceVersion" : "3.7.3-1build2" + }, + { + "name" : "linux-headers-generic", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "libprocps8", + "version" : "2:3.3.17-6ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "procps", + "sourceVersion" : "2:3.3.17-6ubuntu2" + }, + { + "name" : "libintl-perl", + "version" : "1.26-3build2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.26-3build2" + }, + { + "name" : "libgdbm6", + "version" : "1.23-1", + "publisher" : "Ubuntu", + "sourceName" : "gdbm", + "sourceVersion" : "1.23-1" + }, + { + "name" : "python3-setuptools", + "version" : "59.6.0-1.2", + "publisher" : "Ubuntu", + "sourceName" : "setuptools", + "sourceVersion" : "59.6.0-1.2" + }, + { + "name" : "tree", + "version" : "2.0.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.0.2-1" + }, + { + "name" : "libnewt0.52", + "version" : "0.52.21-5ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "newt", + "sourceVersion" : "0.52.21-5ubuntu2" + }, + { + "name" : "python3-colorama", + "version" : "0.4.4-1", + "publisher" : "Ubuntu", + "sourceName" : "python-colorama", + "sourceVersion" : "0.4.4-1" + }, + { + "name" : "dash", + "version" : "0.5.11+git20210903+57cd650a4ed-3build1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.5.11+git20210903+57cd650a4ed-3build1" + }, + { + "name" : "libfwupdplugin5", + "version" : "1.7.5-3", + "publisher" : "Ubuntu", + "sourceName" : "fwupd", + "sourceVersion" : "1.7.5-3" + }, + { + "name" : "libfribidi0", + "version" : "1.0.8-2ubuntu3.1", + "publisher" : "Ubuntu", + "sourceName" : "fribidi", + "sourceVersion" : "1.0.8-2ubuntu3.1" + }, + { + "name" : "libxslt1.1", + "version" : "1.1.34-4build2", + "publisher" : "Ubuntu", + "sourceName" : "libxslt", + "sourceVersion" : "1.1.34-4build2" + }, + { + "name" : "binutils-x86-64-linux-gnu", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "libltdl7", + "version" : "2.4.6-15build2", + "publisher" : "Ubuntu", + "sourceName" : "libtool", + "sourceVersion" : "2.4.6-15build2" + }, + { + "name" : "libsasl2-modules-db", + "version" : "2.1.27+dfsg2-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cyrus-sasl2", + "sourceVersion" : "2.1.27+dfsg2-3ubuntu1" + }, + { + "name" : "locales", + "version" : "2.35-0ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "glibc", + "sourceVersion" : "2.35-0ubuntu3" + }, + { + "name" : "libaugeas0", + "version" : "1.13.0-1", + "publisher" : "Ubuntu", + "sourceName" : "augeas", + "sourceVersion" : "1.13.0-1" + }, + { + "name" : "libmodule-scandeps-perl", + "version" : "1.31-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.31-1" + }, + { + "name" : "sosreport", + "version" : "4.3-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.3-1ubuntu2" + }, + { + "name" : "python-apt-common", + "version" : "2.3.0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-apt", + "sourceVersion" : "2.3.0ubuntu2" + }, + { + "name" : "libslang2", + "version" : "2.3.2-5build4", + "publisher" : "Ubuntu", + "sourceName" : "slang2", + "sourceVersion" : "2.3.2-5build4" + }, + { + "name" : "zstd", + "version" : "1.4.8+dfsg-3build1", + "publisher" : "Ubuntu", + "sourceName" : "libzstd", + "sourceVersion" : "1.4.8+dfsg-3build1" + }, + { + "name" : "libdb5.3", + "version" : "5.3.28+dfsg1-0.8ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "db5.3", + "sourceVersion" : "5.3.28+dfsg1-0.8ubuntu3" + }, + { + "name" : "cloud-guest-utils", + "version" : "0.32-22-g45fe84a5-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-utils", + "sourceVersion" : "0.32-22-g45fe84a5-0ubuntu1" + }, + { + "name" : "libatm1", + "version" : "1:2.5.1-4build2", + "publisher" : "Ubuntu", + "sourceName" : "linux-atm", + "sourceVersion" : "1:2.5.1-4build2" + }, + { + "name" : "libext2fs2", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "python3-distro", + "version" : "1.7.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-distro", + "sourceVersion" : "1.7.0-1" + }, + { + "name" : "eject", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libacl1", + "version" : "2.3.1-1", + "publisher" : "Ubuntu", + "sourceName" : "acl", + "sourceVersion" : "2.3.1-1" + }, + { + "name" : "libnftables1", + "version" : "1.0.2-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "nftables", + "sourceVersion" : "1.0.2-1ubuntu2" + }, + { + "name" : "apt", + "version" : "2.4.5", + "publisher" : "Ubuntu", + "sourceVersion" : "2.4.5" + }, + { + "name" : "apport", + "version" : "2.20.11-0ubuntu82.1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.20.11-0ubuntu82.1" + }, + { + "name" : "kmod", + "version" : "29-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "29-1ubuntu1" + }, + { + "name" : "xkb-data", + "version" : "2.33-1", + "publisher" : "Ubuntu", + "sourceName" : "xkeyboard-config", + "sourceVersion" : "2.33-1" + }, + { + "name" : "python3-pyparsing", + "version" : "2.4.7-1", + "publisher" : "Ubuntu", + "sourceName" : "pyparsing", + "sourceVersion" : "2.4.7-1" + }, + { + "name" : "needrestart", + "version" : "3.5-5ubuntu2.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.5-5ubuntu2.1" + }, + { + "name" : "libcap2", + "version" : "1:2.44-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2.44-1build3" + }, + { + "name" : "perl-base", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "perl", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "rudder-agent", + "version" : "7.2.0~rc1-ubuntu22.4", + "publisher" : "Ubuntu", + "sourceVersion" : "7.2.0~rc1-ubuntu22.4" + }, + { + "name" : "libgcab-1.0-0", + "version" : "1.4-3build2", + "publisher" : "Ubuntu", + "sourceName" : "gcab", + "sourceVersion" : "1.4-3build2" + }, + { + "name" : "motd-news-config", + "version" : "12ubuntu4.1", + "publisher" : "Ubuntu", + "sourceName" : "base-files", + "sourceVersion" : "12ubuntu4.1" + }, + { + "name" : "libfdisk1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libxtables12", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "iptables", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "tmux", + "version" : "3.2a-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.2a-4build1" + }, + { + "name" : "gpgconf", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "iproute2", + "version" : "5.15.0-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "5.15.0-1ubuntu2" + }, + { + "name" : "gpg", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "python3-jeepney", + "version" : "0.7.1-3", + "publisher" : "Ubuntu", + "sourceName" : "jeepney", + "sourceVersion" : "0.7.1-3" + }, + { + "name" : "libpcre2-8-0", + "version" : "10.39-3build1", + "publisher" : "Ubuntu", + "sourceName" : "pcre2", + "sourceVersion" : "10.39-3build1" + }, + { + "name" : "uuid-runtime", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "openssh-server", + "version" : "1:8.9p1-3", + "publisher" : "Ubuntu", + "sourceName" : "openssh", + "sourceVersion" : "1:8.9p1-3" + }, + { + "name" : "ftp", + "version" : "20210827-4build1", + "publisher" : "Ubuntu", + "sourceName" : "tnftp", + "sourceVersion" : "20210827-4build1" + }, + { + "name" : "libestr0", + "version" : "0.1.10-2.1build3", + "publisher" : "Ubuntu", + "sourceName" : "libestr", + "sourceVersion" : "0.1.10-2.1build3" + }, + { + "name" : "python3-pexpect", + "version" : "4.8.0-2ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "pexpect", + "sourceVersion" : "4.8.0-2ubuntu1" + }, + { + "name" : "time", + "version" : "1.9-0.1build2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.9-0.1build2" + }, + { + "name" : "python3-netifaces", + "version" : "0.11.0-1build2", + "publisher" : "Ubuntu", + "sourceName" : "netifaces", + "sourceVersion" : "0.11.0-1build2" + }, + { + "name" : "libblockdev2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "rsyslog", + "version" : "8.2112.0-2ubuntu2.2", + "publisher" : "Ubuntu", + "sourceVersion" : "8.2112.0-2ubuntu2.2" + }, + { + "name" : "libblockdev-crypto2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "libkrb5support0", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "libxml-treepp-perl", + "version" : "0.43-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.43-1" + }, + { + "name" : "libnfnetlink0", + "version" : "1.0.1-3build3", + "publisher" : "Ubuntu", + "sourceName" : "libnfnetlink", + "sourceVersion" : "1.0.1-3build3" + }, + { + "name" : "iputils-tracepath", + "version" : "3:20211215-1", + "publisher" : "Ubuntu", + "sourceName" : "iputils", + "sourceVersion" : "3:20211215-1" + }, + { + "name" : "bsdextrautils", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libnss3", + "version" : "2:3.68.2-0ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "nss", + "sourceVersion" : "2:3.68.2-0ubuntu1.1" + }, + { + "name" : "libglib2.0-0", + "version" : "2.72.1-1", + "publisher" : "Ubuntu", + "sourceName" : "glib2.0", + "sourceVersion" : "2.72.1-1" + }, + { + "name" : "libgpg-error0", + "version" : "1.43-3", + "publisher" : "Ubuntu", + "sourceName" : "libgpg-error", + "sourceVersion" : "1.43-3" + }, + { + "name" : "python3-newt", + "version" : "0.52.21-5ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "newt", + "sourceVersion" : "0.52.21-5ubuntu2" + }, + { + "name" : "libpython3.10-minimal", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "less", + "version" : "590-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "590-1build1" + }, + { + "name" : "gawk", + "version" : "1:5.1.0-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1:5.1.0-1build3" + }, + { + "name" : "libc6", + "version" : "2.35-0ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "glibc", + "sourceVersion" : "2.35-0ubuntu3" + }, + { + "name" : "apt-transport-https", + "version" : "2.4.7", + "publisher" : "Ubuntu", + "sourceName" : "apt", + "sourceVersion" : "2.4.7" + }, + { + "name" : "liberror-perl", + "version" : "0.17029-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.17029-1" + }, + { + "name" : "libseccomp2", + "version" : "2.5.3-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "libseccomp", + "sourceVersion" : "2.5.3-2ubuntu2" + }, + { + "name" : "libmount1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "netcat-openbsd", + "version" : "1.218-4ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.218-4ubuntu1" + }, + { + "name" : "systemd-sysv", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "libblockdev-utils2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "git", + "version" : "1:2.34.1-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2.34.1-1ubuntu1.4" + }, + { + "name" : "busybox-static", + "version" : "1:1.30.1-7ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "busybox", + "sourceVersion" : "1:1.30.1-7ubuntu3" + }, + { + "name" : "usb-modeswitch-data", + "version" : "20191128-4", + "publisher" : "Ubuntu", + "sourceVersion" : "20191128-4" + }, + { + "name" : "libssl3", + "version" : "3.0.2-0ubuntu1.6", + "publisher" : "Ubuntu", + "sourceName" : "openssl", + "sourceVersion" : "3.0.2-0ubuntu1.6" + }, + { + "name" : "libblockdev-fs2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "libfwupd2", + "version" : "1.7.5-3", + "publisher" : "Ubuntu", + "sourceName" : "fwupd", + "sourceVersion" : "1.7.5-3" + }, + { + "name" : "file", + "version" : "1:5.41-3", + "publisher" : "Ubuntu", + "sourceVersion" : "1:5.41-3" + }, + { + "name" : "libuchardet0", + "version" : "0.0.7-1build2", + "publisher" : "Ubuntu", + "sourceName" : "uchardet", + "sourceVersion" : "0.0.7-1build2" + }, + { + "name" : "info", + "version" : "6.8-4build1", + "publisher" : "Ubuntu", + "sourceName" : "texinfo", + "sourceVersion" : "6.8-4build1" + }, + { + "name" : "vim-tiny", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "gcc-12-base", + "version" : "12-20220319-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gcc-12", + "sourceVersion" : "12-20220319-1ubuntu1" + }, + { + "name" : "libxmuu1", + "version" : "2:1.1.3-3", + "publisher" : "Ubuntu", + "sourceName" : "libxmu", + "sourceVersion" : "2:1.1.3-3" + }, + { + "name" : "python3-distupgrade", + "version" : "1:22.4.11", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-release-upgrader", + "sourceVersion" : "1:22.4.11" + }, + { + "name" : "python3-commandnotfound", + "version" : "22.4.0", + "publisher" : "Ubuntu", + "sourceName" : "command-not-found", + "sourceVersion" : "22.4.0" + }, + { + "name" : "grub-pc-bin", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "python3-minimal", + "version" : "3.10.4-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python3-defaults", + "sourceVersion" : "3.10.4-0ubuntu2" + }, + { + "name" : "patch", + "version" : "2.7.6-7build2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.7.6-7build2" + }, + { + "name" : "libsepol2", + "version" : "3.3-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libsepol", + "sourceVersion" : "3.3-1build1" + }, + { + "name" : "libinih1", + "version" : "53-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "libinih", + "sourceVersion" : "53-1ubuntu3" + }, + { + "name" : "udev", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "init", + "version" : "1.62", + "publisher" : "Ubuntu", + "sourceName" : "init-system-helpers", + "sourceVersion" : "1.62" + }, + { + "name" : "libtinfo6", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libefivar1", + "version" : "37-6ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "efivar", + "sourceVersion" : "37-6ubuntu2" + }, + { + "name" : "libpam-modules", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "libjson-c5", + "version" : "0.15-3~ubuntu1.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "json-c", + "sourceVersion" : "0.15-3~ubuntu1.22.4.1" + }, + { + "name" : "libsemanage-common", + "version" : "3.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libsemanage", + "sourceVersion" : "3.3-1build2" + }, + { + "name" : "libhogweed6", + "version" : "3.7.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "nettle", + "sourceVersion" : "3.7.3-1build2" + }, + { + "name" : "libjson-glib-1.0-0", + "version" : "1.6.6-1build1", + "publisher" : "Ubuntu", + "sourceName" : "json-glib", + "sourceVersion" : "1.6.6-1build1" + }, + { + "name" : "libbz2-1.0", + "version" : "1.0.8-5build1", + "publisher" : "Ubuntu", + "sourceName" : "bzip2", + "sourceVersion" : "1.0.8-5build1" + }, + { + "name" : "ldapscripts", + "version" : "2.0.8-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.0.8-1ubuntu2" + }, + { + "name" : "linux-image-5.15.0-41-generic", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux-signed", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "libkrb5-3", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "libpcap0.8", + "version" : "1.10.1-4build1", + "publisher" : "Ubuntu", + "sourceName" : "libpcap", + "sourceVersion" : "1.10.1-4build1" + }, + { + "name" : "grub-pc", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "mawk", + "version" : "1.3.4.20200120-3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.3.4.20200120-3" + }, + { + "name" : "libbpf0", + "version" : "1:0.5.0-1", + "publisher" : "Ubuntu", + "sourceName" : "libbpf (0.5.0-1)", + "sourceVersion" : "0.5.0-1" + }, + { + "name" : "libsqlite3-0", + "version" : "3.37.2-2", + "publisher" : "Ubuntu", + "sourceName" : "sqlite3", + "sourceVersion" : "3.37.2-2" + }, + { + "name" : "libgcc-s1", + "version" : "12-20220319-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gcc-12", + "sourceVersion" : "12-20220319-1ubuntu1" + }, + { + "name" : "libftdi1-2", + "version" : "1.5-5build3", + "publisher" : "Ubuntu", + "sourceName" : "libftdi1", + "sourceVersion" : "1.5-5build3" + }, + { + "name" : "libmbim-proxy", + "version" : "1.26.2-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libmbim", + "sourceVersion" : "1.26.2-1build1" + }, + { + "name" : "python3-update-manager", + "version" : "1:22.4.9", + "publisher" : "Ubuntu", + "sourceName" : "update-manager", + "sourceVersion" : "1:22.4.9" + }, + { + "name" : "python3-idna", + "version" : "3.3-1", + "publisher" : "Ubuntu", + "sourceName" : "python-idna", + "sourceVersion" : "3.3-1" + }, + { + "name" : "media-types", + "version" : "7.0.0", + "publisher" : "Ubuntu", + "sourceVersion" : "7.0.0" + }, + { + "name" : "libpopt0", + "version" : "1.18-3build1", + "publisher" : "Ubuntu", + "sourceName" : "popt", + "sourceVersion" : "1.18-3build1" + }, + { + "name" : "ubuntu-keyring", + "version" : "2021.3.26", + "publisher" : "Ubuntu", + "sourceVersion" : "2021.3.26" + }, + { + "name" : "libgpgme11", + "version" : "1.16.0-1.2ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "gpgme1.0", + "sourceVersion" : "1.16.0-1.2ubuntu4" + }, + { + "name" : "ufw", + "version" : "0.36.1-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.36.1-4build1" + }, + { + "name" : "python3-openssl", + "version" : "21.0.0-1", + "publisher" : "Ubuntu", + "sourceName" : "pyopenssl", + "sourceVersion" : "21.0.0-1" + }, + { + "name" : "python3-bcrypt", + "version" : "3.2.0-1build1", + "publisher" : "Ubuntu", + "sourceName" : "python-bcrypt", + "sourceVersion" : "3.2.0-1build1" + }, + { + "name" : "vim-runtime", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "libpipeline1", + "version" : "1.5.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libpipeline", + "sourceVersion" : "1.5.5-1" + }, + { + "name" : "libfreetype6", + "version" : "2.11.1+dfsg-1build1", + "publisher" : "Ubuntu", + "sourceName" : "freetype", + "sourceVersion" : "2.11.1+dfsg-1build1" + }, + { + "name" : "python3-automat", + "version" : "20.2.0-1", + "publisher" : "Ubuntu", + "sourceName" : "automat", + "sourceVersion" : "20.2.0-1" + }, + { + "name" : "finalrd", + "version" : "9build1", + "publisher" : "Ubuntu", + "sourceVersion" : "9build1" + }, + { + "name" : "jq", + "version" : "1.6-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.6-2.1ubuntu3" + }, + { + "name" : "libldap-2.5-0", + "version" : "2.5.13+dfsg-0ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "openldap", + "sourceVersion" : "2.5.13+dfsg-0ubuntu0.22.4.1" + }, + { + "name" : "cryptsetup-bin", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cryptsetup", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "sed", + "version" : "4.8-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.8-1ubuntu2" + }, + { + "name" : "libmnl0", + "version" : "1.0.4-3build2", + "publisher" : "Ubuntu", + "sourceName" : "libmnl", + "sourceVersion" : "1.0.4-3build2" + }, + { + "name" : "libisns0", + "version" : "0.101-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "open-isns", + "sourceVersion" : "0.101-0ubuntu2" + }, + { + "name" : "libmaxminddb0", + "version" : "1.5.2-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libmaxminddb", + "sourceVersion" : "1.5.2-1build2" + }, + { + "name" : "libapt-pkg6.0", + "version" : "2.4.5", + "publisher" : "Ubuntu", + "sourceName" : "apt", + "sourceVersion" : "2.4.5" + }, + { + "name" : "fwupd-signed", + "version" : "1.44+1.2-3", + "publisher" : "Ubuntu", + "sourceName" : "fwupd-signed (1.44)", + "sourceVersion" : "1.44" + }, + { + "name" : "hostname", + "version" : "3.23ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "3.23ubuntu2" + }, + { + "name" : "libsodium23", + "version" : "1.0.18-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libsodium", + "sourceVersion" : "1.0.18-1build2" + }, + { + "name" : "gpgv", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "python3.10", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "man-db", + "version" : "2.10.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.10.2-1" + }, + { + "name" : "libmm-glib0", + "version" : "1.18.6-1", + "publisher" : "Ubuntu", + "sourceName" : "modemmanager", + "sourceVersion" : "1.18.6-1" + }, + { + "name" : "update-manager-core", + "version" : "1:22.4.9", + "publisher" : "Ubuntu", + "sourceName" : "update-manager", + "sourceVersion" : "1:22.4.9" + }, + { + "name" : "python3-launchpadlib", + "version" : "1.10.16-1", + "publisher" : "Ubuntu", + "sourceName" : "python-launchpadlib", + "sourceVersion" : "1.10.16-1" + }, + { + "name" : "fwupd", + "version" : "1.7.5-3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7.5-3" + }, + { + "name" : "sharutils", + "version" : "1:4.15.2-5build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:4.15.2-5build1" + }, + { + "name" : "python3-jwt", + "version" : "2.3.0-1", + "publisher" : "Ubuntu", + "sourceName" : "pyjwt", + "sourceVersion" : "2.3.0-1" + }, + { + "name" : "libproc-processtable-perl", + "version" : "0.634-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.634-1build1" + }, + { + "name" : "python3-twisted", + "version" : "22.1.0-2ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "twisted", + "sourceVersion" : "22.1.0-2ubuntu2.1" + }, + { + "name" : "libpcre3", + "version" : "2:8.39-13ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "pcre3", + "sourceVersion" : "2:8.39-13ubuntu0.22.4.1" + }, + { + "name" : "libmpdec3", + "version" : "2.5.1-2build2", + "publisher" : "Ubuntu", + "sourceName" : "mpdecimal", + "sourceVersion" : "2.5.1-2build2" + }, + { + "name" : "libgstreamer1.0-0", + "version" : "1.20.1-1", + "publisher" : "Ubuntu", + "sourceName" : "gstreamer1.0", + "sourceVersion" : "1.20.1-1" + }, + { + "name" : "linux-modules-5.15.0-41-generic", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "libdns-export1110", + "version" : "1:9.11.19+dfsg-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "bind9-libs", + "sourceVersion" : "1:9.11.19+dfsg-2.1ubuntu3" + }, + { + "name" : "fonts-ubuntu-console", + "version" : "0.83-6ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "fonts-ubuntu", + "sourceVersion" : "0.83-6ubuntu1" + }, + { + "name" : "gpg-agent", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libpolkit-agent-1-0", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "libmspack0", + "version" : "0.10.1-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libmspack", + "sourceVersion" : "0.10.1-2build2" + }, + { + "name" : "cloud-initramfs-copymods", + "version" : "0.47ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-initramfs-tools", + "sourceVersion" : "0.47ubuntu1" + }, + { + "name" : "python3-hyperlink", + "version" : "21.0.0-3", + "publisher" : "Ubuntu", + "sourceName" : "hyperlink", + "sourceVersion" : "21.0.0-3" + }, + { + "name" : "iso-codes", + "version" : "4.9.0-1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.9.0-1" + }, + { + "name" : "kpartx", + "version" : "0.8.8-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "multipath-tools", + "sourceVersion" : "0.8.8-1ubuntu1" + }, + { + "name" : "tar", + "version" : "1.34+dfsg-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.34+dfsg-1build3" + }, + { + "name" : "openssh-client", + "version" : "1:8.9p1-3", + "publisher" : "Ubuntu", + "sourceName" : "openssh", + "sourceVersion" : "1:8.9p1-3" + }, + { + "name" : "pci.ids", + "version" : "0.0~2022.1.22-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.0~2022.1.22-1" + }, + { + "name" : "python3-lib2to3", + "version" : "3.10.4-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python3-stdlib-extensions", + "sourceVersion" : "3.10.4-0ubuntu1" + }, + { + "name" : "libtirpc3", + "version" : "1.3.2-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libtirpc", + "sourceVersion" : "1.3.2-2build1" + }, + { + "name" : "python3-software-properties", + "version" : "0.99.22.2", + "publisher" : "Ubuntu", + "sourceName" : "software-properties", + "sourceVersion" : "0.99.22.2" + }, + { + "name" : "libsemanage2", + "version" : "3.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libsemanage", + "sourceVersion" : "3.3-1build2" + }, + { + "name" : "python3-service-identity", + "version" : "18.1.0-6", + "publisher" : "Ubuntu", + "sourceName" : "python-service-identity", + "sourceVersion" : "18.1.0-6" + }, + { + "name" : "sensible-utils", + "version" : "0.0.17", + "publisher" : "Ubuntu", + "sourceVersion" : "0.0.17" + }, + { + "name" : "login", + "version" : "1:4.8.1-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "shadow", + "sourceVersion" : "1:4.8.1-2ubuntu2" + }, + { + "name" : "gdisk", + "version" : "1.0.8-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.0.8-4build1" + }, + { + "name" : "lsof", + "version" : "4.93.2+dfsg-1.1build2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.93.2+dfsg-1.1build2" + }, + { + "name" : "open-vm-tools", + "version" : "2:11.3.5-1ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "2:11.3.5-1ubuntu4" + }, + { + "name" : "libjansson4", + "version" : "2.13.1-1.1build3", + "publisher" : "Ubuntu", + "sourceName" : "jansson", + "sourceVersion" : "2.13.1-1.1build3" + }, + { + "name" : "ubuntu-release-upgrader-core", + "version" : "1:22.4.11", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-release-upgrader", + "sourceVersion" : "1:22.4.11" + }, + { + "name" : "passwd", + "version" : "1:4.8.1-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "shadow", + "sourceVersion" : "1:4.8.1-2ubuntu2" + }, + { + "name" : "libnss-systemd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "util-linux", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libarchive13", + "version" : "3.6.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libarchive", + "sourceVersion" : "3.6.0-1ubuntu1" + }, + { + "name" : "gnupg", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "lshw", + "version" : "2.19.git.2021.6.19.996aaad9c7-2build1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.19.git.2021.6.19.996aaad9c7-2build1" + }, + { + "name" : "diffutils", + "version" : "1:3.8-0ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1:3.8-0ubuntu2" + }, + { + "name" : "libcurl4", + "version" : "7.81.0-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceName" : "curl", + "sourceVersion" : "7.81.0-1ubuntu1.4" + }, + { + "name" : "publicsuffix", + "version" : "20211207.1025-1", + "publisher" : "Ubuntu", + "sourceVersion" : "20211207.1025-1" + }, + { + "name" : "os-prober", + "version" : "1.79ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.79ubuntu2" + }, + { + "name" : "libpng16-16", + "version" : "1.6.37-3build5", + "publisher" : "Ubuntu", + "sourceName" : "libpng1.6", + "sourceVersion" : "1.6.37-3build5" + }, + { + "name" : "friendly-recovery", + "version" : "0.2.42", + "publisher" : "Ubuntu", + "sourceVersion" : "0.2.42" + }, + { + "name" : "telnet", + "version" : "0.17-44build1", + "publisher" : "Ubuntu", + "sourceName" : "netkit-telnet", + "sourceVersion" : "0.17-44build1" + }, + { + "name" : "bash-completion", + "version" : "1:2.11-5ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2.11-5ubuntu1" + }, + { + "name" : "libncursesw6", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "python3-systemd", + "version" : "234-3ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-systemd", + "sourceVersion" : "234-3ubuntu2" + }, + { + "name" : "groff-base", + "version" : "1.22.4-8build1", + "publisher" : "Ubuntu", + "sourceName" : "groff", + "sourceVersion" : "1.22.4-8build1" + }, + { + "name" : "libx11-6", + "version" : "2:1.7.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libx11", + "sourceVersion" : "2:1.7.5-1" + }, + { + "name" : "mdadm", + "version" : "4.2-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.2-0ubuntu1" + }, + { + "name" : "bind9-host", + "version" : "1:9.18.1-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "bind9", + "sourceVersion" : "1:9.18.1-1ubuntu1.1" + }, + { + "name" : "libblockdev-part2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "bash", + "version" : "5.1-6ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.1-6ubuntu1" + }, + { + "name" : "whiptail", + "version" : "0.52.21-5ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "newt", + "sourceVersion" : "0.52.21-5ubuntu2" + }, + { + "name" : "libtss2-tcti-mssim0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "dosfstools", + "version" : "4.2-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "4.2-1build3" + }, + { + "name" : "libudev1", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "python3", + "version" : "3.10.4-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python3-defaults", + "sourceVersion" : "3.10.4-0ubuntu2" + }, + { + "name" : "perl", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "libappstream4", + "version" : "0.15.2-2", + "publisher" : "Ubuntu", + "sourceName" : "appstream", + "sourceVersion" : "0.15.2-2" + }, + { + "name" : "libnghttp2-14", + "version" : "1.43.0-1build3", + "publisher" : "Ubuntu", + "sourceName" : "nghttp2", + "sourceVersion" : "1.43.0-1build3" + }, + { + "name" : "networkd-dispatcher", + "version" : "2.1-2ubuntu0.22.4.2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.1-2ubuntu0.22.4.2" + }, + { + "name" : "libusb-1.0-0", + "version" : "2:1.0.25-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "libusb-1.0", + "sourceVersion" : "2:1.0.25-1ubuntu2" + }, + { + "name" : "netplan.io", + "version" : "0.104-0ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "0.104-0ubuntu2" + }, + { + "name" : "ntfs-3g", + "version" : "1:2021.8.22-3ubuntu1.1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2021.8.22-3ubuntu1.1" + }, + { + "name" : "ncurses-base", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libpci3", + "version" : "1:3.7.0-6", + "publisher" : "Ubuntu", + "sourceName" : "pciutils", + "sourceVersion" : "1:3.7.0-6" + }, + { + "name" : "python3-jsonpatch", + "version" : "1.32-2", + "publisher" : "Ubuntu", + "sourceName" : "python-json-patch", + "sourceVersion" : "1.32-2" + }, + { + "name" : "libtss2-tcti-cmd0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "libss2", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "readline-common", + "version" : "8.1.2-1", + "publisher" : "Ubuntu", + "sourceName" : "readline", + "sourceVersion" : "8.1.2-1" + }, + { + "name" : "libncurses6", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libk5crypto3", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "python3-cffi-backend", + "version" : "1.15.0-1build2", + "publisher" : "Ubuntu", + "sourceName" : "python-cffi", + "sourceVersion" : "1.15.0-1build2" + }, + { + "name" : "python3-incremental", + "version" : "21.3.0-1", + "publisher" : "Ubuntu", + "sourceName" : "incremental", + "sourceVersion" : "21.3.0-1" + }, + { + "name" : "libatasmart4", + "version" : "0.19-5build2", + "publisher" : "Ubuntu", + "sourceName" : "libatasmart", + "sourceVersion" : "0.19-5build2" + }, + { + "name" : "git-man", + "version" : "1:2.34.1-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceName" : "git", + "sourceVersion" : "1:2.34.1-1ubuntu1.4" + }, + { + "name" : "libuuid1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libidn2-0", + "version" : "2.3.2-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libidn2", + "sourceVersion" : "2.3.2-2build1" + }, + { + "name" : "python3-attr", + "version" : "21.2.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-attrs", + "sourceVersion" : "21.2.0-1" + }, + { + "name" : "vim-common", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "bind9-libs", + "version" : "1:9.18.1-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "bind9", + "sourceVersion" : "1:9.18.1-1ubuntu1.1" + }, + { + "name" : "findutils", + "version" : "4.8.0-1ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "4.8.0-1ubuntu3" + }, + { + "name" : "sbsigntool", + "version" : "0.9.4-2ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.4-2ubuntu2" + }, + { + "name" : "usbutils", + "version" : "1:14-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:14-1build1" + }, + { + "name" : "libblockdev-part-err2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "libtext-iconv-perl", + "version" : "1.7-7build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7-7build3" + }, + { + "name" : "libsmbios-c2", + "version" : "2.4.3-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libsmbios", + "sourceVersion" : "2.4.3-1build1" + }, + { + "name" : "python3-apport", + "version" : "2.20.11-0ubuntu82.1", + "publisher" : "Ubuntu", + "sourceName" : "apport", + "sourceVersion" : "2.20.11-0ubuntu82.1" + }, + { + "name" : "lxd-agent-loader", + "version" : "0.5", + "publisher" : "Ubuntu", + "sourceVersion" : "0.5" + }, + { + "name" : "nano", + "version" : "6.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "6.2-1" + }, + { + "name" : "console-setup-linux", + "version" : "1.205ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "console-setup", + "sourceVersion" : "1.205ubuntu3" + }, + { + "name" : "gettext-base", + "version" : "0.21-4ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "gettext", + "sourceVersion" : "0.21-4ubuntu4" + }, + { + "name" : "libpolkit-gobject-1-0", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "python3-httplib2", + "version" : "0.20.2-2", + "publisher" : "Ubuntu", + "sourceName" : "python-httplib2", + "sourceVersion" : "0.20.2-2" + }, + { + "name" : "initramfs-tools-core", + "version" : "0.140ubuntu13", + "publisher" : "Ubuntu", + "sourceName" : "initramfs-tools", + "sourceVersion" : "0.140ubuntu13" + }, + { + "name" : "libdebconfclient0", + "version" : "0.261ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cdebconf", + "sourceVersion" : "0.261ubuntu1" + }, + { + "name" : "gir1.2-packagekitglib-1.0", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "packagekit", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "libbsd0", + "version" : "0.11.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libbsd", + "sourceVersion" : "0.11.5-1" + }, + { + "name" : "libunwind8", + "version" : "1.3.2-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libunwind", + "sourceVersion" : "1.3.2-2build2" + }, + { + "name" : "python3-blinker", + "version" : "1.4+dfsg1-0.4", + "publisher" : "Ubuntu", + "sourceName" : "blinker", + "sourceVersion" : "1.4+dfsg1-0.4" + }, + { + "name" : "libc-bin", + "version" : "2.35-0ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "glibc", + "sourceVersion" : "2.35-0ubuntu3" + }, + { + "name" : "ncurses-bin", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libcap2-bin", + "version" : "1:2.44-1build3", + "publisher" : "Ubuntu", + "sourceName" : "libcap2", + "sourceVersion" : "1:2.44-1build3" + }, + { + "name" : "gnupg-l10n", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libeatmydata1", + "version" : "130-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libeatmydata", + "sourceVersion" : "130-2build1" + }, + { + "name" : "libxdmcp6", + "version" : "1:1.1.3-0ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "libxdmcp", + "sourceVersion" : "1:1.1.3-0ubuntu5" + }, + { + "name" : "libutempter0", + "version" : "1.2.1-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libutempter", + "sourceVersion" : "1.2.1-2build2" + }, + { + "name" : "python3-constantly", + "version" : "15.1.0-2", + "publisher" : "Ubuntu", + "sourceName" : "constantly", + "sourceVersion" : "15.1.0-2" + }, + { + "name" : "libbinutils", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "libstdc++6", + "version" : "12-20220319-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gcc-12", + "sourceVersion" : "12-20220319-1ubuntu1" + }, + { + "name" : "btrfs-progs", + "version" : "5.16.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.16.2-1" + }, + { + "name" : "python3-pyasn1-modules", + "version" : "0.2.1-1", + "publisher" : "Ubuntu", + "sourceName" : "python-pyasn1-modules", + "sourceVersion" : "0.2.1-1" + }, + { + "name" : "python3-six", + "version" : "1.16.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "six", + "sourceVersion" : "1.16.0-3ubuntu1" + }, + { + "name" : "libmpfr6", + "version" : "4.1.0-3build3", + "publisher" : "Ubuntu", + "sourceName" : "mpfr4", + "sourceVersion" : "4.1.0-3build3" + }, + { + "name" : "libtss2-mu0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "run-one", + "version" : "1.17-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.17-0ubuntu1" + }, + { + "name" : "python3-distro-info", + "version" : "1.1build1", + "publisher" : "Ubuntu", + "sourceName" : "distro-info", + "sourceVersion" : "1.1build1" + }, + { + "name" : "libdevmapper1.02.1", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "python3-cryptography", + "version" : "3.4.8-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-cryptography", + "sourceVersion" : "3.4.8-1ubuntu2" + }, + { + "name" : "libmagic1", + "version" : "1:5.41-3", + "publisher" : "Ubuntu", + "sourceName" : "file", + "sourceVersion" : "1:5.41-3" + }, + { + "name" : "zsh", + "version" : "5.8.1-1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.8.1-1" + }, + { + "name" : "tnftp", + "version" : "20210827-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "20210827-4build1" + }, + { + "name" : "libsystemd0", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "python3-tz", + "version" : "2022.1-1", + "publisher" : "Ubuntu", + "sourceName" : "python-tz", + "sourceVersion" : "2022.1-1" + }, + { + "name" : "libgdbm-compat4", + "version" : "1.23-1", + "publisher" : "Ubuntu", + "sourceName" : "gdbm", + "sourceVersion" : "1.23-1" + }, + { + "name" : "libyaml-0-2", + "version" : "0.2.2-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libyaml", + "sourceVersion" : "0.2.2-1build2" + } + ], + "softwareUpdate" : [ + { + "name" : "snapd", + "version" : "2.56.2+22.04ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-software-properties", + "version" : "0.99.22.3", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "software-properties-common", + "version" : "0.99.22.3", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libldap-common", + "version" : "2.5.13+dfsg-0ubuntu0.22.04.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libgstreamer1.0-0", + "version" : "1.20.3-0ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup-bin", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup-initramfs", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-distupgrade", + "version" : "1:22.04.13", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "ubuntu-release-upgrader-core", + "version" : "1:22.04.13", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libnftables1", + "version" : "1.0.2-1ubuntu3", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "nftables", + "version" : "1.0.2-1ubuntu3", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "ubuntu-advantage-tools", + "version" : "27.10.1~22.04.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-gi", + "version" : "3.42.1-0ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-apt", + "version" : "2.3.0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python-apt-common", + "version" : "2.3.0ubuntu2.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "locales", + "version" : "2.35-0ubuntu3.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libnetplan0", + "version" : "0.104-0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "netplan.io", + "version" : "0.104-0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libcryptsetup12", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "isc-dhcp-common", + "version" : "4.4.1-2.3ubuntu2.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "isc-dhcp-client", + "version" : "4.4.1-2.3ubuntu2.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "apt-utils", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "apt", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libapt-pkg6.0", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libc-bin", + "version" : "2.35-0ubuntu3.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "base-files", + "version" : "12ubuntu4.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libc6", + "version" : "2.35-0ubuntu3.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "motd-news-config", + "version" : "12ubuntu4.2", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + } + ], + "sounds" : [ + { + "name" : "Multimedia audio controller - Intel Corporation 82801AA AC'97 Audio Controller", + "description" : "rev 01", + "quantity" : 1 + } + ], + "storages" : [ + { + "name" : "sda", + "description" : "SCSI", + "size" : 45035290624, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "serialNumber" : "a23d4170", + "sType" : "disk", + "quantity" : 1 + }, + { + "name" : "sdb", + "description" : "SCSI", + "size" : 10485760, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "sType" : "disk", + "quantity" : 1 + } + ], + "videos" : [], + "vms" : [] +} diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software-no-update-no-process.json_ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software-no-update-no-process.json_ new file mode 100644 index 00000000000..2cbc54de74a --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software-no-update-no-process.json_ @@ -0,0 +1,340 @@ +{ + "id" : "2d3a43bc-8508-46a2-92d7-cfe7320309a5", + "hostname" : "no-software-no-update", + "os" : { + "type" : "Linux", + "name" : "Ubuntu", + "version" : "22.04", + "fullName" : "Ubuntu 22.04 LTS", + "kernelVersion" : "5.15.0-41-generic" + }, + "rudderSettings" : { + "keyStatus" : "certified", + "reportingConfiguration" : { + + }, + "kind" : "node", + "status" : "pending", + "state" : "enabled", + "policyMode" : "default", + "policyServerId" : "root" + }, + "rudderAgent" : { + "type" : "cfengine-community", + "user" : "root", + "version" : "7.2.0~rc1-ubuntu22.04", + "securityToken" : { + "kind" : "certificate", + "token" : "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIULhYaqmQZGDMab0FnySgkA3tCWpgwDQYJKoZIhvcNAQEL\nBQAwNjE0MDIGCgmSJomT8ixkAQEMJDRkM2E0M2JjLTg1MDgtNDZhMi05MmQ3LWNm\nZTczMjAzMDlhNTAeFw0yMjA5MDcwODUyNDdaFw0zMjA5MDQwODUyNDdaMDYxNDAy\nBgoJkiaJk/IsZAEBDCQ0ZDNhNDNiYy04NTA4LTQ2YTItOTJkNy1jZmU3MzIwMzA5\nYTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD7/K+BfMAT4pwJf03\nHH9nTBXdDyibg4wbSy0zjiUrQ2Ri5tiwCsfUQtpkeHl3a643FBmHKE2oDvKOvFFV\nrBJWqtJBydVMwhBlDuDXR0WV9fPyIizIcAX/LBt1yPRSrtBkWQZ2IAN/lCADmtEe\ngkVyLiVcp/msMAdwm0QkDvB1o+g3USq0DFbwkQyopvTsYfGgcW/Rn9ifCyxq2rKe\nF+zbUIF7AK5dPjXyDFEEo80WUAZEkn3hQrEKYOCXkEiRLI6+KCArnv9jRop92dCg\nTjGIoMLtAQYb+txytf8/4oQDpCdEENvRJqQ2SVB1K1dtvLPXe7jQ2vK9/chtmFut\ndirZCOBRtbRV0eAZ7te4K0RC5L0R2EI7uowmhE5a8xwmWGH1U7BMVKR9B76iPdR3\nK9fXiPRUEBvs2N/06OBviY18VSR5k4sp9sEifAq3kgP/kvVKTA1dNavoB1gDH8KS\n+0Nnp9nA+AxMLyU5PFFvwSfgYZjp+sbDlFPrOgryVK0BLfGNdm27xftKW8yyzNPM\nbRirrnIngvh8wPHjDxC02/SJ7Pikx0ffOV09ee+Ik4dTbqj+bHy/z8rp0aAtLbZV\nNIGqvzCaByWWJhmYZ3FFwHo3LXUeonljQOYVl8kSEQkcE8b5X657fG3RTrLUE6DK\nobsJcr7JUwijGcB+tADQ+gngtQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYD\nVR0OBBYEFChVcwIhgIr5vgRy8T8ol3MktitiMHEGA1UdIwRqMGiAFChVcwIhgIr5\nvgRy8T8ol3MktitioTqkODA2MTQwMgYKCZImiZPyLGQBAQwkNGQzYTQzYmMtODUw\nOC00NmEyLTkyZDctY2ZlNzMyMDMwOWE1ghQuFhqqZBkYMxpvQWfJKCQDe0JamDAL\nBgNVHQ8EBAMCArwwDQYJKoZIhvcNAQELBQADggIBAEzLJFdRib1gHQ3ZFU6YCeEX\nUYd8DBRAnPUdjSi/6+Qz9KhQdo5F+vngAdqWFggL2lv1yaahLKTYSdxibBpzX9ee\nH8mP+Gxt0su0xoAtuwkzvfg3G6BTtAXorVgsEfya3re3eShOuvXprzqi7Xsnbv9a\nUzJX4FCJJAXA+Qd/frzpw33cSa8M4SHn7xTo3c9ZgOs1zJ4BepFz/2MpKYY9RSfU\nDpeksnS+ij1BUcrScitwCVvmh0nFXIMWcnUREqxkRAPY1ln1ExAaSmYA0SKsUhoJ\nGx08WfzprwunlzZCA91gmNW+1WjMFr9Nonp6SlMXH0ZrBm+K+zNm6+aAnZdN2ttG\nPmmqotUbbCG737HY8VxE27rgZ8SYidprqvuPtz4WaQPg+4JPeCzOqLWfcX3nfmJM\nkO7nfL0DCqDaZgW+O3FCSFfXnb8TQnMgJZlnakI/w+mzx26YkxtZ2xgWi7yLyBk6\nJDeC5KwgyP+nJpgSOIwGNf4ZaOEYtg3DeFjXmFi5N4Vtq98819cTp3QL+RZG4cVs\nDwFR0T3KjB6QWcvSB2QpQUvdOITtUsACP/zk73y7RwZVQT0DHVWVw6eHhGH6LpKI\nY8skyhHnHUjG1A9eOvk4ZQGPedL9cG0af7TzmaUwFg5fGN594lv79o7iGT1srNBp\n2A/Eff5z/oWypwrLbjiI\n-----END CERTIFICATE-----" + }, + "capabilities" : [ + "jq", + "yaml", + "cfengine", + "curl", + "acl", + "xml", + "http_reporting" + ] + }, + "properties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local", + "provider" : "inventory" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override", + "provider" : "inventory" + } + ], + "lastInventoryDate" : "2022-09-07T17:56:55Z", + "inventoryReceivedDate" : "2022-09-07T17:56:55Z", + "ipAddresses" : [ + "192.168.32.4", + "0:0:0:0:0:0:0:1", + "127.0.0.1", + "fe80:0:0:0:a00:27ff:fe94:72e8", + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "timezone" : { + "name" : "UTC", + "offset" : "+0000" + }, + "machine" : { + "id" : "a9445c97-2640-5736-961f-514e9a34940a", + "provider" : "vbox", + "systemSerial" : "28eba2ed-b589-ec45-bae4-d33155c8288d", + "manufacturer" : "innotek GmbH" + }, + "ram" : 489684992, + "archDescription" : "x86_64", + "accounts" : [ + "_apt", + "backup", + "bin", + "daemon", + "games", + "gnats", + "irc", + "landscape", + "list", + "lp", + "lxd", + "mail", + "man", + "messagebus", + "news", + "nobody", + "pollinate", + "proxy", + "root", + "sshd", + "sync", + "sys", + "syslog", + "systemd-network", + "systemd-resolve", + "systemd-timesync", + "tcpdump", + "tss", + "ubuntu", + "uucp", + "uuidd", + "vagrant", + "www-data" + ], + "bios" : [ + { + "name" : "VirtualBox", + "version" : "VirtualBox", + "editor" : "innotek GmbH", + "releaseDate" : "2006-11-30T23:00:00Z", + "quantity" : 1 + } + ], + "controllers" : [ + { + "name" : "440FX - 82441FX PMC [Natoma]", + "manufacturer" : "Intel Corporation", + "cType" : "Host bridge", + "quantity" : 1 + }, + { + "name" : "53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI", + "manufacturer" : "LSI Logic / Symbios Logic", + "cType" : "SCSI storage controller", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 ACPI", + "manufacturer" : "Intel Corporation", + "cType" : "Bridge", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 IDE", + "manufacturer" : "Intel Corporation", + "cType" : "IDE interface", + "quantity" : 1 + }, + { + "name" : "82371SB PIIX3 ISA [Natoma/Triton II]", + "manufacturer" : "Intel Corporation", + "cType" : "ISA bridge", + "quantity" : 1 + }, + { + "name" : "82540EM Gigabit Ethernet Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Ethernet controller", + "quantity" : 2 + }, + { + "name" : "82801AA AC'97 Audio Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Multimedia audio controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Graphics Adapter", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "VGA compatible controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Guest Service", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "System peripheral", + "quantity" : 1 + } + ], + "customProperties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override" + } + ], + "environmentVariables" : [ + ["BASEDIR", "/opt/rudder/share/commands"], + ["DEBIAN_FRONTEND", "noninteractive"], + ["HOME", "/root"], + ["LESSCLOSE", "/usr/bin/lesspipe %s %s"], + ["LESSOPEN", "| /usr/bin/lesspipe %s"], + ["LOGNAME", "root"], + ["LS_COLORS", "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"], + ["MAIL", "/var/mail/root"], + ["PATH", "/opt/rudder/bin:/usr/gnu/bin:/opt/rudder/bin:/usr/gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/usr/sbin:/sbin:/usr/sbin"], + ["PWD", "/var/rudder"], + ["RUDDER_BIN", "/usr/bin/rudder"], + ["SHELL", "/bin/bash"], + ["SHLVL", "1"], + ["SUDO_COMMAND", "/usr/bin/su"], + ["SUDO_GID", "1000"], + ["SUDO_UID", "1000"], + ["SUDO_USER", "vagrant"], + ["TERM", "xterm"], + ["USER", "root"], + ["_", "/usr/bin/rudder"] + ], + "fileSystems" : [ + { + "mountPoint" : "/", + "name" : "ext4", + "freeSpace" : 39669727232, + "totalSpace" : 41555066880 + }, + { + "mountPoint" : "/vagrant", + "name" : "vboxsf", + "freeSpace" : 91722088448, + "totalSpace" : 397236240384 + } + ], + "inputs" : [], + "localGroups" : [], + "localUsers" : [], + "logicalVolumes" : [], + "memories" : [], + "networks" : [ + { + "name" : "enp0s3", + "ifAddresses" : [ + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "ifGateway" : [ + "10.0.2.2" + ], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "10.0.2.0" + ], + "macAddress" : "02:e5:1b:70:f4:63", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "enp0s8", + "ifAddresses" : [ + "fe80:0:0:0:a00:27ff:fe94:72e8", + "192.168.32.4" + ], + "ifGateway" : [], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "192.168.32.0" + ], + "macAddress" : "08:00:27:94:72:e8", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "lo", + "ifAddresses" : [ + "0:0:0:0:0:0:0:1", + "127.0.0.1" + ], + "ifGateway" : [], + "ifMask" : [ + "fff0:0:0:0:0:0:0:0", + "255.0.0.0" + ], + "ifSubnet" : [ + "0:0:0:0:0:0:0:0", + "127.0.0.0" + ], + "macAddress" : "00:00:00:00:00:00", + "status" : "Up", + "ifType" : "loopback" + } + ], + "physicalVolumes" : [], + "ports" : [], + "processes" : [], + "processors" : [ + { + "manufacturer" : "Intel", + "name" : "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz", + "arch" : "i386", + "speed" : 2800, + "core" : 1, + "thread" : 1, + "stepping" : 9, + "family" : 6, + "model" : 158, + "quantity" : 1 + } + ], + "slots" : [], + "software" : [], + "softwareUpdate" : [], + "sounds" : [ + { + "name" : "Multimedia audio controller - Intel Corporation 82801AA AC'97 Audio Controller", + "description" : "rev 01", + "quantity" : 1 + } + ], + "storages" : [ + { + "name" : "sda", + "description" : "SCSI", + "size" : 45035290624, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "serialNumber" : "a23d4170", + "sType" : "disk", + "quantity" : 1 + }, + { + "name" : "sdb", + "description" : "SCSI", + "size" : 10485760, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "sType" : "disk", + "quantity" : 1 + } + ], + "videos" : [], + "vms" : [] +} diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software-no-update.json_ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software-no-update.json_ new file mode 100644 index 00000000000..abd68618635 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software-no-update.json_ @@ -0,0 +1,1571 @@ +{ + "id" : "2d3a43bc-8508-46a2-92d7-cfe7320309a5", + "hostname" : "no-software-no-update", + "os" : { + "type" : "Linux", + "name" : "Ubuntu", + "version" : "22.04", + "fullName" : "Ubuntu 22.04 LTS", + "kernelVersion" : "5.15.0-41-generic" + }, + "rudderSettings" : { + "keyStatus" : "certified", + "reportingConfiguration" : { + + }, + "kind" : "node", + "status" : "pending", + "state" : "enabled", + "policyMode" : "default", + "policyServerId" : "root" + }, + "rudderAgent" : { + "type" : "cfengine-community", + "user" : "root", + "version" : "7.2.0~rc1-ubuntu22.04", + "securityToken" : { + "kind" : "certificate", + "token" : "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIULhYaqmQZGDMab0FnySgkA3tCWpgwDQYJKoZIhvcNAQEL\nBQAwNjE0MDIGCgmSJomT8ixkAQEMJDRkM2E0M2JjLTg1MDgtNDZhMi05MmQ3LWNm\nZTczMjAzMDlhNTAeFw0yMjA5MDcwODUyNDdaFw0zMjA5MDQwODUyNDdaMDYxNDAy\nBgoJkiaJk/IsZAEBDCQ0ZDNhNDNiYy04NTA4LTQ2YTItOTJkNy1jZmU3MzIwMzA5\nYTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD7/K+BfMAT4pwJf03\nHH9nTBXdDyibg4wbSy0zjiUrQ2Ri5tiwCsfUQtpkeHl3a643FBmHKE2oDvKOvFFV\nrBJWqtJBydVMwhBlDuDXR0WV9fPyIizIcAX/LBt1yPRSrtBkWQZ2IAN/lCADmtEe\ngkVyLiVcp/msMAdwm0QkDvB1o+g3USq0DFbwkQyopvTsYfGgcW/Rn9ifCyxq2rKe\nF+zbUIF7AK5dPjXyDFEEo80WUAZEkn3hQrEKYOCXkEiRLI6+KCArnv9jRop92dCg\nTjGIoMLtAQYb+txytf8/4oQDpCdEENvRJqQ2SVB1K1dtvLPXe7jQ2vK9/chtmFut\ndirZCOBRtbRV0eAZ7te4K0RC5L0R2EI7uowmhE5a8xwmWGH1U7BMVKR9B76iPdR3\nK9fXiPRUEBvs2N/06OBviY18VSR5k4sp9sEifAq3kgP/kvVKTA1dNavoB1gDH8KS\n+0Nnp9nA+AxMLyU5PFFvwSfgYZjp+sbDlFPrOgryVK0BLfGNdm27xftKW8yyzNPM\nbRirrnIngvh8wPHjDxC02/SJ7Pikx0ffOV09ee+Ik4dTbqj+bHy/z8rp0aAtLbZV\nNIGqvzCaByWWJhmYZ3FFwHo3LXUeonljQOYVl8kSEQkcE8b5X657fG3RTrLUE6DK\nobsJcr7JUwijGcB+tADQ+gngtQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYD\nVR0OBBYEFChVcwIhgIr5vgRy8T8ol3MktitiMHEGA1UdIwRqMGiAFChVcwIhgIr5\nvgRy8T8ol3MktitioTqkODA2MTQwMgYKCZImiZPyLGQBAQwkNGQzYTQzYmMtODUw\nOC00NmEyLTkyZDctY2ZlNzMyMDMwOWE1ghQuFhqqZBkYMxpvQWfJKCQDe0JamDAL\nBgNVHQ8EBAMCArwwDQYJKoZIhvcNAQELBQADggIBAEzLJFdRib1gHQ3ZFU6YCeEX\nUYd8DBRAnPUdjSi/6+Qz9KhQdo5F+vngAdqWFggL2lv1yaahLKTYSdxibBpzX9ee\nH8mP+Gxt0su0xoAtuwkzvfg3G6BTtAXorVgsEfya3re3eShOuvXprzqi7Xsnbv9a\nUzJX4FCJJAXA+Qd/frzpw33cSa8M4SHn7xTo3c9ZgOs1zJ4BepFz/2MpKYY9RSfU\nDpeksnS+ij1BUcrScitwCVvmh0nFXIMWcnUREqxkRAPY1ln1ExAaSmYA0SKsUhoJ\nGx08WfzprwunlzZCA91gmNW+1WjMFr9Nonp6SlMXH0ZrBm+K+zNm6+aAnZdN2ttG\nPmmqotUbbCG737HY8VxE27rgZ8SYidprqvuPtz4WaQPg+4JPeCzOqLWfcX3nfmJM\nkO7nfL0DCqDaZgW+O3FCSFfXnb8TQnMgJZlnakI/w+mzx26YkxtZ2xgWi7yLyBk6\nJDeC5KwgyP+nJpgSOIwGNf4ZaOEYtg3DeFjXmFi5N4Vtq98819cTp3QL+RZG4cVs\nDwFR0T3KjB6QWcvSB2QpQUvdOITtUsACP/zk73y7RwZVQT0DHVWVw6eHhGH6LpKI\nY8skyhHnHUjG1A9eOvk4ZQGPedL9cG0af7TzmaUwFg5fGN594lv79o7iGT1srNBp\n2A/Eff5z/oWypwrLbjiI\n-----END CERTIFICATE-----" + }, + "capabilities" : [ + "jq", + "yaml", + "cfengine", + "curl", + "acl", + "xml", + "http_reporting" + ] + }, + "properties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local", + "provider" : "inventory" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override", + "provider" : "inventory" + } + ], + "lastInventoryDate" : "2022-09-07T17:56:55Z", + "inventoryReceivedDate" : "2022-09-07T17:56:55Z", + "ipAddresses" : [ + "192.168.32.4", + "0:0:0:0:0:0:0:1", + "127.0.0.1", + "fe80:0:0:0:a00:27ff:fe94:72e8", + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "timezone" : { + "name" : "UTC", + "offset" : "+0000" + }, + "machine" : { + "id" : "a9445c97-2640-5736-961f-514e9a34940a", + "provider" : "vbox", + "systemSerial" : "28eba2ed-b589-ec45-bae4-d33155c8288d", + "manufacturer" : "innotek GmbH" + }, + "ram" : 489684992, + "archDescription" : "x86_64", + "accounts" : [ + "_apt", + "backup", + "bin", + "daemon", + "games", + "gnats", + "irc", + "landscape", + "list", + "lp", + "lxd", + "mail", + "man", + "messagebus", + "news", + "nobody", + "pollinate", + "proxy", + "root", + "sshd", + "sync", + "sys", + "syslog", + "systemd-network", + "systemd-resolve", + "systemd-timesync", + "tcpdump", + "tss", + "ubuntu", + "uucp", + "uuidd", + "vagrant", + "www-data" + ], + "bios" : [ + { + "name" : "VirtualBox", + "version" : "VirtualBox", + "editor" : "innotek GmbH", + "releaseDate" : "2006-11-30T23:00:00Z", + "quantity" : 1 + } + ], + "controllers" : [ + { + "name" : "440FX - 82441FX PMC [Natoma]", + "manufacturer" : "Intel Corporation", + "cType" : "Host bridge", + "quantity" : 1 + }, + { + "name" : "53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI", + "manufacturer" : "LSI Logic / Symbios Logic", + "cType" : "SCSI storage controller", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 ACPI", + "manufacturer" : "Intel Corporation", + "cType" : "Bridge", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 IDE", + "manufacturer" : "Intel Corporation", + "cType" : "IDE interface", + "quantity" : 1 + }, + { + "name" : "82371SB PIIX3 ISA [Natoma/Triton II]", + "manufacturer" : "Intel Corporation", + "cType" : "ISA bridge", + "quantity" : 1 + }, + { + "name" : "82540EM Gigabit Ethernet Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Ethernet controller", + "quantity" : 2 + }, + { + "name" : "82801AA AC'97 Audio Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Multimedia audio controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Graphics Adapter", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "VGA compatible controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Guest Service", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "System peripheral", + "quantity" : 1 + } + ], + "customProperties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override" + } + ], + "environmentVariables" : [ + ["BASEDIR", "/opt/rudder/share/commands"], + ["DEBIAN_FRONTEND", "noninteractive"], + ["HOME", "/root"], + ["LESSCLOSE", "/usr/bin/lesspipe %s %s"], + ["LESSOPEN", "| /usr/bin/lesspipe %s"], + ["LOGNAME", "root"], + ["LS_COLORS", "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"], + ["MAIL", "/var/mail/root"], + ["PATH", "/opt/rudder/bin:/usr/gnu/bin:/opt/rudder/bin:/usr/gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/usr/sbin:/sbin:/usr/sbin"], + ["PWD", "/var/rudder"], + ["RUDDER_BIN", "/usr/bin/rudder"], + ["SHELL", "/bin/bash"], + ["SHLVL", "1"], + ["SUDO_COMMAND", "/usr/bin/su"], + ["SUDO_GID", "1000"], + ["SUDO_UID", "1000"], + ["SUDO_USER", "vagrant"], + ["TERM", "xterm"], + ["USER", "root"], + ["_", "/usr/bin/rudder"] + ], + "fileSystems" : [ + { + "mountPoint" : "/", + "name" : "ext4", + "freeSpace" : 39669727232, + "totalSpace" : 41555066880 + }, + { + "mountPoint" : "/vagrant", + "name" : "vboxsf", + "freeSpace" : 91722088448, + "totalSpace" : 397236240384 + } + ], + "inputs" : [], + "localGroups" : [], + "localUsers" : [], + "logicalVolumes" : [], + "memories" : [], + "networks" : [ + { + "name" : "enp0s3", + "ifAddresses" : [ + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "ifGateway" : [ + "10.0.2.2" + ], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "10.0.2.0" + ], + "macAddress" : "02:e5:1b:70:f4:63", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "enp0s8", + "ifAddresses" : [ + "fe80:0:0:0:a00:27ff:fe94:72e8", + "192.168.32.4" + ], + "ifGateway" : [], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "192.168.32.0" + ], + "macAddress" : "08:00:27:94:72:e8", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "lo", + "ifAddresses" : [ + "0:0:0:0:0:0:0:1", + "127.0.0.1" + ], + "ifGateway" : [], + "ifMask" : [ + "fff0:0:0:0:0:0:0:0", + "255.0.0.0" + ], + "ifSubnet" : [ + "0:0:0:0:0:0:0:0", + "127.0.0.0" + ], + "macAddress" : "00:00:00:00:00:00", + "status" : "Up", + "ifType" : "loopback" + } + ], + "physicalVolumes" : [], + "ports" : [], + "processes" : [ + { + "pid" : 24832, + "commandName" : "(sd-pam)", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 170396.0 + }, + { + "pid" : 24915, + "commandName" : "-bash", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "vagrant", + "virtualMemory" : 9148.0 + }, + { + "pid" : 50026, + "commandName" : "/bin/sh /opt/rudder/bin/rudder-perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/node1-4d3a43bc-8508-46a2-92d7-cfe7320309a5.ocs", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 50022, + "commandName" : "/bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/node1-4d3a43bc-8508-46a2-92d7-cfe7320309a5.ocs", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49923, + "commandName" : "/bin/sh /opt/rudder/share/commands/../lib/timestamp", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49785, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-inventory", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49925, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49825, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.4, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 24830, + "commandName" : "/lib/systemd/systemd --user", + "cpuUsage" : 0.0, + "memory" : 1.5, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17080.0 + }, + { + "pid" : 339, + "commandName" : "/lib/systemd/systemd-journald", + "cpuUsage" : 0.0, + "memory" : 1.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 48364.0 + }, + { + "pid" : 683, + "commandName" : "/lib/systemd/systemd-logind", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23720.0 + }, + { + "pid" : 1628, + "commandName" : "/lib/systemd/systemd-networkd", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 16248.0 + }, + { + "pid" : 558, + "commandName" : "/lib/systemd/systemd-resolved", + "cpuUsage" : 0.0, + "memory" : 1.7, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 25392.0 + }, + { + "pid" : 411, + "commandName" : "/lib/systemd/systemd-timesyncd", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 89352.0 + }, + { + "pid" : 385, + "commandName" : "/lib/systemd/systemd-udevd", + "cpuUsage" : 0.0, + "memory" : 1.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23304.0 + }, + { + "pid" : 49921, + "commandName" : "/opt/rudder/bin/cf-agent -I -D info -Cnever -K -b doInventory -D force_inventory", + "cpuUsage" : 55.0, + "memory" : 5.6, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 74680.0 + }, + { + "pid" : 4493, + "commandName" : "/opt/rudder/bin/cf-execd --no-fork", + "cpuUsage" : 0.0, + "memory" : 2.8, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33460.0 + }, + { + "pid" : 4495, + "commandName" : "/opt/rudder/bin/cf-serverd --graceful-detach=600 --no-fork --inform", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33480.0 + }, + { + "pid" : 746, + "commandName" : "/sbin/agetty -o -p -- \\u --keep-baud 115200,57600,38400,9600 ttyS0 vt220", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "ttyS0", + "user" : "root", + "virtualMemory" : 6216.0 + }, + { + "pid" : 757, + "commandName" : "/sbin/agetty -o -p -- \\u --noclear tty1 linux", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "tty1", + "user" : "root", + "virtualMemory" : 6172.0 + }, + { + "pid" : 1, + "commandName" : "/sbin/init", + "cpuUsage" : 0.0, + "memory" : 2.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 167620.0 + }, + { + "pid" : 381, + "commandName" : "/sbin/multipathd -d -s", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 354888.0 + }, + { + "pid" : 674, + "commandName" : "/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers", + "cpuUsage" : 0.0, + "memory" : 2.3, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 32992.0 + }, + { + "pid" : 773, + "commandName" : "/usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 110088.0 + }, + { + "pid" : 681, + "commandName" : "/usr/lib/snapd/snapd", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 743408.0 + }, + { + "pid" : 2287, + "commandName" : "/usr/libexec/packagekitd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "root", + "virtualMemory" : 295940.0 + }, + { + "pid" : 675, + "commandName" : "/usr/libexec/polkitd --no-debug", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 234484.0 + }, + { + "pid" : 689, + "commandName" : "/usr/libexec/udisks2/udisksd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 392700.0 + }, + { + "pid" : 732, + "commandName" : "/usr/sbin/ModemManager", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 316932.0 + }, + { + "pid" : 665, + "commandName" : "/usr/sbin/cron -f -P", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7284.0 + }, + { + "pid" : 680, + "commandName" : "/usr/sbin/rsyslogd -n -iNONE", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "syslog", + "virtualMemory" : 222400.0 + }, + { + "pid" : 666, + "commandName" : "@dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "message+", + "virtualMemory" : 8884.0 + }, + { + "pid" : 87, + "commandName" : "[acpi_thermal_pm]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5965, + "commandName" : "[arc_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5964, + "commandName" : "[arc_prune]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5966, + "commandName" : "[arc_reap]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 75, + "commandName" : "[ata_sff]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 73, + "commandName" : "[blkcg_punt_bio]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 115, + "commandName" : "[charger_manager]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 17, + "commandName" : "[cpuhp/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 153, + "commandName" : "[cryptd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5967, + "commandName" : "[dbu_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5968, + "commandName" : "[dbuf_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 78, + "commandName" : "[devfreq_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5911, + "commandName" : "[dio/sda1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 84, + "commandName" : "[ecryptfs-kthrea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 77, + "commandName" : "[edac-poller]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 267, + "commandName" : "[ext4-rsv-conver]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 16, + "commandName" : "[idle_inject/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 19, + "commandName" : "[inet_frag_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 362, + "commandName" : "[ipmi-msghandler]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 96, + "commandName" : "[ipv6_addrconf]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 266, + "commandName" : "[jbd2/sda1-8]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 372, + "commandName" : "[kaluad]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 20, + "commandName" : "[kauditd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 72, + "commandName" : "[kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 24, + "commandName" : "[kcompactd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 18, + "commandName" : "[kdevtmpfs]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 21, + "commandName" : "[khungtaskd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 71, + "commandName" : "[kintegrityd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 379, + "commandName" : "[kmpath_handlerd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 374, + "commandName" : "[kmpath_rdacd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 376, + "commandName" : "[kmpathd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 25, + "commandName" : "[ksmd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 13, + "commandName" : "[ksoftirqd/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 106, + "commandName" : "[kstrp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 83, + "commandName" : "[kswapd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 2, + "commandName" : "[kthreadd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 86, + "commandName" : "[kthrotld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 32626, + "commandName" : "[kworker/0:0-cgroup_destroy]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 16:50", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 7, + "commandName" : "[kworker/0:0H-events_highpri]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 81, + "commandName" : "[kworker/0:1H-kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47519, + "commandName" : "[kworker/0:2-events]", + "cpuUsage" : 0.1, + "memory" : 0.0, + "started" : "2022-09-07 19:34", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47059, + "commandName" : "[kworker/u2:0-writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:32", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48342, + "commandName" : "[kworker/u2:1-ext4-rsv-conversion]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:40", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48785, + "commandName" : "[kworker/u2:2-flush-8:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 110, + "commandName" : "[kworker/u3:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5970, + "commandName" : "[l2arc_feed]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 76, + "commandName" : "[md]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 15, + "commandName" : "[migration/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 95, + "commandName" : "[mld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 10, + "commandName" : "[mm_percpu_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 162, + "commandName" : "[mpt/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 161, + "commandName" : "[mpt_poll_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5, + "commandName" : "[netns]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 22, + "commandName" : "[oom_reaper]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 222, + "commandName" : "[raid5wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 3, + "commandName" : "[rcu_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 4, + "commandName" : "[rcu_par_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 14, + "commandName" : "[rcu_sched]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 11, + "commandName" : "[rcu_tasks_rude_]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 12, + "commandName" : "[rcu_tasks_trace]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 89, + "commandName" : "[scsi_eh_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 91, + "commandName" : "[scsi_eh_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 189, + "commandName" : "[scsi_eh_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 90, + "commandName" : "[scsi_tmf_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 92, + "commandName" : "[scsi_tmf_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 190, + "commandName" : "[scsi_tmf_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5960, + "commandName" : "[spl_delay_taskq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5961, + "commandName" : "[spl_dynamic_tas]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5962, + "commandName" : "[spl_kmem_cache]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5959, + "commandName" : "[spl_system_task]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 74, + "commandName" : "[tpm_dev_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 94, + "commandName" : "[vfio-irqfd-clea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 79, + "commandName" : "[watchdogd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 23, + "commandName" : "[writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5969, + "commandName" : "[z_vdev_file]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 109, + "commandName" : "[zswap-shrink]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5963, + "commandName" : "[zvol]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 49926, + "commandName" : "awk -v info=0 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\\033[1;32m -v darkgreen=\\033[0;32m -v red=\\033[1;31m -v yellow=\\033[1;33m -v magenta=\\033[1;35m -v normal=\\033[0;39m\\033[0;49m -v white=\\033[0;02m -v cyan=\\033[1;36m -v dblue=\\033[0;34m -v dgreen=\\033[0;32m -v timing=0 -v has_fflush=OK -v full_compliance=1 -v partial_run=1 -v error_fail=0 -v noncompliant_fail=0 -f /opt/rudder/share/commands/../lib/reports.awk", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11872.0 + }, + { + "pid" : 24930, + "commandName" : "bash", + "cpuUsage" : 0.0, + "memory" : 0.7, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 8024.0 + }, + { + "pid" : 5927, + "commandName" : "bpfilter_umh", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2772.0 + }, + { + "pid" : 49922, + "commandName" : "cat", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6328.0 + }, + { + "pid" : 50027, + "commandName" : "fusioninventory-agent: running task Inventory", + "cpuUsage" : 47.0, + "memory" : 10.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 50496.0 + }, + { + "pid" : 5878, + "commandName" : "lxcfs /var/snap/lxd/common/var/lib/lxcfs -p /var/snap/lxd/common/lxcfs.pid", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 85652.0 + }, + { + "pid" : 50040, + "commandName" : "ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7060.0 + }, + { + "pid" : 797, + "commandName" : "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups", + "cpuUsage" : 0.0, + "memory" : 1.1, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 15416.0 + }, + { + "pid" : 24827, + "commandName" : "sshd: vagrant [priv]", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "root", + "virtualMemory" : 17036.0 + }, + { + "pid" : 24914, + "commandName" : "sshd: vagrant@pts/0", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17420.0 + }, + { + "pid" : 24929, + "commandName" : "su", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 10592.0 + }, + { + "pid" : 24928, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 24927, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 49924, + "commandName" : "tee /var/rudder/tmp/reports//2022-09-07T19:56:54+00:00@4d3a43bc-8508-46a2-92d7-cfe7320309a5.log", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6192.0 + } + ], + "processors" : [ + { + "manufacturer" : "Intel", + "name" : "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz", + "arch" : "i386", + "speed" : 2800, + "core" : 1, + "thread" : 1, + "stepping" : 9, + "family" : 6, + "model" : 158, + "quantity" : 1 + } + ], + "slots" : [], + "software" : [], + "softwareUpdate" : [], + "sounds" : [ + { + "name" : "Multimedia audio controller - Intel Corporation 82801AA AC'97 Audio Controller", + "description" : "rev 01", + "quantity" : 1 + } + ], + "storages" : [ + { + "name" : "sda", + "description" : "SCSI", + "size" : 45035290624, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "serialNumber" : "a23d4170", + "sType" : "disk", + "quantity" : 1 + }, + { + "name" : "sdb", + "description" : "SCSI", + "size" : 10485760, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "sType" : "disk", + "quantity" : 1 + } + ], + "videos" : [], + "vms" : [] +} diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software.json_ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software.json_ new file mode 100644 index 00000000000..51d0444d11c --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/no-software.json_ @@ -0,0 +1,1804 @@ +{ + "id" : "1d3a43bc-8508-46a2-92d7-cfe7320309a5", + "hostname" : "no-software", + "os" : { + "type" : "Linux", + "name" : "Ubuntu", + "version" : "22.04", + "fullName" : "Ubuntu 22.04 LTS", + "kernelVersion" : "5.15.0-41-generic" + }, + "rudderSettings" : { + "keyStatus" : "certified", + "reportingConfiguration" : { + + }, + "kind" : "node", + "status" : "pending", + "state" : "enabled", + "policyMode" : "default", + "policyServerId" : "root" + }, + "rudderAgent" : { + "type" : "cfengine-community", + "user" : "root", + "version" : "7.2.0~rc1-ubuntu22.04", + "securityToken" : { + "kind" : "certificate", + "token" : "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIULhYaqmQZGDMab0FnySgkA3tCWpgwDQYJKoZIhvcNAQEL\nBQAwNjE0MDIGCgmSJomT8ixkAQEMJDRkM2E0M2JjLTg1MDgtNDZhMi05MmQ3LWNm\nZTczMjAzMDlhNTAeFw0yMjA5MDcwODUyNDdaFw0zMjA5MDQwODUyNDdaMDYxNDAy\nBgoJkiaJk/IsZAEBDCQ0ZDNhNDNiYy04NTA4LTQ2YTItOTJkNy1jZmU3MzIwMzA5\nYTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD7/K+BfMAT4pwJf03\nHH9nTBXdDyibg4wbSy0zjiUrQ2Ri5tiwCsfUQtpkeHl3a643FBmHKE2oDvKOvFFV\nrBJWqtJBydVMwhBlDuDXR0WV9fPyIizIcAX/LBt1yPRSrtBkWQZ2IAN/lCADmtEe\ngkVyLiVcp/msMAdwm0QkDvB1o+g3USq0DFbwkQyopvTsYfGgcW/Rn9ifCyxq2rKe\nF+zbUIF7AK5dPjXyDFEEo80WUAZEkn3hQrEKYOCXkEiRLI6+KCArnv9jRop92dCg\nTjGIoMLtAQYb+txytf8/4oQDpCdEENvRJqQ2SVB1K1dtvLPXe7jQ2vK9/chtmFut\ndirZCOBRtbRV0eAZ7te4K0RC5L0R2EI7uowmhE5a8xwmWGH1U7BMVKR9B76iPdR3\nK9fXiPRUEBvs2N/06OBviY18VSR5k4sp9sEifAq3kgP/kvVKTA1dNavoB1gDH8KS\n+0Nnp9nA+AxMLyU5PFFvwSfgYZjp+sbDlFPrOgryVK0BLfGNdm27xftKW8yyzNPM\nbRirrnIngvh8wPHjDxC02/SJ7Pikx0ffOV09ee+Ik4dTbqj+bHy/z8rp0aAtLbZV\nNIGqvzCaByWWJhmYZ3FFwHo3LXUeonljQOYVl8kSEQkcE8b5X657fG3RTrLUE6DK\nobsJcr7JUwijGcB+tADQ+gngtQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYD\nVR0OBBYEFChVcwIhgIr5vgRy8T8ol3MktitiMHEGA1UdIwRqMGiAFChVcwIhgIr5\nvgRy8T8ol3MktitioTqkODA2MTQwMgYKCZImiZPyLGQBAQwkNGQzYTQzYmMtODUw\nOC00NmEyLTkyZDctY2ZlNzMyMDMwOWE1ghQuFhqqZBkYMxpvQWfJKCQDe0JamDAL\nBgNVHQ8EBAMCArwwDQYJKoZIhvcNAQELBQADggIBAEzLJFdRib1gHQ3ZFU6YCeEX\nUYd8DBRAnPUdjSi/6+Qz9KhQdo5F+vngAdqWFggL2lv1yaahLKTYSdxibBpzX9ee\nH8mP+Gxt0su0xoAtuwkzvfg3G6BTtAXorVgsEfya3re3eShOuvXprzqi7Xsnbv9a\nUzJX4FCJJAXA+Qd/frzpw33cSa8M4SHn7xTo3c9ZgOs1zJ4BepFz/2MpKYY9RSfU\nDpeksnS+ij1BUcrScitwCVvmh0nFXIMWcnUREqxkRAPY1ln1ExAaSmYA0SKsUhoJ\nGx08WfzprwunlzZCA91gmNW+1WjMFr9Nonp6SlMXH0ZrBm+K+zNm6+aAnZdN2ttG\nPmmqotUbbCG737HY8VxE27rgZ8SYidprqvuPtz4WaQPg+4JPeCzOqLWfcX3nfmJM\nkO7nfL0DCqDaZgW+O3FCSFfXnb8TQnMgJZlnakI/w+mzx26YkxtZ2xgWi7yLyBk6\nJDeC5KwgyP+nJpgSOIwGNf4ZaOEYtg3DeFjXmFi5N4Vtq98819cTp3QL+RZG4cVs\nDwFR0T3KjB6QWcvSB2QpQUvdOITtUsACP/zk73y7RwZVQT0DHVWVw6eHhGH6LpKI\nY8skyhHnHUjG1A9eOvk4ZQGPedL9cG0af7TzmaUwFg5fGN594lv79o7iGT1srNBp\n2A/Eff5z/oWypwrLbjiI\n-----END CERTIFICATE-----" + }, + "capabilities" : [ + "jq", + "yaml", + "cfengine", + "curl", + "acl", + "xml", + "http_reporting" + ] + }, + "properties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local", + "provider" : "inventory" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override", + "provider" : "inventory" + } + ], + "lastInventoryDate" : "2022-09-07T17:56:55Z", + "inventoryReceivedDate" : "2022-09-07T17:56:55Z", + "ipAddresses" : [ + "192.168.32.4", + "0:0:0:0:0:0:0:1", + "127.0.0.1", + "fe80:0:0:0:a00:27ff:fe94:72e8", + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "timezone" : { + "name" : "UTC", + "offset" : "+0000" + }, + "machine" : { + "id" : "a9445c97-2640-5736-961f-514e9a34940a", + "provider" : "vbox", + "systemSerial" : "28eba2ed-b589-ec45-bae4-d33155c8288d", + "manufacturer" : "innotek GmbH" + }, + "ram" : 489684992, + "archDescription" : "x86_64", + "accounts" : [ + "_apt", + "backup", + "bin", + "daemon", + "games", + "gnats", + "irc", + "landscape", + "list", + "lp", + "lxd", + "mail", + "man", + "messagebus", + "news", + "nobody", + "pollinate", + "proxy", + "root", + "sshd", + "sync", + "sys", + "syslog", + "systemd-network", + "systemd-resolve", + "systemd-timesync", + "tcpdump", + "tss", + "ubuntu", + "uucp", + "uuidd", + "vagrant", + "www-data" + ], + "bios" : [ + { + "name" : "VirtualBox", + "version" : "VirtualBox", + "editor" : "innotek GmbH", + "releaseDate" : "2006-11-30T23:00:00Z", + "quantity" : 1 + } + ], + "controllers" : [ + { + "name" : "440FX - 82441FX PMC [Natoma]", + "manufacturer" : "Intel Corporation", + "cType" : "Host bridge", + "quantity" : 1 + }, + { + "name" : "53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI", + "manufacturer" : "LSI Logic / Symbios Logic", + "cType" : "SCSI storage controller", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 ACPI", + "manufacturer" : "Intel Corporation", + "cType" : "Bridge", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 IDE", + "manufacturer" : "Intel Corporation", + "cType" : "IDE interface", + "quantity" : 1 + }, + { + "name" : "82371SB PIIX3 ISA [Natoma/Triton II]", + "manufacturer" : "Intel Corporation", + "cType" : "ISA bridge", + "quantity" : 1 + }, + { + "name" : "82540EM Gigabit Ethernet Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Ethernet controller", + "quantity" : 2 + }, + { + "name" : "82801AA AC'97 Audio Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Multimedia audio controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Graphics Adapter", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "VGA compatible controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Guest Service", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "System peripheral", + "quantity" : 1 + } + ], + "customProperties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override" + } + ], + "environmentVariables" : [ + ["BASEDIR", "/opt/rudder/share/commands"], + ["DEBIAN_FRONTEND", "noninteractive"], + ["HOME", "/root"], + ["LESSCLOSE", "/usr/bin/lesspipe %s %s"], + ["LESSOPEN", "| /usr/bin/lesspipe %s"], + ["LOGNAME", "root"], + ["LS_COLORS", "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"], + ["MAIL", "/var/mail/root"], + ["PATH", "/opt/rudder/bin:/usr/gnu/bin:/opt/rudder/bin:/usr/gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/usr/sbin:/sbin:/usr/sbin"], + ["PWD", "/var/rudder"], + ["RUDDER_BIN", "/usr/bin/rudder"], + ["SHELL", "/bin/bash"], + ["SHLVL", "1"], + ["SUDO_COMMAND", "/usr/bin/su"], + ["SUDO_GID", "1000"], + ["SUDO_UID", "1000"], + ["SUDO_USER", "vagrant"], + ["TERM", "xterm"], + ["USER", "root"], + ["_", "/usr/bin/rudder"] + ], + "fileSystems" : [ + { + "mountPoint" : "/", + "name" : "ext4", + "freeSpace" : 39669727232, + "totalSpace" : 41555066880 + }, + { + "mountPoint" : "/vagrant", + "name" : "vboxsf", + "freeSpace" : 91722088448, + "totalSpace" : 397236240384 + } + ], + "inputs" : [], + "localGroups" : [], + "localUsers" : [], + "logicalVolumes" : [], + "memories" : [], + "networks" : [ + { + "name" : "enp0s3", + "ifAddresses" : [ + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "ifGateway" : [ + "10.0.2.2" + ], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "10.0.2.0" + ], + "macAddress" : "02:e5:1b:70:f4:63", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "enp0s8", + "ifAddresses" : [ + "fe80:0:0:0:a00:27ff:fe94:72e8", + "192.168.32.4" + ], + "ifGateway" : [], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "192.168.32.0" + ], + "macAddress" : "08:00:27:94:72:e8", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "lo", + "ifAddresses" : [ + "0:0:0:0:0:0:0:1", + "127.0.0.1" + ], + "ifGateway" : [], + "ifMask" : [ + "fff0:0:0:0:0:0:0:0", + "255.0.0.0" + ], + "ifSubnet" : [ + "0:0:0:0:0:0:0:0", + "127.0.0.0" + ], + "macAddress" : "00:00:00:00:00:00", + "status" : "Up", + "ifType" : "loopback" + } + ], + "physicalVolumes" : [], + "ports" : [], + "processes" : [ + { + "pid" : 24832, + "commandName" : "(sd-pam)", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 170396.0 + }, + { + "pid" : 24915, + "commandName" : "-bash", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "vagrant", + "virtualMemory" : 9148.0 + }, + { + "pid" : 50026, + "commandName" : "/bin/sh /opt/rudder/bin/rudder-perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/node1-4d3a43bc-8508-46a2-92d7-cfe7320309a5.ocs", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 50022, + "commandName" : "/bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/node1-4d3a43bc-8508-46a2-92d7-cfe7320309a5.ocs", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49923, + "commandName" : "/bin/sh /opt/rudder/share/commands/../lib/timestamp", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49785, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-inventory", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49925, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49825, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.4, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 24830, + "commandName" : "/lib/systemd/systemd --user", + "cpuUsage" : 0.0, + "memory" : 1.5, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17080.0 + }, + { + "pid" : 339, + "commandName" : "/lib/systemd/systemd-journald", + "cpuUsage" : 0.0, + "memory" : 1.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 48364.0 + }, + { + "pid" : 683, + "commandName" : "/lib/systemd/systemd-logind", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23720.0 + }, + { + "pid" : 1628, + "commandName" : "/lib/systemd/systemd-networkd", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 16248.0 + }, + { + "pid" : 558, + "commandName" : "/lib/systemd/systemd-resolved", + "cpuUsage" : 0.0, + "memory" : 1.7, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 25392.0 + }, + { + "pid" : 411, + "commandName" : "/lib/systemd/systemd-timesyncd", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 89352.0 + }, + { + "pid" : 385, + "commandName" : "/lib/systemd/systemd-udevd", + "cpuUsage" : 0.0, + "memory" : 1.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23304.0 + }, + { + "pid" : 49921, + "commandName" : "/opt/rudder/bin/cf-agent -I -D info -Cnever -K -b doInventory -D force_inventory", + "cpuUsage" : 55.0, + "memory" : 5.6, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 74680.0 + }, + { + "pid" : 4493, + "commandName" : "/opt/rudder/bin/cf-execd --no-fork", + "cpuUsage" : 0.0, + "memory" : 2.8, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33460.0 + }, + { + "pid" : 4495, + "commandName" : "/opt/rudder/bin/cf-serverd --graceful-detach=600 --no-fork --inform", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33480.0 + }, + { + "pid" : 746, + "commandName" : "/sbin/agetty -o -p -- \\u --keep-baud 115200,57600,38400,9600 ttyS0 vt220", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "ttyS0", + "user" : "root", + "virtualMemory" : 6216.0 + }, + { + "pid" : 757, + "commandName" : "/sbin/agetty -o -p -- \\u --noclear tty1 linux", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "tty1", + "user" : "root", + "virtualMemory" : 6172.0 + }, + { + "pid" : 1, + "commandName" : "/sbin/init", + "cpuUsage" : 0.0, + "memory" : 2.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 167620.0 + }, + { + "pid" : 381, + "commandName" : "/sbin/multipathd -d -s", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 354888.0 + }, + { + "pid" : 674, + "commandName" : "/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers", + "cpuUsage" : 0.0, + "memory" : 2.3, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 32992.0 + }, + { + "pid" : 773, + "commandName" : "/usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 110088.0 + }, + { + "pid" : 681, + "commandName" : "/usr/lib/snapd/snapd", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 743408.0 + }, + { + "pid" : 2287, + "commandName" : "/usr/libexec/packagekitd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "root", + "virtualMemory" : 295940.0 + }, + { + "pid" : 675, + "commandName" : "/usr/libexec/polkitd --no-debug", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 234484.0 + }, + { + "pid" : 689, + "commandName" : "/usr/libexec/udisks2/udisksd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 392700.0 + }, + { + "pid" : 732, + "commandName" : "/usr/sbin/ModemManager", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 316932.0 + }, + { + "pid" : 665, + "commandName" : "/usr/sbin/cron -f -P", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7284.0 + }, + { + "pid" : 680, + "commandName" : "/usr/sbin/rsyslogd -n -iNONE", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "syslog", + "virtualMemory" : 222400.0 + }, + { + "pid" : 666, + "commandName" : "@dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "message+", + "virtualMemory" : 8884.0 + }, + { + "pid" : 87, + "commandName" : "[acpi_thermal_pm]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5965, + "commandName" : "[arc_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5964, + "commandName" : "[arc_prune]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5966, + "commandName" : "[arc_reap]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 75, + "commandName" : "[ata_sff]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 73, + "commandName" : "[blkcg_punt_bio]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 115, + "commandName" : "[charger_manager]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 17, + "commandName" : "[cpuhp/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 153, + "commandName" : "[cryptd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5967, + "commandName" : "[dbu_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5968, + "commandName" : "[dbuf_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 78, + "commandName" : "[devfreq_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5911, + "commandName" : "[dio/sda1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 84, + "commandName" : "[ecryptfs-kthrea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 77, + "commandName" : "[edac-poller]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 267, + "commandName" : "[ext4-rsv-conver]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 16, + "commandName" : "[idle_inject/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 19, + "commandName" : "[inet_frag_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 362, + "commandName" : "[ipmi-msghandler]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 96, + "commandName" : "[ipv6_addrconf]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 266, + "commandName" : "[jbd2/sda1-8]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 372, + "commandName" : "[kaluad]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 20, + "commandName" : "[kauditd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 72, + "commandName" : "[kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 24, + "commandName" : "[kcompactd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 18, + "commandName" : "[kdevtmpfs]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 21, + "commandName" : "[khungtaskd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 71, + "commandName" : "[kintegrityd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 379, + "commandName" : "[kmpath_handlerd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 374, + "commandName" : "[kmpath_rdacd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 376, + "commandName" : "[kmpathd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 25, + "commandName" : "[ksmd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 13, + "commandName" : "[ksoftirqd/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 106, + "commandName" : "[kstrp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 83, + "commandName" : "[kswapd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 2, + "commandName" : "[kthreadd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 86, + "commandName" : "[kthrotld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 32626, + "commandName" : "[kworker/0:0-cgroup_destroy]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 16:50", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 7, + "commandName" : "[kworker/0:0H-events_highpri]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 81, + "commandName" : "[kworker/0:1H-kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47519, + "commandName" : "[kworker/0:2-events]", + "cpuUsage" : 0.1, + "memory" : 0.0, + "started" : "2022-09-07 19:34", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47059, + "commandName" : "[kworker/u2:0-writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:32", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48342, + "commandName" : "[kworker/u2:1-ext4-rsv-conversion]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:40", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48785, + "commandName" : "[kworker/u2:2-flush-8:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 110, + "commandName" : "[kworker/u3:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5970, + "commandName" : "[l2arc_feed]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 76, + "commandName" : "[md]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 15, + "commandName" : "[migration/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 95, + "commandName" : "[mld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 10, + "commandName" : "[mm_percpu_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 162, + "commandName" : "[mpt/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 161, + "commandName" : "[mpt_poll_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5, + "commandName" : "[netns]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 22, + "commandName" : "[oom_reaper]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 222, + "commandName" : "[raid5wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 3, + "commandName" : "[rcu_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 4, + "commandName" : "[rcu_par_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 14, + "commandName" : "[rcu_sched]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 11, + "commandName" : "[rcu_tasks_rude_]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 12, + "commandName" : "[rcu_tasks_trace]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 89, + "commandName" : "[scsi_eh_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 91, + "commandName" : "[scsi_eh_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 189, + "commandName" : "[scsi_eh_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 90, + "commandName" : "[scsi_tmf_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 92, + "commandName" : "[scsi_tmf_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 190, + "commandName" : "[scsi_tmf_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5960, + "commandName" : "[spl_delay_taskq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5961, + "commandName" : "[spl_dynamic_tas]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5962, + "commandName" : "[spl_kmem_cache]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5959, + "commandName" : "[spl_system_task]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 74, + "commandName" : "[tpm_dev_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 94, + "commandName" : "[vfio-irqfd-clea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 79, + "commandName" : "[watchdogd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 23, + "commandName" : "[writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5969, + "commandName" : "[z_vdev_file]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 109, + "commandName" : "[zswap-shrink]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5963, + "commandName" : "[zvol]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 49926, + "commandName" : "awk -v info=0 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\\033[1;32m -v darkgreen=\\033[0;32m -v red=\\033[1;31m -v yellow=\\033[1;33m -v magenta=\\033[1;35m -v normal=\\033[0;39m\\033[0;49m -v white=\\033[0;02m -v cyan=\\033[1;36m -v dblue=\\033[0;34m -v dgreen=\\033[0;32m -v timing=0 -v has_fflush=OK -v full_compliance=1 -v partial_run=1 -v error_fail=0 -v noncompliant_fail=0 -f /opt/rudder/share/commands/../lib/reports.awk", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11872.0 + }, + { + "pid" : 24930, + "commandName" : "bash", + "cpuUsage" : 0.0, + "memory" : 0.7, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 8024.0 + }, + { + "pid" : 5927, + "commandName" : "bpfilter_umh", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2772.0 + }, + { + "pid" : 49922, + "commandName" : "cat", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6328.0 + }, + { + "pid" : 50027, + "commandName" : "fusioninventory-agent: running task Inventory", + "cpuUsage" : 47.0, + "memory" : 10.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 50496.0 + }, + { + "pid" : 5878, + "commandName" : "lxcfs /var/snap/lxd/common/var/lib/lxcfs -p /var/snap/lxd/common/lxcfs.pid", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 85652.0 + }, + { + "pid" : 50040, + "commandName" : "ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7060.0 + }, + { + "pid" : 797, + "commandName" : "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups", + "cpuUsage" : 0.0, + "memory" : 1.1, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 15416.0 + }, + { + "pid" : 24827, + "commandName" : "sshd: vagrant [priv]", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "root", + "virtualMemory" : 17036.0 + }, + { + "pid" : 24914, + "commandName" : "sshd: vagrant@pts/0", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17420.0 + }, + { + "pid" : 24929, + "commandName" : "su", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 10592.0 + }, + { + "pid" : 24928, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 24927, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 49924, + "commandName" : "tee /var/rudder/tmp/reports//2022-09-07T19:56:54+00:00@4d3a43bc-8508-46a2-92d7-cfe7320309a5.log", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6192.0 + } + ], + "processors" : [ + { + "manufacturer" : "Intel", + "name" : "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz", + "arch" : "i386", + "speed" : 2800, + "core" : 1, + "thread" : 1, + "stepping" : 9, + "family" : 6, + "model" : 158, + "quantity" : 1 + } + ], + "slots" : [], + "software" : [], + "softwareUpdate" : [ + { + "name" : "snapd", + "version" : "2.56.2+22.04ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-software-properties", + "version" : "0.99.22.3", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "software-properties-common", + "version" : "0.99.22.3", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libldap-common", + "version" : "2.5.13+dfsg-0ubuntu0.22.04.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libgstreamer1.0-0", + "version" : "1.20.3-0ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup-bin", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup-initramfs", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-distupgrade", + "version" : "1:22.04.13", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "ubuntu-release-upgrader-core", + "version" : "1:22.04.13", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libnftables1", + "version" : "1.0.2-1ubuntu3", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "nftables", + "version" : "1.0.2-1ubuntu3", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "ubuntu-advantage-tools", + "version" : "27.10.1~22.04.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-gi", + "version" : "3.42.1-0ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-apt", + "version" : "2.3.0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python-apt-common", + "version" : "2.3.0ubuntu2.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "locales", + "version" : "2.35-0ubuntu3.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libnetplan0", + "version" : "0.104-0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "netplan.io", + "version" : "0.104-0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libcryptsetup12", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "isc-dhcp-common", + "version" : "4.4.1-2.3ubuntu2.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "isc-dhcp-client", + "version" : "4.4.1-2.3ubuntu2.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "apt-utils", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "apt", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libapt-pkg6.0", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libc-bin", + "version" : "2.35-0ubuntu3.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "base-files", + "version" : "12ubuntu4.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libc6", + "version" : "2.35-0ubuntu3.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "motd-news-config", + "version" : "12ubuntu4.2", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + } + ], + "sounds" : [ + { + "name" : "Multimedia audio controller - Intel Corporation 82801AA AC'97 Audio Controller", + "description" : "rev 01", + "quantity" : 1 + } + ], + "storages" : [ + { + "name" : "sda", + "description" : "SCSI", + "size" : 45035290624, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "serialNumber" : "a23d4170", + "sType" : "disk", + "quantity" : 1 + }, + { + "name" : "sdb", + "description" : "SCSI", + "size" : 10485760, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "sType" : "disk", + "quantity" : 1 + } + ], + "videos" : [], + "vms" : [] +} diff --git a/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/root.json b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/root.json new file mode 100644 index 00000000000..32320cd8fc3 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/resources/node-facts/root.json @@ -0,0 +1,5877 @@ +{ + "id" : "root", + "hostname" : "root.rudder.local", + "os" : { + "type" : "Linux", + "name" : "Ubuntu", + "version" : "22.04", + "fullName" : "Ubuntu 22.04 LTS", + "kernelVersion" : "5.15.0-41-generic" + }, + "rudderSettings" : { + "keyStatus" : "certified", + "reportingConfiguration" : { + + }, + "kind" : "root", + "status" : "accepted", + "state" : "enabled", + "policyMode" : "default", + "policyServerId" : "root" + }, + "rudderAgent" : { + "type" : "cfengine-community", + "user" : "root", + "version" : "7.2.0-ubuntu22.04", + "securityToken" : { + "kind" : "certificate", + "token" : "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIULhYaqmQZGDMab0FnySgkA3tCWpgwDQYJKoZIhvcNAQEL\nBQAwNjE0MDIGCgmSJomT8ixkAQEMJDRkM2E0M2JjLTg1MDgtNDZhMi05MmQ3LWNm\nZTczMjAzMDlhNTAeFw0yMjA5MDcwODUyNDdaFw0zMjA5MDQwODUyNDdaMDYxNDAy\nBgoJkiaJk/IsZAEBDCQ0ZDNhNDNiYy04NTA4LTQ2YTItOTJkNy1jZmU3MzIwMzA5\nYTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD7/K+BfMAT4pwJf03\nHH9nTBXdDyibg4wbSy0zjiUrQ2Ri5tiwCsfUQtpkeHl3a643FBmHKE2oDvKOvFFV\nrBJWqtJBydVMwhBlDuDXR0WV9fPyIizIcAX/LBt1yPRSrtBkWQZ2IAN/lCADmtEe\ngkVyLiVcp/msMAdwm0QkDvB1o+g3USq0DFbwkQyopvTsYfGgcW/Rn9ifCyxq2rKe\nF+zbUIF7AK5dPjXyDFEEo80WUAZEkn3hQrEKYOCXkEiRLI6+KCArnv9jRop92dCg\nTjGIoMLtAQYb+txytf8/4oQDpCdEENvRJqQ2SVB1K1dtvLPXe7jQ2vK9/chtmFut\ndirZCOBRtbRV0eAZ7te4K0RC5L0R2EI7uowmhE5a8xwmWGH1U7BMVKR9B76iPdR3\nK9fXiPRUEBvs2N/06OBviY18VSR5k4sp9sEifAq3kgP/kvVKTA1dNavoB1gDH8KS\n+0Nnp9nA+AxMLyU5PFFvwSfgYZjp+sbDlFPrOgryVK0BLfGNdm27xftKW8yyzNPM\nbRirrnIngvh8wPHjDxC02/SJ7Pikx0ffOV09ee+Ik4dTbqj+bHy/z8rp0aAtLbZV\nNIGqvzCaByWWJhmYZ3FFwHo3LXUeonljQOYVl8kSEQkcE8b5X657fG3RTrLUE6DK\nobsJcr7JUwijGcB+tADQ+gngtQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYD\nVR0OBBYEFChVcwIhgIr5vgRy8T8ol3MktitiMHEGA1UdIwRqMGiAFChVcwIhgIr5\nvgRy8T8ol3MktitioTqkODA2MTQwMgYKCZImiZPyLGQBAQwkNGQzYTQzYmMtODUw\nOC00NmEyLTkyZDctY2ZlNzMyMDMwOWE1ghQuFhqqZBkYMxpvQWfJKCQDe0JamDAL\nBgNVHQ8EBAMCArwwDQYJKoZIhvcNAQELBQADggIBAEzLJFdRib1gHQ3ZFU6YCeEX\nUYd8DBRAnPUdjSi/6+Qz9KhQdo5F+vngAdqWFggL2lv1yaahLKTYSdxibBpzX9ee\nH8mP+Gxt0su0xoAtuwkzvfg3G6BTtAXorVgsEfya3re3eShOuvXprzqi7Xsnbv9a\nUzJX4FCJJAXA+Qd/frzpw33cSa8M4SHn7xTo3c9ZgOs1zJ4BepFz/2MpKYY9RSfU\nDpeksnS+ij1BUcrScitwCVvmh0nFXIMWcnUREqxkRAPY1ln1ExAaSmYA0SKsUhoJ\nGx08WfzprwunlzZCA91gmNW+1WjMFr9Nonp6SlMXH0ZrBm+K+zNm6+aAnZdN2ttG\nPmmqotUbbCG737HY8VxE27rgZ8SYidprqvuPtz4WaQPg+4JPeCzOqLWfcX3nfmJM\nkO7nfL0DCqDaZgW+O3FCSFfXnb8TQnMgJZlnakI/w+mzx26YkxtZ2xgWi7yLyBk6\nJDeC5KwgyP+nJpgSOIwGNf4ZaOEYtg3DeFjXmFi5N4Vtq98819cTp3QL+RZG4cVs\nDwFR0T3KjB6QWcvSB2QpQUvdOITtUsACP/zk73y7RwZVQT0DHVWVw6eHhGH6LpKI\nY8skyhHnHUjG1A9eOvk4ZQGPedL9cG0af7TzmaUwFg5fGN594lv79o7iGT1srNBp\n2A/Eff5z/oWypwrLbjiI\n-----END CERTIFICATE-----" + }, + "capabilities" : [ + "jq", + "yaml", + "cfengine", + "curl", + "acl", + "xml", + "http_reporting" + ] + }, + "properties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local", + "provider" : "inventory" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override", + "provider" : "inventory" + } + ], + "lastInventoryDate" : "2022-09-07T17:56:55Z", + "inventoryReceivedDate" : "2022-09-07T17:56:55Z", + "ipAddresses" : [ + "192.168.32.4", + "0:0:0:0:0:0:0:1", + "127.0.0.1", + "fe80:0:0:0:a00:27ff:fe94:72e8", + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "timezone" : { + "name" : "UTC", + "offset" : "+0000" + }, + "machine" : { + "id" : "a9445c97-2640-5736-961f-514e9a34940a", + "provider" : "vbox", + "systemSerial" : "28eba2ed-b589-ec45-bae4-d33155c8288d", + "manufacturer" : "innotek GmbH" + }, + "ram" : 489684992, + "archDescription" : "x86_64", + "accounts" : [ + "_apt", + "backup", + "bin", + "daemon", + "games", + "gnats", + "irc", + "landscape", + "list", + "lp", + "lxd", + "mail", + "man", + "messagebus", + "news", + "nobody", + "pollinate", + "proxy", + "root", + "sshd", + "sync", + "sys", + "syslog", + "systemd-network", + "systemd-resolve", + "systemd-timesync", + "tcpdump", + "tss", + "ubuntu", + "uucp", + "uuidd", + "vagrant", + "www-data" + ], + "bios" : [ + { + "name" : "VirtualBox", + "version" : "VirtualBox", + "editor" : "innotek GmbH", + "releaseDate" : "2006-11-30T23:00:00Z", + "quantity" : 1 + } + ], + "controllers" : [ + { + "name" : "440FX - 82441FX PMC [Natoma]", + "manufacturer" : "Intel Corporation", + "cType" : "Host bridge", + "quantity" : 1 + }, + { + "name" : "53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI", + "manufacturer" : "LSI Logic / Symbios Logic", + "cType" : "SCSI storage controller", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 ACPI", + "manufacturer" : "Intel Corporation", + "cType" : "Bridge", + "quantity" : 1 + }, + { + "name" : "82371AB/EB/MB PIIX4 IDE", + "manufacturer" : "Intel Corporation", + "cType" : "IDE interface", + "quantity" : 1 + }, + { + "name" : "82371SB PIIX3 ISA [Natoma/Triton II]", + "manufacturer" : "Intel Corporation", + "cType" : "ISA bridge", + "quantity" : 1 + }, + { + "name" : "82540EM Gigabit Ethernet Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Ethernet controller", + "quantity" : 2 + }, + { + "name" : "82801AA AC'97 Audio Controller", + "manufacturer" : "Intel Corporation", + "cType" : "Multimedia audio controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Graphics Adapter", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "VGA compatible controller", + "quantity" : 1 + }, + { + "name" : "VirtualBox Guest Service", + "manufacturer" : "InnoTek Systemberatung GmbH", + "cType" : "System peripheral", + "quantity" : 1 + } + ], + "customProperties" : [ + { + "name" : "rudder_original_hostname", + "value" : "node1.rudder.local" + }, + { + "name" : "rudder_override_hostname", + "value" : "node1-overridden.rudder.local.override" + } + ], + "environmentVariables" : [ + ["BASEDIR", "/opt/rudder/share/commands"], + ["DEBIAN_FRONTEND", "noninteractive"], + ["HOME", "/root"], + ["LESSCLOSE", "/usr/bin/lesspipe %s %s"], + ["LESSOPEN", "| /usr/bin/lesspipe %s"], + ["LOGNAME", "root"], + ["LS_COLORS", "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"], + ["MAIL", "/var/mail/root"], + ["PATH", "/opt/rudder/bin:/usr/gnu/bin:/opt/rudder/bin:/usr/gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/usr/sbin:/sbin:/usr/sbin"], + ["PWD", "/var/rudder"], + ["RUDDER_BIN", "/usr/bin/rudder"], + ["SHELL", "/bin/bash"], + ["SHLVL", "1"], + ["SUDO_COMMAND", "/usr/bin/su"], + ["SUDO_GID", "1000"], + ["SUDO_UID", "1000"], + ["SUDO_USER", "vagrant"], + ["TERM", "xterm"], + ["USER", "root"], + ["_", "/usr/bin/rudder"] + ], + "fileSystems" : [ + { + "mountPoint" : "/", + "name" : "ext4", + "freeSpace" : 39669727232, + "totalSpace" : 41555066880 + }, + { + "mountPoint" : "/vagrant", + "name" : "vboxsf", + "freeSpace" : 91722088448, + "totalSpace" : 397236240384 + } + ], + "inputs" : [], + "localGroups" : [], + "localUsers" : [], + "logicalVolumes" : [], + "memories" : [], + "networks" : [ + { + "name" : "enp0s3", + "ifAddresses" : [ + "fe80:0:0:0:e5:1bff:fe70:f463", + "10.0.2.15" + ], + "ifGateway" : [ + "10.0.2.2" + ], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "10.0.2.0" + ], + "macAddress" : "02:e5:1b:70:f4:63", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "enp0s8", + "ifAddresses" : [ + "fe80:0:0:0:a00:27ff:fe94:72e8", + "192.168.32.4" + ], + "ifGateway" : [], + "ifMask" : [ + "ffff:ffff:ffff:ffff:0:0:0:0", + "255.255.255.0" + ], + "ifSubnet" : [ + "fe80:0:0:0:0:0:0:0", + "192.168.32.0" + ], + "macAddress" : "08:00:27:94:72:e8", + "status" : "Up", + "ifType" : "ethernet", + "speed" : "1000" + }, + { + "name" : "lo", + "ifAddresses" : [ + "0:0:0:0:0:0:0:1", + "127.0.0.1" + ], + "ifGateway" : [], + "ifMask" : [ + "fff0:0:0:0:0:0:0:0", + "255.0.0.0" + ], + "ifSubnet" : [ + "0:0:0:0:0:0:0:0", + "127.0.0.0" + ], + "macAddress" : "00:00:00:00:00:00", + "status" : "Up", + "ifType" : "loopback" + } + ], + "physicalVolumes" : [], + "ports" : [], + "processes" : [ + { + "pid" : 24832, + "commandName" : "(sd-pam)", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 170396.0 + }, + { + "pid" : 24915, + "commandName" : "-bash", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "vagrant", + "virtualMemory" : 9148.0 + }, + { + "pid" : 50026, + "commandName" : "/bin/sh /opt/rudder/bin/rudder-perl -I /opt/rudder/lib/perl5 /opt/rudder/bin/fusioninventory-agent --config=none --no-task=Deploy --local=/var/rudder/tmp/inventory/node1-root.ocs", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 50022, + "commandName" : "/bin/sh /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/node1-root.ocs", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49923, + "commandName" : "/bin/sh /opt/rudder/share/commands/../lib/timestamp", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49785, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-inventory", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49925, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 49825, + "commandName" : "/bin/sh /opt/rudder/share/commands/agent-run -N -D force_inventory -b doInventory", + "cpuUsage" : 0.0, + "memory" : 0.4, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 2888.0 + }, + { + "pid" : 24830, + "commandName" : "/lib/systemd/systemd --user", + "cpuUsage" : 0.0, + "memory" : 1.5, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17080.0 + }, + { + "pid" : 339, + "commandName" : "/lib/systemd/systemd-journald", + "cpuUsage" : 0.0, + "memory" : 1.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 48364.0 + }, + { + "pid" : 683, + "commandName" : "/lib/systemd/systemd-logind", + "cpuUsage" : 0.0, + "memory" : 1.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23720.0 + }, + { + "pid" : 1628, + "commandName" : "/lib/systemd/systemd-networkd", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 16248.0 + }, + { + "pid" : 558, + "commandName" : "/lib/systemd/systemd-resolved", + "cpuUsage" : 0.0, + "memory" : 1.7, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 25392.0 + }, + { + "pid" : 411, + "commandName" : "/lib/systemd/systemd-timesyncd", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "systemd+", + "virtualMemory" : 89352.0 + }, + { + "pid" : 385, + "commandName" : "/lib/systemd/systemd-udevd", + "cpuUsage" : 0.0, + "memory" : 1.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 23304.0 + }, + { + "pid" : 49921, + "commandName" : "/opt/rudder/bin/cf-agent -I -D info -Cnever -K -b doInventory -D force_inventory", + "cpuUsage" : 55.0, + "memory" : 5.6, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 74680.0 + }, + { + "pid" : 4493, + "commandName" : "/opt/rudder/bin/cf-execd --no-fork", + "cpuUsage" : 0.0, + "memory" : 2.8, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33460.0 + }, + { + "pid" : 4495, + "commandName" : "/opt/rudder/bin/cf-serverd --graceful-detach=600 --no-fork --inform", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 33480.0 + }, + { + "pid" : 746, + "commandName" : "/sbin/agetty -o -p -- \\u --keep-baud 115200,57600,38400,9600 ttyS0 vt220", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "ttyS0", + "user" : "root", + "virtualMemory" : 6216.0 + }, + { + "pid" : 757, + "commandName" : "/sbin/agetty -o -p -- \\u --noclear tty1 linux", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:43", + "tty" : "tty1", + "user" : "root", + "virtualMemory" : 6172.0 + }, + { + "pid" : 1, + "commandName" : "/sbin/init", + "cpuUsage" : 0.0, + "memory" : 2.2, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 167620.0 + }, + { + "pid" : 381, + "commandName" : "/sbin/multipathd -d -s", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 354888.0 + }, + { + "pid" : 674, + "commandName" : "/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers", + "cpuUsage" : 0.0, + "memory" : 2.3, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 32992.0 + }, + { + "pid" : 773, + "commandName" : "/usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal", + "cpuUsage" : 0.0, + "memory" : 2.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 110088.0 + }, + { + "pid" : 681, + "commandName" : "/usr/lib/snapd/snapd", + "cpuUsage" : 0.0, + "memory" : 5.6, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 743408.0 + }, + { + "pid" : 2287, + "commandName" : "/usr/libexec/packagekitd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:44", + "tty" : "?", + "user" : "root", + "virtualMemory" : 295940.0 + }, + { + "pid" : 675, + "commandName" : "/usr/libexec/polkitd --no-debug", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 234484.0 + }, + { + "pid" : 689, + "commandName" : "/usr/libexec/udisks2/udisksd", + "cpuUsage" : 0.0, + "memory" : 1.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 392700.0 + }, + { + "pid" : 732, + "commandName" : "/usr/sbin/ModemManager", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 316932.0 + }, + { + "pid" : 665, + "commandName" : "/usr/sbin/cron -f -P", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7284.0 + }, + { + "pid" : 680, + "commandName" : "/usr/sbin/rsyslogd -n -iNONE", + "cpuUsage" : 0.0, + "memory" : 0.9, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "syslog", + "virtualMemory" : 222400.0 + }, + { + "pid" : 666, + "commandName" : "@dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "message+", + "virtualMemory" : 8884.0 + }, + { + "pid" : 87, + "commandName" : "[acpi_thermal_pm]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5965, + "commandName" : "[arc_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5964, + "commandName" : "[arc_prune]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5966, + "commandName" : "[arc_reap]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 75, + "commandName" : "[ata_sff]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 73, + "commandName" : "[blkcg_punt_bio]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 115, + "commandName" : "[charger_manager]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 17, + "commandName" : "[cpuhp/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 153, + "commandName" : "[cryptd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5967, + "commandName" : "[dbu_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5968, + "commandName" : "[dbuf_evict]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 78, + "commandName" : "[devfreq_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5911, + "commandName" : "[dio/sda1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 84, + "commandName" : "[ecryptfs-kthrea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 77, + "commandName" : "[edac-poller]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 267, + "commandName" : "[ext4-rsv-conver]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 16, + "commandName" : "[idle_inject/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 19, + "commandName" : "[inet_frag_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 362, + "commandName" : "[ipmi-msghandler]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 96, + "commandName" : "[ipv6_addrconf]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 266, + "commandName" : "[jbd2/sda1-8]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 372, + "commandName" : "[kaluad]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 20, + "commandName" : "[kauditd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 72, + "commandName" : "[kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 24, + "commandName" : "[kcompactd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 18, + "commandName" : "[kdevtmpfs]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 21, + "commandName" : "[khungtaskd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 71, + "commandName" : "[kintegrityd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 379, + "commandName" : "[kmpath_handlerd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 374, + "commandName" : "[kmpath_rdacd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 376, + "commandName" : "[kmpathd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 25, + "commandName" : "[ksmd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 13, + "commandName" : "[ksoftirqd/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 106, + "commandName" : "[kstrp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 83, + "commandName" : "[kswapd0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 2, + "commandName" : "[kthreadd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 86, + "commandName" : "[kthrotld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 32626, + "commandName" : "[kworker/0:0-cgroup_destroy]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 16:50", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 7, + "commandName" : "[kworker/0:0H-events_highpri]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 81, + "commandName" : "[kworker/0:1H-kblockd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47519, + "commandName" : "[kworker/0:2-events]", + "cpuUsage" : 0.1, + "memory" : 0.0, + "started" : "2022-09-07 19:34", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 47059, + "commandName" : "[kworker/u2:0-writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:32", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48342, + "commandName" : "[kworker/u2:1-ext4-rsv-conversion]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:40", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 48785, + "commandName" : "[kworker/u2:2-flush-8:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 19:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 110, + "commandName" : "[kworker/u3:0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5970, + "commandName" : "[l2arc_feed]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 76, + "commandName" : "[md]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 15, + "commandName" : "[migration/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 95, + "commandName" : "[mld]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 10, + "commandName" : "[mm_percpu_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 162, + "commandName" : "[mpt/0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 161, + "commandName" : "[mpt_poll_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5, + "commandName" : "[netns]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 22, + "commandName" : "[oom_reaper]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 222, + "commandName" : "[raid5wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 3, + "commandName" : "[rcu_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 4, + "commandName" : "[rcu_par_gp]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 14, + "commandName" : "[rcu_sched]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 11, + "commandName" : "[rcu_tasks_rude_]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 12, + "commandName" : "[rcu_tasks_trace]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 89, + "commandName" : "[scsi_eh_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 91, + "commandName" : "[scsi_eh_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 189, + "commandName" : "[scsi_eh_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 90, + "commandName" : "[scsi_tmf_0]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 92, + "commandName" : "[scsi_tmf_1]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 190, + "commandName" : "[scsi_tmf_2]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5960, + "commandName" : "[spl_delay_taskq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5961, + "commandName" : "[spl_dynamic_tas]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5962, + "commandName" : "[spl_kmem_cache]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5959, + "commandName" : "[spl_system_task]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 74, + "commandName" : "[tpm_dev_wq]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 94, + "commandName" : "[vfio-irqfd-clea]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 79, + "commandName" : "[watchdogd]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 23, + "commandName" : "[writeback]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5969, + "commandName" : "[z_vdev_file]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 109, + "commandName" : "[zswap-shrink]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 5963, + "commandName" : "[zvol]", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 0.0 + }, + { + "pid" : 49926, + "commandName" : "awk -v info=0 -v full_strings=0 -v summary_only=0 -v quiet=0 -v multihost=0 -v green=\\033[1;32m -v darkgreen=\\033[0;32m -v red=\\033[1;31m -v yellow=\\033[1;33m -v magenta=\\033[1;35m -v normal=\\033[0;39m\\033[0;49m -v white=\\033[0;02m -v cyan=\\033[1;36m -v dblue=\\033[0;34m -v dgreen=\\033[0;32m -v timing=0 -v has_fflush=OK -v full_compliance=1 -v partial_run=1 -v error_fail=0 -v noncompliant_fail=0 -f /opt/rudder/share/commands/../lib/reports.awk", + "cpuUsage" : 0.0, + "memory" : 0.8, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11872.0 + }, + { + "pid" : 24930, + "commandName" : "bash", + "cpuUsage" : 0.0, + "memory" : 0.7, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 8024.0 + }, + { + "pid" : 5927, + "commandName" : "bpfilter_umh", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 2772.0 + }, + { + "pid" : 49922, + "commandName" : "cat", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6328.0 + }, + { + "pid" : 50027, + "commandName" : "fusioninventory-agent: running task Inventory", + "cpuUsage" : 47.0, + "memory" : 10.1, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 50496.0 + }, + { + "pid" : 5878, + "commandName" : "lxcfs /var/snap/lxd/common/var/lib/lxcfs -p /var/snap/lxd/common/lxcfs.pid", + "cpuUsage" : 0.0, + "memory" : 0.0, + "started" : "2022-09-07 11:45", + "tty" : "?", + "user" : "root", + "virtualMemory" : 85652.0 + }, + { + "pid" : 50040, + "commandName" : "ps -A -o user,pid,pcpu,pmem,vsz,tty,etime,command", + "cpuUsage" : 0.0, + "memory" : 0.3, + "started" : "2022-09-07 19:56", + "tty" : "?", + "user" : "root", + "virtualMemory" : 7060.0 + }, + { + "pid" : 797, + "commandName" : "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups", + "cpuUsage" : 0.0, + "memory" : 1.1, + "started" : "2022-09-07 11:43", + "tty" : "?", + "user" : "root", + "virtualMemory" : 15416.0 + }, + { + "pid" : 24827, + "commandName" : "sshd: vagrant [priv]", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "root", + "virtualMemory" : 17036.0 + }, + { + "pid" : 24914, + "commandName" : "sshd: vagrant@pts/0", + "cpuUsage" : 0.0, + "memory" : 1.3, + "started" : "2022-09-07 15:30", + "tty" : "?", + "user" : "vagrant", + "virtualMemory" : 17420.0 + }, + { + "pid" : 24929, + "commandName" : "su", + "cpuUsage" : 0.0, + "memory" : 0.5, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 10592.0 + }, + { + "pid" : 24928, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.1, + "started" : "2022-09-07 15:30", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 24927, + "commandName" : "sudo su", + "cpuUsage" : 0.0, + "memory" : 0.6, + "started" : "2022-09-07 15:30", + "tty" : "pts/0", + "user" : "root", + "virtualMemory" : 11892.0 + }, + { + "pid" : 49924, + "commandName" : "tee /var/rudder/tmp/reports//2022-09-07T19:56:54+00:00@root.log", + "cpuUsage" : 0.0, + "memory" : 0.2, + "started" : "2022-09-07 19:56", + "tty" : "pts/1", + "user" : "root", + "virtualMemory" : 6192.0 + } + ], + "processors" : [ + { + "manufacturer" : "Intel", + "name" : "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz", + "arch" : "i386", + "speed" : 2800, + "core" : 1, + "thread" : 1, + "stepping" : 9, + "family" : 6, + "model" : 158, + "quantity" : 1 + } + ], + "slots" : [], + "software" : [ + { + "name" : "libassuan0", + "version" : "2.5.5-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libassuan", + "sourceVersion" : "2.5.5-1build1" + }, + { + "name" : "libbrotli1", + "version" : "1.0.9-2build6", + "publisher" : "Ubuntu", + "sourceName" : "brotli", + "sourceVersion" : "1.0.9-2build6" + }, + { + "name" : "pastebinit", + "version" : "1.5.1-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.5.1-1ubuntu1" + }, + { + "name" : "cryptsetup", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "libstemmer0d", + "version" : "2.2.0-1build1", + "publisher" : "Ubuntu", + "sourceName" : "snowball", + "sourceVersion" : "2.2.0-1build1" + }, + { + "name" : "python3-zope.interface", + "version" : "5.4.0-1build1", + "publisher" : "Ubuntu", + "sourceName" : "zope.interface", + "sourceVersion" : "5.4.0-1build1" + }, + { + "name" : "libedit2", + "version" : "3.1-20210910-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libedit", + "sourceVersion" : "3.1-20210910-1build1" + }, + { + "name" : "tcl8.6", + "version" : "8.6.12+dfsg-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "8.6.12+dfsg-1build1" + }, + { + "name" : "gnupg-utils", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libcom-err2", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "libopeniscsiusr", + "version" : "2.1.5-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "open-iscsi", + "sourceVersion" : "2.1.5-1ubuntu1" + }, + { + "name" : "adduser", + "version" : "3.118ubuntu5", + "publisher" : "Ubuntu", + "sourceVersion" : "3.118ubuntu5" + }, + { + "name" : "libsasl2-2", + "version" : "2.1.27+dfsg2-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cyrus-sasl2", + "sourceVersion" : "2.1.27+dfsg2-3ubuntu1" + }, + { + "name" : "libglib2.0-data", + "version" : "2.72.1-1", + "publisher" : "Ubuntu", + "sourceName" : "glib2.0", + "sourceVersion" : "2.72.1-1" + }, + { + "name" : "modemmanager", + "version" : "1.18.6-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.18.6-1" + }, + { + "name" : "python3-more-itertools", + "version" : "8.10.0-2", + "publisher" : "Ubuntu", + "sourceName" : "more-itertools", + "sourceVersion" : "8.10.0-2" + }, + { + "name" : "bc", + "version" : "1.7.1-3build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7.1-3build1" + }, + { + "name" : "ed", + "version" : "1.18-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.18-1" + }, + { + "name" : "augeas-lenses", + "version" : "1.13.0-1", + "publisher" : "Ubuntu", + "sourceName" : "augeas", + "sourceVersion" : "1.13.0-1" + }, + { + "name" : "libplymouth5", + "version" : "0.9.5+git20211018-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "plymouth", + "sourceVersion" : "0.9.5+git20211018-1ubuntu3" + }, + { + "name" : "fdisk", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "python3-certifi", + "version" : "2020.6.20-1", + "publisher" : "Ubuntu", + "sourceName" : "python-certifi", + "sourceVersion" : "2020.6.20-1" + }, + { + "name" : "multipath-tools", + "version" : "0.8.8-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.8.8-1ubuntu1" + }, + { + "name" : "python3-gi", + "version" : "3.42.0-3build1", + "publisher" : "Ubuntu", + "sourceName" : "pygobject", + "sourceVersion" : "3.42.0-3build1" + }, + { + "name" : "keyboard-configuration", + "version" : "1.205ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "console-setup", + "sourceVersion" : "1.205ubuntu3" + }, + { + "name" : "liburcu8", + "version" : "0.13.1-1", + "publisher" : "Ubuntu", + "sourceName" : "liburcu", + "sourceVersion" : "0.13.1-1" + }, + { + "name" : "libklibc", + "version" : "2.0.10-4", + "publisher" : "Ubuntu", + "sourceName" : "klibc", + "sourceVersion" : "2.0.10-4" + }, + { + "name" : "python3-json-pointer", + "version" : "2.0-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python-json-pointer", + "sourceVersion" : "2.0-0ubuntu1" + }, + { + "name" : "grub-gfxpayload-lists", + "version" : "0.7", + "publisher" : "Ubuntu", + "sourceVersion" : "0.7" + }, + { + "name" : "python3-requests", + "version" : "2.25.1+dfsg-2", + "publisher" : "Ubuntu", + "sourceName" : "requests", + "sourceVersion" : "2.25.1+dfsg-2" + }, + { + "name" : "libdrm-common", + "version" : "2.4.110-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libdrm", + "sourceVersion" : "2.4.110-1ubuntu1" + }, + { + "name" : "libp11-kit0", + "version" : "0.24.0-6build1", + "publisher" : "Ubuntu", + "sourceName" : "p11-kit", + "sourceVersion" : "0.24.0-6build1" + }, + { + "name" : "install-info", + "version" : "6.8-4build1", + "publisher" : "Ubuntu", + "sourceName" : "texinfo", + "sourceVersion" : "6.8-4build1" + }, + { + "name" : "liblmdb0", + "version" : "0.9.24-1build2", + "publisher" : "Ubuntu", + "sourceName" : "lmdb", + "sourceVersion" : "0.9.24-1build2" + }, + { + "name" : "linux-image-virtual", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "python3-pyrsistent", + "version" : "0.18.1-1build1", + "publisher" : "Ubuntu", + "sourceName" : "pyrsistent", + "sourceVersion" : "0.18.1-1build1" + }, + { + "name" : "snapd", + "version" : "2.55.5+22.4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.55.5+22.4" + }, + { + "name" : "libgudev-1.0-0", + "version" : "1:237-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libgudev (237-2build1)", + "sourceVersion" : "237-2build1" + }, + { + "name" : "grep", + "version" : "3.7-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.7-1build1" + }, + { + "name" : "fuse3", + "version" : "3.10.5-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.10.5-1build1" + }, + { + "name" : "libcrypt1", + "version" : "1:4.4.27-1", + "publisher" : "Ubuntu", + "sourceName" : "libxcrypt", + "sourceVersion" : "1:4.4.27-1" + }, + { + "name" : "libglib2.0-bin", + "version" : "2.72.1-1", + "publisher" : "Ubuntu", + "sourceName" : "glib2.0", + "sourceVersion" : "2.72.1-1" + }, + { + "name" : "libmd0", + "version" : "1.0.4-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libmd", + "sourceVersion" : "1.0.4-1build1" + }, + { + "name" : "libnspr4", + "version" : "2:4.32-3build1", + "publisher" : "Ubuntu", + "sourceName" : "nspr", + "sourceVersion" : "2:4.32-3build1" + }, + { + "name" : "libapparmor1", + "version" : "3.0.4-2ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "apparmor", + "sourceVersion" : "3.0.4-2ubuntu2.1" + }, + { + "name" : "gzip", + "version" : "1.10-4ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "1.10-4ubuntu4" + }, + { + "name" : "libintl-xs-perl", + "version" : "1.26-3build2", + "publisher" : "Ubuntu", + "sourceName" : "libintl-perl", + "sourceVersion" : "1.26-3build2" + }, + { + "name" : "libqmi-proxy", + "version" : "1.30.4-1", + "publisher" : "Ubuntu", + "sourceName" : "libqmi", + "sourceVersion" : "1.30.4-1" + }, + { + "name" : "python3-urllib3", + "version" : "1.26.5-1~exp1", + "publisher" : "Ubuntu", + "sourceName" : "python-urllib3", + "sourceVersion" : "1.26.5-1~exp1" + }, + { + "name" : "libefiboot1", + "version" : "37-6ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "efivar", + "sourceVersion" : "37-6ubuntu2" + }, + { + "name" : "python3-apt", + "version" : "2.3.0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-apt", + "sourceVersion" : "2.3.0ubuntu2" + }, + { + "name" : "libffi8", + "version" : "3.4.2-4", + "publisher" : "Ubuntu", + "sourceName" : "libffi", + "sourceVersion" : "3.4.2-4" + }, + { + "name" : "pciutils", + "version" : "1:3.7.0-6", + "publisher" : "Ubuntu", + "sourceVersion" : "1:3.7.0-6" + }, + { + "name" : "lsb-release", + "version" : "11.1.0ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lsb", + "sourceVersion" : "11.1.0ubuntu4" + }, + { + "name" : "debconf", + "version" : "1.5.79ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.5.79ubuntu1" + }, + { + "name" : "libfastjson4", + "version" : "0.99.9-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libfastjson", + "sourceVersion" : "0.99.9-1build2" + }, + { + "name" : "libargon2-1", + "version" : "0~20171227-0.3", + "publisher" : "Ubuntu", + "sourceName" : "argon2", + "sourceVersion" : "0~20171227-0.3" + }, + { + "name" : "lsb-base", + "version" : "11.1.0ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lsb", + "sourceVersion" : "11.1.0ubuntu4" + }, + { + "name" : "libkeyutils1", + "version" : "1.6.1-2ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "keyutils", + "sourceVersion" : "1.6.1-2ubuntu3" + }, + { + "name" : "libnl-genl-3-200", + "version" : "3.5.0-0.1", + "publisher" : "Ubuntu", + "sourceName" : "libnl3", + "sourceVersion" : "3.5.0-0.1" + }, + { + "name" : "gpgsm", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "binutils", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "systemd-timesyncd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "pinentry-curses", + "version" : "1.1.1-1build2", + "publisher" : "Ubuntu", + "sourceName" : "pinentry", + "sourceVersion" : "1.1.1-1build2" + }, + { + "name" : "python3-ptyprocess", + "version" : "0.7.0-3", + "publisher" : "Ubuntu", + "sourceName" : "ptyprocess", + "sourceVersion" : "0.7.0-3" + }, + { + "name" : "apparmor", + "version" : "3.0.4-2ubuntu2.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0.4-2ubuntu2.1" + }, + { + "name" : "python3-zipp", + "version" : "1.0.0-3", + "publisher" : "Ubuntu", + "sourceName" : "python-zipp", + "sourceVersion" : "1.0.0-3" + }, + { + "name" : "libflashrom1", + "version" : "1.2-5build1", + "publisher" : "Ubuntu", + "sourceName" : "flashrom", + "sourceVersion" : "1.2-5build1" + }, + { + "name" : "libdrm2", + "version" : "2.4.110-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libdrm", + "sourceVersion" : "2.4.110-1ubuntu1" + }, + { + "name" : "libcurl3-gnutls", + "version" : "7.81.0-1ubuntu1.3", + "publisher" : "Ubuntu", + "sourceName" : "curl", + "sourceVersion" : "7.81.0-1ubuntu1.3" + }, + { + "name" : "libcryptsetup12", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cryptsetup", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "python3-wadllib", + "version" : "1.3.6-1", + "publisher" : "Ubuntu", + "sourceName" : "python-wadllib", + "sourceVersion" : "1.3.6-1" + }, + { + "name" : "linux-base", + "version" : "4.5ubuntu9", + "publisher" : "Ubuntu", + "sourceVersion" : "4.5ubuntu9" + }, + { + "name" : "linux-headers-5.15.0-41", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "libnsl2", + "version" : "1.3.0-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libnsl", + "sourceVersion" : "1.3.0-2build2" + }, + { + "name" : "python3-oauthlib", + "version" : "3.2.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-oauthlib", + "sourceVersion" : "3.2.0-1" + }, + { + "name" : "libsasl2-modules", + "version" : "2.1.27+dfsg2-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cyrus-sasl2", + "sourceVersion" : "2.1.27+dfsg2-3ubuntu1" + }, + { + "name" : "base-files", + "version" : "12ubuntu4.1", + "publisher" : "Ubuntu", + "sourceVersion" : "12ubuntu4.1" + }, + { + "name" : "libtext-charwidth-perl", + "version" : "0.4-10build3", + "publisher" : "Ubuntu", + "sourceVersion" : "0.4-10build3" + }, + { + "name" : "pollinate", + "version" : "4.33-3ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.33-3ubuntu2" + }, + { + "name" : "landscape-common", + "version" : "19.12-0ubuntu13", + "publisher" : "Ubuntu", + "sourceName" : "landscape-client", + "sourceVersion" : "19.12-0ubuntu13" + }, + { + "name" : "libisc-export1105", + "version" : "1:9.11.19+dfsg-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "bind9-libs", + "sourceVersion" : "1:9.11.19+dfsg-2.1ubuntu3" + }, + { + "name" : "sudo", + "version" : "1.9.9-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.9.9-1ubuntu2" + }, + { + "name" : "liblz4-1", + "version" : "1.9.3-2build2", + "publisher" : "Ubuntu", + "sourceName" : "lz4", + "sourceVersion" : "1.9.3-2build2" + }, + { + "name" : "libattr1", + "version" : "1:2.5.1-1build1", + "publisher" : "Ubuntu", + "sourceName" : "attr", + "sourceVersion" : "1:2.5.1-1build1" + }, + { + "name" : "udisks2", + "version" : "2.9.4-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.9.4-1ubuntu2" + }, + { + "name" : "ucf", + "version" : "3.43", + "publisher" : "Ubuntu", + "sourceVersion" : "3.43" + }, + { + "name" : "libpackagekit-glib2-18", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "packagekit", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "libxml2", + "version" : "2.9.13+dfsg-1ubuntu0.1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.9.13+dfsg-1ubuntu0.1" + }, + { + "name" : "tcl", + "version" : "8.6.11+1build2", + "publisher" : "Ubuntu", + "sourceName" : "tcltk-defaults", + "sourceVersion" : "8.6.11+1build2" + }, + { + "name" : "dmidecode", + "version" : "3.3-3", + "publisher" : "Ubuntu", + "sourceVersion" : "3.3-3" + }, + { + "name" : "usrmerge", + "version" : "25ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "25ubuntu2" + }, + { + "name" : "libtext-wrapi18n-perl", + "version" : "0.6-9", + "publisher" : "Ubuntu", + "sourceVersion" : "0.6-9" + }, + { + "name" : "libelf1", + "version" : "0.186-1build1", + "publisher" : "Ubuntu", + "sourceName" : "elfutils", + "sourceVersion" : "0.186-1build1" + }, + { + "name" : "dbus-user-session", + "version" : "1.12.20-2ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "dbus", + "sourceVersion" : "1.12.20-2ubuntu4" + }, + { + "name" : "lvm2", + "version" : "2.3.11-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "ldap-utils", + "version" : "2.5.13+dfsg-0ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "openldap", + "sourceVersion" : "2.5.13+dfsg-0ubuntu0.22.4.1" + }, + { + "name" : "python3-click", + "version" : "8.0.3-1", + "publisher" : "Ubuntu", + "sourceName" : "python-click", + "sourceVersion" : "8.0.3-1" + }, + { + "name" : "python3-babel", + "version" : "2.8.0+dfsg.1-7", + "publisher" : "Ubuntu", + "sourceName" : "python-babel", + "sourceVersion" : "2.8.0+dfsg.1-7" + }, + { + "name" : "wget", + "version" : "1.21.2-2ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.21.2-2ubuntu1" + }, + { + "name" : "libreadline8", + "version" : "8.1.2-1", + "publisher" : "Ubuntu", + "sourceName" : "readline", + "sourceVersion" : "8.1.2-1" + }, + { + "name" : "libsigsegv2", + "version" : "2.13-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "libsigsegv", + "sourceVersion" : "2.13-1ubuntu3" + }, + { + "name" : "libxau6", + "version" : "1:1.0.9-1build5", + "publisher" : "Ubuntu", + "sourceName" : "libxau", + "sourceVersion" : "1:1.0.9-1build5" + }, + { + "name" : "grub-common", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "console-setup", + "version" : "1.205ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.205ubuntu3" + }, + { + "name" : "net-tools", + "version" : "1.60+git20181103.0eebece-1ubuntu5", + "publisher" : "Ubuntu", + "sourceVersion" : "1.60+git20181103.0eebece-1ubuntu5" + }, + { + "name" : "parted", + "version" : "3.4-2build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.4-2build1" + }, + { + "name" : "libqmi-glib5", + "version" : "1.30.4-1", + "publisher" : "Ubuntu", + "sourceName" : "libqmi", + "sourceVersion" : "1.30.4-1" + }, + { + "name" : "ubuntu-minimal", + "version" : "1.481", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-meta", + "sourceVersion" : "1.481" + }, + { + "name" : "python3-jsonschema", + "version" : "3.2.0-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-jsonschema", + "sourceVersion" : "3.2.0-0ubuntu2" + }, + { + "name" : "powermgmt-base", + "version" : "1.36", + "publisher" : "Ubuntu", + "sourceVersion" : "1.36" + }, + { + "name" : "libblockdev-loop2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "init-system-helpers", + "version" : "1.62", + "publisher" : "Ubuntu", + "sourceVersion" : "1.62" + }, + { + "name" : "libxmlsec1", + "version" : "1.2.33-1build2", + "publisher" : "Ubuntu", + "sourceName" : "xmlsec1", + "sourceVersion" : "1.2.33-1build2" + }, + { + "name" : "python3-secretstorage", + "version" : "3.3.1-1", + "publisher" : "Ubuntu", + "sourceName" : "python-secretstorage", + "sourceVersion" : "3.3.1-1" + }, + { + "name" : "manpages", + "version" : "5.10-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.10-1ubuntu1" + }, + { + "name" : "gpg-wks-client", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "packagekit", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "sg3-utils-udev", + "version" : "1.46-1build1", + "publisher" : "Ubuntu", + "sourceName" : "sg3-utils", + "sourceVersion" : "1.46-1build1" + }, + { + "name" : "libssh-4", + "version" : "0.9.6-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libssh", + "sourceVersion" : "0.9.6-2build1" + }, + { + "name" : "python3-chardet", + "version" : "4.0.0-1", + "publisher" : "Ubuntu", + "sourceName" : "chardet", + "sourceVersion" : "4.0.0-1" + }, + { + "name" : "software-properties-common", + "version" : "0.99.22.2", + "publisher" : "Ubuntu", + "sourceName" : "software-properties", + "sourceVersion" : "0.99.22.2" + }, + { + "name" : "xauth", + "version" : "1:1.1-1build2", + "publisher" : "Ubuntu", + "sourceVersion" : "1:1.1-1build2" + }, + { + "name" : "libtirpc-common", + "version" : "1.3.2-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libtirpc", + "sourceVersion" : "1.3.2-2build1" + }, + { + "name" : "tpm-udev", + "version" : "0.6", + "publisher" : "Ubuntu", + "sourceVersion" : "0.6" + }, + { + "name" : "libpsl5", + "version" : "0.21.0-1.2build2", + "publisher" : "Ubuntu", + "sourceName" : "libpsl", + "sourceVersion" : "0.21.0-1.2build2" + }, + { + "name" : "libtss2-esys-3.0.2-0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "usb.ids", + "version" : "2022.4.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "2022.4.2-1" + }, + { + "name" : "libmbim-glib4", + "version" : "1.26.2-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libmbim", + "sourceVersion" : "1.26.2-1build1" + }, + { + "name" : "packagekit-tools", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "packagekit", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "ubuntu-advantage-tools", + "version" : "27.9~22.4.1", + "publisher" : "Ubuntu", + "sourceVersion" : "27.9~22.4.1" + }, + { + "name" : "htop", + "version" : "3.0.5-7build2", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0.5-7build2" + }, + { + "name" : "pwgen", + "version" : "2.8-2build1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.8-2build1" + }, + { + "name" : "e2fsprogs", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "libgmp10", + "version" : "2:6.2.1+dfsg-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gmp", + "sourceVersion" : "2:6.2.1+dfsg-3ubuntu1" + }, + { + "name" : "libicu70", + "version" : "70.1-2", + "publisher" : "Ubuntu", + "sourceName" : "icu", + "sourceVersion" : "70.1-2" + }, + { + "name" : "python3-jinja2", + "version" : "3.0.3-1", + "publisher" : "Ubuntu", + "sourceName" : "jinja2", + "sourceVersion" : "3.0.3-1" + }, + { + "name" : "systemd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "bolt", + "version" : "0.9.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.2-1" + }, + { + "name" : "iputils-ping", + "version" : "3:20211215-1", + "publisher" : "Ubuntu", + "sourceName" : "iputils", + "sourceVersion" : "3:20211215-1" + }, + { + "name" : "libudisks2-0", + "version" : "2.9.4-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "udisks2", + "sourceVersion" : "2.9.4-1ubuntu2" + }, + { + "name" : "ubuntu-server", + "version" : "1.481", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-meta", + "sourceVersion" : "1.481" + }, + { + "name" : "python-babel-localedata", + "version" : "2.8.0+dfsg.1-7", + "publisher" : "Ubuntu", + "sourceName" : "python-babel", + "sourceVersion" : "2.8.0+dfsg.1-7" + }, + { + "name" : "libsort-naturally-perl", + "version" : "1.3-2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.3-2" + }, + { + "name" : "libxmlsec1-openssl", + "version" : "1.2.33-1build2", + "publisher" : "Ubuntu", + "sourceName" : "xmlsec1", + "sourceVersion" : "1.2.33-1build2" + }, + { + "name" : "python3.10-minimal", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "psmisc", + "version" : "23.4-2build3", + "publisher" : "Ubuntu", + "sourceVersion" : "23.4-2build3" + }, + { + "name" : "base-passwd", + "version" : "3.5.52build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.5.52build1" + }, + { + "name" : "libaudit1", + "version" : "1:3.0.7-1build1", + "publisher" : "Ubuntu", + "sourceName" : "audit", + "sourceVersion" : "1:3.0.7-1build1" + }, + { + "name" : "dbus", + "version" : "1.12.20-2ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "1.12.20-2ubuntu4" + }, + { + "name" : "libjq1", + "version" : "1.6-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "jq", + "sourceVersion" : "1.6-2.1ubuntu3" + }, + { + "name" : "squashfs-tools", + "version" : "1:4.5-3build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:4.5-3build1" + }, + { + "name" : "libmagic-mgc", + "version" : "1:5.41-3", + "publisher" : "Ubuntu", + "sourceName" : "file", + "sourceVersion" : "1:5.41-3" + }, + { + "name" : "libip6tc2", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "iptables", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "libctf-nobfd0", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "python3-yaml", + "version" : "5.4.1-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "pyyaml", + "sourceVersion" : "5.4.1-1ubuntu1" + }, + { + "name" : "gpg-wks-server", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libnuma1", + "version" : "2.0.14-3ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "numactl", + "sourceVersion" : "2.0.14-3ubuntu2" + }, + { + "name" : "zsh-common", + "version" : "5.8.1-1", + "publisher" : "Ubuntu", + "sourceName" : "zsh", + "sourceVersion" : "5.8.1-1" + }, + { + "name" : "dmsetup", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "binutils-common", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "libtss2-tcti-device0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "sg3-utils", + "version" : "1.46-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.46-1build1" + }, + { + "name" : "libkmod2", + "version" : "29-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "kmod", + "sourceVersion" : "29-1ubuntu1" + }, + { + "name" : "python3-serial", + "version" : "3.5-1", + "publisher" : "Ubuntu", + "sourceName" : "pyserial", + "sourceVersion" : "3.5-1" + }, + { + "name" : "libwrap0", + "version" : "7.6.q-31build2", + "publisher" : "Ubuntu", + "sourceName" : "tcp-wrappers", + "sourceVersion" : "7.6.q-31build2" + }, + { + "name" : "open-iscsi", + "version" : "2.1.5-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.1.5-1ubuntu1" + }, + { + "name" : "libpython3.10-stdlib", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "python3-debconf", + "version" : "1.5.79ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "debconf", + "sourceVersion" : "1.5.79ubuntu1" + }, + { + "name" : "bsdutils", + "version" : "1:2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux (2.37.2-4ubuntu3)", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "zerofree", + "version" : "1.1.1-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.1.1-1build3" + }, + { + "name" : "eatmydata", + "version" : "130-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libeatmydata", + "sourceVersion" : "130-2build1" + }, + { + "name" : "libjcat1", + "version" : "0.1.9-1", + "publisher" : "Ubuntu", + "sourceName" : "libjcat", + "sourceVersion" : "0.1.9-1" + }, + { + "name" : "linux-headers-virtual", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "python3-lazr.uri", + "version" : "1.0.6-2", + "publisher" : "Ubuntu", + "sourceName" : "lazr.uri", + "sourceVersion" : "1.0.6-2" + }, + { + "name" : "libldap-common", + "version" : "2.5.12+dfsg-0ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "openldap", + "sourceVersion" : "2.5.12+dfsg-0ubuntu0.22.4.1" + }, + { + "name" : "policykit-1", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceVersion" : "0.105-33" + }, + { + "name" : "kbd", + "version" : "2.3.0-3ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.3.0-3ubuntu4" + }, + { + "name" : "byobu", + "version" : "5.133-1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.133-1" + }, + { + "name" : "procps", + "version" : "2:3.3.17-6ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2:3.3.17-6ubuntu2" + }, + { + "name" : "xdg-user-dirs", + "version" : "0.17-2ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "0.17-2ubuntu4" + }, + { + "name" : "libfuse3-3", + "version" : "3.10.5-1build1", + "publisher" : "Ubuntu", + "sourceName" : "fuse3", + "sourceVersion" : "3.10.5-1build1" + }, + { + "name" : "dmeventd", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "libgpm2", + "version" : "1.20.7-10build1", + "publisher" : "Ubuntu", + "sourceName" : "gpm", + "sourceVersion" : "1.20.7-10build1" + }, + { + "name" : "libdbus-1-3", + "version" : "1.12.20-2ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "dbus", + "sourceVersion" : "1.12.20-2ubuntu4" + }, + { + "name" : "python3-hamcrest", + "version" : "2.0.2-2", + "publisher" : "Ubuntu", + "sourceName" : "pyhamcrest", + "sourceVersion" : "2.0.2-2" + }, + { + "name" : "update-notifier-common", + "version" : "3.192.54", + "publisher" : "Ubuntu", + "sourceName" : "update-notifier", + "sourceVersion" : "3.192.54" + }, + { + "name" : "libevent-core-2.1-7", + "version" : "2.1.12-stable-1build3", + "publisher" : "Ubuntu", + "sourceName" : "libevent", + "sourceVersion" : "2.1.12-stable-1build3" + }, + { + "name" : "sysvinit-utils", + "version" : "3.1-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "sysvinit", + "sourceVersion" : "3.1-1ubuntu1" + }, + { + "name" : "python3-lazr.restfulclient", + "version" : "0.14.4-1", + "publisher" : "Ubuntu", + "sourceName" : "lazr.restfulclient", + "sourceVersion" : "0.14.4-1" + }, + { + "name" : "debconf-i18n", + "version" : "1.5.79ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "debconf", + "sourceVersion" : "1.5.79ubuntu1" + }, + { + "name" : "libxxhash0", + "version" : "0.8.1-1", + "publisher" : "Ubuntu", + "sourceName" : "xxhash", + "sourceVersion" : "0.8.1-1" + }, + { + "name" : "unattended-upgrades", + "version" : "2.8ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.8ubuntu1" + }, + { + "name" : "libjson-glib-1.0-common", + "version" : "1.6.6-1build1", + "publisher" : "Ubuntu", + "sourceName" : "json-glib", + "sourceVersion" : "1.6.6-1build1" + }, + { + "name" : "ncurses-term", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libpam-systemd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "liblzo2-2", + "version" : "2.10-2build3", + "publisher" : "Ubuntu", + "sourceName" : "lzo2", + "sourceVersion" : "2.10-2build3" + }, + { + "name" : "libnetplan0", + "version" : "0.104-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "netplan.io", + "sourceVersion" : "0.104-0ubuntu2" + }, + { + "name" : "cloud-initramfs-dyn-netconf", + "version" : "0.47ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-initramfs-tools", + "sourceVersion" : "0.47ubuntu1" + }, + { + "name" : "libuv1", + "version" : "1.43.0-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.43.0-1" + }, + { + "name" : "ethtool", + "version" : "1:5.16-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:5.16-1" + }, + { + "name" : "cron", + "version" : "3.0pl1-137ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0pl1-137ubuntu3" + }, + { + "name" : "libnftnl11", + "version" : "1.2.1-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libnftnl", + "sourceVersion" : "1.2.1-1build1" + }, + { + "name" : "libgcrypt20", + "version" : "1.9.4-3ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.9.4-3ubuntu3" + }, + { + "name" : "libntfs-3g89", + "version" : "1:2021.8.22-3ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "ntfs-3g", + "sourceVersion" : "1:2021.8.22-3ubuntu1.1" + }, + { + "name" : "usb-modeswitch", + "version" : "2.6.1-3ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.6.1-3ubuntu2" + }, + { + "name" : "distro-info", + "version" : "1.1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.1build1" + }, + { + "name" : "libvolume-key1", + "version" : "0.3.12-3.1build3", + "publisher" : "Ubuntu", + "sourceName" : "volume-key", + "sourceVersion" : "0.3.12-3.1build3" + }, + { + "name" : "libksba8", + "version" : "1.6.0-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libksba", + "sourceVersion" : "1.6.0-2build1" + }, + { + "name" : "libnetfilter-conntrack3", + "version" : "1.0.9-1", + "publisher" : "Ubuntu", + "sourceName" : "libnetfilter-conntrack", + "sourceVersion" : "1.0.9-1" + }, + { + "name" : "shared-mime-info", + "version" : "2.1-2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.1-2" + }, + { + "name" : "distro-info-data", + "version" : "0.52ubuntu0.1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.52ubuntu0.1" + }, + { + "name" : "libtss2-tcti-swtpm0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "libaudit-common", + "version" : "1:3.0.7-1build1", + "publisher" : "Ubuntu", + "sourceName" : "audit", + "sourceVersion" : "1:3.0.7-1build1" + }, + { + "name" : "libtcl8.6", + "version" : "8.6.12+dfsg-1build1", + "publisher" : "Ubuntu", + "sourceName" : "tcl8.6", + "sourceVersion" : "8.6.12+dfsg-1build1" + }, + { + "name" : "overlayroot", + "version" : "0.47ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-initramfs-tools", + "sourceVersion" : "0.47ubuntu1" + }, + { + "name" : "python3-keyring", + "version" : "23.5.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-keyring", + "sourceVersion" : "23.5.0-1" + }, + { + "name" : "irqbalance", + "version" : "1.8.0-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.8.0-1build1" + }, + { + "name" : "xfsprogs", + "version" : "5.13.0-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "5.13.0-1ubuntu2" + }, + { + "name" : "libunistring2", + "version" : "1.0-1", + "publisher" : "Ubuntu", + "sourceName" : "libunistring", + "sourceVersion" : "1.0-1" + }, + { + "name" : "libx11-data", + "version" : "2:1.7.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libx11", + "sourceVersion" : "2:1.7.5-1" + }, + { + "name" : "libpam-cap", + "version" : "1:2.44-1build3", + "publisher" : "Ubuntu", + "sourceName" : "libcap2", + "sourceVersion" : "1:2.44-1build3" + }, + { + "name" : "initramfs-tools", + "version" : "0.140ubuntu13", + "publisher" : "Ubuntu", + "sourceVersion" : "0.140ubuntu13" + }, + { + "name" : "hdparm", + "version" : "9.60+ds-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "9.60+ds-1build3" + }, + { + "name" : "isc-dhcp-common", + "version" : "4.4.1-2.3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "isc-dhcp", + "sourceVersion" : "4.4.1-2.3ubuntu2.1" + }, + { + "name" : "libparted-fs-resize0", + "version" : "3.4-2build1", + "publisher" : "Ubuntu", + "sourceName" : "parted", + "sourceVersion" : "3.4-2build1" + }, + { + "name" : "bind9-dnsutils", + "version" : "1:9.18.1-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "bind9", + "sourceVersion" : "1:9.18.1-1ubuntu1.1" + }, + { + "name" : "libxext6", + "version" : "2:1.3.4-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libxext", + "sourceVersion" : "2:1.3.4-1build1" + }, + { + "name" : "liblocale-gettext-perl", + "version" : "1.7-4build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7-4build3" + }, + { + "name" : "librtmp1", + "version" : "2.4+20151223.gitfa8646d.1-2build4", + "publisher" : "Ubuntu", + "sourceName" : "rtmpdump", + "sourceVersion" : "2.4+20151223.gitfa8646d.1-2build4" + }, + { + "name" : "secureboot-db", + "version" : "1.8", + "publisher" : "Ubuntu", + "sourceVersion" : "1.8" + }, + { + "name" : "libcbor0.8", + "version" : "0.8.0-2ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libcbor", + "sourceVersion" : "0.8.0-2ubuntu1" + }, + { + "name" : "python3-problem-report", + "version" : "2.20.11-0ubuntu82.1", + "publisher" : "Ubuntu", + "sourceName" : "apport", + "sourceVersion" : "2.20.11-0ubuntu82.1" + }, + { + "name" : "iptables", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "rsync", + "version" : "3.2.3-8ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "3.2.3-8ubuntu3" + }, + { + "name" : "klibc-utils", + "version" : "2.0.10-4", + "publisher" : "Ubuntu", + "sourceName" : "klibc", + "sourceVersion" : "2.0.10-4" + }, + { + "name" : "nftables", + "version" : "1.0.2-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.0.2-1ubuntu2" + }, + { + "name" : "zlib1g", + "version" : "1:1.2.11.dfsg-2ubuntu9", + "publisher" : "Ubuntu", + "sourceName" : "zlib", + "sourceVersion" : "1:1.2.11.dfsg-2ubuntu9" + }, + { + "name" : "vim", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "libip4tc2", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "iptables", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "libonig5", + "version" : "6.9.7.1-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libonig", + "sourceVersion" : "6.9.7.1-2build1" + }, + { + "name" : "grub2-common", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "command-not-found", + "version" : "22.4.0", + "publisher" : "Ubuntu", + "sourceVersion" : "22.4.0" + }, + { + "name" : "python3-importlib-metadata", + "version" : "4.6.4-1", + "publisher" : "Ubuntu", + "sourceName" : "python-importlib-metadata", + "sourceVersion" : "4.6.4-1" + }, + { + "name" : "liblzma5", + "version" : "5.2.5-2ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "xz-utils", + "sourceVersion" : "5.2.5-2ubuntu1" + }, + { + "name" : "libperl5.34", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "perl", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "dirmngr", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libparted2", + "version" : "3.4-2build1", + "publisher" : "Ubuntu", + "sourceName" : "parted", + "sourceVersion" : "3.4-2build1" + }, + { + "name" : "cryptsetup-initramfs", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cryptsetup", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "tzdata", + "version" : "2022a-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "2022a-0ubuntu1" + }, + { + "name" : "ca-certificates", + "version" : "20211016", + "publisher" : "Ubuntu", + "sourceVersion" : "20211016" + }, + { + "name" : "python3-configobj", + "version" : "5.0.6-5", + "publisher" : "Ubuntu", + "sourceName" : "configobj", + "sourceVersion" : "5.0.6-5" + }, + { + "name" : "libzstd1", + "version" : "1.4.8+dfsg-3build1", + "publisher" : "Ubuntu", + "sourceName" : "libzstd", + "sourceVersion" : "1.4.8+dfsg-3build1" + }, + { + "name" : "libblkid1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libctf0", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "coreutils", + "version" : "8.32-4.1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "8.32-4.1ubuntu1" + }, + { + "name" : "xxd", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "apt-utils", + "version" : "2.4.5", + "publisher" : "Ubuntu", + "sourceName" : "apt", + "sourceVersion" : "2.4.5" + }, + { + "name" : "strace", + "version" : "5.16-0ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "5.16-0ubuntu3" + }, + { + "name" : "libnpth0", + "version" : "1.6-3build2", + "publisher" : "Ubuntu", + "sourceName" : "npth", + "sourceVersion" : "1.6-3build2" + }, + { + "name" : "libxmlb2", + "version" : "0.3.6-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libxmlb", + "sourceVersion" : "0.3.6-2build1" + }, + { + "name" : "python3-pyasn1", + "version" : "0.4.8-1", + "publisher" : "Ubuntu", + "sourceName" : "pyasn1", + "sourceVersion" : "0.4.8-1" + }, + { + "name" : "libnl-3-200", + "version" : "3.5.0-0.1", + "publisher" : "Ubuntu", + "sourceName" : "libnl3", + "sourceVersion" : "3.5.0-0.1" + }, + { + "name" : "libtasn1-6", + "version" : "4.18.0-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.18.0-4build1" + }, + { + "name" : "busybox-initramfs", + "version" : "1:1.30.1-7ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "busybox", + "sourceVersion" : "1:1.30.1-7ubuntu3" + }, + { + "name" : "dpkg", + "version" : "1.21.1ubuntu2.1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.21.1ubuntu2.1" + }, + { + "name" : "ubuntu-standard", + "version" : "1.481", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-meta", + "sourceVersion" : "1.481" + }, + { + "name" : "libgusb2", + "version" : "0.3.10-1", + "publisher" : "Ubuntu", + "sourceName" : "libgusb", + "sourceVersion" : "0.3.10-1" + }, + { + "name" : "libpython3-stdlib", + "version" : "3.10.4-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python3-defaults", + "sourceVersion" : "3.10.4-0ubuntu2" + }, + { + "name" : "libblockdev-swap2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "cloud-init", + "version" : "22.2-0ubuntu1~22.4.3", + "publisher" : "Ubuntu", + "sourceVersion" : "22.2-0ubuntu1~22.4.3" + }, + { + "name" : "libexpat1", + "version" : "2.4.7-1", + "publisher" : "Ubuntu", + "sourceName" : "expat", + "sourceVersion" : "2.4.7-1" + }, + { + "name" : "openssh-sftp-server", + "version" : "1:8.9p1-3", + "publisher" : "Ubuntu", + "sourceName" : "openssh", + "sourceVersion" : "1:8.9p1-3" + }, + { + "name" : "libpam-modules-bin", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "linux-headers-5.15.0-41-generic", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "tcpdump", + "version" : "4.99.1-3build2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.99.1-3build2" + }, + { + "name" : "logsave", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "linux-virtual", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "python3-gdbm", + "version" : "3.10.4-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python3-stdlib-extensions", + "sourceVersion" : "3.10.4-0ubuntu1" + }, + { + "name" : "python3-markupsafe", + "version" : "2.0.1-2build1", + "publisher" : "Ubuntu", + "sourceName" : "markupsafe", + "sourceVersion" : "2.0.1-2build1" + }, + { + "name" : "libgssapi-krb5-2", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "ssh-import-id", + "version" : "5.11-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.11-0ubuntu1" + }, + { + "name" : "screen", + "version" : "4.9.0-1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.9.0-1" + }, + { + "name" : "logrotate", + "version" : "3.19.0-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.19.0-1ubuntu1.1" + }, + { + "name" : "libfido2-1", + "version" : "1.10.0-1", + "publisher" : "Ubuntu", + "sourceName" : "libfido2", + "sourceVersion" : "1.10.0-1" + }, + { + "name" : "debianutils", + "version" : "5.5-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "5.5-1ubuntu2" + }, + { + "name" : "perl-modules-5.34", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "perl", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "libpam0g", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "netbase", + "version" : "6.3", + "publisher" : "Ubuntu", + "sourceVersion" : "6.3" + }, + { + "name" : "python3-dbus", + "version" : "1.2.18-3build1", + "publisher" : "Ubuntu", + "sourceName" : "dbus-python", + "sourceVersion" : "1.2.18-3build1" + }, + { + "name" : "augeas-tools", + "version" : "1.13.0-1", + "publisher" : "Ubuntu", + "sourceName" : "augeas", + "sourceVersion" : "1.13.0-1" + }, + { + "name" : "pkexec", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "plymouth-theme-ubuntu-text", + "version" : "0.9.5+git20211018-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "plymouth", + "sourceVersion" : "0.9.5+git20211018-1ubuntu3" + }, + { + "name" : "polkitd", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "libxcb1", + "version" : "1.14-3ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "libxcb", + "sourceVersion" : "1.14-3ubuntu3" + }, + { + "name" : "libpam-runtime", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "xz-utils", + "version" : "5.2.5-2ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.2.5-2ubuntu1" + }, + { + "name" : "libgirepository-1.0-1", + "version" : "1.72.0-1", + "publisher" : "Ubuntu", + "sourceName" : "gobject-introspection", + "sourceVersion" : "1.72.0-1" + }, + { + "name" : "libselinux1", + "version" : "3.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libselinux", + "sourceVersion" : "3.3-1build2" + }, + { + "name" : "cpio", + "version" : "2.13+dfsg-7", + "publisher" : "Ubuntu", + "sourceVersion" : "2.13+dfsg-7" + }, + { + "name" : "libpython3.10", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "libdevmapper-event1.02.1", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "python3-pkg-resources", + "version" : "59.6.0-1.2", + "publisher" : "Ubuntu", + "sourceName" : "setuptools", + "sourceVersion" : "59.6.0-1.2" + }, + { + "name" : "mtr-tiny", + "version" : "0.95-1", + "publisher" : "Ubuntu", + "sourceName" : "mtr", + "sourceVersion" : "0.95-1" + }, + { + "name" : "libterm-readkey-perl", + "version" : "2.38-1build4", + "publisher" : "Ubuntu", + "sourceVersion" : "2.38-1build4" + }, + { + "name" : "bcache-tools", + "version" : "1.0.8-4ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.0.8-4ubuntu3" + }, + { + "name" : "initramfs-tools-bin", + "version" : "0.140ubuntu13", + "publisher" : "Ubuntu", + "sourceName" : "initramfs-tools", + "sourceVersion" : "0.140ubuntu13" + }, + { + "name" : "libsgutils2-2", + "version" : "1.46-1build1", + "publisher" : "Ubuntu", + "sourceName" : "sg3-utils", + "sourceVersion" : "1.46-1build1" + }, + { + "name" : "libmodule-find-perl", + "version" : "0.15-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.15-1" + }, + { + "name" : "isc-dhcp-client", + "version" : "4.4.1-2.3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "isc-dhcp", + "sourceVersion" : "4.4.1-2.3ubuntu2.1" + }, + { + "name" : "libaio1", + "version" : "0.3.112-13build1", + "publisher" : "Ubuntu", + "sourceName" : "libaio", + "sourceVersion" : "0.3.112-13build1" + }, + { + "name" : "libgnutls30", + "version" : "3.7.3-4ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gnutls28", + "sourceVersion" : "3.7.3-4ubuntu1" + }, + { + "name" : "libsmartcols1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "openssl", + "version" : "3.0.2-0ubuntu1.6", + "publisher" : "Ubuntu", + "sourceVersion" : "3.0.2-0ubuntu1.6" + }, + { + "name" : "plymouth", + "version" : "0.9.5+git20211018-1ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.5+git20211018-1ubuntu3" + }, + { + "name" : "libcap-ng0", + "version" : "0.7.9-2.2build3", + "publisher" : "Ubuntu", + "sourceName" : "libcap-ng", + "sourceVersion" : "0.7.9-2.2build3" + }, + { + "name" : "python3-debian", + "version" : "0.1.43ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python-debian", + "sourceVersion" : "0.1.43ubuntu1" + }, + { + "name" : "thin-provisioning-tools", + "version" : "0.9.0-2ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.0-2ubuntu1" + }, + { + "name" : "apport-symptoms", + "version" : "0.24", + "publisher" : "Ubuntu", + "sourceVersion" : "0.24" + }, + { + "name" : "liblvm2cmd2.03", + "version" : "2.3.11-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "libdw1", + "version" : "0.186-1build1", + "publisher" : "Ubuntu", + "sourceName" : "elfutils", + "sourceVersion" : "0.186-1build1" + }, + { + "name" : "gir1.2-glib-2.0", + "version" : "1.72.0-1", + "publisher" : "Ubuntu", + "sourceName" : "gobject-introspection", + "sourceVersion" : "1.72.0-1" + }, + { + "name" : "libtss2-sys1", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "python3-distutils", + "version" : "3.10.4-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python3-stdlib-extensions", + "sourceVersion" : "3.10.4-0ubuntu1" + }, + { + "name" : "curl", + "version" : "7.81.0-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceVersion" : "7.81.0-1ubuntu1.4" + }, + { + "name" : "mount", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libnettle8", + "version" : "3.7.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "nettle", + "sourceVersion" : "3.7.3-1build2" + }, + { + "name" : "linux-headers-generic", + "version" : "5.15.0.41.43", + "publisher" : "Ubuntu", + "sourceName" : "linux-meta", + "sourceVersion" : "5.15.0.41.43" + }, + { + "name" : "libprocps8", + "version" : "2:3.3.17-6ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "procps", + "sourceVersion" : "2:3.3.17-6ubuntu2" + }, + { + "name" : "libintl-perl", + "version" : "1.26-3build2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.26-3build2" + }, + { + "name" : "libgdbm6", + "version" : "1.23-1", + "publisher" : "Ubuntu", + "sourceName" : "gdbm", + "sourceVersion" : "1.23-1" + }, + { + "name" : "python3-setuptools", + "version" : "59.6.0-1.2", + "publisher" : "Ubuntu", + "sourceName" : "setuptools", + "sourceVersion" : "59.6.0-1.2" + }, + { + "name" : "tree", + "version" : "2.0.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.0.2-1" + }, + { + "name" : "libnewt0.52", + "version" : "0.52.21-5ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "newt", + "sourceVersion" : "0.52.21-5ubuntu2" + }, + { + "name" : "python3-colorama", + "version" : "0.4.4-1", + "publisher" : "Ubuntu", + "sourceName" : "python-colorama", + "sourceVersion" : "0.4.4-1" + }, + { + "name" : "dash", + "version" : "0.5.11+git20210903+57cd650a4ed-3build1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.5.11+git20210903+57cd650a4ed-3build1" + }, + { + "name" : "libfwupdplugin5", + "version" : "1.7.5-3", + "publisher" : "Ubuntu", + "sourceName" : "fwupd", + "sourceVersion" : "1.7.5-3" + }, + { + "name" : "libfribidi0", + "version" : "1.0.8-2ubuntu3.1", + "publisher" : "Ubuntu", + "sourceName" : "fribidi", + "sourceVersion" : "1.0.8-2ubuntu3.1" + }, + { + "name" : "libxslt1.1", + "version" : "1.1.34-4build2", + "publisher" : "Ubuntu", + "sourceName" : "libxslt", + "sourceVersion" : "1.1.34-4build2" + }, + { + "name" : "binutils-x86-64-linux-gnu", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "libltdl7", + "version" : "2.4.6-15build2", + "publisher" : "Ubuntu", + "sourceName" : "libtool", + "sourceVersion" : "2.4.6-15build2" + }, + { + "name" : "libsasl2-modules-db", + "version" : "2.1.27+dfsg2-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cyrus-sasl2", + "sourceVersion" : "2.1.27+dfsg2-3ubuntu1" + }, + { + "name" : "locales", + "version" : "2.35-0ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "glibc", + "sourceVersion" : "2.35-0ubuntu3" + }, + { + "name" : "libaugeas0", + "version" : "1.13.0-1", + "publisher" : "Ubuntu", + "sourceName" : "augeas", + "sourceVersion" : "1.13.0-1" + }, + { + "name" : "libmodule-scandeps-perl", + "version" : "1.31-1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.31-1" + }, + { + "name" : "sosreport", + "version" : "4.3-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.3-1ubuntu2" + }, + { + "name" : "python-apt-common", + "version" : "2.3.0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-apt", + "sourceVersion" : "2.3.0ubuntu2" + }, + { + "name" : "libslang2", + "version" : "2.3.2-5build4", + "publisher" : "Ubuntu", + "sourceName" : "slang2", + "sourceVersion" : "2.3.2-5build4" + }, + { + "name" : "zstd", + "version" : "1.4.8+dfsg-3build1", + "publisher" : "Ubuntu", + "sourceName" : "libzstd", + "sourceVersion" : "1.4.8+dfsg-3build1" + }, + { + "name" : "libdb5.3", + "version" : "5.3.28+dfsg1-0.8ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "db5.3", + "sourceVersion" : "5.3.28+dfsg1-0.8ubuntu3" + }, + { + "name" : "cloud-guest-utils", + "version" : "0.32-22-g45fe84a5-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-utils", + "sourceVersion" : "0.32-22-g45fe84a5-0ubuntu1" + }, + { + "name" : "libatm1", + "version" : "1:2.5.1-4build2", + "publisher" : "Ubuntu", + "sourceName" : "linux-atm", + "sourceVersion" : "1:2.5.1-4build2" + }, + { + "name" : "libext2fs2", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "python3-distro", + "version" : "1.7.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-distro", + "sourceVersion" : "1.7.0-1" + }, + { + "name" : "eject", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libacl1", + "version" : "2.3.1-1", + "publisher" : "Ubuntu", + "sourceName" : "acl", + "sourceVersion" : "2.3.1-1" + }, + { + "name" : "libnftables1", + "version" : "1.0.2-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "nftables", + "sourceVersion" : "1.0.2-1ubuntu2" + }, + { + "name" : "apt", + "version" : "2.4.5", + "publisher" : "Ubuntu", + "sourceVersion" : "2.4.5" + }, + { + "name" : "apport", + "version" : "2.20.11-0ubuntu82.1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.20.11-0ubuntu82.1" + }, + { + "name" : "kmod", + "version" : "29-1ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "29-1ubuntu1" + }, + { + "name" : "xkb-data", + "version" : "2.33-1", + "publisher" : "Ubuntu", + "sourceName" : "xkeyboard-config", + "sourceVersion" : "2.33-1" + }, + { + "name" : "python3-pyparsing", + "version" : "2.4.7-1", + "publisher" : "Ubuntu", + "sourceName" : "pyparsing", + "sourceVersion" : "2.4.7-1" + }, + { + "name" : "needrestart", + "version" : "3.5-5ubuntu2.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.5-5ubuntu2.1" + }, + { + "name" : "libcap2", + "version" : "1:2.44-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2.44-1build3" + }, + { + "name" : "perl-base", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "perl", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "rudder-agent", + "version" : "7.2.0~rc1-ubuntu22.4", + "publisher" : "Ubuntu", + "sourceVersion" : "7.2.0~rc1-ubuntu22.4" + }, + { + "name" : "libgcab-1.0-0", + "version" : "1.4-3build2", + "publisher" : "Ubuntu", + "sourceName" : "gcab", + "sourceVersion" : "1.4-3build2" + }, + { + "name" : "motd-news-config", + "version" : "12ubuntu4.1", + "publisher" : "Ubuntu", + "sourceName" : "base-files", + "sourceVersion" : "12ubuntu4.1" + }, + { + "name" : "libfdisk1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libxtables12", + "version" : "1.8.7-1ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "iptables", + "sourceVersion" : "1.8.7-1ubuntu5" + }, + { + "name" : "tmux", + "version" : "3.2a-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.2a-4build1" + }, + { + "name" : "gpgconf", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "iproute2", + "version" : "5.15.0-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "5.15.0-1ubuntu2" + }, + { + "name" : "gpg", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "python3-jeepney", + "version" : "0.7.1-3", + "publisher" : "Ubuntu", + "sourceName" : "jeepney", + "sourceVersion" : "0.7.1-3" + }, + { + "name" : "libpcre2-8-0", + "version" : "10.39-3build1", + "publisher" : "Ubuntu", + "sourceName" : "pcre2", + "sourceVersion" : "10.39-3build1" + }, + { + "name" : "uuid-runtime", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "openssh-server", + "version" : "1:8.9p1-3", + "publisher" : "Ubuntu", + "sourceName" : "openssh", + "sourceVersion" : "1:8.9p1-3" + }, + { + "name" : "ftp", + "version" : "20210827-4build1", + "publisher" : "Ubuntu", + "sourceName" : "tnftp", + "sourceVersion" : "20210827-4build1" + }, + { + "name" : "libestr0", + "version" : "0.1.10-2.1build3", + "publisher" : "Ubuntu", + "sourceName" : "libestr", + "sourceVersion" : "0.1.10-2.1build3" + }, + { + "name" : "python3-pexpect", + "version" : "4.8.0-2ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "pexpect", + "sourceVersion" : "4.8.0-2ubuntu1" + }, + { + "name" : "time", + "version" : "1.9-0.1build2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.9-0.1build2" + }, + { + "name" : "python3-netifaces", + "version" : "0.11.0-1build2", + "publisher" : "Ubuntu", + "sourceName" : "netifaces", + "sourceVersion" : "0.11.0-1build2" + }, + { + "name" : "libblockdev2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "rsyslog", + "version" : "8.2112.0-2ubuntu2.2", + "publisher" : "Ubuntu", + "sourceVersion" : "8.2112.0-2ubuntu2.2" + }, + { + "name" : "libblockdev-crypto2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "libkrb5support0", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "libxml-treepp-perl", + "version" : "0.43-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.43-1" + }, + { + "name" : "libnfnetlink0", + "version" : "1.0.1-3build3", + "publisher" : "Ubuntu", + "sourceName" : "libnfnetlink", + "sourceVersion" : "1.0.1-3build3" + }, + { + "name" : "iputils-tracepath", + "version" : "3:20211215-1", + "publisher" : "Ubuntu", + "sourceName" : "iputils", + "sourceVersion" : "3:20211215-1" + }, + { + "name" : "bsdextrautils", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libnss3", + "version" : "2:3.68.2-0ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "nss", + "sourceVersion" : "2:3.68.2-0ubuntu1.1" + }, + { + "name" : "libglib2.0-0", + "version" : "2.72.1-1", + "publisher" : "Ubuntu", + "sourceName" : "glib2.0", + "sourceVersion" : "2.72.1-1" + }, + { + "name" : "libgpg-error0", + "version" : "1.43-3", + "publisher" : "Ubuntu", + "sourceName" : "libgpg-error", + "sourceVersion" : "1.43-3" + }, + { + "name" : "python3-newt", + "version" : "0.52.21-5ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "newt", + "sourceVersion" : "0.52.21-5ubuntu2" + }, + { + "name" : "libpython3.10-minimal", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceName" : "python3.10", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "less", + "version" : "590-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "590-1build1" + }, + { + "name" : "gawk", + "version" : "1:5.1.0-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1:5.1.0-1build3" + }, + { + "name" : "libc6", + "version" : "2.35-0ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "glibc", + "sourceVersion" : "2.35-0ubuntu3" + }, + { + "name" : "apt-transport-https", + "version" : "2.4.7", + "publisher" : "Ubuntu", + "sourceName" : "apt", + "sourceVersion" : "2.4.7" + }, + { + "name" : "liberror-perl", + "version" : "0.17029-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.17029-1" + }, + { + "name" : "libseccomp2", + "version" : "2.5.3-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "libseccomp", + "sourceVersion" : "2.5.3-2ubuntu2" + }, + { + "name" : "libmount1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "netcat-openbsd", + "version" : "1.218-4ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.218-4ubuntu1" + }, + { + "name" : "systemd-sysv", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "libblockdev-utils2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "git", + "version" : "1:2.34.1-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2.34.1-1ubuntu1.4" + }, + { + "name" : "busybox-static", + "version" : "1:1.30.1-7ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "busybox", + "sourceVersion" : "1:1.30.1-7ubuntu3" + }, + { + "name" : "usb-modeswitch-data", + "version" : "20191128-4", + "publisher" : "Ubuntu", + "sourceVersion" : "20191128-4" + }, + { + "name" : "libssl3", + "version" : "3.0.2-0ubuntu1.6", + "publisher" : "Ubuntu", + "sourceName" : "openssl", + "sourceVersion" : "3.0.2-0ubuntu1.6" + }, + { + "name" : "libblockdev-fs2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "libfwupd2", + "version" : "1.7.5-3", + "publisher" : "Ubuntu", + "sourceName" : "fwupd", + "sourceVersion" : "1.7.5-3" + }, + { + "name" : "file", + "version" : "1:5.41-3", + "publisher" : "Ubuntu", + "sourceVersion" : "1:5.41-3" + }, + { + "name" : "libuchardet0", + "version" : "0.0.7-1build2", + "publisher" : "Ubuntu", + "sourceName" : "uchardet", + "sourceVersion" : "0.0.7-1build2" + }, + { + "name" : "info", + "version" : "6.8-4build1", + "publisher" : "Ubuntu", + "sourceName" : "texinfo", + "sourceVersion" : "6.8-4build1" + }, + { + "name" : "vim-tiny", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "gcc-12-base", + "version" : "12-20220319-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gcc-12", + "sourceVersion" : "12-20220319-1ubuntu1" + }, + { + "name" : "libxmuu1", + "version" : "2:1.1.3-3", + "publisher" : "Ubuntu", + "sourceName" : "libxmu", + "sourceVersion" : "2:1.1.3-3" + }, + { + "name" : "python3-distupgrade", + "version" : "1:22.4.11", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-release-upgrader", + "sourceVersion" : "1:22.4.11" + }, + { + "name" : "python3-commandnotfound", + "version" : "22.4.0", + "publisher" : "Ubuntu", + "sourceName" : "command-not-found", + "sourceVersion" : "22.4.0" + }, + { + "name" : "grub-pc-bin", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "python3-minimal", + "version" : "3.10.4-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python3-defaults", + "sourceVersion" : "3.10.4-0ubuntu2" + }, + { + "name" : "patch", + "version" : "2.7.6-7build2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.7.6-7build2" + }, + { + "name" : "libsepol2", + "version" : "3.3-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libsepol", + "sourceVersion" : "3.3-1build1" + }, + { + "name" : "libinih1", + "version" : "53-1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "libinih", + "sourceVersion" : "53-1ubuntu3" + }, + { + "name" : "udev", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "init", + "version" : "1.62", + "publisher" : "Ubuntu", + "sourceName" : "init-system-helpers", + "sourceVersion" : "1.62" + }, + { + "name" : "libtinfo6", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libefivar1", + "version" : "37-6ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "efivar", + "sourceVersion" : "37-6ubuntu2" + }, + { + "name" : "libpam-modules", + "version" : "1.4.0-11ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "pam", + "sourceVersion" : "1.4.0-11ubuntu2" + }, + { + "name" : "libjson-c5", + "version" : "0.15-3~ubuntu1.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "json-c", + "sourceVersion" : "0.15-3~ubuntu1.22.4.1" + }, + { + "name" : "libsemanage-common", + "version" : "3.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libsemanage", + "sourceVersion" : "3.3-1build2" + }, + { + "name" : "libhogweed6", + "version" : "3.7.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "nettle", + "sourceVersion" : "3.7.3-1build2" + }, + { + "name" : "libjson-glib-1.0-0", + "version" : "1.6.6-1build1", + "publisher" : "Ubuntu", + "sourceName" : "json-glib", + "sourceVersion" : "1.6.6-1build1" + }, + { + "name" : "libbz2-1.0", + "version" : "1.0.8-5build1", + "publisher" : "Ubuntu", + "sourceName" : "bzip2", + "sourceVersion" : "1.0.8-5build1" + }, + { + "name" : "ldapscripts", + "version" : "2.0.8-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.0.8-1ubuntu2" + }, + { + "name" : "linux-image-5.15.0-41-generic", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux-signed", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "libkrb5-3", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "libpcap0.8", + "version" : "1.10.1-4build1", + "publisher" : "Ubuntu", + "sourceName" : "libpcap", + "sourceVersion" : "1.10.1-4build1" + }, + { + "name" : "grub-pc", + "version" : "2.6-2ubuntu7", + "publisher" : "Ubuntu", + "sourceName" : "grub2", + "sourceVersion" : "2.6-2ubuntu7" + }, + { + "name" : "mawk", + "version" : "1.3.4.20200120-3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.3.4.20200120-3" + }, + { + "name" : "libbpf0", + "version" : "1:0.5.0-1", + "publisher" : "Ubuntu", + "sourceName" : "libbpf (0.5.0-1)", + "sourceVersion" : "0.5.0-1" + }, + { + "name" : "libsqlite3-0", + "version" : "3.37.2-2", + "publisher" : "Ubuntu", + "sourceName" : "sqlite3", + "sourceVersion" : "3.37.2-2" + }, + { + "name" : "libgcc-s1", + "version" : "12-20220319-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gcc-12", + "sourceVersion" : "12-20220319-1ubuntu1" + }, + { + "name" : "libftdi1-2", + "version" : "1.5-5build3", + "publisher" : "Ubuntu", + "sourceName" : "libftdi1", + "sourceVersion" : "1.5-5build3" + }, + { + "name" : "libmbim-proxy", + "version" : "1.26.2-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libmbim", + "sourceVersion" : "1.26.2-1build1" + }, + { + "name" : "python3-update-manager", + "version" : "1:22.4.9", + "publisher" : "Ubuntu", + "sourceName" : "update-manager", + "sourceVersion" : "1:22.4.9" + }, + { + "name" : "python3-idna", + "version" : "3.3-1", + "publisher" : "Ubuntu", + "sourceName" : "python-idna", + "sourceVersion" : "3.3-1" + }, + { + "name" : "media-types", + "version" : "7.0.0", + "publisher" : "Ubuntu", + "sourceVersion" : "7.0.0" + }, + { + "name" : "libpopt0", + "version" : "1.18-3build1", + "publisher" : "Ubuntu", + "sourceName" : "popt", + "sourceVersion" : "1.18-3build1" + }, + { + "name" : "ubuntu-keyring", + "version" : "2021.3.26", + "publisher" : "Ubuntu", + "sourceVersion" : "2021.3.26" + }, + { + "name" : "libgpgme11", + "version" : "1.16.0-1.2ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "gpgme1.0", + "sourceVersion" : "1.16.0-1.2ubuntu4" + }, + { + "name" : "ufw", + "version" : "0.36.1-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.36.1-4build1" + }, + { + "name" : "python3-openssl", + "version" : "21.0.0-1", + "publisher" : "Ubuntu", + "sourceName" : "pyopenssl", + "sourceVersion" : "21.0.0-1" + }, + { + "name" : "python3-bcrypt", + "version" : "3.2.0-1build1", + "publisher" : "Ubuntu", + "sourceName" : "python-bcrypt", + "sourceVersion" : "3.2.0-1build1" + }, + { + "name" : "vim-runtime", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "libpipeline1", + "version" : "1.5.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libpipeline", + "sourceVersion" : "1.5.5-1" + }, + { + "name" : "libfreetype6", + "version" : "2.11.1+dfsg-1build1", + "publisher" : "Ubuntu", + "sourceName" : "freetype", + "sourceVersion" : "2.11.1+dfsg-1build1" + }, + { + "name" : "python3-automat", + "version" : "20.2.0-1", + "publisher" : "Ubuntu", + "sourceName" : "automat", + "sourceVersion" : "20.2.0-1" + }, + { + "name" : "finalrd", + "version" : "9build1", + "publisher" : "Ubuntu", + "sourceVersion" : "9build1" + }, + { + "name" : "jq", + "version" : "1.6-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.6-2.1ubuntu3" + }, + { + "name" : "libldap-2.5-0", + "version" : "2.5.13+dfsg-0ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "openldap", + "sourceVersion" : "2.5.13+dfsg-0ubuntu0.22.4.1" + }, + { + "name" : "cryptsetup-bin", + "version" : "2:2.4.3-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cryptsetup", + "sourceVersion" : "2:2.4.3-1ubuntu1" + }, + { + "name" : "sed", + "version" : "4.8-1ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.8-1ubuntu2" + }, + { + "name" : "libmnl0", + "version" : "1.0.4-3build2", + "publisher" : "Ubuntu", + "sourceName" : "libmnl", + "sourceVersion" : "1.0.4-3build2" + }, + { + "name" : "libisns0", + "version" : "0.101-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "open-isns", + "sourceVersion" : "0.101-0ubuntu2" + }, + { + "name" : "libmaxminddb0", + "version" : "1.5.2-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libmaxminddb", + "sourceVersion" : "1.5.2-1build2" + }, + { + "name" : "libapt-pkg6.0", + "version" : "2.4.5", + "publisher" : "Ubuntu", + "sourceName" : "apt", + "sourceVersion" : "2.4.5" + }, + { + "name" : "fwupd-signed", + "version" : "1.44+1.2-3", + "publisher" : "Ubuntu", + "sourceName" : "fwupd-signed (1.44)", + "sourceVersion" : "1.44" + }, + { + "name" : "hostname", + "version" : "3.23ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "3.23ubuntu2" + }, + { + "name" : "libsodium23", + "version" : "1.0.18-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libsodium", + "sourceVersion" : "1.0.18-1build2" + }, + { + "name" : "gpgv", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "python3.10", + "version" : "3.10.4-3ubuntu0.1", + "publisher" : "Ubuntu", + "sourceVersion" : "3.10.4-3ubuntu0.1" + }, + { + "name" : "man-db", + "version" : "2.10.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.10.2-1" + }, + { + "name" : "libmm-glib0", + "version" : "1.18.6-1", + "publisher" : "Ubuntu", + "sourceName" : "modemmanager", + "sourceVersion" : "1.18.6-1" + }, + { + "name" : "update-manager-core", + "version" : "1:22.4.9", + "publisher" : "Ubuntu", + "sourceName" : "update-manager", + "sourceVersion" : "1:22.4.9" + }, + { + "name" : "python3-launchpadlib", + "version" : "1.10.16-1", + "publisher" : "Ubuntu", + "sourceName" : "python-launchpadlib", + "sourceVersion" : "1.10.16-1" + }, + { + "name" : "fwupd", + "version" : "1.7.5-3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7.5-3" + }, + { + "name" : "sharutils", + "version" : "1:4.15.2-5build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:4.15.2-5build1" + }, + { + "name" : "python3-jwt", + "version" : "2.3.0-1", + "publisher" : "Ubuntu", + "sourceName" : "pyjwt", + "sourceVersion" : "2.3.0-1" + }, + { + "name" : "libproc-processtable-perl", + "version" : "0.634-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.634-1build1" + }, + { + "name" : "python3-twisted", + "version" : "22.1.0-2ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "twisted", + "sourceVersion" : "22.1.0-2ubuntu2.1" + }, + { + "name" : "libpcre3", + "version" : "2:8.39-13ubuntu0.22.4.1", + "publisher" : "Ubuntu", + "sourceName" : "pcre3", + "sourceVersion" : "2:8.39-13ubuntu0.22.4.1" + }, + { + "name" : "libmpdec3", + "version" : "2.5.1-2build2", + "publisher" : "Ubuntu", + "sourceName" : "mpdecimal", + "sourceVersion" : "2.5.1-2build2" + }, + { + "name" : "libgstreamer1.0-0", + "version" : "1.20.1-1", + "publisher" : "Ubuntu", + "sourceName" : "gstreamer1.0", + "sourceVersion" : "1.20.1-1" + }, + { + "name" : "linux-modules-5.15.0-41-generic", + "version" : "5.15.0-41.44", + "publisher" : "Ubuntu", + "sourceName" : "linux", + "sourceVersion" : "5.15.0-41.44" + }, + { + "name" : "libdns-export1110", + "version" : "1:9.11.19+dfsg-2.1ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "bind9-libs", + "sourceVersion" : "1:9.11.19+dfsg-2.1ubuntu3" + }, + { + "name" : "fonts-ubuntu-console", + "version" : "0.83-6ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "fonts-ubuntu", + "sourceVersion" : "0.83-6ubuntu1" + }, + { + "name" : "gpg-agent", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libpolkit-agent-1-0", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "libmspack0", + "version" : "0.10.1-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libmspack", + "sourceVersion" : "0.10.1-2build2" + }, + { + "name" : "cloud-initramfs-copymods", + "version" : "0.47ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cloud-initramfs-tools", + "sourceVersion" : "0.47ubuntu1" + }, + { + "name" : "python3-hyperlink", + "version" : "21.0.0-3", + "publisher" : "Ubuntu", + "sourceName" : "hyperlink", + "sourceVersion" : "21.0.0-3" + }, + { + "name" : "iso-codes", + "version" : "4.9.0-1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.9.0-1" + }, + { + "name" : "kpartx", + "version" : "0.8.8-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "multipath-tools", + "sourceVersion" : "0.8.8-1ubuntu1" + }, + { + "name" : "tar", + "version" : "1.34+dfsg-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.34+dfsg-1build3" + }, + { + "name" : "openssh-client", + "version" : "1:8.9p1-3", + "publisher" : "Ubuntu", + "sourceName" : "openssh", + "sourceVersion" : "1:8.9p1-3" + }, + { + "name" : "pci.ids", + "version" : "0.0~2022.1.22-1", + "publisher" : "Ubuntu", + "sourceVersion" : "0.0~2022.1.22-1" + }, + { + "name" : "python3-lib2to3", + "version" : "3.10.4-0ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "python3-stdlib-extensions", + "sourceVersion" : "3.10.4-0ubuntu1" + }, + { + "name" : "libtirpc3", + "version" : "1.3.2-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libtirpc", + "sourceVersion" : "1.3.2-2build1" + }, + { + "name" : "python3-software-properties", + "version" : "0.99.22.2", + "publisher" : "Ubuntu", + "sourceName" : "software-properties", + "sourceVersion" : "0.99.22.2" + }, + { + "name" : "libsemanage2", + "version" : "3.3-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libsemanage", + "sourceVersion" : "3.3-1build2" + }, + { + "name" : "python3-service-identity", + "version" : "18.1.0-6", + "publisher" : "Ubuntu", + "sourceName" : "python-service-identity", + "sourceVersion" : "18.1.0-6" + }, + { + "name" : "sensible-utils", + "version" : "0.0.17", + "publisher" : "Ubuntu", + "sourceVersion" : "0.0.17" + }, + { + "name" : "login", + "version" : "1:4.8.1-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "shadow", + "sourceVersion" : "1:4.8.1-2ubuntu2" + }, + { + "name" : "gdisk", + "version" : "1.0.8-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.0.8-4build1" + }, + { + "name" : "lsof", + "version" : "4.93.2+dfsg-1.1build2", + "publisher" : "Ubuntu", + "sourceVersion" : "4.93.2+dfsg-1.1build2" + }, + { + "name" : "open-vm-tools", + "version" : "2:11.3.5-1ubuntu4", + "publisher" : "Ubuntu", + "sourceVersion" : "2:11.3.5-1ubuntu4" + }, + { + "name" : "libjansson4", + "version" : "2.13.1-1.1build3", + "publisher" : "Ubuntu", + "sourceName" : "jansson", + "sourceVersion" : "2.13.1-1.1build3" + }, + { + "name" : "ubuntu-release-upgrader-core", + "version" : "1:22.4.11", + "publisher" : "Ubuntu", + "sourceName" : "ubuntu-release-upgrader", + "sourceVersion" : "1:22.4.11" + }, + { + "name" : "passwd", + "version" : "1:4.8.1-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "shadow", + "sourceVersion" : "1:4.8.1-2ubuntu2" + }, + { + "name" : "libnss-systemd", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "util-linux", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libarchive13", + "version" : "3.6.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "libarchive", + "sourceVersion" : "3.6.0-1ubuntu1" + }, + { + "name" : "gnupg", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "lshw", + "version" : "2.19.git.2021.6.19.996aaad9c7-2build1", + "publisher" : "Ubuntu", + "sourceVersion" : "2.19.git.2021.6.19.996aaad9c7-2build1" + }, + { + "name" : "diffutils", + "version" : "1:3.8-0ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1:3.8-0ubuntu2" + }, + { + "name" : "libcurl4", + "version" : "7.81.0-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceName" : "curl", + "sourceVersion" : "7.81.0-1ubuntu1.4" + }, + { + "name" : "publicsuffix", + "version" : "20211207.1025-1", + "publisher" : "Ubuntu", + "sourceVersion" : "20211207.1025-1" + }, + { + "name" : "os-prober", + "version" : "1.79ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "1.79ubuntu2" + }, + { + "name" : "libpng16-16", + "version" : "1.6.37-3build5", + "publisher" : "Ubuntu", + "sourceName" : "libpng1.6", + "sourceVersion" : "1.6.37-3build5" + }, + { + "name" : "friendly-recovery", + "version" : "0.2.42", + "publisher" : "Ubuntu", + "sourceVersion" : "0.2.42" + }, + { + "name" : "telnet", + "version" : "0.17-44build1", + "publisher" : "Ubuntu", + "sourceName" : "netkit-telnet", + "sourceVersion" : "0.17-44build1" + }, + { + "name" : "bash-completion", + "version" : "1:2.11-5ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2.11-5ubuntu1" + }, + { + "name" : "libncursesw6", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "python3-systemd", + "version" : "234-3ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-systemd", + "sourceVersion" : "234-3ubuntu2" + }, + { + "name" : "groff-base", + "version" : "1.22.4-8build1", + "publisher" : "Ubuntu", + "sourceName" : "groff", + "sourceVersion" : "1.22.4-8build1" + }, + { + "name" : "libx11-6", + "version" : "2:1.7.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libx11", + "sourceVersion" : "2:1.7.5-1" + }, + { + "name" : "mdadm", + "version" : "4.2-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "4.2-0ubuntu1" + }, + { + "name" : "bind9-host", + "version" : "1:9.18.1-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "bind9", + "sourceVersion" : "1:9.18.1-1ubuntu1.1" + }, + { + "name" : "libblockdev-part2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "bash", + "version" : "5.1-6ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.1-6ubuntu1" + }, + { + "name" : "whiptail", + "version" : "0.52.21-5ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "newt", + "sourceVersion" : "0.52.21-5ubuntu2" + }, + { + "name" : "libtss2-tcti-mssim0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "dosfstools", + "version" : "4.2-1build3", + "publisher" : "Ubuntu", + "sourceVersion" : "4.2-1build3" + }, + { + "name" : "libudev1", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "python3", + "version" : "3.10.4-0ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python3-defaults", + "sourceVersion" : "3.10.4-0ubuntu2" + }, + { + "name" : "perl", + "version" : "5.34.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.34.0-3ubuntu1" + }, + { + "name" : "libappstream4", + "version" : "0.15.2-2", + "publisher" : "Ubuntu", + "sourceName" : "appstream", + "sourceVersion" : "0.15.2-2" + }, + { + "name" : "libnghttp2-14", + "version" : "1.43.0-1build3", + "publisher" : "Ubuntu", + "sourceName" : "nghttp2", + "sourceVersion" : "1.43.0-1build3" + }, + { + "name" : "networkd-dispatcher", + "version" : "2.1-2ubuntu0.22.4.2", + "publisher" : "Ubuntu", + "sourceVersion" : "2.1-2ubuntu0.22.4.2" + }, + { + "name" : "libusb-1.0-0", + "version" : "2:1.0.25-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "libusb-1.0", + "sourceVersion" : "2:1.0.25-1ubuntu2" + }, + { + "name" : "netplan.io", + "version" : "0.104-0ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "0.104-0ubuntu2" + }, + { + "name" : "ntfs-3g", + "version" : "1:2021.8.22-3ubuntu1.1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:2021.8.22-3ubuntu1.1" + }, + { + "name" : "ncurses-base", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libpci3", + "version" : "1:3.7.0-6", + "publisher" : "Ubuntu", + "sourceName" : "pciutils", + "sourceVersion" : "1:3.7.0-6" + }, + { + "name" : "python3-jsonpatch", + "version" : "1.32-2", + "publisher" : "Ubuntu", + "sourceName" : "python-json-patch", + "sourceVersion" : "1.32-2" + }, + { + "name" : "libtss2-tcti-cmd0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "libss2", + "version" : "1.46.5-2ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "e2fsprogs", + "sourceVersion" : "1.46.5-2ubuntu1.1" + }, + { + "name" : "readline-common", + "version" : "8.1.2-1", + "publisher" : "Ubuntu", + "sourceName" : "readline", + "sourceVersion" : "8.1.2-1" + }, + { + "name" : "libncurses6", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libk5crypto3", + "version" : "1.19.2-2", + "publisher" : "Ubuntu", + "sourceName" : "krb5", + "sourceVersion" : "1.19.2-2" + }, + { + "name" : "python3-cffi-backend", + "version" : "1.15.0-1build2", + "publisher" : "Ubuntu", + "sourceName" : "python-cffi", + "sourceVersion" : "1.15.0-1build2" + }, + { + "name" : "python3-incremental", + "version" : "21.3.0-1", + "publisher" : "Ubuntu", + "sourceName" : "incremental", + "sourceVersion" : "21.3.0-1" + }, + { + "name" : "libatasmart4", + "version" : "0.19-5build2", + "publisher" : "Ubuntu", + "sourceName" : "libatasmart", + "sourceVersion" : "0.19-5build2" + }, + { + "name" : "git-man", + "version" : "1:2.34.1-1ubuntu1.4", + "publisher" : "Ubuntu", + "sourceName" : "git", + "sourceVersion" : "1:2.34.1-1ubuntu1.4" + }, + { + "name" : "libuuid1", + "version" : "2.37.2-4ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "util-linux", + "sourceVersion" : "2.37.2-4ubuntu3" + }, + { + "name" : "libidn2-0", + "version" : "2.3.2-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libidn2", + "sourceVersion" : "2.3.2-2build1" + }, + { + "name" : "python3-attr", + "version" : "21.2.0-1", + "publisher" : "Ubuntu", + "sourceName" : "python-attrs", + "sourceVersion" : "21.2.0-1" + }, + { + "name" : "vim-common", + "version" : "2:8.2.3995-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "vim", + "sourceVersion" : "2:8.2.3995-1ubuntu2" + }, + { + "name" : "bind9-libs", + "version" : "1:9.18.1-1ubuntu1.1", + "publisher" : "Ubuntu", + "sourceName" : "bind9", + "sourceVersion" : "1:9.18.1-1ubuntu1.1" + }, + { + "name" : "findutils", + "version" : "4.8.0-1ubuntu3", + "publisher" : "Ubuntu", + "sourceVersion" : "4.8.0-1ubuntu3" + }, + { + "name" : "sbsigntool", + "version" : "0.9.4-2ubuntu2", + "publisher" : "Ubuntu", + "sourceVersion" : "0.9.4-2ubuntu2" + }, + { + "name" : "usbutils", + "version" : "1:14-1build1", + "publisher" : "Ubuntu", + "sourceVersion" : "1:14-1build1" + }, + { + "name" : "libblockdev-part-err2", + "version" : "2.26-1", + "publisher" : "Ubuntu", + "sourceName" : "libblockdev", + "sourceVersion" : "2.26-1" + }, + { + "name" : "libtext-iconv-perl", + "version" : "1.7-7build3", + "publisher" : "Ubuntu", + "sourceVersion" : "1.7-7build3" + }, + { + "name" : "libsmbios-c2", + "version" : "2.4.3-1build1", + "publisher" : "Ubuntu", + "sourceName" : "libsmbios", + "sourceVersion" : "2.4.3-1build1" + }, + { + "name" : "python3-apport", + "version" : "2.20.11-0ubuntu82.1", + "publisher" : "Ubuntu", + "sourceName" : "apport", + "sourceVersion" : "2.20.11-0ubuntu82.1" + }, + { + "name" : "lxd-agent-loader", + "version" : "0.5", + "publisher" : "Ubuntu", + "sourceVersion" : "0.5" + }, + { + "name" : "nano", + "version" : "6.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "6.2-1" + }, + { + "name" : "console-setup-linux", + "version" : "1.205ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "console-setup", + "sourceVersion" : "1.205ubuntu3" + }, + { + "name" : "gettext-base", + "version" : "0.21-4ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "gettext", + "sourceVersion" : "0.21-4ubuntu4" + }, + { + "name" : "libpolkit-gobject-1-0", + "version" : "0.105-33", + "publisher" : "Ubuntu", + "sourceName" : "policykit-1", + "sourceVersion" : "0.105-33" + }, + { + "name" : "python3-httplib2", + "version" : "0.20.2-2", + "publisher" : "Ubuntu", + "sourceName" : "python-httplib2", + "sourceVersion" : "0.20.2-2" + }, + { + "name" : "initramfs-tools-core", + "version" : "0.140ubuntu13", + "publisher" : "Ubuntu", + "sourceName" : "initramfs-tools", + "sourceVersion" : "0.140ubuntu13" + }, + { + "name" : "libdebconfclient0", + "version" : "0.261ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "cdebconf", + "sourceVersion" : "0.261ubuntu1" + }, + { + "name" : "gir1.2-packagekitglib-1.0", + "version" : "1.2.5-2ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "packagekit", + "sourceVersion" : "1.2.5-2ubuntu2" + }, + { + "name" : "libbsd0", + "version" : "0.11.5-1", + "publisher" : "Ubuntu", + "sourceName" : "libbsd", + "sourceVersion" : "0.11.5-1" + }, + { + "name" : "libunwind8", + "version" : "1.3.2-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libunwind", + "sourceVersion" : "1.3.2-2build2" + }, + { + "name" : "python3-blinker", + "version" : "1.4+dfsg1-0.4", + "publisher" : "Ubuntu", + "sourceName" : "blinker", + "sourceVersion" : "1.4+dfsg1-0.4" + }, + { + "name" : "libc-bin", + "version" : "2.35-0ubuntu3", + "publisher" : "Ubuntu", + "sourceName" : "glibc", + "sourceVersion" : "2.35-0ubuntu3" + }, + { + "name" : "ncurses-bin", + "version" : "6.3-2", + "publisher" : "Ubuntu", + "sourceName" : "ncurses", + "sourceVersion" : "6.3-2" + }, + { + "name" : "libcap2-bin", + "version" : "1:2.44-1build3", + "publisher" : "Ubuntu", + "sourceName" : "libcap2", + "sourceVersion" : "1:2.44-1build3" + }, + { + "name" : "gnupg-l10n", + "version" : "2.2.27-3ubuntu2.1", + "publisher" : "Ubuntu", + "sourceName" : "gnupg2", + "sourceVersion" : "2.2.27-3ubuntu2.1" + }, + { + "name" : "libeatmydata1", + "version" : "130-2build1", + "publisher" : "Ubuntu", + "sourceName" : "libeatmydata", + "sourceVersion" : "130-2build1" + }, + { + "name" : "libxdmcp6", + "version" : "1:1.1.3-0ubuntu5", + "publisher" : "Ubuntu", + "sourceName" : "libxdmcp", + "sourceVersion" : "1:1.1.3-0ubuntu5" + }, + { + "name" : "libutempter0", + "version" : "1.2.1-2build2", + "publisher" : "Ubuntu", + "sourceName" : "libutempter", + "sourceVersion" : "1.2.1-2build2" + }, + { + "name" : "python3-constantly", + "version" : "15.1.0-2", + "publisher" : "Ubuntu", + "sourceName" : "constantly", + "sourceVersion" : "15.1.0-2" + }, + { + "name" : "libbinutils", + "version" : "2.38-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "binutils", + "sourceVersion" : "2.38-3ubuntu1" + }, + { + "name" : "libstdc++6", + "version" : "12-20220319-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "gcc-12", + "sourceVersion" : "12-20220319-1ubuntu1" + }, + { + "name" : "btrfs-progs", + "version" : "5.16.2-1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.16.2-1" + }, + { + "name" : "python3-pyasn1-modules", + "version" : "0.2.1-1", + "publisher" : "Ubuntu", + "sourceName" : "python-pyasn1-modules", + "sourceVersion" : "0.2.1-1" + }, + { + "name" : "python3-six", + "version" : "1.16.0-3ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "six", + "sourceVersion" : "1.16.0-3ubuntu1" + }, + { + "name" : "libmpfr6", + "version" : "4.1.0-3build3", + "publisher" : "Ubuntu", + "sourceName" : "mpfr4", + "sourceVersion" : "4.1.0-3build3" + }, + { + "name" : "libtss2-mu0", + "version" : "3.2.0-1ubuntu1", + "publisher" : "Ubuntu", + "sourceName" : "tpm2-tss", + "sourceVersion" : "3.2.0-1ubuntu1" + }, + { + "name" : "run-one", + "version" : "1.17-0ubuntu1", + "publisher" : "Ubuntu", + "sourceVersion" : "1.17-0ubuntu1" + }, + { + "name" : "python3-distro-info", + "version" : "1.1build1", + "publisher" : "Ubuntu", + "sourceName" : "distro-info", + "sourceVersion" : "1.1build1" + }, + { + "name" : "libdevmapper1.02.1", + "version" : "2:1.2.175-2.1ubuntu4", + "publisher" : "Ubuntu", + "sourceName" : "lvm2 (2.03.11-2.1ubuntu4)", + "sourceVersion" : "2.3.11-2.1ubuntu4" + }, + { + "name" : "python3-cryptography", + "version" : "3.4.8-1ubuntu2", + "publisher" : "Ubuntu", + "sourceName" : "python-cryptography", + "sourceVersion" : "3.4.8-1ubuntu2" + }, + { + "name" : "libmagic1", + "version" : "1:5.41-3", + "publisher" : "Ubuntu", + "sourceName" : "file", + "sourceVersion" : "1:5.41-3" + }, + { + "name" : "zsh", + "version" : "5.8.1-1", + "publisher" : "Ubuntu", + "sourceVersion" : "5.8.1-1" + }, + { + "name" : "tnftp", + "version" : "20210827-4build1", + "publisher" : "Ubuntu", + "sourceVersion" : "20210827-4build1" + }, + { + "name" : "libsystemd0", + "version" : "249.11-0ubuntu3.4", + "publisher" : "Ubuntu", + "sourceName" : "systemd", + "sourceVersion" : "249.11-0ubuntu3.4" + }, + { + "name" : "python3-tz", + "version" : "2022.1-1", + "publisher" : "Ubuntu", + "sourceName" : "python-tz", + "sourceVersion" : "2022.1-1" + }, + { + "name" : "libgdbm-compat4", + "version" : "1.23-1", + "publisher" : "Ubuntu", + "sourceName" : "gdbm", + "sourceVersion" : "1.23-1" + }, + { + "name" : "libyaml-0-2", + "version" : "0.2.2-1build2", + "publisher" : "Ubuntu", + "sourceName" : "libyaml", + "sourceVersion" : "0.2.2-1build2" + } + ], + "softwareUpdate" : [ + { + "name" : "snapd", + "version" : "2.56.2+22.04ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-software-properties", + "version" : "0.99.22.3", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "software-properties-common", + "version" : "0.99.22.3", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libldap-common", + "version" : "2.5.13+dfsg-0ubuntu0.22.04.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libgstreamer1.0-0", + "version" : "1.20.3-0ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup-bin", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "cryptsetup-initramfs", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-distupgrade", + "version" : "1:22.04.13", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "ubuntu-release-upgrader-core", + "version" : "1:22.04.13", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libnftables1", + "version" : "1.0.2-1ubuntu3", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "nftables", + "version" : "1.0.2-1ubuntu3", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "ubuntu-advantage-tools", + "version" : "27.10.1~22.04.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-gi", + "version" : "3.42.1-0ubuntu1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python3-apt", + "version" : "2.3.0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "python-apt-common", + "version" : "2.3.0ubuntu2.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "locales", + "version" : "2.35-0ubuntu3.1", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libnetplan0", + "version" : "0.104-0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "netplan.io", + "version" : "0.104-0ubuntu2.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libcryptsetup12", + "version" : "2:2.4.3-1ubuntu1.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "isc-dhcp-common", + "version" : "4.4.1-2.3ubuntu2.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "isc-dhcp-client", + "version" : "4.4.1-2.3ubuntu2.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "apt-utils", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "apt", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libapt-pkg6.0", + "version" : "2.4.7", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libc-bin", + "version" : "2.35-0ubuntu3.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "base-files", + "version" : "12ubuntu4.2", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "libc6", + "version" : "2.35-0ubuntu3.1", + "arch" : "amd64", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + }, + { + "name" : "motd-news-config", + "version" : "12ubuntu4.2", + "arch" : "all", + "from" : "apt-get", + "kind" : "none", + "source" : "Ubuntu:22.04/jammy-updates" + } + ], + "sounds" : [ + { + "name" : "Multimedia audio controller - Intel Corporation 82801AA AC'97 Audio Controller", + "description" : "rev 01", + "quantity" : 1 + } + ], + "storages" : [ + { + "name" : "sda", + "description" : "SCSI", + "size" : 45035290624, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "serialNumber" : "a23d4170", + "sType" : "disk", + "quantity" : 1 + }, + { + "name" : "sdb", + "description" : "SCSI", + "size" : 10485760, + "firmware" : "10", + "manufacturer" : "VBOX", + "model" : "HARDDISK", + "sType" : "disk", + "quantity" : 1 + } + ], + "videos" : [], + "vms" : [] + } +} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/JsonSpecMatcher.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/JsonSpecMatcher.scala index 9d4f44ad154..c2f3a2f0fd0 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/JsonSpecMatcher.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/JsonSpecMatcher.scala @@ -18,9 +18,9 @@ trait JsonSpecMatcher { self: MustMatchers with Specification => /** * Tests for a non-strict equality of json, by comparing the string. - * Ignores any whitespace between words, non-words, and lines + * Ignores any whitespace between words, non-words, and lines * i.e. additional whitespace in either side would still make the test pass. - * + * * Displays the actual and expected json in the error message in a pretty format. */ def equalsJson(res: String): Matcher[String] = { diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/MockServices.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/MockServices.scala index 6978658e2d2..d9089588b64 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/MockServices.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/MockServices.scala @@ -54,8 +54,8 @@ import com.normation.inventory.domain.AgentType.CfeCommunity import com.normation.inventory.ldap.core.InventoryDit import com.normation.inventory.ldap.core.InventoryDitService import com.normation.inventory.ldap.core.InventoryDitServiceImpl -import com.normation.inventory.ldap.core.LDAPFullInventoryRepository import com.normation.inventory.services.core.ReadOnlySoftwareDAO +import com.normation.rudder.MockNodes.allNodeFacts import com.normation.rudder.campaigns.Campaign import com.normation.rudder.campaigns.CampaignDetails import com.normation.rudder.campaigns.CampaignEvent @@ -98,7 +98,19 @@ import com.normation.rudder.domain.properties.PropertyProvider import com.normation.rudder.domain.queries._ import com.normation.rudder.domain.queries.CriterionComposition import com.normation.rudder.domain.reports.NodeModeConfig -import com.normation.rudder.domain.servers.Srv +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.CoreNodeFactRepository +import com.normation.rudder.facts.nodes.NodeFact +import com.normation.rudder.facts.nodes.NodeFactFullInventoryRepositoryProxy +import com.normation.rudder.facts.nodes.NodeFactStorage +import com.normation.rudder.facts.nodes.NodeInfoServiceProxy +import com.normation.rudder.facts.nodes.SelectFacts +import com.normation.rudder.facts.nodes.SoftDaoGetNodesbySofwareName +import com.normation.rudder.facts.nodes.StorageChangeEventDelete +import com.normation.rudder.facts.nodes.StorageChangeEventSave +import com.normation.rudder.facts.nodes.StorageChangeEventStatus +import com.normation.rudder.facts.nodes.WoFactNodeRepositoryProxy import com.normation.rudder.git.GitFindUtils import com.normation.rudder.git.GitRepositoryProviderImpl import com.normation.rudder.git.GitRevisionProvider @@ -116,7 +128,6 @@ import com.normation.rudder.rule.category._ import com.normation.rudder.services.marshalling.NodeGroupCategoryUnserialisationImpl import com.normation.rudder.services.marshalling.NodeGroupUnserialisationImpl import com.normation.rudder.services.marshalling.RuleUnserialisationImpl -import com.normation.rudder.services.nodes.NodeInfoService import com.normation.rudder.services.policies.NodeConfigData import com.normation.rudder.services.policies.NodeConfiguration import com.normation.rudder.services.policies.ParameterForConfiguration @@ -124,6 +135,7 @@ import com.normation.rudder.services.policies.Policy import com.normation.rudder.services.policies.SystemVariableServiceImpl import com.normation.rudder.services.queries._ import com.normation.rudder.services.servers.AllowedNetwork +import com.normation.rudder.services.servers.FactListNewNodes import com.normation.rudder.services.servers.NewNodeManager import com.normation.rudder.services.servers.PolicyServerManagementService import com.normation.rudder.services.servers.PolicyServers @@ -132,6 +144,7 @@ import com.normation.rudder.services.servers.RelaySynchronizationMethod.Classic import com.normation.utils.DateFormaterService import com.normation.utils.StringUuidGeneratorImpl import com.normation.zio._ +import com.softwaremill.quicklens._ import com.unboundid.ldap.sdk.DN import com.unboundid.ldap.sdk.RDN import com.unboundid.ldif.LDIFChangeRecord @@ -142,13 +155,13 @@ import org.eclipse.jgit.lib.ObjectId import org.joda.time.DateTime import org.joda.time.format.ISODateTimeFormat import scala.annotation.tailrec -import scala.collection.SortedMap -import scala.collection.immutable +import scala.collection.immutable.{SortedMap => ISortedMap} import scala.util.control.NonFatal import scala.xml.Elem import zio.{System => _, Tag => _, _} import zio.json.jsonDiscriminator import zio.json.jsonHint +import zio.stream.ZStream import zio.syntax._ /* @@ -748,14 +761,16 @@ class MockDirectives(mockTechniques: MockTechniques) { override def getActiveTechniqueByCategory( includeSystem: Boolean - ): IOResult[SortedMap[List[ActiveTechniqueCategoryId], CategoryWithActiveTechniques]] = { + ): IOResult[ISortedMap[List[ActiveTechniqueCategoryId], CategoryWithActiveTechniques]] = { implicit val ordering = ActiveTechniqueCategoryOrdering - rootActiveTechniqueCategory.get.map(_.fullIndex.map { - case (path, fat) => - ( - path, - CategoryWithActiveTechniques(fat.toActiveTechniqueCategory(), fat.activeTechniques.map(_.toActiveTechnique()).toSet) - ) + rootActiveTechniqueCategory.get.map(c => { + ISortedMap.empty[List[ActiveTechniqueCategoryId], CategoryWithActiveTechniques] ++ c.fullIndex.map { + case (path, fat) => + ( + path, + CategoryWithActiveTechniques(fat.toActiveTechniqueCategory(), fat.activeTechniques.map(_.toActiveTechnique()).toSet) + ) + } }) } @@ -1626,9 +1641,7 @@ final case class NodeBase( deleted: Map[NodeId, NodeDetails] ) -class MockNodes() { - val t2 = System.currentTimeMillis() - +object MockNodes { val softwares = List( Software(SoftwareUuid("s00"), name = Some("s00"), version = Some(new Version("1.0"))), Software(SoftwareUuid("s01"), name = Some("s01"), version = Some(new Version("1.0"))), @@ -1772,10 +1785,22 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== processes = Seq(Process(54432, Some("/bin/true"), Some(34.5f), Some(4235))), vms = Seq(), networks = Seq( - Network("enp0s3", None, InetAddressUtils.getAddressByName("10.0.2.15").toSeq, speed = Some("1000"), status = Some("Up")) + Network( + "enp0s3", + None, + InetAddressUtils.getAddressByName("10.0.2.15").toSeq, + speed = Some("1000"), + status = Some("Up") + ) ), - fileSystems = - Seq(FileSystem("/", Some("ext4"), freeSpace = Some(MemorySize(12076449792L)), totalSpace = Some(MemorySize(55076449792L)))) + fileSystems = Seq( + FileSystem( + "/", + Some("ext4"), + freeSpace = Some(MemorySize(12076449792L)), + totalSpace = Some(MemorySize(55076449792L)) + ) + ) ) val node1Node = Node( @@ -1819,7 +1844,7 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== ), name = None, description = None, - ram = Some(MemorySize(100000)), + ram = Some(MemorySize(1460132)), swap = Some(MemorySize(1000000)), inventoryDate = None, receiveDate = None, @@ -1837,10 +1862,22 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== processes = Seq(Process(54432, Some("/bin/true"), Some(34.5f), Some(4235))), vms = Seq(), networks = Seq( - Network("enp0s3", None, InetAddressUtils.getAddressByName("10.0.2.15").toSeq, speed = Some("1000"), status = Some("Up")) + Network( + "enp0s3", + None, + InetAddressUtils.getAddressByName("10.0.2.15").toSeq, + speed = Some("1000"), + status = Some("Up") + ) ), - fileSystems = - Seq(FileSystem("/", Some("ext4"), freeSpace = Some(MemorySize(12076449792L)), totalSpace = Some(MemorySize(55076449792L)))) + fileSystems = Seq( + FileSystem( + "/", + Some("ext4"), + freeSpace = Some(MemorySize(12076449792L)), + totalSpace = Some(MemorySize(55076449792L)) + ) + ) ) // node1 us a relay @@ -1928,139 +1965,13 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== fileSystems = Seq() ) - val allNodesInfo = Map(rootId -> root, node1.id -> node1, node2.id -> node2) - // both nodeInfoService and repo, since we deal with the same underlying node objects - object nodeInfoService extends NodeInfoService with LDAPFullInventoryRepository with WoNodeRepository { - - // node status is in inventory.main. - val nodeBase = Ref.Synchronized - .make( - Map( - (rootId, NodeDetails(root, rootInventory, None)), - (node1.id, NodeDetails(node1, nodeInventory1, None)), - (node2.id, NodeDetails(node2, nodeInventory2, None)), - (dscNode1.id, NodeDetails(dscNode1, dscInventory1, None)) - ) - ) - .runNow - - def getGenericOne[A](id: NodeId, status: InventoryStatus, f: NodeDetails => Option[A]): IOResult[Option[A]] = { - nodeBase.get.map(_.collectFirst { case (i, n) if (i == id && n.nInv.main.status == status && f(n).isDefined) => f(n).get }) - } - def getGenericAll[A](status: InventoryStatus, f: NodeDetails => Option[A]): IOResult[Map[NodeId, A]] = { - nodeBase.get.map(_.collect { case (id, n) if (n.nInv.main.status == status && f(n).isDefined) => (id, f(n).get) }) - } - def _info(node: NodeDetails) = Option(node.info) - def _fullInventory(node: NodeDetails) = Option(FullInventory(node.nInv, node.mInv)) - - override def getNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = getGenericOne(nodeId, AcceptedInventory, _info) - - override def getAll(): IOResult[Map[NodeId, NodeInfo]] = getGenericAll(AcceptedInventory, _info) - - override def getNodeInfos(nodesId: Set[NodeId]): IOResult[Set[NodeInfo]] = ZIO.foreach(nodesId) { nodeId => - getGenericOne(nodeId, AcceptedInventory, _info).map(x => x.get) - } - override def getNodeInfosSeq(nodesId: Seq[NodeId]): IOResult[Seq[NodeInfo]] = - ZIO.foreach(nodeIds)(nodeId => getGenericOne(nodeId, AcceptedInventory, _info).map(x => x.get)).map(_.toSeq) - override def getAllNodes(): IOResult[Map[NodeId, Node]] = getAll().map(_.map(kv => (kv._1, kv._2.node))) - override def getAllNodesIds(): IOResult[Set[NodeId]] = getAllNodes().map(_.keySet) - override def getAllNodeInfos(): IOResult[Seq[NodeInfo]] = getAll().map(_.values.toSeq) - override def getAllSystemNodeIds(): IOResult[Seq[NodeId]] = { - nodeBase.get.map(_.collect { case (id, n) if (n.info.isSystem) => id }.toSeq) - } - - override def getPendingNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = getGenericOne(nodeId, PendingInventory, _info) - override def getPendingNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = getGenericAll(PendingInventory, _info) - - override def getDeletedNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = getGenericOne(nodeId, RemovedInventory, _info) - override def getDeletedNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = getGenericAll(RemovedInventory, _info) - - override def get(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[FullInventory]] = - getGenericOne(id, inventoryStatus, _fullInventory) - override def get(id: NodeId): IOResult[Option[FullInventory]] = { - nodeBase.get.map(_.collectFirst { case (id, n) if (id == id) => FullInventory(n.nInv, n.mInv) }) - } - - override def getMachineId(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[(MachineUuid, InventoryStatus)]] = { - getGenericOne(id, inventoryStatus, n => n.mInv.map(x => (x.id, x.status))) - } - - override def getAllInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, FullInventory]] = - getGenericAll(inventoryStatus, _fullInventory) - - override def getInventories(inventoryStatus: InventoryStatus, nodeIds: Set[NodeId]): IOResult[Map[NodeId, FullInventory]] = - getAllInventories(inventoryStatus).map(_.filter(x => nodeIds.contains(x._1))) - - override def getAllNodeInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, NodeInventory]] = - getGenericAll(inventoryStatus, _fullInventory(_).map(_.node)) - - override def save(serverAndMachine: FullInventory): IOResult[Seq[LDIFChangeRecord]] = { - - // logic is in LDAPEntityMapper#inventoryEntriesToNodeInfos - def mainFromInventory(inv: FullInventory): NodeInfo = { - NodeInfo( - Node(inv), - inv.node.main.hostname, - inv.machine.map(m => MachineInfo(m.id, m.machineType, m.systemSerialNumber, m.manufacturer)), - inv.node.main.osDetails, - inv.node.serverIps.toList, - inv.node.inventoryDate.getOrElse(new DateTime(0)), - inv.node.main.keyStatus, - inv.node.agents, - inv.node.main.policyServerId, - inv.node.main.rootUser, - inv.node.archDescription, - inv.node.ram, - inv.node.timezone - ) - } - val id = serverAndMachine.node.main.id - - nodeBase - .updateZIO(nodes => { - (nodes.get(id) match { - case None => // new node - nodes + ((id, NodeDetails(mainFromInventory(serverAndMachine), serverAndMachine.node, serverAndMachine.machine))) - case Some(NodeDetails(m, nInv, mInv)) => // only update inventory - nodes + ((id, NodeDetails(m, serverAndMachine.node, serverAndMachine.machine))) - }).succeed - }) - .map(_ => Nil) - } - - // not implemented yet - override def getNumberOfManagedNodes: Int = ??? - - override def delete(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? - override def move(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? - override def moveNode(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? - - override def updateNode(node: Node, modId: ModificationId, actor: EventActor, reason: Option[String]): IOResult[Node] = { - nodeBase.modifyZIO { nodes => - nodes.get(node.id) match { - case None => Inconsistency(s"Node ${node.id.value} does not exists").fail - case Some(n) => - import com.softwaremill.quicklens._ - val newN = n.modify(_.info.node).setTo(node) - (node, (nodes + ((node.id, newN)))).succeed - } - } - } - - override def createNode(node: Node, modId: ModificationId, actor: EventActor, reason: Option[String]): IOResult[Node] = ??? - - override def deleteNode(node: Node, modId: ModificationId, actor: EventActor, reason: Option[String]): IOResult[Node] = ??? - - override def updateNodeKeyInfo( - nodeId: NodeId, - agentKey: Option[SecurityToken], - agentKeyStatus: Option[KeyStatus], - modId: ModificationId, - actor: EventActor, - reason: Option[String] - ): IOResult[Unit] = ??? - } - + val allNodesInfo = Map(rootId -> root, node1.id -> node1, node2.id -> node2) + val allNodeFacts = Map( + rootId -> NodeFact.fromCompat(root, Right(FullInventory(rootInventory, None)), softwares.take(7)), + node1.id -> NodeFact.fromCompat(node1, Right(FullInventory(nodeInventory1, None)), softwares.drop(5).take(10)), + node2.id -> NodeFact.fromCompat(node2, Right(FullInventory(nodeInventory2, None)), softwares.drop(5).take(10)), + dscNode1.id -> NodeFact.fromCompat(dscNode1, Right(FullInventory(dscInventory1, None)), softwares.drop(5).take(7)) + ) val defaultModesConfig = NodeModeConfig( globalComplianceMode = GlobalComplianceMode(FullCompliance, 30), nodeHeartbeatPeriod = None, @@ -2103,35 +2014,118 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== /** * Some more nodes */ - val nodeIds = (for { - i <- 0 to 10 - } yield { - NodeId(s"${i}") - }).toSet + val nodeIds = ( + for { + i <- 0 to 10 + } yield { + NodeId(s"${i}") + } + ).toSet def newNode(id: NodeId) = Node(id, "", "", NodeState.Enabled, false, false, DateTime.now, ReportingConfiguration(None, None, None), Nil, None) - val nodes = (Set(root, node1, node2) ++ nodeIds.map { id => - NodeInfo( - newNode(id), - s"Node-${id}", - None, - Linux(Debian, "Jessie", new Version("7.0"), None, new Version("3.2")), - Nil, - DateTime.now, - UndefinedKey, - Seq(AgentInfo(CfeCommunity, None, PublicKey("rsa public key"), Set())), - NodeId("root"), - "", - None, - None, - None - ) - }).map(n => (n.id, n)).toMap + val nodes = ( + Set(root, node1, node2) ++ nodeIds.map { id => + NodeInfo( + newNode(id), + s"Node-${id}", + None, + Linux(Debian, "Jessie", new Version("7.0"), None, new Version("3.2")), + Nil, + DateTime.now, + UndefinedKey, + Seq(AgentInfo(CfeCommunity, None, PublicKey("rsa public key"), Set())), + NodeId("root"), + "", + None, + None, + None + ) + } + ).map(n => (n.id, n)).toMap + +} + +class MockNodes() { + val t2 = System.currentTimeMillis() + + object nodeFactStorage extends NodeFactStorage { + val nodeFactBase = Ref.make(allNodeFacts).runNow + + override def save(nodeFact: NodeFact)(implicit attrs: SelectFacts = SelectFacts.all): IOResult[StorageChangeEventSave] = { + nodeFactBase.modify { b => + val opt = b.get(nodeFact.id) + val updated = SelectFacts.merge(nodeFact, opt) + ( + opt match { + case Some(n) => + StorageChangeEventSave.Updated(n, updated, attrs) + case None => + StorageChangeEventSave.Created(nodeFact, attrs) + }, + b + (nodeFact.id -> updated) + ) + } + } + + override def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[StorageChangeEventStatus] = { + nodeFactBase.modify(base => { + base.get(nodeId) match { + case Some(n) => + (StorageChangeEventStatus.Done(nodeId), base + (n.id -> n.modify(_.rudderSettings.status).setTo(status))) + case None => (StorageChangeEventStatus.Noop(nodeId), base) + } + }) + } + + override def delete(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[StorageChangeEventDelete] = { + nodeFactBase.modify(b => { + b.get(nodeId) match { + case Some(n) => (StorageChangeEventDelete.Deleted(n, attrs), b.removed(nodeId)) + case None => (StorageChangeEventDelete.Noop(nodeId), b) + } + }) + } + + def get(nodeId: NodeId, status: InventoryStatus)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + nodeFactBase.get.map(_.get(nodeId) match { + case Some(n) if (n.rudderSettings.status == status) => Some(SelectFacts.mask(n)) + case _ => None + }) + } + + override def getPending(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + get(nodeId, PendingInventory) + } + + override def getAccepted(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + get(nodeId, AcceptedInventory) + } + + def getAll(status: InventoryStatus)(implicit attrs: SelectFacts): IOStream[NodeFact] = { + ZStream + .fromZIO( + nodeFactBase.get.map(base => { + ZStream.fromIterable(base.collect { + case (_, f) if (f.rudderSettings.status == status) => SelectFacts.mask(f) + }) + }) + ) + .flatten + } + + override def getAllPending()(implicit attrs: SelectFacts): IOStream[NodeFact] = { + getAll(PendingInventory) + } + + override def getAllAccepted()(implicit attrs: SelectFacts): IOStream[NodeFact] = { + getAll(AcceptedInventory) + } + } object softwareDao extends ReadOnlySoftwareDAO { - val softRef = Ref.Synchronized.make(softwares.map(s => (s.id, s)).toMap).runNow + val softRef = Ref.Synchronized.make(MockNodes.softwares.map(s => (s.id, s)).toMap).runNow override def getSoftware(ids: Seq[SoftwareUuid]): IOResult[Seq[Software]] = { softRef.get.map(_.map(_._2).toList) @@ -2139,73 +2133,78 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== override def getSoftwareByNode(nodeIds: Set[NodeId], status: InventoryStatus): IOResult[Map[NodeId, Seq[Software]]] = { for { - inventories <- nodeInfoService.getAllInventories(status) - softwares <- softRef.get + facts <- nodeFactRepo.slowGetAllCompat(status, SelectFacts.softwareOnly).runCollect } yield { - inventories.collect { - case (id, inv) if (nodeIds.contains(id)) => + (facts.collect { + case f if (nodeIds.contains(f.id)) => ( - id, - softwares.collect { - case (k, s) if (inv.node.softwareIds.contains(k)) => s - }.toList + f.id, + f.software.map(_.toSoftware) ) - } + }).toMap } } override def getAllSoftwareIds(): IOResult[Set[SoftwareUuid]] = softRef.get.map(_.keySet) override def getSoftwaresForAllNodes(): IOResult[Set[SoftwareUuid]] = { - nodeInfoService.getAllInventories(AcceptedInventory).map(_.flatMap(_._2.node.softwareIds).toSet) + ??? } def getNodesbySofwareName(softName: String): IOResult[List[(NodeId, Software)]] = { for { - inventories <- nodeInfoService.getAllInventories(AcceptedInventory) - softwares <- softRef.get + facts <- nodeFactRepo.slowGetAllCompat(AcceptedInventory, SelectFacts.softwareOnly).runCollect } yield { - - inventories.toList.flatMap { - case (id, inv) => - softwares.collect { - case (k, s) if (s.name.exists(_ == softName) && inv.node.softwareIds.contains(k)) => (id, s) - } - - } + facts.collect { + case f if (f.software.map(_.name).contains(f.id)) => + ( + f.id, + f.software + .find(_.name == softName) + .getOrElse(throw new IllegalArgumentException("for test - we just check it's here")) + .toSoftware + ) + }.toList } } } + val getNodesbySofwareName = new SoftDaoGetNodesbySofwareName(softwareDao) + + val nodeFactRepo = CoreNodeFactRepository.make(nodeFactStorage, getNodesbySofwareName, Chunk()).runNow + object queryProcessor extends QueryProcessor { + import cats.implicits._ import com.normation.inventory.ldap.core.LDAPConstants._ import com.normation.rudder.domain.RudderLDAPConstants._ // return the value to corresponding to the given object/attribute - def buildValues(objectName: String, attribute: String): PureResult[NodeDetails => List[String]] = { + def buildValues(objectName: String, attribute: String): PureResult[NodeFact => List[String]] = { objectName match { case OC_NODE => attribute match { - case "OS" => Right((n: NodeDetails) => List(n.info.osDetails.os.name)) - case A_NODE_UUID => Right((n: NodeDetails) => List(n.info.id.value)) - case A_HOSTNAME => Right((n: NodeDetails) => List(n.info.hostname)) - case A_OS_NAME => Right((n: NodeDetails) => List(n.info.osDetails.os.name)) - case A_OS_FULL_NAME => Right((n: NodeDetails) => List(n.info.osDetails.fullName)) - case A_OS_VERSION => Right((n: NodeDetails) => List(n.info.osDetails.version.value)) - case A_OS_SERVICE_PACK => Right((n: NodeDetails) => n.info.osDetails.servicePack.toList) - case A_OS_KERNEL_VERSION => Right((n: NodeDetails) => List(n.info.osDetails.kernelVersion.value)) - case A_ARCH => Right((n: NodeDetails) => n.info.archDescription.toList) - case A_STATE => Right((n: NodeDetails) => List(n.info.state.name)) - case A_OS_RAM => Right((n: NodeDetails) => n.info.ram.map(_.size.toString).toList) - case A_OS_SWAP => Right((n: NodeDetails) => n.nInv.swap.map(_.size.toString).toList) - case A_AGENTS_NAME => Right((n: NodeDetails) => n.info.agentsName.map(_.agentType.id).toList) - case A_ACCOUNT => Right((n: NodeDetails) => n.nInv.accounts.toList) - case A_LIST_OF_IP => Right((n: NodeDetails) => n.info.ips) - case A_ROOT_USER => Right((n: NodeDetails) => List(n.info.localAdministratorAccountName)) + case "OS" => Right((n: NodeFact) => List(n.os.os.name)) + case A_NODE_UUID => Right((n: NodeFact) => List(n.id.value)) + case A_HOSTNAME => Right((n: NodeFact) => List(n.fqdn)) + case A_OS_NAME => Right((n: NodeFact) => List(n.os.os.name)) + case A_OS_FULL_NAME => Right((n: NodeFact) => List(n.os.fullName)) + case A_OS_VERSION => Right((n: NodeFact) => List(n.os.version.value)) + case A_OS_SERVICE_PACK => Right((n: NodeFact) => n.os.servicePack.toList) + case A_OS_KERNEL_VERSION => Right((n: NodeFact) => List(n.os.kernelVersion.value)) + case A_ARCH => Right((n: NodeFact) => n.archDescription.toList) + case A_STATE => Right((n: NodeFact) => List(n.rudderSettings.state.name)) + case A_OS_RAM => Right((n: NodeFact) => n.ram.map(_.size.toString).toList) + case A_OS_SWAP => Right((n: NodeFact) => n.swap.map(_.size.toString).toList) + case A_AGENTS_NAME => Right((n: NodeFact) => List(n.rudderAgent.agentType.id)) + case A_ACCOUNT => Right((n: NodeFact) => n.accounts.toList) + case A_LIST_OF_IP => Right((n: NodeFact) => n.ipAddresses.map(_.inet).toList) + case A_ROOT_USER => Right((n: NodeFact) => List(n.rudderAgent.user)) case A_INVENTORY_DATE => - Right((n: NodeDetails) => List(n.info.inventoryDate.toString(ISODateTimeFormat.dateTimeNoMillis()))) - case A_POLICY_SERVER_UUID => Right((n: NodeDetails) => List(n.info.policyServerId.value)) + Right((n: NodeFact) => + List(n.lastInventoryDate.getOrElse(n.factProcessedDate).toString(ISODateTimeFormat.dateTimeNoMillis())) + ) + case A_POLICY_SERVER_UUID => Right((n: NodeFact) => List(n.rudderSettings.policyServerId.value)) case _ => Left(Inconsistency(s"object '${objectName}' doesn't have attribute '${attribute}'")) } case x => Left(Unexpected(s"Case value '${x}' for query processor not yet implemented in test, see `MockServices.scala`")) @@ -2229,7 +2228,7 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== } } - def filterForLine(line: CriterionLine, nodes: List[NodeDetails]): PureResult[List[NodeDetails]] = { + def filterForLine(line: CriterionLine, nodes: List[NodeFact]): PureResult[List[NodeFact]] = { for { values <- buildValues(line.objectType.objectType, line.attribute.name) matching <- nodes.traverse(n => compare(values(n), line.comparator, line.value).map(if (_) Some(n) else None)) @@ -2241,8 +2240,8 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== def filterForLines( lines: List[CriterionLine], combine: CriterionComposition, - nodes: List[NodeDetails] - ): PureResult[List[NodeDetails]] = { + nodes: List[NodeFact] + ): PureResult[List[NodeFact]] = { for { byLine <- lines.traverse(filterForLine(_, nodes)) } yield { @@ -2257,58 +2256,48 @@ z5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw== override def process(query: Query): Box[Seq[NodeId]] = { for { - nodes <- nodeInfoService.nodeBase.get + nodes <- nodeFactStorage.nodeFactBase.get matching <- filterForLines(query.criteria, query.composition, nodes.map(_._2).toList).toIO } yield { - matching.map(_.info.id).toSeq + matching.map(_.id).toSeq } }.toBox override def processOnlyId(query: Query): Box[Seq[NodeId]] = process(query).map(_.toSeq) } + val nodeInfoService = new NodeInfoServiceProxy(nodeFactRepo) + val fullInventoryRepository = new NodeFactFullInventoryRepositoryProxy(nodeFactRepo) + val woNodeRepository = new WoFactNodeRepositoryProxy(nodeFactRepo) + object newNodeManager extends NewNodeManager { - def nodeToSrv(n: NodeDetails): Srv = { - Srv( - n.nInv.main.id, - n.nInv.main.status, - n.nInv.main.hostname, - n.nInv.main.osDetails.os.kernelName, - n.nInv.main.osDetails.os.name, - n.nInv.main.osDetails.fullName, - n.info.ips, - n.info.creationDate, - n.info.isPolicyServer - ) + val list = new FactListNewNodes(nodeFactRepo) + + override def listNewNodes: IOResult[Seq[CoreNodeFact]] = list.listNewNodes + + override def accept(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] = { + nodeFactRepo.changeStatus(id, AcceptedInventory) *> + nodeFactRepo + .getCompat(id, AcceptedInventory) + .notOptional(s"Accepted node '${id.value}' is missing") } - override def listNewNodes: Box[Seq[Srv]] = { - for { - nodes <- nodeInfoService.nodeBase.get - pending = nodes.toList.collect { - case (id, n @ NodeDetails(info, nInv, mInv)) if (nInv.main.status == PendingInventory) => nodeToSrv(n) - } - } yield pending - }.toBox - override def accept(id: NodeId, modId: ModificationId, actor: EventActor): Box[FullInventory] = { - (nodeInfoService.nodeBase.modifyZIO { nodes => - nodes.get(id) match { - case None => Inconsistency(s"node is missing").fail - case Some(x) => - import com.softwaremill.quicklens._ - val xx = x.modify(_.nInv.main.status).setTo(AcceptedInventory) - (FullInventory(xx.nInv, xx.mInv), nodes + ((id, xx))).succeed + override def refuse(id: NodeId)(implicit cc: ChangeContext): IOResult[CoreNodeFact] = { + nodeFactRepo + .getCompat(id, PendingInventory) + .flatMap { + case None => Inconsistency(s"node not found").fail + case Some(x) => nodeFactRepo.delete(id) *> x.succeed } - }).toBox } - override def refuse(id: NodeId, modId: ModificationId, actor: EventActor): Box[Srv] = ??? - - override def accept(ids: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[FullInventory]] = - ??? - - override def refuse(id: Seq[NodeId], modId: ModificationId, actor: EventActor, actorIp: String): Box[Seq[Srv]] = ??? + override def acceptAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] = { + ZIO.foreach(ids)(accept) + } + override def refuseAll(ids: Seq[NodeId])(implicit cc: ChangeContext): IOResult[Seq[CoreNodeFact]] = { + ZIO.foreach(ids)(refuse) + } } } @@ -2349,12 +2338,12 @@ class MockNodeGroups(nodesRepo: MockNodes) { override def getGroupsByCategory( includeSystem: Boolean - ): IOResult[immutable.SortedMap[List[NodeGroupCategoryId], CategoryAndNodeGroup]] = { + ): IOResult[ISortedMap[List[NodeGroupCategoryId], CategoryAndNodeGroup]] = { def getChildren( parents: List[NodeGroupCategoryId], root: FullNodeGroupCategory - ): immutable.SortedMap[List[NodeGroupCategoryId], CategoryAndNodeGroup] = { - val c = immutable.SortedMap( + ): ISortedMap[List[NodeGroupCategoryId], CategoryAndNodeGroup] = { + val c = ISortedMap( (root.id :: parents, CategoryAndNodeGroup(root.toNodeGroupCategory, root.ownGroups.values.map(_.nodeGroup).toSet)) ) root.subCategories.foldLeft(c) { case (current, n) => current ++ getChildren(root.id :: parents, n) } @@ -2369,7 +2358,7 @@ class MockNodeGroups(nodesRepo: MockNodes) { c } - override def getCategoryHierarchy: IOResult[immutable.SortedMap[List[NodeGroupCategoryId], NodeGroupCategory]] = { + override def getCategoryHierarchy: IOResult[ISortedMap[List[NodeGroupCategoryId], NodeGroupCategory]] = { getGroupsByCategory(true).map( _.map { case (k, v) => (k, v.category) } ) @@ -2724,7 +2713,7 @@ class MockNodeGroups(nodesRepo: MockNodes) { g0props, None, false, - Set(nodesRepo.rootId, nodesRepo.node1.id, nodesRepo.node2.id), + Set(MockNodes.rootId, MockNodes.node1.id, MockNodes.node2.id), true ) val g1 = @@ -2746,7 +2735,7 @@ class MockNodeGroups(nodesRepo: MockNodes) { Nil, None, false, - nodesRepo.nodeIds.filter(_.value.toInt % 2 == 0), + MockNodes.nodeIds.filter(_.value.toInt % 2 == 0), true ) val g4 = NodeGroup( @@ -2756,7 +2745,7 @@ class MockNodeGroups(nodesRepo: MockNodes) { Nil, None, false, - nodesRepo.nodeIds.filter(_.value.toInt % 2 != 0), + MockNodes.nodeIds.filter(_.value.toInt % 2 != 0), true ) val g5 = NodeGroup( @@ -2766,7 +2755,7 @@ class MockNodeGroups(nodesRepo: MockNodes) { Nil, None, false, - nodesRepo.nodeIds.filter(_.value.toInt % 3 == 0), + MockNodes.nodeIds.filter(_.value.toInt % 3 == 0), true ) val g6 = NodeGroup( @@ -2776,7 +2765,7 @@ class MockNodeGroups(nodesRepo: MockNodes) { Nil, None, false, - nodesRepo.nodeIds.filter(_.value.toInt % 5 == 0), + MockNodes.nodeIds.filter(_.value.toInt % 5 == 0), true ) val groups = Set(g0, g1, g2, g3, g4, g5, g6).map(g => (g.id, g)) @@ -2886,8 +2875,9 @@ class MockLdapQueryParsing(mockGit: MockGitConfigRepo, mockNodeGroups: MockNodeG val nodeDit = new NodeDit(LDAP_BASEDN) val inventoryDitService: InventoryDitService = new InventoryDitServiceImpl(pendingNodesDitImpl, acceptedNodesDitImpl, removedNodesDitImpl) - val getSubGroupChoices = () => mockNodeGroups.groupsRepo.getAll().map(seq => seq.map(g => SubGroupChoice(g.id, g.name))) - val ditQueryDataImpl = new DitQueryData(acceptedNodesDitImpl, nodeDit, rudderDit, getSubGroupChoices) + val getSubGroupChoices = new DefaultSubGroupComparatorRepository(mockNodeGroups.groupsRepo) + val nodeQueryData = new NodeQueryCriteriaData(() => getSubGroupChoices) + val ditQueryDataImpl = new DitQueryData(acceptedNodesDitImpl, nodeDit, rudderDit, nodeQueryData) val queryParser = new CmdbQueryParser with DefaultStringQueryParser with JsonQueryLexer { override val criterionObjects = Map[String, ObjectCriterion]() ++ ditQueryDataImpl.criteriaMap } diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/MockLdapFactStorage.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/MockLdapFactStorage.scala new file mode 100644 index 00000000000..f33f47db632 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/MockLdapFactStorage.scala @@ -0,0 +1,150 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import better.files._ +import com.normation.inventory.ldap.core.FullInventoryRepositoryImpl +import com.normation.inventory.ldap.core.InventoryDit +import com.normation.inventory.ldap.core.InventoryDitService +import com.normation.inventory.ldap.core.InventoryDitServiceImpl +import com.normation.inventory.ldap.core.InventoryMapper +import com.normation.inventory.ldap.core.ReadOnlySoftwareDAOImpl +import com.normation.inventory.ldap.provisioning._ +import com.normation.ldap.ldif.DefaultLDIFFileLogger +import com.normation.ldap.listener.InMemoryDsConnectionProvider +import com.normation.ldap.sdk.LDAPConnectionProvider +import com.normation.ldap.sdk.RoLDAPConnection +import com.normation.ldap.sdk.RwLDAPConnection +import com.normation.rudder.domain.NodeDit +import com.normation.rudder.domain.RudderDit +import com.normation.rudder.repository.ldap.LDAPEntityMapper +import com.normation.rudder.repository.ldap.ZioTReentrantLock +import com.normation.utils.StringUuidGeneratorImpl +import com.unboundid.ldap.sdk.DN + +object MockLdapFactStorage { + + val tmp = File.newTemporaryDirectory("rudder-test-ldap-schema-files-") + tmp.deleteOnExit(true) + + val ldifLogger = new DefaultLDIFFileLogger("TestQueryProcessor", "/tmp/normation/rudder/ldif") + + // init of in memory LDAP directory + val schemaLDIFs = { + val schemaDir = tmp / "schema" + schemaDir.createDirectories() + + ( + "00-core" :: + "01-pwpolicy" :: + "04-rfc2307bis" :: + "05-rfc4876" :: + "099-0-inventory" :: + "099-1-rudder" :: + Nil + ) map { name => + // toURI is needed for https://issues.rudder.io/issues/19186 + val dest = schemaDir / s"${name}.ldif" + dest.writeText(Resource.getAsString(s"ldap-data/schema/${name}.ldif")) + dest.pathAsString + } + } + val bootstrapLDIFs = { + val bootstrapDir = tmp / "bootstrap" + bootstrapDir.createDirectories() + + ("ldap/bootstrap.ldif" :: "ldap-data/inventory-sample-data.ldif" :: Nil) map { name => + // toURI is needed for https://issues.rudder.io/issues/19186 + val dest = bootstrapDir / name.split("/")(1) + dest.writeText(Resource.getAsString(name)) + dest.pathAsString + } + } + + val ldap = InMemoryDsConnectionProvider[RwLDAPConnection]( + baseDNs = "cn=rudder-configuration" :: Nil, + schemaLDIFPaths = schemaLDIFs, + bootstrapLDIFPaths = bootstrapLDIFs, + ldifLogger + ) + + // for easier access in tests + def testServer = ldap.server + + // close your eyes for next line + val ldapRo = ldap.asInstanceOf[LDAPConnectionProvider[RoLDAPConnection]] + + val acceptedDIT = new InventoryDit( + new DN("ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration"), + new DN("ou=Inventories,cn=rudder-configuration"), + "test" + ) + + val removedDIT = new InventoryDit( + new DN("ou=Removed Inventories,ou=Inventories,cn=rudder-configuration"), + new DN("ou=Inventories,cn=rudder-configuration"), + "test" + ) + val pendingDIT = new InventoryDit( + new DN("ou=Pending Inventories,ou=Inventories,cn=rudder-configuration"), + new DN("ou=Inventories,cn=rudder-configuration"), + "test" + ) + val nodeDit = new NodeDit(new DN("cn=rudder-configuration")) + val rudderDit = new RudderDit(new DN("ou=Rudder, cn=rudder-configuration")) + val inventoryDitService: InventoryDitService = new InventoryDitServiceImpl(pendingDIT, acceptedDIT, removedDIT) + val inventoryMapper = new InventoryMapper(inventoryDitService, pendingDIT, acceptedDIT, removedDIT) + val ldapMapper = new LDAPEntityMapper(rudderDit, nodeDit, acceptedDIT, null, inventoryMapper) + val ldapFullInventoryRepository = new FullInventoryRepositoryImpl(inventoryDitService, inventoryMapper, ldap) + val softwareGet = new ReadOnlySoftwareDAOImpl(inventoryDitService, ldapRo, inventoryMapper) + val softwareSave = new NameAndVersionIdFinder("check_name_and_version", ldapRo, inventoryMapper, acceptedDIT) + + val nodeFactStorage = new LdapNodeFactStorage( + ldap, + nodeDit, + inventoryDitService, + ldapMapper, + inventoryMapper, + new ZioTReentrantLock("node-lock"), + ldapFullInventoryRepository, + softwareGet, + softwareSave, + new StringUuidGeneratorImpl() + ) + +} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestCoreNodeFactInventory.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestCoreNodeFactInventory.scala new file mode 100644 index 00000000000..1e95f352f05 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestCoreNodeFactInventory.scala @@ -0,0 +1,421 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import better.files._ +import com.normation.errors._ +import com.normation.eventlog.EventActor +import com.normation.eventlog.ModificationId +import com.normation.inventory.domain._ +import com.normation.inventory.ldap.core.InventoryDit +import com.normation.inventory.ldap.core.ReadOnlySoftwareDAOImpl +import com.normation.rudder.domain.Constants +import com.normation.rudder.domain.nodes.MachineInfo +import com.normation.utils.DateFormaterService +import com.normation.zio._ +import com.normation.zio.ZioRuntime +import com.softwaremill.quicklens._ +import com.unboundid.ldap.sdk.SearchScope +import java.security.Security +import org.apache.commons.io.FileUtils +import org.bouncycastle.jce.provider.BouncyCastleProvider +import org.joda.time.DateTime +import org.junit.runner._ +import org.specs2.mutable._ +import org.specs2.runner._ +import org.specs2.specification.BeforeAfterAll +import scala.annotation.nowarn +import zio._ + +/** + * + * Test the processing of new inventory: + * - check that new, never seen nodes end into pending + * - check that new, already pending nodes update pending + * - check that accepted nodes are updated + * - check that signature things work. + * + * That test does not check for the file observer, only save logic. + */ +@RunWith(classOf[JUnitRunner]) +@nowarn("msg=a type was inferred to be `\\w+`; this may indicate a programming error.") +class TestCoreNodeFactInventory extends Specification with BeforeAfterAll { + + // load bouncyCastle + Security.addProvider(new BouncyCastleProvider()) + + def nodeExists(id: String, dit: InventoryDit): Boolean = { + MockLdapFactStorage.ldap.server.entryExists(dit.NODES.NODE.dn(id).toString) + } + + def nodeAsString(id: String, dit: InventoryDit): String = { + val sb = new java.lang.StringBuilder() + MockLdapFactStorage.ldap.server.getEntry(dit.NODES.NODE.dn(id).toString).toString(sb) + sb.toString() + } + + // a fact storage that keeps a trace of all call to it, so that we can debug/set expectation + object factStorage extends NodeFactStorage { + val backend = MockLdapFactStorage.nodeFactStorage + val callStack = Ref.make(List.empty[String]).runNow + + def clearCallStack: Unit = callStack.set(Nil).runNow + + override def save(nodeFact: NodeFact)(implicit attrs: SelectFacts = SelectFacts.all): IOResult[StorageChangeEventSave] = { + for { + _ <- callStack.update(s"save ${nodeFact.id}" :: _) + r <- backend.save(nodeFact) + } yield r + } + + override def changeStatus(nodeId: NodeId, status: InventoryStatus): IOResult[StorageChangeEventStatus] = { + for { + _ <- callStack.update(s"changeStatus ${nodeId} to ${status.name}" :: _) + r <- backend.changeStatus(nodeId, status) + } yield r + } + + override def delete(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[StorageChangeEventDelete] = { + for { + _ <- callStack.update(s"delete ${nodeId}" :: _) + r <- backend.delete(nodeId) + } yield r + } + + override def getPending(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + for { + _ <- callStack.update(s"getPending ${nodeId}" :: _) + r <- backend.getPending(nodeId) + } yield r + } + + override def getAccepted(nodeId: NodeId)(implicit attrs: SelectFacts): IOResult[Option[NodeFact]] = { + for { + _ <- callStack.update(s"getAccepted ${nodeId}" :: _) + r <- backend.getAccepted(nodeId) + } yield r + } + + override def getAllPending()(implicit attrs: SelectFacts): IOStream[NodeFact] = { + callStack.update(s"getAllPending" :: _).runNow // gosh, it's for test only + backend.getAllPending() + } + + override def getAllAccepted()(implicit attrs: SelectFacts): IOStream[NodeFact] = { + callStack.update(s"getAllAccepted" :: _).runNow // gosh, it's for test only + backend.getAllAccepted() + } + } + + implicit class RunThing[E, T](thing: ZIO[Any, E, T]) { + def testRun = ZioRuntime.unsafeRun(thing.either) + } + + implicit class RunOptThing[A](thing: IOResult[Option[A]]) { + def testRunGet: A = ZioRuntime.unsafeRun(thing.either) match { + case Right(Some(a)) => a + case Right(None) => throw new RuntimeException(s"Error in test: found None, expected Some") + case Left(err) => throw new RuntimeException(s"Error in test: ${err}") + } + } + + implicit class TestIsOK[E, T](thing: ZIO[Any, E, T]) { + def isOK = thing.testRun must beRight + } + + implicit class ForceGetE[E, A](opt: Either[E, A]) { + def forceGet: A = opt match { + case Right(x) => x + case Left(err) => throw new Exception(s"error in Test: ${err}") + } + } + + implicit def stringToNodeId(id: String): NodeId = NodeId(id) + + val basePath = s"/tmp/test-rudder-nodefact/${DateFormaterService.gitTagFormat.print(DateTime.now())}" + + override def beforeAll(): Unit = {} + + override def afterAll(): Unit = { + if (java.lang.System.getProperty("tests.clean.tmp") != "false") { + FileUtils.deleteDirectory(File(basePath).toJava) + } + } + + val callbackLog = Ref.make(Chunk.empty[NodeFactChangeEvent]).runNow + def resetLog = callbackLog.set(Chunk.empty).runNow + def getLogName = callbackLog.get.map(_.map(_.name)).runNow + + val nodeBySoftwareName = new SoftDaoGetNodesbySofwareName( + new ReadOnlySoftwareDAOImpl( + MockLdapFactStorage.inventoryDitService, + MockLdapFactStorage.ldapRo, + MockLdapFactStorage.inventoryMapper + ) + ) + + val factRepo = { + val trailCB = CoreNodeFactChangeEventCallback("trail", e => callbackLog.update(_.appended(e.event))) +// val logCB = CoreNodeFactChangeEventCallback("log", e => effectUioUnit(println(s"**** ${e.name}")))) + CoreNodeFactRepository.make(factStorage, nodeBySoftwareName, Chunk(trailCB)).runNow + } + +// org.slf4j.LoggerFactory +// .getLogger("inventory-processing") +// .asInstanceOf[ch.qos.logback.classic.Logger] +// .setLevel(ch.qos.logback.classic.Level.TRACE) + + sequential + + // node7 has the following inventory info: + // - one software + // - one mount point + // - machine2 (physical) + // - a bios + val node7id = NodeId("node7") + val machineId = MachineUuid("machine2") + + implicit val cc: ChangeContext = ChangeContext.newForRudder() + + // things that are empty on node7 because not defined + def node7UndefinedElements(n: NodeFact) = List( + Chunk.fromIterable(n.swap), + n.accounts, + n.controllers, + n.environmentVariables, + n.inputs, + n.localUsers, + n.localUsers, + n.logicalVolumes, + n.memories, + n.networks, + n.physicalVolumes, + n.ports, + n.processes, + n.processors, + n.slots, + n.softwareUpdate, + n.sounds, + n.storages, + n.videos, + n.vms + ) + + implicit val testChangeContext: ChangeContext = + ChangeContext(ModificationId("test-mod-id"), EventActor("test"), DateTime.now(), None, None) + + "query action" should { + + "allow to get the whole node fact, included inventory and software" in { + + implicit val attrs = SelectFacts.all + + factStorage.clearCallStack + val node = factRepo.slowGet(node7id).notOptional("node7 must be here").runNow + + (factStorage.callStack.get.runNow.size === 1) and + (node.bios.size === 1) and + ( + node.bios.head === Bios( + "bios1", + None, + Some(new Version("6.00")), + Some(SoftwareEditor("Phoenix Technologies LTD")) + ) + ) and + (node.machine === MachineInfo(machineId, PhysicalMachineType, None, None)) and + (node.fileSystems.size === 1) and + ( + node.fileSystems.head === FileSystem( + "/", + Some("ext3"), + None, + None, + Some(MemorySize(10L)), + Some(MemorySize(803838361699L)) + ) + ) and + (node.software.size === 1) and + (node.software.head === SoftwareFact("Software 0", new Version("1.0.0"))) and + (node7UndefinedElements(node) must contain((x: Chunk[_]) => x must beEmpty).foreach) + + } + + "allow to get core node fact without touching LDAP" in { + factStorage.clearCallStack + val node7 = factRepo.get(node7id).notOptional("node7 must be there").runNow + + (node7.fqdn === "node7.normation.com") and + (factStorage.callStack.get.runNow match { + case Nil => ok + case l => ko(s"Storage was call: ${l.mkString("\n", "\n", "")}") + }) + } + + "allow to get software without the other parts of inventory" in { // how to chek that we don't retrieve cpu filesystems etc? + factStorage.clearCallStack + implicit val attrs = SelectFacts.softwareOnly + val node = factRepo.slowGet(node7id).notOptional("node7 must be here").runNow + + (factStorage.callStack.get.runNow.size === 1) and + (node.bios.size === 0) and + (node.machine === MachineInfo(machineId, PhysicalMachineType, None, None)) and // we always get that + (node.fileSystems.size === 0) and + (node.software.size === 1) and + (node.software.head === SoftwareFact("Software 0", new Version("1.0.0"))) and + (node7UndefinedElements(node) must contain((x: Chunk[_]) => x must beEmpty).foreach) + } + + // for now, we can't selectively choose what sub element of inventory we retrieve. It could be done if needed + // for better perf. The use case could be: api requesting only CPU on all nodes or that kind of things. + "allow to get only a sub-set of inventory without fetching software" in { + factStorage.clearCallStack + implicit val attrs = SelectFacts.none.modify(_.bios).using(_.toRetrieve) + val node = factRepo.slowGet(node7id).notOptional("node7 must be here").runNow + + (factStorage.callStack.get.runNow.size === 1) and + (node.bios.size === 1) and + ( + node.bios.head === Bios( + "bios1", + None, + Some(new Version("6.00")), + Some(SoftwareEditor("Phoenix Technologies LTD")) + ) + ) and + (node.fileSystems.size === 0) and + (node.software.size === 0) and + (node7UndefinedElements(node) must contain((x: Chunk[_]) => x must beEmpty).foreach) + } + } + + "basic update action" should { + "we can save a whole inventory and changing everything in storage, included software" >> { + factStorage.clearCallStack + val node = factRepo.slowGet(node7id)(SelectNodeStatus.Accepted, SelectFacts.all).notOptional("node7 must be here").runNow + + val updated = node + .modify(_.software) + .using(_.appended(SoftwareFact("s2", new Version("1.2")))) + .modify(_.environmentVariables) + .using(_.appended(("envVAR", "envVALUE"))) + .modify(_.networks) + .using(_.appended(Network("eth0"))) + .modify(_.slots) + .using(_.appended(Slot("slot0"))) + + factRepo.save(updated)(testChangeContext, SelectFacts.all).runNow + + // check that ldap entries where modified + (MockLdapFactStorage.testServer + .getEntry("nodeId=node7,ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration") + .getAttributeValue("environmentVariable") must beEqualTo("""{"name":"envVAR","value":"envVALUE"}""")) and + (MockLdapFactStorage.testServer.entryExists( + "networkInterface=eth0,nodeId=node7,ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration" + ) must beTrue) and + (MockLdapFactStorage.testServer.entryExists( + "portName=slot0,machineId=machine2,ou=Machines,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration" + ) must beTrue) and + ( + MockLdapFactStorage.testServer + .search("ou=Software,ou=Inventories,cn=rudder-configuration", SearchScope.ONE, "(cn=s2)") + .getSearchEntries + .size() + must beEqualTo(1) + ) + } + + "we can change only one inventory aspect without touching others even if they are not the same in our business object" >> { + factStorage.clearCallStack + val node = factRepo + .slowGet(node7id)( + SelectNodeStatus.Accepted, + SelectFacts.all + ) + .notOptional("node7 must be here") + .runNow + + val updated = node + .modify(_.software) + .using(_.appended(SoftwareFact("s3", new Version("1.3")))) + .modify(_.environmentVariables) + .using(_.appended(("bad", "bad"))) + .modify(_.networks) + .using(_.appended(Network("eth1"))) + .modify(_.slots) + .using(_.appended(Slot("slot1"))) + + factRepo.save(updated)(testChangeContext, SelectFacts.none.modify(_.networks).using(_.toRetrieve)).runNow + + // check that ONLY network ldap entry was modified + (MockLdapFactStorage.testServer + .getEntry("nodeId=node7,ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration") + .getAttribute("environmentVariable") + .hasValue("""{"name":"bad","value":"bad"}""") must beFalse) and + ( + MockLdapFactStorage.testServer.entryExists( + "networkInterface=eth1,nodeId=node7,ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration" + ) must beTrue + ) and + ( + MockLdapFactStorage.testServer.entryExists( + "portName=slot1,machineId=machine2,ou=Machines,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration" + ) must beFalse + ) and + ( + MockLdapFactStorage.testServer + .search("ou=Software,ou=Inventories,cn=rudder-configuration", SearchScope.ONE, "(cn=s3)") + .getSearchEntries + .size() + must beEqualTo(0) + ) + } + + "root status can not be modified" >> { + val res = (for { + r <- factRepo.get(Constants.ROOT_POLICY_SERVER_ID).notOptional("root must be here") + _ <- factRepo.save(NodeFact.fromMinimal(r.modify(_.rudderSettings.status).setTo(PendingInventory)))( + testChangeContext, + SelectFacts.none + ) + } yield ()).either.runNow + + res must beLeft + } + } +} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestFullInventoryRepoProxy.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestFullInventoryRepoProxy.scala new file mode 100644 index 00000000000..22ab6e649be --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestFullInventoryRepoProxy.scala @@ -0,0 +1,394 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import com.normation.errors._ +import com.normation.inventory.domain._ +import com.normation.inventory.services.core.FullInventoryRepository +import com.normation.zio._ +import com.normation.zio.ZioRuntime +import com.softwaremill.quicklens._ +import org.joda.time.DateTime +import org.junit.runner._ +import org.specs2.mutable._ +import org.specs2.runner._ +import zio._ +import zio.concurrent.ReentrantLock +import zio.syntax._ + +final case class SystemError(cause: Throwable) extends RudderError { + def msg = "Error in test" +} + +/* + * A class to trace semantic changes between full ldap repo with ldap + * and with fact backend (see com/normation/inventory/ldap/core/TestInventory.scala + * for original results) + */ +//@silent("a type was inferred to be `\\w+`; this may indicate a programming error.") +@RunWith(classOf[JUnitRunner]) +class TestInventory extends Specification { + + implicit class RunThing[E, T](thing: ZIO[Any, E, T]) { + def testRun = ZioRuntime.unsafeRun(thing.either) + } + implicit class RunOptThing[A](thing: IOResult[Option[A]]) { + def testRunGet: A = ZioRuntime.unsafeRun(thing.either) match { + case Right(Some(a)) => a + case Right(None) => throw new RuntimeException(s"Error in test: found None, expected Some") + case Left(err) => throw new RuntimeException(s"Error in test: ${err}") + } + } + + implicit class TestIsOK[E, T](thing: ZIO[Any, E, T]) { + def isOK = thing.testRun must beRight + } + + implicit class ForceGetE[E, A](opt: Either[E, A]) { + def forceGet: A = opt match { + case Right(x) => x + case Left(err) => throw new Exception(s"error in Test: ${err}") + } + } + + // TODO WARNING POC: this can't work on a machine with lots of node + val callbackLog = Ref.make(Chunk.empty[NodeFactChangeEvent]).runNow + + def resetLog = callbackLog.set(Chunk.empty).runNow + + def getLogName = callbackLog.get.map(_.map(_.name)).runNow + + val pendingRef = (Ref.make(Map[NodeId, CoreNodeFact]())).runNow + val acceptedRef = (Ref.make(Map[NodeId, CoreNodeFact]())).runNow + + def resetStorage = (for { + _ <- pendingRef.set(Map()) + _ <- acceptedRef.set(Map()) + } yield ()).runNow + + object noopNodeBySoftwareName extends GetNodesbySofwareName { + override def apply(softName: String): IOResult[List[(NodeId, Software)]] = { + Nil.succeed + } + } + + val factRepo = { + for { + callbacks <- Ref.make(Chunk.empty[NodeFactChangeEventCallback]) + lock <- ReentrantLock.make() + r = new CoreNodeFactRepository(NoopFactStorage, noopNodeBySoftwareName, pendingRef, acceptedRef, callbacks, lock) + _ <- r.registerChangeCallbackAction(CoreNodeFactChangeEventCallback("trail", e => callbackLog.update(_.appended(e.event)))) + // _ <- r.registerChangeCallbackAction(new NodeFactChangeEventCallback("log", e => effectUioUnit(println(s"**** ${e.name}")))) + } yield { + r + } + }.runNow + // needed because the in memory LDAP server is not used with connection pool + sequential + + val allStatus = Seq(RemovedInventory, PendingInventory, AcceptedInventory) + + // shortcut to create a machine with the name has ID in the given status + def machine(name: String, status: InventoryStatus) = MachineInventory( + MachineUuid(name), + status, + PhysicalMachineType, + None, + None, + Some(DateTime.parse("2023-01-11T10:20:30.000Z")), // now, node and inventory always have the same + Some(DateTime.parse("2023-02-22T15:25:35.000Z")), // inventory and received date + Some(Manufacturer("manufacturer")), + None, + Nil, + Nil, + Nil, + Nil, + Nil, + Nil, + Nil, + Nil, + Nil + ) + // shortcut to create a node with the name has ID and the given machine, in the + // given status, has container. + def node(name: String, status: InventoryStatus, container: (MachineUuid, InventoryStatus)) = NodeInventory( + NodeSummary( + NodeId(name), + status, + "root", + "localhost", + Linux( + Debian, + "foo", + new Version("1.0"), + None, + new Version("1.0") + ), + NodeId("root"), + CertifiedKey + ), + inventoryDate = Some(DateTime.parse("2023-01-11T10:20:30.000Z")), + receiveDate = Some(DateTime.parse("2023-02-22T15:25:35.000Z")), + agents = Seq(NodeFact.defaultRudderAgent("root").toAgentInfo), // always present now + machineId = Some(container) + ) + + def full(n: NodeInventory, m: MachineInventory) = FullInventory(n, Some(m)) + + val repo: FullInventoryRepository[Unit] = new NodeFactFullInventoryRepositoryProxy(factRepo) + + "Saving, finding and moving node" should { + + "Save node for machine, whatever the presence or status of the machine" in { + resetStorage + val mid = MachineUuid("foo") + + val n1 = node("acceptedNode", AcceptedInventory, (mid, AcceptedInventory)) + val n2 = node("pendingNode", PendingInventory, (mid, AcceptedInventory)) + val n3 = node("removedNode", RemovedInventory, (mid, AcceptedInventory)) + + ( + repo.save(FullInventory(n1, None)).isOK + and repo.save(FullInventory(n2, None)).isOK + and repo.save(FullInventory(n3, None)).isOK + ) + } + + "find back the machine after a move" in { + resetStorage + val m = machine("findBackMachine", PendingInventory) + val n = node("findBackNode", PendingInventory, (m.id, m.status)) + + ( + repo.save(full(n, m)).isOK + and repo.move(n.main.id, PendingInventory, AcceptedInventory).isOK + and { + val FullInventory(node, machine) = repo.get(n.main.id, AcceptedInventory).testRunGet + ( + machine === Some(m.copy(status = AcceptedInventory)) and + node === n + .modify(_.main.status) + .setTo(AcceptedInventory) + .modify(_.machineId) + .setTo(Some((m.id, AcceptedInventory))) + ) + } + ) + } + + "don't accept to have a machine in a different status than the node" in { + resetStorage + val m = machine("differentMachine", AcceptedInventory) + val n = node("differentNode", PendingInventory, (m.id, AcceptedInventory)) + ( + repo.save(full(n, m)).isOK + and { + val FullInventory(node, machine) = repo.get(n.main.id, PendingInventory).testRunGet + ( + (node === n.modify(_.machineId).setTo(Some((m.id, PendingInventory)))) and + (machine === Some(m.modify(_.status).setTo(PendingInventory))) + ) + } + ) + } + + "use the given machine in full inventory whatever the ID given in node" in { + resetStorage + val m = machine("invisibleMachine", PendingInventory) + val n = node("invisibleNode", PendingInventory, (MachineUuid("something else"), AcceptedInventory)) + ( + repo.save(full(n, m)).isOK + and { + val FullInventory(node, machine) = repo.get(n.main.id, PendingInventory).testRunGet + + ( + node === n.modify(_.machineId).setTo(Some((m.id, PendingInventory))) + and machine === Some(m.modify(_.status).setTo(PendingInventory)) + ) + } + ) + } + + "machine, even with the same 'id', are bound to their node" in { + resetStorage + val m = machine("hardcoreMachine", RemovedInventory) + val n0 = node("h-n0", PendingInventory, (m.id, PendingInventory)) + val n1 = node("h-n1", PendingInventory, (m.id, PendingInventory)) + val n2 = node("h-n2", AcceptedInventory, (m.id, AcceptedInventory)) + val n3 = node("h-n3", RemovedInventory, (m.id, RemovedInventory)) + + ( + repo.save(FullInventory(n0, Some(m))).isOK and repo.save(FullInventory(n1, Some(m))).isOK and + repo.save(FullInventory(n2, Some(m))).isOK and repo.save(FullInventory(n3, Some(m))).isOK + and repo.move(n0.main.id, PendingInventory, AcceptedInventory).isOK + and { + val FullInventory(node0, m0) = repo.get(n0.main.id, AcceptedInventory).testRunGet + val FullInventory(node1, m1) = repo.get(n1.main.id, PendingInventory).testRunGet + val FullInventory(node2, m2) = repo.get(n2.main.id, AcceptedInventory).testRunGet + val node3 = repo.get(n3.main.id, RemovedInventory).either.runNow + + // expected machine value + val n0now = n0.modify(_.main.status).setTo(AcceptedInventory) + // update node's machine info to what is normalized + def updated(n: NodeInventory) = { + ( + n.modify(_.machineId).setTo(Some((m.id, n.main.status))), + m.modify(_.status).setTo(n.main.status) + ) + } + + val (n0_, m0_) = updated(n0now) + val (n1_, m1_) = updated(n1) + val (n2_, m2_) = updated(n2) + + ( + m0 === Some(m0_) and m1 === Some(m1_) and m2 === Some(m2_) and + node0 === n0_ + and node1 === n1_ + and node2 === n2_ + and (node3 isLeft) // no move to delete + ) + } + ) + } + + } + + "Trying to add specific Windows" should { + + "Allow to save and read it back" in { + resetStorage + val nodeId = NodeId("windows-2012") + + val node = NodeInventory( + NodeSummary( + nodeId, + AcceptedInventory, + "administrator", + "localhost", + Windows( + Windows2012, + "foo", + new Version("1.0"), + None, + new Version("1.0") + ), + NodeId("root"), + UndefinedKey + ), + inventoryDate = Some(DateTime.parse("2023-01-11T10:20:30.000Z")), + receiveDate = Some(DateTime.parse("2023-02-22T15:25:35.000Z")), + agents = Seq(NodeFact.defaultRudderAgent("administrator").toAgentInfo), // always present now + machineId = None + ) + + repo.save(FullInventory(node, None)).isOK and { + val FullInventory(n, m) = repo.get(nodeId, AcceptedInventory).testRunGet + // here since we don't have a machine, one is generated with the uuid pattern "machine-for-${nodeId}" + n === node.modify(_.machineId).setTo(Some((MachineUuid("machine-for-windows-2012"), AcceptedInventory))) + } + } + + } + + "Software updates" should { + + "are correctly serialized" in { + val d0 = "2022-01-01T00:00:00Z" + val dt0 = JsonSerializers.parseSoftwareUpdateDateTime(d0).toOption + val id0 = "RHSA-2020-4566" + val id1 = "CVE-2021-4034" + + val updates = List( + SoftwareUpdate( + "app1", + Some("2.15.6~RC1"), + Some("x86_64"), + Some("yum"), + SoftwareUpdateKind.Defect, + None, + Some("Some explanation"), + Some(SoftwareUpdateSeverity.Critical), + dt0, + Some(List(id0, id1)) + ), + SoftwareUpdate( + "app2", + Some("1-23-RELEASE-1"), + Some("x86_64"), + Some("apt"), + SoftwareUpdateKind.None, + Some("default-repo"), + None, + None, + None, + None + ), // we can have several time the same app + + SoftwareUpdate( + "app2", + Some("1-24-RELEASE-64"), + Some("x86_64"), + Some("apt"), + SoftwareUpdateKind.Security, + Some("security-backports"), + None, + Some(SoftwareUpdateSeverity.Other("backport")), + None, + Some(List(id1)) + ) + ) + + val jsonString = List( + s"""{"name":"app1","version":"2.15.6~RC1","arch":"x86_64","from":"yum","kind":"defect","description":"Some explanation","severity":"critical","date":"${d0}","ids":["${id0}","${id1}"]}""", + s"""{"name":"app2","version":"1-23-RELEASE-1","arch":"x86_64","from":"apt","kind":"none","source":"default-repo"}""", + s"""{"name":"app2","version":"1-24-RELEASE-64","arch":"x86_64","from":"apt","kind":"security","source":"security-backports","severity":"backport","ids":["${id1}"]}""" + ).mkString("[", ",", "]") + + import zio.json._ + import JsonSerializers.implicits._ + + updates.toJson === jsonString + } + } + + step { + success + } + +} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestSaveInventory.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestSaveInventory.scala new file mode 100644 index 00000000000..18f8a54d066 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestSaveInventory.scala @@ -0,0 +1,433 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import better.files._ +import com.normation.errors._ +import com.normation.inventory.domain._ +import com.normation.inventory.ldap.core.InventoryDit +import com.normation.inventory.ldap.provisioning._ +import com.normation.inventory.provisioning.fusion.FusionInventoryParser +import com.normation.inventory.provisioning.fusion.PreInventoryParserCheckConsistency +import com.normation.inventory.services.provisioning.DefaultInventoryParser +import com.normation.inventory.services.provisioning.InventoryDigestServiceV1 +import com.normation.inventory.services.provisioning.InventoryParser +import com.normation.rudder.batch.GitGC +import com.normation.rudder.domain.nodes.NodeState +import com.normation.rudder.domain.policies.PolicyMode +import com.normation.rudder.domain.properties.NodeProperty +import com.normation.rudder.git.GitRepositoryProviderImpl +import com.normation.rudder.inventory.DefaultProcessInventoryService +import com.normation.rudder.inventory.InventoryFailedHook +import com.normation.rudder.inventory.InventoryMover +import com.normation.rudder.inventory.InventoryPair +import com.normation.rudder.inventory.InventoryProcessor +import com.normation.rudder.inventory.InventoryProcessStatus.Saved +import com.normation.utils.DateFormaterService +import com.normation.utils.StringUuidGeneratorImpl +import com.normation.zio._ +import com.normation.zio.ZioRuntime +import com.softwaremill.quicklens._ +import com.typesafe.config.ConfigValueFactory +import cron4s.Cron +import java.security.Security +import org.apache.commons.io.FileUtils +import org.bouncycastle.jce.provider.BouncyCastleProvider +import org.joda.time.DateTime +import org.junit.runner._ +import org.specs2.mutable._ +import org.specs2.runner._ +import org.specs2.specification.BeforeAfterAll +import scala.annotation.nowarn +import zio._ +import zio.concurrent.ReentrantLock +import zio.syntax._ + +/** + * + * Test the processing of new inventory: + * - check that new, never seen nodes end into pending + * - check that new, already pending nodes update pending + * - check that accepted nodes are updated + * - check that signature things work. + * + * That test does not check for the file observer, only save logic. + */ +@RunWith(classOf[JUnitRunner]) +class TestSaveInventoryGit extends TestSaveInventory { + + val GIT_PENDING = basePath + "/fact-repo/nodes/pending" + + def pendingNodeGitFile(id: String) = File(GIT_PENDING + "/" + id + ".json") + + val GIT_ACCEPTED = basePath + "/fact-repo/nodes/accepted" + + def acceptedNodeGitFile(id: String) = File(GIT_ACCEPTED + "/" + id + ".json") + + override def checkPendingNodeExists(id: String): Boolean = pendingNodeGitFile(id).exists + override def getPendingNodeAsString(id: String): String = pendingNodeGitFile(id).contentAsString + override def checkAcceptedNodeExists(id: String): Boolean = acceptedNodeGitFile(id).exists + override def getAcceptedNodeAsString(id: String): String = acceptedNodeGitFile(id).contentAsString + + override lazy val factStorage = { + val cronSchedule = Cron.parse("0 42 3 * * ?").toOption + val gitFactRepoProvider = GitRepositoryProviderImpl + .make(basePath + "/fact-repo") + .runOrDie(err => new RuntimeException(s"Error when initializing git configuration repository: " + err.fullMsg)) + val gitFactRepoGC = new GitGC(gitFactRepoProvider, cronSchedule) + gitFactRepoGC.start() + // we need to use the default group available, not rudder, else CI complains + val storage = new GitNodeFactStorageImpl(gitFactRepoProvider, None, true) + storage.checkInit().runOrDie(err => new RuntimeException(s"Error when checking fact repository init: " + err.fullMsg)) + + storage + } +} + +@RunWith(classOf[JUnitRunner]) +class TestSaveInventoryLdap extends TestSaveInventory { + + def nodeExists(id: String, dit: InventoryDit): Boolean = { + MockLdapFactStorage.testServer.entryExists(dit.NODES.NODE.dn(id).toString) + } + + def nodeAsString(id: String, dit: InventoryDit): String = { + val sb = new java.lang.StringBuilder() + // we want to check also for the node entry, not only the inventory part + MockLdapFactStorage.testServer.getEntry(dit.NODES.NODE.dn(id).toString).toString(sb) + // we want to check also for the node entry, not only the inventory part + MockLdapFactStorage.testServer.getEntry(MockLdapFactStorage.nodeDit.NODES.NODE.dn(id).toString).toString(sb) + sb.toString() + } + + override def checkPendingNodeExists(id: String): Boolean = nodeExists(id, MockLdapFactStorage.pendingDIT) + override def getPendingNodeAsString(id: String): String = nodeAsString(id, MockLdapFactStorage.pendingDIT) + override def checkAcceptedNodeExists(id: String): Boolean = nodeExists(id, MockLdapFactStorage.acceptedDIT) + override def getAcceptedNodeAsString(id: String): String = nodeAsString(id, MockLdapFactStorage.acceptedDIT) + + override lazy val factStorage = MockLdapFactStorage.nodeFactStorage +} + +@nowarn("msg=a type was inferred to be `\\w+`; this may indicate a programming error.") +trait TestSaveInventory extends Specification with BeforeAfterAll { + + // methods that need to be implemented by children + def checkPendingNodeExists(id: String): Boolean + def getPendingNodeAsString(id: String): String + def checkAcceptedNodeExists(id: String): Boolean + def getAcceptedNodeAsString(id: String): String + + // load bouncyCastle + Security.addProvider(new BouncyCastleProvider()) + + implicit class RunThing[E, T](thing: ZIO[Any, E, T]) { + def testRun = ZioRuntime.unsafeRun(thing.either) + } + implicit class RunOptThing[A](thing: IOResult[Option[A]]) { + def testRunGet: A = ZioRuntime.unsafeRun(thing.either) match { + case Right(Some(a)) => a + case Right(None) => throw new RuntimeException(s"Error in test: found None, expected Some") + case Left(err) => throw new RuntimeException(s"Error in test: ${err}") + } + } + + implicit class TestIsOK[E, T](thing: ZIO[Any, E, T]) { + def isOK = thing.testRun must beRight + } + + implicit class ForceGetE[E, A](opt: Either[E, A]) { + def forceGet: A = opt match { + case Right(x) => x + case Left(err) => throw new Exception(s"error in Test: ${err}") + } + } + + implicit def stringToNodeId(id: String): NodeId = NodeId(id) + + val basePath = s"/tmp/test-rudder-inventory/${DateFormaterService.gitTagFormat.print(DateTime.now())}" + + val INVENTORY_ROOT_DIR = basePath + "/inventories" + val INVENTORY_DIR_INCOMING = INVENTORY_ROOT_DIR + "/incoming" + + def incomingInventoryFile(name: String) = File(INVENTORY_DIR_INCOMING + "/" + name) + + val INVENTORY_DIR_FAILED = INVENTORY_ROOT_DIR + "/failed" + val INVENTORY_DIR_RECEIVED = INVENTORY_ROOT_DIR + "/received" + + def receivedInventoryFile(name: String) = File(INVENTORY_DIR_RECEIVED + "/" + name) + + val INVENTORY_DIR_UPDATE = INVENTORY_ROOT_DIR + "/accepted-nodes-updates" + + override def beforeAll(): Unit = { + List(basePath, INVENTORY_DIR_INCOMING, INVENTORY_DIR_FAILED, INVENTORY_DIR_RECEIVED, INVENTORY_DIR_UPDATE).foreach(f => + File(f).createDirectoryIfNotExists(true) + ) + + } + + override def afterAll(): Unit = { + if (java.lang.System.getProperty("tests.clean.tmp") != "false") { + FileUtils.deleteDirectory(File(basePath).toJava) + } + } + + def factStorage: NodeFactStorage + + // TODO WARNING POC: this can't work on a machine with lots of node + val callbackLog = Ref.make(Chunk.empty[NodeFactChangeEvent]).runNow + def resetLog = callbackLog.set(Chunk.empty).runNow + def getLogName = callbackLog.get.map(_.map(_.name)).runNow + + object noopNodeBySoftwareName extends GetNodesbySofwareName { + override def apply(softName: String): IOResult[List[(NodeId, Software)]] = { + Nil.succeed + } + } + + val factRepo = { + for { + pending <- Ref.make(Map[NodeId, CoreNodeFact]()) + accepted <- Ref.make(Map[NodeId, CoreNodeFact]()) + callbacks <- Ref.make(Chunk.empty[NodeFactChangeEventCallback]) + lock <- ReentrantLock.make() + r = new CoreNodeFactRepository(factStorage, noopNodeBySoftwareName, pending, accepted, callbacks, lock) + _ <- r.registerChangeCallbackAction(CoreNodeFactChangeEventCallback("trail", e => callbackLog.update(_.appended(e.event)))) +// _ <- r.registerChangeCallbackAction(new NodeFactChangeEventCallback("log", e => effectUioUnit(println(s"**** ${e.name}")))) + } yield { + r + } + }.runNow + + lazy val inventorySaver = new NodeFactInventorySaver( + factRepo, + ( + CheckOsType + :: new LastInventoryDate() + :: AddIpValues + :: Nil + ), + ( +// we don't want post commit hook in tests +// new PostCommitInventoryHooks[Unit](HOOKS_D, HOOKS_IGNORE_SUFFIXES) + Nil + ) + ) + lazy val pipelinedInventoryParser: InventoryParser = { + val fusionReportParser = { + new FusionInventoryParser( + new StringUuidGeneratorImpl(), + rootParsingExtensions = Nil, + contentParsingExtensions = Nil, + ignoreProcesses = false + ) + } + + new DefaultInventoryParser( + fusionReportParser, + Seq( + new PreInventoryParserCheckConsistency + ) + ) + } + + lazy val inventoryProcessorInternal = { + new InventoryProcessor( + pipelinedInventoryParser, + inventorySaver, + 4, + new InventoryDigestServiceV1(id => factRepo.get(id).map(_.map(cnf => NodeFact.fromMinimal(cnf).toFullInventory))), + () => ZIO.unit + ) + } + + lazy val inventoryProcessor = { + val mover = new InventoryMover( + INVENTORY_DIR_RECEIVED, + INVENTORY_DIR_FAILED, + new InventoryFailedHook("/tmp", Nil) + ) + new DefaultProcessInventoryService(inventoryProcessorInternal, mover) + } + +// org.slf4j.LoggerFactory +// .getLogger("inventory-processing") +// .asInstanceOf[ch.qos.logback.classic.Logger] +// .setLevel(ch.qos.logback.classic.Level.TRACE) + + sequential + + val nodeId = "86d9ec77-9db5-4ba3-bdca-f0baf3a5b477" + val nodeName = s"node2-${nodeId}.ocs" + val nodeResource = s"inventories/7.2/${nodeName}" + val newfqdn = "node42.fqdn" + val fqdn = "node2.rudder.local" + + implicit val cc: ChangeContext = ChangeContext.newForRudder() + + "Saving a new, unknown inventory" should { + + "correctly save the node in pending" in { + resetLog + val n2 = incomingInventoryFile(nodeName) + n2.write(Resource.getAsString(nodeResource)) + val n2sign = incomingInventoryFile(s"${nodeName}.sign") + n2sign.write(Resource.getAsString(s"${nodeResource}.sign")) + + (inventoryProcessor.saveInventoryBlocking(InventoryPair(n2, n2sign)).runNow must beEqualTo( + Saved(nodeName, nodeId) + )) and + (receivedInventoryFile(nodeName).exists must beTrue) and + (checkPendingNodeExists(nodeId) must beTrue) and + (factRepo.get(nodeId)(SelectNodeStatus.Pending).runNow must beSome()) and + (getLogName === Chunk("newPending")) + } + + "change in node by repos are reflected in cold storage" in { + implicit val attrs = SelectFacts.none + resetLog + val e = (for { + n <- factRepo.get(nodeId)(SelectNodeStatus.Pending).notOptional("node2 should be there for the test") + e <- factRepo.save(NodeFact.fromMinimal(n).modify(_.fqdn).setTo(newfqdn)) + } yield e).runNow + + (getPendingNodeAsString(nodeId).contains(newfqdn) must beTrue) and + (e.event must beAnInstanceOf[NodeFactChangeEvent.UpdatedPending]) and + (getLogName === Chunk("updatedPending")) + + } + + "update the node that was modified in repo" in { + resetLog + val n2 = receivedInventoryFile(nodeName).moveTo(incomingInventoryFile(nodeName)) + val n2sign = receivedInventoryFile(s"${nodeName}.sign").moveTo(incomingInventoryFile(s"${nodeName}.sign")) + + (inventoryProcessor.saveInventoryBlocking(InventoryPair(n2, n2sign)).runNow must beEqualTo( + Saved(nodeName, nodeId) + )) and + (factRepo.get(nodeId)(SelectNodeStatus.Pending).testRunGet.fqdn must beEqualTo(fqdn)) and + (getPendingNodeAsString(nodeId).contains(fqdn) must beTrue) and + (getLogName === Chunk("updatedPending")) + } + + "rudder settings and properties can be modified on pending nodes" in { + val prop = NodeProperty("test-prop-name", ConfigValueFactory.fromAnyRef("test-prop-value"), None, None) + implicit val attrs = SelectFacts.none + val n = (for { + cnf <- factRepo.get(nodeId)(SelectNodeStatus.Pending).notOptional(s"for test - the node was added earlier") + up = cnf + .modify(_.rudderSettings.state) + .setTo(NodeState.Initializing) + .modify(_.rudderSettings.policyMode) + .setTo(Some(PolicyMode.Audit)) + .modify(_.properties) + .using(_.appended(prop)) + _ <- factRepo.save(NodeFact.fromMinimal(up)) + check <- factRepo.get(nodeId)(SelectNodeStatus.Pending).notOptional(s"for test - update node must be here") + } yield check).runNow + + val entries = getPendingNodeAsString(nodeId) + + ( + n.properties must contain(prop) + ) and ( + n.rudderSettings.state === NodeState.Initializing + ) and ( + n.rudderSettings.policyMode === Some(PolicyMode.Audit) + ) and ( + entries must contain("test-prop-name") + ) and ( + entries must contain("test-prop-val") + ) + } + } + + "Accepting a new, unknown inventory" should { + + "correctly update status and move file around" in { + resetLog + val e = factRepo.changeStatus(nodeId, AcceptedInventory).runNow + (e.event must beAnInstanceOf[NodeFactChangeEvent.Accepted]) and + (checkAcceptedNodeExists(nodeId) must beTrue) and + (factRepo.get(nodeId)(SelectNodeStatus.Accepted).testRunGet.rudderSettings.status must beEqualTo(AcceptedInventory)) and + (getLogName === Chunk("accepted")) + } + "change in node by repos are reflected in file" in { + resetLog + val e = ( + for { + n <- factRepo.get(nodeId)(SelectNodeStatus.Accepted).notOptional("node2 should be there for the test") + e <- factRepo.save(NodeFact.fromMinimal(n).modify(_.fqdn).setTo(newfqdn)) + } yield e + ).runNow + + (e.event must beAnInstanceOf[NodeFactChangeEvent.Updated]) and + (getAcceptedNodeAsString(nodeId).contains(newfqdn) must beTrue) and + (getLogName === Chunk("updatedAccepted")) + } + + "update the node that was modified in repo" in { + resetLog + val n2 = receivedInventoryFile(nodeName).moveTo(incomingInventoryFile(nodeName)) + val n2sign = receivedInventoryFile(s"${nodeName}.sign").moveTo(incomingInventoryFile(s"${nodeName}.sign")) + + ( + inventoryProcessor.saveInventoryBlocking(InventoryPair(n2, n2sign)).runNow must beEqualTo( + Saved(nodeName, nodeId) + ) + ) and + (factRepo.get(nodeId)(SelectNodeStatus.Accepted).testRunGet.fqdn must beEqualTo(fqdn)) and + (getAcceptedNodeAsString(nodeId).contains(fqdn) must beTrue) and + (getLogName === Chunk("updatedAccepted")) + } + } + + "Changing status to deleted" should { + + "correctly delete node and value in repos" in { + resetLog + val e = factRepo.changeStatus(nodeId, RemovedInventory).runNow + + (e.event must beAnInstanceOf[NodeFactChangeEvent.Deleted]) and + (checkPendingNodeExists(nodeId) must beFalse) and + (checkAcceptedNodeExists(nodeId) must beFalse) and + (factRepo.get(nodeId)(SelectNodeStatus.Any).runNow must beNone) and + (getLogName === Chunk("deleted")) + } + } + +} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestSelectFacts.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestSelectFacts.scala new file mode 100644 index 00000000000..79281a40f88 --- /dev/null +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/facts/nodes/TestSelectFacts.scala @@ -0,0 +1,199 @@ +/* + ************************************************************************************* + * Copyright 2023 Normation SAS + ************************************************************************************* + * + * This file is part of Rudder. + * + * Rudder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In accordance with the terms of section 7 (7. Additional Terms.) of + * the GNU General Public License version 3, the copyright holders add + * the following Additional permissions: + * Notwithstanding to the terms of section 5 (5. Conveying Modified Source + * Versions) and 6 (6. Conveying Non-Source Forms.) of the GNU General + * Public License version 3, when you create a Related Module, this + * Related Module is not considered as a part of the work and may be + * distributed under the license agreement of your choice. + * A "Related Module" means a set of sources files including their + * documentation that, without modification of the Source Code, enables + * supplementary functions or services in addition to those offered by + * the Software. + * + * Rudder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rudder. If not, see . + + * + ************************************************************************************* + */ + +package com.normation.rudder.facts.nodes + +import com.normation.inventory.domain.AcceptedInventory +import com.normation.inventory.domain.Bios +import com.normation.inventory.domain.FullInventory +import com.normation.inventory.domain.MachineInventory +import com.normation.inventory.domain.MachineUuid +import com.normation.inventory.domain.Manufacturer +import com.normation.inventory.domain.VirtualMachineType +import com.normation.inventory.domain.VmType +import com.normation.rudder.MockNodes +import com.softwaremill.quicklens._ +import org.junit.runner._ +import org.specs2.mutable._ +import org.specs2.runner._ +import zio.Chunk + +/* + * Simple test on merge / mask / etc for SelcetFacts + */ +//@silent("a type was inferred to be `\\w+`; this may indicate a programming error.") +@RunWith(classOf[JUnitRunner]) +class TestSelectFacts extends Specification { + import MockNodes._ + + val machine1 = MachineInventory( + MachineUuid("machine1"), + AcceptedInventory, + VirtualMachineType(VmType.VirtualBox), + None, + None, + None, + None, + Some(Manufacturer("the manufactorurer")), + None, + List(Bios("bios")) + ) + + val nodeFact1 = NodeFact.fromCompat(node1, Right(FullInventory(nodeInventory1, Some(machine1))), softwares) + + "masking 1" >> { + (SelectFacts.mask(nodeFact1)(SelectFacts.all) === nodeFact1) and + (nodeFact1.software must not beEmpty) and + (nodeFact1.environmentVariables must not beEmpty) and + (nodeFact1.bios must not beEmpty) and + (nodeFact1.softwareUpdate must not beEmpty) + } + + "masking 2" >> { + SelectFacts.mask(nodeFact1)(SelectFacts.noSoftware) === nodeFact1.modify(_.software).setTo(Chunk()) + } + + "masking 3" >> { + SelectFacts.mask(nodeFact1)(SelectFacts.none) === nodeFact1 + .modify(_.swap) + .setTo(None) + .modify(_.accounts) + .setTo(Chunk()) + .modify(_.bios) + .setTo(Chunk()) + .modify(_.controllers) + .setTo(Chunk()) + .modify(_.environmentVariables) + .setTo(Chunk()) + .modify(_.fileSystems) + .setTo(Chunk()) + .modify(_.inputs) + .setTo(Chunk()) + .modify(_.localGroups) + .setTo(Chunk()) + .modify(_.localUsers) + .setTo(Chunk()) + .modify(_.logicalVolumes) + .setTo(Chunk()) + .modify(_.memories) + .setTo(Chunk()) + .modify(_.networks) + .setTo(Chunk()) + .modify(_.physicalVolumes) + .setTo(Chunk()) + .modify(_.ports) + .setTo(Chunk()) + .modify(_.processes) + .setTo(Chunk()) + .modify(_.processors) + .setTo(Chunk()) + .modify(_.slots) + .setTo(Chunk()) + .modify(_.software) + .setTo(Chunk()) + .modify(_.softwareUpdate) + .setTo(Chunk()) + .modify(_.sounds) + .setTo(Chunk()) + .modify(_.storages) + .setTo(Chunk()) + .modify(_.videos) + .setTo(Chunk()) + .modify(_.vms) + .setTo(Chunk()) + } + + "masking 3" >> { + SelectFacts.mask(nodeFact1)( + SelectFacts.none + .modify(_.bios.mode) + .setTo(SelectMode.Retrieve) + .modify(_.software.mode) + .setTo(SelectMode.Retrieve) + .modify(_.softwareUpdate.mode) + .setTo(SelectMode.Retrieve) + .modify(_.environmentVariables.mode) + .setTo(SelectMode.Retrieve) + ) === nodeFact1 + .modify(_.swap) + .setTo(None) + .modify(_.accounts) + .setTo(Chunk()) +// .modify(_.bios) +// .setTo(Chunk()) + .modify(_.controllers) + .setTo(Chunk()) +// .modify(_.environmentVariables) +// .setTo(Chunk()) + .modify(_.fileSystems) + .setTo(Chunk()) + .modify(_.inputs) + .setTo(Chunk()) + .modify(_.localGroups) + .setTo(Chunk()) + .modify(_.localUsers) + .setTo(Chunk()) + .modify(_.logicalVolumes) + .setTo(Chunk()) + .modify(_.memories) + .setTo(Chunk()) + .modify(_.networks) + .setTo(Chunk()) + .modify(_.physicalVolumes) + .setTo(Chunk()) + .modify(_.ports) + .setTo(Chunk()) + .modify(_.processes) + .setTo(Chunk()) + .modify(_.processors) + .setTo(Chunk()) + .modify(_.slots) + .setTo(Chunk()) +// .modify(_.software) +// .setTo(Chunk()) +// .modify(_.softwareUpdate) +// .setTo(Chunk()) + .modify(_.sounds) + .setTo(Chunk()) + .modify(_.storages) + .setTo(Chunk()) + .modify(_.videos) + .setTo(Chunk()) + .modify(_.vms) + .setTo(Chunk()) + } +} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/inventory/TestCertificate.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/inventory/TestCertificate.scala index 51c573e8640..6f8bd5b9818 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/inventory/TestCertificate.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/inventory/TestCertificate.scala @@ -46,7 +46,6 @@ import com.normation.inventory.domain.Inventory import com.normation.inventory.domain.InventoryStatus import com.normation.inventory.domain.MachineUuid import com.normation.inventory.domain.NodeId -import com.normation.inventory.domain.NodeInventory import com.normation.inventory.domain.SecurityToken.kind import com.normation.inventory.provisioning.fusion.FusionInventoryParser import com.normation.inventory.services.core.FullInventoryRepository @@ -120,15 +119,11 @@ class TestCertificate extends Specification with Loggable { ) .map(_ => Nil) - override def getMachineId(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[(MachineUuid, InventoryStatus)]] = + override def getMachineId(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Option[(MachineUuid, InventoryStatus)]] = ??? - override def getAllInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, FullInventory]] = ??? - override def getInventories(inventoryStatus: InventoryStatus, nodeIds: Set[NodeId]): IOResult[Map[NodeId, FullInventory]] = - ??? - override def getAllNodeInventories(inventoryStatus: InventoryStatus): IOResult[Map[NodeId, NodeInventory]] = ??? - override def delete(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? - override def move(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? - override def moveNode(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? + override def delete(id: NodeId, inventoryStatus: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? + override def move(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? + override def moveNode(id: NodeId, from: InventoryStatus, into: InventoryStatus): IOResult[Seq[LDIFChangeRecord]] = ??? } val processor = new InventoryProcessor( diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/repository/jdbc/ReportingServiceTest.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/repository/jdbc/ReportingServiceTest.scala index 0ad3ab15079..ef4fffde218 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/repository/jdbc/ReportingServiceTest.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/repository/jdbc/ReportingServiceTest.scala @@ -115,7 +115,7 @@ class ReportingServiceTest extends DBCommon with BoxSpecMatcher { def getPendingNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = ??? def getDeletedNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = ??? def getDeletedNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = ??? - def getNumberOfManagedNodes: Int = ??? + def getNumberOfManagedNodes: IOResult[Int] = ??? val getAll: IOResult[Map[NodeId, NodeInfo]] = { def build(id: String, mode: Option[PolicyMode]) = { val node1 = NodeConfigData.node1.node diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/NodeInfoServiceCachedTest.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/NodeInfoServiceCachedTest.scala deleted file mode 100644 index 63bb726ee35..00000000000 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/NodeInfoServiceCachedTest.scala +++ /dev/null @@ -1,512 +0,0 @@ -package com.normation.rudder.services.nodes - -import com.normation.errors.IOResult -import com.normation.eventlog.EventActor -import com.normation.eventlog.ModificationId -import com.normation.inventory.domain.AcceptedInventory -import com.normation.inventory.domain.FullInventory -import com.normation.inventory.domain.InventoryStatus -import com.normation.inventory.domain.MachineUuid -import com.normation.inventory.domain.NodeId -import com.normation.inventory.domain.PendingInventory -import com.normation.inventory.domain.RemovedInventory -import com.normation.inventory.ldap.core.FullInventoryRepositoryImpl -import com.normation.inventory.ldap.core.InventoryDit -import com.normation.inventory.ldap.core.InventoryDitService -import com.normation.inventory.ldap.core.InventoryDitServiceImpl -import com.normation.inventory.ldap.core.InventoryMapper -import com.normation.inventory.ldap.core.LDAPConstants.A_CONTAINER_DN -import com.normation.inventory.ldap.core.LDAPConstants.A_DESCRIPTION -import com.normation.inventory.ldap.core.LDAPConstants.A_HOSTNAME -import com.normation.inventory.ldap.core.LDAPConstants.A_NAME -import com.normation.inventory.ldap.core.LDAPConstants.A_NODE_UUID -import com.normation.inventory.ldap.core.LDAPConstants.A_POLICY_SERVER_UUID -import com.normation.inventory.ldap.core.LDAPConstants.OC_MACHINE -import com.normation.inventory.ldap.core.LDAPConstants.OC_NODE -import com.normation.ldap.ldif.DefaultLDIFFileLogger -import com.normation.ldap.listener.InMemoryDsConnectionProvider -import com.normation.ldap.sdk.BuildFilter.AND -import com.normation.ldap.sdk.BuildFilter.GTEQ -import com.normation.ldap.sdk.BuildFilter.IS -import com.normation.ldap.sdk.GeneralizedTime -import com.normation.ldap.sdk.LDAPConnectionProvider -import com.normation.ldap.sdk.LDAPEntry -import com.normation.ldap.sdk.LDAPIOResult.LDAPIOResult -import com.normation.ldap.sdk.One -import com.normation.ldap.sdk.RoLDAPConnection -import com.normation.ldap.sdk.RwLDAPConnection -import com.normation.rudder.domain.NodeDit -import com.normation.rudder.domain.RudderDit -import com.normation.rudder.domain.RudderLDAPConstants.A_POLICY_MODE -import com.normation.rudder.domain.RudderLDAPConstants.OC_RUDDER_NODE -import com.normation.rudder.domain.nodes.MachineInfo -import com.normation.rudder.domain.nodes.Node -import com.normation.rudder.domain.nodes.NodeInfo -import com.normation.rudder.domain.nodes.NodeState -import com.normation.rudder.domain.nodes.NodeState.Enabled -import com.normation.rudder.domain.policies.PolicyMode -import com.normation.rudder.reports.ReportingConfiguration -import com.normation.rudder.repository.ldap.LDAPEntityMapper -import com.normation.rudder.services.nodes.NodeInfoService.A_MOD_TIMESTAMP -import com.normation.rudder.services.policies.NodeConfigData -import com.normation.rudder.services.servers.AcceptFullInventoryInNodeOu -import com.normation.rudder.services.servers.AcceptInventory -import com.normation.rudder.services.servers.UnitAcceptInventory -import com.normation.rudder.services.servers.UnitRefuseInventory -import com.normation.zio._ -import com.softwaremill.quicklens._ -import com.unboundid.ldap.sdk.DN -import com.unboundid.ldap.sdk.Filter -import com.unboundid.ldap.sdk.RDN -import net.liftweb.common.Box -import net.liftweb.common.Full -import org.joda.time.DateTime -import org.junit.runner.RunWith -import org.specs2.mutable.Specification -import org.specs2.runner.JUnitRunner -import scala.collection.mutable.{Map => MutMap} -import scala.collection.mutable.Buffer -import scala.concurrent.duration.FiniteDuration - -/* - * Test the cache behaviour - */ -@RunWith(classOf[JUnitRunner]) -class NodeInfoServiceCachedTest extends Specification { - - sequential - - def DN(rdn: String, parent: DN) = new DN(new RDN(rdn), parent) - val LDAP_BASEDN = new DN("cn=rudder-configuration") - val LDAP_INVENTORIES_BASEDN = DN("ou=Inventories", LDAP_BASEDN) - val LDAP_INVENTORIES_SOFTWARE_BASEDN = LDAP_INVENTORIES_BASEDN - - val rudderDit = new RudderDit(DN("ou=Rudder", LDAP_BASEDN)) - val nodeDit = new NodeDit(new DN("cn=rudder-configuration")) - val inventoryDit = InventoryDit( - DN("ou=Accepted Inventories", DN("ou=Inventories", LDAP_BASEDN)), - LDAP_INVENTORIES_SOFTWARE_BASEDN, - "Accepted inventories" - ) - - def createNodeInfo(id: NodeId, machineUuid: Option[MachineUuid]): NodeInfo = { - NodeInfo( - Node(id, id.value, id.value, Enabled, false, false, new DateTime(), null, null, None), - id.value, - machineUuid.map(x => MachineInfo(x, null, None, None)), - null, - List(), - new DateTime(0), - null, - Seq(), - NodeId("root"), - "root", - None, - None, - None - ) - } - - // create the ldap node ifo, with an option for the machine entry (which is not mandatory) - def createLdapNodeInfo( - node: NodeInfo - ): LDAPNodeInfo = { - val nodeEntry = nodeDit.NODES.NODE.nodeModel(node.id) - nodeEntry.resetValuesTo(A_NAME, node.name) - nodeEntry.resetValuesTo(A_DESCRIPTION, node.node.description) - - for { - mode <- node.node.policyMode - } nodeEntry.resetValuesTo(A_POLICY_MODE, mode.name) - - val machineEntry = node.machine.map(x => inventoryDit.MACHINES.MACHINE.model(x.id)) - - val nodeInvEntry = inventoryDit.NODES.NODE.genericModel(node.id) - - nodeInvEntry.resetValuesTo(A_HOSTNAME, node.name) - nodeInvEntry.resetValuesTo(A_POLICY_SERVER_UUID, node.policyServerId.value) - machineEntry.map(mac => nodeInvEntry.resetValuesTo(A_CONTAINER_DN, mac.dn.toString)) - - LDAPNodeInfo(nodeEntry, nodeInvEntry, machineEntry) - } - - def ldapNodeInfosToMaps(ldapNodeInfos: Seq[LDAPNodeInfo]): NodeInfoServiceCached.InfoMaps = { - val seqs = ldapNodeInfos.map(x => (x.nodeEntry, x.nodeInventoryEntry, x.machineEntry)) - - val nodeEntries = MutMap() ++ (for { - entry <- seqs - nodeEntry = entry._1 - } yield { - (nodeEntry.value_!(A_NODE_UUID), nodeEntry) - }).toMap - val nodeInventoriesEntries = MutMap() ++ (for { - entry <- seqs - nodeInventoryEntry = entry._2 - } yield { - (nodeInventoryEntry.value_!(A_NODE_UUID), nodeInventoryEntry) - }).toMap - val machineEntries = MutMap() ++ (for { - entry <- seqs - machineEntry <- entry._3 - machineDn = machineEntry.dn.toString - } yield { - (machineDn, machineEntry) - }).toMap - - NodeInfoServiceCached.InfoMaps(nodeEntries, nodeInventoriesEntries, machineEntries, Buffer()) - } - - " with a standard cache " should { - val nodes = Map("1" -> Some("M1"), "2" -> Some("M2"), "3" -> Some("M3"), "4" -> None, "5" -> None) - - val nodeInfos = nodes.map { - case (id, machineId) => - createNodeInfo(NodeId(id), machineId.map(MachineUuid(_))) - } - - val ldapNodesInfos = nodeInfos.map { - case nodeinfo => - (nodeinfo.id, (createLdapNodeInfo(nodeinfo), nodeinfo)) - }.toMap - val cache = LocalNodeInfoCache(ldapNodesInfos, new DateTime(), Seq(), ldapNodesInfos.size) - - " be idempotent" in { - val infoMaps = ldapNodeInfosToMaps(ldapNodesInfos.values.map(_._1).toSeq) - - val ldap = NodeInfoServiceCached.constructNodesFromPartialUpdate(cache, infoMaps) - - ldapNodesInfos.values.map(_._1).toSeq.sortBy(e => e.nodeEntry.dn.toString) must containTheSameElementsAs(ldap.updated.toSeq) - } - - " find only the new entry if we make a new entry " in { - val newNode = Map("12" -> Some("M12")) - val newNodeInfos = newNode.map { - case (id, machineId) => - createNodeInfo(NodeId(id), machineId.map(MachineUuid(_))) - } - - val newLdapNodesInfos = newNodeInfos.map { - case nodeinfo => - (nodeinfo.id, (createLdapNodeInfo(nodeinfo), nodeinfo)) - }.toMap - - val infoMaps = ldapNodeInfosToMaps(newLdapNodesInfos.values.map(_._1).toSeq) - - val ldap = NodeInfoServiceCached.constructNodesFromPartialUpdate(cache, infoMaps) - - newLdapNodesInfos.values.map(_._1).toSeq must containTheSameElementsAs(ldap.updated.toSeq) - } - - "update an existing entry if we update a nodeInventory (policy server) " in { - - val nodes = Map("1" -> Some("M1")) - val nodeInfo = nodes.map { - case (id, machineId) => - createNodeInfo(NodeId(id), machineId.map(MachineUuid(_))) - }.head - // reference in cache - val oldLdapNodeInfo = createLdapNodeInfo(nodeInfo) - // change the policy server id - val newNodeInfo = nodeInfo.copy(policyServerId = NodeId("test")) - val ldapInventoryEntry = createLdapNodeInfo(newNodeInfo).nodeInventoryEntry - - val infoMaps = NodeInfoServiceCached.InfoMaps( - MutMap(), - MutMap(ldapInventoryEntry.value_!(A_NODE_UUID) -> ldapInventoryEntry), - MutMap(), - Buffer() - ) - val ldap = NodeInfoServiceCached.constructNodesFromPartialUpdate(cache, infoMaps).updated.toSeq - - ldap.size == 1 and - ldap.head.nodeInventoryEntry === ldapInventoryEntry and - ldap.head.nodeInventoryEntry != oldLdapNodeInfo.nodeInventoryEntry and - ldap.head.nodeEntry === oldLdapNodeInfo.nodeEntry and - ldap.head.machineEntry === oldLdapNodeInfo.machineEntry - - } - - "update an existing entry if we update a node (policy mode) " in { - val nodes = Map("1" -> Some("M1")) - val nodeInfo = nodes.map { - case (id, machineId) => - createNodeInfo(NodeId(id), machineId.map(MachineUuid(_))) - }.head - // reference in cache - val oldLdapNodeInfo = createLdapNodeInfo(nodeInfo) - - // change the policy mode - val newNode = nodeInfo.node.copy(policyMode = Some(PolicyMode.Audit)) - - val newNodeInfo = nodeInfo.copy(node = newNode) - val ldapNodeEntry = createLdapNodeInfo(newNodeInfo).nodeEntry - - val infoMaps = - NodeInfoServiceCached.InfoMaps(MutMap(ldapNodeEntry.value_!(A_NODE_UUID) -> ldapNodeEntry), MutMap(), MutMap(), Buffer()) - - val ldap = NodeInfoServiceCached.constructNodesFromPartialUpdate(cache, infoMaps).updated.toSeq - - ldap.size == 1 and - ldap.head.nodeEntry === ldapNodeEntry and - ldap.head.nodeEntry != oldLdapNodeInfo.nodeEntry and - ldap.head.nodeInventoryEntry === oldLdapNodeInfo.nodeInventoryEntry and - ldap.head.machineEntry === oldLdapNodeInfo.machineEntry - - } - - } - - "with a real ldap server" should { - - val ldifLogger = new DefaultLDIFFileLogger("TestQueryProcessor", "/tmp/normation/rudder/ldif") - - // init of in memory LDAP directory - val schemaLDIFs = ( - "00-core" :: - "01-pwpolicy" :: - "04-rfc2307bis" :: - "05-rfc4876" :: - "099-0-inventory" :: - "099-1-rudder" :: - Nil - ) map { name => - // toURI is needed for https://issues.rudder.io/issues/19186 - this.getClass.getClassLoader.getResource("ldap-data/schema/" + name + ".ldif").toURI.getPath - } - val bootstrapLDIFs = ("ldap/bootstrap.ldif" :: "ldap-data/inventory-sample-data.ldif" :: Nil) map { name => - // toURI is needed for https://issues.rudder.io/issues/19186 - this.getClass.getClassLoader.getResource(name).toURI.getPath - } - val ldap = InMemoryDsConnectionProvider[RwLDAPConnection]( - baseDNs = "cn=rudder-configuration" :: Nil, - schemaLDIFPaths = schemaLDIFs, - bootstrapLDIFPaths = bootstrapLDIFs, - ldifLogger - ) - // close your eyes for next line - val ldapRo = ldap.asInstanceOf[LDAPConnectionProvider[RoLDAPConnection]] - - val DIT = new InventoryDit( - new DN("ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration"), - new DN("ou=Inventories,cn=rudder-configuration"), - "test" - ) - - val removedDIT = new InventoryDit( - new DN("ou=Removed Inventories,ou=Inventories,cn=rudder-configuration"), - new DN("ou=Inventories,cn=rudder-configuration"), - "test" - ) - val pendingDIT = new InventoryDit( - new DN("ou=Pending Inventories,ou=Inventories,cn=rudder-configuration"), - new DN("ou=Inventories,cn=rudder-configuration"), - "test" - ) - val ditService = new InventoryDitServiceImpl(pendingDIT, DIT, removedDIT) - val nodeDit = new NodeDit(new DN("cn=rudder-configuration")) - val rudderDit = new RudderDit(new DN("ou=Rudder, cn=rudder-configuration")) - val inventoryMapper = new InventoryMapper(ditService, pendingDIT, DIT, removedDIT) - val ldapMapper = new LDAPEntityMapper(rudderDit, nodeDit, DIT, null, inventoryMapper) - val inventoryDitService: InventoryDitService = new InventoryDitServiceImpl(pendingDIT, DIT, removedDIT) - val ldapFullInventoryRepository = new FullInventoryRepositoryImpl(inventoryDitService, inventoryMapper, ldap) - val acceptInventory: UnitAcceptInventory with UnitRefuseInventory = - new AcceptInventory("accept_new_server:inventory", pendingDIT, DIT, ldapFullInventoryRepository) - val acceptNodeAndMachineInNodeOu: UnitAcceptInventory with UnitRefuseInventory = new AcceptFullInventoryInNodeOu( - "accept_new_server:ou=node", - nodeDit, - ldap, - ldapMapper, - PendingInventory, - () => Full(None), - () => Full(NodeState.Enabled) - ) - /* - * Our cached node info service. For test, we need to override the search for entries, because the in memory - * LDAP does not support searching only under some branch AND does not have an entryCSN. - * So for search, we do 3 search and we always search for "lastMost + 1ms". - * - * WARNING: that means that we assume there is no change in the directory between each search, else - * timestamp of last mod won't be consistant. - */ - val nodeInfoService = new NodeInfoServiceCachedImpl( - ldapRo, - nodeDit, - DIT, - removedDIT, - pendingDIT, - ldapMapper, - inventoryMapper, - FiniteDuration(5, "millis") - ) { - override def getNodeInfoEntries( - con: RoLDAPConnection, - searchAttributes: Seq[String], - status: InventoryStatus, - lastModification: Option[DateTime] - ): LDAPIOResult[Seq[LDAPEntry]] = { - // for test, force to not look pending - val dit = status match { - case AcceptedInventory | PendingInventory => this.inventoryDit - case RemovedInventory => this.removedDit - } - - def filter(filterNodes: Filter) = lastModification match { - case None => filterNodes - case Some(d) => AND(filterNodes, GTEQ(A_MOD_TIMESTAMP, GeneralizedTime(d.plus(1)).toString)) - } - - for { - res1 <- con.search(dit.NODES.dn, One, filter(IS(OC_NODE)), searchAttributes: _*) - res2 <- con.search(dit.MACHINES.dn, One, filter(IS(OC_MACHINE)), searchAttributes: _*) - res3 <- con.search(this.nodeDit.NODES.dn, One, filter(IS(OC_RUDDER_NODE)), searchAttributes: _*) - } yield res1 ++ res2 ++ res3 - } - } - - implicit class ForceGetBox[A](b: Box[A]) { - def forceGet = b match { - case Full(a) => a - case eb => throw new IllegalArgumentException(s"Error during test, box is an erro: ${eb}") - } - } - implicit class ForceGetIO[A](b: IOResult[A]) { - def forceGet = b.either.runNow match { - case Right(a) => a - case Left(err) => throw new IllegalArgumentException(s"Error during test, box is an erro: ${err.fullMsg}") - } - } - - "a new entry, with only node and then on next cache update inventory is ignored then found" in { - // we have a new node. In NewNodeManager impl in RudderConfig, we start by acceptNodeAndMachineInNodeOu then acceptInventory - - // our new node - val nodeInv = new FullInventory( - NodeConfigData.nodeInventory1 - .modify(_.main.status) - .setTo(PendingInventory) - .modify(_.main.id.value) - .setTo("testCacheNode") - .modify(_.machineId) - .setTo(Some((MachineUuid("testCacheMachine"), PendingInventory))), - Some( - NodeConfigData.machine2Pending - .modify(_.id.value) - .setTo("testCacheMachine") - .modify(_.name) - .setTo(Some("testCacheMachine")) - ) - ) - val modid = ModificationId("test") - val actor = EventActor("test") - val nodeId = nodeInv.node.main.id - - // *************** start **************** - // add inventory to pending - ldapFullInventoryRepository.save(nodeInv).runNow - // wait a bit for cache - Thread.sleep(50) - // load cache - nodeInfoService.getAll().forceGet - - // org.slf4j.LoggerFactory.getLogger("nodes.cache").asInstanceOf[ch.qos.logback.classic.Logger].setLevel(ch.qos.logback.classic.Level.TRACE) - - // *************** step1 **************** - // cache does not know about node1 yet - acceptNodeAndMachineInNodeOu.acceptOne(nodeInv, modid, actor).forceGet - val step1res = nodeInfoService.getNodeInfo(nodeId).forceGet - - // *************** step2 **************** - // second new node step: cache converge - acceptInventory.acceptOne(nodeInv, modid, actor).forceGet - val step2res = nodeInfoService.getNodeInfo(nodeId).forceGet - - (step1res === None) and - (step2res must beSome) and - (step2res.get.machine must beSome) - - } - - "a new entry, with only the container first, and then on next cache update inventory is ignored then found" in { - // our new node - val nodeInv = new FullInventory( - NodeConfigData.nodeInventory1 - .modify(_.main.status) - .setTo(PendingInventory) - .modify(_.main.id.value) - .setTo("testCacheNode2") - .modify(_.machineId) - .setTo(Some((MachineUuid("testCacheMachine2"), AcceptedInventory))), - Some( - NodeConfigData.machine1Accepted - .modify(_.id.value) - .setTo("testCacheMachine2") - .modify(_.name) - .setTo(Some("testCacheMachine2")) - ) - ) - val nodeId = nodeInv.node.main.id - - /** Create the node here, to "cheat" to simulate acceptation */ - val name = nodeInv.node.name.getOrElse(nodeInv.node.main.id.value) - val description = nodeInv.node.description.getOrElse("") - - val node = Node( - nodeId, - name, - description, - NodeState.Enabled, - false, - false, - DateTime.now, // won't be used on save - dummy value - - ReportingConfiguration(None, None, None), // use global schedule, and default configuration for reporting - - Nil, // no user properties for now - - None - ) - - // *************** start **************** - // Force init of cache - nodeInfoService.getAll().forceGet - - // add node inventory to pending, but machine to accepted - ldapFullInventoryRepository.save(nodeInv).runNow - ldap.server.exportToLDIF("/tmp/ldif-before", false, false) - - // wait a bit for cache - Thread.sleep(500) - // load cache - nodeInfoService.getAll().forceGet - - // *************** step1 **************** - // cache does not know about testCacheNode2 yet - val step1res = nodeInfoService.getNodeInfo(nodeId).forceGet - - // move the node to the accepted - // *************** step2 **************** - ldapFullInventoryRepository.moveNode(nodeId, PendingInventory, AcceptedInventory).runNow - - // create the entry in ou=Nodes - val nodeEntry = ldapMapper.nodeToEntry(node) - (for { - con <- ldap - saved <- con.save(nodeEntry) - } yield { - saved - }).runNow - - ldapFullInventoryRepository.move(MachineUuid("testCacheMachine2"), PendingInventory) - - Thread.sleep(500) - val step2res = nodeInfoService.getNodeInfo(nodeId).forceGet - // It should find the container via compensation - - (step1res === None) and - (step2res must beSome) and - (step2res.get.machine must beSome) - - } - } - -} diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/TestMergeGroupProperties.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/TestMergeGroupProperties.scala index c4f26b83466..fb252238299 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/TestMergeGroupProperties.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/nodes/TestMergeGroupProperties.scala @@ -77,7 +77,7 @@ class TestMergeGroupProperties extends Specification { implicit class ToTarget(g: NodeGroup) { def toTarget = FullRuleTargetInfo(FullGroupTarget(GroupTarget(g.id), g), g.name, "", true, true) - def toCriterion = CriterionLine(null, Criterion("some ldap attr", new SubGroupComparator(null)), null, g.id.serialize) + def toCriterion = CriterionLine(null, Criterion("some ldap attr", SubGroupComparator(null), null), null, g.id.serialize) } implicit class ToNodePropertyHierarchy(groups: List[NodeGroup]) { diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestQueryProcessor.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestNodeFactQueryProcessor.scala similarity index 87% rename from webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestQueryProcessor.scala rename to webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestNodeFactQueryProcessor.scala index 7f3ef0a039a..6cc083f615b 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestQueryProcessor.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestNodeFactQueryProcessor.scala @@ -37,24 +37,23 @@ package com.normation.rudder.services.queries +import com.normation.NamedZioLogger import com.normation.errors._ import com.normation.inventory.domain.NodeId -import com.normation.inventory.ldap.core._ -import com.normation.ldap.ldif._ -import com.normation.ldap.listener.InMemoryDsConnectionProvider -import com.normation.ldap.sdk._ -import com.normation.rudder.domain._ +import com.normation.inventory.domain.Software +import com.normation.rudder.domain.RudderDit +import com.normation.rudder.domain.nodes.NodeGroupId +import com.normation.rudder.domain.nodes.NodeGroupUid import com.normation.rudder.domain.queries._ -import com.normation.rudder.repository.ldap.LDAPEntityMapper -import com.normation.rudder.services.nodes.NaiveNodeInfoServiceCachedImpl +import com.normation.rudder.facts.nodes._ import com.normation.zio._ import com.softwaremill.quicklens._ import com.unboundid.ldap.sdk.DN -import net.liftweb.common._ +import net.liftweb.common.Failure import org.junit._ -import org.junit.Assert._ import org.junit.runner.RunWith import org.junit.runners.BlockJUnit4ClassRunner +import zio._ import zio.syntax._ /* @@ -65,80 +64,84 @@ import zio.syntax._ */ @RunWith(classOf[BlockJUnit4ClassRunner]) -class TestQueryProcessor extends Loggable { - - val ldifLogger = new DefaultLDIFFileLogger("TestQueryProcessor", "/tmp/normation/rudder/ldif") - - // init of in memory LDAP directory - val schemaLDIFs = ( - "00-core" :: - "01-pwpolicy" :: - "04-rfc2307bis" :: - "05-rfc4876" :: - "099-0-inventory" :: - "099-1-rudder" :: - Nil - ) map { name => - // toURI is needed for https://issues.rudder.io/issues/19186 - this.getClass.getClassLoader.getResource("ldap-data/schema/" + name + ".ldif").toURI.getPath - } - val bootstrapLDIFs = ("ldap/bootstrap.ldif" :: "ldap-data/inventory-sample-data.ldif" :: Nil) map { name => - // toURI is needed for https://issues.rudder.io/issues/19186 - this.getClass.getClassLoader.getResource(name).toURI.getPath - } - val ldap = InMemoryDsConnectionProvider[RoLDAPConnection]( - baseDNs = "cn=rudder-configuration" :: Nil, - schemaLDIFPaths = schemaLDIFs, - bootstrapLDIFPaths = bootstrapLDIFs, - ldifLogger - ) - // end inMemory ds +class TestNodeFactQueryProcessor { + implicit def StringToNodeId(s: String): NodeId = NodeId(s) + implicit def StringToGroupId(s: String): NodeGroupId = NodeGroupId(NodeGroupUid(s)) + + val logger = NamedZioLogger(this.getClass.getPackageName + "." + this.getClass.getSimpleName) + + object subGroupComparatorRepo extends SubGroupComparatorRepository { + val groups = Map( + (SubGroupChoice("test-group-node1", "Only contains node1"), Chunk[NodeId]("node1")), + (SubGroupChoice("test-group-node2", "Only contains node2"), Chunk[NodeId]("node2")), + (SubGroupChoice("test-group-node12", "Only contains node1 and node2"), Chunk[NodeId]("node1", "node2")), + (SubGroupChoice("test-group-node23", "Only contains node2 and node3"), Chunk[NodeId]("node2", "node3")), + (SubGroupChoice("AIXSystems", "AIXSystems"), Chunk[NodeId]()) + ) + + override def getNodeIds(groupId: NodeGroupId): IOResult[Chunk[NodeId]] = { + (groups.find(_._1.id == groupId) match { + case Some(kv) => kv._2 + case None => Chunk.empty + }).succeed + } - val DIT = new InventoryDit( - new DN("ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration"), - new DN("ou=Inventories,cn=rudder-configuration"), - "test" - ) + override def getGroups: IOResult[Chunk[SubGroupChoice]] = Chunk.fromIterable(groups.keys).succeed + } + val queryData = new NodeQueryCriteriaData(() => subGroupComparatorRepo) + + // load all nodes that in resources: node-facts/*.json +// java.lang.Runtime.getRuntime.gc() +// println(s"free memory before: " + java.lang.Runtime.getRuntime.freeMemory()) +// val nodes = File(Resource.getUrl("node-facts").getPath).children.toList.flatMap { f => +// if (f.extension != Some(".json")) None +// else { +// f.contentAsString(StandardCharsets.UTF_8).fromJson[NodeFact] match { +// case Left(err) => throw new IllegalArgumentException(s"Unable to read node from file '${f.pathAsString}': ${err}") +// case Right(n) => Some(n) +// } +// } +// } - val removedDIT = new InventoryDit( - new DN("ou=Removed Inventories,ou=Inventories,cn=rudder-configuration"), - new DN("ou=Inventories,cn=rudder-configuration"), - "test" - ) - val pendingDIT = new InventoryDit( - new DN("ou=Pending Inventories,ou=Inventories,cn=rudder-configuration"), - new DN("ou=Inventories,cn=rudder-configuration"), - "test" - ) - val ditService = new InventoryDitServiceImpl(pendingDIT, DIT, removedDIT) - val nodeDit = new NodeDit(new DN("cn=rudder-configuration")) - val rudderDit = new RudderDit(new DN("ou=Rudder, cn=rudder-configuration")) + // when one need to debug search, you can just uncomment that to set log-level to trace + // format: off + //org.slf4j.LoggerFactory.getLogger("com.normation.rudder.services.queries").asInstanceOf[ch.qos.logback.classic.Logger].setLevel(ch.qos.logback.classic.Level.TRACE) + // format: on - val ditQueryData = new DitQueryData(DIT, nodeDit, rudderDit, () => Inconsistency("For test, no subgroup").fail) + val nodeRepository = { - val inventoryMapper = new InventoryMapper(ditService, pendingDIT, DIT, removedDIT) - val ldapMapper = new LDAPEntityMapper(rudderDit, nodeDit, DIT, null, inventoryMapper) - val internalLDAPQueryProcessor = new InternalLDAPQueryProcessor(ldap, DIT, nodeDit, ditQueryData, ldapMapper) + object NoopNodeBySoftware extends GetNodesbySofwareName { + override def apply(softName: String): IOResult[List[(NodeId, Software)]] = Nil.succeed + } + CoreNodeFactRepository + .make( + MockLdapFactStorage.nodeFactStorage, + NoopNodeBySoftware, + Chunk.empty + ) + .runNow + } - val nodeInfoService = - new NaiveNodeInfoServiceCachedImpl(ldap, nodeDit, DIT, removedDIT, pendingDIT, ldapMapper, inventoryMapper) + val internalLDAPQueryProcessor = { + import MockLdapFactStorage._ + val rudderDit = new RudderDit(new DN("ou=Rudder, cn=rudder-configuration")) + val ditQueryData = new DitQueryData(acceptedDIT, nodeDit, rudderDit, queryData) + new InternalLDAPQueryProcessor(ldapRo, acceptedDIT, nodeDit, ditQueryData, ldapMapper) + } - val queryProcessor = new AcceptedNodesLDAPQueryProcessor( - nodeDit, - DIT, - internalLDAPQueryProcessor, - nodeInfoService - ) + val queryProcessor = new NodeFactQueryProcessor(nodeRepository, subGroupComparatorRepo, internalLDAPQueryProcessor) val parser = new CmdbQueryParser with DefaultStringQueryParser with JsonQueryLexer { - override val criterionObjects = Map[String, ObjectCriterion]() ++ ditQueryData.criteriaMap + override val criterionObjects = queryData.criteriaMap.toMap } case class TestQuery(name: String, query: Query, awaited: Seq[NodeId]) // when one need to debug search, you can just uncomment that to set log-level to trace - // val l: ch.qos.logback.classic.Logger = org.slf4j.LoggerFactory.getLogger("com.normation.rudder.services.queries").asInstanceOf[ch.qos.logback.classic.Logger] - // l.setLevel(ch.qos.logback.classic.Level.TRACE) + org.slf4j.LoggerFactory + .getLogger("query.node-fact") + .asInstanceOf[ch.qos.logback.classic.Logger] + .setLevel(ch.qos.logback.classic.Level.TRACE) val s = Seq( new NodeId("node0"), @@ -154,22 +157,6 @@ class TestQueryProcessor extends Loggable { val root = NodeId("root") val sr = root +: s - @Test def ensureNodeLoaded(): Unit = { - // just check that we correctly loaded demo data in serve - val s = (for { - con <- ldap - res <- con.search(new DN("cn=rudder-configuration"), Sub, BuildFilter.ALL) - } yield { - res.size - }).runNow - - val expected = 43 + 40 // bootstrap + inventory-sample - assert( - expected == s, - s"Not found the expected number of entries in test LDAP directory [expected: ${expected}, found: ${s}], perhaps the demo entries where not correctly loaded" - ) - } - @Test def basicQueriesOnId(): Unit = { /* find back all server */ @@ -261,18 +248,7 @@ class TestQueryProcessor extends Loggable { q2_2.awaited ) - // group of group, with or/and composition - val q3 = TestQuery( - "q3", - parser(""" - { "select":"node", "where":[ - { "objectType":"group", "attribute":"nodeGroupId", "comparator":"eq", "value":"test-group-node1" } - ] } - """).openOrThrowException("For tests"), - s(1) :: Nil - ) - - testQueries(q2_0 :: q2_0_ :: q2_1 :: q2_1_ :: q2_2 :: q2_2_ :: q3 :: Nil, true) + testQueries(q2_0 :: q2_0_ :: q2_1 :: q2_1_ :: q2_2 :: q2_2_ :: Nil, true) } // group of group, with or/and composition @@ -779,7 +755,7 @@ class TestQueryProcessor extends Loggable { query = q2.query.copy(composition = Or), (s(2) :: s(7) :: // software s(4) :: s(5) :: s(6) :: s(7) :: // machine - s(2) :: root :: // free space + s(7) :: root :: // free space s(2) :: // bios Nil).distinct ) @@ -928,32 +904,33 @@ class TestQueryProcessor extends Loggable { def q(name: String, comp: String, day: Int, expects: Seq[NodeId]) = TestQuery( name, parser(""" - { "select":"node", "where":[ + { "select":"nodeAndPolicyServer", "where":[ { "objectType":"node", "attribute":"inventoryDate", "comparator":"%s" , "value":"%s/05/2013" } ] } """.format(comp, day)).openOrThrowException("For tests"), expects ) - def query(name: String, comp: String, day: Int, valid: Boolean) = q(name, comp, day, if (valid) s(0) :: Nil else Nil) - - val q12 = q("q12", "notEq", 15, s.filterNot(_ == s(0))) - val q13 = q("q13", "notEq", 14, s) - val q14 = q("q14", "notEq", 16, s) + // nodes are going year by year [root=2012-05-15, s0=2013-05-15 <- select date, s1=2014-05-15 etc] + def query(name: String, comp: String, day: Int, nodes: Seq[NodeId]) = q(name, comp, day, nodes) + // root is not part of 's", no need to filter it out + // the number 14, 15 etc is the day in 2013-05-dd ! testQueries( - query("q1", "eq", 15, valid = true) - :: query("q2", "eq", 14, valid = false) - :: query("q3", "eq", 16, valid = false) - :: query("q4", "gteq", 15, valid = true) - :: query("q5", "gteq", 16, valid = false) - :: query("q6", "lteq", 15, valid = true) - :: query("q7", "lteq", 14, valid = false) - :: query("q8", "lt", 15, valid = false) - :: query("q9", "lt", 16, valid = true) - :: query("q10", "gt", 15, valid = false) - :: query("q11", "gt", 14, valid = true) - :: q12 :: q13 :: q14 + query("q1", "eq", 15, s(0) :: Nil) + :: query("q2", "eq", 14, Nil) + :: query("q3", "eq", 16, Nil) + :: query("q4", "gteq", 15, s) + :: query("q5", "gteq", 16, s.filterNot(x => x == s(0))) + :: query("q6", "lteq", 15, root :: s(0) :: Nil) + :: query("q7", "lteq", 14, root :: Nil) + :: query("q8", "lt", 15, root :: Nil) + :: query("q9", "lt", 16, root :: s(0) :: Nil) + :: query("q10", "gt", 15, s.filterNot(x => x == s(0))) + :: query("q11", "gt", 14, s) + :: q("q12", "notEq", 15, root +: s.filterNot(_ == s(0))) + :: q("q13", "notEq", 14, root +: s) + :: q("q14", "notEq", 16, root +: s) :: Nil, true ) @@ -1328,7 +1305,7 @@ class TestQueryProcessor extends Loggable { val results = failingRegexRequests.map(q => (q, queryProcessor.process(forceParse(q)))) results.foreach { r => - assertTrue(s"Regex Query with wrong data for node properties should fail: ${r._1}", r._2.isInstanceOf[Failure]) + Assert.assertTrue(s"Regex Query with wrong data for node properties should fail: ${r._1}", r._2.isInstanceOf[Failure]) } } @@ -1350,7 +1327,7 @@ class TestQueryProcessor extends Loggable { private def testQueries(queries: Seq[TestQuery], doInternalQueryTest: Boolean): Unit = { queries foreach { q => - logger.debug("Processing: " + q.name) + logger.logEffect.debug("Processing: " + q.name) testQueryResultProcessor(q.name, q.query, q.awaited, doInternalQueryTest) } @@ -1359,49 +1336,25 @@ class TestQueryProcessor extends Loggable { private def testQueryResultProcessor(name: String, query: Query, nodes: Seq[NodeId], doInternalQueryTest: Boolean) = { val ids = nodes.sortBy(_.value) val found = queryProcessor.process(query).openOrThrowException("For tests").sortBy(_.value) - // also test with requiring only the expected node to check consistancy + // also test with requiring only the expected node to check consistency // (that should not change anything) - assertEquals( + Assert.assertEquals( s"[$name] Duplicate entries in result: $found", found.size.toLong, found.distinct.size.toLong ) - assertEquals( + Assert.assertEquals( s"[$name] Size differs between expected and found entries (process method)\n Found: $found \n Expected: ${ids}", ids.size.toLong, found.size.toLong ) - assertTrue( + Assert.assertTrue( s"[$name] Nodes found are different from expected Nodes (process method)\n Found: ${found}\n Expected: ${ids}", found.forall(f => ids.exists(f == _)) ) - if (doInternalQueryTest) { - logger.debug( - "Testing with expected entries, This test should be ignored when we are looking for Nodes with NodeInfo and inventory (ie when we are looking for property and environement variable" - ) - val foundWithLimit = { - (internalLDAPQueryProcessor - .internalQueryProcessor( - query, - limitToNodeIds = Some(ids), - lambdaAllNodeInfos = (() => nodeInfoService.getAllNodeInfos()) - ) - .runNow) - .distinct - .sortBy(_.value) - } - - assertEquals( - s"[${name}] Size differs between expected and found entries (InternalQueryProcessor, only inventory fields)\n Found: ${foundWithLimit}\n Expected: ${ids}", - ids.size.toLong, - foundWithLimit.size.toLong - ) - } } - @After def after(): Unit = { - ldap.server.shutDown(true) - } + @After def after(): Unit = {} } diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestPendingNodePolicies.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestPendingNodePolicies.scala index 567f5365240..f16dc8bb9c5 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestPendingNodePolicies.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestPendingNodePolicies.scala @@ -51,6 +51,7 @@ import com.normation.rudder.domain.queries.Criterion import com.normation.rudder.domain.queries.CriterionLine import com.normation.rudder.domain.queries.Equals import com.normation.rudder.domain.queries.ExactStringComparator +import com.normation.rudder.domain.queries.NodeCriterionMatcherString import com.normation.rudder.domain.queries.ObjectCriterion import com.normation.rudder.domain.queries.Or import com.normation.rudder.domain.queries.Query @@ -63,6 +64,7 @@ import org.joda.time.DateTime import org.junit.runner.RunWith import org.specs2.mutable.Specification import org.specs2.runner.JUnitRunner +import zio.Chunk import zio.syntax._ /** @@ -101,7 +103,7 @@ class TestPendingNodePolicies extends Specification { val groupCriterion = ObjectCriterion( "group", Seq( - Criterion(A_NODE_GROUP_UUID, ExactStringComparator) + Criterion(A_NODE_GROUP_UUID, ExactStringComparator, NodeCriterionMatcherString(_ => Chunk("group id"))) ) ) @@ -109,8 +111,11 @@ class TestPendingNodePolicies extends Specification { def sub(g: NodeGroup) = CriterionLine(groupCriterion, groupCriterion.criteria.head, Equals, g.id.serialize) // a random query that will be added as dummy content - query checker will returns pre-defined things val cl = CriterionLine( - ObjectCriterion(OC_MACHINE, Seq(Criterion(A_MACHINE_UUID, StringComparator))), - Criterion(A_MACHINE_UUID, StringComparator), + ObjectCriterion( + OC_MACHINE, + Seq(Criterion(A_MACHINE_UUID, StringComparator, NodeCriterionMatcherString(n => Chunk(n.machine.id.value)))) + ), + Criterion(A_MACHINE_UUID, StringComparator, NodeCriterionMatcherString(n => Chunk(n.machine.id.value))), Equals, "dummy" ) diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestStringQueryParser.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestStringQueryParser.scala index bb33f99e0a9..25ad6f6b37d 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestStringQueryParser.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/queries/TestStringQueryParser.scala @@ -44,6 +44,7 @@ import org.junit._ import org.junit.Assert._ import org.junit.runner.RunWith import org.junit.runners.BlockJUnit4ClassRunner +import zio.Chunk @RunWith(classOf[BlockJUnit4ClassRunner]) class TestStringQueryParser { @@ -51,12 +52,10 @@ class TestStringQueryParser { /* * our data store: * two criteria - * - * */ - val c1 = Criterion("name", BareComparator(Exists, Greater)) - val c2 = Criterion("id", BareComparator(Equals)) - val c3 = Criterion("name", BareComparator(Exists, Greater)) + val c1 = Criterion("name", BareComparator(Exists, Greater), NodeCriterionMatcherString(_ => Chunk("something"))) + val c2 = Criterion("id", BareComparator(Equals), NodeCriterionMatcherString(_ => Chunk("something"))) + val c3 = Criterion("name", BareComparator(Exists, Greater), NodeCriterionMatcherString(_ => Chunk("something"))) val oc1 = ObjectCriterion("node", List(c1, c2)) val oc2 = ObjectCriterion("machine", List(c3)) diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/reports/CachedFindRuleNodeStatusReportsTest.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/reports/CachedFindRuleNodeStatusReportsTest.scala index 0a9d94634ff..856cb2c5c74 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/reports/CachedFindRuleNodeStatusReportsTest.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/reports/CachedFindRuleNodeStatusReportsTest.scala @@ -143,7 +143,7 @@ class CachedFindRuleNodeStatusReportsTest extends Specification { def getPendingNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = ??? def getDeletedNodeInfos(): IOResult[Map[NodeId, NodeInfo]] = ??? def getDeletedNodeInfo(nodeId: NodeId): IOResult[Option[NodeInfo]] = ??? - def getNumberOfManagedNodes: Int = ??? + def getNumberOfManagedNodes: IOResult[Int] = ??? val getAll: IOResult[Map[NodeId, NodeInfo]] = { nodes.map { case (n, _, _) => (n.id, n) }.toMap.succeed } diff --git a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/servers/TestRemoveNodeService.scala b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/servers/TestRemoveNodeService.scala index f04281bd0b6..9f8d365764d 100644 --- a/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/servers/TestRemoveNodeService.scala +++ b/webapp/sources/rudder/rudder-core/src/test/scala/com/normation/rudder/services/servers/TestRemoveNodeService.scala @@ -38,7 +38,9 @@ package com.normation.rudder.services.servers import better.files._ import com.normation.eventlog.EventActor +import com.normation.eventlog.ModificationId import com.normation.inventory.domain.NodeId +import com.normation.rudder.facts.nodes.ChangeContext import com.normation.zio._ import org.joda.time.DateTime import org.joda.time.format.ISODateTimeFormat @@ -91,13 +93,15 @@ class TestRemoveNodeService extends Specification with AfterAll { ) val cleanUp = new CleanUpNodePolicyFiles(varRudderShare.pathAsString) + implicit val testChangeContext: ChangeContext = + ChangeContext(ModificationId("test-mod-id"), EventActor("test"), DateTime.now(), None, None) /* * */ "Policy directory should be cleaned" >> { startFS.foreach(_.createDirectories()) - cleanUp.run(NodeId("nodeXX"), DeleteMode.Erase, None, Set(), EventActor("test")).runNow + cleanUp.run(NodeId("nodeXX"), DeleteMode.Erase, None, Set()).runNow val files = varRudderShare.collectChildren(_ => true).toList.map(_.pathAsString) files must containTheSameElementsAs(expected.map(_.pathAsString)) diff --git a/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/lift/NodeApi.scala b/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/lift/NodeApi.scala index 42233d88da3..cc1128d0fba 100644 --- a/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/lift/NodeApi.scala +++ b/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/lift/NodeApi.scala @@ -47,8 +47,6 @@ import com.normation.eventlog.ModificationId import com.normation.inventory.domain._ import com.normation.inventory.domain.NodeId import com.normation.inventory.ldap.core.InventoryDit -import com.normation.inventory.ldap.core.LDAPFullInventoryRepository -import com.normation.inventory.services.core.ReadOnlySoftwareDAO import com.normation.ldap.sdk.LDAPConnectionProvider import com.normation.ldap.sdk.RwLDAPConnection import com.normation.rudder.UserService @@ -59,7 +57,6 @@ import com.normation.rudder.apidata.RestDataSerializer import com.normation.rudder.batch.AsyncDeploymentActor import com.normation.rudder.batch.AutomaticStartDeployment import com.normation.rudder.domain.NodeDit -import com.normation.rudder.domain.logger.ApiLoggerPure import com.normation.rudder.domain.logger.NodeLogger import com.normation.rudder.domain.logger.NodeLoggerPure import com.normation.rudder.domain.logger.TimingDebugLoggerPure @@ -74,6 +71,11 @@ import com.normation.rudder.domain.properties.NodeProperty import com.normation.rudder.domain.properties.NodePropertyHierarchy import com.normation.rudder.domain.queries.Query import com.normation.rudder.domain.reports.ComplianceLevel +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.NodeFact +import com.normation.rudder.facts.nodes.NodeFactFullInventoryRepositoryProxy +import com.normation.rudder.facts.nodes.NodeFactRepository +import com.normation.rudder.facts.nodes.SelectFacts import com.normation.rudder.reports.ReportingConfiguration import com.normation.rudder.reports.execution.AgentRunWithNodeConfig import com.normation.rudder.reports.execution.RoReportsExecutionRepository @@ -110,7 +112,6 @@ import com.normation.rudder.services.reports.ReportingService import com.normation.rudder.services.servers.DeleteMode import com.normation.rudder.services.servers.NewNodeManager import com.normation.rudder.services.servers.RemoveNodeService -import com.normation.utils.Control._ import com.normation.utils.DateFormaterService import com.normation.utils.StringUuidGenerator import com.normation.zio._ @@ -127,7 +128,6 @@ import net.liftweb.common.Box import net.liftweb.common.EmptyBox import net.liftweb.common.Failure import net.liftweb.common.Full -import net.liftweb.common.Loggable import net.liftweb.http.JsonResponse import net.liftweb.http.LiftResponse import net.liftweb.http.OutputStreamResponse @@ -147,6 +147,7 @@ import org.joda.time.DateTime import scalaj.http.Http import scalaj.http.HttpOptions import zio.{System => _, _} +import zio.stream.ZSink import zio.syntax._ /* @@ -158,13 +159,7 @@ import zio.syntax._ class NodeApi( restExtractorService: RestExtractorService, serializer: RestDataSerializer, - apiV2: NodeApiService2, - apiV4: NodeApiService4, - serviceV6: NodeApiService6, - apiV8service: NodeApiService8, - apiV12: NodeApiService12, - apiV13: NodeApiService13, - apiV15: NodeApiService15, + nodeApiService: NodeApiService, inheritedProperties: NodeApiInheritedProperties, deleteDefaultMode: DeleteMode ) extends LiftApiModuleProvider[API] { @@ -215,7 +210,7 @@ class NodeApi( nodes <- new String(json, StandardCharsets.UTF_8).fromJson[List[NodeDetails]].toIO res <- ZIO.foldLeft(nodes)(ResultHolder(Nil, Nil)) { case (res, node) => - apiV15.saveNode(node, authzToken.actor).either.map { + nodeApiService.saveNode(node, authzToken.actor, req.remoteAddr).either.map { case Right(id) => res.modify(_.created).using(_ :+ id) case Left(err) => res.modify(_.failed).using(_ :+ ((node.id, err))) } @@ -250,7 +245,7 @@ class NodeApi( ): LiftResponse = { restExtractor.extractNodeDetailLevel(req.params) match { case Full(level) => - apiV4.nodeDetailsGeneric(NodeId(id), level, version, req) + nodeApiService.nodeDetailsGeneric(NodeId(id), level, version, req) case eb: EmptyBox => val failMsg = eb ?~ "node detail level not correctly sent" toJsonError(None, failMsg.msg)("nodeDetail", params.prettify) @@ -309,7 +304,7 @@ class NodeApi( params: DefaultParams, authzToken: AuthzToken ): LiftResponse = { - apiV2.pendingNodeDetails(NodeId(id), params.prettify) + nodeApiService.pendingNodeDetails(NodeId(id), params.prettify) } } @@ -340,7 +335,7 @@ class NodeApi( .map(_.getOrElse(deleteDefaultMode)) .getOrElse(deleteDefaultMode) - apiV12.deleteNode(NodeId(id), authzToken.actor, pretiffy, mode) + nodeApiService.deleteNode(NodeId(id), authzToken.actor, req.remoteAddr, pretiffy, mode) } } @@ -365,7 +360,7 @@ class NodeApi( restExtractor.extractNode(req.params) } reason <- restExtractor.extractReason(req) - result <- apiV8service.updateRestNode(NodeId(id), restNode, authzToken.actor, reason).toBox + result <- nodeApiService.updateRestNode(NodeId(id), restNode, authzToken.actor, reason).toBox } yield { toJsonResponse(Some(id), serializer.serializeNode(result)) }) match { @@ -392,7 +387,7 @@ class NodeApi( } else { (restExtractor.extractNodeIds(req.params), restExtractor.extractNodeStatus(req.params)) } - apiV2.changeNodeStatus(nodeIds, nodeStatus, authzToken.actor, prettify) + nodeApiService.changeNodeStatus(nodeIds, nodeStatus, authzToken.actor, req.remoteAddr, prettify) } } @@ -417,7 +412,7 @@ class NodeApi( } else { restExtractor.extractNodeStatus(req.params) } - apiV2.changeNodeStatus(Full(Some(List(NodeId(id)))), nodeStatus, authzToken.actor, prettify) + nodeApiService.changeNodeStatus(Full(Some(List(NodeId(id)))), nodeStatus, authzToken.actor, req.remoteAddr, prettify) } } @@ -430,9 +425,9 @@ class NodeApi( case Full(level) => restExtractor.extractQuery(req.params) match { case Full(None) => - serviceV6.listNodes(AcceptedInventory, level, None, version) + nodeApiService.listNodes(AcceptedInventory, level, None, version) case Full(Some(query)) => - serviceV6.queryNodes(query, AcceptedInventory, level, version) + nodeApiService.queryNodes(query, AcceptedInventory, level, version) case eb: EmptyBox => val failMsg = eb ?~ "Node query not correctly sent" toJsonError(None, failMsg.msg)("listAcceptedNodes", prettify) @@ -454,9 +449,9 @@ class NodeApi( case Full(level) => restExtractor.extractQuery(req.params) match { case Full(None) => - serviceV6.listNodes(PendingInventory, level, None, version) + nodeApiService.listNodes(PendingInventory, level, None, version) case Full(Some(query)) => - serviceV6.queryNodes(query, PendingInventory, level, version) + nodeApiService.queryNodes(query, PendingInventory, level, version) case eb: EmptyBox => val failMsg = eb ?~ "Query for pending nodes not correctly sent" toJsonError(None, failMsg.msg)("listPendingNodes", prettify) @@ -477,7 +472,7 @@ class NodeApi( (for { classes <- restExtractorService.extractList("classes")(req)(json => Full(json)) - response <- apiV8service.runAllNodes(classes) + response <- nodeApiService.runAllNodes(classes) } yield { toJsonResponse(None, response) }) match { @@ -504,12 +499,12 @@ class NodeApi( implicit val prettify = params.prettify (for { classes <- restExtractorService.extractList("classes")(req)(json => Full(json)) - optNode <- apiV2.nodeInfoService.getNodeInfo(NodeId(id)).toBox + optNode <- nodeApiService.nodeInfoService.getNodeInfo(NodeId(id)).toBox } yield { optNode match { case Some(node) if (node.agentsName.exists(a => a.agentType == AgentType.CfeCommunity || a.agentType == AgentType.CfeEnterprise)) => - OutputStreamResponse(apiV8service.runNode(node.id, classes)) + OutputStreamResponse(nodeApiService.runNode(node.id, classes)) case Some(node) => toJsonError( None, @@ -542,9 +537,9 @@ class NodeApi( ids <- (restExtractorService .extractString("ids")(req)(ids => Full(ids.split(",").map(_.trim)))) .map(_.map(_.toList).getOrElse(Nil)) ?~! "Error: 'ids' parameter not found" - accepted <- apiV2.nodeInfoService.getAllNodesIds().map(_.map(_.value)).toBox ?~! errorMsg(ids) - pending <- apiV2.nodeInfoService.getPendingNodeInfos().map(_.keySet.map(_.value)).toBox ?~! errorMsg(ids) - deleted <- apiV2.nodeInfoService.getDeletedNodeInfos().map(_.keySet.map(_.value)).toBox ?~! errorMsg(ids) + accepted <- nodeApiService.nodeInfoService.getAllNodesIds().map(_.map(_.value)).toBox ?~! errorMsg(ids) + pending <- nodeApiService.nodeInfoService.getPendingNodeInfos().map(_.keySet.map(_.value)).toBox ?~! errorMsg(ids) + deleted <- nodeApiService.nodeInfoService.getDeletedNodeInfos().map(_.keySet.map(_.value)).toBox ?~! errorMsg(ids) } yield { val array = ids.map { id => val status = { @@ -576,7 +571,7 @@ class NodeApi( val restExtractor = restExtractorService def process0(version: ApiVersion, path: ApiPath, req: Req, params: DefaultParams, authzToken: AuthzToken): LiftResponse = { (for { - nodes <- apiV13.listNodes(req) + nodes <- nodeApiService.listNodes(req) } yield { JsonResponse(nodes) }) match { @@ -599,7 +594,7 @@ class NodeApi( authzToken: AuthzToken ): LiftResponse = { (for { - response <- apiV13.software(req, software) + response <- nodeApiService.software(req, software) } yield { response }) match { @@ -629,7 +624,7 @@ class NodeApi( ): LiftResponse = { (for { inheritedProperty <- req.json.flatMap(j => OptionnalJson.extractJsonBoolean(j, "inherited")) - response <- apiV13.property(req, property, inheritedProperty.getOrElse(false)) + response <- nodeApiService.property(req, property, inheritedProperty.getOrElse(false)) } yield { response }) match { @@ -677,38 +672,34 @@ class NodeApiInheritedProperties( } } -class NodeApiService12( - removeNodeService: RemoveNodeService, - uuidGen: StringUuidGenerator, - restSerializer: RestDataSerializer +class NodeApiService( + ldapConnection: LDAPConnectionProvider[RwLDAPConnection], + nodeFactRepository: NodeFactRepository, + inventoryRepository: NodeFactFullInventoryRepositoryProxy, + groupRepo: RoNodeGroupRepository, + paramRepo: RoParameterRepository, + reportsExecutionRepository: RoReportsExecutionRepository, + nodeRepository: WoNodeRepository, + ldapEntityMapper: LDAPEntityMapper, + uuidGen: StringUuidGenerator, + nodeDit: NodeDit, + pendingDit: InventoryDit, + acceptedDit: InventoryDit, + val nodeInfoService: NodeInfoService, + newNodeManager: NewNodeManager, + removeNodeService: RemoveNodeService, + restExtractor: RestExtractorService, + restSerializer: RestDataSerializer, + reportingService: ReportingService, + acceptedNodeQueryProcessor: QueryProcessor, + pendingNodeQueryProcessor: QueryChecker, + asyncRegenerate: AsyncDeploymentActor, + userService: UserService, + getGlobalMode: () => Box[GlobalPolicyMode], + relayApiEndpoint: String ) { - def deleteNode(id: NodeId, actor: EventActor, prettify: Boolean, mode: DeleteMode) = { - implicit val p = prettify - implicit val action = "deleteNode" - val modId = ModificationId(uuidGen.newUuid) - - removeNodeService.removeNodePure(id, mode, modId, actor).toBox match { - case Full(info) => - toJsonResponse(None, ("nodes" -> JArray(restSerializer.serializeNodeInfo(info, "deleted") :: Nil))) - - case eb: EmptyBox => - val message = (eb ?~ ("Error when deleting Nodes")).msg - toJsonError(None, message) - } - } -} -class NodeApiService15( - inventoryRepos: LDAPFullInventoryRepository, - ldapConnection: LDAPConnectionProvider[RwLDAPConnection], - ldapEntityMapper: LDAPEntityMapper, - newNodeManager: NewNodeManager, - uuidGen: StringUuidGenerator, - nodeDit: NodeDit, - pendingDit: InventoryDit, - acceptedDit: InventoryDit -) { - /// utility functions /// +/// utility functions /// /* * for a given nodedetails, we: @@ -717,7 +708,7 @@ class NodeApiService15( * - if needed, accept * - now, setup node info (property, state, etc) */ - def saveNode(nodeDetails: Rest.NodeDetails, eventActor: EventActor): IO[CreationError, NodeId] = { + def saveNode(nodeDetails: Rest.NodeDetails, eventActor: EventActor, actorIp: String): IO[CreationError, NodeId] = { def toCreationError(res: ValidatedNel[NodeValidationError, NodeTemplate]) = { res match { case Invalid(nel) => CreationError.OnValidation(nel).fail @@ -729,7 +720,7 @@ class NodeApiService15( validated <- toCreationError(Validation.toNodeTemplate(nodeDetails)) _ <- checkUuid(validated.inventory.node.main.id) created <- saveInventory(validated.inventory) - nodeSetup <- accept(validated, eventActor) + nodeSetup <- accept(validated, eventActor, actorIp) nodeId <- saveRudderNode(validated.inventory.node.main.id, nodeSetup) } yield { nodeId @@ -769,21 +760,20 @@ class NodeApiService15( * is done afterward if needed. */ def saveInventory(inventory: FullInventory): IO[CreationError, NodeId] = { - inventoryRepos + inventoryRepository .save(inventory) .map(_ => inventory.node.main.id) .mapError(err => CreationError.OnSaveInventory(s"Error during node creation: ${err.fullMsg}")) } - def accept(template: NodeTemplate, eventActor: EventActor): IO[CreationError, NodeSetup] = { + def accept(template: NodeTemplate, eventActor: EventActor, actorIp: String): IO[CreationError, NodeSetup] = { val id = template.inventory.node.main.id // only nodes with status "accepted" need to be accepted template match { case AcceptedNodeTemplate(_, properties, policyMode, state) => newNodeManager - .accept(id, ModificationId(uuidGen.newUuid), eventActor) - .toIO + .accept(id)(ChangeContext(ModificationId(uuidGen.newUuid), eventActor, DateTime.now(), None, Some(actorIp))) .mapError(err => CreationError.OnAcceptation((s"Can not accept node '${id.value}': ${err.fullMsg}"))) *> NodeSetup(properties, policyMode, state).succeed case PendingNodeTemplate(_, properties) => @@ -836,18 +826,6 @@ class NodeApiService15( merged.id }).mapError(err => CreationError.OnSaveNode(s"Error during node creation: ${err.fullMsg}")) } -} - -class NodeApiService13( - nodeInfoService: NodeInfoService, - reportsExecutionRepository: RoReportsExecutionRepository, - readOnlySoftwareDAO: ReadOnlySoftwareDAO, - restExtractor: RestExtractorService, - getGlobalMode: () => Box[GlobalPolicyMode], - reportingService: ReportingService, - groupRepo: RoNodeGroupRepository, - paramRepo: RoParameterRepository -) extends Loggable { /* * Return a map of (NodeId -> propertyName -> inherited property) for the given list of nodes and @@ -994,7 +972,7 @@ class NodeApiService13( _ = TimingDebugLoggerPure.logEffect.trace(s"Getting global mode: ${n5 - n4}ms") softToLookAfter <- req.json.flatMap(j => OptionnalJson.extractJsonListString(j, "software").map(_.getOrElse(Nil))) softs <- ZIO - .foreach(softToLookAfter)(soft => readOnlySoftwareDAO.getNodesbySofwareName(soft)) + .foreach(softToLookAfter)(soft => inventoryRepository.getNodesbySofwareName(soft)) .toBox .map(_.flatten.groupMap(_._1)(_._2)) n6 = System.currentTimeMillis @@ -1064,7 +1042,7 @@ class NodeApiService13( case None => nodeInfoService.getAll().toBox case Some(nodeIds) => nodeInfoService.getNodeInfosSeq(nodeIds).map(_.map(n => (n.id, n)).toMap).toBox } - softs <- readOnlySoftwareDAO.getNodesbySofwareName(software).toBox.map(_.toMap) + softs <- inventoryRepository.getNodesbySofwareName(software).toBox.map(_.toMap) } yield { JsonResponse( JObject(nodes.keySet.toList.flatMap(id => softs.get(id).flatMap(_.version.map(v => JField(id.value, JString(v.value)))))) @@ -1099,16 +1077,6 @@ class NodeApiService13( JsonResponse(JObject(nodes.keySet.toList.flatMap(id => mapProps.get(id).toList.flatMap(_.map(p => JField(id.value, p)))))) } } -} - -class NodeApiService2( - newNodeManager: NewNodeManager, - val nodeInfoService: NodeInfoService, - removeNodeService: RemoveNodeService, - uuidGen: StringUuidGenerator, - restExtractor: RestExtractorService, - restSerializer: RestDataSerializer -) extends Loggable { import restSerializer._ def listAcceptedNodes(req: Req) = { @@ -1143,14 +1111,14 @@ class NodeApiService2( def pendingNodeDetails(nodeId: NodeId, prettifyStatus: Boolean) = { implicit val prettify = prettifyStatus implicit val action = "pendingNodeDetails" - newNodeManager.listNewNodes match { + newNodeManager.listNewNodes.toBox match { case Full(pendingNodes) => pendingNodes.filter(_.id == nodeId) match { case Seq() => val message = s"Could not find pending Node ${nodeId.value}" toJsonError(None, message) case Seq(info) => - val node = serializeServerInfo(info, "pending") + val node = serializeServerInfo(info.toSrv, "pending") toJsonResponse(None, ("nodes" -> JArray(List(node)))) case tooManyNodes => val message = s"Too many pending Nodes with same id ${nodeId.value} : ${tooManyNodes.size} " @@ -1165,9 +1133,9 @@ class NodeApiService2( def listPendingNodes(req: Req) = { implicit val prettify = restExtractor.extractPrettify(req.params) implicit val action = "listPendingNodes" - newNodeManager.listNewNodes match { - case Full(ids) => - val pendingNodes = ids.map(serializeServerInfo(_, "pending")).toList + newNodeManager.listNewNodes.toBox match { + case Full(cnfs) => + val pendingNodes = cnfs.map(cnf => serializeServerInfo(cnf.toSrv, "pending")).toList toJsonResponse(None, ("nodes" -> JArray(pendingNodes))) case eb: EmptyBox => @@ -1177,38 +1145,41 @@ class NodeApiService2( } def modifyStatusFromAction( - ids: Seq[NodeId], - action: NodeStatusAction, - modId: ModificationId, - actor: EventActor - ): Box[List[JValue]] = { - def actualNodeDeletion(id: NodeId, modId: ModificationId, actor: EventActor) = { + ids: Seq[NodeId], + action: NodeStatusAction + )(implicit cc: ChangeContext): Box[List[JValue]] = { + def actualNodeDeletion(id: NodeId)(implicit cc: ChangeContext) = { for { optInfo <- nodeInfoService.getNodeInfo(id).toBox info <- optInfo match { case None => Failure(s"Can not removed the node with id '${id.value}' because it was not found") case Some(x) => Full(x) } - remove <- removeNodeService.removeNode(info.id, modId, actor) + remove <- removeNodeService.removeNode(info.id) } yield { serializeNodeInfo(info, "deleted") } } (action match { case AcceptNode => - newNodeManager.accept(ids, modId, actor, "").map(_.map(serializeInventory(_, "accepted"))) + newNodeManager + .acceptAll(ids) + .map(_.map(cnf => serializeInventory(NodeFact.fromMinimal(cnf).toFullInventory, "accepted"))) case RefuseNode => - newNodeManager.refuse(ids, modId, actor, "").map(_.map(serializeServerInfo(_, "refused"))) + newNodeManager + .refuseAll(ids) + .map(_.map(cnf => serializeServerInfo(cnf.toSrv, "refused"))) case DeleteNode => - boxSequence(ids.map(actualNodeDeletion(_, modId, actor))) - }).map(_.toList) + ZIO.foreach(ids)(actualNodeDeletion(_).toIO) + }).toBox.map(_.toList) } def changeNodeStatus( nodeIds: Box[Option[List[NodeId]]], nodeStatusAction: Box[NodeStatusAction], actor: EventActor, + actorIp: String, prettifyStatus: Boolean ) = { implicit val prettify = prettifyStatus @@ -1219,7 +1190,9 @@ class NodeApiService2( NodeLogger.PendingNode.debug(s" Nodes to change Status : ${ids.mkString("[ ", ", ", " ]")}") nodeStatusAction match { case Full(nodeStatusAction) => - modifyStatusFromAction(ids, nodeStatusAction, modId, actor) match { + modifyStatusFromAction(ids, nodeStatusAction)( + ChangeContext(modId, actor, DateTime.now(), None, Some(actorIp)) + ) match { case Full(result) => toJsonResponse(None, ("nodes" -> JArray(result))) case eb: EmptyBox => @@ -1240,66 +1213,29 @@ class NodeApiService2( } } -} - -class NodeApiService4( - inventoryRepository: LDAPFullInventoryRepository, - nodeInfoService: NodeInfoService, - softwareRepository: ReadOnlySoftwareDAO, - uuidGen: StringUuidGenerator, - restExtractor: RestExtractorService, - restSerializer: RestDataSerializer, - roAgentRunsRepository: RoReportsExecutionRepository -) extends Loggable { - - import restSerializer._ - def getNodeDetails( nodeId: NodeId, detailLevel: NodeDetailLevel, - state: InventoryStatus, - version: ApiVersion + state: InventoryStatus ): IOResult[Option[JValue]] = { for { - optNodeInfo <- state match { - case AcceptedInventory => nodeInfoService.getNodeInfo(nodeId) - case PendingInventory => nodeInfoService.getPendingNodeInfo(nodeId) - case RemovedInventory => nodeInfoService.getDeletedNodeInfo(nodeId) - } + optNodeInfo <- nodeFactRepository.slowGetCompat(nodeId, state, SelectFacts.fromNodeDetailLevel(detailLevel)) nodeInfo <- optNodeInfo match { case None => None.succeed case Some(x) => for { - runs <- roAgentRunsRepository.getNodesLastRun(Set(nodeId)) - inventory <- if (detailLevel.needFullInventory()) { - inventoryRepository.get(nodeId, state) - } else { - None.succeed - } - software <- if (detailLevel.needSoftware()) { - for { - software <- inventory match { - case Some(i) => softwareRepository.getSoftware(i.node.softwareIds) - case None => - softwareRepository - .getSoftwareByNode(Set(nodeId), state) - .map(_.get(nodeId).getOrElse(Seq())) - } - } yield { - software - } - } else { - Seq().succeed - } + runs <- reportsExecutionRepository.getNodesLastRun(Set(nodeId)) + inventory = x.toFullInventory + software = x.software.toList.map(_.toSoftware) } yield { - Some((x, runs, inventory, software)) + Some((x.toNodeInfo, runs, inventory, software)) } } } yield { nodeInfo.map { case (node, runs, inventory, software) => val runDate = runs.get(nodeId).flatMap(_.map(_.agentRunId.date)) - serializeInventory(node, state, runDate, inventory, software, detailLevel) + serializeInventory(node, state, runDate, Some(inventory), software, detailLevel) } } } @@ -1313,7 +1249,7 @@ class NodeApiService4( ) = { implicit val prettify = restExtractor.extractPrettify(req.params) implicit val action = s"${state.name}NodeDetails" - getNodeDetails(nodeId, detailLevel, state, version).either.runNow match { + getNodeDetails(nodeId, detailLevel, state).either.runNow match { case Right(Some(inventory)) => toJsonResponse(Some(nodeId.value), ("nodes" -> JArray(List(inventory)))) case Right(None) => @@ -1334,14 +1270,14 @@ class NodeApiService4( implicit val prettify = restExtractor.extractPrettify(req.params) implicit val action = "nodeDetails" (for { - accepted <- getNodeDetails(nodeId, detailLevel, AcceptedInventory, version) + accepted <- getNodeDetails(nodeId, detailLevel, AcceptedInventory) orPending <- accepted match { case Some(i) => Some(i).succeed - case None => getNodeDetails(nodeId, detailLevel, PendingInventory, version) + case None => getNodeDetails(nodeId, detailLevel, PendingInventory) } orDeleted <- orPending match { case Some(i) => Some(i).succeed - case None => getNodeDetails(nodeId, detailLevel, RemovedInventory, version) + case None => getNodeDetails(nodeId, detailLevel, RemovedInventory) } } yield { orDeleted match { @@ -1363,80 +1299,43 @@ class NodeApiService4( toJsonError(Some(nodeId.value), msg) } } -} - -class NodeApiService6( - nodeInfoService: NodeInfoService, - inventoryRepository: LDAPFullInventoryRepository, - softwareRepository: ReadOnlySoftwareDAO, - restExtractor: RestExtractorService, - restSerializer: RestDataSerializer, - acceptedNodeQueryProcessor: QueryProcessor, - pendingNodeQueryProcessor: QueryChecker, - roAgentRunsRepository: RoReportsExecutionRepository -) extends Loggable { - import restSerializer._ def listNodes(state: InventoryStatus, detailLevel: NodeDetailLevel, nodeFilter: Option[Seq[NodeId]], version: ApiVersion)( implicit prettify: Boolean ) = { implicit val action = s"list${state.name.capitalize}Nodes" + val predicate = (n: NodeFact) => { + (nodeFilter match { + case Some(ids) => ids.contains(n.id) + case None => true + }) + } (for { - nodeInfos <- state match { - case AcceptedInventory => nodeInfoService.getAll() - case PendingInventory => nodeInfoService.getPendingNodeInfos() - case RemovedInventory => nodeInfoService.getDeletedNodeInfos() - } - nodeIds = nodeFilter.getOrElse(nodeInfos.keySet).toSet - runs <- roAgentRunsRepository.getNodesLastRun(nodeIds) - inventories <- if (detailLevel.needFullInventory()) { - for { - d1 <- currentTimeMillis - // the request with filter if quite complex, and just sending all the node DN for it to LDAP produces - // a lot of data transfer. So a some point, it's better to just get everything back and filter out - // data below, trading ram for LDAP processing. No idea what a good heuristic would be, setting - // it to 2/3 - res <- (if (nodeIds.size < nodeInfos.size * 2 / 3) { - inventoryRepository.getInventories(state, nodeIds) - } else { - inventoryRepository.getAllInventories(state) - }).chainError("Error when looking for node inventories") - d2 <- currentTimeMillis - _ <- ApiLoggerPure.Metrics.debug(s"[${d2 - d1} ms] Getting inventories for level '${detailLevel}' ") - } yield res - } else { - Map[NodeId, FullInventory]().succeed - } - software <- if (detailLevel.needSoftware()) { - for { - d1 <- currentTimeMillis - res <- softwareRepository.getSoftwareByNode(nodeIds, state) - d2 <- currentTimeMillis - _ <- ApiLoggerPure.Metrics.debug(s"[${d2 - d1} ms] Getting software for level '${detailLevel}'") - } yield res - } else { - Map[NodeId, Seq[Software]]().succeed - } - d1 <- currentTimeMillis - jsons = nodeIds.flatMap { id => - nodeInfos - .get(id) - .map { nodeInfo => - serializeInventory( - nodeInfo, - state, - runs.get(id).flatMap(_.map(_.agentRunId.date)), - inventories.get(id), - software.getOrElse(id, Seq()), - detailLevel - ) - } - } - d2 <- currentTimeMillis - _ <- ApiLoggerPure.Metrics.debug(s"[${d2 - d1} ms] Serializing nodes to json values") + nodeFacts <- + nodeFactRepository + .slowGetAllCompat(state, SelectFacts.fromNodeDetailLevel(detailLevel)) + .filter(predicate) + .run(ZSink.collectAllToMap[NodeFact, NodeId](_.id)((a, b) => a)) + nodeIds = nodeFacts.keySet + runs <- reportsExecutionRepository.getNodesLastRun(nodeIds) + inventories = nodeFacts.map { case (k, v) => (k, v.toFullInventory) } + software = nodeFacts.map { case (k, v) => (k, v.software.map(_.toSoftware)) } } yield { - jsons + for { + nodeId <- nodeIds + nodeFact <- nodeFacts.get(nodeId) + } yield { + val runDate = runs.get(nodeId).flatMap(_.map(_.agentRunId.date)) + serializeInventory( + nodeFact.toNodeInfo, + state, + runDate, + inventories.get(nodeId), + software.getOrElse(nodeId, Seq()), + detailLevel + ) + } }).either.runNow match { case Right(nodes) => { toJsonResponse(None, ("nodes" -> JArray(nodes.toList))) @@ -1474,17 +1373,6 @@ class NodeApiService6( } } -} - -class NodeApiService8( - nodeRepository: WoNodeRepository, - nodeInfoService: NodeInfoService, - uuidGen: StringUuidGenerator, - asyncRegenerate: AsyncDeploymentActor, - relayApiEndpoint: String, - userService: UserService -) extends Loggable { - def updateRestNode(nodeId: NodeId, restNode: RestNode, actor: EventActor, reason: Option[String]): IOResult[Node] = { val modId = ModificationId(uuidGen.newUuid) @@ -1691,4 +1579,19 @@ class NodeApiService8( } } + def deleteNode(id: NodeId, actor: EventActor, actorIp: String, prettify: Boolean, mode: DeleteMode) = { + implicit val p = prettify + implicit val action = "deleteNode" + val modId = ModificationId(uuidGen.newUuid) + + removeNodeService.removeNodePure(id, mode)(ChangeContext(modId, actor, DateTime.now(), None, Some(actorIp))).toBox match { + case Full(info) => + toJsonResponse(None, ("nodes" -> JArray(restSerializer.serializeNodeInfo(info, "deleted") :: Nil))) + + case eb: EmptyBox => + val message = (eb ?~ ("Error when deleting Nodes")).msg + toJsonError(None, message) + } + } + } diff --git a/webapp/sources/rudder/rudder-rest/src/test/resources/api/api_nodes.yml b/webapp/sources/rudder/rudder-rest/src/test/resources/api/api_nodes.yml index 9b52479da01..d095d74d5da 100644 --- a/webapp/sources/rudder/rudder-rest/src/test/resources/api/api_nodes.yml +++ b/webapp/sources/rudder/rudder-rest/src/test/resources/api/api_nodes.yml @@ -73,25 +73,25 @@ response: {"name":"swap","totalSpace":0}, {"name":"ext4","freeSpace":11517,"totalSpace":52524,"mountPoint":"/"} ], - "managementTechnologyDetails":{"cfengineKeys":[],"cfengineUser":"root"}, + "managementTechnologyDetails":{ + "cfengineKeys":[ + "-----BEGINRSAPUBLICKEY-----\nMIIBCAKCAQEAlntroa72gD50MehPoyp6mRS5fzZpsZEHu42vq9KKxbqSsjfUmxnT\nRsi8CDvBt7DApIc7W1g0eJ6AsOfV7CEh3ooiyL/fC9SGATyDg5TjYPJZn3MPUktg\nYBzTd1MMyZL6zcLmIpQBH6XHkH7Do/RxFRtaSyicLxiO3H3wapH20TnkUvEpV5Qh\nzUkNM8vHZuu3m1FgLrK5NCN7BtoGWgeyVJvBMbWww5hS15IkCRuBkAOK/+h8xe2f\nhMQjrt9gW2qJpxZyFoPuMsWFIaX4wrN7Y8ZiN37U2q1G11tv2oQlJTQeiYaUnTX4\nz5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw==\n-----ENDRSAPUBLICKEY-----" + ], + "cfengineUser":"root" + }, "networkInterfaces":[{"name":"enp0s3","mask":[],"speed":"1000","status":"Up","ipAddresses":["10.0.2.15"]}], "processes":[{"pid":54432,"name":"/bin/true","memory":4235,"cpuUsage":34.5}], "software":[ - {"name":"s09","version":"1.0"}, - {"name":"s06","version":"1.0"}, {"name":"s05","version":"1.0"}, - {"name":"s13","version":"1.0"}, + {"name":"s06","version":"1.0"}, + {"name":"s07","version":"1.0"}, {"name":"s08","version":"1.0"}, - {"name":"s02","version":"1.0"}, - {"name":"s03","version":"1.0"}, - {"name":"s04","version":"1.0"}, + {"name":"s09","version":"1.0"}, {"name":"s10","version":"1.0"}, {"name":"s11","version":"1.0"}, {"name":"s12","version":"1.0"}, - {"name":"s01","version":"1.0"}, - {"name":"s00","version":"1.0"}, - {"name":"s07","version":"1.0"} - ], + {"name":"s13","version":"1.0"} + ], "softwareUpdate":[ {"name":"s00","version":"2.15.6~RC1","arch":"x86_64","from":"yum","kind":"defect","description":"Some explanation","severity":"critical","ids":["RHSA-2020-4566","CVE-2021-4034"]}, {"name":"s01","version":"1-23-RELEASE-1","arch":"x86_64","from":"apt","kind":"none","source":"default-repo"}, @@ -117,7 +117,12 @@ response: "id":"node1", "hostname":"node1.localhost", "status":"accepted", - "managementTechnologyDetails":{"cfengineKeys":[],"cfengineUser":"root"} + "managementTechnologyDetails":{ + "cfengineKeys":[ + "-----BEGINRSAPUBLICKEY-----\nMIIBCAKCAQEAlntroa72gD50MehPoyp6mRS5fzZpsZEHu42vq9KKxbqSsjfUmxnT\nRsi8CDvBt7DApIc7W1g0eJ6AsOfV7CEh3ooiyL/fC9SGATyDg5TjYPJZn3MPUktg\nYBzTd1MMyZL6zcLmIpQBH6XHkH7Do/RxFRtaSyicLxiO3H3wapH20TnkUvEpV5Qh\nzUkNM8vHZuu3m1FgLrK5NCN7BtoGWgeyVJvBMbWww5hS15IkCRuBkAOK/+h8xe2f\nhMQjrt9gW2qJpxZyFoPuMsWFIaX4wrN7Y8ZiN37U2q1G11tv2oQlJTQeiYaUnTX4\nz5VEb9yx2KikbWyChM1Akp82AV5BzqE80QIBIw==\n-----ENDRSAPUBLICKEY-----" + ], + "cfengineUser":"root" + } } ] } diff --git a/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/NodeApiTest.scala b/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/NodeApiTest.scala index f6ad65503d6..263125276e1 100644 --- a/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/NodeApiTest.scala +++ b/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/NodeApiTest.scala @@ -84,13 +84,13 @@ class NodeApiTest extends Specification with Loggable { resp match { case Full(JsonResponsePrettify(content, _, _, 200, _)) => val jsonString = compactRender(content) - val nodes = restTestSetUp.mockNodes.nodeInfoService.nodeBase.get.runNow + val nodes = restTestSetUp.mockNodes.nodeFactStorage.nodeFactBase.get.runNow val n1 = nodes.get(NodeId(node1)).getOrElse(throw new IllegalArgumentException("error: node1")) val n2 = nodes.get(NodeId(node2)).getOrElse(throw new IllegalArgumentException("error: node2")) (jsonString must beEqualTo(jsonRes)) and - (n1.nInv.main.status must beEqualTo(PendingInventory)) and - (n2.nInv.main.status must beEqualTo(AcceptedInventory)) + (n1.rudderSettings.status must beEqualTo(PendingInventory)) and + (n2.rudderSettings.status must beEqualTo(AcceptedInventory)) case _ => ko("unexpected answer") } diff --git a/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/RestTestSetUp.scala b/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/RestTestSetUp.scala index 9c79eb0a6cd..1df345b4a52 100644 --- a/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/RestTestSetUp.scala +++ b/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/RestTestSetUp.scala @@ -50,7 +50,6 @@ import com.normation.eventlog.EventLogFilter import com.normation.eventlog.ModificationId import com.normation.inventory.domain.FullInventory import com.normation.inventory.domain.NodeId -import com.normation.inventory.domain.NodeInventory import com.normation.rudder._ import com.normation.rudder.api.{ApiAuthorization => ApiAuthz} import com.normation.rudder.api.ApiVersion @@ -79,6 +78,10 @@ import com.normation.rudder.domain.reports.NodeExpectedReports import com.normation.rudder.domain.reports.NodeModeConfig import com.normation.rudder.domain.secret.Secret import com.normation.rudder.domain.workflows.ChangeRequestId +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.NodeFact +import com.normation.rudder.facts.nodes.SelectFacts import com.normation.rudder.git.GitArchiveId import com.normation.rudder.git.GitCommitId import com.normation.rudder.git.GitPath @@ -109,7 +112,6 @@ import com.normation.rudder.services.healthcheck.CheckFreeSpace import com.normation.rudder.services.healthcheck.HealthcheckNotificationService import com.normation.rudder.services.healthcheck.HealthcheckService import com.normation.rudder.services.marshalling.DeploymentStatusSerialisation -import com.normation.rudder.services.nodes.NodeInfoServiceCachedImpl import com.normation.rudder.services.policies.DependencyAndDeletionServiceImpl import com.normation.rudder.services.policies.FindDependencies import com.normation.rudder.services.policies.InterpolationContext @@ -289,7 +291,6 @@ class RestTestSetUp { override def getDirectiveLibrary(ids: Set[DirectiveId]): Box[FullActiveTechniqueCategory] = ??? override def getGroupLibrary(): Box[FullNodeGroupCategory] = ??? override def getAllGlobalParameters: Box[Seq[GlobalParameter]] = ??? - override def getAllInventories(): Box[Map[NodeId, NodeInventory]] = ??? override def getGlobalComplianceMode(): Box[GlobalComplianceMode] = ??? override def getGlobalAgentRun(): Box[AgentRunInterval] = ??? override def getScriptEngineEnabled: () => Box[FeatureSwitch] = ??? @@ -580,16 +581,6 @@ class RestTestSetUp { val fakeScriptLauncher = new DebugInfoService { override def launch() = DebugInfoScriptResult("test", new Array[Byte](42)).succeed } - val nodeInfoService = new NodeInfoServiceCachedImpl( - null, - null, - null, - null, - null, - null, - null, - FiniteDuration(100, "millis") - ) val fakeUpdateDynamicGroups = { new UpdateDynamicGroups(dynGroupService, dynGroupUpdaterService, asyncDeploymentAgent, uuidGen, 1, () => Full("1")) { @@ -616,7 +607,7 @@ class RestTestSetUp { List( CheckCoreNumber, CheckFreeSpace, - new CheckFileDescriptorLimit(nodeInfoService) // should I create all services to get this one ? + new CheckFileDescriptorLimit(mockNodes.nodeInfoService) ) ) val fakeHcNotifService = new HealthcheckNotificationService(fakeHealthcheckService, 5.minute) @@ -732,7 +723,6 @@ class RestTestSetUp { val authzToken = AuthzToken(EventActor("fakeToken")) val systemStatusPath = "api" + systemApi.Status.schema.path - val nodeInfo = mockNodes.nodeInfoService val softDao = mockNodes.softwareDao val roReportsExecutionRepository = new RoReportsExecutionRepository { override def getNodesLastRun(nodeIds: Set[NodeId]): IOResult[Map[NodeId, Option[AgentRunWithNodeConfig]]] = @@ -743,43 +733,37 @@ class RestTestSetUp { def getUnprocessedRuns(): IOResult[Seq[AgentRunWithoutCompliance]] = ??? } - val nodeApiService2 = new NodeApiService2(null, nodeInfo, null, uuidGen, restExtractorService, restDataSerializer) - val nodeApiService4 = new NodeApiService4( - nodeInfo, - nodeInfo, - softDao, + val nodeApiService = new NodeApiService( + null, + mockNodes.nodeFactRepo, + mockNodes.fullInventoryRepository, + null, + null, + roReportsExecutionRepository, + mockNodes.woNodeRepository, + null, uuidGen, + null, + null, + null, + mockNodes.nodeInfoService, + mockNodes.newNodeManager, + null, restExtractorService, restDataSerializer, - roReportsExecutionRepository - ) - val nodeApiService6 = new NodeApiService6( - nodeInfo, - nodeInfo, - softDao, - restExtractorService, - restDataSerializer, + null, mockNodes.queryProcessor, null, - roReportsExecutionRepository - ) - val nodeApiService8 = new NodeApiService8(nodeInfo, nodeInfo, uuidGen, asyncDeploymentAgent, "relay", userService) - val nodeApiService12 = new NodeApiService12(null, uuidGen, restDataSerializer) - val nodeApiService13 = new NodeApiService13( - nodeInfo, - roReportsExecutionRepository, - softDao, - restExtractorService, + asyncDeploymentAgent, + userService, () => Full(GlobalPolicyMode(Audit, PolicyModeOverrides.Always)), - null, - null, - null - ) - // override ldap methods to use mock nodes - val nodeApiService16 = new NodeApiService15(nodeInfo, null, null, mockNodes.newNodeManager, uuidGen, null, null, null) { + "relay" + ) { + implicit val testCC: ChangeContext = + ChangeContext(ModificationId(uuidGen.newUuid), EventActor("test"), DateTime.now(), None, None) override def checkUuid(nodeId: NodeId): IO[Creation.CreationError, Unit] = { - mockNodes.nodeInfoService + mockNodes.nodeFactRepo .get(nodeId) .map(_.nonEmpty) .mapError(err => CreationError.OnSaveInventory(s"Error during node ID check: ${err.fullMsg}")) @@ -787,8 +771,8 @@ class RestTestSetUp { } override def saveInventory(inventory: FullInventory): IO[Creation.CreationError, NodeId] = { - mockNodes.nodeInfoService - .save(inventory) + mockNodes.nodeFactRepo + .updateInventory(inventory, None) .mapBoth( err => CreationError.OnSaveInventory(s"Error when saving node: ${err.fullMsg}"), _ => inventory.node.main.id @@ -796,16 +780,13 @@ class RestTestSetUp { } override def saveRudderNode(id: NodeId, setup: NodeSetup): IO[Creation.CreationError, NodeId] = { - mockNodes.nodeInfoService.nodeBase.updateZIO { nodes => - nodes.get(id) match { - case None => CreationError.OnSaveNode(s"Can not merge node: missing").fail - case Some(n) => - import com.softwaremill.quicklens._ - val res = n.modify(_.info.node).using(x => mergeNodeSetup(x, setup)) - - (nodes + ((id, res))).succeed - } - }.map(_ => id) + (for { + n <- mockNodes.nodeFactRepo.get(id).notOptional(s"Can not merge node: missing") + n2 = CoreNodeFact.updateNode(n, mergeNodeSetup(n.toNode, setup)) + _ <- mockNodes.nodeFactRepo.save(NodeFact.fromMinimal(n2))(testCC, SelectFacts.none) + } yield { + n.id + }).mapError(err => CreationError.OnSaveInventory(err.fullMsg)) } } @@ -920,13 +901,7 @@ class RestTestSetUp { new NodeApi( restExtractorService, restDataSerializer, - nodeApiService2, - nodeApiService4, - nodeApiService6, - nodeApiService8, - nodeApiService12, - nodeApiService13, - nodeApiService16, + nodeApiService, null, DeleteMode.Erase ), @@ -946,7 +921,7 @@ class RestTestSetUp { asyncDeploymentAgent, uuidGen, settingsService.policyServerManagementService, - nodeInfo + mockNodes.nodeInfoService ), archiveAPIModule.api, campaignApiModule.api diff --git a/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/TestRestPlusInPath.scala b/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/TestRestPlusInPath.scala index a36910744ab..5b77cd36534 100644 --- a/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/TestRestPlusInPath.scala +++ b/webapp/sources/rudder/rudder-rest/src/test/scala/com/normation/rudder/rest/TestRestPlusInPath.scala @@ -37,10 +37,9 @@ package com.normation.rudder.rest -import com.normation.inventory.domain.AcceptedInventory -import com.normation.inventory.domain.NodeInventory -import com.normation.inventory.domain.NodeSummary -import com.normation.rudder.NodeDetails +import com.normation.GitVersion.Revision +import com.normation.rudder.domain.policies.RuleId +import com.normation.rudder.domain.policies.RuleUid import com.normation.zio._ import net.liftweb.common.Full import net.liftweb.http.InMemoryResponse @@ -49,7 +48,6 @@ import org.junit.runner.RunWith import org.specs2.mutable._ import org.specs2.runner.JUnitRunner import org.specs2.specification.BeforeAfterAll -import zio.syntax._ // test that the "+" in path is correctly kept as a "+", not changed into " " // See: https://issues.rudder.io/issues/20943 @@ -62,30 +60,20 @@ class TestRestPlusInPath extends Specification with BeforeAfterAll { .getLogger("com.normation.rudder.rest.RestUtils") .asInstanceOf[ch.qos.logback.classic.Logger] .setLevel(ch.qos.logback.classic.Level.OFF) - val env = RestTestSetUp.newEnv + val env = RestTestSetUp.newEnv import com.softwaremill.quicklens._ - val myNode = env.mockNodes.node1.modify(_.node.id.value).setTo("my+node").modify(_.hostname).setTo("my+node.rudder.local") - override def beforeAll(): Unit = { - val inventory = NodeInventory( - NodeSummary( - myNode.id, - AcceptedInventory, - "root", - myNode.hostname, - myNode.osDetails, - myNode.policyServerId, - myNode.keyStatus - ) - ) - val details = NodeDetails(myNode, inventory, None) - ZioRuntime.unsafeRun(env.mockNodes.nodeInfoService.nodeBase.updateZIO(nodes => (nodes + (myNode.id -> details)).succeed)) - } + val rule = env.mockRules.ruleRepo + .get(RuleId(RuleUid("ff44fb97-b65e-43c4-b8c2-0df8d5e8549f"))) + .runNow + .modify(_.id.rev) + .setTo(Revision("gitrevision")) + val test = new RestTest(env.liftRules) - override def afterAll(): Unit = { - ZioRuntime.unsafeRun(env.mockNodes.nodeInfoService.nodeBase.updateZIO(nodes => (nodes - (myNode.id)).succeed)) + override def beforeAll(): Unit = { + ZioRuntime.unsafeRun(env.mockRules.ruleRepo.rulesMap.update(_ + (rule.id -> rule))) } - val test = new RestTest(env.liftRules) + override def afterAll(): Unit = {} sequential @@ -94,16 +82,27 @@ class TestRestPlusInPath extends Specification with BeforeAfterAll { "A plus in the path part of the url should be kept as a plus" >> { val mockReq = new MockHttpServletRequest("http://localhost:8080") mockReq.method = "GET" - mockReq.path = "/api/latest/nodes/my+node" // should be kept - mockReq.queryString = "include=minimal" + mockReq.path = "/api/latest/rules/ff44fb97-b65e-43c4-b8c2-0df8d5e8549f+gitrevision" // should be kept mockReq.body = "" mockReq.headers = Map() mockReq.contentType = "text/plain" - // authorize space in response formating + // authorize space in response formatting val expected = { - """{"action":"nodeDetails","id":"my+node","result":"success","data":""" + - """{"nodes":[{"id":"my+node","hostname":"my+node.rudder.local","status":"accepted"}]}}""" + """{"action":"ruleDetails","id":"ff44fb97-b65e-43c4-b8c2-0df8d5e8549f+gitrevision", + |"result":"success","data":{"rules":[{ + |"id":"ff44fb97-b65e-43c4-b8c2-0df8d5e8549f+gitrevision", + |"displayName":"60-rule-technique-std-lib", + |"categoryId":"rootRuleCategory", + |"shortDescription":"default rule", + |"longDescription":"", + |"directives":["16617aa8-1f02-4e4a-87b6-d0bcdfb4019f","99f4ef91-537b-4e03-97bc-e65b447514cc", + |"e9a1a909-2490-4fc9-95c3-9d0aa01717c9"], + |"targets":["special:all"], + |"enabled":true,"system":false,"tags":[],"policyMode":"enforce", + |"status":{"value":"Partially applied", + |"details":"Directive 'directive 16617aa8-1f02-4e4a-87b6-d0bcdfb4019f' disabled, Directive 'directive e9a1a909-2490-4fc9-95c3-9d0aa01717c9' disabled" + |}}]}}""".stripMargin.replaceAll("\n", "") } test.execRequestResponse(mockReq)(response => { diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderConfig.scala b/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderConfig.scala index e7abef21484..33ba7cb9576 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderConfig.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderConfig.scala @@ -66,30 +66,15 @@ import com.normation.errors.SystemError import com.normation.inventory.domain._ import com.normation.inventory.ldap.core._ import com.normation.inventory.ldap.provisioning.AddIpValues -import com.normation.inventory.ldap.provisioning.CheckMachineName import com.normation.inventory.ldap.provisioning.CheckOsType -import com.normation.inventory.ldap.provisioning.DefaultInventorySaver -import com.normation.inventory.ldap.provisioning.DefaultLDIFInventoryLogger -import com.normation.inventory.ldap.provisioning.FromMotherBoardUuidIdFinder import com.normation.inventory.ldap.provisioning.LastInventoryDate -import com.normation.inventory.ldap.provisioning.LogInventoryPreCommit import com.normation.inventory.ldap.provisioning.NameAndVersionIdFinder -import com.normation.inventory.ldap.provisioning.PendingNodeIfNodeWasRemoved -import com.normation.inventory.ldap.provisioning.PostCommitLogger -import com.normation.inventory.ldap.provisioning.UseExistingMachineIdFinder -import com.normation.inventory.ldap.provisioning.UseExistingNodeIdFinder -import com.normation.inventory.ldap.provisioning.UuidMergerPreCommit import com.normation.inventory.provisioning.fusion.FusionInventoryParser import com.normation.inventory.provisioning.fusion.PreInventoryParserCheckConsistency import com.normation.inventory.services.core._ import com.normation.inventory.services.provisioning.DefaultInventoryParser import com.normation.inventory.services.provisioning.InventoryDigestServiceV1 import com.normation.inventory.services.provisioning.InventoryParser -import com.normation.inventory.services.provisioning.MachineDNFinderService -import com.normation.inventory.services.provisioning.NamedMachineDNFinderAction -import com.normation.inventory.services.provisioning.NamedNodeInventoryDNFinderAction -import com.normation.inventory.services.provisioning.NodeInventoryDNFinderService -import com.normation.inventory.services.provisioning.PreCommit import com.normation.ldap.sdk._ import com.normation.plugins.FilePluginSettingsService import com.normation.plugins.ReadPluginPackageInfo @@ -115,14 +100,28 @@ import com.normation.rudder.domain._ import com.normation.rudder.domain.logger.ApplicationLogger import com.normation.rudder.domain.logger.NodeConfigurationLoggerImpl import com.normation.rudder.domain.logger.ScheduledJobLoggerPure +import com.normation.rudder.domain.nodes.NodeGroupId import com.normation.rudder.domain.queries._ -import com.normation.rudder.facts.nodes.GitNodeFactRepositoryImpl +import com.normation.rudder.facts.nodes.AppLogNodeFactChangeEventCallback +import com.normation.rudder.facts.nodes.CacheInvalidateNodeFactEventCallback +import com.normation.rudder.facts.nodes.CoreNodeFactRepository +import com.normation.rudder.facts.nodes.EventLogsNodeFactChangeEventCallback +import com.normation.rudder.facts.nodes.GenerationOnChange +import com.normation.rudder.facts.nodes.GitNodeFactStorageImpl +import com.normation.rudder.facts.nodes.HistorizeNodeState +import com.normation.rudder.facts.nodes.LdapNodeFactStorage +import com.normation.rudder.facts.nodes.NodeFactChangeEventCallback +import com.normation.rudder.facts.nodes.NodeFactFullInventoryRepositoryProxy +import com.normation.rudder.facts.nodes.NodeFactInventorySaver +import com.normation.rudder.facts.nodes.NodeFactRepository +import com.normation.rudder.facts.nodes.NodeInfoServiceProxy import com.normation.rudder.facts.nodes.NoopFactStorage +import com.normation.rudder.facts.nodes.SoftDaoGetNodesbySofwareName +import com.normation.rudder.facts.nodes.WoFactNodeRepositoryProxy import com.normation.rudder.git.GitRepositoryProvider import com.normation.rudder.git.GitRepositoryProviderImpl import com.normation.rudder.git.GitRevisionProvider import com.normation.rudder.inventory.DefaultProcessInventoryService -import com.normation.rudder.inventory.FactRepositoryPostCommit import com.normation.rudder.inventory.InventoryFailedHook import com.normation.rudder.inventory.InventoryFileWatcher import com.normation.rudder.inventory.InventoryMover @@ -206,7 +205,6 @@ import com.typesafe.config.ConfigException import com.typesafe.config.ConfigFactory import com.unboundid.ldap.sdk.DN import com.unboundid.ldap.sdk.RDN -import com.unboundid.ldif.LDIFChangeRecord import java.io.File import java.nio.file.attribute.PosixFilePermission import java.security.Security @@ -403,7 +401,7 @@ object RudderParsedProperties { // Here, we define static nouns for all theses properties // - private[this] val filteredPasswords = scala.collection.mutable.Buffer[String]() + val filteredPasswords = scala.collection.mutable.Buffer[String]() def logRudderParsedProperties() = { import scala.jdk.CollectionConverters._ @@ -1094,6 +1092,7 @@ object RudderConfig extends Loggable { val acceptedNodeQueryProcessor: QueryProcessor = rci.acceptedNodeQueryProcessor val acceptedNodesDit: InventoryDit = rci.acceptedNodesDit val agentRegister: AgentRegister = rci.agentRegister + val aggregateReportScheduler: FindNewReportsExecution = rci.aggregateReportScheduler val apiAuthorizationLevelService: DefaultApiAuthorizationLevel = rci.apiAuthorizationLevelService val apiDispatcher: RudderEndpointDispatcher = rci.apiDispatcher val asyncComplianceService: AsyncComplianceService = rci.asyncComplianceService @@ -1106,9 +1105,9 @@ object RudderConfig extends Loggable { val campaignEventRepo: CampaignEventRepositoryImpl = rci.campaignEventRepo val campaignSerializer: CampaignSerializer = rci.campaignSerializer val categoryHierarchyDisplayer: CategoryHierarchyDisplayer = rci.categoryHierarchyDisplayer + val changeRequestChangesSerialisation: ChangeRequestChangesSerialisation = rci.changeRequestChangesSerialisation val changeRequestChangesUnserialisation: ChangeRequestChangesUnserialisation = rci.changeRequestChangesUnserialisation val changeRequestEventLogService: ChangeRequestEventLogService = rci.changeRequestEventLogService - val checkInventoryUpdate: CheckInventoryUpdate = rci.checkInventoryUpdate val checkTechniqueLibrary: CheckTechniqueLibrary = rci.checkTechniqueLibrary val clearCacheService: ClearCacheService = rci.clearCacheService val cmdbQueryParser: CmdbQueryParser = rci.cmdbQueryParser @@ -1131,7 +1130,7 @@ object RudderConfig extends Loggable { val eventLogDetailsService: EventLogDetailsService = rci.eventLogDetailsService val eventLogRepository: EventLogRepository = rci.eventLogRepository val findExpectedReportRepository: FindExpectedReportRepository = rci.findExpectedReportRepository - val fullInventoryRepository: LDAPFullInventoryRepository = rci.fullInventoryRepository + val fullInventoryRepository: FullInventoryRepository[Unit] = rci.fullInventoryRepository val gitRevisionProvider: GitRevisionProvider = rci.gitRevisionProvider val healthcheckNotificationService: HealthcheckNotificationService = rci.healthcheckNotificationService val historizeNodeCountBatch: IOResult[Unit] = rci.historizeNodeCountBatch @@ -1148,11 +1147,10 @@ object RudderConfig extends Loggable { val mainCampaignService: MainCampaignService = rci.mainCampaignService val ncfTechniqueReader: ncf.EditorTechniqueReader = rci.ncfTechniqueReader val newNodeManager: NewNodeManager = rci.newNodeManager - val newNodeManagerHooks: NewNodeManagerHooks = rci.newNodeManagerHooks val nodeDit: NodeDit = rci.nodeDit + val nodeFactRepository: NodeFactRepository = rci.nodeFactRepository val nodeGrid: NodeGrid = rci.nodeGrid val nodeInfoService: NodeInfoService = rci.nodeInfoService - val nodeSummaryService: NodeSummaryService = rci.nodeSummaryService val pendingNodeCheckGroup: CheckPendingNodeInDynGroups = rci.pendingNodeCheckGroup val pendingNodesDit: InventoryDit = rci.pendingNodesDit val personIdentService: PersonIdentService = rci.personIdentService @@ -1187,6 +1185,7 @@ object RudderConfig extends Loggable { val ruleApplicationStatus: RuleApplicationStatusService = rci.ruleApplicationStatus val ruleCategoryService: RuleCategoryService = rci.ruleCategoryService val rwLdap: LDAPConnectionProvider[RwLDAPConnection] = rci.rwLdap + val secretEventLogService: SecretEventLogService = rci.secretEventLogService val sharedFileApi: SharedFilesAPI = rci.sharedFileApi val snippetExtensionRegister: SnippetExtensionRegister = rci.snippetExtensionRegister val srvGrid: SrvGrid = rci.srvGrid @@ -1207,9 +1206,6 @@ object RudderConfig extends Loggable { val woRuleRepository: WoRuleRepository = rci.woRuleRepository val workflowEventLogService: WorkflowEventLogService = rci.workflowEventLogService val workflowLevelService: DefaultWorkflowLevel = rci.workflowLevelService - val aggregateReportScheduler: FindNewReportsExecution = rci.aggregateReportScheduler - val secretEventLogService: SecretEventLogService = rci.secretEventLogService - val changeRequestChangesSerialisation: ChangeRequestChangesSerialisation = rci.changeRequestChangesSerialisation val gitRepo: GitRepositoryProvider = rci.gitRepo val gitModificationRepository: GitModificationRepository = rci.gitModificationRepository @@ -1274,9 +1270,7 @@ case class RudderServiceApi( ruleApplicationStatus: RuleApplicationStatusService, propertyEngineService: PropertyEngineService, newNodeManager: NewNodeManager, - newNodeManagerHooks: NewNodeManagerHooks, nodeGrid: NodeGrid, - nodeSummaryService: NodeSummaryService, jsTreeUtilService: JsTreeUtilService, directiveEditorService: DirectiveEditorService, userPropertyService: UserPropertyService, @@ -1285,7 +1279,6 @@ case class RudderServiceApi( policyServerManagementService: PolicyServerManagementService, updateDynamicGroupsService: DynGroupUpdaterService, updateDynamicGroups: UpdateDynamicGroups, - checkInventoryUpdate: CheckInventoryUpdate, purgeDeletedInventories: PurgeDeletedInventories, purgeUnreferencedSoftwares: PurgeUnreferencedSoftwares, databaseManager: DatabaseManager, @@ -1300,7 +1293,7 @@ case class RudderServiceApi( personIdentService: PersonIdentService, gitRevisionProvider: GitRevisionProvider, logDisplayer: LogDisplayer, - fullInventoryRepository: LDAPFullInventoryRepository, + fullInventoryRepository: FullInventoryRepository[Unit], acceptedNodeQueryProcessor: QueryProcessor, categoryHierarchyDisplayer: CategoryHierarchyDisplayer, dynGroupService: DynGroupService, @@ -1370,7 +1363,8 @@ case class RudderServiceApi( secretEventLogService: SecretEventLogService, changeRequestChangesSerialisation: ChangeRequestChangesSerialisation, gitRepo: GitRepositoryProvider, - gitModificationRepository: GitModificationRepository + gitModificationRepository: GitModificationRepository, + nodeFactRepository: NodeFactRepository ) /* @@ -1393,8 +1387,7 @@ object RudderConfigInit { lazy val clearableCache: Seq[CachedRepository] = Seq( cachedAgentRunRepository, recentChangesService, - reportingServiceImpl, - nodeInfoServiceImpl + reportingServiceImpl ) lazy val pluginSettingsService = new FilePluginSettingsService( @@ -1543,7 +1536,7 @@ object RudderConfigInit { lazy val yamlTechniqueSerializer = new YamlTechniqueSerializer(resourceFileService) - lazy val linkUtil = new LinkUtil(roRuleRepository, roNodeGroupRepository, roDirectiveRepository, nodeInfoServiceImpl) + lazy val linkUtil = new LinkUtil(roRuleRepository, roNodeGroupRepository, roDirectiveRepository, nodeFactInfoService) // REST API lazy val restApiAccounts = new RestApiAccounts( roApiAccountRepository, @@ -1563,7 +1556,7 @@ object RudderConfigInit { acceptedNodesDit, rudderDit, roDirectiveRepository, - nodeInfoService + nodeFactRepository ), userService, linkUtil @@ -1602,7 +1595,7 @@ object RudderConfigInit { woRuleCategoryRepository, roDirectiveRepository, roNodeGroupRepository, - nodeInfoService, + nodeFactInfoService, configService.rudder_global_policy_mode _, ruleApplicationStatus ) @@ -1690,73 +1683,31 @@ object RudderConfigInit { ) } - lazy val nodeApiService2 = new NodeApiService2( - newNodeManager, - nodeInfoService, - removeNodeService, - uuidGen, - restExtractorService, - restDataSerializer - ) - - lazy val nodeApiService4 = new NodeApiService4( - fullInventoryRepository, - nodeInfoService, - softwareInventoryDAO, - uuidGen, - restExtractorService, - restDataSerializer, - roAgentRunsRepository - ) - - lazy val nodeApiService8 = { - new NodeApiService8( - woNodeRepository, - nodeInfoService, - uuidGen, - asyncDeploymentAgent, - RUDDER_RELAY_API, - userService - ) - } - - lazy val nodeApiService12 = new NodeApiService12( - removeNodeService, - uuidGen, - restDataSerializer - ) - - lazy val nodeApiService6 = new NodeApiService6( - nodeInfoService, - fullInventoryRepository, - softwareInventoryDAO, - restExtractorService, - restDataSerializer, - queryProcessor, - inventoryQueryChecker, - roAgentRunsRepository - ) - - lazy val nodeApiService13 = new NodeApiService13( - nodeInfoService, - cachedAgentRunRepository, - readOnlySoftwareDAO, - restExtractorService, - () => configService.rudder_global_policy_mode().toBox, - reportingServiceImpl, - roNodeGroupRepository, - roLDAPParameterRepository - ) - - lazy val nodeApiService16 = new NodeApiService15( - fullInventoryRepository, + lazy val nodeApiService = new NodeApiService( rwLdap, + nodeFactRepository, + factFullInventoryRepo, + roNodeGroupRepository, + roLDAPParameterRepository, + roAgentRunsRepository, + woFactNodeRepository, ldapEntityMapper, - newNodeManager, stringUuidGenerator, nodeDit, pendingNodesDit, - acceptedNodesDit + acceptedNodesDit, + nodeFactInfoService, + newNodeManagerImpl, + removeNodeServiceImpl, + restExtractorService, + restDataSerializer, + reportingServiceImpl, + queryProcessor, + inventoryQueryChecker, + asyncDeploymentAgent, + userService, + () => configService.rudder_global_policy_mode().toBox, + RUDDER_RELAY_API ) lazy val parameterApiService2 = { @@ -1806,14 +1757,14 @@ object RudderConfigInit { healthcheckService, healthcheckNotificationService, restDataSerializer, - softwareService + deprecated.softwareService ) - lazy val ruleInternalApiService = new RuleInternalApiService(roRuleRepository, roNodeGroupRepository, nodeInfoService) + lazy val ruleInternalApiService = new RuleInternalApiService(roRuleRepository, roNodeGroupRepository, nodeFactInfoService) lazy val complianceAPIService = new ComplianceAPIService( roRuleRepository, - nodeInfoService, + nodeFactInfoService, roNodeGroupRepository, reportingService, roDirectiveRepository, @@ -1877,79 +1828,73 @@ object RudderConfigInit { ) } - lazy val automaticMerger: PreCommit = new UuidMergerPreCommit( - uuidGen, - acceptedNodesDit, - new NodeInventoryDNFinderService( - Seq( - // start by trying to use an already given UUID - NamedNodeInventoryDNFinderAction( - "use_existing_id", - new UseExistingNodeIdFinder(inventoryDitService, roLdap, acceptedNodesDit.BASE_DN.getParent) - ) - ) - ), - new MachineDNFinderService( - Seq( - // start by trying to use an already given UUID - NamedMachineDNFinderAction( - "use_existing_id", - new UseExistingMachineIdFinder(inventoryDitService, roLdap, acceptedNodesDit.BASE_DN.getParent) - ), // look if it's in the accepted inventories - - NamedMachineDNFinderAction( - "check_mother_board_uuid_accepted", - new FromMotherBoardUuidIdFinder(roLdap, acceptedNodesDit, inventoryDitService) - ), // see if it's in the "pending" branch - - NamedMachineDNFinderAction( - "check_mother_board_uuid_pending", - new FromMotherBoardUuidIdFinder(roLdap, pendingNodesDit, inventoryDitService) - ), // see if it's in the "removed" branch - - NamedMachineDNFinderAction( - "check_mother_board_uuid_removed", - new FromMotherBoardUuidIdFinder(roLdap, removedNodesDitImpl, inventoryDitService) - ) - ) - ), - new NameAndVersionIdFinder( - "check_name_and_version", - roLdap, - inventoryMapper, - acceptedNodesDit - ) - ) - - lazy val gitFactRepo = GitRepositoryProviderImpl + lazy val gitFactRepoProvider = GitRepositoryProviderImpl .make(RUDDER_GIT_ROOT_FACT_REPO) .runOrDie(err => new RuntimeException(s"Error when initializing git configuration repository: " + err.fullMsg)) - lazy val gitFactRepoGC = new GitGC(gitFactRepo, RUDDER_GIT_GC) - lazy val nodeFactStorage = if (RUDDER_GIT_FACT_WRITE_NODES) { - val r = new GitNodeFactRepositoryImpl(gitFactRepo, RUDDER_GROUP_OWNER_CONFIG_REPO, RUDDER_GIT_FACT_COMMIT_NODES) + lazy val gitFactRepoGC = new GitGC(gitFactRepoProvider, RUDDER_GIT_GC) + gitFactRepoGC.start() + lazy val gitFactStorage = if (RUDDER_GIT_FACT_WRITE_NODES) { + val r = new GitNodeFactStorageImpl(gitFactRepoProvider, Some(RUDDER_GROUP_OWNER_CONFIG_REPO), RUDDER_GIT_FACT_COMMIT_NODES) r.checkInit().runOrDie(err => new RuntimeException(s"Error when checking fact repository init: " + err.fullMsg)) r } else NoopFactStorage - lazy val ldifInventoryLogger = new DefaultLDIFInventoryLogger(LDIF_TRACELOG_ROOT_DIR) - lazy val inventorySaver = new DefaultInventorySaver( + // TODO WARNING POC: this can't work on a machine with lots of node + lazy val ldapNodeFactStorage = new LdapNodeFactStorage( rwLdap, - acceptedNodesDit, + nodeDit, + inventoryDitService, + ldapEntityMapper, inventoryMapper, + nodeReadWriteMutex, + deprecated.ldapFullInventoryRepository, + deprecated.softwareInventoryDAO, + deprecated.ldapSoftwareSave, + uuidGen + ) + + lazy val getNodeBySoftwareName = new SoftDaoGetNodesbySofwareName(deprecated.softwareInventoryDAO) + + lazy val nodeFactRepository = { + + val callbacks = Chunk[NodeFactChangeEventCallback]( + new AppLogNodeFactChangeEventCallback(), + new EventLogsNodeFactChangeEventCallback(eventLogRepository), + new HistorizeNodeState( + inventoryHistoryJdbcRepository, + ldapNodeFactStorage, + gitFactStorage, + (KEEP_DELETED_NODE_FACT_DURATION.getSeconds == 0) + ) + ) + + val repo = CoreNodeFactRepository.make(ldapNodeFactStorage, getNodeBySoftwareName, callbacks).runNow + repo + } + + lazy val inventorySaver = new NodeFactInventorySaver( + nodeFactRepository, ( CheckOsType - :: automaticMerger - :: CheckMachineName + // removed: noe and machine go together, and we have UUIDs for nodes + // :: automaticMerger + // :: CheckMachineName :: new LastInventoryDate() :: AddIpValues - :: new LogInventoryPreCommit(inventoryMapper, ldifInventoryLogger) + // removed: we only store the files, not LDIF of changes + // :: new LogInventoryPreCommit(inventoryMapper, ldifInventoryLogger) :: Nil ), ( - new PendingNodeIfNodeWasRemoved(fullInventoryRepository) - :: new FactRepositoryPostCommit[Seq[LDIFChangeRecord]](nodeFactStorage, nodeInfoService) - :: new PostCommitLogger(ldifInventoryLogger) - :: new PostCommitInventoryHooks[Seq[LDIFChangeRecord]](HOOKS_D, HOOKS_IGNORE_SUFFIXES) + // removed: nodes are fully deleted now +// new PendingNodeIfNodeWasRemoved(fullInventoryRepository) + // already commited in fact repos +// new FactRepositoryPostCommit[Unit](factRepo, nodeFactInfoService) + // deprecated: we use fact repo now +// :: new PostCommitLogger(ldifInventoryLogger) + new PostCommitInventoryHooks[Unit](HOOKS_D, HOOKS_IGNORE_SUFFIXES) + // removed: this is done as a callback of CoreNodeFactRepos + // :: new TriggerPolicyGenerationPostCommit[Unit](asyncDeploymentAgent, uuidGen) :: Nil ) ) @@ -1987,7 +1932,7 @@ object RudderConfigInit { pipelinedInventoryParser, inventorySaver, maxParallel, - new InventoryDigestServiceV1(fullInventoryRepository.get), + new InventoryDigestServiceV1((id: NodeId) => factFullInventoryRepo.get(id)), checkLdapAlive ) } @@ -2027,6 +1972,8 @@ object RudderConfigInit { ) } + lazy val factFullInventoryRepo = new NodeFactFullInventoryRepositoryProxy(nodeFactRepository) + lazy val archiveApi = { val archiveBuilderService = new ZipArchiveBuilderService(new FileArchiveNameService(), configurationRepository, gitParseTechniqueLibrary) @@ -2081,7 +2028,7 @@ object RudderConfigInit { import com.normation.rudder.rest.lift._ val nodeInheritedProperties = - new NodeApiInheritedProperties(nodeInfoService, roNodeGroupRepository, roLDAPParameterRepository) + new NodeApiInheritedProperties(nodeFactInfoService, roNodeGroupRepository, roLDAPParameterRepository) val groupInheritedProperties = new GroupApiInheritedProperties(roNodeGroupRepository, roLDAPParameterRepository) val campaignApi = new lift.CampaignApi( @@ -2115,13 +2062,7 @@ object RudderConfigInit { new NodeApi( restExtractorService, restDataSerializer, - nodeApiService2, - nodeApiService4, - nodeApiService6, - nodeApiService8, - nodeApiService12, - nodeApiService13, - nodeApiService16, + nodeApiService, nodeInheritedProperties, DeleteMode.Erase // only supported mode for Rudder 8.0 ), @@ -2132,7 +2073,7 @@ object RudderConfigInit { asyncDeploymentAgent, stringUuidGenerator, policyServerManagementService, - nodeInfoService + nodeFactInfoService ), new TechniqueApi( restExtractorService, @@ -2348,15 +2289,15 @@ object RudderConfigInit { * For now, we don't want to query server other * than the accepted ones. */ - lazy val getSubGroupChoices = () => roLdapNodeGroupRepository.getAll().map(seq => seq.map(g => SubGroupChoice(g.id, g.name))) - lazy val ditQueryDataImpl = new DitQueryData(acceptedNodesDitImpl, nodeDit, rudderDit, getSubGroupChoices) + lazy val getSubGroupChoices = new DefaultSubGroupComparatorRepository(roLdapNodeGroupRepository) + lazy val nodeQueryData = new NodeQueryCriteriaData(() => getSubGroupChoices) + lazy val ditQueryDataImpl = new DitQueryData(acceptedNodesDitImpl, nodeDit, rudderDit, nodeQueryData) lazy val queryParser = new CmdbQueryParser with DefaultStringQueryParser with JsonQueryLexer { override val criterionObjects = Map[String, ObjectCriterion]() ++ ditQueryDataImpl.criteriaMap } lazy val inventoryMapper: InventoryMapper = new InventoryMapper(inventoryDitService, pendingNodesDitImpl, acceptedNodesDitImpl, removedNodesDitImpl) - lazy val fullInventoryFromLdapEntries: FullInventoryFromLdapEntries = - new FullInventoryFromLdapEntriesImpl(inventoryDitService, inventoryMapper) + lazy val ldapDiffMapper = new LDAPDiffMapper(ldapEntityMapper, queryParser) lazy val activeTechniqueCategoryUnserialisation = new ActiveTechniqueCategoryUnserialisationImpl @@ -2517,73 +2458,49 @@ object RudderConfigInit { } // query processor for accepted nodes - lazy val queryProcessor = new AcceptedNodesLDAPQueryProcessor( - nodeDitImpl, - acceptedNodesDitImpl, - new InternalLDAPQueryProcessor(roLdap, acceptedNodesDitImpl, nodeDit, ditQueryDataImpl, ldapEntityMapper), - nodeInfoServiceImpl + lazy val queryProcessor = new NodeFactQueryProcessor( + nodeFactRepository, + new DefaultSubGroupComparatorRepository(roNodeGroupRepository), + deprecated.internalAcceptedQueryProcessor, + AcceptedInventory ) // we need a roLdap query checker for nodes in pending - lazy val inventoryQueryChecker = new PendingNodesLDAPQueryChecker( - new InternalLDAPQueryProcessor( - roLdap, - pendingNodesDitImpl, - nodeDit, // here, we don't want to look for subgroups to show them in the form => always return an empty list - - new DitQueryData(pendingNodesDitImpl, nodeDit, rudderDit, () => Nil.succeed), - ldapEntityMapper - ), - nodeInfoServiceImpl + lazy val inventoryQueryChecker = new NodeFactQueryProcessor( + nodeFactRepository, + new DefaultSubGroupComparatorRepository(roNodeGroupRepository), + deprecated.internalPendingQueryProcessor, + PendingInventory ) - lazy val dynGroupServiceImpl = new DynGroupServiceImpl(rudderDitImpl, roLdap, ldapEntityMapper) + + lazy val dynGroupServiceImpl = new DynGroupServiceImpl(rudderDitImpl, roLdap, ldapEntityMapper) lazy val pendingNodeCheckGroup = new CheckPendingNodeInDynGroups(inventoryQueryChecker) - lazy val ldapFullInventoryRepository = - new FullInventoryRepositoryImpl(inventoryDitService, inventoryMapper, rwLdap) - lazy val fullInventoryRepository = ldapFullInventoryRepository - lazy val unitRefuseGroup: UnitRefuseInventory = + lazy val unitRefuseGroup: UnitRefuseInventory = new RefuseGroups("refuse_node:delete_id_in_groups", roLdapNodeGroupRepository, woLdapNodeGroupRepository) - lazy val acceptInventory: UnitAcceptInventory with UnitRefuseInventory = - new AcceptInventory("accept_new_server:inventory", pendingNodesDitImpl, acceptedNodesDitImpl, ldapFullInventoryRepository) - lazy val acceptNodeAndMachineInNodeOu: UnitAcceptInventory with UnitRefuseInventory = { - new AcceptFullInventoryInNodeOu( - "accept_new_server:ou=node", - nodeDitImpl, - rwLdap, - ldapEntityMapper, - PendingInventory, - () => configService.rudder_node_onaccept_default_policy_mode().toBox, - () => configService.rudder_node_onaccept_default_state().toBox - ) - } - lazy val acceptHostnameAndIp: UnitAcceptInventory = new AcceptHostnameAndIp( + lazy val acceptHostnameAndIp: UnitCheckAcceptInventory = new AcceptHostnameAndIp( "accept_new_server:check_hostname_unicity", - AcceptedInventory, queryProcessor, ditQueryDataImpl, psMngtService, - nodeInfoServiceImpl, + nodeFactRepository, configService.node_accept_duplicated_hostname() ) - lazy val historizeNodeStateOnChoice: UnitAcceptInventory with UnitRefuseInventory = { - new HistorizeNodeStateOnChoice( - "accept_or_refuse_new_node:historize_inventory", - ldapFullInventoryRepository, - inventoryHistoryJdbcRepository, - PendingInventory + // used in accept node to see & store inventories on acceptation + lazy val inventoryHistoryLogRepository: InventoryHistoryLogRepository = { + val fullInventoryFromLdapEntries: FullInventoryFromLdapEntries = + new FullInventoryFromLdapEntriesImpl(inventoryDitService, inventoryMapper) + + new InventoryHistoryLogRepository( + HISTORY_INVENTORIES_ROOTDIR, + new FullInventoryFileParser(fullInventoryFromLdapEntries, inventoryMapper) ) } - lazy val updateFactRepoOnChoice: UnitAcceptInventory with UnitRefuseInventory = new UpdateFactRepoOnChoice( - "accept_or_refuse_new_node:update_fact_repo", - PendingInventory, - nodeFactStorage - ) - lazy val nodeGridImpl = new NodeGrid(ldapFullInventoryRepository, nodeInfoServiceImpl, configService) + lazy val nodeGridImpl = new NodeGrid(factFullInventoryRepo, nodeFactInfoService, configService) lazy val modificationService = new ModificationService(logRepository, gitModificationRepository, itemArchiveManagerImpl, uuidGen) @@ -2593,29 +2510,17 @@ object RudderConfigInit { logRepository, roLdapNodeGroupRepository, roLdapDirectiveRepository, - nodeInfoServiceImpl, + nodeFactInfoService, roLDAPRuleCategoryRepository, modificationService, personIdentServiceImpl, linkUtil, diffDisplayer ) - lazy val databaseManagerImpl = new DatabaseManagerImpl(reportsRepositoryImpl, updateExpectedRepo) - lazy val softwareInventoryDAO: ReadOnlySoftwareDAO = - new ReadOnlySoftwareDAOImpl(inventoryDitService, roLdap, inventoryMapper) - lazy val readOnlySoftwareDAO = softwareInventoryDAO - lazy val softwareInventoryRWDAO: WriteOnlySoftwareDAO = new WriteOnlySoftwareDAOImpl(acceptedNodesDitImpl, rwLdap) - lazy val softwareService: SoftwareService = - new SoftwareServiceImpl(softwareInventoryDAO, softwareInventoryRWDAO, acceptedNodesDit) - lazy val nodeSummaryServiceImpl = new NodeSummaryServiceImpl(inventoryDitService, inventoryMapper, roLdap) + lazy val databaseManagerImpl = new DatabaseManagerImpl(reportsRepositoryImpl, updateExpectedRepo) + lazy val inventoryHistoryJdbcRepository = new InventoryHistoryJdbcRepository(doobie) - lazy val inventoryHistoryLogRepository: InventoryHistoryLogRepository = { - new InventoryHistoryLogRepository( - HISTORY_INVENTORIES_ROOTDIR, - new FullInventoryFileParser(fullInventoryFromLdapEntries, inventoryMapper) - ) - } lazy val personIdentServiceImpl: PersonIdentService = new TrivialPersonIdentService lazy val personIdentService = personIdentServiceImpl @@ -2757,17 +2662,7 @@ object RudderConfigInit { ) lazy val woRuleRepository = woLdapRuleRepository - lazy val woLdapNodeRepository: WoNodeRepository = new WoLDAPNodeRepository( - nodeDitImpl, - acceptedNodesDit, - ldapEntityMapper, - rwLdap, - logRepository, - nodeReadWriteMutex, - cachedNodeConfigurationService, - reportingServiceImpl - ) - lazy val woNodeRepository = woLdapNodeRepository + lazy val woFactNodeRepository: WoNodeRepository = new WoFactNodeRepositoryProxy(nodeFactRepository) lazy val roLdapNodeGroupRepository = new RoLDAPNodeGroupRepository( rudderDitImpl, @@ -2865,7 +2760,7 @@ object RudderConfigInit { } lazy val globalAgentRunService: AgentRunIntervalService = { new AgentRunIntervalServiceImpl( - nodeInfoServiceImpl, + nodeFactInfoService, () => configService.agent_run_interval().toBox, () => configService.agent_run_start_hour().toBox, () => configService.agent_run_start_minute().toBox, @@ -2955,7 +2850,7 @@ object RudderConfigInit { ruleValService, systemVariableService, nodeConfigurationHashRepo, - nodeInfoServiceImpl, + nodeFactInfoService, updateExpectedRepo, roNodeGroupRepository, roDirectiveRepository, @@ -2963,7 +2858,7 @@ object RudderConfigInit { ruleApplicationStatusImpl, roParameterServiceImpl, interpolationCompiler, - ldapFullInventoryRepository, + factFullInventoryRepo, globalComplianceModeService, globalAgentRunService, reportingServiceImpl, @@ -3004,56 +2899,36 @@ object RudderConfigInit { } lazy val asyncDeploymentAgent = asyncDeploymentAgentImpl - lazy val newNodeHookRunner = new NewNodeManagerHooksImpl( - nodeInfoServiceImpl, - HOOKS_D, - HOOKS_IGNORE_SUFFIXES - ) - lazy val newNodeManagerImpl = { + // the sequence of unit process to accept a new inventory val unitAcceptors = { - historizeNodeStateOnChoice :: - updateFactRepoOnChoice :: - acceptNodeAndMachineInNodeOu :: - acceptInventory :: acceptHostnameAndIp :: Nil } // the sequence of unit process to refuse a new inventory val unitRefusors = { - historizeNodeStateOnChoice :: - updateFactRepoOnChoice :: unitRefuseGroup :: - acceptInventory :: Nil } + val hooksRunner = new NewNodeManagerHooksImpl(nodeFactRepository, HOOKS_D, HOOKS_IGNORE_SUFFIXES) - val composed = new ComposedNewNodeManager[Seq[LDIFChangeRecord]]( - ldapFullInventoryRepository, - nodeSummaryServiceImpl, + val composedManager = new ComposedNewNodeManager[Unit]( + nodeFactRepository, unitAcceptors, unitRefusors, - inventoryHistoryJdbcRepository, - eventLogRepository, - dyngroupUpdaterBatch, - cachedNodeConfigurationService, - reportingServiceImpl, - List(nodeInfoServiceImpl), - newNodeHookRunner + hooksRunner ) + val listNodes = new FactListNewNodes(nodeFactRepository) - val listNodes = new LdapListNewNode( - roLdap, - nodeSummaryServiceImpl, - pendingNodesDitImpl + new NewNodeManagerImpl[Unit]( + composedManager, + listNodes ) - - new NewNodeManagerImpl(composed, listNodes) } - lazy val newNodeManager: NewNodeManager = newNodeManagerImpl + /////// reporting /////// lazy val nodeConfigurationHashRepo: NodeConfigurationHashRepository = { val x = new FileBasedNodeConfigurationHashRepository(FileBasedNodeConfigurationHashRepository.defaultHashesPath) @@ -3061,14 +2936,14 @@ object RudderConfigInit { x } - lazy val reportingServiceImpl = { + lazy val reportingServiceImpl: CachedReportingServiceImpl = { val reportingServiceImpl = new CachedReportingServiceImpl( new ReportingServiceImpl( findExpectedRepo, reportsRepositoryImpl, roAgentRunsRepository, globalAgentRunService, - nodeInfoServiceImpl, + nodeFactInfoService, roLdapDirectiveRepository, roRuleRepository, cachedNodeConfigurationService, @@ -3077,7 +2952,7 @@ object RudderConfigInit { () => configService.rudder_compliance_unexpected_report_interpretation().toBox, RUDDER_JDBC_BATCH_MAX_SIZE ), - nodeInfoServiceImpl, + nodeFactInfoService, RUDDER_JDBC_BATCH_MAX_SIZE, // use same size as for SQL requests complianceRepositoryImpl @@ -3087,6 +2962,7 @@ object RudderConfigInit { cachedNodeConfigurationService.addHook(reportingServiceImpl) reportingServiceImpl } + lazy val reportingService: ReportingService = reportingServiceImpl lazy val pgIn = new PostgresqlInClause(70) @@ -3161,17 +3037,8 @@ object RudderConfigInit { ruleCatReadWriteMutex ) lazy val eventLogDeploymentServiceImpl = new EventLogDeploymentService(logRepository, eventLogDetailsServiceImpl) - lazy val nodeInfoServiceImpl = new NodeInfoServiceCachedImpl( - roLdap, - nodeDitImpl, - acceptedNodesDitImpl, - removedNodesDitImpl, - pendingNodesDitImpl, - ldapEntityMapper, - inventoryMapper, - FiniteDuration(LDAP_CACHE_NODE_INFO_MIN_INTERVAL.toMillis, "millis") - ) - lazy val nodeInfoService: NodeInfoService = nodeInfoServiceImpl + + lazy val nodeFactInfoService = new NodeInfoServiceProxy(nodeFactRepository) lazy val dependencyAndDeletionService: DependencyAndDeletionService = new DependencyAndDeletionServiceImpl( new FindDependenciesImpl(roLdap, rudderDitImpl, ldapEntityMapper), roLdapDirectiveRepository, @@ -3244,53 +3111,35 @@ object RudderConfigInit { */ lazy val postNodeDeleteActions = Ref .make( - new RemoveNodeInfoFromCache(nodeInfoServiceImpl) + // new RemoveNodeInfoFromCache(ldapNodeInfoServiceImpl) + new RemoveNodeFromGroups(roNodeGroupRepository, woNodeGroupRepository, uuidGen) :: new CloseNodeConfiguration(updateExpectedRepo) - :: new RemoveNodeFromComplianceCache(cachedNodeConfigurationService, reportingServiceImpl) :: new DeletePolicyServerPolicies(policyServerManagementService) :: new ResetKeyStatus(rwLdap, removedNodesDitImpl) :: new CleanUpCFKeys() :: new CleanUpNodePolicyFiles("/var/rudder/share") - :: new DeleteNodeFact(nodeFactStorage) - :: new StoreDeleteEventHistory(inventoryHistoryJdbcRepository, (KEEP_DELETED_NODE_FACT_DURATION.getSeconds == 0)) :: Nil ) .runNow - lazy val removeNodeServiceImpl = { - val backend = new LdapRemoveNodeBackend( - nodeDitImpl, - pendingNodesDitImpl, - acceptedNodesDitImpl, - removedNodesDitImpl, - rwLdap, - ldapFullInventoryRepository, - nodeReadWriteMutex - ) + lazy val factRemoveNodeBackend = new FactRemoveNodeBackend(nodeFactRepository) - new RemoveNodeServiceImpl( - backend, - nodeInfoService, - pathComputer, - newNodeManager, - eventLogRepository, - postNodeDeleteActions, - HOOKS_D, - HOOKS_IGNORE_SUFFIXES - ) - } - lazy val removeNodeService: RemoveNodeService = removeNodeServiceImpl - lazy val purgeDeletedNodes = new PurgeDeletedNodesImpl( - rwLdap, - removedNodesDitImpl, - ldapFullInventoryRepository + lazy val removeNodeServiceImpl = new RemoveNodeServiceImpl( + // deprecated.ldapRemoveNodeBackend, + factRemoveNodeBackend, + nodeFactInfoService, + pathComputer, + newNodeManagerImpl, + postNodeDeleteActions, + HOOKS_D, + HOOKS_IGNORE_SUFFIXES ) lazy val healthcheckService = new HealthcheckService( List( CheckCoreNumber, CheckFreeSpace, - new CheckFileDescriptorLimit(nodeInfoService) + new CheckFileDescriptorLimit(nodeFactInfoService) ) ) @@ -3316,7 +3165,7 @@ object RudderConfigInit { new CheckConnections(dataSourceProvider, rwLdap), new MigrateEventLogEnforceSchema(doobie), new MigrateNodeAcceptationInventories( - nodeInfoService, + nodeFactInfoService, doobie, inventoryHistoryLogRepository, inventoryHistoryJdbcRepository, @@ -3341,6 +3190,13 @@ object RudderConfigInit { new CheckRudderGlobalParameter(roLDAPParameterRepository, woLDAPParameterRepository, uuidGen), new CheckInitXmlExport(itemArchiveManagerImpl, personIdentServiceImpl, uuidGen), + new MigrateNodeAcceptationInventories( + nodeFactInfoService, + doobie, + inventoryHistoryLogRepository, + inventoryHistoryJdbcRepository, + KEEP_DELETED_NODE_FACT_DURATION + ), new CheckNcfTechniqueUpdate( ncfTechniqueWriter, roLDAPApiAccountRepository.systemAPIAccount, @@ -3364,7 +3220,7 @@ object RudderConfigInit { uuidGen ), new CreateSystemToken(roLDAPApiAccountRepository.systemAPIAccount), - new LoadNodeComplianceCache(nodeInfoService, reportingServiceImpl) + new LoadNodeComplianceCache(nodeFactInfoService, reportingServiceImpl) ) ////////////////////////////////////////////////////////////////////////////////////////// @@ -3451,7 +3307,7 @@ object RudderConfigInit { reportsRepositoryImpl, roLdapRuleRepository, roLdapDirectiveRepository, - nodeInfoServiceImpl, + nodeFactInfoService, RUDDER_BATCH_REPORTS_LOGINTERVAL ) @@ -3462,7 +3318,7 @@ object RudderConfigInit { lazy val snippetExtensionRegister: SnippetExtensionRegister = new SnippetExtensionRegisterImpl() lazy val cachedNodeConfigurationService: CachedNodeConfigurationService = { - val cached = new CachedNodeConfigurationService(findExpectedRepo, nodeInfoServiceImpl) + val cached = new CachedNodeConfigurationService(findExpectedRepo, nodeFactInfoService) cached.init().runOrDie(err => new RuntimeException(s"Error when initializing node configuration cache: " + err)) cached } @@ -3516,9 +3372,6 @@ object RudderConfigInit { lazy val aggregateReportScheduler = new FindNewReportsExecution(executionService, RUDDER_REPORTS_EXECUTION_INTERVAL) - // This needs to be done at the end, to be sure that all is initialized - deploymentService.setDynamicsGroupsService(dyngroupUpdaterBatch) - // aggregate information about node count // don't forget to start-it once out of the zone which lead to dead-lock (ie: in Lift boot) lazy val historizeNodeCountBatch = for { @@ -3543,24 +3396,94 @@ object RudderConfigInit { _ <- cron.start } yield () - lazy val checkInventoryUpdate = new CheckInventoryUpdate( - nodeInfoServiceImpl, - asyncDeploymentAgent, - uuidGen, - RUDDER_BATCH_CHECK_NODE_CACHE_INTERVAL - ) - lazy val purgeDeletedInventories = new PurgeDeletedInventories( - purgeDeletedNodes, - FiniteDuration(RUDDER_BATCH_PURGE_DELETED_INVENTORIES_INTERVAL.toLong, "hours"), - RUDDER_BATCH_PURGE_DELETED_INVENTORIES - ) - lazy val purgeUnreferencedSoftwares = { - new PurgeUnreferencedSoftwares( - softwareService, - FiniteDuration(RUDDER_BATCH_DELETE_SOFTWARE_INTERVAL.toLong, "hours") +// provided as a callback on node fact repo +// lazy val checkInventoryUpdate = new CheckInventoryUpdate( +// nodeFactInfoService, +// asyncDeploymentAgent, +// uuidGen, +// RUDDER_BATCH_CHECK_NODE_CACHE_INTERVAL +// ) + + lazy val asynComplianceService = new AsyncComplianceService(reportingService) + + /* + * here goes deprecated services that we can't remove yet, for example because they are used for migration + */ + object deprecated { + lazy val ldapFullInventoryRepository = + new FullInventoryRepositoryImpl(inventoryDitService, inventoryMapper, rwLdap) + + lazy val softwareInventoryDAO: ReadOnlySoftwareDAO = + new ReadOnlySoftwareDAOImpl(inventoryDitService, roLdap, inventoryMapper) + + lazy val softwareInventoryRWDAO: WriteOnlySoftwareDAO = new WriteOnlySoftwareDAOImpl( + acceptedNodesDitImpl, + rwLdap + ) + + lazy val softwareService: SoftwareService = + new SoftwareServiceImpl(softwareInventoryDAO, softwareInventoryRWDAO, acceptedNodesDit) + + lazy val purgeUnreferencedSoftwares = { + new PurgeUnreferencedSoftwares( + softwareService, + FiniteDuration(RUDDER_BATCH_DELETE_SOFTWARE_INTERVAL.toLong, "hours") + ) + } + + lazy val purgeDeletedInventories = new PurgeDeletedInventories( + new PurgeDeletedNodesImpl(rwLdap, removedNodesDitImpl, ldapFullInventoryRepository), + FiniteDuration(RUDDER_BATCH_PURGE_DELETED_INVENTORIES_INTERVAL.toLong, "hours"), + RUDDER_BATCH_PURGE_DELETED_INVENTORIES + ) + + lazy val ldapRemoveNodeBackend = new LdapRemoveNodeBackend( + nodeDitImpl, + pendingNodesDitImpl, + acceptedNodesDitImpl, + removedNodesDitImpl, + rwLdap, + ldapFullInventoryRepository, + nodeReadWriteMutex + ) + + lazy val ldapSoftwareSave = new NameAndVersionIdFinder("check_name_and_version", roLdap, inventoryMapper, acceptedNodesDit) + + lazy val internalAcceptedQueryProcessor = + new InternalLDAPQueryProcessor(roLdap, acceptedNodesDitImpl, nodeDit, ditQueryDataImpl, ldapEntityMapper) + + lazy val internalPendingQueryProcessor = { + val subGroup = new SubGroupComparatorRepository { + override def getNodeIds(groupId: NodeGroupId): IOResult[Chunk[NodeId]] = Chunk.empty.succeed + + override def getGroups: IOResult[Chunk[SubGroupChoice]] = Chunk.empty.succeed + } + new InternalLDAPQueryProcessor( + roLdap, + pendingNodesDitImpl, + nodeDit, + // here, we don't want to look for subgroups to show them in the form => always return an empty list + new DitQueryData( + pendingNodesDitImpl, + nodeDit, + rudderDit, + new NodeQueryCriteriaData(() => subGroup) + ), + ldapEntityMapper + ) + } + + lazy val woLdapNodeRepository: WoNodeRepository = new WoLDAPNodeRepository( + nodeDitImpl, + acceptedNodesDit, + ldapEntityMapper, + rwLdap, + logRepository, + nodeReadWriteMutex, + cachedNodeConfigurationService, + reportingServiceImpl ) } - lazy val asynComplianceService = new AsyncComplianceService(reportingService) // reference services part of the API val rci = RudderServiceApi( @@ -3571,14 +3494,14 @@ object RudderConfigInit { rudderDit, roLdapRuleRepository, woRuleRepository, - woNodeRepository, + woFactNodeRepository, roLdapNodeGroupRepository, woLdapNodeGroupRepository, techniqueRepositoryImpl, techniqueRepositoryImpl, roLdapDirectiveRepository, woLdapDirectiveRepository, - softwareInventoryDAO, + deprecated.softwareInventoryDAO, eventLogRepository, eventLogDetailsServiceImpl, reportingServiceImpl, @@ -3590,9 +3513,7 @@ object RudderConfigInit { ruleApplicationStatusImpl, propertyEngineService, newNodeManagerImpl, - newNodeHookRunner, nodeGridImpl, - nodeSummaryServiceImpl, jsTreeUtilServiceImpl, directiveEditorService, userPropertyService, @@ -3601,29 +3522,28 @@ object RudderConfigInit { policyServerManagementService, dynGroupUpdaterService, dyngroupUpdaterBatch, - checkInventoryUpdate, - purgeDeletedInventories, - purgeUnreferencedSoftwares, + deprecated.purgeDeletedInventories, + deprecated.purgeUnreferencedSoftwares, databaseManagerImpl, dbCleaner, techniqueLibraryUpdater, autoReportLogger, removeNodeServiceImpl, - nodeInfoServiceImpl, + nodeFactInfoService, reportDisplayerImpl, dependencyAndDeletionService, itemArchiveManagerImpl, personIdentServiceImpl, gitRevisionProviderImpl, logDisplayerImpl, - ldapFullInventoryRepository, + factFullInventoryRepo, queryProcessor, categoryHierarchyDisplayerImpl, dynGroupServiceImpl, ditQueryDataImpl, reportsRepository, eventLogDeploymentServiceImpl, - new SrvGrid(roAgentRunsRepository, configService, roLdapRuleRepository, nodeInfoService), + new SrvGrid(roAgentRunsRepository, configService, roLdapRuleRepository, nodeFactInfoService), findExpectedRepo, roLDAPApiAccountRepository, woLDAPApiAccountRepository, @@ -3686,14 +3606,28 @@ object RudderConfigInit { secretEventLogService, changeRequestChangesSerialisation, gitConfigRepo, - gitModificationRepository + gitModificationRepository, + nodeFactRepository ) + // need to be done here to avoid cyclic dependencies + (nodeFactRepository.registerChangeCallbackAction( + new GenerationOnChange(updateDynamicGroups, asyncDeploymentAgent, uuidGen) + ) *> + nodeFactRepository.registerChangeCallbackAction( + new CacheInvalidateNodeFactEventCallback(cachedNodeConfigurationService, reportingServiceImpl, Nil) + )).runNow + // This needs to be done at the end, to be sure that all is initialized + deploymentService.setDynamicsGroupsService(dyngroupUpdaterBatch) // we need to reference batches not part of the API to start them since // they are lazy val cleanOldInventoryBatch.start() gitFactRepoGC.start() gitConfigRepoGC.start() + // todo: scheduler interval should be a property + ZioRuntime.unsafeRun(jsonReportsAnalyzer.start(5.seconds).forkDaemon.provideLayer(ZioRuntime.layers)) + ZioRuntime.unsafeRun(MainCampaignService.start(mainCampaignService)) + // UpdateDynamicGroups is part of rci // reportingServiceImpl part of rci // checkInventoryUpdate part of rci diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/checks/migration/MigrateNodeAcceptationInventories.scala b/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/checks/migration/MigrateNodeAcceptationInventories.scala index b1771059191..4ada578fef1 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/checks/migration/MigrateNodeAcceptationInventories.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/checks/migration/MigrateNodeAcceptationInventories.scala @@ -151,13 +151,16 @@ class MigrateNodeAcceptationInventories( _.headOption match { case None => ZIO.unit case Some(v) => - for { - last <- fileLogRepository.get(nodeId, v) - opt <- nodeInfoService.getNodeInfo(nodeId) - _ <- ZIO.when(opt.isDefined || last.datetime.plus(MAX_KEEP_REFUSED.toMillis).isAfter(now)) { - saveInDB(nodeId, last.datetime, last.data, !opt.isDefined) - } - } yield () + fileLogRepository.get(nodeId, v).flatMap { + case None => ZIO.unit + case Some(l) => + for { + opt <- nodeInfoService.getNodeInfo(nodeId) + _ <- ZIO.when(opt.isDefined || l.datetime.plus(MAX_KEEP_REFUSED.toMillis).isAfter(now)) { + saveInDB(nodeId, l.datetime, l.data, !opt.isDefined) + } + } yield () + } } } *> purgeLogFile(nodeId) } diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/components/SearchNodeComponent.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/components/SearchNodeComponent.scala index c8e743f6180..de051cad280 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/components/SearchNodeComponent.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/components/SearchNodeComponent.scala @@ -682,7 +682,7 @@ object SearchNodeComponent { ) } - val defaultLine: CriterionLine = { + val defaultLine = { // in case of further modification in ditQueryData require( ditQueryData.criteriaMap(OC_NODE).criteria(0).name == "OS", diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala index fa862847bba..4e6ac10e2c7 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala @@ -52,6 +52,8 @@ import com.normation.rudder.domain.policies.PolicyModeOverrides._ import com.normation.rudder.domain.reports.ComplianceLevel import com.normation.rudder.domain.reports.ComplianceLevelSerialisation import com.normation.rudder.domain.reports.NodeStatusReport +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.SelectFacts import com.normation.rudder.hooks.HookReturnCode import com.normation.rudder.services.reports.NoReportInInterval import com.normation.rudder.services.reports.Pending @@ -91,7 +93,7 @@ import scala.xml.Utility.escape */ object DisplayNode extends Loggable { - private[this] val getSoftwareService = RudderConfig.readOnlySoftwareDAO + private[this] val nodeFactRepository = RudderConfig.nodeFactRepository private[this] val removeNodeService = RudderConfig.removeNodeService private[this] val asyncDeploymentAgent = RudderConfig.asyncDeploymentAgent private[this] val uuidGen = RudderConfig.stringUuidGenerator @@ -145,9 +147,10 @@ object DisplayNode extends Loggable { } } - private def loadSoftware(jsId: JsNodeId, softIds: Seq[SoftwareUuid])(nodeId: String): JsCmd = { + private def loadSoftware(jsId: JsNodeId)(nodeId: String): JsCmd = { + implicit val attrs = SelectFacts.none.copy(software = SelectFacts.none.software.toRetrieve) (for { - seq <- getSoftwareService.getSoftware(softIds) + seq <- nodeFactRepository.slowGet(NodeId(nodeId)).map(_.toList.flatMap(_.software.map(_.toSoftware))) gridDataId = htmlId(jsId, "soft_grid_data_") gridId = "soft" } yield SetExp( @@ -288,7 +291,7 @@ object DisplayNode extends Loggable { // if the firstChild.id == softGridId, then it hasn't been loaded, otherwise it is softGridId_wrapper JsRaw(s""" $$("#${softPanelId}").click(function() { - ${SHtml.ajaxCall(JsRaw("'" + nodeId.value + "'"), loadSoftware(jsId, softIds))._2.toJsCmd} + ${SHtml.ajaxCall(JsRaw("'" + nodeId.value + "'"), loadSoftware(jsId))._2.toJsCmd} }); """) ) @@ -681,9 +684,9 @@ object DisplayNode extends Loggable { case None => NodeSeq.Empty case Some(machine) => ( machine.machineType match { + case UnknownMachineType => Text("Unknown machine type") case PhysicalMachineType => Text("Physical machine") case VirtualMachineType(vmType) => Text("Virtual machine (%s)".format(S.?("vm.type." + vmType.name))) - case UnknownMachineType => Text("Unknown machine type") } ) } @@ -1145,12 +1148,18 @@ object DisplayNode extends Loggable { } private[this] def removeNode(node: NodeSummary): JsCmd = { - val modId = ModificationId(uuidGen.newUuid) - removeNodeService - .removeNodePure(node.id, DeleteMode.Erase, modId, CurrentUser.actor) // only erase for Rudder 8.0 - .toBox match { + implicit val cc: ChangeContext = ChangeContext( + ModificationId(uuidGen.newUuid), + CurrentUser.actor, + DateTime.now(), + None, + S.request.map(_.remoteAddr).toOption + ) + + // only erase for Rudder 8.0 + removeNodeService.removeNodePure(node.id, DeleteMode.Erase).toBox match { case Full(_) => - asyncDeploymentAgent ! AutomaticStartDeployment(modId, CurrentUser.actor) + asyncDeploymentAgent ! AutomaticStartDeployment(cc.modId, cc.actor) onSuccess(node) case eb: EmptyBox => val message = s"There was an error while deleting node '${node.hostname}' [${node.id.value}]" diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/NodeGrid.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/NodeGrid.scala index 0fb3bbae5b7..c91de105bf6 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/NodeGrid.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/NodeGrid.scala @@ -41,7 +41,7 @@ import com.normation.appconfig.ReadConfigService import com.normation.box._ import com.normation.inventory.domain.InventoryStatus import com.normation.inventory.domain.NodeId -import com.normation.inventory.ldap.core._ +import com.normation.inventory.services.core.FullInventoryRepository import com.normation.rudder.domain.servers.Srv import com.normation.rudder.services.nodes.NodeInfoService import com.normation.rudder.web.ChooseTemplate @@ -77,7 +77,7 @@ final case class JsonArg(jsid: String, id: String, status: String) * - call the display(servers) method */ final class NodeGrid( - getNodeAndMachine: LDAPFullInventoryRepository, + getNodeAndMachine: FullInventoryRepository[_], nodeInfoService: NodeInfoService, configService: ReadConfigService ) extends Loggable { diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/AcceptNode.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/AcceptNode.scala index 7ac783b9bbd..152aa794fbf 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/AcceptNode.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/AcceptNode.scala @@ -42,9 +42,11 @@ import com.normation.box._ import com.normation.eventlog.EventActor import com.normation.eventlog.ModificationId import com.normation.inventory.domain.NodeId -import com.normation.inventory.domain.PendingInventory import com.normation.rudder.domain.logger.TimingDebugLogger import com.normation.rudder.domain.servers.Srv +import com.normation.rudder.facts.nodes.ChangeContext +import com.normation.rudder.facts.nodes.CoreNodeFact +import com.normation.rudder.facts.nodes.SelectNodeStatus import com.normation.rudder.web.ChooseTemplate import com.normation.rudder.web.components.popup.ExpectedPolicyPopup import com.normation.rudder.web.services.CurrentUser @@ -60,6 +62,7 @@ import org.joda.time.DateTime import org.springframework.security.core.context.SecurityContextHolder import org.springframework.security.core.userdetails.UserDetails import scala.xml._ +import zio.stream.ZSink /** * Check for server in the pending repository and propose to @@ -68,10 +71,10 @@ import scala.xml._ */ class AcceptNode extends Loggable { - val newNodeManager = RudderConfig.newNodeManager - val rudderDit = RudderConfig.rudderDit - val serverGrid = RudderConfig.nodeGrid - val serverSummaryService = RudderConfig.nodeSummaryService + val newNodeManager = RudderConfig.newNodeManager + val rudderDit = RudderConfig.rudderDit + val serverGrid = RudderConfig.nodeGrid + val nodeFactRepository = RudderConfig.nodeFactRepository val historyRepos = RudderConfig.inventoryHistoryJdbcRepository val logRepository = RudderConfig.eventLogRepository @@ -113,7 +116,7 @@ class AcceptNode extends Loggable { def list(html: NodeSeq): NodeSeq = { - newNodeManager.listNewNodes match { + newNodeManager.listNewNodes.toBox match { case Empty =>
Error, no server found
case f @ Failure(_, _, _) =>
Error while retrieving pending nodes list
case Full(seq) => display(html, seq) @@ -141,8 +144,18 @@ class AcceptNode extends Loggable { // TODO : manage error message S.clearCurrentNotices listNode.foreach { id => + implicit val cc: ChangeContext = { + ChangeContext( + modId, + CurrentUser.actor, + DateTime.now(), + None, + S.request.map(_.remoteAddr).toOption + ) + } val now = System.currentTimeMillis - val accept = newNodeManager.accept(id, modId, CurrentUser.actor) + val accept = + newNodeManager.accept(id).toBox if (TimingDebugLogger.isDebugEnabled) { TimingDebugLogger.debug(s"Accepting node ${id.value}: ${System.currentTimeMillis - now}ms") } @@ -168,7 +181,9 @@ class AcceptNode extends Loggable { S.clearCurrentNotices val modId = ModificationId(uuidGen.newUuid) listNode.foreach { id => - newNodeManager.refuse(id, modId, CurrentUser.actor) match { + newNodeManager + .refuse(id)(ChangeContext(modId, CurrentUser.actor, DateTime.now(), None, S.request.map(_.remoteAddr).toOption)) + .toBox match { case e: EmptyBox => logger.error(s"Refuse node '${id.value}' lead to Failure.", e) S.error(Error while refusing node(s).) @@ -233,7 +248,11 @@ class AcceptNode extends Loggable { "#server_os *" #> srv.osFullName)(serverLine) } - serverSummaryService.find(PendingInventory, listNode: _*) match { + nodeFactRepository + .getAll()(SelectNodeStatus.Pending) + .collect { case n if (listNode.contains(n.id)) => n.toSrv } + .run(ZSink.collectAll) + .toBox match { case Full(servers) => val lines: NodeSeq = servers.flatMap(displayServerLine) ("#server_lines" #> lines).apply( @@ -295,10 +314,10 @@ class AcceptNode extends Loggable { OnLoad(JsRaw("""createPopup("expectedPolicyPopup")""")) } - def display(html: NodeSeq, nodes: Seq[Srv]): NodeSeq = { + def display(html: NodeSeq, nodes: Seq[CoreNodeFact]): NodeSeq = { val servers = { serverGrid.displayAndInit( - nodes, + nodes.map(_.toSrv), "acceptNodeGrid", Seq( (Text("Since"), { e => Text(DateFormaterService.getDisplayDate(e.creationDate)) }), diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/NodeHistoryViewer.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/NodeHistoryViewer.scala index f7826aa1442..bc2d8da23f2 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/NodeHistoryViewer.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/NodeHistoryViewer.scala @@ -75,9 +75,9 @@ class NodeHistoryViewer extends StatefulSnippet {

{SHtml.ajaxSelectObj[DateTime](dates, Full(selectedDate), onSelect _)}

{ historyRepos.get(uuid, selectedDate).toBox match { - case Failure(m, _, _) =>
Error while trying to display node history. Error message: {m}
- case Empty =>
No history was retrieved for the chosen date
- case Full(sm) => + case Failure(m, _, _) =>
Error while trying to display node history. Error message: {m}
+ case Empty | Full(None) =>
No history was retrieved for the chosen date
+ case Full(Some(sm)) =>
{ DisplayNode.showPannedContent(None, sm.data.fact.toFullInventory, sm.data.status, "hist") ++ Script(DisplayNode.jsInit(sm.id, sm.data.fact.toFullInventory.node.softwareIds, "hist")) @@ -117,9 +117,9 @@ class NodeHistoryViewer extends StatefulSnippet { private def onSelect(date: DateTime): JsCmd = { historyRepos.get(uuid, date).toBox match { - case Failure(m, _, _) => Alert("Error while trying to display node history. Error message:" + m) - case Empty => Alert("No history was retrieved for the chosen date") - case Full(sm) => + case Failure(m, _, _) => Alert("Error while trying to display node history. Error message:" + m) + case Empty | Full(None) => Alert("No history was retrieved for the chosen date") + case Full(Some(sm)) => SetHtml(hid, DisplayNode.showPannedContent(None, sm.data.fact.toFullInventory, sm.data.status, "hist")) & DisplayNode.jsInit(sm.id, sm.data.fact.toFullInventory.node.softwareIds, "hist") } diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/PendingHistoryGrid.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/PendingHistoryGrid.scala index 01e5f54b2cc..584c9d57868 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/PendingHistoryGrid.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/node/PendingHistoryGrid.scala @@ -136,7 +136,7 @@ object PendingHistoryGrid extends Loggable { ("tr [jsuuid]" #> jsuuid & "tr [serveruuid]" #> details.nodeId.value & "tr [kind]" #> status.toLowerCase & - "tr [inventory]" #> details.inventoryVersion.toString() & + "tr [inventory]" #> DateFormaterService.serialize(event.creationDate) & ".date *" #> DateFormaterService.getDisplayDate(event.creationDate) & ".name *" #> details.hostname & ".os *" #> details.fullOsName & @@ -220,9 +220,9 @@ object PendingHistoryGrid extends Loggable { val version = ISODateTimeFormat.dateTimeParser.parseDateTime(arr(2)) val isAcceptLine = arr(3) == "accepted" history.get(id, version).toBox match { - case Failure(m, _, _) => Alert("Error while trying to display node history. Error message:" + m) - case Empty => Alert("No history was retrieved for the chosen date") - case Full(sm) => + case Failure(m, _, _) => Alert("Error while trying to display node history. Error message:" + m) + case Empty | Full(None) => Alert("No history was retrieved for the chosen date") + case Full(Some(sm)) => SetHtml( jsuuid, (if (isAcceptLine) diff --git a/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateNodeAcceptationInventories.scala b/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateNodeAcceptationInventories.scala index 2d9f2e7d22a..886f69c4047 100644 --- a/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateNodeAcceptationInventories.scala +++ b/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateNodeAcceptationInventories.scala @@ -185,11 +185,20 @@ trait TestMigrateNodeAcceptationInventories extends Specification with AfterAll } yield files.toSeq.map(f => NodeId(f.name)) } - override def get(id: NodeId, version: DateTime): IOResult[FactLog] = { - for { - json <- IOResult.attempt(s"Read json for ${id.value}}")(factFile(id, version).contentAsString) - fact <- json.fromJson[NodeFact].toIO - } yield FactLog(id, version, FactLogData(fact, EventActor("rudder-migration"), AcceptedInventory)) + override def get(id: NodeId, version: DateTime): IOResult[Option[FactLog]] = { + val file = factFile(id, version) + ZIO + .whenZIO(IOResult.attempt(file.exists)) { + IOResult.attempt(s"Read json for ${id.value}}")(file.contentAsString) + } + .flatMap { + case Some(json) => + for { + fact <- json.fromJson[NodeFact].toIO + } yield Some(FactLog(id, version, FactLogData(fact, EventActor("rudder-migration"), AcceptedInventory))) + case None => + None.succeed + } } override def versions(id: NodeId): IOResult[Seq[DateTime]] = { @@ -254,7 +263,7 @@ trait TestMigrateNodeAcceptationInventories extends Specification with AfterAll } override def getNodeInfos(nodeIds: Set[NodeId]): IOResult[Set[NodeInfo]] = ??? override def getNodeInfosSeq(nodesId: Seq[NodeId]): IOResult[Seq[NodeInfo]] = ??? - override def getNumberOfManagedNodes: Int = ??? + override def getNumberOfManagedNodes: IOResult[Int] = ??? override def getAllNodesIds(): IOResult[Set[NodeId]] = ??? override def getAllNodes(): IOResult[Map[NodeId, Node]] = ??? override def getAllSystemNodeIds(): IOResult[Seq[NodeId]] = ??? diff --git a/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateSystemTechnique7_0.scala b/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateSystemTechnique7_0.scala new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/webapp/sources/rudder/rudder-web/src/test/scala/bootstrap/liftweb/checks/migration/TestMigrateSystemTechnique7_0.scala @@ -0,0 +1 @@ + diff --git a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnection.scala b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnection.scala index 6bc1aa871d6..d6ae1886d23 100644 --- a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnection.scala +++ b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnection.scala @@ -528,27 +528,32 @@ class RwLDAPConnection( * better than us for orchestrating its changes. * */ - private def applyMod[MOD <: ReadOnlyLDAPRequest]( + def applyMod[MOD <: ReadOnlyLDAPRequest]( modName: String, toLDIFChangeRecord: MOD => LDIFChangeRecord, backendAction: MOD => LDAPResult, onlyReportThat: ResultCode => Boolean )(req: MOD): LDAPIOResult[LDIFChangeRecord] = { val record = toLDIFChangeRecord(req) - blocking { - ldifFileLogger.records(Seq(record)) // ignore return value - backendAction(req) - } flatMap { res => - if (res.getResultCode == SUCCESS) { - record.succeed - } else if (onlyReportThat(res.getResultCode)) { - LDIFNoopChangeRecord(record.getParsedDN).succeed - } else { - LDAPRudderError - .FailureResult(s"Error when doing action '${modName}' with and LDIF change request: ${res.getDiagnosticMessage}", res) - .fail - } - } catchAll { x => + ZIO + .blocking(blocking { + ldifFileLogger.records(Seq(record)) // ignore return value + backendAction(req) + }) + .flatMap { res => + (if (res.getResultCode == SUCCESS) { + record.succeed + } else if (onlyReportThat(res.getResultCode)) { + LDIFNoopChangeRecord(record.getParsedDN).succeed + } else { + LDAPRudderError + .FailureResult( + s"Error when doing action '${modName}' with and LDIF change request: ${res.getDiagnosticMessage}", + res + ) + .fail + }) + } catchAll { x => (x: @unchecked) match { case ex: LDAPException => if (onlyReportThat(ex.getResultCode)) { @@ -591,7 +596,7 @@ class RwLDAPConnection( /** * Specialized version of applyMods for AddRequest modification type */ - private val applyAdds = applyMods[AddRequest]( + val applyAdds = applyMods[AddRequest]( "adds", (req: AddRequest) => req.toLDIFChangeRecord, (req: AddRequest) => backed.add(req), diff --git a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnectionProvider.scala b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnectionProvider.scala index 19dc8329c90..0d08dd3e606 100644 --- a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnectionProvider.scala +++ b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/LDAPConnectionProvider.scala @@ -72,14 +72,14 @@ trait LDAPConnectionProvider[LDAP <: RoLDAPConnection] { * return type is Unit. */ def foreach(f: LDAP => Unit): IOResult[Unit] = { - withConLdap[Unit] { con => f(con); ZIO.unit } + withConLdap[Unit](con => LDAPIOResult.attempt(f(con)).unit) } /** * map on connection provider */ def map[A](f: LDAP => A): LDAPIOResult[A] = { - withConLdap[A](con => f(con).succeed) + withConLdap[A](con => LDAPIOResult.attempt(f(con))) } /** diff --git a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPObjectClass.scala b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPObjectClass.scala index bf6368846e8..48cf2f9fde3 100644 --- a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPObjectClass.scala +++ b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPObjectClass.scala @@ -33,7 +33,6 @@ final case class LDAPObjectClass( val attributes = mustAttr ++ mayAttr assert(null != name && name.nonEmpty, "Name can't be null or empty") assert(attributes.forall(a => null != a && a.nonEmpty), "Attributes name can't be null or empty") - } object LDAPObjectClass { diff --git a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPSchema.scala b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPSchema.scala index 752348811a2..eb285757494 100644 --- a/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPSchema.scala +++ b/webapp/sources/scala-ldap/src/main/scala/com/normation/ldap/sdk/schema/LDAPSchema.scala @@ -99,7 +99,11 @@ class LDAPSchema { sup: LDAPObjectClass = LDAPObjectClass.TOP, must: Set[String] = Set(), may: Set[String] = Set() - ): LDAPSchema = addObjectClass(new LDAPObjectClass(name, sup, must, may)) + ): LDAPObjectClass = { + val oc = new LDAPObjectClass(name, sup, must, may) + addObjectClass(oc) + oc + } /** * Returned the set of children object classes for the diff --git a/webapp/sources/scala-ldap/src/test/scala/com/normation/ldap/sdk/schema/SchemaTest.scala b/webapp/sources/scala-ldap/src/test/scala/com/normation/ldap/sdk/schema/SchemaTest.scala index ab7d7dbc548..06a224dbad5 100644 --- a/webapp/sources/scala-ldap/src/test/scala/com/normation/ldap/sdk/schema/SchemaTest.scala +++ b/webapp/sources/scala-ldap/src/test/scala/com/normation/ldap/sdk/schema/SchemaTest.scala @@ -42,13 +42,13 @@ class SchemaTest extends Specification { * `- L1_2_0 */ OC.createObjectClass("L1_0") - .createObjectClass("L1_1") - .createObjectClass("L1_2") - .createObjectClass("L1_0_0", sup = OC("L1_0")) - .createObjectClass("L1_0_1", sup = OC("L1_0")) - .createObjectClass("L1_0_2", sup = OC("L1_0")) - .createObjectClass("L1_0_0_0", sup = OC("L1_0_0")) - .createObjectClass("L1_2_0", sup = OC("L1_2")) + OC.createObjectClass("L1_1") + OC.createObjectClass("L1_2") + OC.createObjectClass("L1_0_0", sup = OC("L1_0")) + OC.createObjectClass("L1_0_1", sup = OC("L1_0")) + OC.createObjectClass("L1_0_2", sup = OC("L1_0")) + OC.createObjectClass("L1_0_0_0", sup = OC("L1_0_0")) + OC.createObjectClass("L1_2_0", sup = OC("L1_2")) "top" >> ( (OC.demux() must beEmpty) and