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:
elastic.snaplogic.com
For the UAT or EMEA control plane, substitute the name for elastic . For
example:
|
snaplex_path |
Required. The path to the Snaplex.
Example: /snaplogic/shared/Mycloud |
Query Parameters
NoneRequest Header
In the request header, specify Basic
for authorization, add your credentials, and specify application/json
for content type:
Authorization: Basic {your_encoded_security_credentials}
Content-Type: application/json
Request Body
- Environment
- This is an ID for the Snaplex and stops the Groundplexes from working and require new slpropz.
- Project path
- This is required to move an asset or delete an asset and create it in a new location.
- Version
Notification settings
{
"notification":{
"recipients":"[email protected]",
"slack_recipients":{
"user":"[email protected]",
"channel":"test"
}
}
}
Update Snaplex dialog - Classic Manager | Update Snaplex page - Admin Manager |
---|---|
|
|
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 |
---|---|
|
|
Node settings
Some of the node properties and node proxies setting go into the
node_settings
parameter. Snaplex node types
(published.nodes) and Global properties (extra), are in a
list, and new lists always overwrite the existing ones. Users 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 |
---|---|
|
|
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 percent 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 are considered overloaded. |
node_settings |
string | The settings for the nodes in the Snaplex. |
restart_max_waiting_time |
integer | The maximum waiting time for the 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 restarting. |
dry_run |
Boolean | Do not update the Groundplex if dry_run is true. |
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 an 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
}