git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 18 Oct 2017 13:50:55 +0000 (13:50 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 18 Oct 2017 13:50:55 +0000 (13:50 +0000)
client/Maestro/Configuration/configuration-editor.json
client/Maestro/Configuration/configuration-nle.json
client/Maestro/Configuration/configuration-playout.json
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/Targets/FTPTargetProcessor.cs
client/Maestro/Targets/FXPTargetProcessor.cs
client/Maestro/Targets/UNCTargetProcessor.cs

index baf139356309e76cf7fffdf7fa6978587dfaf52a..216100485a12212e9b92840a0835173f376e58f4 100644 (file)
     }\r
   ],\r
   "targets": [\r
-    {\r
-      "label": "Stúdióba küldés",\r
-      "processor": "FTPTargetProcessor",\r
-      "outputFormat": "%ID%",\r
-      "tag": "Betöltés",\r
-      "nexioServer": true,\r
-      "killDateDays": 7,\r
-      "remote": {\r
-        "address": "ftp://10.10.1.56:2098",\r
-        "userName": "administrator",\r
-        "password": "+QtkeQdCTiOvZOgK/kUND4pO4/D+//r7ZIyluwMMdiqMEgO8iJErAG10ooWhPfiljQeXrdeyMzo7gWEZtcWpNSomGeDIbdMyQwtpqmMo1VEM3A27ZfzigY09YD46ECRh",\r
-        "timeout": 1000\r
-      }\r
-    },\r
     {\r
       "label": "Hír nyersanyag betöltés",\r
       "processor": "FTPTargetProcessor",\r
         "timeout": 1000\r
       }\r
     },\r
+    {\r
+      "label": "Stúdióba küldés",\r
+      "processor": "FTPTargetProcessor",\r
+      "outputFormat": "%ID%",\r
+      "tag": "Betöltés",\r
+      "nexioServer": true,\r
+      "killDateDays": 7,\r
+      "agency": "MAESTRO-EDITOR",\r
+      "reference": "Hír nyersanyag betöltés",\r
+      "remote": {\r
+        "address": "ftp://10.10.1.56:2098",\r
+        "userName": "administrator",\r
+        "password": "+QtkeQdCTiOvZOgK/kUND4pO4/D+//r7ZIyluwMMdiqMEgO8iJErAG10ooWhPfiljQeXrdeyMzo7gWEZtcWpNSomGeDIbdMyQwtpqmMo1VEM3A27ZfzigY09YD46ECRh",\r
+        "timeout": 1000\r
+      }\r
+    },\r
     {\r
       "label": "Lebonyba küldés",\r
       "processor": "FTPTargetProcessor",\r
index 28c548c553603972bd4aa3ea56d0ead152df5246..427ddab65a09ad5de8586ca20440b66bd497ac1e 100644 (file)
   "targets": [\r
     {\r
       "label": "Hír nyersanyag betöltés",\r
-      "processor": "UNCTargetProcessor",\r
+      "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%-%SOURCENAME%",\r
       "tag": "Betöltés",\r
       "createSubFolder": true,\r
       "killDateDays": 7,\r
+      "useMetadata": false,\r
       "remote": {\r
-        "address": "file://10.10.1.100/BRAAVOS/OCTOPUS",\r
+        "address": "ftp://10.10.1.100/OCTOPUS",\r
+        "userName": "mediacube",\r
+        "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+        "timeout": 1000\r
+      }\r
+    },\r
+    {\r
+      "label": "Magazin nyersanyag betöltés",\r
+      "processor": "FTPTargetProcessor",\r
+      "outputFormat": "%ID%-%SOURCENAME%",\r
+      "tag": "Betöltés",\r
+      "createSubFolder": true,\r
+      "killDateDays": 7,\r
+      "useMetadata": false,\r
+      "remote": {\r
+        "address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
@@ -61,8 +77,8 @@
       "outputFormat": "%ID%",\r
       "tag": "Betöltés",\r
       "nexioServer": true,\r
-      "agency": "NLE UPLOAD",\r
       "killDateDays": 7,\r
+      "agency": "MAESTRO-NLE",\r
       "reference": "Hír nyersanyag betöltés",\r
       "remote": {\r
         "address": "ftp://10.10.1.56:2098",\r
     },\r
     {\r
       "label": "Lebonyba küldés",\r
-      "processor": "UNCTargetProcessor",\r
+      "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Betöltés",\r
       "killDateDays": 7,\r
       "remote": {\r
-        "address": "file://10.10.1.100/BRAAVOS/PLAYOUT_CHECK",\r
+        "address": "ftp://10.10.1.100/PLAYOUT_CHECK",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
     },\r
     {\r
       "label": "Archiválás",\r
-      "processor": "UNCTargetProcessor",\r
+      "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
       "useMetadata": true,\r
       "remote": {\r
-        "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
+        "address": "ftp://10.10.1.100/ARCHIVE",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
index e61d9a050bf39a91b8de582dc247d07d954f9d2e..997f8f76406cec2c1ada811e8dc14624eb314a18 100644 (file)
   "targets": [\r
     {\r
       "label": "Adáskész",\r
-      "processor": "UNCTargetProcessor",\r
+      "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "saveSegments": true,\r
       "tag": "Adáskész",\r
-      "reference": "Archiválás",\r
       "remote": {\r
-        "address": "file://10.10.1.100/BRAAVOS/PLAYOUT/IceGateway",\r
+        "address": "ftp://10.10.1.100/PLAYOUT/IceGateway",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
     },\r
     {\r
       "label": "Újravágás",\r
-      "processor": "UNCTargetProcessor",\r
-      "outputFormat": "%ID%",\r
-      "tag": "Újravágás",\r
-      "remote": {\r
-        "address": "file://10.10.1.100/BRAAVOS/PLAYOUT_NLE",\r
-        "userName": "mediacube",\r
-        "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
-        "timeout": 1000\r
-      },\r
-      "sendSEmailOnSuccess": true,\r
-      "successEmailRecipient": "vasary@elgekko.net",\r
-      "successEmailPattern": "A %TARGETNAME% újravágása szükséges."\r
-    },\r
-    {\r
-      "label": "Újravágás FXP",\r
       "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
-      "tag": "Újravágás FXP",\r
+      "tag": "Újravágás",\r
+      "createSubFolder": true,\r
       "remote": {\r
         "address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
       },\r
-      "sendSEmailOnSuccess": false,\r
+      "sendSEmailOnSuccess": true,\r
       "successEmailRecipient": "vasary@elgekko.net",\r
       "successEmailPattern": "A %TARGETNAME% újravágása szükséges."\r
     },\r
     {\r
       "label": "Archiválás",\r
-      "processor": "UNCTargetProcessor",\r
+      "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
       "createMetadata": true,\r
       "remote": {\r
-        "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
+        "address": "ftp://10.10.1.100/ARCHIVE",\r
         "userName": "mediacube",\r
         "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
         "timeout": 1000\r
index 6aca8966637b4f5b3236390b63a92f613c109c67..b980d1b0fe1d9eb9104df02f127934f438a3fd0d 100644 (file)
@@ -16,7 +16,7 @@ namespace Maestro {
         private MetadataInfo selectedMetadata;\r
         private List<Segment> segments;\r
         private MediaCubeApi mediaCubeApi;\r
-        private ArchiveMetadata archiveMetadatamodel;\r
+        private ArchiveMetadata archiveMetadata;\r
         private BindingList<MovieSegment> movieSegments;\r
 \r
         public MetadataInfo SelectedMetadata {\r
@@ -82,11 +82,11 @@ namespace Maestro {
         }\r
 \r
         private void ModifyArchiveMetadataClick(object sender, EventArgs e) {\r
-            ArchiveMetadataForm form = new ArchiveMetadataForm(archiveMetadatamodel);\r
+            ArchiveMetadataForm form = new ArchiveMetadataForm(archiveMetadata);\r
             form.ShowDialog();\r
         }\r
 \r
-        private IDTypes GetTypeOfSelectedMetadata() {\r
+        private IDTypes GetSelectedMetadataType() {\r
             IDTypes result = IDTypes.None;\r
             if (String.IsNullOrEmpty(selectedMetadata.ID))\r
                 return IDTypes.None;\r
@@ -118,7 +118,7 @@ namespace Maestro {
         }\r
 \r
         private void ConvertMovieSegmentsToSegments(BindingList<MovieSegment> movieSegments) {\r
-            segments.Clear();\r
+            segments = new List<Segment>();\r
             foreach (MovieSegment actual in movieSegments) {\r
                 Segment actualSegment = segmentConverter.ConvertToSegment(actual);\r
                 segments.Add(actualSegment);\r
index d47e79def358031fe88d29a15885c52f19fc755e..17b1f669c56cbfa184eceb0afb0b9c5c3f5b4097 100644 (file)
@@ -64,7 +64,12 @@ namespace Maestro {
         private void OnChecked(CheckBox checkBox, Target target) {\r
             if (checkBox.Checked) {\r
                 List<ITargetProcessor> processors = CreateProcessors(target, checkBox);\r
-                currentProcessors.Add(checkBox, processors);\r
+                if (processors != null && processors.Count > 0) {\r
+                    if (currentProcessors.ContainsKey(checkBox))\r
+                        currentProcessors[checkBox].AddRange(processors);\r
+                    else\r
+                        currentProcessors[checkBox] = processors;\r
+                }\r
             } else {\r
                 HandleCheckBoxReferences(target.Reference, false);\r
                 currentProcessors.Remove(checkBox);\r
@@ -80,11 +85,13 @@ namespace Maestro {
                     continue;\r
                 if (!EnsureSegments(target)) {\r
                     checkBox.Checked = false;\r
-                    continue;\r
+                    result = null;    \r
+                    break;\r
                 }\r
                 if (!EnsureMetadata(target)) {\r
                     checkBox.Checked = false;\r
-                    continue;\r
+                    result = null;\r
+                    break;\r
                 }\r
                 TargetProcessorParameter processorParameter = CreateProcessorParameter(target, sourceItem);\r
                 ITargetProcessor processor = CreateProcessor(target, processorParameter);\r
@@ -98,9 +105,10 @@ namespace Maestro {
 \r
         private bool EnsureSegments(Target target) {\r
             if (target.SaveSegments && segments == null) {\r
-                segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
+                if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0)\r
+                    segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
                 if (segments == null) {\r
-                    MessageBox.Show("A {0} folyamat nem futtatható szegmens adatok nélkül.");\r
+                    MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
                     return false;\r
                 }\r
             }\r
@@ -108,10 +116,10 @@ namespace Maestro {
         }\r
 \r
         private bool EnsureMetadata(Target target) {\r
-            if (target.CreateMetadata && (archiveMetadatamodel == null || !archiveMetadatamodel.IsFilled)) {\r
-                segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
-                if (segments == null) {\r
-                    MessageBox.Show("A {0} folyamat nem futtatható kísérő adatok nélkül.");\r
+            if (target.CreateMetadata && (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
                     return false;\r
                 }\r
             }\r
@@ -125,9 +133,9 @@ namespace Maestro {
 \r
         private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) {\r
             return new TargetProcessorParameter() {\r
-                ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadatamodel),\r
+                ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadata),\r
                 Client = trafficIDSelector.trafficAPI,\r
-                ID = selectedMetadata == null ? textSelectedMetadata.Text : selectedMetadata.ID,\r
+                ID = textSelectedMetadata.Text,\r
                 InputFileName = sourceItem.Name,\r
                 MediaCubeApi = mediaCubeApi,\r
                 Segments = segments == null ? null : new List<Segment>(segments),\r
@@ -156,8 +164,7 @@ namespace Maestro {
                 if (actualCheckbox != null && actualCheckbox.Text.Equals(reference)) {\r
                     if (check)\r
                         actualCheckbox.Checked = check;\r
-                    else\r
-                        currentProcessors.Remove(actualCheckbox);\r
+\r
                     actualCheckbox.Enabled = !check;\r
                 }\r
             }\r
@@ -217,53 +224,63 @@ namespace Maestro {
         private void EnableArchiveMetadataButtonAndCreateMetadataModel() {\r
             ctxiModifyArchiveMetadata.Enabled = selectedMetadata != null;\r
             if (ctxiModifyArchiveMetadata.Enabled) {\r
-                archiveMetadatamodel = new ArchiveMetadata();\r
-                Cursor.Current = Cursors.WaitCursor;\r
-                IDTypes idType = GetTypeOfSelectedMetadata();\r
-                if (idType == IDTypes.OctopusID)\r
-                    GetOctopusMetadata(archiveMetadatamodel);\r
-                else //if (idType == IDTypes.TrafficID)\r
-                    GetTrafficMetadata(archiveMetadatamodel);\r
+                archiveMetadata = GetArchiveMetadata();\r
             } else\r
-                archiveMetadatamodel = null;\r
+                archiveMetadata = null;\r
+        }\r
+\r
+        private ArchiveMetadata GetArchiveMetadata() {\r
+            ArchiveMetadata result = null;\r
+            Cursor.Current = Cursors.WaitCursor;\r
+            IDTypes idType = GetSelectedMetadataType();\r
+            if (idType == IDTypes.OctopusID)\r
+                result = GetOctopusMetadata();\r
+            else //if (idType == IDTypes.TrafficID)\r
+                result = GetTrafficMetadata();\r
+            Cursor.Current = Cursors.Default;\r
+            return result;\r
         }\r
 \r
-        private void GetTrafficMetadata(ArchiveMetadata model) {\r
+        private ArchiveMetadata GetTrafficMetadata() {\r
             string id = selectedMetadata.ID;\r
-            TrafficAPI api = trafficIDSelector.trafficAPI;\r
-            List<ArchiveMatadataWrapper> result = null;\r
             if (id == null)\r
-                return;\r
+                return null;\r
+            TrafficAPI api = trafficIDSelector.trafficAPI;\r
+            List<ArchiveMatadataWrapper> trafficResult = null;\r
             if (id.StartsWith("M"))\r
-                result = api.GetBroadcastArchiveMetadata(id);\r
+                trafficResult = api.GetBroadcastArchiveMetadata(id);\r
             else if (id.StartsWith("P"))\r
-                result = api.GetPromotionalArchiveMetadata(id);\r
+                trafficResult = api.GetPromotionalArchiveMetadata(id);\r
             else if (id.StartsWith("R"))\r
-                result = api.GetAdvertisementArchiveMetadata(id);\r
-            if (result == null)\r
-                return;\r
-            ArchiveMatadataWrapper actualResult = result[0];\r
-            model.itemHouseId = actualResult.ProgID;\r
-            model.itemTitle = actualResult.ProgTitle;\r
-            model.itemDescription = actualResult.ProgDescription;\r
-            model.mediaHouseId = actualResult.EpisodeID;\r
-            model.mediaTitle = !String.IsNullOrEmpty(actualResult.EpisodeTitle) ? actualResult.EpisodeTitle : actualResult.ProgTitle;\r
-            model.mediaDescription = actualResult.EpisodeDescription;\r
+                trafficResult = api.GetAdvertisementArchiveMetadata(id);\r
+            if (trafficResult == null)\r
+                return null;\r
+            ArchiveMetadata result = new ArchiveMetadata();\r
+            ArchiveMatadataWrapper actualResult = trafficResult[0];\r
+            result.itemHouseId = actualResult.ProgID;\r
+            result.itemTitle = actualResult.ProgTitle;\r
+            result.itemDescription = actualResult.ProgDescription;\r
+            result.mediaHouseId = actualResult.EpisodeID;\r
+            result.mediaTitle = !String.IsNullOrEmpty(actualResult.EpisodeTitle) ? actualResult.EpisodeTitle : actualResult.ProgTitle;\r
+            result.mediaDescription = actualResult.EpisodeDescription;\r
+            return result;\r
         }\r
 \r
-        private void GetOctopusMetadata(ArchiveMetadata model) {\r
+        private ArchiveMetadata GetOctopusMetadata() {\r
+            ArchiveMetadata result = new ArchiveMetadata();\r
             string id = selectedMetadata.ID;\r
             OctopusAPI api = octopusIDSelector.GetClient();\r
             IEnumerable<Story> storyEnum = api.GetStoriesById(id);\r
             if (storyEnum != null)\r
-                FillModelFromStories(model, storyEnum.ToList(), api);\r
+                FillModelFromStories(result, storyEnum.ToList(), api);\r
             else {\r
                 IEnumerable<Story> storiesEnum = api.GetStoriesByPlaceHolderId(id);\r
-                if (storiesEnum == null)\r
-                    return;\r
-                List<Story> stories = storiesEnum.ToList();\r
-                FillModelFromStories(model, stories, api);\r
+                if (storiesEnum != null) {\r
+                    List<Story> stories = storiesEnum.ToList();\r
+                    FillModelFromStories(result, stories, api);\r
+                }\r
             }\r
+            return result;\r
         }\r
 \r
         private void FillModelFromStories(ArchiveMetadata model, List<Story> stories, OctopusAPI api) {\r
index 52043d14cbcfbb6e8c1b447b93d88c437632a329..005b588bf7799ee8b2b767ebbd1a0dc039026440 100644 (file)
@@ -36,7 +36,7 @@ namespace Maestro.Targets {
 \r
         protected override void UploadFile() {\r
             using (FileStream istream = File.OpenRead(Input)) {\r
-                using (Stream ostream = targetFTP.OpenWrite(Output)) {\r
+                using (Stream ostream = targetFTP.OpenWrite(OutputName)) {\r
                     try {\r
                         CopyStream(istream, inputFile.Length, ostream);\r
                     }\r
@@ -50,9 +50,10 @@ namespace Maestro.Targets {
                 }\r
             }\r
             FtpReply reply = targetFTP.GetReply();\r
-            if (reply.Success && "226".Equals(reply.Code)) {\r
-                if (!FileExists(Output))\r
-                    throw new Exception("Feltöltési hiba.");\r
+            if ((reply.Success && "226".Equals(reply.Code) && !FileExists(OutputName)) || \r
+                !reply.Success || \r
+                (reply.Success && !"226".Equals(reply.Code))) {\r
+                throw new Exception("Feltöltési hiba.");\r
             }\r
         }\r
 \r
index bb4d5279f0149376632923a54b2e4e1aee99d80e..776ba4fd834bd0906d3b782b3611fb084685c509 100644 (file)
@@ -62,6 +62,8 @@ namespace Maestro.Targets {
                 if (!targetReplyTYPE.Success)\r
                     throw new Exception(targetReplyTYPE.ErrorMessage);\r
 \r
+                string currentWorkingDir = targetFTP.GetWorkingDirectory();\r
+                logger.Debug("Current target working directory is {0}", currentWorkingDir);\r
                 FtpReply replySTOR = targetFTP.Execute("STOR " + OutputName);\r
                 if (!replySTOR.Success)\r
                     throw new Exception(replySTOR.ErrorMessage);\r
index 65f9d0494fce6c771fa7d664d1b58c29ff0e4a88..6fa28f5bc0f07cca43e76d4dffb9758c935e997a 100644 (file)
@@ -53,6 +53,7 @@ namespace Maestro.Targets {
                 workingDir = DetermineWorkingDirectory(parameters.TargetConfig.Remote);\r
                 EnsureDirectoryExistence(workingDir);\r
                 OutputName = CreateOutputFileName();\r
+                OutputName = OutputName.ToUpper();\r
                 Output = "/".Equals(workingDir) ? OutputName : Path.Combine(workingDir, OutputName);\r
                 workFlowAction.source = Input;\r
                 workFlowAction.destination = Output;\r
@@ -127,7 +128,7 @@ namespace Maestro.Targets {
 \r
         private void SendEmail(string to, string messagePattern) {\r
             try {\r
-                string message = messagePattern.Replace("%TARGETNAME%", Output);\r
+                string message = messagePattern.Replace("%TARGETNAME%", OutputName);\r
                 parameters.MediaCubeApi.Notify(to, messagePattern);\r
             }\r
             catch (Exception e) {\r
@@ -184,7 +185,7 @@ namespace Maestro.Targets {
             string fileName = String.Format(KILLDATE_FILE, OutputName, date.ToString("yyyyMMdd"));\r
             logger.Debug("Creating KILLDATE status file {0}", fileName);\r
             KillDatePath = Path.Combine(statusWorkDir, fileName);\r
-            UploadContent(KillDatePath, new byte[] { });\r
+            UploadContent(fileName, new byte[] { });\r
             KillDate = date;\r
         }\r
 \r