Summary

The updateIngestPartitionScheme() mutation sets the ingest partition scheme for a LogScale cluster. The scheme controls which cluster nodes handle each ingest partition. It requires ManageCluster permission. LogScale manages the ingest partition scheme automatically, and the automation overwrites manual changes when it next runs. Do not use this mutation unless you have temporarily disabled the automation.

Syntax

graphql
updateIngestPartitionScheme(
      partitions: [IngestPartitionInput!]!
   ): BooleanResultType!

The partitions argument accepts a required, non-empty list of IngestPartitionInput! objects. Each object specifies a partition ID and the node IDs to assign to it. Partitions not included in the input are left unchanged.

The mutation returns a non-null BooleanResultType! indicating whether the operation succeeded.

Input parameters

Provide one or more IngestPartitionInput! objects. Each object identifies a partition by its numeric id and specifies the nodeIds to assign to it. Partitions not included in the input remain unchanged.

Table: IngestPartitionInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
idIntyes Short-Term The unique identifier of the ingest partition.
nodeIdsIntyes Short-Term The unique identifiers of the node.

Example

Raw
graphql
mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  updateIngestPartitionScheme(  ^
       partitions: { id: 1, nodeIds: [ 1, 2 ] } ^
  ) ^
  { result } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation {
  updateIngestPartitionScheme( 
       partitions: { id: 1, nodeIds: [ 1, 2 ] }
  )
  { result }
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();

Returned values

The mutation returns a BooleanResultType! indicating whether the partition scheme update succeeded. To confirm the updated node assignment, use the cluster() query and inspect the ingestPartitions field on each node.

Table: BooleanResultType Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
resultBooleanyes Long-Term Whether the mutation was performed successfully.