Summary

The restartArchiving() mutation resets the archiving state for all segment files in a repository by marking them as unarchived. On the next archiving cycle, LogScale re-uploads every segment to the configured archiving provider from the beginning. Use this mutation to recover from an archiving failure where segments were not uploaded correctly, or to force a full re-upload after changing the archiving configuration. Because this operation re-archives all segments regardless of prior state, it can generate significant upload traffic. To enable or disable archiving without resetting segment state, use enableArchiving() or disableArchiving() instead.

Syntax

graphql
restartArchiving(
      repositoryName: String!,
      archivalKind: ArchivalKind = RepoOnly
   ): BooleanResultType!

The mutation requires repositoryName. The archivalKind argument is optional and defaults to RepoOnly. The mutation returns a non-null BooleanResultType! confirming whether the reset was applied.

Example

Raw
graphql
mutation {
  restartArchiving(
      repositoryName: "humio",
      archivalKind: RepoOnly
     )
  { 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 {
  restartArchiving(
      repositoryName: \"humio\",
      archivalKind: RepoOnly
     )
  { 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 {
  restartArchiving(
      repositoryName: \"humio\",
      archivalKind: RepoOnly
     )
  { 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 { ^
  restartArchiving( ^
      repositoryName: \"humio\", ^
      archivalKind: RepoOnly ^
     ) ^
  { result } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  restartArchiving(
      repositoryName: \"humio\",
      archivalKind: RepoOnly
     )
  { 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 {
  restartArchiving(
      repositoryName: \"humio\",
      archivalKind: RepoOnly
     )
  { 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 {
  restartArchiving(
      repositoryName: \"humio\",
      archivalKind: RepoOnly
     )
  { 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 {
  restartArchiving(
      repositoryName: \"humio\",
      archivalKind: RepoOnly
     )
  { 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();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "restartArchiving": {
      "result": true
    }
  }
}

Input Parameters

Provide the repository name and, optionally, the archival kind to reset. The following table describes the input parameters.

Table: Input Parameters and Datatypes

Parameter Type Required Default Description
This table includes all input parameters for this mutation. Because one parameter uses a special datatype, the following table describes its fields.
archivalKind ArchivalKind   RepoOnly The archiving tier to reset. When omitted, LogScale resets only the repository-level archive. See the following table for valid values.
repositoryName String yes   The name of the repository whose segment files to mark as unarchived.

Returned Values

The mutation returns a BooleanResultType with a single result field. A value of true indicates that LogScale accepted the reset request and will re-archive all segments on the next archiving cycle. A value of false indicates that the reset was not applied, which can occur if the repository does not exist or archiving is not configured for it. The following table describes the returned type:

Table: BooleanResultType Datatype

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