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 #8

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

This addresses a problem we were having with saving modified SiteConfigurations. Also mentioned in https://github.com/rapid7/nexpose-client-python/issues/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).

This makes it work, but requires a few more params when creating a new site. May want to add in defaults in AsXML if the attributes weren't parsed from an existing site.

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.configname = "Full audit without Web Spider"
    site_cfg.configid = 3
    site_cfg.configengineid = 3
    site_cfg.configversion = 3
    site_cfg.configtemplateid = "full-audit-without-web-spider"
    site_cfg.hosts.append(nexpose_site.Host("192.168.0.100"))
    session.SaveSiteConfiguration(site_cfg)
gschneider-r7 commented 7 years ago

One comment on the indentation, but this looks good! Thanks @scottjpack!

I might PR the default attributes to your branch or commit it separately - if you don't beat me to it anyway.

scottjpack commented 7 years ago

Oops, indentation got past me. Cancelling this PR, will create a new one with fixed identation and default attributes.