This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Child pages
  • Service Config Versions API usage
Skip to end of metadata
Go to start of metadata

Requesting list of service config versions

Information about service config versions can be requested via separate API endpoint api/v1/clusters/<cluster_name>/configurations/service_config_versions.

Response will contain list of service config version objects. General API functionality like pagination, filtering, etc. can be applied to this list as well.

Example
[root@c6401 ~]# curl -u admin:admin -H 'X-Requested-By:admin' 'http://localhost:8080/api/v1/clusters/cc/configuratons/service_config_versions'
{
  "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions",
  "items" : [
    {
      "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?service_name=HDFS&service_config_version=1",
      "cluster_name" : "cc",
      "configurations" : [...],
      "createtime" : 1430922079860,
      "group_id" : -1,
      "group_name" : "default",
      "hosts" : [ ],
      "is_cluster_compatible" : true,
      "is_current" : true,
      "service_config_version" : 1,
      "service_config_version_note" : "Initial configurations for HDFS",
      "service_name" : "HDFS",
      "stack_id" : "HDP-2.2",
      "user" : "admin"
    },
    {
      "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?service_name=MAPREDUCE2&service_config_version=1",
      "cluster_name" : "cc",
      "configurations" : [...],
      "createtime" : 1430922080448,
      "group_id" : -1,
      "group_name" : "default",
      "hosts" : [ ],
      "is_cluster_compatible" : true,
      "is_current" : true,
      "service_config_version" : 1,
      "service_config_version_note" : "Initial configurations for MapReduce2",
      "service_name" : "MAPREDUCE2",
      "stack_id" : "HDP-2.2",
      "user" : "admin"
    },
    {
      "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?service_name=YARN&service_config_version=1",
      "cluster_name" : "cc",
      "configurations" : [...],
      "createtime" : 1430922080177,
      "group_id" : -1,
      "group_name" : "default",
      "hosts" : [ ],
      "is_cluster_compatible" : true,
      "is_current" : true,
      "service_config_version" : 1,
      "service_config_version_note" : "Initial configurations for YARN",
      "service_name" : "YARN",
      "stack_id" : "HDP-2.2",
      "user" : "admin"
    },
    {
      "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?service_name=ZOOKEEPER&service_config_version=1",
      "cluster_name" : "cc",
      "configurations" : [...],
      "createtime" : 1430922080347,
      "group_id" : -1,
      "group_name" : "default",
      "hosts" : [ ],
      "is_cluster_compatible" : true,
      "is_current" : true,
      "service_config_version" : 1,
      "service_config_version_note" : "Initial configurations for ZooKeeper",
      "service_name" : "ZOOKEEPER",
      "stack_id" : "HDP-2.2",
      "user" : "admin"
    }
  ]
}

Description of fields:

configurations - contains list of configs related to this service config version

createtime - timestamp indicating when service config version was created

group_id and group_name - id and name of config group for which service config version was created. -1 indicates default one (theres no group from server point of view)

hosts - also related to config groups - list of hosts in _cg

is_current - indicates if service config version is currently active (its configs are used for service)

service_config_version - number of service config version (per-service numeration)

service_config_version_note - user comment left on service config version creation

service_name - name of service which service config version is related to

Creating service config version

Service config version is created each time config is mapped to cluster:

Example request
curl -u admin:admin -H 'X-Requested-By:admin' -X PUT 'http://localhost:8080/api/v1/clusters/cc' -d '{
  "Clusters": {
    "desired_config": {
      "type": "core-site",
      "tag": "version2",
      "properties": {
        "security.admin.operations.protocol.acl" : "hadoop",
        "security.client.datanode.protocol.acl" : "*",
        "security.client.protocol.acl" : "*",
        "security.datanode.protocol.acl" : "*",
        "security.inter.datanode.protocol.acl" : "*",
        "security.inter.tracker.protocol.acl" : "*",
        "security.job.client.protocol.acl" : "*",
        "security.job.task.protocol.acl" : "*",
        "security.namenode.protocol.acl" : "*",
        "security.refresh.policy.protocol.acl" : "hadoop",
        "security.refresh.usertogroups.mappings.protocol.acl" : "hadoop"
      }
    }
  }
}'

Information containing id and service_name of service config version created will be returned in response

Response
{
  "resources" : [
    {
      "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?service_name=HDFS&service_config_version=2",
      "configurations" : [
        {
          "clusterName" : "cc",
          "stackId" : {
            "stackName" : "HDP",
            "stackVersion" : "2.2",
            "stackId" : "HDP-2.2"
          },
          "type" : "core-site",
          "versionTag" : "version2",
          "version" : 2,
          "serviceConfigVersions" : null,
          "configs" : {
            "security.inter.datanode.protocol.acl" : "*",
            "security.refresh.usertogroups.mappings.protocol.acl" : "hadoop",
            "security.client.datanode.protocol.acl" : "*",
            "security.admin.operations.protocol.acl" : "hadoop",
            "security.inter.tracker.protocol.acl" : "*",
            "security.datanode.protocol.acl" : "*",
            "security.job.client.protocol.acl" : "*",
            "security.client.protocol.acl" : "*",
            "security.job.task.protocol.acl" : "*",
            "security.refresh.policy.protocol.acl" : "hadoop",
            "security.namenode.protocol.acl" : "*"
          },
          "configAttributes" : { }
        }
      ],
      "group_id" : -1,
      "group_name" : null,
      "service_config_version" : 2,
      "service_config_version_note" : null,
      "service_name" : "HDFS"
    }
  ]
}

 

Rollback to previous service config version

Example request
curl -u admin:admin -H 'X-Requested-By:admin' -X PUT 'http://localhost:8080/api/v1/clusters/cc' -d '{
  "Clusters": {
    "desired_service_config_versions": {
      "service_name" : "HDFS",
      "service_config_version" : 1,
      "service_config_version_note" : "Manual rollback to service config version 1 (HDFS)"
    }
  }
}'

Result of such request execution will be new service config version with configs copied from requested one (1st in this example)

Example Response
{
  "resources" : [
    {
      "href" : "http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?service_name=HDFS&service_config_version=3",
      "group_id" : -1,
      "group_name" : "default",
      "service_config_version" : 3,
      "service_config_version_note" : "Manual rollback to service config version 1 (HDFS)",
      "service_name" : "HDFS"
    }
  ]
}

 

Requesting currently active service config versions

Service config versions which are currently used can be requested via service_config_versions endpoint using filtering by is_current field

curl -u admin:admin -H 'X-Requested-By:admin' 'http://localhost:8080/api/v1/clusters/cc/configurations/service_config_versions?is_current=true'
  • No labels