|
6 | 6 |
|
7 | 7 | use Icinga\Application\Logger; |
8 | 8 | use Icinga\Module\X509\Command; |
9 | | -use Icinga\Module\X509\Job; |
10 | 9 | use Icinga\Module\X509\Model\X509Certificate; |
| 10 | +use Icinga\Module\X509\Model\X509CertificateChain; |
11 | 11 | use Icinga\Module\X509\Model\X509Target; |
12 | 12 | use ipl\Sql\Expression; |
13 | 13 | use ipl\Stdlib\Filter; |
@@ -89,36 +89,28 @@ public function hostAction() |
89 | 89 | ]); |
90 | 90 |
|
91 | 91 | // Sub queries for (valid_from, valid_to) columns |
92 | | - $validFrom = X509Certificate::on($conn) |
93 | | - ->with(['chain', 'issuer_certificate']) |
94 | | - ->columns([ |
95 | | - new Expression('MAX(GREATEST(%s, %s))', ['valid_from', 'issuer_certificate.valid_from']) |
96 | | - ]); |
97 | | - |
98 | | - $validFrom->getResolver()->setAliasPrefix('sub_'); |
| 92 | + $validFrom = $targets->createSubQuery(new X509Certificate(), 'chain.certificate'); |
99 | 93 | $validFrom |
| 94 | + ->columns([new Expression('MAX(GREATEST(%s, %s))', ['valid_from', 'issuer_certificate.valid_from'])]) |
100 | 95 | ->getSelectBase() |
101 | | - ->where(new Expression( |
102 | | - 'sub_certificate_link.certificate_chain_id = target_chain.id' |
103 | | - )); |
| 96 | + ->resetWhere() |
| 97 | + ->where(new Expression('sub_certificate_link.certificate_chain_id = target_chain.id')); |
104 | 98 |
|
105 | 99 | $validTo = clone $validFrom; |
106 | | - $validTo->columns([ |
107 | | - new Expression('MIN(LEAST(%s, %s))', ['valid_to', 'issuer_certificate.valid_to']) |
108 | | - ]); |
| 100 | + $validTo->columns([new Expression('MIN(LEAST(%s, %s))', ['valid_to', 'issuer_certificate.valid_to'])]); |
109 | 101 |
|
110 | | - list($validFromSelect, $validFromValues) = $validFrom->dump(); |
111 | | - list($validToSelect, $validToValues) = $validTo->dump(); |
| 102 | + list($validFromSelect, $_) = $validFrom->dump(); |
| 103 | + list($validToSelect, $_) = $validTo->dump(); |
112 | 104 | $targets |
113 | 105 | ->withColumns([ |
114 | | - 'valid_from' => new Expression("$validFromSelect", null, ...$validFromValues), |
115 | | - 'valid_to' => new Expression("$validToSelect", null, ...$validToValues) |
| 106 | + 'valid_from' => new Expression($validFromSelect), |
| 107 | + 'valid_to' => new Expression($validToSelect) |
116 | 108 | ]) |
117 | 109 | ->getSelectBase() |
118 | 110 | ->where(new Expression('target_chain_link.order = 0')); |
119 | 111 |
|
120 | 112 | if ($ip !== null) { |
121 | | - $targets->filter(Filter::equal('ip', Job::binary($ip))); |
| 113 | + $targets->filter(Filter::equal('ip', $ip)); |
122 | 114 | } |
123 | 115 | if ($hostname !== null) { |
124 | 116 | $targets->filter(Filter::equal('hostname', $hostname)); |
|
0 commit comments