#114 SKIPPED és REJECTED folyamat állapotok hibát eredményeznek WorkFlowAction mentéskor
#113 SKIPPED állapot kezelése az akciók számosságának kijelzésénél
git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31363
"$type": "UNCSource",\r
"filter": "avi,wav,mxf",\r
"local": {\r
- "address": "file://10.10.1.105/BRAAVOS/TESZT/TC",\r
+ "address": "file://c:/_video",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
"targets": [\r
{\r
"label": "Adáskész",\r
- "processor": "FXPTargetProcessor",\r
+ "processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%",\r
"killDateDays": 5,\r
- "saveSegments": false,\r
+ "saveSegments": true,\r
"tag": "Adáskész",\r
"disableFileVersioning": true,\r
"enableOverride": false,\r
"outputFormat": "%ID%-%SOURCENAME%",\r
"tag": "Betöltés",\r
"killDateDays": 7,\r
- "saveArchiveMetadata": false,\r
+ "saveArchiveMetadata": true,\r
"remote": {\r
"address": "ftp://10.10.1.105/TESZT/CHECK",\r
"userName": "mediacube",\r
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();\r
this.lError = new System.Windows.Forms.ToolStripLabel();\r
this.lErrorCount = new System.Windows.Forms.ToolStripLabel();\r
- this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
+ this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();\r
this.lRevoked = new System.Windows.Forms.ToolStripLabel();\r
this.lRevokedCount = new System.Windows.Forms.ToolStripLabel();\r
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
+ this.lSkipped = new System.Windows.Forms.ToolStripLabel();\r
+ this.lSkippedCount = new System.Windows.Forms.ToolStripLabel();\r
this.systemMessageBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
this.metadataInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
this.groupSource.SuspendLayout();\r
this.toolStripSeparator4,\r
this.lError,\r
this.lErrorCount,\r
- this.toolStripSeparator1,\r
+ this.toolStripSeparator7,\r
this.lRevoked,\r
- this.lRevokedCount});\r
+ this.lRevokedCount,\r
+ this.toolStripSeparator1,\r
+ this.lSkipped,\r
+ this.lSkippedCount});\r
this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;\r
this.toolStrip1.Location = new System.Drawing.Point(10, 153);\r
this.toolStrip1.Name = "toolStrip1";\r
this.lErrorCount.Text = "0";\r
this.lErrorCount.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;\r
// \r
- // toolStripSeparator1\r
+ // toolStripSeparator7\r
// \r
- this.toolStripSeparator1.Name = "toolStripSeparator1";\r
- this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);\r
+ this.toolStripSeparator7.Name = "toolStripSeparator7";\r
+ this.toolStripSeparator7.Size = new System.Drawing.Size(6, 25);\r
// \r
// lRevoked\r
// \r
this.lRevokedCount.Text = "0";\r
this.lRevokedCount.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;\r
// \r
+ // toolStripSeparator1\r
+ // \r
+ this.toolStripSeparator1.Name = "toolStripSeparator1";\r
+ this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);\r
+ // \r
+ // lSkipped\r
+ // \r
+ this.lSkipped.Name = "lSkipped";\r
+ this.lSkipped.Size = new System.Drawing.Size(58, 22);\r
+ this.lSkipped.Text = "Kihagyva:";\r
+ this.lSkipped.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;\r
+ // \r
+ // lSkippedCount\r
+ // \r
+ this.lSkippedCount.AutoSize = false;\r
+ this.lSkippedCount.Name = "lSkippedCount";\r
+ this.lSkippedCount.Size = new System.Drawing.Size(30, 22);\r
+ this.lSkippedCount.Text = "0";\r
+ this.lSkippedCount.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;\r
+ // \r
// systemMessageBindingSource\r
// \r
this.systemMessageBindingSource.DataSource = typeof(Maestro.SystemMessage);\r
private ToolStripLabel lError;\r
private ToolStripLabel lErrorCount;\r
private ToolStripSeparator toolStripSeparator1;\r
- private ToolStripLabel lRevoked;\r
- private ToolStripLabel lRevokedCount;\r
+ private ToolStripLabel lSkipped;\r
+ private ToolStripLabel lSkippedCount;\r
private DataGridViewTextBoxColumn columnInputName;\r
private DataGridViewTextBoxColumn columnLabel;\r
private Commons.DataGridViewProgressColumn columnProgress;\r
private DataGridViewTextBoxColumn columnMessage;\r
private ToolStripLabel lSelectionCounts;\r
private ToolStripButton btnRedefineSegments;\r
+ private ToolStripSeparator toolStripSeparator7;\r
+ private ToolStripLabel lRevoked;\r
+ private ToolStripLabel lRevokedCount;\r
}\r
}\r
\r
}\r
\r
private void OnTargetUpdateTrafficMessage(TargetUpdateTrafficMessage message) {\r
- if (message.Ready == false)\r
+ if (message.Ready == false) {\r
//Target futas elejen elmentjuk a szegmenseket\r
+ logger.Info("Saving segments for {0}", message.VariantID);\r
trafficIDSelector.trafficAPI.SaveSegments(message.VariantID, message.MetadataType, message.Segments);\r
- else\r
+ } else {\r
//Target futas vegen OK\r
+ logger.Info("Approving {0}", message.VariantID);\r
trafficIDSelector.trafficAPI.Approve(message.VariantID, true, message.MetadataType);\r
+ }\r
}\r
\r
private void InitializeTrafficSelector() {\r
}\r
\r
DefineSegments(new FileInfo(SelectedMetadata.RedefineSegmentsFile));\r
-\r
- //save!\r
-\r
-\r
+ /*\r
+ trafficIDSelector.trafficAPI.SaveSegments(SelectedMetadata.VariantID, SelectedMetadata.Kind, movieSegments.ToList());\r
+ trafficIDSelector.trafficAPI.Approve(SelectedMetadata.VariantID, true, SelectedMetadata.Kind);\r
+ */\r
}\r
\r
private static string GetMetadataTypeTooltip(MetadataType? metadataType) {\r
lAllCount.Text = jobs.Count.ToString();\r
var error = 0;\r
var revoked = 0;\r
+ var skipped = 0;\r
var done = 0;\r
foreach (ITargetProcessor j in jobs) {\r
if (TargetProcessor.REVOKED.Equals(j.Status)) {\r
done++;\r
continue;\r
}\r
+ if (TargetProcessor.SKIPPED.Equals(j.Status)) {\r
+ skipped++;\r
+ continue;\r
+ }\r
}\r
lErrorCount.Text = error.ToString();\r
lRevokedCount.Text = revoked.ToString();\r
+ lSkippedCount.Text = skipped.ToString();\r
lDoneCount.Text = done.ToString();\r
-\r
}\r
\r
private void ProcessorWorker_DoWork(object sender, DoWorkEventArgs e) {\r
});\r
if (TargetProcessor.REVOKED.Equals(job.Status))\r
continue;\r
+ if (TargetProcessor.SKIPPED.Equals(job.Status))\r
+ continue;\r
(this).SafeCall(() => {\r
lRunningCount.Text = "1";\r
});\r
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS\r
- CAAAAk1TRnQBSQFMAgEBAgEAAXABAgFwAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
+ CAAAAk1TRnQBSQFMAgEBAgEAAYABAgGAAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA\r
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5\r
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA\r
--- /dev/null
+namespace MaestroShared.Commons {\r
+ public static class StringExtensions {\r
+\r
+ public static bool IsEmpty(this string data) {\r
+ return string.IsNullOrWhiteSpace(data);\r
+ }\r
+\r
+ }\r
+}\r
<Compile Include="Commons\NexioXML.cs" />\r
<Compile Include="Commons\ObjectExtensions.cs" />\r
<Compile Include="Commons\PatternNameMaker.cs" />\r
+ <Compile Include="Commons\StringExtensions.cs" />\r
<Compile Include="Commons\Win32File.cs" />\r
<Compile Include="Configuration\ConfigurationInfo.cs" />\r
<Compile Include="Configuration\KeysColorConverter.cs" />\r
if (address == null) {\r
Message = "Nem található a 'source.local.address' beállítás.";\r
Status = REVOKED;\r
+ workFlowAction.description = Message;\r
return;\r
}\r
inputFile = null;\r
}\r
\r
protected FtpClient CreateClient(Connection connection) {\r
-\r
Uri address = connection.Address;\r
string addr = address.Host;\r
+ IPAddress.TryParse(addr, out IPAddress ipaddress);\r
+ if (ipaddress == null) {\r
+ IPHostEntry hostEntry = Dns.GetHostEntry(addr);\r
+ if (hostEntry != null && hostEntry.AddressList.Length > 0)\r
+ addr = hostEntry.AddressList[0].ToString();\r
+ }\r
\r
- IPHostEntry hostEntry = Dns.GetHostEntry(addr);\r
- if (hostEntry != null && hostEntry.AddressList.Length > 0)\r
- addr = hostEntry.AddressList[0].ToString();\r
logger.Info("Remote address is {0}", addr);\r
FtpClient result = new FtpClient() {\r
Host = addr,\r
if (address == null) {\r
Message = "Nem található a 'source.remote.address' beállítás.";\r
Status = REVOKED;\r
+ workFlowAction.description = Message;\r
return;\r
}\r
\r
workFlowAction.started = Started;\r
}\r
\r
+ protected virtual void BeforeUpload() {\r
+ if (Parameters.TargetConfig.SaveSegments && Parameters.MovieSegments != null)\r
+ TrafficSaveSegments();\r
+ }\r
+\r
public override bool Execute() {\r
logger.Info(PROCESSING, InputName);\r
bool result = false;\r
Status = INPROGRESS;\r
//DateTime started = DateTime.Now;\r
string currentFile = GetOutputFilePath(workingDir, OutputName);\r
+ //csak akkor csinalunk barmit is, ha a feluliras logika engedi\r
if (DeleteExisting(currentFile)) {\r
+ BeforeUpload();\r
UploadFile();\r
ValidateTransfer();\r
//logger.Info("Spend (s):" + (DateTime.Now - started).TotalSeconds);\r
+ if (Parameters.TargetConfig.DeleteAfterCopy)\r
+ DeleteAfterCopy();\r
+ ExecuteCompleted();\r
+\r
Status = READY;\r
Message = SUCCESS;\r
+ workFlowAction.successful = true;\r
}\r
- if (Parameters.TargetConfig.DeleteAfterCopy)\r
- DeleteAfterCopy();\r
-\r
- ExecuteCompleted();\r
- workFlowAction.successful = true;\r
} catch (Exception e) {\r
Status = ERROR;\r
Message = e.Message;\r
if (Parameters.ArchiveMetadata.ok) {\r
Message = "A célállomány már létezik és el van fogadva, felülírása nem lehetséges.";\r
Status = SKIPPED;\r
+ workFlowAction.description = Message;\r
return false;\r
} else\r
DeleteFile(currentFile);\r
} else {\r
Message = "A célállomány létezik, felülírása a konfiuráció alapján nem lehetséges.";\r
Status = SKIPPED;\r
+ workFlowAction.description = Message;\r
return false;\r
}\r
}\r
else\r
message = Parameters.TargetConfig.NexioFileExistsMessage;\r
MessageBox.Show(String.Format($"Az '{OutputName}' állomány már létezik. {message}"));\r
+ workFlowAction.description = message;\r
logger.Trace(Strings.EXIT);\r
}\r
\r
if (Parameters.TargetConfig.SaveMorpheusMetadata && Parameters.ArchiveMetadata != null && Parameters.MovieSegments != null && Parameters.MovieSegments.Count > 0)\r
UploadMorpheusMetadata();\r
if (Parameters.TargetConfig.SaveSegments && Parameters.MovieSegments != null)\r
- UpdateTrafficInformation();\r
+ TrafficApprove();\r
if (Parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(Parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(Parameters.TargetConfig.SuccessEmailPattern))\r
SendEmail(Parameters.TargetConfig.SuccessEmailRecipient, Parameters.TargetConfig.SuccessEmailPattern);\r
logger.Trace(Strings.EXIT);\r
}\r
\r
- private void UpdateTrafficInformation() {\r
+ private void TrafficApprove() {\r
logger.Trace(Strings.ENTRY);\r
TargetUpdateTrafficMessage message = new TargetUpdateTrafficMessage {\r
VariantID = Parameters.VariantID,\r
Ready = true,\r
+ MetadataType = Parameters.MetadataKind\r
+ };\r
+ Parameters.MessageBus.Send(message);\r
+ logger.Trace(Strings.EXIT);\r
+ }\r
+\r
+ private void TrafficSaveSegments() {\r
+ logger.Trace(Strings.ENTRY);\r
+ TargetUpdateTrafficMessage message = new TargetUpdateTrafficMessage {\r
+ VariantID = Parameters.VariantID,\r
MetadataType = Parameters.MetadataKind,\r
Segments = Parameters.MovieSegments\r
};\r
private void SendWorkFlowAction() {\r
logger.Trace(Strings.ENTRY);\r
try {\r
-\r
Parameters?.MediaCubeApi?.Create<WorkflowAction>(workFlowAction);\r
} catch (Exception e) {\r
logger.Error(e);\r
using LinkDotNet.MessageHandling.Contracts;\r
+using MaestroShared.Commons;\r
using MaestroShared.Interfaces;\r
using MaestroShared.MessageBus;\r
using MaestroShared.Model;\r
var request = new RestRequest("media", Method.GET);\r
request.AddQueryParameter("mediaHouseId", mediaHouseId);\r
var response = client.Execute(request);\r
- if (response.StatusCode != HttpStatusCode.OK || response.Content.Length < 1) {\r
+ if (response.StatusCode != HttpStatusCode.OK &&\r
+ !response.ErrorMessage.IsEmpty()) {\r
messageBus.Send(new MediaCubeMessage("Hiba a lekérdezésben. A rendszer üzenete: " + response.ErrorMessage));\r
return null;\r
}\r
- JObject media = JObject.Parse(response.Content);\r
- if (media != null)\r
- return media.Deserialize<Media>();\r
\r
+ if (!response.Content.IsEmpty()) {\r
+ JObject media = JObject.Parse(response.Content);\r
+ if (media != null)\r
+ return media.Deserialize<Media>();\r
+ }\r
return null;\r
}\r
\r