function getToken()

in packages/core/lib/segments/plugins/ec2_plugin.js [58:93]


function getToken(callback) {
  const httpReq = http.__request ? http.__request : http.request;
  const TTL = 60; //seconds
  const TOKEN_PATH = '/latest/api/token';
  const options = getOptions(TOKEN_PATH, 'PUT', {
    'X-aws-ec2-metadata-token-ttl-seconds': TTL
  });

  let req = httpReq(options, function(res) {
    let body = '';

    res.on('data', function(chunk) {
      body += chunk;
    });

    res.on('end', function() {
      if (this.statusCode === 200 || this.statusCode === 300) {
        callback(body);
      } else {
        callback(null);
      }
    });
  });

  req.on('error', function() {
    callback(null);
  });

  req.on('timeout', function() {
    req.abort();
    callback(null);
  });

  req.setTimeout(Plugin.METADATA_TIMEOUT);
  req.end();
}