MC-TSM adatok osszevetese
authorelgekko <vasary@elgekko.net>
Thu, 9 Mar 2023 09:28:07 +0000 (10:28 +0100)
committerelgekko <vasary@elgekko.net>
Thu, 9 Mar 2023 09:28:07 +0000 (10:28 +0100)
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportSyncMCToTSM.java [new file with mode: 0644]

diff --git a/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportSyncMCToTSM.java b/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportSyncMCToTSM.java
new file mode 100644 (file)
index 0000000..1c332cf
--- /dev/null
@@ -0,0 +1,125 @@
+package hu.user.mediacube.executors.tests;\r
+\r
+import java.nio.file.Files;\r
+import java.nio.file.Paths;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.LinkedHashSet;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.junit.AfterClass;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+\r
+import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.MediaFile;\r
+import user.jobengine.db.MediaFileDAO;\r
+\r
+public class SupportSyncMCToTSM {\r
+       protected static IItemManager manager = null;\r
+\r
+       /*\r
+        dsmadmc -id=support -password=userkft1q2 -TABdelimited -dataonly=yes "select LL_NAME from backups where FILESPACE_NAME = '/JOBENGINE'" >htv-tsm2.txt\r
+        SELECT mf.relativepath, m.archived FROM mediafile mf, media m WHERE m.id=mf.mediaid and mf.storeid=1\r
+        */\r
+\r
+       @BeforeClass\r
+       static public void setUpConnection() {\r
+               manager = new ItemManager();\r
+               manager.connect();\r
+       }\r
+\r
+       @AfterClass\r
+       static public void tearDownConnection() {\r
+               manager.disconnect();\r
+       }\r
+\r
+       MediaFile getMediaFile(String fileName) {\r
+               MediaFile result[] = { null };\r
+               MediaFileDAO dao = (MediaFileDAO) manager.getBaseDAO(MediaFile.class);\r
+               manager.executeQuery("SELECT id FROM MEDIAFILE WHERE relativepath=?", rs -> {\r
+                       long id = rs.getLong("id");\r
+                       result[0] = (MediaFile) dao.get(id);\r
+                       return false;\r
+               }, s -> {\r
+                       s.setString(1, fileName);\r
+               });\r
+\r
+               return result[0];\r
+       }\r
+\r
+       @Test\r
+       public void process() throws Exception {\r
+               String tsmInput = "/opt/HTV/htv-tsm-2301.txt";\r
+               String mcInput = "/opt/HTV/htv-mc-2301.txt";\r
+\r
+               List<String> lines = Files.readAllLines(Paths.get(tsmInput));\r
+\r
+               Set<String> tsm = new LinkedHashSet<>();\r
+               lines.forEach(x -> {\r
+                       if (tsm.contains(x)) {\r
+                               // System.out.println("Already added " + x);\r
+                       } else {\r
+                               tsm.add(x);\r
+                       }\r
+\r
+               });\r
+\r
+               // Set<String> conflict = new HashSet<>(Files.readAllLines(Paths.get("/opt/HTV/htv-conflict-2212.txt")));\r
+\r
+               System.out.println("TSM lines " + tsm.size());\r
+               Set<String> mc = new LinkedHashSet<>(Files.readAllLines(Paths.get(mcInput)));\r
+               Map<String, String> mcMap = new HashMap<>();\r
+               mc.forEach(x -> {\r
+                       String[] tokens = x.split("\t");\r
+                       if (tokens.length != 2) {\r
+                               System.out.println("Wrong line:" + x);\r
+                       } else {\r
+                               mcMap.put(tokens[0].replace("\"", ""), tokens[1].replace("'", ""));\r
+                       }\r
+               });\r
+\r
+               int errorCount = 0;\r
+               Set<String> mcIds = mcMap.keySet();\r
+               StringBuilder sb = new StringBuilder();\r
+               List<String> mfIDs = new ArrayList<>();\r
+               for (String mcfile : mcIds) {\r
+                       boolean tsmContains = tsm.contains(mcfile);\r
+                       if (!tsmContains) {\r
+//                             if (conflict.contains(mcfile))\r
+//                                     continue;\r
+                               errorCount++;\r
+                               manager.executeQuery("SELECT itemtitle, mediatitle, mediafileid FROM VW_ITEMS_WITH_PATH WHERE mediarelativepath=?",\r
+//                                             "SELECT itemhouseid, itemtitle, mediahouseid, mediatitle, mediaitemtypename, mediadescription, mediafileid FROM VW_ITEMS_WITH_PATH WHERE mediarelativepath=?",\r
+                                               rs -> {\r
+\r
+//                                                     String desc = rs.getString("mediadescription").replace("\r\n", "");\r
+//                                                     if (desc.length() > 1000)\r
+//                                                             desc = desc.substring(0, 1000);\r
+\r
+                                                       System.out.println(mcfile + "\t" + mcMap.get(mcfile) + "\t" + rs.getString("itemtitle") + "\t" + rs.getString("mediatitle"));\r
+                                                       // MediaFile mediaFile = getMediaFile(mcfile);\r
+\r
+                                                       sb.append(mcfile + "\t" + mcMap.get(mcfile) + "\t" + rs.getString("itemtitle") + "\t" + rs.getString("mediatitle") + "\r\n");\r
+//                                                     sb.append(mcfile + "\t" + mcMap.get(mcfile) + "\t" + rs.getString("itemhouseid") + "\t" + rs.getString("itemtitle") + "\t"\r
+//                                                                     + rs.getString("mediahouseid") + "\t" + rs.getString("mediatitle") + "\t" + rs.getString("mediaitemtypename") + "\t" + desc\r
+//                                                                     + "\r\n");\r
+\r
+                                                       mfIDs.add(rs.getString("mediafileid"));\r
+                                                       return true;\r
+                                               }, s -> {\r
+                                                       s.setString(1, mcfile);\r
+                                               });\r
+                       }\r
+               }\r
+               System.out.println("All missing: " + errorCount);\r
+\r
+               String joinedString = String.join(",", mfIDs);\r
+               System.out.println(joinedString);\r
+               Files.write(Paths.get("/opt/HTV/htv-missing.txt"), sb.toString().getBytes());\r
+       }\r
+\r
+}\r