All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.5.0 - 2020-05-12
- Add full support for audits and policies. Add
get_policy
,get_policies
,clone_policy
,delete_policy
,get_audit
,get_audits
,clone_audit
anddelete_audit
methods to GMPv9 class. Also do not return policies for config requests and audits for task requests #223
- If it isn't possible to connect to a Unix Domain Socket a GvmError is raised now #207
- Dropped version handling code from python-gvm and replaced it with using pontos.version #213
- Added an API and CLI utilities for the version handling in python-gvm #198
- Replaced
pipenv
withpoetry
for dependency management.poetry install
works a bit different thenpipenv install
. It installs dev packages by default and also python-gvm in editable mode. This means after runningpoetry install
gvm will directly be importable in the virtual python environment. #197 - Update error classes to always have meaningful
__str__
and__repr__
method. This allows for easier error printing #199
- Added
GvmServerError
,GvmClientError
,GvmResponseError
andInvalidArgumentType
error type classes #192
- Refactored the
InvalidArgument
andRequiredArgument
errors in the gmp classes #192 - Refactored the status response errors in case of a failure in the communication with the server in
transform.py
#192
- Added DEFAULT_SSH_PORT and DEFAULT_HOSTNAME constants to
gmp.connection
#185 - Added
determine_remote_gmp_version
anddetermine_supported_gmp
methods togmp.protocols.gmp
module #186
- Added a workaround that fixes the
exclude_hosts
-bug in the methodmodify_target
. See #187 for more details #188 - Fixed value of
EntityType.AGENT
enum #190
1.1.0 - 2019-11-22
- Added ignore_pagination and details arguments for get_report #163
- Introduced Gmpv9 for GMP 9 support #157, #165, #166
- Added new
create_audit
method, to create a task with theusage_type
audit
#157 - Added new
create_policy
method, to create a config with theusage_type
policy
#157 - Added the new methods
create_tls_certificate
,modify_tls_certificate
andclone_tls_certificate
to create, modify and copy TLS certificates #157 - Added the new method
get_tls_certificates
, to request TLS certificates from the server #157 - Added the new method
get_tls_certificate
, to request a single TLS certificate from the server #166
- Use Gmpv9 in gvm.protocols.latest module #165
- Added type
TLS_CERTIFICATE
toEntityType
andFilterType
#157 - Changed the
DEFAULT_UNIX_SOCKET_PATH
#119 - ospv1.py: Don't half shutdown the TLS socket. #180
- Mark make_unique argument of create_target Gmpv8 as deprecated and ignore it. It is already ignored by gvmd with GMP 8 #156
1.0.0 - 2019-09-18
- Return version tuple from get_protocol_version methods #154
- Fixed
create_tag
andmodify_tag
resource_type
argument to expect an EntityType inGmp8
#150 - Re-added
SMB
as an allowedAlertMethod
for SecInfo events #145
1.0.0.beta3 - 2019-07-30
- Added preferences argument to
create_task
method #89 - Added validation of alive_tests argument to
create_target
method #88 - Added ssh_credential_port argument to
modify_target
#88 - Split getting a single preference by name from
get_preferences
method intoget_preference
#85 - Added resource_type argument to
get_aggregates
method #107 - Added an explicit
create_container_task
method #108 - Added Gmpv8 version of create_tag with resource_filter parameter and plural resource_ids parameter #115
- Added Gmpv8 version of modify_tag with resource_action parameter, resource_filter parameter, plural resource_ids parameter #115
- Added no_details argument to
get_reports
method #129 - Added
get_vulnerabilities
method #132 - Added
get_ticket
,get_tickets
,create_ticket
,clone_ticket
,modify_ticket
anddelete_ticket
APIs to GMPv8 #132 - Added filter types for
host
,operating system
,ticket
andvulnerability
#133 - Added a
password only
credential type #133 - Added type hints for Gmpv8 #136
- Added dynamic selection of the Gmp class depending on the GMP version supported by the remote manager daemon #141
- Added all types as types property to the Gmp classes (e.g gmp.types.EntityType.TASK) #143
- Renamed
create_asset
method tocreate_host
and dropped asset_type argument. It is only possible to create host assets. #77 - Require either setting_id or name for
modify_setting
not both arguments #87 - Allow empty string as value argument for
modify_setting
#87 - Require either user_id or name for
modify_user
not both arguments #87 - Updated argument types for
create_note
,create_override
,modify_note
andmodify_override
#87 - The arguments threat (and new_threat) for
create_note
,modify_note
,create_override
andmodify_override
must be one of 'High', 'Medium', 'Low', 'Alarm', 'Log' or 'Debug' now #87 - Allow to pass either user_id or name to
delete_user
#88 - Don't require inheritor_id or inheritor_name for
delete_user
- Don't require ca_pub for
create_scanner
#88 - Change port argument for
create_scanner
to be an integer #88 - Refactor
modify_scanner
method: Adjust argument types corresponding tocreate_scanner
and only require scanner_id #88 - Updated and improved validation of
create_schedule
andmodify_schedule
arguments #89 - Refactor
modify_task
to use same arguments ascreate_task
#89 - Aligned ALIVE_TESTS declaration with list from GSA #93
- Address DeprecationWarning regarding
collections
module #99 - Forbid '0' as target_id value for
create_task
method and move creating a container task into an own method #108 - Refresh the dependencies specified via the Pipfile.lock file to their latest versions #113, #131
- Make resource_id optional when creating tags (Gmpv7) #124
- Allow creating tags without resource (Gmpv8) #125
- Adapt modify_tag validation to actual implementation (Gmpv8) #127
- Use Gmpv8 as latest Gmp version #132
- Dropped the
make_unique
arguments fromcreate_filter
andcreate_target
methods in Gmpv8 #133 - Introduced Enum classes for authentication and privacy algorithms of SNMP credentials #133
- Extended
InvalidArgument
andRequiredArgument
errors to allow passing argument and function name as keyword parameter #134 - Renamed
modify_target
andcreate_target
argumentalive_tests
toalive_test
#139 - Use enum AliveTests for
alive_test
arguments #136 #139 - Use new
AlertCondition
,AlertEvent
andAlertMethod
enums forcreate_alert
andmodify_alert
methods #139 - Use new
AssetType
enum forget_asset
andget_assets
method #139 - Use new
CredentialFormat
enum forget_credential
method #139 - Use new
CredentialType
enum forcreate_credential
andmodify_credential
methods #132 #139 - Use new
EntityType
enum forcreate_permission
,create_tag
,get_aggregates
,modify_permission
andmodify_tag
methods #139 - Use new
FeedType
enum forget_feed
method #139 - Use new
FilterType
enum forcreate_filter
andmodify_filter
method #133 #139 - Use new
HostsOrdering
enum forcreate_task
andmodify_task
method #139 - Use new
InfoType
enum forget_info
andget_info_list
methods #139 - Use new
PermissionSubjectType
enum forcreate_permission
andmodify_permission
methods #139 - Use new
PortRangeType
enum forcreate_port_range
method #139 - Use new
ScannerType
enum forcreate_scanner
andmodify_scanner
methods #139 - Use new
SnmpAuthAlgorithm
andSnmpPrivacyAlgorithm
enums forcreate_credential
andmodify_credential
methods #139 - Use new
SeverityLevel
enum forcreate_note
,create_override
,modify_note
andmodify_override
methods #139 - Use new
TimeUnit
enum forcreate_schedule
andmodify_schedule
methods #139 - Update
create_schedule
andmodify_schedule
inGmpv8
to use iCalendar based data for schedules #140
- Removed the format parameter from
get_credentials
method #85 - Removed the task_id and nvt_oid parameters from
get_notes
andget_overrides
methods #85 - Removed sources argument from
modify_user
method #87 - Removed
modify_report
method #87 - Removed unused comment argument from
create_note
andcreate_override
#87 - Removed hosts_ordering argument from
modify_target
#88 - Excluded tests from installation #119
- Removed
credential_type
argument frommodify_credential
#139
- Fixed generating XML for
get_credentials
command #74 - Fixed generating XML for
get_settings
command #80 - Fixed generating XML for
get_nvts
command #84 - Fixed wrong order of key and value for condition_data, event_data and
method_data dict parameters of
modify_alert
method #85 - Fixed sending resource id in
modify_tag
#88 - Ensure
modify_setting
value is send as Base64-encoded #98
modify_config
is marked as deprecated and will be removed in future. One of the more specificmodify_config_set_
method should be used instead #87
1.0.0.beta2 - 2018-12-04
- Added new
trigger_alert
method for triggering an alert method on a specific report. - Added
import_config
method to import a scan config from xml. - Added helper function to validate xml input
gvm.xml.validate_xml_string
- Add
finish_send
method to connections. The method allows to indicate to the server sending data is finished and no additional data has to be received.
help
methodtype
argument got renamed tohelp_type
help
methodhelp_type
argument will be checked for invalid valuescreate_credential
requires a credential_type argument now.- Optional arguments are required to be passed as keyword arguments.
get_report
methodformat_id
argument got renamed toreport_format_id
- Check if scanner_type is one of '1' (OSP Scanner) or '2' (OpenVAS Scanner) in
create_scanner
method. pretty_print
accepts a xml string as input too- Optional arguments for connection class constructors must be passed as keyword arguments.
- It's possible to wait indefinitely by deactivating the timeouts via passing None as timeout argument to the connection class constructors now.
- Fix: Don't close the connection after each send/read command sequence automatically. This fixes sending more then one privileged gmp command after authentication.
- Fixed generating XML for help command
- Fixed wrong order of key and value for condition_data, event_data and
method_data dict parameters of
create_alert
method. - Fixed
get_reports
sending the wrong protocol command - Fixed
create_permission
method - Fixed
get_config
sending the correct protocol command. - Don't crash if huge content is returned in a xml response. This fixes e.g.
get_reports
for bigger report data.
- Removed
format_id
argument from get_reports - Removed
alert_id
argument fromget_reports
- Removed unused
read_timeout
argument fromUnixSocketConnection
1.0.0.beta1 - 2018-11-13
python-gvm was a part of gvm-tools prior gvm-tools version 2.0. It got extracted from gvm-tools and completely overhauled.
Some notable changes are:
- The package name changed from gmp to gvm.
- The type of connection is passed to a more generic Gmp class instead of having to select the connection when creating the gmp object.
- Support for different protocols and versions has been added. Currently supported protocols are OSP v1 and GMP v7.
- Full API documentation is available at https://python-gvm.readthedocs.io/en/latest/.
- Possible arguments to protocol methods are documented.
- Arguments should be passed as keywords
create_report
has been renamed toimport_report
.- Requesting single entities has been extracted from the list commands e.g.
get_task(task_id)
instead ofget_tasks(task_id=task_id)
. get_info
requests a single info entity.get_info_list
requests a list of info entities.filt_id
argument is calledfilter_id
at all Gmp methods.report_filter
argument forget_reports
got renamed tofilter
.report_filt_id
isfilter_id
now.create_schedule
start_time
andend_time
arguments got split into several parameters.- Plural arguments like
hosts
,users
, ... always require a list now. create_alert
event
,condition
andmethod
arguments got revised and split.- Boolean parameters expect True and False and not 1, 0, '1' or '0' now.
get_assets
type parameter got renamed toasset_type
- Copying an entity via the
copy
argument has been removed and extracted to ownclone
methods e.g.clone_task
.