Config Profile¶
Config profiles contain configuration information used by LCM to generate config files on the cluster’s nodes. These files include cassandra.yaml, cassandra-env.sh, dse.yaml, and more. See Config File Definitions for more information about the configuration options for each file.
Managing Config Profiles | URL |
---|---|
Get a config-profile by ID | GET /api/v2/lcm/config_profiles/{id} |
Get a list of config-profiles | GET /api/v2/lcm/config_profiles/ |
Create a config-profile | POST /api/v2/lcm/config_profiles/ |
Update a config-profile | PUT /api/v2/lcm/config_profiles/{id} |
Delete a config-profile | DELETE /api/v2/lcm/config_profiles/{id} |
Clone a config-profile | POST /api/v2/lcm/config_profiles/{id}/clone |
Managing Config Profiles¶
- Config Profile¶
{ "id": <value>, "name": <value>, "datastax-version": <value>, "agent-version": <value>, "config-path": <value>, "json": {<file-id>: <config properties>}, "comment": <value> }
Property Description of Values id A UUID for the Config Profile. name A user-defined name for the Config Profile. Required. datastax-version The version of DSE to install and configure. Config profiles are tied to a specific version. Required. agent-version Not used at this time. config-path The base path for configuration files - defaults to /etc/dse/. Note that at this time, only package installations are supported, so you will probably never need to use this. Also, dense nodes (multi-node instances) are not supported. json This is a JSON object containing the configuration information, keyed by file-id. See Config File Definitions.
- GET /api/v2/lcm/config_profiles/{id}¶
Gets a specific config profile record by ID.
Path arguments: id – A Config Profile ID. Returns a Config Profile object.
Example:
curl http://localhost:8888/api/v2/lcm/config_profiles/c0c4c347-ad00-4b67-aa05-fbcd1be02041
Output:
{ "agent-version": null, "created-on": "2016-06-20T14:36:15.833Z", "type": "config-profile", "datastax-version": "5.0.0", "related-resources": { "datacenters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/datacenters/", "nodes": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/nodes/", "clusters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/clusters/" }, "modified-by": "system", "modified-on": "2016-06-20T14:36:15.833Z", "name": "dev", "config-path": null, "json": { "cassandra-yaml": { "gc_warn_threshold_in_ms": 1500 } }, "comment": "development profile", "id": "265c4d0f-70d9-449e-9439-bddd7d55a46b", "href": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b", "created-by": "system" }
- GET /api/v2/lcm/config_profiles/¶
Gets a paginated list of all Config Profile records. See Paginated Results for an overview of the query string parameters that can be used.
Notice that the response for listings does not include the
json
field. This is intentional, as this field could grow very large. To get thejson
field, you must request the specific config profile by ID (seeGET /api/v2/lcm/config_profiles/{id}
).Example:
curl http://localhost:8888/api/v2/lcm/config_profiles/
Output:
{ "next": null, "previous": null, "last": 1, "count": 1, "per-page": 50, "current": 1, "results": [ { "agent-version": null, "created-on": "2016-06-20T14:36:15.833Z", "type": "config-profile", "datastax-version": "5.0.0", "related-resources": { "datacenters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/datacenters/", "nodes": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/nodes/", "clusters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/clusters/" }, "modified-on": "2016-06-20T14:36:15.833Z", "name": "dev", "config-path": null, "id": "265c4d0f-70d9-449e-9439-bddd7d55a46b", "href": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b" } ] }
- POST /api/v2/lcm/config_profiles/¶
Creates a new config profile record.
Body: A Config Profile object (with no id
property)Returns the newly created Config Profile object.
Example:
Input:
{ "datastax-version":"5.0.0", "name":"dev", "comment":"development profile", "json":{ "cassandra-yaml":{ "gc_warn_threshold_in_ms":1500 } } }
curl -X POST -d '<example-input>' http://localhost:8888/api/v2/lcm/config_profiles/
Output:
{ "agent-version": null, "created-on": "2016-06-20T14:36:15.833Z", "type": "config-profile", "datastax-version": "5.0.0", "related-resources": { "datacenters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/datacenters/", "nodes": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/nodes/", "clusters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/clusters/"}, "modified-by": "system", "modified-on": "2016-06-20T14:36:15.833Z", "name": "dev", "config-path": null, "json": { "cassandra-yaml": { "gc_warn_threshold_in_ms": 1500 } }, "comment": "development profile", "id": "265c4d0f-70d9-449e-9439-bddd7d55a46b", "href": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b", "created-by": "system" }
- PUT /api/v2/lcm/config_profiles/{id}¶
Updates an existing config profile record by ID.
Path arguments: id – A Config Profile ID. Returns an updated Config Profile object.
Example:
Input:
{ "agent-version":null, "created-on":"2016-06-20T14:36:15.833Z", "type":"config-profile", "datastax-version":"5.0.0", "related-resources":{ "datacenters":"http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/datacenters/", "nodes":"http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/nodes/", "clusters":"http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/clusters/" }, "modified-by":"system", "modified-on":"2016-06-20T14:36:15.833Z", "name":"dev2", "config-path":null, "json":{ "cassandra-yaml":{ "gc_warn_threshold_in_ms":1600 } }, "comment":"development profile 2", "id":"265c4d0f-70d9-449e-9439-bddd7d55a46b", "created-by":"system" }
curl -X PUT -d '<example input>' http://localhost:8888/api/v2/lcm/config_profiles/9ead66db-a104-4cbf-a653-1a756a20fabb
Output:
{ "agent-version": null, "created-on": "2016-06-20T14:36:15.833Z", "type": "config-profile", "datastax-version": "5.0.0", "related-resources": { "datacenters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/datacenters/", "nodes": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/nodes/", "clusters": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b/clusters/" }, "modified-by": "system", "modified-on": "2016-06-20T15:05:51.602Z", "name": "dev2", "config-path": null, "json": { "cassandra-yaml": { "gc_warn_threshold_in_ms": 1600 } }, "comment": "development profile 2", "id": "265c4d0f-70d9-449e-9439-bddd7d55a46b", "href": "http://localhost:8888/api/v2/lcm/config_profiles/265c4d0f-70d9-449e-9439-bddd7d55a46b", "created-by": "system" }
- DELETE /api/v2/lcm/config_profiles/{id}¶
Deletes an existing config profile record by ID. This is subject to foreign key constraint violations.
Path arguments: id – A Config Profile ID. Returns the IDs of the deleted objects.
Example:
curl -X DELETE http://localhost:8888/api/v2/lcm/config_profiles/ab280412-03da-4306-beca-62e5ac8738fa
Output:
{"deleted": {"config-profile": ["265c4d0f-70d9-449e-9439-bddd7d55a46b"]}}
Cloning Configuration Profiles¶
Configuration profiles can be cloned. The primary purpose for this is to support DSE upgrades, but it could be also used to copy a profile of the same DSE version. Cloning a profile requires a name for the new profile (must be unique among all profiles), a DSE version (must be >= the profile being cloned), and the ID of the profile being cloned.
- POST /api/v2/lcm/config_profiles/{id}/clone¶
Clones the profile specified by ID.
Path arguments: id – A Config Profile ID. Returns a Config Profile object. Typically contains an array of config-notifications that indicates config properties that have been added, removed, or defaults changed.
Example:
Input:
{ "new-dse-version": "5.1.2", "name": "my-cloned-profile-5.1.2" }
curl -X POST -d '{"new-dse-version": "5.1.2", "name": "my-cloned-profile-5.1.2"}' http://localhost:8888/api/v2/lcm/config_profiles/ab280412-03da-4306-beca-62e5ac8738fa/clone
Output:
{ "id" : "99b0d929-10ae-4eb1-b170-e5b1f8a30510", "modified-by" : "system", "type" : "config-profile", "name" : "clone-5.0.3-1", "datastax-version" : "5.0.3", "modified-on" : "2017-09-25T17:44:48.089Z", "json" : { "cassandra-yaml" : { "roles_update_interval_in_ms" : 1001 } }, "created-by" : "system", "comment" : null, "config-path" : null, "created-on" : "2017-09-25T17:44:48.089Z", "agent-version" : null, "config-notifications" : [ { "user-preference" : null, "title" : "New field has been added.", "source" : { "pointer" : "json/cassandra-yaml/otc_coalescing_strategy" }, "code" : "field-added", "new-default" : "DISABLED", "detail" : "The field 'otc_coalescing_strategy' has been newly introduced since DSE 5.0.2. The cloned profile will inherit the default value.", "action-taken" : "use-new-field-default", "old-default" : null }, { "title" : "New field has been added.", "source" : { "pointer" : "json/dse-default/wait-for-start" }, "user-preference" : null, "old-default" : null, "action-taken" : "use-new-field-default", "new-default" : 14, "code" : "field-added", "detail" : "The field 'wait-for-start' has been newly introduced since DSE 5.0.2. The cloned profile will inherit the default value." } ] }