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