From 17cbb13e9fd0ef8a922a5ac44682ff60e60a3992 Mon Sep 17 00:00:00 2001 From: Marcin Haba Date: Thu, 21 Oct 2021 07:23:20 +0200 Subject: [PATCH] baculum: New migrate job wizard --- gui/baculum/protected/Web/Lang/en/messages.mo | Bin 90213 -> 94273 bytes gui/baculum/protected/Web/Lang/en/messages.po | 75 + gui/baculum/protected/Web/Lang/ja/messages.mo | Bin 91341 -> 95401 bytes gui/baculum/protected/Web/Lang/ja/messages.po | 75 + gui/baculum/protected/Web/Lang/pl/messages.mo | Bin 97997 -> 102057 bytes gui/baculum/protected/Web/Lang/pl/messages.po | 75 + gui/baculum/protected/Web/Lang/pt/messages.mo | Bin 97214 -> 101274 bytes gui/baculum/protected/Web/Lang/pt/messages.po | 75 + gui/baculum/protected/Web/Lang/ru/messages.mo | Bin 125152 -> 129212 bytes gui/baculum/protected/Web/Lang/ru/messages.po | 75 + .../protected/Web/Pages/JobHistoryList.page | 1 + gui/baculum/protected/Web/Pages/JobList.page | 1 + .../Web/Pages/NewMigrateJobWizard.page | 2076 +++++++++++++++++ .../Web/Pages/NewMigrateJobWizard.php | 788 +++++++ gui/baculum/protected/Web/endpoints.xml | 1 + 15 files changed, 3242 insertions(+) create mode 100644 gui/baculum/protected/Web/Pages/NewMigrateJobWizard.page create mode 100644 gui/baculum/protected/Web/Pages/NewMigrateJobWizard.php diff --git a/gui/baculum/protected/Web/Lang/en/messages.mo b/gui/baculum/protected/Web/Lang/en/messages.mo index 1e4002bf885605bc076ef4de20780338b8247f25..b9b82fc4a8a8a5bb4f4fc064da24a0866869bb42 100644 GIT binary patch delta 29066 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 j^1tYoS1TqqENLuj`tQ#9-<|XSYv1F;0msLxs literal 90213 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 Y=6Up+=h1JTN56R<{pR^qzIp!t041fA4FCWD diff --git a/gui/baculum/protected/Web/Lang/en/messages.po b/gui/baculum/protected/Web/Lang/en/messages.po index 11109dfbc..7f2dee29e 100644 --- a/gui/baculum/protected/Web/Lang/en/messages.po +++ b/gui/baculum/protected/Web/Lang/en/messages.po @@ -3730,3 +3730,78 @@ msgstr "Setup your custom schedule" msgid "Override directives" msgstr "Override directives" + +msgid "Migrate by job" +msgstr "Migrate by job" + +msgid "Migrate by client" +msgstr "Migrate by client" + +msgid "Migrate by volume" +msgstr "Migrate by volume" + +msgid "Migrate by smallest volume" +msgstr "Migrate by smallest volume" + +msgid "Migrate by oldest volume" +msgstr "Migrate by oldest volume" + +msgid "Migrate using Pool occupancy" +msgstr "Migrate using Pool occupancy" + +msgid "Migrate by Pool time" +msgstr "Migrate by Pool time" + +msgid "Migrate by SQL query" +msgstr "Migrate by SQL query" + +msgid "New migrate job wizard" +msgstr "New migrate job wizard" + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "Step 2 - what you want to migrate" +msgstr "Step 2 - what you want to migrate" + +msgid "Please select a pool from which you want to migrate data." +msgstr "Please select a pool from which you want to migrate data." + +msgid "The source pool will be examined for finding backup jobs to migrate." +msgstr "The source pool will be examined for finding backup jobs to migrate." + +msgid "Please select a storage using which you want to read migrate data." +msgstr "Please select a storage using which you want to read migrate data." + +msgid "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." +msgstr "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." + +msgid "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." +msgstr "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." + +msgid "Step 3 - how would you like to migrate" +msgstr "Step 3 - how would you like to migrate" + +msgid "Step 4 - where you like to migrate" +msgstr "Step 4 - where you like to migrate" + +msgid "Please select a storage using which you want to write migrated data." +msgstr "Please select a storage using which you want to write migrated data." + +msgid "Step 5 - migrate job options" +msgstr "Step 5 - migrate job options" + +msgid "Purge jobs" +msgstr "Purge jobs" + +msgid "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." +msgstr "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "New migrate job" +msgstr "New migrate job" + +msgid "Please select the criteria that will be used for selecting backup jobs to migrate." +msgstr "Please select the criteria that will be used for selecting backup jobs to migrate." diff --git a/gui/baculum/protected/Web/Lang/ja/messages.mo b/gui/baculum/protected/Web/Lang/ja/messages.mo index 0894da3bafe0fc9ccfb243ff05bf16911efaa0e5..5193c2fff903678956b03d2de913e5493292a3b2 100644 GIT binary patch delta 29088 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 delta 26903 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 Hs^2t=fiRn}GT}+Wa)eh1s}kOk@|RMsOjneq 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 hMU+a5vDRZDGvFa^Km$`3Es@_aD*jw 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%0DR?GcSxpGK_$wJdp zu0xXU{&~{UULp5A1fL4V>CuexGMCL0-c2OGjtO!|&?#mA=v3^Lfz0(z-tW(#!)?sG z4jEj%O_zy6HcYO>&&$itld{K%zC~ExS0|ZBFC@KCnyui)AGA5#Zv@M-*6jG(=Z-CS zKFsboWc^97oiHvVd7sn) zf;)7fCUo6R0DbyX)EeJmnALddt843xu8Or;S@oYPi8&_GZjYYrB@C__VPlVceU2KT zOHAFseO`d;F|)(|Cs*=LS^h(*=PTEE?W8)L2|n=%Vb^(UK#wN6==i1DSm9`CHJIl=il!_cuXq9O5RJO{Z;PQN&Z!1*iFjI z+x;+IlE{_R!&+(WK8;6PZ6&X@YNH=nH}K)l6?=K}y-U0it@Y;H<^(Ap<;{1J`rBrW z>B(@gWParlA8U1??vXAd<)3t?sJl-u{#ACW;E!s}1dT$|Hk1zm-CudP5rW5Z1sJ2B z^_W5`>KVG9+)vi-=Alh(GQ9Wt_~&dkuhr__(qtO6wGgVuXQT=uN_1!k2t6xZ3ODB)7tsq za`K6Yy9anw(m&R(ri(ELf2`8UG)m> zBYgkVjhhF3K`;H-!~FlZFw3Y5Eg||@t{)^Fp-+K6FShhd#41kr6i&wloy2w5DD_(E z;?3&RFw~DR1B||d<((GVic&AHx3sU1m1<#R7#W6?lV|0 z?UTwr##H~r{jA(Cl(I(Z7G2It`CUnO*CWW!!>^t$=mTI$*Z1}~7a6EsL^3WJ!x*`r zVFJXOY~ zsi+kEp+V`z*IYh2P&oCIB!05g9fSK`Uf)2`rbp*byBQ815`XVc!G z1D(}9s{MbPH1L<6_E=_5W1w$z>1*oxyyKWuT&1T4x(K)Og1VdZaMLa+U#O#-sMYa^S^2qz$=(6bsUJq!Mp$R-$())CE zB-bL{mS`{W(T}xk_o!z{9jNHPxX96u9Z?4DELla z%oqGy(i7G1y15p*nMSJR0C`<+m zlbs#})1Ca&vpcHg{+_3coP4n7p80h1?xEpA6Xu|kzbpLw)2GJ1lDAIJVFh#hSpQ4! z#fOycrvq|dKnjM+m0#|c>KV57VSNhV%|ANpTK<;Cgf-e$EubgGdTe1W{-cW+kJ!p# z_XW(2`o+jMa_`a?CN_Eywi9L}q~Kf0OJez6lDA#wd>=mGykw13Gy(LTha7UBN}21C zgj`)DU0<$Y#zP^74|uL}yDq z9g@pSkEJ9XF6H^;{+i$~PW~4ui`8kOgOKFqG9e!6OBzD^o9;H978$ueZ?JS@Efv2v zt(-#iMABo7*+rcl)m-nc<^o!Q*U#K(1=KYArDs_)F` qow&cDvqGl0oSmJ`6K8aGR(8g{`N{chVyB;-qmw0;?ByJo>;C}}+{D=c diff --git a/gui/baculum/protected/Web/Lang/pl/messages.po b/gui/baculum/protected/Web/Lang/pl/messages.po index 468d6ea4a..769f61178 100644 --- a/gui/baculum/protected/Web/Lang/pl/messages.po +++ b/gui/baculum/protected/Web/Lang/pl/messages.po @@ -3741,3 +3741,78 @@ msgstr "Ustaw swój własny harmonogram" msgid "Override directives" msgstr "Zastąp dyrektywy" + +msgid "Migrate by job" +msgstr "Migrate by job" + +msgid "Migrate by client" +msgstr "Migrate by client" + +msgid "Migrate by volume" +msgstr "Migrate by volume" + +msgid "Migrate by smallest volume" +msgstr "Migrate by smallest volume" + +msgid "Migrate by oldest volume" +msgstr "Migrate by oldest volume" + +msgid "Migrate using Pool occupancy" +msgstr "Migrate using Pool occupancy" + +msgid "Migrate by Pool time" +msgstr "Migrate by Pool time" + +msgid "Migrate by SQL query" +msgstr "Migrate by SQL query" + +msgid "New migrate job wizard" +msgstr "New migrate job wizard" + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "Step 2 - what you want to migrate" +msgstr "Step 2 - what you want to migrate" + +msgid "Please select a pool from which you want to migrate data." +msgstr "Please select a pool from which you want to migrate data." + +msgid "The source pool will be examined for finding backup jobs to migrate." +msgstr "The source pool will be examined for finding backup jobs to migrate." + +msgid "Please select a storage using which you want to read migrate data." +msgstr "Please select a storage using which you want to read migrate data." + +msgid "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." +msgstr "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." + +msgid "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." +msgstr "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." + +msgid "Step 3 - how would you like to migrate" +msgstr "Step 3 - how would you like to migrate" + +msgid "Step 4 - where you like to migrate" +msgstr "Step 4 - where you like to migrate" + +msgid "Please select a storage using which you want to write migrated data." +msgstr "Please select a storage using which you want to write migrated data." + +msgid "Step 5 - migrate job options" +msgstr "Step 5 - migrate job options" + +msgid "Purge jobs" +msgstr "Purge jobs" + +msgid "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." +msgstr "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "New migrate job" +msgstr "New migrate job" + +msgid "Please select the criteria that will be used for selecting backup jobs to migrate." +msgstr "Please select the criteria that will be used for selecting backup jobs to migrate." diff --git a/gui/baculum/protected/Web/Lang/pt/messages.mo b/gui/baculum/protected/Web/Lang/pt/messages.mo index 327bdc0c6519d101ba12bd571c88458c1e62e81f..17fa3db624ffbd165958e79b12b2550517861357 100644 GIT binary patch delta 29139 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 Y$!s@RomR#$;?&pCBy;Ns)ztET06_AwIRF3v delta 26876 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 O5y|2w^meAn_x}Ln9m(AQ diff --git a/gui/baculum/protected/Web/Lang/pt/messages.po b/gui/baculum/protected/Web/Lang/pt/messages.po index 1b6e8de74..551b9744b 100644 --- a/gui/baculum/protected/Web/Lang/pt/messages.po +++ b/gui/baculum/protected/Web/Lang/pt/messages.po @@ -3741,3 +3741,78 @@ msgstr "Configurar seu agendamento personalizado" msgid "Override directives" msgstr "Substituir diretivas" + +msgid "Migrate by job" +msgstr "Migrate by job" + +msgid "Migrate by client" +msgstr "Migrate by client" + +msgid "Migrate by volume" +msgstr "Migrate by volume" + +msgid "Migrate by smallest volume" +msgstr "Migrate by smallest volume" + +msgid "Migrate by oldest volume" +msgstr "Migrate by oldest volume" + +msgid "Migrate using Pool occupancy" +msgstr "Migrate using Pool occupancy" + +msgid "Migrate by Pool time" +msgstr "Migrate by Pool time" + +msgid "Migrate by SQL query" +msgstr "Migrate by SQL query" + +msgid "New migrate job wizard" +msgstr "New migrate job wizard" + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "Step 2 - what you want to migrate" +msgstr "Step 2 - what you want to migrate" + +msgid "Please select a pool from which you want to migrate data." +msgstr "Please select a pool from which you want to migrate data." + +msgid "The source pool will be examined for finding backup jobs to migrate." +msgstr "The source pool will be examined for finding backup jobs to migrate." + +msgid "Please select a storage using which you want to read migrate data." +msgstr "Please select a storage using which you want to read migrate data." + +msgid "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." +msgstr "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." + +msgid "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." +msgstr "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." + +msgid "Step 3 - how would you like to migrate" +msgstr "Step 3 - how would you like to migrate" + +msgid "Step 4 - where you like to migrate" +msgstr "Step 4 - where you like to migrate" + +msgid "Please select a storage using which you want to write migrated data." +msgstr "Please select a storage using which you want to write migrated data." + +msgid "Step 5 - migrate job options" +msgstr "Step 5 - migrate job options" + +msgid "Purge jobs" +msgstr "Purge jobs" + +msgid "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." +msgstr "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "New migrate job" +msgstr "New migrate job" + +msgid "Please select the criteria that will be used for selecting backup jobs to migrate." +msgstr "Please select the criteria that will be used for selecting backup jobs to migrate." diff --git a/gui/baculum/protected/Web/Lang/ru/messages.mo b/gui/baculum/protected/Web/Lang/ru/messages.mo index 2d8191b76b9aa944bea547384cdf300106df9294..4fc1dfd01ac3e37e335d8f5854525d7044316c93 100644 GIT binary patch delta 29190 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 MP|V?IwOyD00l%^18~^|S delta 26921 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 diff --git a/gui/baculum/protected/Web/Lang/ru/messages.po b/gui/baculum/protected/Web/Lang/ru/messages.po index 23fdb1eee..1f2997886 100644 --- a/gui/baculum/protected/Web/Lang/ru/messages.po +++ b/gui/baculum/protected/Web/Lang/ru/messages.po @@ -3741,3 +3741,78 @@ msgstr "Настройте свой индивидуальный график" msgid "Override directives" msgstr "Переопределить директивы" + +msgid "Migrate by job" +msgstr "Migrate by job" + +msgid "Migrate by client" +msgstr "Migrate by client" + +msgid "Migrate by volume" +msgstr "Migrate by volume" + +msgid "Migrate by smallest volume" +msgstr "Migrate by smallest volume" + +msgid "Migrate by oldest volume" +msgstr "Migrate by oldest volume" + +msgid "Migrate using Pool occupancy" +msgstr "Migrate using Pool occupancy" + +msgid "Migrate by Pool time" +msgstr "Migrate by Pool time" + +msgid "Migrate by SQL query" +msgstr "Migrate by SQL query" + +msgid "New migrate job wizard" +msgstr "New migrate job wizard" + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing i t to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "Step 2 - what you want to migrate" +msgstr "Step 2 - what you want to migrate" + +msgid "Please select a pool from which you want to migrate data." +msgstr "Please select a pool from which you want to migrate data." + +msgid "The source pool will be examined for finding backup jobs to migrate." +msgstr "The source pool will be examined for finding backup jobs to migrate." + +msgid "Please select a storage using which you want to read migrate data." +msgstr "Please select a storage using which you want to read migrate data." + +msgid "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." +msgstr "Because you selected migrate using Pool occupancy, to chosen source pool %pool will be added two directives: Migration Low Bytes and Migration High Bytes." + +msgid "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." +msgstr "Because you selected migrate using Pool time, to chosen source pool %pool will be added the Migration Time directive." + +msgid "Step 3 - how would you like to migrate" +msgstr "Step 3 - how would you like to migrate" + +msgid "Step 4 - where you like to migrate" +msgstr "Step 4 - where you like to migrate" + +msgid "Please select a storage using which you want to write migrated data." +msgstr "Please select a storage using which you want to write migrated data." + +msgid "Step 5 - migrate job options" +msgstr "Step 5 - migrate job options" + +msgid "Purge jobs" +msgstr "Purge jobs" + +msgid "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." +msgstr "Level, Client and FileSet are not used during migrate jobs running but they are required to define in migrate job resource as the standard Job directives." + +msgid "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." +msgstr "Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon." + +msgid "New migrate job" +msgstr "New migrate job" + +msgid "Please select the criteria that will be used for selecting backup jobs to migrate." +msgstr "Please select the criteria that will be used for selecting backup jobs to migrate." diff --git a/gui/baculum/protected/Web/Pages/JobHistoryList.page b/gui/baculum/protected/Web/Pages/JobHistoryList.page index 6ffe38c7a..985857fea 100644 --- a/gui/baculum/protected/Web/Pages/JobHistoryList.page +++ b/gui/baculum/protected/Web/Pages/JobHistoryList.page @@ -10,6 +10,7 @@ +  <%[ Add job ]%> + + + + +
+
+
+
+
+

+
+
+
+
+
+
+

+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+

+
+
+
+
+
+
+

+
+
+
+

<%=$this->Parent->ActiveStep->Title%>

+
+ +
+ +  <%[ Cancel ]%> + + + <%[ Next ]%>  + +
+
+ + +
+ +  <%[ Cancel ]%> + + +  <%[ Previous ]%> + + + <%[ Next ]%>  + +
+
+ +
+ +  <%[ Cancel ]%> + + +  <%[ Previous ]%> + + + <%[ Create job ]%>   + +
+ +
+ +
+

<%[ New migrate job wizard ]%>

+

<%[ Migrate jobs run moving backup jobs data from one volume to another. It is done by reading the previously backed up data from volume and writing it to another volume in a different pool. The file catalog records associated with the original backup jobs are purged. All process runs without using file daemon. ]%>

+
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+

<%[ Source Pool ]%>

+

<%[ Please select a pool from which you want to migrate data. ]%>

+

<%[ The source pool will be examined for finding backup jobs to migrate. ]%>

+
+
+
+

<%[ Source Storage ]%>

+

<%[ Please select a storage using which you want to read migrate data. ]%>

+
+
+
+ +
+ + +
+ + + + + +
+

<%[ Backup jobs selection criteria ]%>

+

<%[ Please select the criteria that will be used for selecting backup jobs to migrate. ]%>

+
+
+
+ +
+
+ + + + + + + + + + + + + +
+ +
+

<%[ Destination Pool ]%>

+

<%[ Please select destination pool to which will be stored data. ]%>

+
+
+
+ +
+ + + + + +
+
+

<%[ Destination Storage ]%>

+

<%[ Please select a storage using which you want to write migrated data. ]%>

+
+
+
+ +
+
+
+ +
+

<%[ Purge jobs ]%>

+
+
+
+ +
+
+
+

<%[ Limits ]%>

+
+
+
+ +
+
+
+

<%[ Schedule ]%>

+
+
+
+ +
+
+
+

<%[ Messages ]%>

+
+
+
+ +
+
+ + +
+ +
+ <%[ General ]%> +
+
Job Name
+
<%=$this->Name->getDirectiveValue()%>
+
+
+
Description
+
<%=$this->Description->getDirectiveValue() ?: '-'%>
+
+
+
JobDefs
+
<%=$this->JobDefs->getDirectiveValue() ?: '-'%>
+
+
+
+ <%[ What ]%> +
+
Source Pool
+
+ <%=$this->Pool->getDirectiveValue()%> + <%=$this->isInJobDefs('Pool', $this->Pool->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Source Storage
+
+ <%=$this->SourceStorage->getDirectiveValue()%> + <%=$this->isInJobDefs('Storage', $this->SourceStorage->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
+ <%[ How ]%> +
+
Selection Type
+
+ <%=$this->sel_types[$this->SelectionType->getDirectiveValue()]%> + <%=$this->isInJobDefs('SelectionType', $this->SelectionType->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Selection Pattern
+
+ <%=$this->getPage()->getSelectionPatternValue() ?: '-'%> + <%=$this->isInJobDefs('SelectionPattern', ($this->getSelectionPatternControl() ? $this->getSelectionPatternControl()->getDirectiveValue() : '')) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Migration High Bytes
+
+ <%=$this->MigrationHighBytes->Directive->getText()%> <%=$this->MigrationHighBytes->SizeFormat->getSelectedItem()->getText()%> + <%=$this->isInJobDefs('MigrationHighBytes', ($this->MigrationHighBytes->getValue() ? $this->MigrationHighBytes->getValue() : '')) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Migration Low Bytes
+
+ <%=$this->MigrationLowBytes->Directive->getText()%> <%=$this->MigrationLowBytes->SizeFormat->getSelectedItem()->getText()%> + <%=$this->isInJobDefs('MigrationLowBytes', ($this->MigrationLowBytes->getValue() ? $this->MigrationLowBytes->getValue() : '')) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Migration Time
+
+ <%=$this->MigrationTime->Directive->getText()%> <%=$this->MigrationTime->TimeFormat->getSelectedItem()->getText()%> + <%=$this->isInJobDefs('MigrationTime', ($this->MigrationTime->getValue() ? $this->MigrationTime->getValue() : '')) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
+ <%[ Where ]%> +
+
Destination Pool (NextPool)
+
+ <%=$this->NextPool->getDirectiveValue()%> + <%=$this->isInJobDefs('NextPool', $this->Pool->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Destination Storage
+
+ <%=$this->DestinationStorage->getDirectiveValue()%> +
+
+
+
+ <%[ Options ]%> +
+
Purge Migration Job
+
+ <%=$this->PurgeMigrationJob->getValue() ? Prado::localize('Yes') : Prado::localize('No')%> + <%=$this->isInJobDefs('PurgeMigrationJob', $this->PurgeMigrationJob->getValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Maximum Spawned Jobs
+
+ <%=$this->MaximumSpawnedJobs->getDirectiveValue() ?: '-'%> + <%=$this->isInJobDefs('MaximumSpawnedJobs', $this->MaximumSpawnedJobs->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Schedule
+
+ <%=$this->Schedule->getDirectiveValue() ?: '-' %> + <%=$this->isInJobDefs('Schedule', $this->Schedule->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Messages
+
+ <%=$this->Messages->getDirectiveValue() ?: '-'%> + <%=$this->isInJobDefs('Messages', $this->Messages->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Level
+
+ <%=$this->Level->getDirectiveValue() ?: '-'%> + (<%[ Not used ]%>) <%=$this->isInJobDefs('Level', $this->Level->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
Client
+
+ <%=$this->Client->getDirectiveValue()%> + (<%[ Not used ]%>) <%=$this->isInJobDefs('Client', $this->Client->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+
FileSet
+
+ <%=$this->FileSet->getDirectiveValue()%> + (<%[ Not used ]%>) <%=$this->isInJobDefs('Fileset', $this->FileSet->getDirectiveValue()) ? ' (' . Prado::localize('inherited from JobDefs') . ')': ''%> +
+
+
+ +
+ + diff --git a/gui/baculum/protected/Web/Pages/NewMigrateJobWizard.php b/gui/baculum/protected/Web/Pages/NewMigrateJobWizard.php new file mode 100644 index 000000000..be106dcb1 --- /dev/null +++ b/gui/baculum/protected/Web/Pages/NewMigrateJobWizard.php @@ -0,0 +1,788 @@ + + * @category Page + * @package Baculum Web + */ +class NewMigrateJobWizard extends BaculumWebPage { + + const PREV_STEP = 'PrevStep'; + const JOBDEFS = 'JobDefs'; + + /** + * Stores available selection types. + * + * @var array + */ + public $sel_types = []; + + public function onInit($param) { + parent::onInit($param); + $this->sel_types = [ + 'Job' => Prado::localize('Migrate by job'), + 'Client' => Prado::localize('Migrate by client'), + 'Volume' => Prado::localize('Migrate by volume'), + 'SmallestVolume' => Prado::localize('Migrate by smallest volume'), + 'OldestVolume' => Prado::localize('Migrate by oldest volume'), + 'PoolOccupancy' => Prado::localize('Migrate using Pool occupancy'), + 'PoolTime' => Prado::localize('Migrate by Pool time'), + 'SQLQuery' => Prado::localize('Migrate by SQL query') + ]; + } + + public function onPreRender($param) { + parent::onPreRender($param); + if ($this->IsCallBack) { + return; + } + $step_index = $this->NewJobWizard->getActiveStepIndex(); + $prev_step = $this->getPrevStep(); + $this->setPrevStep($step_index); + if ($prev_step > $step_index) { + return; + } + switch ($step_index) { + case 0: { + $this->loadJobDefs(); + break; + } + case 1: { + $this->setupJobDefs(); + $this->loadPools(); + $this->loadSourceStorages(); + break; + } + case 2: { + $this->loadSelectionTypes(); + break; + } + case 3: { + $this->loadNextPools(); + $this->loadDestinationStorages(); + break; + } + case 4: { + $this->loadSchedules(); + $this->loadMessages(); + $this->loadLevels(); + $this->loadClients(); + $this->loadFileSets(); + break; + } + } + } + + /** + * Wizard previous button callback actions. + * + * @param TWizard $sender sender object + * @param TWizardNavigationEventParameter $param sender parameters + * @return none + */ + public function wizardPrev($sender, $param) { + } + + /** + * Wizard next button callback actions. + * + * @param TWizard $sender sender object + * @param TWizardNavigationEventParameter $param sender parameters + * @return none + */ + public function wizardNext($sender, $param) { + } + + /** + * Load JobDefs (step 1). + * + * @return none + */ + public function loadJobDefs() { + $jobdefs_list = []; + $jobdefs = $this->getModule('api')->get([ + 'config', + 'dir', + 'jobdefs'] + ); + if ($jobdefs->error === 0) { + for ($i = 0; $i < count($jobdefs->output); $i++) { + $jobdefs_list[] = $jobdefs->output[$i]->JobDefs->Name; + } + asort($jobdefs_list); + $this->JobDefs->setData($jobdefs_list); + $this->JobDefs->createDirective(); + } + } + + /** + * Setup and remember selected JobDefs values to use in next wizard steps. + * + * @return none + */ + public function setupJobDefs() { + $directive_value = $this->JobDefs->getDirectiveValue(); + if (is_null($directive_value)) { + return; + } + $jobdefs = $directive_value; + $result = $this->getModule('api')->get([ + 'config', + 'dir', + 'jobdefs', + $jobdefs + ]); + if ($result->error === 0) { + $value = (array)$result->output; + $this->setJobDefs($value); + } + } + + /** + * Check if directive with given value exists in used JobDefs. + * + * @param string $directive_name directive name + * @param string $directive_value directive value + * @return boolean true if directive exists in JobDefs, otherwise false + */ + public function isInJobDefs($directive_name, $directive_value) { + $jobdefs = $this->getJobDefs(); + $ret = false; + if ($directive_name === 'Storage') { + $ret = (key_exists($directive_name, $jobdefs) && $jobdefs[$directive_name][0] === $directive_value); + } else { + $ret = (key_exists($directive_name, $jobdefs) && $jobdefs[$directive_name] === $directive_value); + } + return $ret; + } + + /** + * Set pool type controls (Pool, NextPool ...etc.) + * + * @param string $name pool type directive name + * @param object $control different type of controls (usually DirectiveComboBox) + * @return none + */ + public function setPools($name, $control) { + $pool_list = []; + $pools = $this->getModule('api')->get(['config', 'dir', 'pool'])->output; + for ($i = 0; $i < count($pools); $i++) { + $pool_list[] = $pools[$i]->Pool->Name; + } + asort($pool_list); + $control->setData($pool_list); + $jobdefs = $this->getJobDefs(); + if (key_exists($name, $jobdefs) && is_null($control->getDirectiveValue())) { + $control->setDirectiveValue($jobdefs[$name]); + } + $control->createDirective(); + } + + /** + * Load pool list (step 2). + * + * @return none + */ + public function loadPools() { + $this->setPools('Pool', $this->Pool); + } + + /** + * Load volumes to display while source pool is configured. + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function loadVolumes($sender, $param) { + $pool = $param->getCallbackParameter(); + $volumes = $this->getVolumes($pool); + $this->getCallbackClient()->callClientFunction( + 'oVolumeList.update', + [$volumes] + ); + } + + /** + * Get volume list for given pool. + * + * @param string $pool pool name + * @return array volume list or empty array on error + */ + public function getVolumes($pool) { + $poolid = null; + $result = $this->getModule('api')->get(['pools']); + if ($result->error === 0) { + for ($i = 0; $i < count($result->output); $i++) { + if ($pool === $result->output[$i]->name) { + $poolid = $result->output[$i]->poolid; + break; + } + } + } + $ret = []; + if ($poolid) { + $result = $this->getModule('api')->get( + ['pools', $poolid, 'volumes'] + ); + if ($result->error === 0) { + $ret = $result->output; + } + } + return $ret; + } + + /** + * Load source storage list (step 2). + * + * @return none + */ + public function loadSourceStorages() { + $this->setStorages($this->SourceStorage); + } + + /** + * Set source storage control basing on pool configuration. + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function setSourceStorageByPool($sender, $param) { + $pool = $this->Pool->getDirectiveValue(); + if (empty($pool)) { + return; + } + $this->setStorageByPool($pool, 'set_storage_from_pool_cb'); + } + + /** + * Load selection types (step 3). + * + * @return none + */ + public function loadSelectionTypes() { + $this->SelectionType->setData($this->sel_types); + $this->SelectionType->createDirective(); + } + + /** + * Load jobs to select one (step 3). + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function loadJobList($sender, $param) { + $result = $this->getModule('api')->get([ + 'jobs', + 'show', + '?output=json' + ]); + $jobs = []; + if ($result->error === 0) { + for ($i = 0; $i < count($result->output); $i++) { + if ($result->output[$i]->jobtype != '66') { + continue; + } + $jobs[] = [ + 'job' => $result->output[$i]->name, + 'enabled' => $result->output[$i]->enabled, + 'priority' => $result->output[$i]->priority, + 'type' => chr($result->output[$i]->jobtype), + 'maxjobs' => $result->output[$i]->maxjobs + ]; + } + } + $this->getCallbackClient()->callClientFunction( + 'oJobList.init', + [$jobs] + ); + } + + /** + * Load clients to select one (step 3). + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function loadClientList($sender, $param) { + $result = $this->getModule('api')->get( + ['clients'] + ); + $clients = []; + if ($result->error === 0) { + $clients = $result->output; + } + $this->getCallbackClient()->callClientFunction( + 'oClientList.init', + [$clients] + ); + } + + /** + * Load pool list (step 4). + * + * @return none + */ + public function loadNextPools() { + $this->setPools('NextPool', $this->NextPool); + } + + public function setStorages($control) { + $storage_list = []; + $storages = $this->getModule('api')->get([ + 'config', + 'dir', + 'storage' + ]); + if ($storages->error === 0) { + for ($i = 0; $i < count($storages->output); $i++) { + $storage_list[] = $storages->output[$i]->Storage->Name; + } + sort($storage_list); + $control->setData($storage_list); + $jobdefs = $this->getJobDefs(); + if (key_exists('Storage', $jobdefs) && is_array($jobdefs['Storage']) && count($jobdefs['Storage']) == 1 && is_null($control->getDirectiveValue())) { + $control->setDirectiveValue($jobdefs['Storage'][0]); + } + $control->createDirective(); + } + } + + /** + * Load destination storage list (step 4). + * + * @return none + */ + public function loadDestinationStorages() { + $this->setStorages($this->DestinationStorage); + } + + /** + * Set storage control basing on usage in pool. + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function setStorageByPool($pool, $cb) { + $pool = $this->getModule('api')->get([ + 'config', + 'dir', + 'pool', + $pool + ]); + if ($pool->error === 0) { + $storage = null; + if (property_exists($pool->output, 'Storage') && is_array($pool->output->Storage) && count($pool->output->Storage) == 1) { + $storage = $pool->output->Storage[0]; + } + $this->getCallbackClient()->callClientFunction($cb, [$storage]); + } + } + + /** + * Set destination storage control basing on pool configuration. + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function setDestinationStorageByPool($sender, $param) { + $nextpool = $this->NextPool->getDirectiveValue(); + if (empty($nextpool)) { + return; + } + $this->setStorageByPool($nextpool, 'set_storage_from_pool_cb'); + } + + /** + * Get jobs that use pool and send them to warning box. + * + * @param TCallback $sender callback object + * @param TCallbackEventParameter $param callback parameter + * @return none + */ + public function getJobsUsingPool($sender, $param) { + $values = $param->getCallbackParameter(); + $job_list = []; + $jobs = $this->getModule('api')->get([ + 'config', + 'dir', + 'job', + '?apply_jobdefs=1' + ]); + if ($jobs->error === 0) { + for ($i = 0; $i < count($jobs->output); $i++) { + if (property_exists($jobs->output[$i]->Job, 'Pool') && $jobs->output[$i]->Job->Pool == $values->pool) { + $job_list[] = $jobs->output[$i]->Job->Name; + } + } + } + if (count($job_list) > 0) { + sort($job_list); + $this->getCallbackClient()->callClientFunction('show_storage_warning', [ + $values->storage, + $values->pool, + $job_list + ]); + } + } + + /** + * Load messages (step 5). + * + * @return none + */ + public function loadMessages() { + $message_list = []; + $messages = $this->getModule('api')->get([ + 'config', + 'dir', + 'messages' + ]); + if ($messages->error === 0) { + for ($i = 0; $i < count($messages->output); $i++) { + $message_list[] = $messages->output[$i]->Messages->Name; + } + sort($message_list); + $this->Messages->setData($message_list); + $jobdefs = $this->getJobDefs(); + if (key_exists('Messages', $jobdefs)) { + $this->Messages->setDirectiveValue($jobdefs['Messages']); + } + $this->Messages->createDirective(); + } + } + + /** + * Load schedule (step 5). + * + * @return none + */ + public function loadSchedules() { + $schedule_list = []; + $schedules = $this->getModule('api')->get([ + 'config', + 'dir', + 'schedule' + ]); + if ($schedules->error === 0) { + for ($i = 0; $i < count($schedules->output); $i++) { + $schedule_list[] = $schedules->output[$i]->Schedule->Name; + } + asort($schedule_list); + $this->Schedule->setData($schedule_list); + $jobdefs = $this->getJobDefs(); + if (key_exists('Schedule', $jobdefs)) { + $this->Schedule->setDirectiveValue($jobdefs['Schedule']); + } + $this->Schedule->createDirective(); + } + } + + /** + * Load job levels (step 5). + * + * @return none + */ + public function loadLevels() { + // so far backup job levels only + $levels = $this->getModule('misc')->getJobLevels(); + $level_list = array_values($levels); + $this->Level->setData($level_list); + $jobdefs = $this->getJobDefs(); + if (key_exists('Level', $jobdefs)) { + $this->Level->setDirectiveValue($jobdefs['Level']); + } elseif (count($level_list) > 0) { + // no level in jobdefs, take first level + $this->Level->setDirectiveValue($level_list[0]); + } + $this->Level->createDirective(); + } + + /** + * Load clients (step 5). + * + * @return none + */ + public function loadClients() { + $clients = $this->getModule('api')->get([ + 'config', + 'dir', + 'client' + ]); + if ($clients->error === 0) { + for ($i = 0; $i < count($clients->output); $i++) { + $client_list[] = $clients->output[$i]->Client->Name; + } + sort($client_list); + $this->Client->setData($client_list); + $jobdefs = $this->getJobDefs(); + if (key_exists('Client', $jobdefs) && is_array($jobdefs['Client']) && is_null($this->Client->getDirectiveValue())) { + $this->Client->setDirectiveValue($jobdefs['Client']); + } elseif (count($client_list) > 0) { + $this->Client->setDirectiveValue($client_list[0]); + } + $this->Client->createDirective(); + } + } + + /** + * Load filesets (step 5). + * + * @return none + */ + public function loadFileSets() { + $filesets = $this->getModule('api')->get([ + 'config', + 'dir', + 'fileset' + ]); + if ($filesets->error === 0) { + for ($i = 0; $i < count($filesets->output); $i++) { + $fileset_list[] = $filesets->output[$i]->Fileset->Name; + } + sort($fileset_list); + $this->FileSet->setData($fileset_list); + $jobdefs = $this->getJobDefs(); + if (key_exists('Fileset', $jobdefs) && is_array($jobdefs['Fileset']) && is_null($this->Fileset->getDirectiveValue())) { + $this->FileSet->setDirectiveValue($jobdefs['Fileset']); + } elseif (count($fileset_list) > 0) { + $this->FileSet->setDirectiveValue($fileset_list[0]); + } + $this->FileSet->createDirective(); + } + } + + /** + * Get selection pattern control. + * + * @return DirectiveTextBox selection pattern control. + */ + public function getSelectionPatternControl() { + $control = null; + $sel_type = $this->SelectionType->getDirectiveValue(); + switch ($sel_type) { + case 'Job': $control = $this->SelectionPatternJob; break; + case 'Client': $control = $this->SelectionPatternClient; break; + case 'Volume': $control = $this->SelectionPatternVolume; break; + case 'SQLQuery': $control = $this->SelectionPatternSQLQuery; break; + } + return $control; + } + + /** + * Get selection pattern value. + * + * @return string selection pattern value + */ + public function getSelectionPatternValue() { + $sel_pattern = ''; + $sp_control = $this->getSelectionPatternControl(); + if (is_object($sp_control)) { + $sel_pattern = $sp_control->getDirectiveValue(); + } + return $sel_pattern; + } + + public function wizardCompleted($sender, $param) { + $jobdefs = $this->getJobDefs(); + $job = [ + 'Name' => $this->Name->getDirectiveValue(), + 'Type' => 'Migrate', + ]; + $jd = $this->JobDefs->getDirectiveValue(); + $directives = ['Description', 'Pool', 'SourceStorage', 'Level', + 'SelectionType', 'MaximumSpawnedJobs', 'Schedule', + 'Messages', 'Client', 'FileSet', 'NextPool', 'PurgeMigrationJob' + ]; + if (is_string($jd)) { + $job['JobDefs'] = $jd; + } + for ($i = 0; $i < count($directives); $i++) { + $val = $this->{$directives[$i]}->getDirectiveValue(); + if (is_null($val)) { + continue; + } + $directive = $directives[$i]; + if ($directive == 'SourceStorage') { + $directive = 'Storage'; + } + if (is_null($jd) || !$this->isInJobDefs($directive, $val)) { + $job[$directive] = $val; + } + } + + // selection type + $sel_type = $this->SelectionType->getDirectiveValue(); + $job['SelectionType'] = $sel_type; + + // selection pattern + $sel_pattern = $this->getSelectionPatternValue(); + if (!empty($sel_pattern)) { + $job['SelectionPattern'] = $sel_pattern; + } + + // Add to source pool directives specific for pool occupancy and pool time selection type + if ($sel_type == 'PoolOccupancy' || $sel_type == 'PoolTime') { + $pool = $this->Pool->getDirectiveValue(); + $params = [ + 'config', + 'dir', + 'Pool', + $pool + ]; + $result = $this->getModule('api')->get( + $params + ); + + if ($result->error === 0) { + $pool = (array)$result->output; + if ($sel_type == 'PoolOccupancy') { + $pool['MigrationLowBytes'] = $this->MigrationLowBytes->getDirectiveValue(); + $pool['MigrationHighBytes'] = $this->MigrationHighBytes->getDirectiveValue(); + } elseif ($sel_type == 'PoolTime') { + $pool['MigrationTime'] = $this->MigrationTime->getDirectiveValue(); + } + + $result = $this->getModule('api')->set( + $params, + ['config' => json_encode($pool)] + ); + + if ($result->error !== 0) { + $this->CreateResourceErrMsg->Display = 'Dynamic'; + $this->CreateResourceErrMsg->Text = $result->output; + return; // END + } + } + } + + // Add storage to pool + $nextpool = $this->NextPool->getDirectiveValue(); + $params = [ + 'config', + 'dir', + 'Pool', + $nextpool + ]; + $result = $this->getModule('api')->get( + $params + ); + + $pool_modified = false; + if ($result->error === 0) { + $pool = (array)$result->output; + $pool['Storage'] = $this->DestinationStorage->getDirectiveValue(); + $result = $this->getModule('api')->set( + $params, + ['config' => json_encode($pool)] + ); + if ($result->error === 0) { + $pool_modified = true; + } else { + $this->CreateResourceErrMsg->Display = 'Dynamic'; + $this->CreateResourceErrMsg->Text = $result->output; + } + } + + // create migrate job + if ($pool_modified) { + $params = [ + 'config', + 'dir', + 'Job', + $job['Name'] + ]; + $result = $this->getModule('api')->set( + $params, + ['config' => json_encode($job)] + ); + if ($result->error === 0) { + $this->getModule('api')->set(array('console'), array('reload')); + $this->goToPage('JobList'); + } else { + $this->CreateResourceErrMsg->Display = 'Dynamic'; + $this->CreateResourceErrMsg->Text = $result->output; + } + } + } + + /** + * Cancel wizard. + * + * @return none + */ + public function wizardStop($sender, $param) { + $this->goToDefaultPage(); + } + + /** + * Set selected JobDefs values. + * + * @param $jobdefs selected JobDefs values + * @return none + */ + public function setJobDefs($jobdefs) { + $this->setViewState(self::JOBDEFS, $jobdefs); + } + + /** + * Get selected JobDefs values. + * + * @return array selected JobDefs values + */ + public function getJobDefs() { + return $this->getViewState(self::JOBDEFS, array()); + } + + /** + * Set previous wizard step. + * + * @param integer $step previous step number + * @return none + */ + public function setPrevStep($step) { + $step = intval($step); + $this->setViewState(self::PREV_STEP, $step); + } + + /** + * Get previous wizard step. + * + * @return integer previous wizard step + */ + public function getPrevStep() { + return $this->getViewState(self::PREV_STEP); + } +} +?> diff --git a/gui/baculum/protected/Web/endpoints.xml b/gui/baculum/protected/Web/endpoints.xml index 51eb579fb..76463225f 100644 --- a/gui/baculum/protected/Web/endpoints.xml +++ b/gui/baculum/protected/Web/endpoints.xml @@ -39,6 +39,7 @@ + -- 2.47.3