Issue #1257: Update PurgeRules to not be hard linked to path keys
Change-Id: I8eb68c527ddafae2ee2b3af8d22eed905f547ea4 Former-commit-id:886375172b
[formerly5787d6278d
[formerly275398778f
] [formerly886375172b
[formerly 73bca27407552c864765d5924e8609a253493f4c]]] Former-commit-id:5787d6278d
[formerly275398778f
] Former-commit-id:5787d6278d
Former-commit-id:b2989eb90f
This commit is contained in:
parent
9b2ebecff0
commit
49f1665938
75 changed files with 1954 additions and 4434 deletions
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>airep</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>binlightning</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>36</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,69 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
|
||||
<purgeRuleSet>
|
||||
<!-- Default rule for data not covered by any rules -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosETA</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<defaultRule>
|
||||
<versionsToKeep>5</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosGFS</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
</defaultRule>
|
||||
<defaultRule>
|
||||
<versionsToKeep>5</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosAVN</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
</defaultRule>
|
||||
<defaultRule>
|
||||
<versionsToKeep>8</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosLAMP</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
</defaultRule>
|
||||
<defaultRule>
|
||||
<versionsToKeep>5</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosHPC</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
</defaultRule>
|
||||
<defaultRule>
|
||||
<versionsToKeep>5</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosMRF</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
</defaultRule>
|
||||
<defaultRule>
|
||||
<versionsToKeep>4</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmosNGM</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
</defaultRule>
|
||||
<defaultRule>
|
||||
<versionsToKeep>5</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</defaultRule>
|
||||
|
||||
</purgeRuleSet>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrua</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>21</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ccfp</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>goessounding</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>33</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ldadhydro</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ldadmanual</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ldadprofiler</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,40 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<purgeRuleSet>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>obs</pluginName>
|
||||
<key></key>
|
||||
</id>
|
||||
<versionsToKeep>34</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>obs</pluginName>
|
||||
<key></key>
|
||||
</id>
|
||||
<versionsToKeep>38</versionsToKeep>
|
||||
<delta>=00-03:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>obs</pluginName>
|
||||
<key></key>
|
||||
</id>
|
||||
<versionsToKeep>42</versionsToKeep>
|
||||
<delta>=00-06:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>obs</pluginName>
|
||||
<key></key>
|
||||
</id>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>pirep</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>01-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>poessounding</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>profiler</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>33</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>radar</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>01-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>recco</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>36</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,21 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
|
||||
<purgeRuleSet>
|
||||
<key>reportType</key>
|
||||
<!-- Synoptic fixed land -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1001</key>
|
||||
</id>
|
||||
<keyValue>1001</keyValue>
|
||||
<versionsToKeep>13</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1001</key>
|
||||
</id>
|
||||
<keyValue>1001</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
|
@ -24,217 +18,146 @@
|
|||
|
||||
<!-- Synoptic mobile land -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1002</key>
|
||||
</id>
|
||||
<keyValue>1002</keyValue>
|
||||
<versionsToKeep>13</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1002</key>
|
||||
</id>
|
||||
<keyValue>1002</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
<!-- End synoptic mobile land -->
|
||||
|
||||
<!-- Synoptic ship -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1003</key>
|
||||
</id>
|
||||
<keyValue>1003</keyValue>
|
||||
<versionsToKeep>34</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1003</key>
|
||||
</id>
|
||||
<keyValue>1003</keyValue>
|
||||
<versionsToKeep>38</versionsToKeep>
|
||||
<delta>=00-03:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1003</key>
|
||||
</id>
|
||||
<keyValue>1003</keyValue>
|
||||
<versionsToKeep>42</versionsToKeep>
|
||||
<delta>=00-06:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1003</key>
|
||||
</id>
|
||||
<keyValue>1003</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
<!-- End synoptic ship -->
|
||||
|
||||
<!-- Synoptic cman -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1004</key>
|
||||
</id>
|
||||
<keyValue>1004</keyValue>
|
||||
<versionsToKeep>34</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1004</key>
|
||||
</id>
|
||||
<keyValue>1004</keyValue>
|
||||
<versionsToKeep>38</versionsToKeep>
|
||||
<delta>=00-03:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1004</key>
|
||||
</id>
|
||||
<keyValue>1004</keyValue>
|
||||
<versionsToKeep>42</versionsToKeep>
|
||||
<delta>=00-06:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1004</key>
|
||||
</id>
|
||||
<keyValue>1004</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
<!-- End synoptic cman -->
|
||||
|
||||
<!-- Synoptic moored buoy -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1005</key>
|
||||
</id>
|
||||
<keyValue>1005</keyValue>
|
||||
<versionsToKeep>34</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1005</key>
|
||||
</id>
|
||||
<keyValue>1005</keyValue>
|
||||
<versionsToKeep>38</versionsToKeep>
|
||||
<delta>=00-03:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1005</key>
|
||||
</id>
|
||||
<keyValue>1005</keyValue>
|
||||
<versionsToKeep>42</versionsToKeep>
|
||||
<delta>=00-06:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1005</key>
|
||||
</id>
|
||||
<keyValue>1005</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
<!-- End synoptic moored buoy -->
|
||||
|
||||
<!-- Drifting Buoy -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1006</key>
|
||||
</id>
|
||||
<keyValue>1006</keyValue>
|
||||
<versionsToKeep>34</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1006</key>
|
||||
</id>
|
||||
<keyValue>1006</keyValue>
|
||||
<versionsToKeep>38</versionsToKeep>
|
||||
<delta>=00-03:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1006</key>
|
||||
</id>
|
||||
<keyValue>1006</keyValue>
|
||||
<versionsToKeep>42</versionsToKeep>
|
||||
<delta>=00-06:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1006</key>
|
||||
</id>
|
||||
<keyValue>1006</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
<!-- End drifting buoy -->
|
||||
|
||||
<!-- Synoptic marob -->
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1007</key>
|
||||
</id>
|
||||
<keyValue>1007</keyValue>
|
||||
<versionsToKeep>34</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1007</key>
|
||||
</id>
|
||||
<keyValue>1007</keyValue>
|
||||
<versionsToKeep>38</versionsToKeep>
|
||||
<delta>=00-03:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1007</key>
|
||||
</id>
|
||||
<keyValue>1007</keyValue>
|
||||
<versionsToKeep>42</versionsToKeep>
|
||||
<delta>=00-06:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sfcobs</pluginName>
|
||||
<key>reportType=1007</key>
|
||||
</id>
|
||||
<keyValue>1007</keyValue>
|
||||
<versionsToKeep>50</versionsToKeep>
|
||||
<delta>=01-00:00:00</delta>
|
||||
<round>+00-12:00:00</round>
|
||||
</rule>
|
||||
<!-- End synoptic marob -->
|
||||
</purgeRuleSet>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -51,31 +51,31 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery;
|
|||
*/
|
||||
public class TextDao extends DefaultPluginDao {
|
||||
|
||||
public TextDao(String pluginName) throws PluginException {
|
||||
super(pluginName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void purgeAllData() {
|
||||
logger.warn("purgeAllPluginData not implemented for text. No data will be purged.");
|
||||
}
|
||||
|
||||
protected void loadScripts() throws PluginException {
|
||||
// no op
|
||||
}
|
||||
public TextDao(String pluginName) throws PluginException {
|
||||
super(pluginName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void purgeExpiredData() throws PluginException {
|
||||
int deletedRecords = 0;
|
||||
public void purgeAllData() {
|
||||
logger.warn("purgeAllPluginData not implemented for text. No data will be purged.");
|
||||
}
|
||||
|
||||
// only do full purge every few hours since incremental purge runs every
|
||||
// minute
|
||||
if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) % 3 == 0) {
|
||||
TextDB.purgeStdTextProducts();
|
||||
}
|
||||
protected void loadScripts() throws PluginException {
|
||||
// no op
|
||||
}
|
||||
|
||||
PurgeLogger.logInfo("Purged " + deletedRecords + " items total.",
|
||||
"text");
|
||||
@Override
|
||||
public void purgeExpiredData() throws PluginException {
|
||||
int deletedRecords = 0;
|
||||
|
||||
// only do full purge every few hours since incremental purge runs every
|
||||
// minute
|
||||
if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) % 3 == 0) {
|
||||
TextDB.purgeStdTextProducts();
|
||||
}
|
||||
|
||||
PurgeLogger.logInfo("Purged " + deletedRecords + " items total.",
|
||||
"text");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
@ -95,14 +95,17 @@ public class TextDao extends DefaultPluginDao {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Date getMinInsertTime(String productKey)
|
||||
public Date getMinInsertTime(String[][] productKeys)
|
||||
throws DataAccessLayerException {
|
||||
StdTextProductDao dao = new StdTextProductDao(true);
|
||||
DatabaseQuery query = new DatabaseQuery(dao.getDaoClass());
|
||||
List<String[]> keys = this.getProductKeyParameters(productKey);
|
||||
for (String[] key : keys) {
|
||||
query.addQueryParam(key[0], key[1]);
|
||||
|
||||
if ((productKeys != null) && (productKeys.length > 0)) {
|
||||
for (String[] key : productKeys) {
|
||||
query.addQueryParam(key[0], key[1]);
|
||||
}
|
||||
}
|
||||
|
||||
query.addReturnedField("insertTime");
|
||||
query.addOrder("insertTime", true);
|
||||
query.setMaxResults(1);
|
||||
|
@ -113,5 +116,5 @@ public class TextDao extends DefaultPluginDao {
|
|||
} else {
|
||||
return result.get(0).getTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ public class FFMPRetentionTimeManager implements ILocalizationFileObserver {
|
|||
*/
|
||||
protected PurgeRuleSet configXml;
|
||||
|
||||
private ArrayList<MonitorConfigListener> listeners = new ArrayList<MonitorConfigListener>();
|
||||
private final ArrayList<MonitorConfigListener> listeners = new ArrayList<MonitorConfigListener>();
|
||||
|
||||
/** Singleton instance of this class */
|
||||
private static FFMPRetentionTimeManager instance = new FFMPRetentionTimeManager();
|
||||
|
@ -166,12 +166,12 @@ public class FFMPRetentionTimeManager implements ILocalizationFileObserver {
|
|||
* @return
|
||||
*/
|
||||
public long getRetentionTime() {
|
||||
PurgeRule rule = configXml.getDefaultRule();
|
||||
|
||||
for (PurgeRule rule : configXml.getRules()) {
|
||||
if (rule.getId().getPluginName().equals("ffmp")) {
|
||||
return rule.getPeriodInMillis();
|
||||
}
|
||||
if (rule != null) {
|
||||
return rule.getPeriodInMillis();
|
||||
}
|
||||
|
||||
return 0l;
|
||||
}
|
||||
|
||||
|
@ -181,12 +181,14 @@ public class FFMPRetentionTimeManager implements ILocalizationFileObserver {
|
|||
* @param time
|
||||
*/
|
||||
public void setRetentionTime(String time) {
|
||||
for (PurgeRule rule : configXml.getRules()) {
|
||||
if (rule.getId().getPluginName().equals("ffmp")) {
|
||||
rule.setPeriod(time);
|
||||
}
|
||||
PurgeRule rule = configXml.getDefaultRule();
|
||||
if (rule == null) {
|
||||
rule = new PurgeRule();
|
||||
configXml.setDefaultRule(rule);
|
||||
}
|
||||
|
||||
rule.setPeriod(time);
|
||||
|
||||
saveConfigXml();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,5 +2,4 @@ com.raytheon.uf.edex.database.cluster.ClusterTask
|
|||
com.raytheon.uf.edex.database.cluster.ClusterTaskPK
|
||||
com.raytheon.uf.edex.database.plugin.PluginVersion
|
||||
com.raytheon.uf.edex.database.purge.PurgeRule
|
||||
com.raytheon.uf.edex.database.purge.PurgeRulePK
|
||||
com.raytheon.uf.edex.database.purge.PurgeRuleSet
|
File diff suppressed because it is too large
Load diff
|
@ -54,7 +54,7 @@ import com.raytheon.uf.edex.core.dataplugin.PluginRegistry;
|
|||
public class PluginFactory {
|
||||
|
||||
/** The instance of the PluginFactory class */
|
||||
private static PluginFactory instance;
|
||||
private static final PluginFactory instance = new PluginFactory();
|
||||
|
||||
/**
|
||||
* Gets the singleton instance of the PluginFactory
|
||||
|
@ -64,10 +64,7 @@ public class PluginFactory {
|
|||
* If errors occur during instantiation of the singleton
|
||||
* instance
|
||||
*/
|
||||
public static synchronized PluginFactory getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new PluginFactory();
|
||||
}
|
||||
public static PluginFactory getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,19 +20,17 @@
|
|||
|
||||
package com.raytheon.uf.edex.database.purge;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlElements;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.persist.IPersistableDataObject;
|
||||
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
|
@ -55,11 +53,8 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
* @author bphillip
|
||||
* @version 1
|
||||
*/
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
@DynamicSerialize
|
||||
public class PurgeRule implements IPersistableDataObject, Serializable,
|
||||
ISerializableObject, Cloneable, Comparable<PurgeRule> {
|
||||
public class PurgeRule {
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(PurgeRule.class);
|
||||
|
||||
|
@ -81,12 +76,12 @@ public class PurgeRule implements IPersistableDataObject, Serializable,
|
|||
.compile(TIME_PATTERN_STRING);
|
||||
|
||||
/**
|
||||
* The primary key for this rule. The primary key consists of the plugin
|
||||
* name and a key used for purging
|
||||
* The keys this rule is to match. Should be equal to a value based on the
|
||||
* key fields of the record specified in the PurgeRuleSet. Special cases are
|
||||
* made for keyMatch of value default.
|
||||
*/
|
||||
@XmlElement
|
||||
@DynamicSerializeElement
|
||||
private PurgeRulePK id;
|
||||
@XmlElements({ @XmlElement(name = "keyValue", type = String.class) })
|
||||
private List<String> keyValues;
|
||||
|
||||
/** The number of versions to keep */
|
||||
@XmlElement
|
||||
|
@ -154,25 +149,21 @@ public class PurgeRule implements IPersistableDataObject, Serializable,
|
|||
}
|
||||
|
||||
/**
|
||||
* Creates a new PurgeRule with the given key
|
||||
* Gets the key values associated with the PurgeRuleSet keys.
|
||||
*
|
||||
* @param pk
|
||||
* The key
|
||||
* @return
|
||||
*/
|
||||
public PurgeRule(PurgeRulePK pk) {
|
||||
this.id = pk;
|
||||
public List<String> getKeyValues() {
|
||||
return keyValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new PurgeRule with the given key elements
|
||||
* Sets the key values associated with the PurgeRuleSet keys.
|
||||
*
|
||||
* @param pluginName
|
||||
* The plugin name to be used in the PurgeKeyPK
|
||||
* @param key
|
||||
* The key to be used in the PurgeKeyPK
|
||||
* @param keyValues
|
||||
*/
|
||||
public PurgeRule(String pluginName, String key) {
|
||||
this(new PurgeRulePK(pluginName, key));
|
||||
public void setKeyValues(List<String> keyValues) {
|
||||
this.keyValues = keyValues;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -341,11 +332,15 @@ public class PurgeRule implements IPersistableDataObject, Serializable,
|
|||
return new Date[] { refTime, timeToCompare };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("[");
|
||||
builder.append("Plugin: ").append(id.getPluginName()).append(" ");
|
||||
builder.append("Key: ").append(id.getKey()).append(" ");
|
||||
|
||||
for (String kv : keyValues) {
|
||||
builder.append("KeyValue: ").append(kv).append(" ");
|
||||
}
|
||||
|
||||
builder.append("VersionToKeep: ").append(this.versionsToKeep)
|
||||
.append(" ");
|
||||
builder.append("Period: ").append(this.period).append(" ");
|
||||
|
@ -361,48 +356,45 @@ public class PurgeRule implements IPersistableDataObject, Serializable,
|
|||
*
|
||||
* @return The human readable description of this rule
|
||||
*/
|
||||
public String getRuleDescription() {
|
||||
public String getRuleDescription(List<String> keys) {
|
||||
|
||||
if (this.ruleDescription == null) {
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
if (this.id.getKey().equals("custom")) {
|
||||
builder.append("The ")
|
||||
.append(this.id.getPluginName())
|
||||
.append(" plugin implements a customized purge routine.");
|
||||
if ((keys == null) || keys.isEmpty() || (keyValues == null)
|
||||
|| keyValues.isEmpty()) {
|
||||
builder.append("Default rule, ");
|
||||
} else {
|
||||
if (id.getKey().isEmpty()) {
|
||||
builder.append("For ").append(id.getPluginName())
|
||||
.append(" data, ");
|
||||
} else {
|
||||
builder.append("For ").append(id.getPluginName())
|
||||
.append(" data matching ").append(id.getKey())
|
||||
.append(", ");
|
||||
builder.append("For data matching ");
|
||||
Iterator<String> keyIter = keys.iterator();
|
||||
Iterator<String> valueIter = keyValues.iterator();
|
||||
while (keyIter.hasNext() && valueIter.hasNext()) {
|
||||
builder.append(keyIter.next()).append("=")
|
||||
.append(valueIter.next()).append(", ");
|
||||
}
|
||||
}
|
||||
|
||||
if (isDeltaSpecified()) {
|
||||
getVersionsClause(builder);
|
||||
builder.append("at ")
|
||||
.append(this.getTimeDescription(delta))
|
||||
.append("intervals ");
|
||||
getRoundClause(builder);
|
||||
getPeriodClause(builder);
|
||||
} else if (!isDeltaSpecified() && isVersionsToKeepSpecified()) {
|
||||
getVersionsClause(builder);
|
||||
getPeriodClause(builder);
|
||||
} else if (!isDeltaSpecified() && !isVersionsToKeepSpecified()
|
||||
&& isPeriodSpecified()) {
|
||||
getVersionsClause(builder);
|
||||
getPeriodClause(builder);
|
||||
} else {
|
||||
builder.append("keep all data.");
|
||||
}
|
||||
if (isModTimeToWaitSpecified()) {
|
||||
builder.append(
|
||||
" Do not purge if most recent version has been modified in the last ")
|
||||
.append(this.getModTimeToWaitDescription());
|
||||
}
|
||||
if (isDeltaSpecified()) {
|
||||
getVersionsClause(builder);
|
||||
builder.append("at ").append(this.getTimeDescription(delta))
|
||||
.append("intervals ");
|
||||
getRoundClause(builder);
|
||||
getPeriodClause(builder);
|
||||
} else if (!isDeltaSpecified() && isVersionsToKeepSpecified()) {
|
||||
getVersionsClause(builder);
|
||||
getPeriodClause(builder);
|
||||
} else if (!isDeltaSpecified() && !isVersionsToKeepSpecified()
|
||||
&& isPeriodSpecified()) {
|
||||
getVersionsClause(builder);
|
||||
getPeriodClause(builder);
|
||||
} else {
|
||||
builder.append("keep all data.");
|
||||
}
|
||||
if (isModTimeToWaitSpecified()) {
|
||||
builder.append(
|
||||
" Do not purge if most recent version has been modified in the last ")
|
||||
.append(this.getModTimeToWaitDescription());
|
||||
}
|
||||
ruleDescription = builder.toString();
|
||||
}
|
||||
|
@ -578,26 +570,6 @@ public class PurgeRule implements IPersistableDataObject, Serializable,
|
|||
return builder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getIdentifier() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
public PurgeRulePK getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id
|
||||
* the id to set
|
||||
*/
|
||||
public void setId(PurgeRulePK id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the versionsToKeep
|
||||
*/
|
||||
|
@ -687,40 +659,4 @@ public class PurgeRule implements IPersistableDataObject, Serializable,
|
|||
public void setLogOnly(boolean logOnly) {
|
||||
this.logOnly = logOnly;
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
PurgeRule rval = new PurgeRule();
|
||||
rval.id = (PurgeRulePK) id.clone();
|
||||
rval.delta = delta;
|
||||
rval.logOnly = logOnly;
|
||||
rval.period = period;
|
||||
rval.round = round;
|
||||
rval.versionsToKeep = versionsToKeep;
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
|
||||
if (!(obj instanceof PurgeRule)) {
|
||||
return false;
|
||||
}
|
||||
PurgeRule rhs = (PurgeRule) obj;
|
||||
return this.id.equals(rhs.getId()) && this.delta.equals(rhs.getDelta())
|
||||
&& this.logOnly == rhs.isLogOnly()
|
||||
&& this.period.equals(rhs.getPeriod())
|
||||
&& this.round.equals(rhs.getRound())
|
||||
&& this.versionsToKeep == rhs.getVersionsToKeep();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Comparable#compareTo(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public int compareTo(PurgeRule o) {
|
||||
return this.id.getPluginName().compareTo(o.getId().getPluginName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,209 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
|
||||
package com.raytheon.uf.edex.database.purge;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.apache.commons.lang.builder.HashCodeBuilder;
|
||||
|
||||
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||
|
||||
/**
|
||||
* This class defines the primary key for data purge rules stored in the
|
||||
* database. This key consists of a sequence number, the pluginName to which
|
||||
* this rule applies and the key to which this rule applies.
|
||||
* <p>
|
||||
* The sequence number is a number obtained from the hibernate_sequence on the
|
||||
* database. This number has no significance other than to distinguish two rules
|
||||
* which may have the the same pluginName and same key values. The pluginName is
|
||||
* the plugin to which this purge rule applies. The key servers as a filter for
|
||||
* purging. The key value corresponds to the productKey field in the plugin data
|
||||
* object.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 2/15/11 #2469 bphillip Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author bphillip
|
||||
* @version 1
|
||||
*/
|
||||
@Embeddable
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
@DynamicSerialize
|
||||
public class PurgeRulePK implements ISerializableObject, Serializable,
|
||||
Cloneable {
|
||||
|
||||
/** The serial number */
|
||||
private static final long serialVersionUID = 3400703274820497880L;
|
||||
|
||||
/**
|
||||
* A sequence number defined by the database for uniquely identifying this
|
||||
* rule
|
||||
*/
|
||||
@XmlElement
|
||||
@DynamicSerializeElement
|
||||
private Long id;
|
||||
|
||||
/** The plugin associated with this rule */
|
||||
@XmlElement
|
||||
@DynamicSerializeElement
|
||||
private String pluginName;
|
||||
|
||||
/** The key used by this rule for purging */
|
||||
@XmlElement
|
||||
@DynamicSerializeElement
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* Creates a new PurgeRulePK object
|
||||
*/
|
||||
public PurgeRulePK() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new plugin rule with the given plugin name and an empty key.
|
||||
*
|
||||
* @param pluginName
|
||||
* The plugin to which this purge rule applies
|
||||
*/
|
||||
public PurgeRulePK(String pluginName) {
|
||||
this.pluginName = pluginName;
|
||||
this.key = "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new plugin rule with the given plugin name and key
|
||||
*
|
||||
* @param pluginName
|
||||
* The plugin to which this purge rule applies
|
||||
* @param key
|
||||
* The key to use when applying this rule
|
||||
*/
|
||||
public PurgeRulePK(String pluginName, String key) {
|
||||
this(pluginName);
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new plugin rule with the given plugin name key, and id value
|
||||
*
|
||||
* @param pluginName
|
||||
* The plugin to which this purge rule applies
|
||||
* @param key
|
||||
* The key to use when applying this rule
|
||||
* @param id
|
||||
* An identifying number
|
||||
*/
|
||||
public PurgeRulePK(String pluginName, String key, long id) {
|
||||
this(pluginName, key);
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Plugin:" + pluginName + " Key:" + key;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
HashCodeBuilder builder = new HashCodeBuilder();
|
||||
builder.append(pluginName);
|
||||
builder.append(key);
|
||||
return builder.toHashCode();
|
||||
}
|
||||
|
||||
public boolean equals(Object rval) {
|
||||
if (!(rval instanceof PurgeRulePK)) {
|
||||
return false;
|
||||
}
|
||||
PurgeRulePK rhs = (PurgeRulePK) rval;
|
||||
|
||||
return this.pluginName.equals(rhs.getPluginName())
|
||||
&& this.key.equals(rhs.getKey());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pluginName
|
||||
*/
|
||||
public String getPluginName() {
|
||||
return pluginName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pluginName
|
||||
* the pluginName to set
|
||||
*/
|
||||
public void setPluginName(String pluginName) {
|
||||
this.pluginName = pluginName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the key
|
||||
*/
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param key
|
||||
* the key to set
|
||||
*/
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
PurgeRulePK rval = new PurgeRulePK(this.pluginName, this.key);
|
||||
rval.setId(this.id);
|
||||
return rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the id
|
||||
*/
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id
|
||||
* the id to set
|
||||
*/
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
}
|
|
@ -21,7 +21,7 @@
|
|||
package com.raytheon.uf.edex.database.purge;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
|
@ -33,8 +33,8 @@ import com.raytheon.uf.common.serialization.ISerializableObject;
|
|||
|
||||
/**
|
||||
* A container class used for unmarshalling purge rules. The purge rules are
|
||||
* stored in xml files in the edex_static/base/purge directory. The rules are
|
||||
* unmarshalled into this object before being persisted to the database.
|
||||
* stored in xml files in the common_static/base/purge directory. The rules are
|
||||
* then organized into a tree for easy look up of closest matching rule.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
|
@ -52,14 +52,35 @@ import com.raytheon.uf.common.serialization.ISerializableObject;
|
|||
@XmlRootElement(name = "purgeRuleSet")
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
public class PurgeRuleSet implements ISerializableObject {
|
||||
|
||||
@XmlElements({ @XmlElement(name = "key", type = String.class) })
|
||||
private List<String> keys;
|
||||
|
||||
@XmlElement
|
||||
private PurgeRule defaultRule;
|
||||
|
||||
/**
|
||||
* List of purge rules for/from the XML.
|
||||
*/
|
||||
@XmlElements({ @XmlElement(name = "rule", type = PurgeRule.class) })
|
||||
private ArrayList<PurgeRule> rules;
|
||||
|
||||
private PurgeRuleTree purgeTree = null;
|
||||
|
||||
public PurgeRuleSet() {
|
||||
rules = new ArrayList<PurgeRule>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default rule.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public PurgeRule getDefaultRule() {
|
||||
return defaultRule;
|
||||
}
|
||||
|
||||
public void setDefaultRule(PurgeRule defaultRule) {
|
||||
this.defaultRule = defaultRule;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,32 +92,36 @@ public class PurgeRuleSet implements ISerializableObject {
|
|||
return rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the list of purge rules.
|
||||
*
|
||||
* @param models
|
||||
*/
|
||||
public void setModels(ArrayList<PurgeRule> rules) {
|
||||
public void setRules(ArrayList<PurgeRule> rules) {
|
||||
this.rules = rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a purge rule to this set
|
||||
* Returns the list of purge keys.
|
||||
*
|
||||
* @param rule
|
||||
* The rule to add
|
||||
* @return
|
||||
*/
|
||||
public void addRule(PurgeRule rule) {
|
||||
this.rules.add(rule);
|
||||
public List<String> getKeys() {
|
||||
return keys;
|
||||
}
|
||||
|
||||
public void setKeys(List<String> keys) {
|
||||
this.keys = keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds purge rules to this set
|
||||
* Returns the purge rule associated with the passed key values.
|
||||
*
|
||||
* @param rules
|
||||
* The rules to add
|
||||
* @param keyValues
|
||||
* The values associated with the plugin purge keys to check for
|
||||
* a purge rule for.
|
||||
* @return
|
||||
*/
|
||||
public void addRules(Collection<PurgeRule> rules) {
|
||||
this.rules.addAll(rules);
|
||||
public PurgeRule getRuleForKeys(String[] keyValues) {
|
||||
if (purgeTree == null) {
|
||||
purgeTree = new PurgeRuleTree(this);
|
||||
}
|
||||
|
||||
return purgeTree.getRuleForKeys(keyValues);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
*/
|
||||
package com.raytheon.uf.edex.database.purge;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Tree representation of the purge rules. Each Node can contain a PurgeRule as
|
||||
* well as a collection of other Nodes. Each Node should be a specific purge key
|
||||
* value based on the PurgeRuleSet keys. A given set of key/value pairs will
|
||||
* return the most significant purge key that matches.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Oct 29, 2012 rjpeter Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author rjpeter
|
||||
* @version 1.0
|
||||
*/
|
||||
public class PurgeRuleTree {
|
||||
private final PurgeNode root;
|
||||
|
||||
public PurgeRuleTree(PurgeRuleSet ruleSet) {
|
||||
root = new PurgeNode();
|
||||
root.setRule(ruleSet.getDefaultRule());
|
||||
ArrayList<PurgeRule> rules = ruleSet.getRules();
|
||||
if (rules != null) {
|
||||
for (PurgeRule rule : rules) {
|
||||
PurgeNode curNode = root;
|
||||
List<String> values = rule.getKeyValues();
|
||||
if (values != null) {
|
||||
// descend purge tree
|
||||
for (String val : values) {
|
||||
Map<String, PurgeNode> childNodes = curNode
|
||||
.getChildNodes();
|
||||
curNode = childNodes.get(val);
|
||||
if (curNode == null) {
|
||||
curNode = new PurgeNode();
|
||||
childNodes.put(val, curNode);
|
||||
}
|
||||
}
|
||||
|
||||
// set the rule on the leaf node defined by key values
|
||||
curNode.setRule(rule);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the purge rule associated with the given key value list.
|
||||
*
|
||||
* @param keyValues
|
||||
* @return
|
||||
*/
|
||||
public PurgeRule getRuleForKeys(String[] keyValues) {
|
||||
// default rule is initial closest rule
|
||||
PurgeRule closestRule = root.getRule();
|
||||
PurgeNode currentNode = root;
|
||||
|
||||
if ((keyValues != null) && (keyValues.length > 0)) {
|
||||
// iterate over key values, descending tree as far as possible,
|
||||
// keeping track of closest matching rule.
|
||||
for (String value : keyValues) {
|
||||
currentNode = currentNode.getChildNode(value);
|
||||
|
||||
// descend node
|
||||
if (currentNode != null) {
|
||||
// check node for rule
|
||||
PurgeRule rule = currentNode.getRule();
|
||||
|
||||
if (rule != null) {
|
||||
// current closest rule
|
||||
closestRule = rule;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return closestRule;
|
||||
}
|
||||
|
||||
private class PurgeNode {
|
||||
private PurgeRule rule;
|
||||
|
||||
private final Map<String, PurgeNode> childNodes = new HashMap<String, PurgeNode>();
|
||||
|
||||
public void setRule(PurgeRule rule) {
|
||||
this.rule = rule;
|
||||
}
|
||||
|
||||
public PurgeRule getRule() {
|
||||
return rule;
|
||||
}
|
||||
|
||||
public Map<String, PurgeNode> getChildNodes() {
|
||||
return childNodes;
|
||||
}
|
||||
|
||||
public PurgeNode getChildNode(String keyValue) {
|
||||
return childNodes.get(keyValue);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>default</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>01-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -111,8 +111,8 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
DataArchiveConfig conf) {
|
||||
PluginProperties props = PluginRegistry.getInstance()
|
||||
.getRegisteredObject(pluginName);
|
||||
if (props != null && props.getRecord() != null
|
||||
&& props.getDao() != null) {
|
||||
if ((props != null) && (props.getRecord() != null)
|
||||
&& (props.getDao() != null)) {
|
||||
Class<?> recordClass = props.getRecord();
|
||||
if (recordClass != null) {
|
||||
try {
|
||||
|
@ -174,19 +174,19 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
archiveFormatter = pluginArchiveFormatters.get("default");
|
||||
}
|
||||
|
||||
while (startTime != null && endTime != null) {
|
||||
while ((startTime != null) && (endTime != null)) {
|
||||
Map<String, List<PersistableDataObject>> pdosToSave = archiveFormatter
|
||||
.getPdosByFile(pluginName, dao, pdoMap, startTime,
|
||||
endTime);
|
||||
|
||||
if (pdosToSave != null && !pdosToSave.isEmpty()) {
|
||||
if ((pdosToSave != null) && !pdosToSave.isEmpty()) {
|
||||
recordCount += savePdoMap(pluginName, archivePath,
|
||||
pdosToSave, conf.getCompressionEnabled());
|
||||
for (Map.Entry<String, List<PersistableDataObject>> entry : pdosToSave
|
||||
.entrySet()) {
|
||||
List<PersistableDataObject> pdoList = entry.getValue();
|
||||
if (pdoList != null && !pdoList.isEmpty()
|
||||
&& pdoList.get(0) instanceof IPersistable) {
|
||||
if ((pdoList != null) && !pdoList.isEmpty()
|
||||
&& (pdoList.get(0) instanceof IPersistable)) {
|
||||
datastoreFilesToArchive.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
|
@ -196,7 +196,7 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
endTime = determineEndTime(startTime, runTime);
|
||||
}
|
||||
|
||||
if (pdoMap != null && !pdoMap.isEmpty()) {
|
||||
if ((pdoMap != null) && !pdoMap.isEmpty()) {
|
||||
recordCount += savePdoMap(pluginName, archivePath, pdoMap,
|
||||
conf.getCompressionEnabled());
|
||||
// don't forget to archive the HDF5 for the records that weren't
|
||||
|
@ -204,8 +204,8 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
for (Map.Entry<String, List<PersistableDataObject>> entry : pdoMap
|
||||
.entrySet()) {
|
||||
List<PersistableDataObject> pdoList = entry.getValue();
|
||||
if (pdoList != null && !pdoList.isEmpty()
|
||||
&& pdoList.get(0) instanceof IPersistable) {
|
||||
if ((pdoList != null) && !pdoList.isEmpty()
|
||||
&& (pdoList.get(0) instanceof IPersistable)) {
|
||||
datastoreFilesToArchive.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
PluginProperties props = PluginRegistry.getInstance()
|
||||
.getRegisteredObject(pluginName);
|
||||
|
||||
if (props != null && props.getCompression() != null) {
|
||||
if ((props != null) && (props.getCompression() != null)) {
|
||||
if (compRequired.equals(Compression.valueOf(props
|
||||
.getCompression()))) {
|
||||
// if plugin is already compressed to the correct level,
|
||||
|
@ -378,7 +378,7 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
Calendar startTime = null;
|
||||
|
||||
// get previous run time
|
||||
if (extraInfo != null && !extraInfo.isEmpty()) {
|
||||
if ((extraInfo != null) && !extraInfo.isEmpty()) {
|
||||
try {
|
||||
Date prevDate = DATE_FORMAT.parse(extraInfo);
|
||||
|
||||
|
@ -404,7 +404,7 @@ public class DatabaseArchiver implements IPluginArchiver {
|
|||
}
|
||||
} else {
|
||||
// startTime has never been set lookup earliest start time
|
||||
Date minInsert = dao.getMinInsertTime("");
|
||||
Date minInsert = dao.getMinInsertTime(null);
|
||||
if (minInsert != null) {
|
||||
startTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
|
||||
startTime.setTimeInMillis(minInsert.getTime());
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>acars</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>acarssounding</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrascat</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrhdw</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>33</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrmthdw</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>33</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrncwf</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>288</versionsToKeep>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrquikscat</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,31 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<purgeRuleSet>
|
||||
<key>wxLayer</key>
|
||||
<defaultRule>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</defaultRule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrsigwx</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<keyValue>SWM</keyValue>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrsigwx</pluginName>
|
||||
<key>wxLayer=SWM</key>
|
||||
</id>
|
||||
<keyValue>SWH</keyValue>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrsigwx</pluginName>
|
||||
<key>wxLayer=SWH</key>
|
||||
</id>
|
||||
<versionsToKeep>12</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
|
||||
</purgeRuleSet>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>bufrssmi</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>33</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>cwa</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>01-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>cwat</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>01-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -4,12 +4,8 @@ period tag is where you change the time:
|
|||
ex. 01-00:00:00 is one day or 24 hours of retention
|
||||
ex. 00-12:00:00 is 12 hours
|
||||
-->
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ffmp</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>01-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ldadmesonet</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>lsr</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>14-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -31,6 +31,7 @@ import com.raytheon.uf.edex.database.DataAccessLayerException;
|
|||
import com.raytheon.uf.edex.database.plugin.PluginDao;
|
||||
import com.raytheon.uf.edex.database.plugin.PluginVersionDao;
|
||||
import com.raytheon.uf.edex.database.purge.PurgeRule;
|
||||
import com.raytheon.uf.edex.database.purge.PurgeRuleSet;
|
||||
|
||||
/**
|
||||
* This class is used to route messages intended for the purge service to the
|
||||
|
@ -70,20 +71,30 @@ public class PurgeRequest {
|
|||
List<String> retVal = new ArrayList<String>();
|
||||
List<String> plugins = getAvailablePlugins();
|
||||
|
||||
for (int i = 0; i < plugins.size(); i++) {
|
||||
List<PurgeRule> rules = PluginDao.getPurgeRulesForPlugin(plugins
|
||||
.get(i));
|
||||
if (rules.isEmpty()) {
|
||||
retVal.add(plugins.get(i));
|
||||
for (String plugin : plugins) {
|
||||
PurgeRuleSet rules = PluginDao.getPurgeRulesForPlugin(plugin);
|
||||
|
||||
PurgeRule defRule = rules.getDefaultRule();
|
||||
List<PurgeRule> ruleList = rules.getRules();
|
||||
List<String> purgeKeys = rules.getKeys();
|
||||
if ((defRule == null)
|
||||
&& ((ruleList == null) || ruleList.isEmpty())) {
|
||||
retVal.add(plugin);
|
||||
retVal.add("No Rules Specified. Using default.");
|
||||
}else{
|
||||
for (PurgeRule rule : rules) {
|
||||
retVal.add(rule.getId().getPluginName());
|
||||
retVal.add(rule.getRuleDescription());
|
||||
} else {
|
||||
if (defRule != null) {
|
||||
retVal.add(plugin);
|
||||
retVal.add(defRule.getRuleDescription(purgeKeys));
|
||||
}
|
||||
if (ruleList != null) {
|
||||
for (PurgeRule rule : ruleList) {
|
||||
retVal.add(plugin);
|
||||
retVal.add(rule.getRuleDescription(purgeKeys));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return retVal.toArray(new String[] {});
|
||||
return retVal.toArray(new String[retVal.size()]);
|
||||
} catch (Exception e) {
|
||||
throw new EdexException("Error getting plugin purge info", e);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>aggregate</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>30-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>stats</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>00-24:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>airmet</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>atcf</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>aww</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>convsigmet</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ffg</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>idft</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>intlsigmet</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>mcidas</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>mosaic</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncairep</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncccfp</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncgrib</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncpafm</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncpirep</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncscat</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncscd</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
<delta>=00-01:00:00</delta>
|
||||
<round>00-01:00:00</round>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>nctaf</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ncuair</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>nonconvsigmet</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sgwh</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>sgwhv</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>ssha</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>stormtrack</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>99-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>tcm</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>wcp</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<period>02-00:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,164 +1,118 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<key>creatingEntity</key>
|
||||
<key>physicalElement</key>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
</rule>
|
||||
</defaultRule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager 3.9 micron IR</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager 3 Channel Diff</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager 3.9 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager 3 Channel Diff</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=MTSAT;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=MTSAT;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>MTSAT</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=MTSAT;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<keyValue>MTSAT</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>MTSAT</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager 3.9 micron IR</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager 3.9 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager 6.7-6.5 micron IR (WV)</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=DMSP;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager 6.7-6.5 micron IR (WV)</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=DMSP;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>DMSP</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>DMSP</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager 3 Channel Diff</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager 3 Channel Diff</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager 3 Channel Diff</key>
|
||||
</id>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager 3 Channel Diff</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,164 +1,118 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet xmlns:ns2="group">
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>default</key>
|
||||
</id>
|
||||
<purgeRuleSet>
|
||||
<key>creatingEntity</key>
|
||||
<key>physicalElement</key>
|
||||
<defaultRule>
|
||||
<versionsToKeep>24</versionsToKeep>
|
||||
</rule>
|
||||
</defaultRule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager 3.9 micron IR</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager 3 Channel Diff</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager 3.9 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=HRPT;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager 3 Channel Diff</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=MTSAT;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>HRPT</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=MTSAT;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>MTSAT</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=MTSAT;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<keyValue>MTSAT</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>MTSAT</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager 3.9 micron IR</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager 3.9 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=GVAR;physicalElement=Imager 6.7-6.5 micron IR (WV)</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=DMSP;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>GVAR</keyValue>
|
||||
<keyValue>Imager 6.7-6.5 micron IR (WV)</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=DMSP;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>DMSP</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>DMSP</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager 3 Channel Diff</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY1C;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager 3 Channel Diff</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager 11 micron IR</key>
|
||||
</id>
|
||||
<keyValue>FY1C</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager Channel 4-5 IR</key>
|
||||
</id>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager 11 micron IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager 3 Channel Diff</key>
|
||||
</id>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager Channel 4-5 IR</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<id>
|
||||
<pluginName>satellite</pluginName>
|
||||
<key>creatingEntity=FY3C;physicalElement=Imager Visible</key>
|
||||
</id>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager 3 Channel Diff</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule>
|
||||
<keyValue>FY3C</keyValue>
|
||||
<keyValue>Imager Visible</keyValue>
|
||||
<versionsToKeep>48</versionsToKeep>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
|
|
Loading…
Add table
Reference in a new issue