git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 23 Nov 2017 21:57:43 +0000 (21:57 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 23 Nov 2017 21:57:43 +0000 (21:57 +0000)
client/Maestro/Configuration/configuration-nle.json
client/MaestroShared/Targets/FTPTargetProcessor.cs
client/MaestroShared/Targets/UNCTargetProcessor.cs
client/OctopusClient/OctopusIDSelector.cs

index c9fd6245832ccb8bd0b941d32b3be50e09358adf..96cda96cd811408f6832dd5918ca8638a763b0e7 100644 (file)
       },\r
       "projectSettings": {\r
         "templateRoot": {\r
-          "address": "ftp://10.10.1.100/.MAESTRO",\r
+          "address": "file://10.10.1.100/BRAAVOS/.MAESTRO",\r
           "userName": "mediacube",\r
           "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
           "timeout": 1000\r
         },\r
         "projectRoot": {\r
-          "address": "ftp://10.10.1.100/OCTOPUS",\r
+          "address": "file://10.10.1.100/BRAAVOS/OCTOPUS",\r
           "userName": "mediacube",\r
           "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
           "timeout": 1000\r
         },\r
         "templateName": "ALAPTIMELINE.ezp",\r
-        "projectName": "PROJECT/%ID%-%TEXT%.ezp",\r
-        "projectFormat": "%IDROOT%-%TEXT%",\r
+        "projectName": "%ID%-%TEXT%",\r
+        "projectFormat": "%IDROOT%-%TEXT%/PROJECT",\r
         "disableProject": false,\r
         "disableSourceOpen": false\r
       }\r
index d0fc6eb09f510073c99d544918629ac7ac8556ec..ee19782ac4f087bd2afcb7cacacd495b0ebb5c3c 100644 (file)
@@ -25,9 +25,7 @@ namespace MaestroShared.Targets {
                 string address = parameters?.SourceConfig?.Remote?.Address.ToString();\r
                 if (address == null)\r
                     throw new Exception("Missing 'source.remote' parameter.");\r
-                if (!SLASH.Equals(address[address.Length - 1]))\r
-                    address = address + SLASH;\r
-                Uri inputUri = new Uri(new Uri(address.ToString()), parameters.InputFileName);\r
+                Uri inputUri = new Uri(Path.Combine(address, parameters.InputFileName));\r
                 Input = inputUri.ToString();\r
             }\r
         }\r
@@ -67,12 +65,6 @@ namespace MaestroShared.Targets {
             }\r
         }\r
 \r
-        protected void reconnect() {\r
-            TerminateClient(targetFTP);\r
-            targetFTP = CreateClient(Parameters.TargetConfig.Remote);\r
-            EnsureDirectoryExistence(workingDir);\r
-        }\r
-\r
         protected override void UploadContent(string outputPath, byte[] content) {\r
             using (Stream ostream = targetFTP.OpenWrite(outputPath, FtpDataType.Binary, false)) {\r
                 try {\r
index ad0af0e2c03f8415297ff57686bb06277a3164c4..db0e27fcbe56f8d8fc6f58792aa14f01fec3d339 100644 (file)
@@ -33,17 +33,8 @@ namespace MaestroShared.Targets {
         private const string HYPHENSTAR = "-*";\r
         private const string DATE_FORMAT_NODOTS = "yyyyMMdd";\r
         private const string HYPHEN_SPACES = " - ";\r
-        private const string PATTERN_TARGETNAME = "%TARGETNAME%";\r
-        private const string PATTERN_ID = "%ID%";\r
-        private const string PATTERN_IDROOT = "%IDROOT%";\r
-        private const string PATTERN_SOURCENAME = "%SOURCENAME%";\r
-        private const string PATTERN_TIMESTAMP = "%TIMESTAMP%";\r
-        private const string PATTERN_DATESTAMP = "%DATESTAMP%";\r
-        private const string DATETIME_FORMAT = "yyyyMMddhhmmss";\r
-\r
         protected const string UNDERSCORE = "_";\r
         protected const string HYPHEN = "-";\r
-        protected const string PATTERN_TEXT = "%TEXT%";\r
         protected const string SLASH = "/";\r
         protected const string BACKSLASH = @"\";\r
         private const string STAR = "*";\r
@@ -86,12 +77,13 @@ namespace MaestroShared.Targets {
                 Status = INPROGRESS;\r
                 //DateTime started = DateTime.Now;\r
                 string currentFile = GetOutputFilePath(workingDir, OutputName);\r
-                HandleFileExists(currentFile);\r
-                if (!REVOKED.Equals(Status)) {\r
+                if (DeleteExisting(currentFile)) {\r
                     UploadFile();\r
                     //logger.Info("Spend (s):" + (DateTime.Now - started).TotalSeconds);\r
                     ExecuteCompleted();\r
                 }\r
+                Status = READY;\r
+                Message = SUCCESS;\r
             }\r
             catch (Exception e) {\r
                 Status = ERROR;\r
@@ -112,14 +104,21 @@ namespace MaestroShared.Targets {
             Output = SLASH.Equals(workingDir) ? OutputName : Path.Combine(workingDir, OutputName);\r
         }\r
 \r
-        private void HandleFileExists(string currentFile) {\r
+        private bool DeleteExisting(string currentFile) {\r
+            bool result = true;\r
             if (FileExists(currentFile) && (Parameters.TargetConfig.DisableFileVersioning || Parameters.TargetConfig.DisableOverride)) {\r
                 if (Parameters.TargetConfig.NexioServer) {\r
                     Status = REVOKED;\r
                     ShowNexioFileExistsMessage();\r
-                } else\r
-                    DeleteFile(currentFile);\r
+                    result = false;\r
+                } else {\r
+                    if (Parameters.TargetConfig.DisableOverride)\r
+                        result = false;\r
+                    else\r
+                        DeleteFile(currentFile);\r
+                }\r
             }\r
+            return result;\r
         }\r
 \r
         private void ShowNexioFileExistsMessage() {\r
@@ -163,8 +162,6 @@ namespace MaestroShared.Targets {
                 UpdateTrafficInformation();\r
             if (Parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(Parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(Parameters.TargetConfig.SuccessEmailPattern))\r
                 SendEmail(Parameters.TargetConfig.SuccessEmailRecipient, Parameters.TargetConfig.SuccessEmailPattern);\r
-            Status = READY;\r
-            Message = SUCCESS;\r
         }\r
 \r
         private void UpdateTrafficInformation() {\r
@@ -215,7 +212,7 @@ namespace MaestroShared.Targets {
 \r
         private void SendEmail(string to, string messagePattern) {\r
             try {\r
-                string message = GetDynamicText(PATTERN_TARGETNAME);\r
+                string message = GetDynamicText(messagePattern);\r
                 Parameters.MediaCubeApi.Notify(to, message);\r
             }\r
             catch (Exception e) {\r
@@ -260,28 +257,27 @@ namespace MaestroShared.Targets {
             if (String.IsNullOrEmpty(Parameters.TargetConfig.SubFolderFormat))\r
                 return result;\r
             string subFolderName = Slash(GetDynamicText(Parameters.TargetConfig.SubFolderFormat));\r
-            string pattern = subFolderName;\r
-            string searchPath = result;\r
-            if (pattern.Contains(SLASH)) {\r
-                string[] segments = pattern.Split(SLASH[0]);\r
-                pattern = segments[segments.Length - 1];\r
-                searchPath = Slash(Path.Combine(result, subFolderName.Substring(0, subFolderName.Length - pattern.Length - 1)));\r
+            string[] segments = subFolderName.Split(SLASH[0]);\r
+            string[] formats = Parameters.TargetConfig.SubFolderFormat.Replace(BACKSLASH, SLASH).Split(SLASH[0]);\r
+            for (int i = 0; i < segments.Length; i++) {\r
+                string segment = segments[i];\r
+                int p = segment.IndexOf(HYPHEN);\r
+                int o = segment.IndexOf(UNDERSCORE);\r
+                if (formats[i].Contains("%") && (p > -1 || o > -1)) {\r
+                    string pattern = null;\r
+                    if (p < o && p > -1)\r
+                        pattern = segment.Substring(0, p);\r
+                    else\r
+                        pattern = segment.Substring(0, o);\r
+                    pattern += STAR;\r
+                    string searchResult = SearchDirectory(result, pattern);\r
+                    if (searchResult == null)\r
+                        result = Slash(Path.Combine(result, segment));\r
+                    else\r
+                        result = Slash(Path.Combine(result, searchResult));\r
+                } else\r
+                    result = Slash(Path.Combine(result, segment));\r
             }\r
-            int p = pattern.IndexOf(HYPHEN);\r
-            int o = pattern.IndexOf(UNDERSCORE);\r
-            if (p > -1 || o > -1) {\r
-                if (p < o && p > -1)\r
-                    pattern = pattern.Substring(0, p);\r
-                else\r
-                    pattern = pattern.Substring(0, o);\r
-                pattern += STAR;\r
-                string searchResult = SearchDirectory(searchPath, pattern);\r
-                if (searchResult == null)\r
-                    result = Slash(Path.Combine(result, subFolderName));\r
-                else\r
-                    result = Slash(Path.Combine(result, searchResult));\r
-            } else\r
-                result = Slash(Path.Combine(connection.Address.LocalPath, subFolderName));\r
 \r
             return result;\r
         }\r
@@ -387,7 +383,7 @@ namespace MaestroShared.Targets {
                     version++;\r
                 }\r
             }\r
-            return result.ToUpper().Replace(BACKSLASH, SLASH);\r
+            return result.ToUpper();\r
         }\r
 \r
         protected virtual void EnsureDirectoryExistence(string path) {\r
index ac785efebe7bb7a694839603b5d0148fa1d90a1d..a237136308a83ec6143331d8baaf48b6d38b354a 100644 (file)
@@ -10,6 +10,7 @@ using MaestroShared.Configuration;
 using System.IO;\r
 using MaestroShared.Targets;\r
 using MaestroShared.Target;\r
+using System.Diagnostics;\r
 \r
 namespace OctopusClient {\r
     public delegate void OnSelectedIDChanged(string id, string name, string text);\r
@@ -410,13 +411,7 @@ namespace OctopusClient {
                 MessageBox.Show("A 'projectSetings' beállítás hiányos a konfigurációs állományban.", null, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
                 return;\r
             }\r
-            //string source = Path.Combine(projectConfiguration.TemplateRoot.Address.LocalPath, projectConfiguration.TemplateName);\r
-            //if (!File.Exists(source)) {\r
-            //    MessageBox.Show($"Az '{source}' állomány nem létezik.", null, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
-            //    return;\r
-            //}\r
             Story story = node.Tag as Story;\r
-\r
             TargetProcessorParameter processorParameter = new TargetProcessorParameter() {\r
                 SourceConfig = new Source() {\r
                     Local = projectConfiguration.TemplateRoot,\r
@@ -435,12 +430,16 @@ namespace OctopusClient {
                 UserName = parameters.UserName,\r
             };\r
 \r
-            ITargetProcessor result = new FXPTargetProcessor();\r
-            result.Initialize(null, processorParameter);\r
-            result.Execute();\r
+            ITargetProcessor processor = new UNCTargetProcessor();\r
+            processor.Initialize(null, processorParameter);\r
+            processor.Execute();\r
 \r
-            //Patter    \r
+            if (!TargetProcessor.READY.Equals(processor.Status)) {\r
+                MessageBox.Show(processor.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+                return;\r
+            }\r
 \r
+            Process.Start(processor.Output);\r
         }\r
 \r
 \r