--- /dev/null
+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