Summary

The startOrganizationMultiModeMigration() mutation initiates a one-way migration from Multi organization mode (MultiV1) to MultiV2 organization mode. MultiV2 is the current generation of multi-organization architecture in LogScale. The migration process does not preserve system logs within organizations, so those logs are lost after migration completes.

Before running this mutation, verify that the cluster is in a state that supports migration by calling multiModeMigrationState(). After the mutation returns true, call multiModeMigrationState() again to confirm that migration has progressed to the expected state.

Warning

This migration is irreversible. System logs in organizations are permanently lost during the migration. Confirm that you no longer need those logs before running this mutation.

API Stability Preview

Syntax

graphql
startOrganizationMultiModeMigration(): Boolean!

This mutation takes no input arguments. It returns a nullable Boolean. A return value of true indicates that the migration was successfully initiated. A false or null return value indicates that the migration did not start, typically because the cluster is not in a migratable state.

Example

Raw
graphql
mutation {
  startOrganizationMultiModeMigration
}
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 {
  startOrganizationMultiModeMigration
}"
}
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 {
  startOrganizationMultiModeMigration
}"
}
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 { ^
  startOrganizationMultiModeMigration ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  startOrganizationMultiModeMigration
}"
}'
    "$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 {
  startOrganizationMultiModeMigration
}";
$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 {
  startOrganizationMultiModeMigration
}"
}'''

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 {
  startOrganizationMultiModeMigration
}"
}
);


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": {
    "startOrganizationMultiModeMigration": true
    }
  }
}

Returned Values

The mutation returns a nullable Boolean value. true means the migration was successfully initiated on the cluster. false or null indicates that the migration did not start. Use multiModeMigrationState() to check the current migration state and diagnose why the migration did not start.