Is Discovery Tool supposed to create hardware models or "product models"?

bjmcdonald
Tera Contributor

Is Discovery Tool supposed to create hardware models or "product models" when it discovers a new item that is not set up as a hardware model?

Seems that both our bulk load processes and discovery processes create "product models" - and do not associate the model category and such when it runs and doesn't find a match.   Can someone explain how this SHOULD work - and maybe point me to some recommended governance on models / model management, please?

26 REPLIES 26

jake.mckenna What if we're using just the Company Name normalization and not full Field normalization plugin?   We have "Dell" as the normalized version of all the other variants but when we create a new Product Model for a new laptop model and create some inventory from a spreadsheet... when Discovery finds the machine it will create a new product model with the name Dell Inc. Latitude xxxxx instead of Dell.   When looking at MakeandModelJS I see it looks for normalized manufacturer names when populating the "manufacturer" of the asset but not when making the model as you can see on Line 14 and doesn't have anything similar on the next function when creating a finding/model


_findOrCreateManufacturer: function() {


// if we have a manufacturer name, find it or make it...


if (JSUtil.nil(this.manufacturer))


return;


var companySysID = "";


// First attempt to find it canonical version


if (this._useCanonicalLookup()){


companySysID = SNC.CanonicalName.normalizeCompany(this.manufacturer, false);


this.manufacturerSysID = companySysID;


}


if (gs.nil(companySysID)) {


var companyName = this.manufacturer;


if (this._useCanonicalLookup())


companyName = SNC.CanonicalName.normalizeCompany(this.manufacturer, true);


var gr = new GlideRecord("core_company");


gr.addQuery("name", companyName);


gr.query();


if (gr.next())


this.manufacturerSysID = gr.sys_id + '';


else {


gr.initialize();


gr.setValue("name", companyName);


this.manufacturerSysID = gr.insert();


}


}


},




_findOrCreateModel: function() {


// if we have a model name, find it or make it...


if (JSUtil.nil(this.model))


return;


var gr = new GlideRecord(this.model_table);


gr.addQuery("name", this.model);


if (this.manufacturerSysID != null)


gr.addQuery("manufacturer", this.manufacturerSysID);


else


gr.addNullQuery("manufacturer");


gr.query();


if (gr.next())


this.modelSysID = gr.sys_id + '';


else {


gr.initialize();


gr.name = this.model;


if (this.manufacturerSysID != null)


gr.manufacturer = this.manufacturerSysID;


this.modelSysID = gr.insert();


}


},


David77
Giga Guru

Realizing this is an old thread, but we are seeing this too.  To clarify, we are on Jakarta (going to London in <30 days). ServiceNow Discovery will (appropriately) create most hardware models in the Hardware Model table, but other hardware in the base Product Model table. 
Why is that?

For example:

Entries created recently by Discovery in Hardware Model include:

Cisco Catalyst 356048TS
Dell Inc. PowerEdge R620

Entries created recently by Discovery in the base Product Model table (as Class = Product Model) include:

Vertiv GXT4-6000RT208
Cisco Catalyst 2960P24TcL

 

It doesn't match properly on the existing model.  Sometimes it's the manufacturer.  I've seen even the same MODELS report different information from discovery.  Like Dell, Dell Inc., Dell Incorporated, and HP, Hewlett Packard, Hewlett-Packard, Hewlet Packard.  I created a BR to email me when discovery creates a new model and create a new normalization rule to match whatever the new value created is to the value we want.  

Since we take everything hardware from the asset side whatever the leasing vendor tells us, that is what we use.  Like HP 8900.  Sometimes there is a variance like HP 8900a.  This may not be a designation whatever supplier we use tracks, and we end up with two models for a single set of devices.  If we don't care about the designation I just normalize anything HP 8900 to that one model.

David77
Giga Guru

Sorry, I'm not talking about matching existing entries, I'm talking all new entries that Discovery creates because it has encountered a model it's never seen before.

My question is not about normalizing the values in the  Product Model Name or Display Name fields, but the actual table it's being created in - we are seeing hardware models created in  the base product model table vs the hardware extension table, and are not sure why Discovery is doing that.   

I have seen that XLS imports of new hardware devices will create an entry in the base Product Model table if you have not pre-built an entry in the Hardware Model table, but I would expect Discovery to know "this is a piece of hardware I've just discovered, so I'm going to create the model entry in the Hardware Model extension table".

 

On why you see iterations of Vendor names, my guess is that is coming from either the registry or firmware, and unfortunately, you see any inconsistencies from the manufacturer there. 

Javier Sub_as
Tera Contributor

Hi all,

I'm having a hard time trying to figure out why Discovery is not creating the model associated to my IP Switch (that it correctly categorizes) as a Hardware Model. It creates it as a Product model, and after looking around forums, docs, knowledge and the whole Internet, I haven't been capable of finding a way to move a model or to recategorize it. For us it is a pretty big issue, as we are using the Hardware model table to include machines in a rack. Perhaps is it necessary to create the model previously to the discovery as a Hardware Model? What a painful process!

Regards,

    Javier