CollectorCommand   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 81
Duplicated Lines 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
eloc 39
c 5
b 0
f 0
dl 0
loc 81
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A initCollectors() 0 69 2
1
<?php
2
3
namespace Startwind\Inventorio\Command;
4
5
use Startwind\Inventorio\Collector\Application\Monitoring\WebProsMonitoringCollector;
6
use Startwind\Inventorio\Collector\Application\ProgrammingLanguage\PhpCollector;
7
use Startwind\Inventorio\Collector\Application\WebServer\Apache\ApacheConfigurationCollector;
8
use Startwind\Inventorio\Collector\Application\WebServer\Apache\ApacheServerNameCollector;
9
use Startwind\Inventorio\Collector\Application\WebServer\Nginx\NginxConfigurationCollector;
10
use Startwind\Inventorio\Collector\Application\WebServer\Nginx\NginxServerNameCollector;
11
use Startwind\Inventorio\Collector\Collector;
12
use Startwind\Inventorio\Collector\Container\DockerCollector;
13
use Startwind\Inventorio\Collector\Frameworks\Php\SymfonyCollector;
14
use Startwind\Inventorio\Collector\Hosting\HostingCompany\ASNCollector;
15
use Startwind\Inventorio\Collector\Inventorio\CommandCollector;
16
use Startwind\Inventorio\Collector\Inventorio\InventorioCollector;
17
use Startwind\Inventorio\Collector\Metrics\MetricThresholdCollector;
18
use Startwind\Inventorio\Collector\OperatingSystem\OperatingSystemCollector;
19
use Startwind\Inventorio\Collector\Package\Brew\BrewPackageCollector;
20
use Startwind\Inventorio\Collector\Package\Dnf\DnfPackageCollector;
21
use Startwind\Inventorio\Collector\Package\Dpkg\DpkgPackageCollector;
22
use Startwind\Inventorio\Collector\System\Cron\CronCollector;
23
use Startwind\Inventorio\Collector\System\General\ConfigurationCollector;
24
use Startwind\Inventorio\Collector\System\General\DiskCollector;
25
use Startwind\Inventorio\Collector\System\General\IpCollector;
26
use Startwind\Inventorio\Collector\System\General\UptimeCollector;
27
use Startwind\Inventorio\Collector\System\Logs\LogrotateCollector;
28
use Startwind\Inventorio\Collector\System\Ports\PortsCollector;
29
use Startwind\Inventorio\Collector\System\Security\AuthorizedKeysCollector;
30
use Startwind\Inventorio\Collector\System\Security\GeneralSecurityCollector;
31
use Startwind\Inventorio\Collector\System\Service\SystemDCollector;
32
use Startwind\Inventorio\Collector\System\UserCollector;
33
use Startwind\Inventorio\Collector\Website\HeaderCollector;
34
use Startwind\Inventorio\Collector\Website\ResponseCollector;
35
use Startwind\Inventorio\Collector\Website\WordPress\DatabaseCredentialCollector;
36
use Startwind\Inventorio\Collector\Website\WordPress\WordPressCollector;
37
38
abstract class CollectorCommand extends InventorioCommand
39
{
40
    /**
41
     * @var Collector[]
42
     */
43
    protected array $collectors = [];
44
    
45
    /**
46
     * Initialize all collectors.
47
     *
48
     * @todo use a config file to add collectors
49
     */
50
    protected function initCollectors(bool $addDebugCollector = false): void
51
    {
52
        $this->collectors[] = new DnfPackageCollector();
53
54
        // Inventorio
55
        $this->collectors[] = new InventorioCollector(
56
            $this->isRemoteEnabled(),
57
            $this->areLogfilesEnabled(),
58
            $this->isCollectEnabled(),
59
            $this->isSmartCareEnabled(),
60
            $this->config
61
        );
62
63
        if ($addDebugCollector) {
64
            // for later
65
        }
66
67
        $this->collectors[] = new CommandCollector($this->config);
68
        // $this->collectors[] = new RandomCollector();
69
70
        // General
71
        $this->collectors[] = new OperatingSystemCollector();
72
73
        // Hosting
74
        $this->collectors[] = new ASNCollector();
75
76
        // Metrics
77
        $this->collectors[] = new MetricThresholdCollector();
78
79
        // System / General
80
        $this->collectors[] = new IpCollector();
81
        $this->collectors[] = new UptimeCollector();
82
        $this->collectors[] = new PortsCollector();
83
        $this->collectors[] = new ConfigurationCollector();
84
        $this->collectors[] = new CronCollector();
85
        $this->collectors[] = new UserCollector();
86
        $this->collectors[] = new LogrotateCollector();
87
        $this->collectors[] = new DiskCollector();
88
        $this->collectors[] = new DockerCollector();
89
90
        // System / Services
91
        $this->collectors[] = new SystemDCollector();
92
93
        // System / Security
94
        $this->collectors[] = new GeneralSecurityCollector();
95
        $this->collectors[] = new AuthorizedKeysCollector();
96
97
        // Package Managers
98
        $this->collectors[] = new BrewPackageCollector();
99
        $this->collectors[] = new DpkgPackageCollector();
100
101
        // Application / Programming Language
102
        $this->collectors[] = new PhpCollector();
103
        $this->collectors[] = new WebProsMonitoringCollector();
104
105
        // Application / WebServer
106
        $this->collectors[] = new ApacheServerNameCollector();
107
        $this->collectors[] = new ApacheConfigurationCollector();
108
109
        $this->collectors[] = new NginxServerNameCollector();
110
        $this->collectors[] = new NginxConfigurationCollector();
111
112
        $this->collectors[] = new HeaderCollector();
113
114
        // INVENTORY AWARE
115
        $this->collectors[] = new WordPressCollector();
116
        $this->collectors[] = new DatabaseCredentialCollector();
117
        $this->collectors[] = new ResponseCollector();
118
        $this->collectors[] = new SymfonyCollector();
119
    }
120
}
121