Function: Delete an A Record from Infoblox

by Simon Sparks · 1 June 2025

To use this function add it to the class library file named InfobloxService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: InfobloxService.ts

Description: Orchestrator Function to delete an A Record from Infoblox

Function InfobloxDeleteARecord

public InfobloxDeleteARecord(objRESTHost: RESTHost, strARecord: string): void {
  try {
      let strUrl: string = "/wapi/v1.1/record:host?_return_type=json&name=" + strARecord;

      let objRESTRequest: RESTRequest = objRESTHost.createRequest("GET", strUrl, null);
      objRESTRequest.contentType = "application/json";
      objRESTRequest.setHeader("Accept", "application/json");

      let objRESTResponse: RESTResponse = objRESTRequest.execute();

      if (objRESTResponse.statusCode == 200) {
          let strContentAsString: string = objRESTResponse.contentAsString;

          try {
              let arrRecords: any[] = JSON.parse(strContentAsString);

              let objRegExp: RegExp = /(record:(cname|a|host|mx|ptr|txt))\/([A-Za-z0-9]+):([a-z0-9\-\.]+)\/default/;

              for (let iiii = 0; iiii < arrRecords.length; iiii++) {
                  let objRecord: any = arrRecords[iiii];

                  let strRecordReference: string = objRecord._ref;
                  let strRecordCanonical: string = objRecord.canonical;
                  let strRecordName: string = objRecord.name;

                  let objRegExpExecArray: RegExpExecArray = objRegExp.exec(strRecordReference);

                  let strObjectType: string = objRegExpExecArray[1];
                  let strObjectReference: string = objRegExpExecArray[3];
                  let strObjectName: string = objRegExpExecArray[4];

                  this.objLogger.info("RECORD REFERENCE: " + strRecordReference);
                  this.objLogger.info("RECORD CANONICAL: " + strRecordCanonical);
                  this.objLogger.info("RECORD NAME: " + strRecordName);
                  this.objLogger.info("OBJECT TYPE: " + strObjectType);
                  this.objLogger.info("OBJECT REFERENCE: " + strObjectReference);
                  this.objLogger.info("OBJECT NAME: " + strObjectName);

                  if (strObjectName == strARecord) {
                      let strUrl: string = "/wapi/v1.1/record:host/" + strObjectReference + "?_return_type=json";

                      let objRESTRequest: RESTRequest = objRESTHost.createRequest("DELETE", strUrl, null);
                      objRESTRequest.contentType = "application/json";
                      objRESTRequest.setHeader("Accept", "application/json");

                      this.objLogger.info("ATTEMPTING To DELETE A RECORD: " + strObjectName);

                      let objRESTResponse: RESTResponse = objRESTRequest.execute();

                      if (objRESTResponse.statusCode == 200) {
                          this.objLogger.info("SUCCESSFULLY DELETED A RECORD: " + strObjectName);
                      }
                      else {
                          this.objLogger.info("HTTP Error: " + objRESTResponse.statusCode);
                      }
                  }
              }
          }
          catch (objException) {
              this.objLogger.info("JSON Error: " + objException);
          }
      }
      else {
          this.objLogger.info("HTTP Error: " + objRESTResponse.statusCode);
      }
  }
  catch (objException) {
      this.objLogger.info("objException = " + objException);
  }
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like