From caec6237e46fccd7d3d10112e46115e5b4cc70f8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Wed, 15 Apr 2020 15:38:09 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31784 --- .../run-mediacube-server-bsh.launch | 30 ----- .../run-mediacube-server-user.launch | 2 +- server/-configuration/scheduledjobs.json | 14 +++ server/-dependencies/jobengine.target | 3 +- server/-product/mediacube.product | 1 + .../config/scheduledjobs.json | 14 +++ .../jobtemplates/create-lowres-ondemand.xml | 110 ++++++++++++++++++ .../server/steps/CreateArchiveItem.java | 46 ++++++++ .../META-INF/MANIFEST.MF | 7 +- .../jobengine/search/LuceneMediaFinder.java | 14 +-- server/user.jobengine.osgi.server/foo.jsp | 5 - server/user.jobengine.osgi.server/index.jsp | 5 - server/user.jobengine.osgi.server/index.zul | 10 +- .../pages/jobselector.zul | 79 ++++++++++--- .../pages/mediaplayer.jsp | 72 ------------ .../pages/searchitems/details.zul | 3 + .../user/jobengine/server/steps/JobStep.java | 5 + .../jobengine/zk/model/JobSelectorModel.java | 31 +++-- .../user/jobengine/zk/model/SearchModel.java | 25 +++- .../osgi/mediacube/MediaCubeService.java | 2 +- .../jobengine/osgi/rest/RESTApplications.java | 7 +- 21 files changed, 314 insertions(+), 171 deletions(-) delete mode 100644 server/-configuration/run-mediacube-server-bsh.launch create mode 100644 server/user.jobengine.executors/jobtemplates/create-lowres-ondemand.xml create mode 100644 server/user.jobengine.executors/src/user/jobengine/server/steps/CreateArchiveItem.java delete mode 100644 server/user.jobengine.osgi.server/foo.jsp delete mode 100644 server/user.jobengine.osgi.server/index.jsp delete mode 100644 server/user.jobengine.osgi.server/pages/mediaplayer.jsp diff --git a/server/-configuration/run-mediacube-server-bsh.launch b/server/-configuration/run-mediacube-server-bsh.launch deleted file mode 100644 index 56ee6a1b..00000000 --- a/server/-configuration/run-mediacube-server-bsh.launch +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/server/-configuration/run-mediacube-server-user.launch b/server/-configuration/run-mediacube-server-user.launch index 86c2acb0..19a9c109 100644 --- a/server/-configuration/run-mediacube-server-user.launch +++ b/server/-configuration/run-mediacube-server-user.launch @@ -22,7 +22,7 @@ - + diff --git a/server/-configuration/scheduledjobs.json b/server/-configuration/scheduledjobs.json index e53315e8..44221188 100644 --- a/server/-configuration/scheduledjobs.json +++ b/server/-configuration/scheduledjobs.json @@ -1,4 +1,18 @@ {"joblist":[ + { + "name" : "Proxy pótlása", + "template": "create-lowres-ondemand.xml", + "parameters": [ + {"name": "globalRetrievePath", "value": "file://isilon.intra.echotv.hu", "type": "java.lang.String"}, + {"name": "localRetrievePath", "value": "/mnt/ISILON", "type": "java.lang.String"}, + {"name": "localHiresPath", "value": "/mediacube/data/lowres/", "type": "java.lang.String" }, + {"name": "globalHiresPath", "value": "L:\\", "type": "java.lang.String" }, + {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER/OUTPUT", "type": "java.lang.String" }, + {"name": "transcoderAddress", "value": "http://10.10.1.74:65445/api/json/v1/", "type": "java.lang.String"}, + {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}, + {"name": "webPath", "value": "/mediacube/data/lowres/www/video/", "type": "java.lang.String" } + ] + }, { "name" : "sys: Migrate HSM", "template": "migrate-hsm.xml", diff --git a/server/-dependencies/jobengine.target b/server/-dependencies/jobengine.target index 7a2d47ea..2ca556af 100644 --- a/server/-dependencies/jobengine.target +++ b/server/-dependencies/jobengine.target @@ -1,5 +1,5 @@ - + @@ -21,6 +21,7 @@ + diff --git a/server/-product/mediacube.product b/server/-product/mediacube.product index 115d4574..c6a83a88 100644 --- a/server/-product/mediacube.product +++ b/server/-product/mediacube.product @@ -171,6 +171,7 @@ + diff --git a/server/user.jobengine.executors/config/scheduledjobs.json b/server/user.jobengine.executors/config/scheduledjobs.json index 43e716cf..41282496 100644 --- a/server/user.jobengine.executors/config/scheduledjobs.json +++ b/server/user.jobengine.executors/config/scheduledjobs.json @@ -1,4 +1,18 @@ {"joblist":[ + { + "name" : "Proxy pótlása", + "template": "create-lowres-ondemand.xml", + "parameters": [ + {"name": "globalRetrievePath", "value": "file://isilon.intra.echotv.hu", "type": "java.lang.String"}, + {"name": "localRetrievePath", "value": "/mnt/ISILON", "type": "java.lang.String"}, + {"name": "localHiresPath", "value": "/mediacube/data/lowres/", "type": "java.lang.String" }, + {"name": "globalHiresPath", "value": "L:\\", "type": "java.lang.String" }, + {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER/OUTPUT", "type": "java.lang.String" }, + {"name": "transcoderAddress", "value": "http://10.10.1.74:65445/api/json/v1/", "type": "java.lang.String"}, + {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}, + {"name": "webPath", "value": "/mediacube/data/lowres/www/video/", "type": "java.lang.String" } + ] + }, { "name" : "sys: Migrate HSM", "template": "migrate-hsm.xml", diff --git a/server/user.jobengine.executors/jobtemplates/create-lowres-ondemand.xml b/server/user.jobengine.executors/jobtemplates/create-lowres-ondemand.xml new file mode 100644 index 00000000..bf7ff233 --- /dev/null +++ b/server/user.jobengine.executors/jobtemplates/create-lowres-ondemand.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateArchiveItem.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateArchiveItem.java new file mode 100644 index 00000000..e3740030 --- /dev/null +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateArchiveItem.java @@ -0,0 +1,46 @@ +package user.jobengine.server.steps; + +import java.nio.file.Paths; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.ibm.nosql.json.api.BasicDBObject; +import com.ibm.nosql.json.api.DB; +import com.ibm.nosql.json.api.DBCollection; + +import user.commons.nosql.NoSQLUtils; +import user.jobengine.db.Media; +import user.jobengine.db.Store; + +public class CreateArchiveItem extends JobStep { + private static final Logger logger = LogManager.getLogger(); + + @StepEntry + public Object[] execute(Media mediaCubeMedia, String localHiresPath) throws Exception { + DB db = NoSQLUtils.getNoSQLDB(); + DBCollection collection = db.getCollection("missing_lowres"); + Store highResStore = getManager().getSystemStore(false); + + ArchiveItem archiveItem = null; + try { + if (mediaCubeMedia.getMediaFilesCount() != 1) + throw new Exception("Expected media count is 1, found " + mediaCubeMedia.getMediaFilesCount()); + if (mediaCubeMedia.getMediaFiles().get(0).getStoreId() != highResStore.getId()) + throw new Exception("Expected media store is a high-res store"); + + String name = mediaCubeMedia.getMediaFilesName(); + archiveItem = new ArchiveItem(); + archiveItem.setMediaFile(Paths.get(localHiresPath, name).toString()); + collection.save(new BasicDBObject("name", name)); + } catch (Exception e) { + logger.catching(e); + logger.info(getMarker(), e.getMessage()); + throw e; + } finally { + setProgress(100); + } + Object[] result = { archiveItem }; + return result; + } +} diff --git a/server/user.jobengine.osgi.db/META-INF/MANIFEST.MF b/server/user.jobengine.osgi.db/META-INF/MANIFEST.MF index 0bf64ad3..5ceaaa3f 100644 --- a/server/user.jobengine.osgi.db/META-INF/MANIFEST.MF +++ b/server/user.jobengine.osgi.db/META-INF/MANIFEST.MF @@ -14,14 +14,9 @@ Require-Bundle: user.jobengine.osgi.commons;bundle-version="1.0.0", Service-Component: OSGI-INF/component.xml Bundle-ActivationPolicy: lazy Import-Package: com.fasterxml.jackson.annotation;version="2.4.5", - com.fasterxml.jackson.jaxrs.base;version="2.4.5", javax.ws.rs.client, javax.ws.rs.core, - org.apache.logging.log4j;version="2.8.2", - org.jboss.resteasy.client.jaxrs, - org.jboss.resteasy.plugins.providers, - org.jboss.resteasy.plugins.providers.jackson, - org.jboss.resteasy.spi + org.apache.logging.log4j;version="2.8.2" Export-Package: user.jobengine.db, user.jobengine.search diff --git a/server/user.jobengine.osgi.db/src/user/jobengine/search/LuceneMediaFinder.java b/server/user.jobengine.osgi.db/src/user/jobengine/search/LuceneMediaFinder.java index a65228f4..df953709 100644 --- a/server/user.jobengine.osgi.db/src/user/jobengine/search/LuceneMediaFinder.java +++ b/server/user.jobengine.osgi.db/src/user/jobengine/search/LuceneMediaFinder.java @@ -3,10 +3,6 @@ package user.jobengine.search; import java.util.List; import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.GenericType; - -import org.jboss.resteasy.client.jaxrs.ResteasyClient; -import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; import user.jobengine.db.ArchivedMedia; @@ -21,7 +17,7 @@ public class LuceneMediaFinder implements IMediaFinder { int toResult) { SearchResult ret = new SearchResult(); // TODO Auto-generated method stub - ResteasyClient client = new ResteasyClientBuilder().build(); + // ResteasyClient client = new ResteasyClientBuilder().build(); // if (criteria == "" || criteria == null) // apiPath = apiPath + "*:*/"; // else @@ -30,8 +26,8 @@ public class LuceneMediaFinder implements IMediaFinder { // apiPath = apiPath + fromResult + "/" + (toResult - fromResult) + "/" // + (orderAscending == true ? "1" : "0") + "/1"; - webTarget = client.target(apiAddress); - WebTarget target = webTarget.path(apiPath); + // webTarget = client.target(apiAddress); + // WebTarget target = webTarget.path(apiPath); // Response response = target.request().get(IndexerDescription.class); // Response response = target.get(new // GenericType>() { @@ -42,8 +38,8 @@ public class LuceneMediaFinder implements IMediaFinder { // List archivedMedia = (List) response; // ret = (SearchResult) response; - ret = target.request().get(new GenericType>() { - }); + // ret = target.request().get(new GenericType>() { + // }); return ret; } diff --git a/server/user.jobengine.osgi.server/foo.jsp b/server/user.jobengine.osgi.server/foo.jsp deleted file mode 100644 index 71d31ad2..00000000 --- a/server/user.jobengine.osgi.server/foo.jsp +++ /dev/null @@ -1,5 +0,0 @@ -<%@ page import="java.util.*, java.io.*, java.net.*, user.jobengine.zk.util.SessionUtil"%> - -<% - out.println("HELLO"); -%> \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/index.jsp b/server/user.jobengine.osgi.server/index.jsp deleted file mode 100644 index 8bd4c93a..00000000 --- a/server/user.jobengine.osgi.server/index.jsp +++ /dev/null @@ -1,5 +0,0 @@ -<%@ page import="java.util.*, java.io.*, java.net.*, user.jobengine.zk.util.SessionUtil, org.apache.logging.log4j.*"%> - -<% - pageContext.forward("/pages/index.zul"); -%> \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/index.zul b/server/user.jobengine.osgi.server/index.zul index 6e2af2e9..9c3b92bc 100644 --- a/server/user.jobengine.osgi.server/index.zul +++ b/server/user.jobengine.osgi.server/index.zul @@ -61,10 +61,12 @@ });//zk.afterLoad - + + + - + +
@@ -72,7 +74,7 @@ - diff --git a/server/user.jobengine.osgi.server/pages/jobselector.zul b/server/user.jobengine.osgi.server/pages/jobselector.zul index 27605194..871521ee 100644 --- a/server/user.jobengine.osgi.server/pages/jobselector.zul +++ b/server/user.jobengine.osgi.server/pages/jobselector.zul @@ -3,7 +3,7 @@ viewModel="@id('jlm') @init('user.jobengine.zk.model.JobSelectorModel')" forward="onCancel=closeButton.onClick">
- + @@ -16,23 +16,66 @@
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
     diff --git a/server/user.jobengine.osgi.server/pages/mediaplayer.jsp b/server/user.jobengine.osgi.server/pages/mediaplayer.jsp deleted file mode 100644 index 79ee4a4d..00000000 --- a/server/user.jobengine.osgi.server/pages/mediaplayer.jsp +++ /dev/null @@ -1,72 +0,0 @@ -<%@page import="java.util.*"%> -<% - String mediaURL = request.getParameter("mediaurl"); - String poster = request.getParameter("poster"); -%> - - - - - - - - - - - -
- -
- - - diff --git a/server/user.jobengine.osgi.server/pages/searchitems/details.zul b/server/user.jobengine.osgi.server/pages/searchitems/details.zul index 63b0d821..e0069a44 100644 --- a/server/user.jobengine.osgi.server/pages/searchitems/details.zul +++ b/server/user.jobengine.osgi.server/pages/searchitems/details.zul @@ -12,6 +12,9 @@ + +
diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java index 4899111c..bfc81630 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java @@ -15,6 +15,7 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.framework.ServiceReference; +import user.jobengine.db.IItemManager; import user.jobengine.server.IJobEngine; import user.jobengine.server.IJobRuntime; @@ -84,6 +85,10 @@ public class JobStep implements IJobStep { return jobRuntime; } + protected IItemManager getManager() { + return (IItemManager) jobRuntime.getPersister(); + } + protected Marker getMarker() { Marker parentMarker = MarkerManager.getMarker("MEDIACUBE"); Marker result = MarkerManager.getMarker(getRuntimeName()); diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/JobSelectorModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/JobSelectorModel.java index 0fa1563f..db532ba7 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/JobSelectorModel.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/JobSelectorModel.java @@ -79,22 +79,6 @@ public class JobSelectorModel extends BaseModel { public void init() { this.jobEngine = (IJobEngine) Executions.getCurrent().getArg().get("jobEngine"); jobs = new ListModelList<>(NoSQLUtils.asList(jobEngine.getScheduler().getScheduleJobs())); - if (jobs != null) { - for (BasicDBObject job : jobs) { - String cronExpression = job.getString(CRONEXPRESSION); - if (StringUtils.isNotBlank(cronExpression)) { - CronExpression ce; - try { - ce = new CronExpression(cronExpression); - Date nextTime = ce.getNextValidTimeAfter(new Date()); - job.put(NEXT_TIME, nextTime); - } catch (ParseException e) { - logger.catching(e); - } - } - } - - } } public void setJobs(ListModelList jobs) { @@ -103,6 +87,21 @@ public class JobSelectorModel extends BaseModel { public void setSelectedJob(BasicDBObject selectedJob) { this.selectedJob = selectedJob; + + if (selectedJob == null) + return; + + String cronExpression = selectedJob.getString(CRONEXPRESSION); + if (StringUtils.isBlank(cronExpression)) + return; + + try { + CronExpression ce = new CronExpression(cronExpression); + Date nextTime = ce.getNextValidTimeAfter(new Date()); + selectedJob.put(NEXT_TIME, nextTime); + } catch (ParseException e) { + logger.catching(e); + } } public void setSelectedJobs(ListModelList selectedJobs) { 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 143a46b0..db2f5f0a 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 @@ -57,10 +57,14 @@ import user.jobengine.db.IItemManager; import user.jobengine.db.ItemManager; import user.jobengine.db.MediaFile; import user.jobengine.db.Store; +import user.jobengine.server.IJobEngine; +import user.jobengine.server.JobEngine; +import user.jobengine.server.JobEngineException; +import user.jobengine.server.scheduler.ScheduledJob; import user.jobengine.zk.util.SessionUtil; public class SearchModel extends AsyncBaseModel { - + private static final String CREATE_LOWRES_TEMPLATE = "create-lowres-ondemand.xml"; private static final String ARG = "arg"; private static final String MEDIA_ID = "showMediaID"; private static final Logger logger = LogManager.getLogger(); @@ -219,6 +223,25 @@ public class SearchModel extends AsyncBaseModel { Executions.getCurrent().sendRedirect(email); } + @Command + public void createLowres() { + IJobEngine jobEngine = JobEngine.getInstance(); + + ScheduledJob scheduledJob = jobEngine.getScheduledJob(CREATE_LOWRES_TEMPLATE); + Map parameters = scheduledJob.getJobParameters(); + parameters.put("mediaCubeMedia", selectedObject.getMedia()); + parameters.put("deleteSource", true); + parameters.put("killDateDays", 0); + parameters.put("targetNamePattern", "%s"); + parameters.put("successRecipient", SessionUtil.getUserPrincipal().getEmail()); + + try { + jobEngine.submit(CREATE_LOWRES_TEMPLATE, scheduledJob.getJobName(), parameters, SessionUtil.getUserPrincipal().getDisplayName()); + } catch (JobEngineException e) { + logger.info("Hiba a job indításakor", e); + } + } + @Command @NotifyChange({ "searchResult", "selectedObject", "hasTSMMediaFile", "hasLowresMediaFile", "lowresMediaFilePath" }) public void doSearch() { diff --git a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java index b9b45aba..022e4b13 100644 --- a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java +++ b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java @@ -31,7 +31,7 @@ public class MediaCubeService { private IItemManager itemManager = ComponentBinder.getItemManager(); public MediaCubeService() { - //logger.info("Created"); + logger.info("Created"); } @GET diff --git a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java index 1c1650cf..8ec8060a 100644 --- a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java +++ b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java @@ -6,17 +6,20 @@ import java.util.Set; import javax.ws.rs.core.Application; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + import user.jobengine.osgi.mediacube.MediaCubeService; import user.jobengine.osgi.rest.octopus.OctopusRESTService; public class RESTApplications extends Application { + private static final Logger logger = LogManager.getLogger(); public RESTApplications() { // ResteasyProviderFactory instance = // ResteasyProviderFactory.getInstance(); // instance.registerProvider(DefaultTextPlain.class, true); - // System.out.println(""); - + logger.info("Created"); } @Override -- 2.54.0