<ProjectGuid>{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}</ProjectGuid>\r
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
- <ApplicationIcon>App.ico</ApplicationIcon>\r
+ <ApplicationIcon>maestro.ico</ApplicationIcon>\r
<AssemblyKeyContainerName>\r
</AssemblyKeyContainerName>\r
<AssemblyName>DxPlay</AssemblyName>\r
<Compile Include="VideoTrackBar.cs">\r
<SubType>Component</SubType>\r
</Compile>\r
- <Content Include="App.ico" />\r
<Compile Include="Properties\AssemblyInfo.cs">\r
<SubType>Code</SubType>\r
</Compile>\r
<DependentUpon>PlayerForm.cs</DependentUpon>\r
</Compile>\r
<Content Include="DirectShowLib.dll" />\r
+ <Content Include="maestro.ico" />\r
<Content Include="MXFFileParser.dll">\r
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
</Content>\r
{\r
"title": "Adáslebony",\r
- "active": true,\r
+ "active": false,\r
"startInTray": true,\r
"enableCustomMetadataId": true,\r
"player": {\r
</PropertyGroup>\r
<PropertyGroup />\r
<PropertyGroup>\r
- <ApplicationIcon>Resources\mediacube_logo_small.ico</ApplicationIcon>\r
+ <ApplicationIcon>maestro.ico</ApplicationIcon>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">\r
<DebugSymbols>true</DebugSymbols>\r
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
</None>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="Resources\AppIcon.ico" />\r
- </ItemGroup>\r
<ItemGroup>\r
<WCFMetadata Include="Connected Services\" />\r
</ItemGroup>\r
<None Include="Resources\Pause.ico" />\r
<None Include="Resources\Play.ico" />\r
<None Include="Resources\Stop.ico" />\r
- <None Include="Resources\mc_logo.ico" />\r
<None Include="Resources\mediacube_logo_small.ico" />\r
+ <None Include="maestro.ico" />\r
<Content Include="TODO.txt" />\r
</ItemGroup>\r
<ItemGroup>\r
private void CreateForms() {\r
string[] files = Directory.GetFiles("./Configuration", "*.json");\r
if (files.Length == 0) {\r
- MessageBox.Show("Hiányos konfiguráció!");\r
- Application.Exit();\r
+ MessageBox.Show(new Form() { TopMost = true }, "Nincs aktív konfiguráció!");\r
+ TerminateApplication();\r
}\r
foreach (String file in files) {\r
CreateForm(file);\r
}\r
if (forms.Count == 0) {\r
MessageBox.Show(new Form() { TopMost = true }, "Nincs aktív konfiguráció!");\r
- //TerminateApplication();\r
+ TerminateApplication();\r
}\r
}\r
\r
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>\r
<Prefer32Bit>true</Prefer32Bit>\r
</PropertyGroup>\r
+ <PropertyGroup>\r
+ <ApplicationIcon>maestro.ico</ApplicationIcon>\r
+ </PropertyGroup>\r
<ItemGroup>\r
<Reference Include="System" />\r
<Reference Include="System.Core" />\r
<ItemGroup>\r
<None Include="App.config" />\r
</ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="maestro.ico" />\r
+ </ItemGroup>\r
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
</Project>
\ No newline at end of file
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.equinox.http.jetty.http.port=8080 -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.10.1.28:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.10.1.28:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Dnexio.host=10.10.1.555"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.equinox.http.jetty.http.port=8080 -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Dnexio.host=10.10.1.555"/>\r
<stringAttribute key="pde.version" value="3.3"/>\r
<booleanAttribute key="show_selected_only" value="false"/>\r
<stringAttribute key="target_bundles" value="cglib@default:default,com.auth0.java-jwt@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,javassist@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.jvnet.mimepull@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.reflections@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
]\r
}, \r
{\r
- "active": true,\r
+ "active": false,\r
"name" : "OCTOPUS adatok szinkronizálása",\r
"template": "sync-octopus.xml",\r
"executeimmediate": true,\r
<parameter name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
<parameter name="targetPath" type="java.lang.String" />\r
<parameter name="targetNamePattern" type="java.lang.String" />\r
+ <parameter name="successRecipient" type="java.lang.String" />\r
</parameters>\r
</declarations>\r
<commands>\r
<input>\r
<parameter name="targetNamePattern" />\r
</input>\r
+ <input>\r
+ <parameter name="successRecipient" />\r
+ </input>\r
</inputs>\r
</calljobstep>\r
</commands>\r
<jobtemplate name="Archivált anyag visszatöltése">\r
<declarations>\r
<parameters>\r
- <parameter name="trafficOuputPath" type="java.lang.String" />\r
- <parameter name="octopusOuputPath" type="java.lang.String" />\r
+ <parameter name="trafficOutputPath" type="java.lang.String" />\r
+ <parameter name="octopusOutputPath" type="java.lang.String" />\r
+ <parameter name="genericOutputPath" type="java.lang.String" />\r
<parameter name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
<parameter name="houseId" type="java.lang.String" />\r
+ <parameter name="successRecipient" type="java.lang.String" />\r
</parameters>\r
<variables>\r
<variable name="targetPath" type="java.lang.String" />\r
<calljobstep type="user.jobengine.server.steps.OutputPathAndNameSelectorStep" weight="1">\r
<inputs>\r
<input>\r
- <parameter name="mediaCubeMedia" />\r
+ <parameter name="trafficOutputPath" />\r
+ </input>\r
+ <input>\r
+ <parameter name="octopusOutputPath" />\r
+ </input>\r
+ <input>\r
+ <parameter name="genericOutputPath" />\r
</input>\r
<input>\r
<parameter name="houseId" />\r
<input>\r
<parameter name="targetNamePattern" />\r
</input>\r
+ <input>\r
+ <parameter name="successRecipient" />\r
+ </input>\r
</inputs>\r
</calljobstep>\r
</commands>\r
\r
public class CheckMORPHEUSMissingMaterialsStep extends JobStep {\r
private static final Logger logger = LogManager.getLogger();\r
- private static final String TARGET_NAME_PATTERN = "targetNamePattern";\r
+ private static final String SUCCESSRECIPIENT = "successRecipient";\r
+ private static final String TARGETNAMEPATTERN = "targetNamePattern";\r
private static final String MATERIAL_ID = "Material ID";\r
private static final String RETRIEVE_MATERIAL = "Adásanyag visszatöltés";\r
- private static final String TARGET_PATH = "targetPath";\r
- private static final String MEDIA_CUBE_MEDIA = "mediaCubeMedia";\r
+ private static final String TARGETPATH = "targetPath";\r
+ private static final String MEDIACUBEMEDIA = "mediaCubeMedia";\r
private static final String JOBTEMPLATE = "retrieve-material.xml";\r
private static final String CSV_EXT = ".csv";\r
private String targetPath;\r
return;\r
}\r
\r
- jobEngine.submit(JOBTEMPLATE, RETRIEVE_MATERIAL, ListUtils.asMap(MEDIA_CUBE_MEDIA, medias.get(0), TARGET_PATH, targetPath, TARGET_NAME_PATTERN, "%s"));\r
+ jobEngine.submit(JOBTEMPLATE, RETRIEVE_MATERIAL,\r
+ ListUtils.asMap(MEDIACUBEMEDIA, medias.get(0), TARGETPATH, targetPath, TARGETNAMEPATTERN, "%s", SUCCESSRECIPIENT, null));\r
}\r
\r
private void processMissingMaterialCSV(Path csvFilePath) throws Exception {\r
private static final String SQLSERVER_JDBC_SQL_SERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";\r
private static final String SQL = "{call dbo.clIFsp_EC_MAM(1001, 32, Null, Null, ?)}";\r
private static final String JOBTEMPLATE = "retrieve-material.xml";\r
+ private static final String SUCCESSRECIPIENT = "successRecipient";\r
\r
@StepEntry\r
public Object[] execute(String dbUrl, String userName, String password, int lookupDays, String targetPath, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
}\r
\r
String title = "Traffic adásanyag visszatöltés: " + trafficId;\r
- jobEngine.submit(JOBTEMPLATE, title, ListUtils.asMap(MEDIA_CUBE_MEDIA, medias.get(0), TARGET_PATH, targetPath, TARGET_NAME_PATTERN, "%s"));\r
+ jobEngine.submit(JOBTEMPLATE, title,\r
+ ListUtils.asMap(MEDIA_CUBE_MEDIA, medias.get(0), TARGET_PATH, targetPath, TARGET_NAME_PATTERN, "%s", SUCCESSRECIPIENT, null));\r
}\r
\r
}\r
package user.jobengine.server.steps;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
\r
-import user.jobengine.db.Media;\r
import user.jobengine.server.IJobEngine;\r
import user.jobengine.server.IJobRuntime;\r
\r
-/**\r
- * Elinditja minden mediara az archivalo folyamatot.\r
- *\r
- * @author robi\r
- */\r
public class OutputPathAndNameSelectorStep extends JobStep {\r
- private static final String ARCHIVE = "Archiválás";\r
- private static final String GLOBAL_SOURCE_PATH = "globalSourcePath";\r
+ private enum MetadataType {\r
+ TRAFFIC, OCTOPUS, GENERIC\r
+ }\r
+\r
+ private static final String TARGETNAMEPATTERN = "-ARCH-%s";\r
+\r
private static final Logger logger = LogManager.getLogger();\r
- private static final String JOBTEMPLATE = "archive-material.xml";\r
- private static final String ARCHIVE_ITEM = "archiveItem";\r
+ private static final String REGEXP_TRAFFIC = "^[MRP]{1}[0-9]{6}[A-Z]{1}$";\r
+ private static final String REGEXP_OCTOPUSPLACEHOLDERID = "^[0-9]+_[0-9]+$";\r
+ private static final String REGEXP_OCTOPUSPLACEHOLDERVERSIONEDID = "^[0-9]+_[0-9]+-[0-9]{3}$";\r
+\r
+ private void check(String trafficOutputPath, String octopusOutputPath, String genericOutputPath, String houseId) {\r
+ if (StringUtils.isBlank(trafficOutputPath)) {\r
+ logger.error(getMarker(), "A folyamat 'trafficOutputPath' bemeneti paramétere üres.");\r
+ throw new NullPointerException("System is not configured properly, 'trafficOutputPath' input parameter missing.");\r
+ }\r
+ if (StringUtils.isBlank(octopusOutputPath)) {\r
+ logger.error(getMarker(), "A folyamat 'octopusOutputPath' bemeneti paramétere üres.");\r
+ throw new NullPointerException("System is not configured properly, 'octopusOutputPath' input parameter missing.");\r
+ }\r
+ if (StringUtils.isBlank(genericOutputPath)) {\r
+ logger.error(getMarker(), "A folyamat 'genericOutputPath' bemeneti paramétere üres.");\r
+ throw new NullPointerException("System is not configured properly, 'genericOutputPath' input parameter missing.");\r
+ }\r
+ if (StringUtils.isBlank(houseId)) {\r
+ logger.error(getMarker(), "A folyamat 'houseId' bemeneti paramétere üres.");\r
+ throw new NullPointerException("System is not configured properly, 'houseId' input parameter missing.");\r
+ }\r
+ }\r
\r
@StepEntry\r
- public Object[] execute(Media mediaCubeMedia, String houseId, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
- String targetPath = "";\r
- String targetNamePattern = "";\r
+ public Object[] execute(String trafficOutputPath, String octopusOutputPath, String genericOutputPath, String houseId, IJobEngine jobEngine,\r
+ IJobRuntime jobRuntime) {\r
+ check(trafficOutputPath, octopusOutputPath, genericOutputPath, houseId);\r
\r
- try {\r
- } catch (Exception e) {\r
- logger.catching(e);\r
+ String id = houseId.toUpperCase();\r
+ MetadataType mdType = GuessMetadataType(id);\r
+ String targetPath = null;\r
+ switch (mdType) {\r
+ case GENERIC:\r
+ targetPath = genericOutputPath;\r
+ break;\r
+ case OCTOPUS:\r
+ targetPath = octopusOutputPath;\r
+ break;\r
+ case TRAFFIC:\r
+ targetPath = genericOutputPath;\r
+ break;\r
}\r
+ String targetNamePattern = houseId + TARGETNAMEPATTERN;\r
return new Object[] { targetPath, targetNamePattern };\r
}\r
\r
+ private MetadataType GuessMetadataType(String id) {\r
+ if (id.matches(REGEXP_TRAFFIC))\r
+ return MetadataType.TRAFFIC;\r
+ if (id.matches(REGEXP_OCTOPUSPLACEHOLDERID))\r
+ return MetadataType.OCTOPUS;\r
+ if (id.matches(REGEXP_OCTOPUSPLACEHOLDERVERSIONEDID))\r
+ return MetadataType.OCTOPUS;\r
+ return MetadataType.GENERIC;\r
+ }\r
+\r
}\r
import org.apache.commons.lang.StringUtils;\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
\r
+import user.commons.MediaCubeMarker;\r
import user.commons.RemoteFile;\r
import user.commons.StoreUri;\r
import user.commons.remotestore.IProgressEventListener;\r
private String sourceFileName;\r
\r
@StepEntry\r
- public Object[] execute(Media mediaCubeMedia, String targetPath, String targetNamePattern, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
+ public Object[] execute(Media mediaCubeMedia, String targetPath, String targetNamePattern, String successRecipient, IJobEngine jobEngine,\r
+ IJobRuntime jobRuntime) throws Exception {\r
setAndCheck(mediaCubeMedia, targetPath, targetNamePattern, jobEngine);\r
try {\r
//TODO check file existance?\r
logger.catching(e);\r
throw e;\r
}\r
+\r
+ Marker marker = StringUtils.isBlank(successRecipient) ? getMarker() : new MediaCubeMarker(successRecipient);\r
+ logger.info(marker, "");\r
return null;\r
}\r
\r
- private String getSourceFileName(Media mediaCubeMedia, Store targetStore) {\r
+ private String getSourceFileName(Media mediaCubeMedia, Store store) {\r
List<MediaFile> mediaFiles = mediaCubeMedia.getMediaFiles();\r
if (mediaFiles == null)\r
return null;\r
for (MediaFile mediaFile : mediaFiles) {\r
- if (mediaFile.getStore().getId() == targetStore.getId()) {\r
+ if (mediaFile.getStore().getId() == store.getId())\r
return mediaFile.getRelativePath();\r
- }\r
}\r
return null;\r
}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.MediaCubeMarker;\r
+\r
+public class UserNotificationStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(String to, String notification) {\r
+ if (StringUtils.isNotBlank(to) && StringUtils.isNotBlank(notification))\r
+ logger.info(new MediaCubeMarker(to), notification);\r
+ return null;\r
+ }\r
+\r
+}\r
</listitem>\r
</template>\r
</listbox>\r
- <hbox width="100%" pack="center">\r
- <button id="closeButton" label="Bezárás" onClick="@command('close')" />\r
+ <hbox width="100%" pack="tight">\r
+ <button id="closeButton" label="Mégsem" onClick="@command('close')" />\r
<button id="executeButton" label="Futtatás" onClick="@command('execute')" />\r
</hbox>\r
</window>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<window id="resultWin" title="Visszatöltés azonosító" width="500px" border="normal" apply="org.zkoss.bind.BindComposer" viewModel="@id('jlm') @init('user.jobengine.zk.model.RetrieveSelectorModel')">\r
+ <grid>\r
+ <columns>\r
+ <column width="120px" />\r
+ <column width="100%"/>\r
+ </columns>\r
+ <rows>\r
+ <row>\r
+ <label value="Azonosító:" />\r
+ <textbox value="@bind(jlm.houseId)" width="100%" tabindex="1" constraint="no empty: Kérem adjon meg egy TRAFFIC vagy egy OCTOPUS azonosítót!"/>\r
+ </row>\r
+ <row>\r
+ <label value="Értesítési cím:"/>\r
+ <textbox value="@bind(jlm.email)" width="100%" tabindex="2" constraint="/.+@.+\.[a-z]+/: Kérem adjon meg egy email címet!" />\r
+ </row>\r
+ </rows>\r
+ </grid>\r
+ <hbox width="100%" pack="right">\r
+ <button id="closeButton" label="Mégsem" onClick="@command('close')" />\r
+ <button id="executeButton" label="Végrehajtás" onClick="@command('execute')" />\r
+ </hbox>\r
+</window>\r
--- /dev/null
+package user.jobengine.zk.model;\r
+\r
+import java.util.Map;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.annotation.AfterCompose;\r
+import org.zkoss.bind.annotation.Command;\r
+import org.zkoss.bind.annotation.ContextParam;\r
+import org.zkoss.bind.annotation.ContextType;\r
+import org.zkoss.bind.annotation.Init;\r
+import org.zkoss.util.resource.Labels;\r
+import org.zkoss.zk.ui.Component;\r
+import org.zkoss.zk.ui.Executions;\r
+import org.zkoss.zk.ui.select.Selectors;\r
+import org.zkoss.zk.ui.select.annotation.Wire;\r
+import org.zkoss.zul.Messagebox;\r
+import org.zkoss.zul.Window;\r
+\r
+import user.commons.ListUtils;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+import user.jobengine.server.JobEngine;\r
+\r
+public class RetrieveSelectorModel extends BaseModel {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String MEDIACUBEMEDIA = "mediaCubeMedia";\r
+ private static final String SUCCESSRECIPIENT = "successRecipient";\r
+ private static final String GENERICOUTPUTPATH = "genericOutputPath";\r
+ private static final String OCTOPUSOUTPUTPATH = "octopusOutputPath";\r
+ private static final String TRAFFICOUTPUTPATH = "trafficOutputPath";\r
+ private static final String HOUSEID = "houseId";\r
+ private static final String RESTORE = "Visszatöltés";\r
+ private static final String JOBTEMPLATE = "retrieve-ondemand.xml";\r
+\r
+ @Wire("#resultWin")\r
+ private Window resultWin;\r
+ private Media selectedMedia;\r
+ private String houseId;\r
+ private String email;\r
+\r
+ @AfterCompose\r
+ public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
+ Selectors.wireComponents(view, this, false);\r
+ }\r
+\r
+ @Command\r
+ public void close() {\r
+ resultWin.detach();\r
+ }\r
+\r
+ @Command\r
+ public void execute() {\r
+ try {\r
+ String trafficOutputPath = "/mnt/ISILON/PLAYOUT_NLE";\r
+ String octopusOutputPath = "/mnt/ISILON/OCTOPUS";\r
+ String genericOutputPath = "/mnt/ISILON/RESTORE";\r
+ if (StringUtils.isBlank(houseId))\r
+ throw new Exception("Az azonosító megadása kötelező!");\r
+ Map<String, Object> parameters = ListUtils.asMap(TRAFFICOUTPUTPATH, trafficOutputPath, OCTOPUSOUTPUTPATH, octopusOutputPath, GENERICOUTPUTPATH,\r
+ genericOutputPath, MEDIACUBEMEDIA, this.selectedMedia, HOUSEID, houseId, SUCCESSRECIPIENT, email);\r
+ IJobEngine jobEngine = JobEngine.getInstance();\r
+ IJobRuntime runtime1 = jobEngine.submit(JOBTEMPLATE, RESTORE, parameters);\r
+ close();\r
+ } catch (Exception e) {\r
+ Messagebox.show(e.getMessage(), Labels.getLabel("dialogger.warning"), Messagebox.OK, Messagebox.ERROR, defaultOKEventListener);\r
+ logger.catching(e);\r
+ }\r
+\r
+ }\r
+\r
+ public String getEmail() {\r
+ return email;\r
+ }\r
+\r
+ public String getHouseId() {\r
+ return houseId;\r
+ }\r
+\r
+ @Init\r
+ public void init() {\r
+ Map<?, ?> args = Executions.getCurrent().getArg();\r
+ this.selectedMedia = (Media) args.get(MEDIACUBEMEDIA);\r
+ }\r
+\r
+ public void setEmail(String email) {\r
+ this.email = email;\r
+ }\r
+\r
+ public void setHouseId(String houseId) {\r
+ this.houseId = houseId;\r
+ }\r
+\r
+}
\ No newline at end of file
\r
import java.io.File;\r
import java.nio.file.Paths;\r
+import java.util.HashMap;\r
import java.util.List;\r
import java.util.Map;\r
\r
import org.zkoss.bind.annotation.Command;\r
import org.zkoss.bind.annotation.NotifyChange;\r
import org.zkoss.util.resource.Labels;\r
+import org.zkoss.zk.ui.Executions;\r
import org.zkoss.zul.Messagebox;\r
+import org.zkoss.zul.Window;\r
\r
-import user.commons.ListUtils;\r
import user.commons.StoreUri;\r
import user.commons.remotestore.RemoteStoreProtocol;\r
import user.jobengine.db.Item;\r
import user.jobengine.db.Media;\r
import user.jobengine.db.MediaFile;\r
import user.jobengine.db.Store;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-import user.jobengine.server.JobEngine;\r
\r
public class SearchModel extends BaseModel {\r
- private static final String TARGET_NAME_PATTERN = "targetNamePattern";\r
-\r
- private static final String RESTORE = "Visszatöltés";\r
-\r
- private static final String JOBTEMPLATE = "retrieve-material.xml";\r
-\r
- private static final String MEDIA_CUBE_MEDIA = "mediaCubeMedia";\r
-\r
- private static final String TARGET_PATH = "targetPath";\r
-\r
private static final Logger logger = LogManager.getLogger();\r
+ private static final String MEDIACUBEMEDIA = "mediaCubeMedia";\r
+ private static final String PAGES_RETRIEVESELECTOR_ZUL = "/pages/retrieveselector.zul";\r
\r
private String searchValue = null;\r
protected CachedListModel searchResult = null;\r
@Command\r
@NotifyChange({ "mold", "paging", "searchResult", "selectedItem", "selectedMedia", "hasLowresMediaFile" })\r
public void doSearch() {\r
+ Messagebox.show(Labels.getLabel("error.search"), Labels.getLabel("dialogger.warning"), Messagebox.OK, Messagebox.ERROR, defaultOKEventListener);\r
try {\r
//do search ++++++++\r
this.selectedItem = null;\r
\r
@Command\r
public void downloadMedia() {\r
- if (getHasTSMMediaFile()) {\r
- try {\r
- Map<String, Object> parameters = ListUtils.asMap(MEDIA_CUBE_MEDIA, this.selectedMedia, TARGET_PATH, "/mnt/ISILON/RESTORE", TARGET_NAME_PATTERN,\r
- "%s");\r
- IJobEngine jobEngine = JobEngine.getInstance();\r
- IJobRuntime runtime1 = jobEngine.submit(JOBTEMPLATE, RESTORE, parameters);\r
- } catch (Exception exc) {\r
- logger.error("", exc);\r
- }\r
- }\r
-\r
+ if (!getHasTSMMediaFile())\r
+ return;\r
+ Map<String, Object> arguments = new HashMap<String, Object>();\r
+ arguments.put(MEDIACUBEMEDIA, this.selectedMedia);\r
+ Window window = (Window) Executions.createComponents(PAGES_RETRIEVESELECTOR_ZUL, null, arguments);\r
+ window.doModal();\r
}\r
\r
public boolean getHasLowresMediaFile() {\r
}\r
return ret;\r
}\r
- \r
+\r
public boolean getHasSelectedMediaFile(){\r
String mediaFilePath =getMediaFilePath();\r
return (mediaFilePath != null && !"".equals(mediaFilePath));\r
package user.jobengine.server.steps;\r
\r
import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertFalse;\r
+import static org.junit.Assert.assertTrue;\r
\r
import java.util.concurrent.Semaphore;\r
\r
\r
public class JobStepTest {\r
\r
+ private static final String REGEXP_TRAFFIC = "^[MRP]{1}[0-9]{6}[A-Z]{1}$";\r
+\r
+ private static final String REGEXP_OCTOPUSPLACEHOLDERID = "^[0-9]+_[0-9]+$";\r
+\r
+ private static final String REGEXP_OCTOPUSPLACEHOLDERVERSIONEDID = "^[0-9]+_[0-9]+-[0-9]{3}$";\r
+\r
@Test\r
public void testBatchRun() throws Exception {\r
int c = 2;\r
barrier.acquire(c);\r
}\r
\r
+ @Test\r
+ public void testRegexpOctopus() throws Exception {\r
+ assertTrue("000111_12".matches(REGEXP_OCTOPUSPLACEHOLDERID));\r
+ assertTrue("000111_12-000".matches(REGEXP_OCTOPUSPLACEHOLDERVERSIONEDID));\r
+ assertTrue("123456_345".matches(REGEXP_OCTOPUSPLACEHOLDERID));\r
+ assertFalse("000111_12-00".matches(REGEXP_OCTOPUSPLACEHOLDERVERSIONEDID));\r
+ assertFalse("123456-345".matches(REGEXP_OCTOPUSPLACEHOLDERID));\r
+ assertFalse("1234565".matches(REGEXP_OCTOPUSPLACEHOLDERID));\r
+ assertFalse("M000111A".matches(REGEXP_OCTOPUSPLACEHOLDERID));\r
+ }\r
+\r
+ @Test\r
+ public void testRegexpTraffic() throws Exception {\r
+ assertTrue("M000111A".matches(REGEXP_TRAFFIC));\r
+ assertTrue("P000111A".matches(REGEXP_TRAFFIC));\r
+ assertTrue("R000111A".matches(REGEXP_TRAFFIC));\r
+ assertFalse("m000111A".matches(REGEXP_TRAFFIC));\r
+ assertFalse("MA00111A".matches(REGEXP_TRAFFIC));\r
+ assertFalse("MA00111.".matches(REGEXP_TRAFFIC));\r
+ assertFalse("MA00111A1".matches(REGEXP_TRAFFIC));\r
+ assertFalse("P0001111A".matches(REGEXP_TRAFFIC));\r
+ }\r
+\r
@Test\r
public void testRun() throws Exception {\r
// Fixture\r