git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 8 Nov 2017 16:32:00 +0000 (16:32 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 8 Nov 2017 16:32:00 +0000 (16:32 +0000)
25 files changed:
client/Maestro/Commons/MorpheusXML.cs [new file with mode: 0644]
client/Maestro/Configuration/ConfigurationInfo.cs
client/Maestro/Configuration/configuration-editor.json
client/Maestro/Configuration/configuration-nle.json
client/Maestro/Configuration/configuration-playout-ingest.json
client/Maestro/Configuration/configuration-playout.json
client/Maestro/Configuration/configuration-studio.json
client/Maestro/Configuration/configuration-sxs.json
client/Maestro/Configuration/global.json [new file with mode: 0644]
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Designer.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/Metadata/ArchiveMetadata.cs
client/Maestro/Program.cs
client/Maestro/Targets/UNCTargetProcessor.cs
client/PlanAIRClient/TrafficIDSelector.Designer.cs
client/PlanAIRClient/Workers/PromoWorker.cs
server/-configuration/scheduledjobs.json
server/-product/DEPLOY-README.txt
server/user.jobengine.executors/deploy-steps-to-bsh.bat
server/user.jobengine.executors/src/user/jobengine/server/steps/CheckMORPHEUSMissingMaterialsStep.java
server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusDataMinerTest.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java

diff --git a/client/Maestro/Commons/MorpheusXML.cs b/client/Maestro/Commons/MorpheusXML.cs
new file mode 100644 (file)
index 0000000..cc059cf
--- /dev/null
@@ -0,0 +1,42 @@
+using System;\r
+using System.IO;\r
+using System.Text;\r
+using System.Xml;\r
+\r
+/*\r
+<?xml version="1.0" encoding="UTF-16"?>\r
+<ID extendedId="aaaaaaa">\r
+       <KillDate>02-02-2018</KillDate>\r
+       <ExtendedDescription>TEST TEST</ExtendedDescription>\r
+       <ExtendedAgency>AGENT AGENT</ExtendedAgency>\r
+</ID>\r
+*/\r
+namespace Commons {\r
+\r
+    public class MorpheusXML {\r
+        public static string ToXML(string fileName, DateTime? killDate, string description, string agency) {\r
+            if (String.IsNullOrEmpty(fileName))\r
+                throw new NullReferenceException("Hiányzik a cél állomány neve.");\r
+\r
+            string result = null;\r
+            XmlDocument doc = new XmlDocument();\r
+            XmlElement rootElement = (XmlElement)doc.AppendChild(doc.CreateElement("ID"));\r
+            rootElement.SetAttribute("extendedId", fileName);\r
+            if (killDate != null)\r
+                rootElement.AppendChild(doc.CreateElement("KillDate")).InnerText = ((DateTime)killDate).ToString("MM-dd-yyyy");\r
+            if (!String.IsNullOrEmpty(description))\r
+                rootElement.AppendChild(doc.CreateElement("ExtendedDescription")).InnerText = description;\r
+            if (!String.IsNullOrEmpty(agency))\r
+                rootElement.AppendChild(doc.CreateElement("ExtendedAgency")).InnerText = agency;\r
+\r
+            XmlWriterSettings settings = new XmlWriterSettings();\r
+            settings.Indent = true;\r
+            StringBuilder ms = new StringBuilder();\r
+            XmlWriter writer = XmlWriter.Create(ms, settings);\r
+            doc.Save(writer);\r
+            result = ms.ToString();\r
+            return result;\r
+        }\r
+    }\r
+\r
+}
\ No newline at end of file
index 420f6e4b6fd4e4aca3d3b80b3520c191495de422..185f71c617cf52fb8963f1c25be54c2742332dab 100644 (file)
@@ -7,7 +7,7 @@ using System.IO;
 namespace Maestro.Configuration {\r
 \r
     public class Loader {\r
-        public static ConfigurationInfo Get(string fileName) {\r
+        public static T Get<T>(string fileName) {\r
             string configuration = File.ReadAllText(fileName);\r
             KnownTypesBinder knownTypesBinder = new KnownTypesBinder {\r
                 KnownTypes = new List<Type> { typeof(UNCSource), typeof(NEXIOSource), typeof(OctopusMetadata), typeof(TrafficMetadata), typeof(MediaCubeMetadata), }\r
@@ -18,14 +18,19 @@ namespace Maestro.Configuration {
                 //Converters = { new KeysJsonConverter() }\r
             };\r
 \r
-            return JsonConvert.DeserializeObject<ConfigurationInfo>(configuration, settings);\r
+            return JsonConvert.DeserializeObject<T>(configuration, settings);\r
         }\r
     }\r
 \r
+    public class GlobalInfo {\r
+        public string UserDomain { get; set; }\r
+    }\r
+\r
     public class ConfigurationInfo {\r
         public bool StartInTray { get; set; }\r
         public bool Active { get; set; }\r
         public string Title { get; set; }\r
+        public string UserDomain { get; set; }\r
         public Player Player { get; set; }\r
         public Source Source { get; set; }\r
         public bool EnableCustomMetadataId { get; set; }\r
@@ -58,7 +63,8 @@ namespace Maestro.Configuration {
         public bool SaveSegments { get; set; }\r
         public bool CreateSubFolder { get; set; }\r
         public string Tag { get; set; }\r
-        public bool SaveMetadata {get; set;}\r
+        public bool SaveArchiveMetadata { get; set; }\r
+        public bool SaveMorpheusMetadata { get; set; }\r
         public bool DisableFileVersioning { get; set; }\r
         public bool SendEmailOnError { get; set; }\r
         public string ErrorEmailRecipient { get; set; }\r
index fee8893aec8ab59e9804820c89dbdaca42eeeff5..72689711f9485311835fcacb6408b4a89e30f3f0 100644 (file)
@@ -48,7 +48,7 @@
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
-      "saveMetadata": false,\r
+      "saveArchiveMetadata": false,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/OCTOPUS",\r
         "userName": "mediacube",\r
@@ -63,7 +63,7 @@
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
-      "saveMetadata": false,\r
+      "saveArchiveMetadata": false,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
         "userName": "mediacube",\r
       "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
-      "saveMetadata": true,\r
+      "saveArchiveMetadata": true,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/ARCHIVE",\r
         "userName": "mediacube",\r
index c94c4bd2f15d8cb376d5de0a1a437fb0dde0b995..c8b6f5766148389a0a0e9a235a512ff881cfd8ec 100644 (file)
@@ -1,7 +1,7 @@
 {\r
   "title": "NLE",\r
   "active": false,\r
-  "startInTray": true,\r
+  "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
     "enabled": true,\r
@@ -48,7 +48,7 @@
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
-      "saveMetadata": false,\r
+      "saveArchiveMetadata": false,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/OCTOPUS",\r
         "userName": "mediacube",\r
@@ -63,7 +63,7 @@
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
-      "saveMetadata": false,\r
+      "saveArchiveMetadata": false,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
         "userName": "mediacube",\r
       "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
-      "saveMetadata": true,\r
+      "saveArchiveMetadata": true,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/ARCHIVE",\r
         "userName": "mediacube",\r
index bc80861d5ce22ab3ea08aae112a95b5082c50043..59c9038894572e4d22c66634785a1b12982e6f0b 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Lebony betöltő",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
     "$type": "UNCSource",\r
     "filter": "avi,wav,mxf",\r
     "local": {\r
-      "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
+      "address": "file://10.10.1.100/BRAAVOS/READY",\r
       "userName": "mediacube",\r
       "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
       "timeout": 1000\r
     },\r
     "remote": {\r
-      "address": "ftp://10.10.1.100/ARCHIVE",\r
+      "address": "ftp://10.10.1.100/READY",\r
       "userName": "mediacube",\r
       "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
       "timeout": 1000\r
       "saveSegments": true,\r
       "tag": "Adáskész",\r
       "disableFileVersioning": true,\r
+      "saveMorpheusMetadata": true,\r
       "remote": {\r
-        "address": "ftp://10.10.1.100/PLAYOUT/IceGateway",\r
+        "address": "ftp://10.10.1.100/PLAYOUT/IceGateway/Input",\r
+        "userName": "mediacube",\r
+        "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+        "timeout": 1000\r
+      }\r
+    },\r
+    {\r
+      "label": "X Adáskész",\r
+      "processor": "FXPTargetProcessor",\r
+      "outputFormat": "%ID%",\r
+      "saveSegments": false,\r
+      "tag": "XAdáskész",\r
+      "disableFileVersioning": false,\r
+      "saveMorpheusMetadata": true,\r
+      "remote": {\r
+        "address": "ftp://10.10.1.100/PLAYOUT/IceGateway/Input",\r
+        "userName": "mediacube",\r
+        "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+        "timeout": 1000\r
+      }\r
+    },\r
+    {\r
+      "label": "Archiválás",\r
+      "processor": "FXPTargetProcessor",\r
+      "outputFormat": "%ID%",\r
+      "tag": "Archiválás",\r
+      "saveArchiveMetadata": true,\r
+      "remote": {\r
+        "address": "ftp://10.10.1.100/ARCHIVE",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
       }\r
     }\r
+\r
   ]\r
 }\r
index 9a542e4226cfe405cec24797c82d4692b077090f..ef45e6c7b58e0ff335f3787605a5782f9c33f657 100644 (file)
@@ -55,6 +55,7 @@
       "outputFormat": "%ID%",\r
       "saveSegments": true,\r
       "tag": "Adáskész",\r
+      "reference": "Archiválás",\r
       "remote": {\r
         "address": "ftp://10.10.1.100/PLAYOUT/IceGateway",\r
         "userName": "mediacube",\r
@@ -83,7 +84,7 @@
       "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
-      "saveMetadata": true,\r
+      "saveArchiveMetadata": true,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/ARCHIVE",\r
         "userName": "mediacube",\r
index d832d94bc292f9e52eb93c57c4b1894df352826a..b2c132d09b2d4679f6278d0bc7305c33cde97734 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Stúdió",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "filter": "avi",\r
@@ -62,7 +62,7 @@
       "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
-      "createMetadata": true,\r
+      "saveArchiveMetadata": true,\r
       "remote": {\r
         "address": "ftp://10.10.1.100:21/ARCHIVE",\r
         "userName": "mediacube",\r
index 37437d743ce73de0effb7f6160ed789597058750..99e07e9f4ff29944812ac0c868157d6b8060688b 100644 (file)
@@ -48,7 +48,7 @@
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
-      "saveMetadata": false,\r
+      "saveArchiveMetadata": false,\r
       "remote": {\r
         "address": "file://10.10.1.100/BRAAVOS/OCTOPUS",\r
         "userName": "mediacube",\r
@@ -63,7 +63,7 @@
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
-      "saveMetadata": false,\r
+      "saveArchiveMetadata": false,\r
       "remote": {\r
         "address": "file://10.10.1.100/BRAAVOS/PLAYOUT_NLE",\r
         "userName": "mediacube",\r
@@ -89,7 +89,7 @@
       "processor": "UNCTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
-      "saveMetadata": true,\r
+      "saveArchiveMetadata": true,\r
       "remote": {\r
         "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
         "userName": "mediacube",\r
diff --git a/client/Maestro/Configuration/global.json b/client/Maestro/Configuration/global.json
new file mode 100644 (file)
index 0000000..aa5d8af
--- /dev/null
@@ -0,0 +1,3 @@
+{\r
+  "userDomain": "intra.echotv.hu"\r
+}\r
index 975da184aa5a296cab235976f35b2dd8e38cbf76..88c783c08e512cb0ba77dcf4e888d57262f5ff58 100644 (file)
     <Reference Include="System" />\r
     <Reference Include="System.Data" />\r
     <Reference Include="System.Deployment" />\r
+    <Reference Include="System.DirectoryServices.AccountManagement" />\r
     <Reference Include="System.Drawing" />\r
     <Reference Include="System.IO.Compression.FileSystem" />\r
     <Reference Include="System.Numerics" />\r
       <DependentUpon>ArchiveMetadataForm.cs</DependentUpon>\r
     </Compile>\r
     <Compile Include="Commons\DataGridViewProgressColumn.cs" />\r
+    <Compile Include="Commons\MorpheusXML.cs" />\r
     <Compile Include="Commons\NexioXML.cs" />\r
     <Compile Include="Commons\ObjectExtensions.cs" />\r
     <Compile Include="Commons\SambaClient.cs" />\r
     <Compile Include="MaestroForm.Source.cs">\r
       <SubType>Form</SubType>\r
     </Compile>\r
+    <None Include="Configuration\global.json">\r
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
+    </None>\r
     <None Include="Configuration\configuration-nexio-ingest.json">\r
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
     </None>\r
index 6c96477d5ec0dcb6fabef7970feeda23d9e1d12f..229d1128e608fce63013df5c3a24a957ab387d7c 100644 (file)
@@ -320,7 +320,7 @@ namespace Maestro {
             this.ctxiModifyArchiveMetadata.Name = "ctxiModifyArchiveMetadata";\r
             this.ctxiModifyArchiveMetadata.Size = new System.Drawing.Size(206, 22);\r
             this.ctxiModifyArchiveMetadata.Text = "Modify archive metadata";\r
-            this.ctxiModifyArchiveMetadata.Click += new System.EventHandler(this.ModifyArchiveMetadataClick);\r
+            this.ctxiModifyArchiveMetadata.Click += new System.EventHandler(this.OnArchiveMetadataClick);\r
             // \r
             // splitContainer1\r
             // \r
index 0606f55585d96c1ed82cbd0f3138ae5f24ed5b96..4a8e1481707e00d059c4a027bbe296cb2f19cc5d 100644 (file)
@@ -88,7 +88,7 @@ namespace Maestro {
             mediaCubeApi = new MediaCubeApi(metadata.Server.Address.ToString(), metadata.Server.UserName, metadata.Server.Password, metadata.Server.Timeout, errorMessageBus);\r
         }\r
 \r
-        private void ModifyArchiveMetadataClick(object sender, EventArgs e) {\r
+        private void OnArchiveMetadataClick(object sender, EventArgs e) {\r
             if (archiveMetadata == null)\r
                 archiveMetadata = GetArchiveMetadata();\r
             ArchiveMetadataForm form = new ArchiveMetadataForm(archiveMetadata);\r
@@ -200,6 +200,8 @@ namespace Maestro {
                     result = GetOctopusMetadata();\r
                     break;\r
                 case MetadataType.TrafficMaterial:\r
+                case MetadataType.TrafficPromo:\r
+                case MetadataType.TrafficAD:\r
                     result = GetTrafficMetadata(metadataType);\r
                     break;\r
             }\r
@@ -364,7 +366,6 @@ namespace Maestro {
         }\r
 \r
         private void UpdateEditArchiveMetadataEnabled() {\r
-            //            ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(textSelectedMetadata.Text);\r
             ctxiModifyArchiveMetadata.Enabled = SelectedSource != null;\r
         }\r
 \r
index 73764e896dfe5d46c990afd446547b7ad124be19..49cf6a0b1e44867cd41f9c34c224e5d7b3dada53 100644 (file)
@@ -132,7 +132,7 @@ namespace Maestro {
         }\r
 \r
         private bool EnsureMetadata(Target target) {\r
-            if (target.SaveMetadata && (archiveMetadata == null || !archiveMetadata.IsFilled)) {\r
+            if ((target.SaveArchiveMetadata || target.SaveMorpheusMetadata) && (archiveMetadata == null || !archiveMetadata.IsFilled)) {\r
                 archiveMetadata = GetArchiveMetadata();\r
                 if (archiveMetadata == null) {\r
                     MessageBox.Show(String.Format("A {0} folyamat nem futtatható kísérő adatok nélkül.", target.Label));\r
index d3a4d13879eab451aed127a080c8cae328e03a3a..b245a294801583a91089cff9787252290f3983ed 100644 (file)
@@ -22,6 +22,7 @@ namespace Maestro.Metadata {
             //    StuffID, StuffTitle, StuffDescription, MediaID, MediaTitle, MediaDescription);\r
         }\r
 \r
+        [JsonIgnore]\r
         public bool IsFilled {\r
             get {\r
                 return\r
index 9f1ab25fb1ba97ea2bb75eef2efe489615111f8f..4efd52abec9f7107d3adf193080d2610e16a6f08 100644 (file)
@@ -8,6 +8,7 @@ using System;
 using System.Collections.Concurrent;\r
 using System.Collections.Generic;\r
 using System.Diagnostics;\r
+using System.DirectoryServices.AccountManagement;\r
 using System.Drawing;\r
 using System.IO;\r
 using System.Linq;\r
@@ -48,16 +49,22 @@ namespace Maestro {
                 }\r
                 finally {\r
                     if (hasHandle) {\r
+                        TrayApplicationContext context = null;\r
                         try {\r
                             Application.EnableVisualStyles();\r
                             Application.SetCompatibleTextRenderingDefault(false);\r
-                            Application.Run(new TrayApplicationContext());\r
+                            context = new TrayApplicationContext();\r
+                            context.Start();\r
+                            Application.Run(context);\r
                         }\r
                         catch (Exception e) {\r
                             Debug.WriteLine(e.Message);\r
+                            MessageBox.Show(new Form() { TopMost = true }, "Nincs aktív konfiguráció!");\r
                         }\r
                         finally {\r
                             mutex.ReleaseMutex();\r
+                            if (context != null)\r
+                                context.Stop();\r
                         }\r
                     }\r
                 }\r
@@ -69,13 +76,20 @@ namespace Maestro {
     }\r
 \r
     public class TrayApplicationContext : ApplicationContext {\r
+        private const string GLOBAL_JSON = "global.json";\r
+        private const string JSON_WILDCARD = "*.json";\r
+        private const string CONFIG_ERROR = "Nincs aktív konfiguráció!";\r
+        private const string SYSCONFIG_ERROR = "Nincs rendszer konfiguráció!";\r
+        private const string CONFIGURATION_FOLDER = "./Configuration";\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
         private NotifyIcon trayIcon;\r
         private ConcurrentBag<MeastroFormNotifyIcon> forms = new ConcurrentBag<MeastroFormNotifyIcon>();\r
         private IMessageBus messageBus = new MessageBus();\r
 \r
         public TrayApplicationContext() {\r
+        }\r
 \r
+        public void Start() {\r
             String[] arguments = Environment.GetCommandLineArgs();\r
             if (!arguments.ToList().Contains("nosplash")) {\r
                 Splash splash = new Splash();\r
@@ -83,28 +97,42 @@ namespace Maestro {
                     Application.Run(splash);\r
                 });\r
             }\r
-            CreateForms();\r
             CreateTrayIcon();\r
+            CreateForms();\r
         }\r
 \r
         private void CreateForms() {\r
-            string[] files = Directory.GetFiles("./Configuration", "*.json");\r
-            if (files.Length == 0) {\r
-                MessageBox.Show(new Form() { TopMost = true }, "Nincs aktív konfiguráció!");\r
-                TerminateApplication();\r
-            }\r
+            string[] files = Directory.GetFiles(CONFIGURATION_FOLDER, JSON_WILDCARD);\r
+            if (files.Length == 0)\r
+                throw new Exception(CONFIG_ERROR);\r
+            \r
+            CheckGlobalConfig(files);\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
-            }\r
+            if (forms.Count == 0)\r
+                throw new Exception(CONFIG_ERROR);\r
+        }\r
+\r
+        private void CheckGlobalConfig(string[] files) {\r
+            string globalFile = Path.Combine(CONFIGURATION_FOLDER, GLOBAL_JSON);\r
+            if (files.Contains(globalFile)) {\r
+                GlobalInfo global = Loader.Get<GlobalInfo>(globalFile);\r
+                if (String.IsNullOrEmpty(global.UserDomain))\r
+                    throw new Exception(SYSCONFIG_ERROR);\r
+                else {\r
+                    //using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, global.UserDomain)) {\r
+                    //    bool isValid = pc.ValidateCredentials("echotest", "aA123456+");\r
+                    //    Debug.WriteLine("User valid: " + isValid);\r
+                    //}\r
+                }\r
+            } else\r
+                throw new Exception(SYSCONFIG_ERROR);\r
         }\r
 \r
         private void CreateForm(string file) {\r
             try {\r
-                ConfigurationInfo config = Loader.Get(file);\r
+                ConfigurationInfo config = Loader.Get<ConfigurationInfo>(file);\r
                 if (!config.Active)\r
                     return;\r
                 ApplyCommandLineParameters(ref config);\r
@@ -198,10 +226,11 @@ namespace Maestro {
         }\r
 \r
         void Exit(object sender, EventArgs e) {\r
-            TerminateApplication();\r
+            Stop();\r
+            Application.Exit();\r
         }\r
 \r
-        private void TerminateApplication() {\r
+        public void Stop() {\r
             foreach (MeastroFormNotifyIcon form in forms) {\r
                 form.CloseForm();\r
             }\r
@@ -209,7 +238,6 @@ namespace Maestro {
                 trayIcon.Visible = false;\r
                 trayIcon.Dispose();\r
             }\r
-            Application.Exit();\r
         }\r
     }\r
 }\r
index b3d4e246d5417ebbc72b91a69c6d6194fe857b3d..c260c51a716515fa6f0c41ea38ce34aa141e2ad6 100644 (file)
@@ -107,8 +107,10 @@ namespace Maestro.Targets {
                     UploadKillDateFile();\r
             }\r
 \r
-            if (parameters.TargetConfig.SaveMetadata && parameters.ArchiveMetadata != null)\r
-                CreateMetadata();\r
+            if (parameters.TargetConfig.SaveArchiveMetadata && parameters.ArchiveMetadata != null)\r
+                CreateArchiveMetadata();\r
+            if (parameters.TargetConfig.SaveMorpheusMetadata && parameters.ArchiveMetadata != null)\r
+                CreateArchiveMetadata();\r
             if (parameters.TargetConfig.SaveSegments && parameters.Segments != null)\r
                 //eljuthat-e ide a felhasználó, ha a MetadataKind octopus?\r
                 parameters.TrafficApi.UpdateTrafficInformation(parameters.VariantID, true, (TrafficMetadataType)parameters.MetadataKind, parameters.Segments);\r
@@ -194,7 +196,18 @@ namespace Maestro.Targets {
             KillDate = date.ToString("yyyy.MM.dd");\r
         }\r
 \r
-        private void CreateMetadata() {\r
+        private void CreateArchiveMetadata() {\r
+            Uri address = parameters.TargetConfig.Remote.Address;\r
+            string statusWorkDir = Path.Combine(workingDir, STATUS_FOLDER);\r
+            EnsureDirectoryExistence(statusWorkDir);\r
+            string fileName = String.Format(METADATA_FILE, OutputName);\r
+            logger.Debug("Creating METADATA file {0}", fileName);\r
+            byte[] content = Encoding.UTF8.GetBytes(parameters.ArchiveMetadata.ToString());\r
+            string ouputPath = GetOutputFilePath(statusWorkDir, fileName);\r
+            UploadContent(ouputPath, content);\r
+        }\r
+\r
+        private void CreateTrafficMetadata() {\r
             Uri address = parameters.TargetConfig.Remote.Address;\r
             string statusWorkDir = Path.Combine(workingDir, STATUS_FOLDER);\r
             EnsureDirectoryExistence(statusWorkDir);\r
index 1da65be5800c36c7ab581f0b63ce9bd439cc56b0..5e8fd479de2d4d8d5da2adf9d7148c7e1daf6cc8 100644 (file)
             this.chkProblematic.TabIndex = 7;\r
             this.chkProblematic.Text = "Missing copia";\r
             this.chkProblematic.UseVisualStyleBackColor = true;\r
+            this.chkProblematic.CheckedChanged += new System.EventHandler(this.OnTypeFilterChanged);\r
             // \r
             // pSearch\r
             // \r
index 40ebd35ed81b88870739d3673d04253ead11d412..e0133a67fff6675f1f2f01fecff446f3ccd9c5f2 100644 (file)
@@ -104,8 +104,8 @@ namespace TrafficClient.Workers {
                 TryConnect();\r
                 using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
                     cmd.CommandType = CommandType.StoredProcedure;\r
-                    cmd.Parameters.AddWithValue("@Operation", 2001);\r
-                    cmd.Parameters.AddWithValue("@@@Options", 40);\r
+                    cmd.Parameters.AddWithValue("@Operation", 2002);\r
+                    cmd.Parameters.AddWithValue("@@@Options", 0);\r
                     cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
                     cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
                     using (SqlDataReader reader = cmd.ExecuteReader()) {\r
index 410e2004016880c5ce032744c0e18155f9d5f706..d6ab42dcfd99befb019b7827a41e81c537090cac 100644 (file)
@@ -24,7 +24,7 @@
        {"name": "userName", "value": "MAM", "type": "java.lang.String"},\r
        {"name": "password", "value": "Echotv.hu", "type": "java.lang.String"},\r
        {"name": "lookupDays", "value": 7, "type": "java.lang.Integer"},\r
-       {"name": "targetPath", "value": "\\\\10.10.1.100\\BRAAVOS\\PLAYOUT", "type": "java.lang.String"},\r
+       {"name": "targetPath", "value": "/mnt/ISILON/PLAYOUT/IceGateway/Input", "type": "java.lang.String"},\r
        {"name": "killDateDays", "value": 10, "type": "java.lang.Integer"}\r
       ]\r
        },      \r
@@ -35,8 +35,8 @@
       "executeimmediate": true,\r
       "cronexpression": "0 0 0/1 1/1 * ? *",\r
       "parameters": [\r
-       {"name": "sourcePath", "value": "\\\\10.10.1.100\\BRAAVOS\\PLAYOUT\\MORPHEUS", "type": "java.lang.String"},\r
-       {"name": "targetPath", "value": "\\\\10.10.1.100\\BRAAVOS\\PLAYOUT", "type": "java.lang.String"},\r
+       {"name": "sourcePath", "value": "/mnt/MORPHEUS", "type": "java.lang.String"},\r
+       {"name": "targetPath", "value": "/mnt/ISILON/PLAYOUT/IceGateway/Input", "type": "java.lang.String"},\r
        {"name": "killDateDays", "value": 10, "type": "java.lang.Integer"}\r
       ]\r
        },      \r
@@ -66,7 +66,7 @@
       ]\r
        },      \r
        {\r
-      "active": false,\r
+      "active": true,\r
          "name" : "OCTOPUS adatok szinkronizálása",\r
       "template": "sync-octopus.xml",\r
       "executeimmediate": true,\r
index 5530447799c8cd7b993848d525322a5a40c44c01..828a20c6f2d290d2d6b5fd7ba94dc867aeefafa9 100644 (file)
@@ -72,9 +72,13 @@ Windows mapping
        \r
 Selenio\r
 -------\r
- mount -t cifs -o username=root,password=Broadca5T //10.10.1.71/Data/Output/MP4_H264_AAC       \r
+ mount -t cifs -o username=root,password=Broadca5T //10.10.1.71/Data/Output/MP4_H264_AAC /mnt/SELENIO  \r
  \r
 \r
+Morpheus\r
+-------\r
+ mount -t cifs -o username=SAM,password=sam //192.168.100.91/MissingMaterial /mnt/MORPHEUS     \r
+\r
 MediaCube \r
 ---------\r
 Schedule\r
index 2acba7d3631c5347a6919dd67e313d2f261c4da2..77ff5dd3a9574eb47576922057a6b458ebfa3fb1 100644 (file)
@@ -1,8 +1,8 @@
 @ECHO OFF\r
 \r
-SET REMOTE_HOST=10.10.1.28\r
+SET REMOTE_HOST=10.10.1.27\r
 SET REMOTE_LOCATION=/opt/mediacube/configuration/executors\r
-SET REMOTE_SERVER_HOSTKEY=ssh-rsa 2048 7e:0a:bb:8b:38:0f:22:c3:81:d4:1a:44:f3:91:ea:1f\r
+SET REMOTE_SERVER_HOSTKEY=ssh-ed25519 256 ea:ab:67:70:79:63:2f:6a:34:81:48:e2:b9:dd:ca:d4\r
 SET REMOTE_SERVER_ADDRESS=scp://root:password@%REMOTE_HOST%\r
 SET LOCAL_STEPS_LOCATION=bin/user/jobengine/server/steps\r
 SET LOCAL_CONFIG_LOCATION=config\r
@@ -22,6 +22,7 @@ SET LOCAL_CONFIG_LOCATION=config
        "lcd ..\" ^\r
        "lcd %LOCAL_CONFIG_LOCATION%" ^\r
        "synchronize remote -filemask=config.xml" ^\r
+       "call pcs resource restart mediacube_script" ^\r
        "exit"\r
        \r
        ECHO *** Completed ***\r
index 843b27345f0af4012ac6a2b55c371283916557fd..0e9d301d237cee785d4e0e3686024473b0e874cd 100644 (file)
@@ -32,6 +32,7 @@ public class CheckMORPHEUSMissingMaterialsStep extends JobStep {
        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 static final String MXF_EXT = ".MXF";\r
        private String targetPath;\r
        private MediaFileDAO dao;\r
        private IJobEngine jobEngine;\r
@@ -69,8 +70,8 @@ public class CheckMORPHEUSMissingMaterialsStep extends JobStep {
                        return;\r
                }\r
 \r
-               jobEngine.submit(JOBTEMPLATE, RETRIEVE_MATERIAL, ListUtils.asMap(MEDIACUBEMEDIA, medias.get(0), TARGETPATH, targetPath, TARGETNAMEPATTERN, "%s",\r
-                               SUCCESSRECIPIENT, null, KILLDATEDAYS, killDateDays));\r
+               jobEngine.submit(JOBTEMPLATE, RETRIEVE_MATERIAL, ListUtils.asMap(MEDIACUBEMEDIA, medias.get(0), TARGETPATH, targetPath, TARGETNAMEPATTERN,\r
+                               mediaId + MXF_EXT, SUCCESSRECIPIENT, null, KILLDATEDAYS, killDateDays));\r
        }\r
 \r
        private void processMissingMaterialCSV(Path csvFilePath) throws Exception {\r
@@ -84,7 +85,7 @@ public class CheckMORPHEUSMissingMaterialsStep extends JobStep {
                        String line = lines.get(i);\r
                        if (line == null)\r
                                continue;\r
-                       String[] data = line.split("\\t");\r
+                       String[] data = line.split(",");\r
                        if (i == 0) {\r
                                //Channel,Time to Air,Duration,Material ID,Title,Device ID,Reason,\r
                                List<String> dataList = Arrays.asList(data);\r
index da8d37cb316c0d89ca14ad5440e37b0adfb62700..96eac917c804a67099538288bb997a61a06666f7 100644 (file)
@@ -131,4 +131,5 @@ public class OctopusDataMinerTest {
                        }\r
                }\r
        }\r
+\r
 }\r
index b9544737d86f65b4b8c61a3ee9d05738c9521c7b..7ecf7cbbf98682314a1259e2af830c7fe898cee2 100644 (file)
@@ -205,6 +205,7 @@ public class JobStepExecutor implements IJobStepExecutor {
        @Override
        public void submit(IJobRuntime jobRuntime) {
                queue.put(jobRuntime);
+               jobRuntime.setDescription(stepClass.getSimpleName());
                logger.info("Executor got ! {}", jobRuntime);
        }
 
index 28806e1234c279e361f80a0ee7c58f271b9ff68b..fe70ad8ea367a7f0883a9a7e2d2fcd8cd315e14a 100644 (file)
@@ -55,7 +55,7 @@ public class JobStep implements IJobStep {
        public Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Exception {\r
                Object[] result = null;\r
                this.jobRuntime = jobRuntime;\r
-               jobRuntime.setDescription("Feldolgozás: " + getClass().getSimpleName());\r
+               //jobRuntime.setDescription("Feldolgozás: " + getClass().getSimpleName());\r
                jobRuntime.NotifyUpdate();\r
                for (Method method : getClass().getDeclaredMethods()) {\r
                        Annotation annotation = method.getAnnotation(StepEntry.class);\r