Add installation date in the report of the installed software.

Registered by Andreas Xenos

Add installation date in the report of the installed software using system_profiler in Packages.pm

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
Frank
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Frank
Completed by
Frank

Related branches

Sprints

Whiteboard

Hi, system_profiler provides the last modified date of an installed package on a Mac.
I propose to set this date as the value for the installation date in the respective table of the ocs database.
---------------------------------------------------------------------------------------------------------------------------------------

package Ocsinventory::Agent::Backend::OS::MacOS::Packages;

use strict;
use warnings;

sub check {
    my $params = shift;

    return unless can_load("Mac::SysProfile");
    # Do not run an package inventory if there is the --nosoft parameter
    return if ($params->{config}->{nosoft});

    1;
}

sub run {
    my $params = shift;
    my $common = $params->{common};

    my $profile = Mac::SysProfile->new();
    my $data = $profile->gettype('SPApplicationsDataType'); # might need to check version of darwin

    return unless($data && ref($data) eq 'ARRAY');

    # for each app, normalize the information, then add it to the inventory stack
    foreach my $app (@$data){
        #my $a = $apps->{$app};
        my $kind = $app->{'runtime_environment'} ? $app->{'runtime_environment'} : 'UNKNOWN';
        my $comments = '['.$kind.']';
        $common->addSoftware({
            'NAME' => $app->{'_name'},
            'VERSION' => $app->{'version'} || 'unknown',
            'COMMENTS' => $comments,
            'PUBLISHER' => $app->{'info'} || 'unknown',
            'INSTALLDATE' => $app->{'lastModified'},
        });
    }
}

1;

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.