Update Groundplex properties

PUT /snaplex/<snaplex_path>

Overview

This API updates the Groundplex properties.

Prerequisites

  • Environment (Org) admin permissions

Request

     PUT https://{controlplane_path}/api/1/rest/public/snaplex/<snaplex_path>

Path Parameters

Key Description
controlplane_path Required. The path to the SnapLogic control plane.

Example: cdn.elastic.snaplogic.com

For other control planes, substitute the subdomain name for elastic. For example:
  • cdn.uat.snaplogic.com
  • cdn.emea.snaplogic.com
snaplex_path Required. The path to the Snaplex.

Example: /snaplogic/shared/Mycloud

Query Parameters

None

Request Header

Specify Basic for authorization and application/json for content type.


Authorization: Basic {your_encoded_security_credentials}
Content-Type: application/json
          

Request Body

Important: The Groundplex properties that can be changed in the UI can be updated using public API. However certain properties that cannot be changed are as follow:
  • Environment. This is an ID for Snaplex and stops the Groundplexes from working and require new slpropz.
  • Project path: This is required to move asset or delete asset and create it in a new location.
  • Version

Notification settings

Note: The images displayed below are from Classic Manager and added for reference to check the Snaplex settings details.
 {                
   "notification":{
   "recipients":"[email protected]",
   "slack_recipients":{
   "user":"[email protected]",
   "channel":"test"  
    }
   }
 }
Update Snaplex dialog - Classic Manager Update Snaplex page - Admin Manager

Update Snaplex


Update Snaplex

Dynamic settings

 {  
   "dynamic_settings":{
   "log":{
   "level":"debug",
   "max_file_size":"500 MB",
   "main_backup_count":40,
   "error_backup_count":5,
   "access_backup_count":5
    }
   }
 }                
Dynamic settings - Classic Manager Dynamic settings - Admin Manager

Dynamic settings


Update Snaplex Dynamic settings

Node settings

Some of the node properties and node proxies setting go into node_settings parameter. For Snaplex node types (published.nodes) and Global properties (extra), they comes as list, and new lists always overwrite the existing ones. User can update other parameters individually.

  "node_settings":{
     "published":{
          "heap":{"max_size":"auto"},
          "jetty_host":"127.0.0.1",
          "jetty_port":8090,
          "cc_secure_port":null,
          "http":{
            "proxyHost":"",
            "proxyPort":null,
            "proxyUser":"",
            "nonProxyHosts":[],
            "proxyPassword":""
          },
         "https":{
            "proxyHost":"",
            "proxyPort":null,
            "proxyUser":"",
            "nonProxyHosts":[],
            "proxyPassword":""
          },
        "nodes":[
          {"server-type":"jcc", "hostname":"122.11.11"},
          {"server-type":"feed_master", "hostname":"127.111.1"}
        ]
     },
    "extra":[{'key': 'hello', 'value': 'world'}]
   }
Node settings - Classic Manager Node settings - Admin Manager

Update Snaplex Node properties



Key Type Description
environment string The environment of the Snaplex.
min_jcc string The minimum number of JCC nodes in the Snaplex.
pkg_version string The SnapLogic package version that is installed in the Snaplex.
notification string A comma-separated list of email addresses to send notifications to.
reserved_slots string The percentage of slots to reserve for interactively executed pipelines.
max_slots string The maximum number of slots available on the nodes in the Snaplex.
max_mem string The maximum percentage of memory that can be in use on the nodes in the Snaplex before they will be considered overloaded.
node_settings string The settings for the nodes in the Snaplex.
restart_max_waiting_time integer The maximum waiting time for JCC restart if a pipeline is running.
feed_master_load_balancer string The URL to the FeedMaster nodes which serves as the load balancer. (Ultra Load Balancer in the UI)
jcc_load_balancer string The URL to the JCC node which serves as the load balancer.
dynamic_settings string Settings that can be changed on the JCC without requiring a restart.
dry_run Boolean Do not update the Groundplex if dry_run is true.
CAUTION: The dry_run parameter checks if the nodes need to be restarted. Currently the restart process is handled automatically, UI and public API do not need make additional call for restart nodes.

Response

This Response is for a dry run.

 {
  "response_map": {
  "nodes _to_restart": [],
   "unmanaged_nodes": []
  },
  "http_status_code": 200
}
  

Example

This Response is for actual Groundplex properties update.

 {
  "response_map": {
      "org": "/snaplogic",
      "location": "sidekick",
      "environment": "nope",
      "min_jcc": 1,
      "container_type": "regular",
      "class_version": 3,
      "class_id": "com-snaplogic-snaplex",
      "class_fqid": "com-snaplogic-snaplex_3",
      "pkg_version": "",
      "notification": {
            "recipients": "[email protected]"
        },
        "disabled_notification": null,
        "instance_id": "660fe11e19c87c764e45774db",
        "load_avg_duration": 1,
        "cluster_details": {
            "account": {
                "label": "",
                "ref_id": "",
                "ref_class_id": ""
            },
            "network": "",
            "region": "",
            "instance_type": "",
            "num_of_nodes": 2,
            "volume_size": 500,
            "auto_scaling": {
                "is_auto_scale": false,
                "auto_scaling_role": "EMR_AutoScaling_DefaultRole",
                "scale_out_nodes": 1,
                "scale_out_available_mem": 15,
                "scale_out_cooldown": 600,
                "scale_in_nodes": 1,
                "scale_in_available_mem": 85,
                "scale_in_cooldown": 600
            },
              "log_store": "",
              "artifact_store": "",
              "hadoop_role": "",
              "service_role": "",
              "auto_terminate": 30,
              "market_type": "on_demand",
              "max_spot_price_in_percent": null,
              "aws_tags": [],
              "hybrid_spot_instances_in_percent": 50,
              "hybrid_master_instance_type": "m4.large",
              "hybrid_core_instance_type": "m4.large",
              "hybrid_task_instance_type": "m4.large",
              "azure_databricks_node_type_id": "",
              "azure_databricks_spark_version": "",
              "azure_databricks_spark_conf": {},
              "azure_databricks_spark_env_vars": {
               "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
            },
            "azure_databricks_init_scripts": [],
            "azure_databricks_cluster_log_conf": {
                "dbfs": {
                    "destination": ""
                }
            },
            "azure_databricks_cluster_artifact_conf": {
                "dbfs": {
                    "destination": ""
                }
            },
            "azure_databricks_driver_node_type_id": "",
            "azure_databricks_num_workers": 1,
            "azure_databricks_autoscale": {
                "azure_databricks_is_auto_scale": false,
                "azure_databricks_min_workers": 2,
                "azure_databricks_max_workers": 8
            },
            "azure_databricks_autotermination_minutes": 30,
            "azure_databricks_custom_tags": []
        },
          "reserved_slots": 15,
          "max_slots": 4000,
          "max_mem": 85,
          "plexfs_min_free": 25,
          "plexfs_retention_time": 14,
          "restart_max_waiting_time": 15,
          "restart_request_time": "",
          "restart_request_user": "",
          "queue_size": 50,
          "jcc_load_balancer": "",
          "feed_master_load_balancer": "",
          "dynamic_settings": {
              "log": {
                  "level": "debug",
                  "max_file_size": "300 MB",
                  "main_backup_count": 40,
                  "error_backup_count": 5,
                  "access_backup_count": 5
              }
          },
          "node_settings_fp": "27807354402580686c2079ccd3ed3ce72a8b49136c2155a4bc78fd6b8c6c355f",
          "node_settings": {
            "published": {
                "heap": {
                    "max_size": "auto"
                },
                "jetty_host": "127.0.0.1",
                "jetty_port": 8090,
                "cc_secure_port": null,
                "http": {
                    "proxyHost": "",
                    "proxyPort": null
                },
                "https": {
                    "proxyHost": "",
                    "proxyPort": null
                },
                "nodes": []
            },
            "extra": []
        },
        "label": "sample_snaplex",
        "snode_id": "660f11e29c87c764e32774db",
        "path": "/snaplogic/STU-4220/shared/sample_snaplex",
        "runtime_path_id": "snaplogic/rt/sidekick/nope",
        "perms": [
            "R",
            "X",
            "A",
            "W"
        ],
        "owner": "[email protected]",
        "org_snode_id": "61fc42b21ecca791d8a543bd",
        "lease_info": {},
        "time_leased": null,
        "time_created": "2024-04-04T20:47:30.531000+00:00",
        "time_updated": "2024-04-04T20:59:31.035000+00:00",
        "jcc_count": 0,
        "fm_count": 0
    },
    "http_status_code": 200
}