function findLetter()

in ec2/gov-cloud-import.js [119:164]


function findLetter(volumeId){
    return new Promise((resolve, reject) => {
        let paramsInst = {
              Filters: [
                { Name: 'tag:gov-cloud-import',
                  Values: ['true']
                },
                { Name: 'instance-state-name',
                  Values: ['running']
                }
            ]
        };
        ec2.describeInstances(paramsInst, function(err, data) {
            if (err) {
                writeToLog(err, err.stack); // an error occurred
            } else {
                //Construct an array of mounted drives so when know which letter to use for mounting
                const instanceId = data.Reservations[0].Instances[0].InstanceId;
                let length = data.Reservations[0].Instances[0].BlockDeviceMappings.length;
                let mountedDrives = [];
                for (let index = 0; index < length; ++index) {
                    let drive = data.Reservations[0].Instances[0].BlockDeviceMappings[index].DeviceName;
                    let lastChar = drive.substr(drive.length - 1);
                    mountedDrives[index] = lastChar;
                }
                //Possible letters for mounting volume
                let driveLetters = ['f','g','h','i','j','k','l','m',];
                //If we max the connected volumes, send back a note
                if (mountedDrives.length >= 9){
                    callback(null, "Max number of connected volumes.  Restart Import.")
                }

                //Removing the mounted drive letters from possibilities
                for (let i=0; i< mountedDrives.length; i++) {
                    let index = driveLetters.indexOf(mountedDrives[i]);
                    if (index > -1) {
                        driveLetters.splice(index, 1);
                  }
                }
                //Pick a letter
                const device = '/dev/sd'+driveLetters[0];
                resolve(device);
            }
        });
    });
}