async function deleteSensors()

in sensor/delete-sensors.js [28:87]


async function deleteSensors(){

  try {

    var iot = new AWS.Iot();
  
    //iterate over all sensors and create policies, certs, and things
    sensors.forEach(async (sensor) => {

        //remove the iot core endpoint
        sensor.settings.host = "";
    
        //attach thing to certificate
        await iot.detachThingPrincipal({thingName: sensor.settings.clientId, principal: sensor.settings.certificateArn}).promise();

        //delete the thing
        await iot.deleteThing({thingName: sensor.settings.clientId}).promise();

        //detach policy from certificate
        var policyName = 'Policy-' + sensor.settings.clientId;
        await iot.detachPolicy({ policyName: policyName, target: sensor.settings.certificateArn}).promise();

        //delete the IOT policy
        result = await iot.deletePolicy({policyName: policyName}).promise()

        //delete the certificates
        var certificateId = sensor.settings.certificateArn.split('/')[1];
        result = await iot.updateCertificate({certificateId:certificateId, newStatus:"INACTIVE"}).promise();
        result = await iot.deleteCertificate({certificateId:certificateId, forceDelete:true}).promise();
        sensor.settings.certificateArn = ""

        //delete the certificate files
        await fs.unlink(sensor.settings.keyPath);
        sensor.settings.keyPath = "";

        await fs.unlink(sensor.settings.certPath);
        sensor.settings.certPath = "";
        sensor.settings.caPath = "";

        //save the updated settings file
        let data = JSON.stringify(sensors, null, 2);
        await fs.writeFile(SENSORS_FILE, data);
    })

    //display results
    console.log('IoT Things removed: ' + sensors.length);
    console.log('AWS Region: ' + REGION);
    console.log('AWS Profile: ' + PROFILE);

    sensors.forEach((sensor) => {
      console.log('Thing Name: ' + sensor.settings.clientId);
    })

  }
  catch (err) {

    console.log('Error deleting sensors');
    console.log(err.message);
  }
}