This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 90d3b9da31 NIFI-13868 Added pg-delete command to NiFi Toolkit CLI 
(#9388)
90d3b9da31 is described below

commit 90d3b9da318b32e513451e1c5fa9352294f4105c
Author: Greg Solovyev <[email protected]>
AuthorDate: Mon Oct 28 13:20:49 2024 -0700

    NIFI-13868 Added pg-delete command to NiFi Toolkit CLI (#9388)
    
    Signed-off-by: David Handermann <[email protected]>
---
 nifi-docs/src/main/asciidoc/toolkit-guide.adoc     | 24 ++++----
 .../cli/impl/command/nifi/NiFiCommandGroup.java    |  2 +
 .../toolkit/cli/impl/command/nifi/pg/PGDelete.java | 65 ++++++++++++++++++++++
 3 files changed, 80 insertions(+), 11 deletions(-)

diff --git a/nifi-docs/src/main/asciidoc/toolkit-guide.adoc 
b/nifi-docs/src/main/asciidoc/toolkit-guide.adoc
index 5aa3721a9d..fffb5b8ba4 100644
--- a/nifi-docs/src/main/asciidoc/toolkit-guide.adoc
+++ b/nifi-docs/src/main/asciidoc/toolkit-guide.adoc
@@ -91,6 +91,7 @@ The following are available commands:
  nifi pg-set-param-context
  nifi pg-replace
  nifi pg-export
+ nifi pg-delete
  nifi get-services
  nifi get-service
  nifi create-service
@@ -312,18 +313,19 @@ For example, typing tab at an empty prompt should display 
possible commands for
 Typing "nifi " and then a tab will show the sub-commands for NiFi:
 
  #> nifi
- change-version-processor          delete-flow-analysis-rule         
export-reporting-task             get-policy                        
list-user-groups                  pg-export                         
pg-stop-version-control
- cluster-summary                   delete-node                       
export-reporting-tasks            get-reg-client-id                 list-users  
                      pg-get-all-versions               
remove-inherited-param-contexts
+ change-version-processor          delete-flow-analysis-rule         
export-reporting-task             get-policy                        
list-user-groups                  pg-export                         pg-delete
+ cluster-summary                   delete-node                       
export-reporting-tasks            get-reg-client-id                 list-users  
                      pg-get-all-versions               pg-stop-version-control
  connect-node                      delete-param                      
fetch-params                      get-reporting-task                
logout-access-token               pg-get-param-context              
set-inherited-param-contexts
- create-flow-analysis-rule         delete-param-context              
get-access-token                  get-reporting-tasks               
merge-param-context               pg-get-services                   set-param
- create-param-context              delete-param-provider             
get-access-token-spnego           get-root-id                       
offload-node                      pg-get-version                    
set-param-provider-property
- create-param-provider             delete-reporting-task             
get-controller-configuration      get-service                       
pg-change-all-versions            pg-import                         
start-reporting-tasks
- create-reg-client                 disable-flow-analysis-rules       
get-flow-analysis-rule            get-services                      
pg-change-version                 pg-list                           
stop-reporting-tasks
- create-reporting-task             disable-services                  
get-flow-analysis-rules           import-param-context              pg-connect  
                      pg-replace                        
update-controller-configuration
- create-service                    disconnect-node                   get-node  
                        import-reporting-tasks            pg-create             
            pg-set-param-context              update-policy
- create-user                       enable-flow-analysis-rules        get-nodes 
                        list-param-contexts               pg-create-service     
            pg-start                          update-reg-client
- create-user-group                 enable-services                   
get-param-context                 list-param-providers              
pg-disable-services               pg-status                         
update-user-group
- current-user                      export-param-context              
get-param-provider                list-reg-clients                  
pg-enable-services                pg-stop
+ create-flow-analysis-rule         delete-param-context              
get-access-token                  get-reporting-tasks               
merge-param-context               pg-get-services                   
remove-inherited-param-contexts
+ create-param-context              delete-param-provider             
get-access-token-spnego           get-root-id                       
offload-node                      pg-get-version                    set-param
+ create-param-provider             delete-reporting-task             
get-controller-configuration      get-service                       
pg-change-all-versions            pg-import                         
set-param-provider-property
+ create-reg-client                 disable-flow-analysis-rules       
get-flow-analysis-rule            get-services                      
pg-change-version                 pg-list                           
start-reporting-tasks
+ create-reporting-task             disable-services                  
get-flow-analysis-rules           import-param-context              pg-connect  
                      pg-replace                        stop-reporting-tasks
+ create-service                    disconnect-node                   get-node  
                        import-reporting-tasks            pg-create             
            pg-set-param-context              update-controller-configuration
+ create-user                       enable-flow-analysis-rules        get-nodes 
                        list-param-contexts               pg-create-service     
            pg-start                          update-policy
+ create-user-group                 enable-services                   
get-param-context                 list-param-providers              
pg-disable-services               pg-status                         
update-reg-client
+ current-user                      export-param-context              
get-param-provider                list-reg-clients                  
pg-enable-services                pg-stop                           
update-user-group
+
 
 Arguments that represent a path to a file, such as `-p` or when setting a 
properties file in the session, will auto-complete the path being typed:
 
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
index d3b6092918..2e958d4ce2 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
@@ -84,6 +84,7 @@ import 
org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGChangeVersion;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGConnect;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGCreate;
 import 
org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGCreateControllerService;
+import org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGDelete;
 import 
org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGDisableControllerServices;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGEmptyQueues;
 import 
org.apache.nifi.toolkit.cli.impl.command.nifi.pg.PGEnableControllerServices;
@@ -165,6 +166,7 @@ public class NiFiCommandGroup extends AbstractCommandGroup {
         commands.add(new PGReplace());
         commands.add(new PGExport());
         commands.add(new PGEmptyQueues());
+        commands.add(new PGDelete());
         commands.add(new GetControllerServices());
         commands.add(new GetControllerService());
         commands.add(new CreateControllerService());
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/pg/PGDelete.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/pg/PGDelete.java
new file mode 100644
index 0000000000..787ecc537b
--- /dev/null
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/pg/PGDelete.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.toolkit.cli.impl.command.nifi.pg;
+
+import org.apache.commons.cli.MissingOptionException;
+import org.apache.nifi.toolkit.cli.api.Context;
+import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClient;
+import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClientException;
+import org.apache.nifi.toolkit.cli.impl.client.nifi.ProcessGroupClient;
+import org.apache.nifi.toolkit.cli.impl.command.CommandOption;
+import org.apache.nifi.toolkit.cli.impl.command.nifi.AbstractNiFiCommand;
+import org.apache.nifi.toolkit.cli.impl.result.StringResult;
+import org.apache.nifi.web.api.entity.ProcessGroupEntity;
+
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * Command to delete a process group.
+ */
+public class PGDelete extends AbstractNiFiCommand<StringResult> {
+
+    public PGDelete() {
+        super("pg-delete", StringResult.class);
+    }
+
+    @Override
+    public String getDescription() {
+        return "Deletes the given process group. Deleting a process group 
requires, stopping all Processors, disabling all Controller Services, and 
emptying all Queues.";
+    }
+
+    @Override
+    protected void doInitialize(final Context context) {
+        addOption(CommandOption.PG_ID.createOption());
+    }
+
+    @Override
+    public StringResult doExecute(final NiFiClient client, final Properties 
properties)
+            throws NiFiClientException, IOException, MissingOptionException {
+
+        final String pgId = getRequiredArg(properties, CommandOption.PG_ID);
+
+        final ProcessGroupClient pgClient = client.getProcessGroupClient();
+        final ProcessGroupEntity pgEntity = pgClient.getProcessGroup(pgId);
+        if (pgEntity == null) {
+            throw new NiFiClientException("Process group with id " + pgId + " 
not found.");
+        }
+        pgClient.deleteProcessGroup(pgEntity);
+        return new StringResult(pgId, isInteractive());
+    }
+}
\ No newline at end of file

Reply via email to