From e578faa94385b0cf8d4d5814e120e301382150cf Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Mon, 2 Oct 2017 08:07:28 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30492 --- .../Resources/configuration-nexio.json | 4 +- .../Maestro/Resources/configuration-unc.json | 18 +-- .../run-mediacube-server-bsh.launch | 2 +- .../run-mediacube-server-localhost.launch | 2 +- .../server/steps/ArchiveItemSubmitStep.java | 14 +-- .../server/steps/ArchiveListBuilderStep.java | 6 +- .../server/steps/DeleteMaterialsStep.java | 48 ++++++++ .../steps/NexioDeleteMaterialsStep.java | 33 ++++++ .../src/user/commons/RemoteFile.java | 23 ++-- .../remotestore/FtpDirectoryLister.java | 6 + .../commons/remotestore/IDirectoryLister.java | 2 + .../remotestore/LocalDirectoryLister.java | 6 + .../remotestore/SambaDirectoryLister.java | 14 +++ .../user/commons/remotestore/TSMLister.java | 6 + .../pages/search_items.zul | 108 +++++++++--------- .../osgi/server/ConsoleCommandProvider.java | 60 +++++----- .../user/jobengine/zk/model/SearchModel.java | 7 +- 17 files changed, 238 insertions(+), 121 deletions(-) create mode 100644 server/user.jobengine.executors/src/user/jobengine/server/steps/DeleteMaterialsStep.java create mode 100644 server/user.jobengine.executors/src/user/jobengine/server/steps/NexioDeleteMaterialsStep.java diff --git a/client/Maestro/Resources/configuration-nexio.json b/client/Maestro/Resources/configuration-nexio.json index 1aa54771..fc4a75a7 100644 --- a/client/Maestro/Resources/configuration-nexio.json +++ b/client/Maestro/Resources/configuration-nexio.json @@ -1,6 +1,6 @@ { "title": "PLAYOUT", - "active": true, + "active": false, "startInTray": false, "enableNameOverride": false, "player": { @@ -32,7 +32,7 @@ { "$type": "TrafficMetadata", "server": { - "address": "Data Source=folkloredb.hu\\sql08,33860;Initial Catalog=CLArchiveTF_0;Persist Security Info=True;", + "address": "Data Source=10.10.1.45\\sql16;Initial Catalog=PA_Echo;Persist Security Info=True;", "userName": "MAM", "password": "Echotv.hu", "timeout": 5 diff --git a/client/Maestro/Resources/configuration-unc.json b/client/Maestro/Resources/configuration-unc.json index 36d46875..921c004e 100644 --- a/client/Maestro/Resources/configuration-unc.json +++ b/client/Maestro/Resources/configuration-unc.json @@ -11,12 +11,12 @@ "source": { "$type": "UNCSource", "local": { - "address": "file://localhost/watch" + "address": "file://10.10.1.100/BRAAVOS/_TEST_/_ECHO/hirado/170901" }, "remote": { - "address": "ftp://localhost:21/watch", - "userName": "dani", - "password": "dani" + "address": "ftp://10.10.1.100:21/_TEST_/_ECHO/hirado/170901", + "userName": "mediacube", + "password": "Broadca5T" } }, "metadatas": [ @@ -41,9 +41,9 @@ { "$type": "MediaCubeMetadata", "server": { - "address": "http://localhost:8080/services/rest/jobengine/", - "userName": "dani", - "password": "dani" + "address": "http://10.10.1.28:8080/services/rest/jobengine/", + "userName": "-", + "password": "-" } } ], @@ -54,7 +54,7 @@ "outputFormat": "{0}-{1}", "killDateDays": 1, "remote": { - "address": "ftp://localhost:21/out", + "address": "ftp://10.10.1.100:21/ARCHIVE", "userName": "dani", "password": "dani" } @@ -69,7 +69,7 @@ "createSubFolder": true, "useMetadata": true, "remote": { - "address": "ftp://localhost:21/out", + "address": "ftp://10.10.1.100:21/READY", "userName": "dani", "password": "dani" } diff --git a/server/-configuration/run-mediacube-server-bsh.launch b/server/-configuration/run-mediacube-server-bsh.launch index 1dec536d..0cef7afc 100644 --- a/server/-configuration/run-mediacube-server-bsh.launch +++ b/server/-configuration/run-mediacube-server-bsh.launch @@ -19,7 +19,7 @@ - + diff --git a/server/-configuration/run-mediacube-server-localhost.launch b/server/-configuration/run-mediacube-server-localhost.launch index f4c11208..232365c4 100644 --- a/server/-configuration/run-mediacube-server-localhost.launch +++ b/server/-configuration/run-mediacube-server-localhost.launch @@ -19,7 +19,7 @@ - + diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveItemSubmitStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveItemSubmitStep.java index afb60e80..bbcaaf34 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveItemSubmitStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveItemSubmitStep.java @@ -1,7 +1,5 @@ package user.jobengine.server.steps; -import java.io.File; -import java.nio.file.Path; import java.util.ArrayList; import org.apache.logging.log4j.LogManager; @@ -32,22 +30,14 @@ public class ArchiveItemSubmitStep extends JobStep { ListUtils.asMap(ARCHIVE_ITEM, archiveItem, GLOBAL_INPUT_FOLDER, globalInputFolder)); } catch (Exception e) { if (archiveItem != null) - removeCatchedFile(archiveItem.getCatchedFile()); + archiveItem.removeCatchedFile(); throw e; } } } catch (Exception e) { logger.catching(e); } - return new Object[] {}; - } - - private void removeCatchedFile(Path catchedFilePath) { - if (catchedFilePath != null) { - File catchedFile = catchedFilePath.toFile(); - if (catchedFile.exists()) - catchedFile.delete(); - } + return null; } } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java index 4df08f34..950d0230 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java @@ -27,9 +27,9 @@ import user.jobengine.server.IJobRuntime; */ public class ArchiveListBuilderStep extends JobStep { private static final Logger logger = LogManager.getLogger(); - private static final String UTF8 = "utf-8"; + // private static final String UTF8 = "utf-8"; private static final String CATCHED = "catched"; - private static final String STOREFOLDER = ".STORE"; + private static final String STATUSFOLDER = ".STATUS"; private static final String MEDIAEXT = ".mxf"; private static final String JSONEXT = ".json"; private static final String CATCHEDEXT = ".catched"; @@ -109,7 +109,7 @@ public class ArchiveListBuilderStep extends JobStep { return; } - Path dotStorePath = Paths.get(mediaFilePath.getParent().toString(), STOREFOLDER); + Path dotStorePath = Paths.get(mediaFilePath.getParent().toString(), STATUSFOLDER); Path catchedFilePath = Paths.get(dotStorePath.toString(), mediaFile.getName() + CATCHEDEXT); File catchedFile = catchedFilePath.toFile(); if (catchedFile.exists()) { diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/DeleteMaterialsStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/DeleteMaterialsStep.java new file mode 100644 index 00000000..78385b90 --- /dev/null +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/DeleteMaterialsStep.java @@ -0,0 +1,48 @@ +package user.jobengine.server.steps; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import user.commons.RemoteFile; +import user.commons.StoreUri; +import user.commons.remotestore.RemoteStoreProtocol; +import user.jobengine.db.IItemManager; +import user.jobengine.server.IJobEngine; +import user.jobengine.server.IJobRuntime; + +public class DeleteMaterialsStep extends JobStep { + private static final Logger logger = LogManager.getLogger(); + private static final String UTF8 = "utf-8"; + private static final String STATUSFOLDER = ".STATUS"; + private static final String MEDIAEXT = ".mxf"; + private static final String KILLDATE = ".catched"; + + @StepEntry + public Object[] execute(String inputFolder, String userName, String password, IJobEngine jobEngine, IJobRuntime jobRuntime) { + //"\\\\10.10.1.100\\BRAAVOS\\ARCHIVE" + //"mediacube" + //"Broadca5T" + IItemManager manager = jobEngine.getItemManager(); + StoreUri sourceUri = manager.createStoreUri(RemoteStoreProtocol.SMB, inputFolder); + sourceUri.setUserName(userName); + sourceUri.setPassword(password); + try { + sourceUri.getRemoteFiles(f -> processPathItem(f)); + } catch (Exception e) { + logger.error("", e); + } finally { + } + return null; + } + + private boolean processPathItem(RemoteFile remoteFile) { + //KILLDATE + //{0}.{1}.KILLDATE + + //MODIFIED + + //NAME PATTERN + + return true; + } +} diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/NexioDeleteMaterialsStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/NexioDeleteMaterialsStep.java new file mode 100644 index 00000000..007aa43c --- /dev/null +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/NexioDeleteMaterialsStep.java @@ -0,0 +1,33 @@ +package user.jobengine.server.steps; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import user.commons.RemoteFile; +import user.jobengine.server.IJobEngine; +import user.jobengine.server.IJobRuntime; + +public class NexioDeleteMaterialsStep extends JobStep { + private static final Logger logger = LogManager.getLogger(); + + @StepEntry + public Object[] execute(String inputFolder, IJobEngine jobEngine, IJobRuntime jobRuntime) { + + try { + } catch (Exception e) { + logger.error("", e); + } finally { + } + return null; + } + + private boolean processPathItem(RemoteFile remoteFile) { + //MODIFIED + + //NAME PATTERN + + //AGENCY + + return true; + } +} diff --git a/server/user.jobengine.osgi.commons/src/user/commons/RemoteFile.java b/server/user.jobengine.osgi.commons/src/user/commons/RemoteFile.java index 32cf46a4..fd810710 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/RemoteFile.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/RemoteFile.java @@ -12,12 +12,22 @@ public class RemoteFile extends EntityBase implements Serializable { private Timestamp modify; private long size; private boolean isFolder = false;; + private Object sourceObject = null; @XmlJavaTypeAdapter(TimestampAdapter.class) public Timestamp getCreated() { return created; } + public String getExtension() { + String result = null; + if (name != null) { + if (name.contains(".")) + result = name.substring(name.lastIndexOf(".") + 1); + } + return result; + } + public boolean getIsFolder() { return isFolder; } @@ -35,6 +45,10 @@ public class RemoteFile extends EntityBase implements Serializable { return size; } + public Object getSourceObject() { + return sourceObject; + } + public void setCreated(Timestamp created) { this.created = created; } @@ -55,12 +69,7 @@ public class RemoteFile extends EntityBase implements Serializable { this.size = size; } - public String getExtension() { - String result = null; - if (name != null) { - if (name.contains(".")) - result = name.substring(name.lastIndexOf(".") + 1); - } - return result; + public void setSourceObject(Object sourceObject) { + this.sourceObject = sourceObject; } } diff --git a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java index 6fa2d189..d6edd1c0 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java @@ -97,6 +97,12 @@ public class FtpDirectoryLister implements IDirectoryLister { } } + @Override + public void delete(RemoteFile remoteFile) { + // TODO Auto-generated method stub + + } + @Override public RemoteFile get(String fileName) throws Exception { RemoteFile result = null; diff --git a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/IDirectoryLister.java b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/IDirectoryLister.java index 02f716ec..8b61253c 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/IDirectoryLister.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/IDirectoryLister.java @@ -13,6 +13,8 @@ public interface IDirectoryLister { void cleanUp() throws Exception; + void delete(RemoteFile remoteFile) throws Exception; + RemoteFile get(String fileName) throws Exception; InputStream getInputStream(RemoteFile remoteFile) throws Exception; diff --git a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/LocalDirectoryLister.java b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/LocalDirectoryLister.java index 3e2ff7b5..bc431906 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/LocalDirectoryLister.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/LocalDirectoryLister.java @@ -38,6 +38,12 @@ public class LocalDirectoryLister implements IDirectoryLister { public void cleanUp() { } + @Override + public void delete(RemoteFile remoteFile) { + // TODO Auto-generated method stub + + } + @Override public RemoteFile get(String fileName) throws Exception { String path = storeUri.toString(true); diff --git a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/SambaDirectoryLister.java b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/SambaDirectoryLister.java index b594c197..3ae29850 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/SambaDirectoryLister.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/SambaDirectoryLister.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.List; import jcifs.smb.NtlmPasswordAuthentication; +import jcifs.smb.SmbException; import jcifs.smb.SmbFile; import user.commons.IRemoteFileListCallback; import user.commons.RemoteFile; @@ -35,6 +36,18 @@ public class SambaDirectoryLister implements IDirectoryLister { public void cleanUp() throws Exception { } + @Override + public void delete(RemoteFile remoteFile) throws Exception { + if (remoteFile.getSourceObject() instanceof SmbFile) { + SmbFile smbFile = (SmbFile) remoteFile.getSourceObject(); + try { + smbFile.delete(); + } catch (SmbException e) { + throw new Exception("Can not delete file.", e); + } + } + } + @Override public RemoteFile get(String fileName) throws Exception { RemoteFile result = null; @@ -98,6 +111,7 @@ public class SambaDirectoryLister implements IDirectoryLister { result.setModify(new Timestamp(file.getLastModified())); result.setIsFolder((file.getAttributes() & SmbFile.ATTR_DIRECTORY) == SmbFile.ATTR_DIRECTORY); result.setSize(file.length()); + result.setSourceObject(file); return result; } } diff --git a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/TSMLister.java b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/TSMLister.java index 6b7a9b0e..a763786e 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/TSMLister.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/TSMLister.java @@ -40,6 +40,12 @@ public class TSMLister implements IDirectoryLister { client.disconnect(); } + @Override + public void delete(RemoteFile remoteFile) { + // TODO Auto-generated method stub + + } + @Override public RemoteFile get(String fileName) throws Exception { RemoteFile result = null; diff --git a/server/user.jobengine.osgi.server/pages/search_items.zul b/server/user.jobengine.osgi.server/pages/search_items.zul index f50c30ba..3ead3e66 100644 --- a/server/user.jobengine.osgi.server/pages/search_items.zul +++ b/server/user.jobengine.osgi.server/pages/search_items.zul @@ -7,82 +7,86 @@ - -
- + +
+
- - - -
- +
-
-
- +
- +
\ No newline at end of file diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/osgi/server/ConsoleCommandProvider.java b/server/user.jobengine.osgi.server/src/user/jobengine/osgi/server/ConsoleCommandProvider.java index 34970877..8a7e92ee 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/osgi/server/ConsoleCommandProvider.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/osgi/server/ConsoleCommandProvider.java @@ -2,13 +2,8 @@ package user.jobengine.osgi.server; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.eclipse.core.runtime.adaptor.EclipseStarter; import org.eclipse.osgi.framework.console.CommandInterpreter; import org.eclipse.osgi.framework.console.CommandProvider; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.osgi.framework.wiring.BundleRevision; public class ConsoleCommandProvider implements CommandProvider { private static final Logger logger = LogManager.getLogger(); @@ -16,33 +11,34 @@ public class ConsoleCommandProvider implements CommandProvider { @SuppressWarnings("restriction") public Object _halt(CommandInterpreter intp) { StringBuffer buffer = new StringBuffer(); - Thread shutdownThread = new Thread(() -> { - try { - Thread.sleep(1000); - BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass()).getBundleContext(); - if (bundleContext != null) { - Bundle[] bundles = bundleContext.getBundles(); - for (Bundle b : bundles) { - if ((b.adapt(BundleRevision.class).getTypes() & BundleRevision.TYPE_FRAGMENT) != 0) - continue; - if ("org.eclipse.equinox.ds".equals(b.getSymbolicName())) - continue; - if ("user.jobengine.osgi.commons".equals(b.getSymbolicName())) - continue; - - logger.info("Stopping {} ", b.getSymbolicName()); - b.stop(); - } - } - EclipseStarter.shutdown(); - - System.exit(0); - } catch (Exception e) { - logger.error("Error:", e); - } - }); - buffer.append("Shutdown initiated"); - shutdownThread.start(); + // Thread shutdownThread = new Thread(() -> { + // try { + // Thread.sleep(1000); + // BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass()).getBundleContext(); + // if (bundleContext != null) { + // Bundle[] bundles = bundleContext.getBundles(); + // for (Bundle b : bundles) { + // if ((b.adapt(BundleRevision.class).getTypes() & BundleRevision.TYPE_FRAGMENT) != 0) + // continue; + // if ("org.eclipse.equinox.ds".equals(b.getSymbolicName())) + // continue; + // if ("user.jobengine.osgi.commons".equals(b.getSymbolicName())) + // continue; + // + // logger.info("Stopping {} ", b.getSymbolicName()); + // b.stop(); + // } + // } + // EclipseStarter.shutdown(); + // + // System.exit(0); + // } catch (Exception e) { + // logger.error("Error:", e); + // } + // }); + // shutdownThread.start(); + // buffer.append("Shutdown initiated"); + buffer.append("...and catch fire!"); return buffer.toString(); } diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java index cf789dd2..8ab91193 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java @@ -93,9 +93,12 @@ public class SearchModel extends BaseModel { //protocol + address + relativepath //store.getStoreUris().get(0).getProtocol().getValue() ret = Paths.get(store.getStoreUris().get(0).toString(false), mf.getRelativePath()).toString(); + break; } } } + + ret = "http://10.10.1.28:90/"; return ret; } @@ -132,7 +135,7 @@ public class SearchModel extends BaseModel { } return ret; } - + public boolean getHasSelectedMediaFile(){ String mediaFilePath =getMediaFilePath(); return (mediaFilePath != null && !"".equals(mediaFilePath)); @@ -154,7 +157,7 @@ public class SearchModel extends BaseModel { } @Command - @NotifyChange({ "mediaFilePath", "hasSelectedMediaFile", "hasLowresMediaFile" }) + @NotifyChange({ "mediaFilePath", "hasSelectedMediaFile", "hasLowresMediaFile", "lowresMediaFilePath", "hasTSMMediaFile" }) public void onSelectMedia(@BindingParam("media") Media m) { this.selectedMedia = m; } -- 2.54.0