rapid7 / nexpose-client-python

DEPRECATED : Rapid7 Nexpose API client library written in Python
https://www.rapid7.com/
BSD 3-Clause "New" or "Revised" License
25 stars 20 forks source link

Include ScanConfig attributes with defaults #9

Closed scottjpack closed 7 years ago

scottjpack commented 7 years ago

Added representation for ScanConfig attributes in CreateFromXML Added representation for said elements in the AsXML output Added defaults to attributes based on the original hardcoded-values.

This addresses a problem we were having with saving modified SiteConfigurations. Also mentioned in #6

ScanConfig attributes were not previously being saved as part of the SiteConfiguration item. This change pulls in the configID, configVersion, engineID, name, and templateID in the CreateCromXML method. These attributes were previously statically defined in the AsXML method, but were not being attached to the new element (previous line 132).

You can test using the following snippet:

site_cfg = nexpose.SiteConfiguration.Create()
site_cfg.id = -1
site_cfg.name = site_name
site_cfg.description = site_desc
site_cfg.hosts.append(nexpose_site.Host("192.168.0.100"))
session.SaveSiteConfiguration(site_cfg)
gschneider-r7 commented 7 years ago

I created a PR on your branch to simplify the defaults: https://github.com/scottjpack/nexpose-client-python/pull/1

Once you merge it (or just carry over the changes manually) and everything looks good, I'll go ahead and merge this PR.

gschneider-r7 commented 7 years ago

On a side note, for your example you should instead use Range for IP addresses, e.g.

site_cfg.hosts.append(nexpose_site.Range("192.168.0.100", None))