2424import com .google .common .collect .Lists ;
2525import com .google .common .collect .Sets ;
2626import com .qlangtech .tis .config .ParamsConfig ;
27- import com .qlangtech .tis .datax .DataXName ;
2827import com .qlangtech .tis .datax .DefaultDataXProcessorManipulate ;
2928import com .qlangtech .tis .datax .IDataXTaskRelevant ;
3029import com .qlangtech .tis .datax .IDataxProcessor ;
3130import com .qlangtech .tis .datax .impl .DataxProcessor ;
32- import com .qlangtech .tis .extension .Descriptor .ParseDescribable ;
33- import com .qlangtech .tis .extension .IDescribableManipulate .IManipulateStorable ;
3431import com .qlangtech .tis .extension .TISExtension ;
3532import com .qlangtech .tis .manage .common .AppAndRuntime ;
3633import com .qlangtech .tis .manage .common .Config ;
3734import com .qlangtech .tis .manage .common .HttpUtils .PostParam ;
3835import com .qlangtech .tis .plugin .IEndTypeGetter ;
39- import com .qlangtech .tis .plugin .IPluginStore ;
4036import com .qlangtech .tis .plugin .IdentityName ;
4137import com .qlangtech .tis .plugin .MemorySpecification ;
4238import com .qlangtech .tis .plugin .annotation .FormField ;
5349import com .qlangtech .tis .runtime .module .misc .IControlMsgHandler ;
5450import com .qlangtech .tis .util .IPluginContext ;
5551import org .apache .commons .lang .StringUtils ;
56- import org .apache .commons .lang3 .tuple .Pair ;
5752
58- import java .util .Collections ;
5953import java .util .List ;
6054import java .util .Objects ;
6155import java .util .Optional ;
@@ -121,7 +115,8 @@ public static final String dftProcessName() {
121115 */
122116 public DolphinSchedulerURLBuilder processDefinition () {
123117 return getDSEndpoint ().createSchedulerURLBuilder ()
124- .appendSubPath ("projects" , Objects .requireNonNull (this .projectCode , "projectCode can not be null" ), "process-definition" );
118+ .appendSubPath ("projects" , Objects .requireNonNull (this .projectCode
119+ , "projectCode can not be null" ), "process-definition" );
125120// boolean endWithSlash = StringUtils.endsWith(getDSEndpoint().serverPath, "/");
126121// StringBuffer url = new StringBuffer(getDSEndpoint().serverPath);
127122// if (!endWithSlash) {
@@ -143,63 +138,77 @@ public DolphinSchedulerEndpoint getDSEndpoint() {
143138 }
144139
145140
146- @ Override
147- public void manipuldateProcess (IPluginContext pluginContext , Optional <Context > context ) {
148- // 将TIS的数据同步通道配置同步到DS中
149- // String[] originId = new String[1];
150- /**
151- * 校验
152- */
153- ManipulateItemsProcessor itemsProcessor
154- = ManipuldateUtils .instance (pluginContext , context .get (), null
155- , (meta ) -> {
156- });
157- if (StringUtils .isEmpty (itemsProcessor .getOriginIdentityId ())) {
158- throw new IllegalStateException ("originId can not be null" );
159- }
160- if (itemsProcessor == null ) {
161- return ;
162- }
163-
164- Pair <List <ExportTISPipelineToDolphinscheduler >, IPluginStore <DefaultDataXProcessorManipulate >>
165- pair = DefaultDataXProcessorManipulate .loadPlugins (pluginContext
166- , ExportTISPipelineToDolphinscheduler .class , DataXName .createDataXPipeline (itemsProcessor .getOriginIdentityId ()));
167-
168- /**
169- * 是否需要删除
170- */
171- if (itemsProcessor .isDeleteProcess ()) {
172- // 只删除TIS本地端配置,dolphinscheduler端不进行任何操作
173- pair .getRight ().setPlugins (pluginContext , context , Collections .emptyList ());
174- return ;
175- }
176-
141+ // @Override
142+ // public void manipuldateProcess(IPluginContext pluginContext, Optional<Context> context) {
143+ // /**
144+ // * 校验
145+ // */
146+ // ManipulateItemsProcessor itemsProcessor
147+ // = ManipuldateUtils.instance(pluginContext, context.get(), null
148+ // , (meta) -> {
149+ // });
150+ // if (StringUtils.isEmpty(itemsProcessor.getOriginIdentityId())) {
151+ // throw new IllegalStateException("originId can not be null");
152+ // }
153+ // if (itemsProcessor == null) {
154+ // return;
155+ // }
156+ //
157+ // ProcessorManipulateManager<ExportTISPipelineToDolphinscheduler>
158+ // store = DefaultDataXProcessorManipulate.loadPlugins(pluginContext
159+ // , ExportTISPipelineToDolphinscheduler.class, DataXName.createDataXPipeline(itemsProcessor.getOriginIdentityId()));
160+ // /**
161+ // * 是否需要删除
162+ // */
163+ // if (itemsProcessor.isDeleteProcess()) {
164+ // // 只删除TIS本地端配置,dolphinscheduler端不进行任何操作
165+ // // store.setPlugins(pluginContext, context, Collections.emptyList());
166+ // store.delete(pluginContext, context, this);
167+ // return;
168+ // }
169+ //
170+ //
171+ // if (!itemsProcessor.isUpdateProcess()) {
172+ // List<ExportTISPipelineToDolphinscheduler> existPlugins = store.getTargetInstancePlugin();
173+ // // 添加操作
174+ // if (CollectionUtils.isNotEmpty(existPlugins)) {
175+ // for (ExportTISPipelineToDolphinscheduler i : existPlugins) {
176+ // pluginContext.addErrorMessage(context.get(), "实例'" + i.identityValue() + "'已经配置,不能再创建新实例");
177+ // }
178+ // return;
179+ // }
180+ // }
181+ //
182+ // /**===============================
183+ // * 添加项目参数
184+ // ===============================*/
185+ // addProjectParameters();
186+ //
187+ //
188+ // IDataxProcessor dataxProcessor = DataxProcessor.load(pluginContext, itemsProcessor.getOriginIdentityId());
189+ // DSWorkflowPayload workflowPayload = new DSWorkflowPayload(this, dataxProcessor
190+ // , BasicDistributedSPIDataXJobSubmit.getCommonDAOContext(pluginContext), new DolphinschedulerDistributedSPIDataXJobSubmit());
191+ // WorkflowSPIInitializer<DSWorkflowInstance> workflowSPIInitializer = new WorkflowSPIInitializer<>(workflowPayload);
192+ // /**
193+ // * 1. 将配置同步到DS
194+ // */
195+ // DSWorkflowInstance wfInstance = workflowSPIInitializer.initialize(true, itemsProcessor.isUpdateProcess());
196+ //
197+ //
198+ // /**
199+ // *2. 并且将实例持久化在app管道下,当DS端触发会调用 DolphinschedulerDistributedSPIDataXJobSubmit.createPayload()方法获取DS端的WorkflowDAG拓扑视图
200+ // */
201+ // store.replace(pluginContext, context, this);
202+ // }
177203
178- if (!itemsProcessor .isUpdateProcess ()) {
179- // 添加操作
180- if (pair .getLeft ().size () > 0 ) {
181- for (ExportTISPipelineToDolphinscheduler i : pair .getLeft ()) {
182- pluginContext .addErrorMessage (context .get (), "实例'" + i .processName + "'已经配置,不能再创建新实例" );
183- }
184- // throw TisException.create("实例已经配置不能重复创建");
185- return ;
186- }
187- }
188204
205+ @ Override
206+ protected void afterManipuldateProcess (IPluginContext pluginContext , Optional <Context > context , ManipulateItemsProcessor itemsProcessor ) {
189207 /**===============================
190208 * 添加项目参数
191209 ===============================*/
192210 addProjectParameters ();
193211
194- // /**===============================
195- // * 为执行任务添加task工作组
196- // ===============================*/
197- // TaskGroup taskGroup = taskGroup.addTaskGroup(this);
198-
199- // IPluginStore<DefaultDataXProcessorManipulate> pluginStore = getPluginStore(pluginContext, originId[0]);
200- // 查看是否已经有保存的实例
201- // List<ExportTISPipelineToDolphinscheduler> export2DSCfgs = pair.getLeft();
202-
203212
204213 IDataxProcessor dataxProcessor = DataxProcessor .load (pluginContext , itemsProcessor .getOriginIdentityId ());
205214 DSWorkflowPayload workflowPayload = new DSWorkflowPayload (this , dataxProcessor
@@ -209,15 +218,8 @@ public void manipuldateProcess(IPluginContext pluginContext, Optional<Context> c
209218 * 1. 将配置同步到DS
210219 */
211220 DSWorkflowInstance wfInstance = workflowSPIInitializer .initialize (true , itemsProcessor .isUpdateProcess ());
212-
213-
214- /**
215- *2. 并且将实例持久化在app管道下,当DS端触发会调用 DolphinschedulerDistributedSPIDataXJobSubmit.createPayload()方法获取DS端的WorkflowDAG拓扑视图
216- */
217- pair .getRight ().setPlugins (pluginContext , context , Collections .singletonList (new ParseDescribable (this )));
218221 }
219222
220-
221223 void addProjectParameters () {
222224 DolphinSchedulerEndpoint endpoint = this .getDSEndpoint ();
223225 DolphinSchedulerResponse response = endpoint .createSchedulerURLBuilder ()
@@ -316,7 +318,7 @@ private void createProjectParam(DolphinSchedulerEndpoint endpoint, String keyNam
316318
317319 @ TISExtension
318320 public static class DefaultDesc extends DefaultDataXProcessorManipulate .BasicDesc
319- implements IEndTypeGetter , IManipulateStorable {
321+ implements IEndTypeGetter {
320322 public DefaultDesc () {
321323 super ();
322324 this .registerSelectOptions (FIELD_DS_ENDPOINT , () -> ParamsConfig .getItems (DolphinSchedulerEndpoint .DISPLAY_NAME ));
0 commit comments