· 5 years ago · Jan 18, 2020, 02:02 AM
1use diagnostics;
2use ElectricCommander;
3my $ec = new ElectricCommander();
4
5my $workDir = $ec->getProperty("/myJob/workDir")->findnodes("//value")->string_value();
6my $regions = $ec->getProperty("/myJob/regions")->findnodes("//value")->string_value();
7
8my $userinfo = $ec->getProperty("/myJob/userinfo")->findnodes("//value")->string_value();
9$userinfo =~s/(^\s*|[\s]*$)//g;
10$userinfo =~ s/\s//g;
11
12my $buildType = "prod";
13my $label = $ec->getProperty("/myJob/label")->findnodes("//value")->string_value();
14my $suiteNames = $ec->getProperty("/myJob/suiteNames")->findnodes("//value")->string_value();
15my $limitPerPattern = $ec->getProperty("/myJob/limitPerPattern")->findnodes("//value")->string_value();
16my $componentNames = $ec->getProperty("/myJob/componentNames")->findnodes("//value")->string_value();
17my $faraway = $ec->getProperty("/myJob/faraway")->findnodes("//value")->string_value();
18my $excludeParser = $ec->getProperty("/myJob/excludeParser")->findnodes("//value")->string_value();
19my $searchQualityVersion = $ec->getProperty("/myJob/searchQualityVersion")->findnodes("//value")->string_value();
20my $patternPriority = $ec->getProperty("/myCall/patternPriority")->findnodes("//value")->string_value();
21
22my $gitBranch = $ec->getProperty("/myJob/gitBranch")->findnodes("//value")->string_value();
23my $gitRevision = $ec->getProperty("/myJob/gitRevision")->findnodes("//value")->string_value();
24
25
26my $product = $ec->getProperty("/myCall/product")->findnodes("//value")->string_value();
27my $environment = $ec->getProperty("/myCall/environment")->findnodes("//value")->string_value();
28my $endpoint = $ec->getProperty("/myCall/endpoint")->findnodes("//value")->string_value();
29my $apikey = $ec->getProperty("/myCall/apikey")->findnodes("//value")->string_value();
30my $secretkey = $ec->getProperty("/myCall/secretkey")->findnodes("//value")->string_value();
31
32my $datasource = $ec->getProperty("/myJob/datasource")->findnodes("//value")->string_value();
33
34my $resourceName = '$[/myResource/resourceName]';
35my $sourceProject = '$[/myProject/projectName]';
36my $jobID = '$[jobId]';
37
38#Create a new procedure
39my $procedureName = "VarStep_SearchQuality_SelectedComponent_$jobID";
40$ec->createProcedure("$sourceProject", "$procedureName", { resourceName => "$resourceName" });
41
42# Store off the procedure name
43$ec->setProperty("/myJob/runSearchQualitySelectedComponents", "$procedureName");
44
45# Read region name from array
46my @regionArray = split(/,/,$regions);
47
48foreach my $region (@regionArray)
49{
50 print "region is:". $region ."\n";
51 $region = uc($region);
52
53 my $newLimitPerPattern = $limitPerPattern;
54 if ($region eq "EU" && $newLimitPerPattern eq "300") {
55 print "Change the newLimitPerPattern to 50 \n";
56 $newLimitPerPattern = "50";
57 }
58
59 $response = $ec->createStep("$sourceProject", "$procedureName", "Run_Search_Quality_${product}_${region}",{
60 subprocedure => "Search_Quality_Platform_Single_Region_V4",
61 subproject => "$sourceProject",
62 parallel=>1,
63 actualParameter => [
64 {actualParameterName => "datasource", value => $datasource},
65 {actualParameterName => "environment", value => $environment},
66 {actualParameterName => "endpoint", value => $endpoint},
67 {actualParameterName => "apikey", value => $apikey},
68 {actualParameterName => "secretkey", value => $secretkey},
69 {actualParameterName => "product", value => $product},
70 {actualParameterName => "region", value => $region},
71 {actualParameterName => "buildType", value => $buildType},
72 {actualParameterName => "label", value => $label . "-" . $userinfo},
73 {actualParameterName => "limitperpattern", value => $newLimitPerPattern},
74 {actualParameterName => "gitBranch", value => $gitBranch},
75 {actualParameterName => "componentNames", value => $componentNames},
76 {actualParameterName => "suiteNames", value => $suiteNames},
77 {actualParameterName => "faraway", value => $faraway},
78 {actualParameterName => "excludeParser", value => $excludeParser},
79 {actualParameterName => "searchQualityVersion", value => $searchQualityVersion},
80 {actualParameterName => "patternPriority", value => $patternPriority},
81 {actualParameterName => "gitRevision", value => $gitRevision}
82 ]});
83}