New Upstream Release - python-hpilo
Ready changes
Summary
Merged new upstream version: 4.4.3 (was: 4.3).
Resulting package
Built on 2022-03-14T10:48 (took 5m57s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases python-hpilo-docapt install -t fresh-releases python3-hpilo
Lintian Result
Diff
diff --git a/CHANGES b/CHANGES
index 658a23e..10e4adb 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,18 @@
+Version 4.4.3, 2021-01-16
+
+* Fixes compatibility with OpenSSL v1.1.0+
+
+Version 4.4.2, 2020-11-19
+
+* Python 3.9 compatibility fix
+
+Version 4.4, 2020-10-06
+Version 4.4.1, 2020-10-06
+
+* Support HPE fwpkg firmware packaging
+* Bugfixes in delete_sso_server and get_generic_ldap_enabled
+* Fix in the firmware mirror script
+
Version 4.3, 2018-08-23
* Backwards compatibility with code that uses the ssl_version parameter
diff --git a/COPYING b/COPYING
index 033e813..207662a 100644
--- a/COPYING
+++ b/COPYING
@@ -1,5 +1,5 @@
python-hpilo - Manage iLO interfaces from python code
-Copyright (C) 2011-2018 Dennis Kaarsemaker <dennis@kaarsemaker.net>
+Copyright (C) 2011-2021 Dennis Kaarsemaker <dennis@kaarsemaker.net>
This program is free software: you can redistribute it and/or modify
it under the terms of (at your option) either the Apache License,
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..e5aac22
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,16 @@
+include docs/*rst
+include docs/_static/*
+include docs/output/*
+include docs/Makefile
+include docs/*.py
+include examples/elasticsearch/hpilo_es_import
+include examples/elasticsearch/hpilo_es_dump
+include examples/elasticsearch/servers.py.example
+include examples/elasticsearch/kibana-dashboard.json
+include examples/firmwareupdater/hpilo_firmware_update
+include examples/ca/hpilo_ca
+recursive-include examples/puppet *.rb *.pp *.erb
+include ilo.conf.example
+include COPYING
+include CHANGES
+include README.md
diff --git a/PKG-INFO b/PKG-INFO
index 8e27afb..10b978d 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-hpilo
-Version: 4.3
+Version: 4.4.3
Summary: iLO automation from python or shell
Home-page: http://github.com/seveas/python-hpilo
Author: Dennis Kaarsemaker
diff --git a/README.md b/README.md
index 7da1393..ece923d 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ machine you run this code on, not the managed server.
Author and license
------------------
-This software is (c) 2011-2018 Dennis Kaarsemaker <dennis@kaarsemaker.net>
+This software is (c) 2011-2021 Dennis Kaarsemaker <dennis@kaarsemaker.net>
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
diff --git a/debian/changelog b/debian/changelog
index 12243de..5990a44 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-python-hpilo (4.3-4) UNRELEASED; urgency=medium
+python-hpilo (4.4.3-1) UNRELEASED; urgency=medium
[ Ondřej Nový ]
* Bump Standards-Version to 4.4.1.
@@ -8,7 +8,10 @@ python-hpilo (4.3-4) UNRELEASED; urgency=medium
[ Sandro Tosi ]
* Use the new Debian Python Team contact name and address
- -- Sandro Tosi <morph@debian.org> Mon, 04 Jan 2021 17:05:04 -0500
+ [ Debian Janitor ]
+ * New upstream release.
+
+ -- Sandro Tosi <morph@debian.org> Mon, 14 Mar 2022 10:43:18 -0000
python-hpilo (4.3-3) unstable; urgency=medium
diff --git a/docs/conf.py b/docs/conf.py
index ce23476..d5d8012 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -43,16 +43,16 @@ master_doc = 'index'
# General information about the project.
project = u'python-hpilo'
-copyright = u'2011-2018, Dennis Kaarsemaker'
+copyright = u'2011-2020, Dennis Kaarsemaker'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = '4.3'
+version = '4.4.3'
# The full version, including alpha/beta/rc tags.
-release = '4.3'
+release = '4.4.3'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/firmware.rst b/docs/firmware.rst
index 91e5a78..63198dd 100644
--- a/docs/firmware.rst
+++ b/docs/firmware.rst
@@ -2,8 +2,14 @@ Dealing with iLO firmware updates
=================================
One of the key features of python_hpilo is that it makes iLO firmware updates
-painless. It can download the firmware for you, or you can feed it the .bin or
-.scexe files HP ships.
+painless. It can download the firmware for you, or you can feed it the .bin,
+.scexe or .fwpkg files HP ships.
+
+Note that the newest versions of the firmware, as of August 2020, are shipped
+in a new format and you will need to use python-hpilo 4.4 or newer to extract
+and use them. If you cannot upgrade, you can manually extract the .bin file
+from the .fwpkg file (just open it with anything that can open zip files) and
+pass the .bin file to python-hpilo.
From the CLI
------------
@@ -28,7 +34,7 @@ that too::
hpilo_cli download_rib_firmware ilo4 all # Download all firmware versions for iLO 4
hpilo_cli download_rib_firmware all all # Download all firmware versions for all iLO types
-.. _`firmware.conf`: https://raw.githubusercontent.com/seveas/python-hpilo/master/firmware.conf
+.. _`firmware.conf`: https://seveas.github.io/python-hpilo/firmware.conf
Using the API
-------------
@@ -89,7 +95,7 @@ auto-update via cron) such a mirror with a simple shellscript::
#!/bin/sh
cd /var/www/html/ilo-firmware
- wget -q https://raw.githubusercontent.com/seveas/python-hpilo/master/firmware.conf
+ wget -q https://seveas.github.io/python-hpilo/firmware.conf
hpilo_cli -c /dev/null download_rib_firmware all all
This will download and extract the necessary files to
diff --git a/docs/index.rst b/docs/index.rst
index 35a7359..adec4af 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -118,7 +118,7 @@ Development information
Author and license
==================
-This software is (c) 2011-2018 Dennis Kaarsemaker <dennis@kaarsemaker.net>
+This software is (c) 2011-2021 Dennis Kaarsemaker <dennis@kaarsemaker.net>
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
diff --git a/docs/install.rst b/docs/install.rst
index a73ace0..c475e23 100644
--- a/docs/install.rst
+++ b/docs/install.rst
@@ -27,44 +27,19 @@ Sometimes needed:
Installing the latest release
-----------------------------
-When using Ubuntu, Debian, Fedora, CentOS or RHEL, it is advisable to use the
-deb or rpm packages I create for every release, so you get automatic updates
-whenever a new release is issued.
+The easiest way is to install with pip::
-Users of Ubuntu releases that Canonical still supports can use my launchpad
-PPA:
+``pip3 install python-hpilo``
-.. code-block:: console
+You can also download the package from `PyPI`_ and install it manually like any
+other application by unpacking it and running ``python setup.py install``.
- $ sudo add-apt-repository ppa:dennis/python
- $ sudo apt-get update
- $ sudo apt-get install python-hpilo
+.. _`PyPI`: http://pypi.python.org/packages/source/p/python-hpilo/, extract it and run
-Users of supported Fedora and RHEL/CentOS releases can ue my COPR repository:
+Users of supported Fedora and RHEL/CentOS releases can also use my COPR repository:
.. code-block:: console
$ sudo dnf install dnf-plugins-core
$ sudo dnf copr enable seveas/python-hpilo
$ sudo dnf install python-hpilo
-
-Or for older releases, using yum:
-
-.. code-block:: console
-
- $ sudo yum install yum-plugin-copr
- $ sudo yum copr enable seveas/python-hpilo
- $ sudo yum install python-hpilo
-
-And for even older releases, where yum-plugin-copr isn't available, you can
-download a .repo file from `COPR`_ to copy to ``/etc/yum.repos.d``.
-
-.. _`COPR`: https://copr.fedorainfracloud.org/coprs/seveas/python-hpilo/
-
-If you can not, or do not want to use these packages (for example, if you use
-windows or osx, or if you want to install into a virtualenv) you can download
-the package from `PyPI`_ and install it manually like any other application by
-unpacking it and running ``python setup.py install``. Or use ``pip`` to install
-it: ``pip install python-hpilo``
-
-.. _`PyPI`: http://pypi.python.org/packages/source/p/python-hpilo/, extract it and run
diff --git a/docs/shell.rst b/docs/shell.rst
index 0fa2719..a0d67e1 100644
--- a/docs/shell.rst
+++ b/docs/shell.rst
@@ -58,7 +58,7 @@ file is a simple ini file that should look like this
Using such a file is recommended over using the login/password commandline
arguments.
-Many methods that can be called requier arguments. These arguments must be
+Many methods that can be called require arguments. These arguments must be
specified as :data:`key=value` pairs on the command-line. These parameters can
also point to arbitrary configuration variables using the
:attr:`key='$section.option'` syntax.
diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst
index db170c1..bdb2d7e 100644
--- a/docs/troubleshooting.rst
+++ b/docs/troubleshooting.rst
@@ -38,6 +38,9 @@ so it's always a good idea to start with a firmware update::
hpilo_cli example-server.int.kaarsemaker.net update_rib_firmware version=latest
+If this fails to extract the firmware, try upgrading python-hpilo as newer
+firmware versions are shipped in a different, incompatible format.
+
Syntax error: Line #0
---------------------
Occasionally you might see this error at the end of a traceback::
@@ -88,6 +91,15 @@ first update to 1.28 and then update to a later version::
hpilo_cli example-server.int.kaarsemaker.net update_rib_firmware version=1.28
hpilo_cli example-server.int.kaarsemaker.net update_rib_firmware version=latest
+Failure to update iLO5 firmware
+-------------------------------
+The early firmware versions of iLO3 had quite a few issues. To update from
+anything older than 1.40 to 1.50 or newer, you need to update in two steps:
+first update to 1.40 and then update to a later version::
+
+ hpilo_cli example-server.int.kaarsemaker.net update_rib_firmware version=1.40
+ hpilo_cli example-server.int.kaarsemaker.net update_rib_firmware version=latest
+
`hpilo.IloError: Error reading configuration`
---------------------------------------------
This error might occur in delayed mode when one of the calls causes a reset of
diff --git a/hpilo.py b/hpilo.py
index ca5335b..4239ccd 100644
--- a/hpilo.py
+++ b/hpilo.py
@@ -1,7 +1,7 @@
-# (c) 2011-2018 Dennis Kaarsemaker <dennis@kaarsemaker.net>
+# (c) 2011-2021 Dennis Kaarsemaker <dennis@kaarsemaker.net>
# see COPYING for license details
-__version__ = "4.3"
+__version__ = "4.4.3"
import codecs
import io
@@ -395,10 +395,14 @@ class Ilo(object):
raise IloCommunicationError("Unable to resolve %s" % self.hostname)
try:
- if self.ssl_context:
- return self.ssl_context.wrap_socket(sock, server_hostname=self.hostname)
- else:
- return ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_TLS)
+ if not self.ssl_context:
+ self.ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS)
+ # Even more sadly, some iLOs are still using RC4-SHA
+ # which was dropped from the default cipher suite in
+ # Python 2.7.10 and Python 3.4.4. Add it back here :(
+ self.ssl_context.set_ciphers(ssl._DEFAULT_CIPHERS + ":RC4-SHA")
+ return self.ssl_context.wrap_socket(
+ sock, server_hostname=self.hostname)
except ssl.SSLError as exc:
raise IloCommunicationError("Cannot establish ssl session with %s:%d: %s" % (self.hostname, self.port, str(exc)))
@@ -554,6 +558,11 @@ class Ilo(object):
if '<RIBCL VERSION="2.22"/>' in data:
data = data.replace('<RIBCL VERSION="2.22"/>', '<RIBCL VERSION="2.22">')
+
+ # Remove binary 01 in xml output. This bug was seen on a faulty PSU.
+ if '\x01' in data:
+ data = data.replace('\x01', '')
+
# Quite a few unescaped quotation mark bugs keep appearing. Let's try
# to fix up the XML by replacing the last occurence of a quotation mark
# *before* the position of the error.
@@ -675,7 +684,7 @@ class Ilo(object):
retval[key.lower()] = self._coerce(val)
if list(element):
fields = []
- for child in element.getchildren():
+ for child in element:
if child.tag == 'FIELD':
fields.append(self._element_to_dict(child))
if fields:
@@ -906,7 +915,8 @@ class Ilo(object):
def delete_sso_server(self, index):
"""Delete an SSO server by index"""
- return self._control_tag('SSO_INFO', 'DELETE_SERVER', index)
+ return self._control_tag('SSO_INFO', 'DELETE_SERVER',
+ attrib={'INDEX': str(index)})
def delete_user(self, user_login):
"""Delete the specified user from the ilo"""
@@ -1452,7 +1462,8 @@ class Ilo(object):
rawvsp_port=None, vsp_software_flow_control=None,
terminal_services_port=None,
shared_console_enable=None, shared_console_port=None, remote_console_acquire=None,
- telnet_enable=None, ssl_empty_records_enable=None,
+ telnet_enable=None, ssl_empty_records_enable=None, remote_console_status=None,
+ ribcl_status=None, virtual_media_status=None, webgui_status=None, webserver_status=None,
# Security settings
min_password=None, enforce_aes=None, authentication_failure_logging=None,
@@ -1464,6 +1475,8 @@ class Ilo(object):
remote_syslog_enable=None, remote_syslog_server_address=None, remote_syslog_port=None,
alertmail_enable=None, alertmail_email_address=None,
alertmail_sender_domain=None, alertmail_smtp_server=None, alertmail_smtp_port=None,
+ alertmail_smtp_auth_enable=None, alertmail_smtp_auth_username=None,
+ alertmail_smtp_secure_enable=None,
# Console capturing
vsp_log_enable=None,
@@ -1482,7 +1495,46 @@ class Ilo(object):
many settings only work on certain iLO models and firmware versions"""
vars = dict(locals())
del vars['self']
- dont_map = ['authentication_failure_logging', 'authentication_failures_before_delay', 'serial_cli_speed']
+
+ # even though a get_global_settings returns the actual speed we have to use
+ # numerical values between 0 (unchanged) and 6 to represent speed
+ serial_cli_speed_options = {
+ '9600': 1,
+ '19200': 2,
+ '38400': 3,
+ '57600': 4,
+ '115200': 5,
+ }
+
+ # same with serial_cli_status
+ serial_cli_status_options = {
+ 'Disabled': 1,
+ 'Enabled-No Authentication': 2,
+ 'Enabled-Authentication Required': 3,
+ }
+
+ # and authentication_failure_logging
+ authentication_failure_logging_options = {
+ 'Disabled': 0,
+ 'Enabled-every failure': 1,
+ 'Enabled-every 2nd failure': 2,
+ 'Enabled-every 3rd failure': 3,
+ 'Enabled-every 5th failure': 5,
+ }
+
+ vars_mappings = {
+ "serial_cli_speed": serial_cli_speed_options,
+ "serial_cli_status": serial_cli_status_options,
+ "authentication_failure_logging": authentication_failure_logging_options
+ }
+
+ for var_name, var_mappings in vars_mappings.items():
+ if vars.get(var_name, None) is not None:
+ var_value = str(vars.get(var_name))
+ vars[var_name] = str(var_mappings.get(var_value,var_value))
+
+ dont_map = ['authentication_failure_logging', 'authentication_failures_before_delay', 'serial_cli_speed',
+ 'min_password', 'session_timeout', "serial_cli_status"]
elements = [etree.Element(x.upper(), VALUE=str({True: 'Yes', False: 'No'}.get(vars[x], vars[x])))
for x in vars if vars[x] is not None and x not in dont_map] + \
[etree.Element(x.upper(), VALUE=str(vars[x]))
@@ -1509,7 +1561,7 @@ class Ilo(object):
dhcpv6_stateful_enable=None, dhcpv6_stateless_enable=None, dhcpv6_sntp_settings=None,
dhcpv6_domain_name=None, ilo_nic_auto_select=None, ilo_nic_auto_snp_scan=None,
ilo_nic_auto_delay=None, ilo_nic_fail_over=None, gratuitous_arp=None,
- ilo_nic_fail_over_delay=None):
+ ilo_nic_fail_over_delay=None, snp_port=None):
"""Configure the network settings for the iLO card. The static route arguments require
dicts as arguments. The necessary keys in these dicts are dest,
gateway and mask all in dotted-quad form"""
@@ -1519,8 +1571,12 @@ class Ilo(object):
# For the ipv4 route elements, {'dest': XXX, 'gateway': XXX}
# ipv6 routes are ipv6_dest, prefixlen, ipv6_gateway
# IPv6 addresses may specify prefixlength as /64 (default 64)
+ dont_map = ['prefixlen', 'ilo_nic_auto_snp_scan', 'ilo_nic_auto_delay', 'ilo_nic_fail_over_delay', 'snp_port', 'vlan_id']
elements = [etree.Element(x.upper(), VALUE=str({True: 'Yes', False: 'No'}.get(vars[x], vars[x])))
- for x in vars if vars[x] is not None and 'static_route_' not in x]
+ for x in vars if vars[x] is not None and 'static_route_' not in x and x not in dont_map] + \
+ [etree.Element(x.upper(), VALUE=str(vars[x]))
+ for x in vars if vars[x] is not None and 'static_route_' not in x and x in dont_map]
+
for key in vars:
if 'static_route_' not in key or not vars[key]:
continue
@@ -1538,6 +1594,10 @@ class Ilo(object):
element.attrib.update({'VALUE': addr, 'PREFIXLEN': plen})
if 'PREFIXLEN' not in element.attrib:
element.attrib['PREFIXLEN'] = '64'
+ if "IPV6_STATIC_ROUTE_" in element.tag:
+ plen = element.attrib['PREFIXLEN']
+ if not isinstance(plen, basestring):
+ element.attrib['PREFIXLEN'] = str(plen)
return self._control_tag('RIB_INFO', 'MOD_NETWORK_SETTINGS', elements=elements)
mod_network_settings.requires_dict = ['static_route_1', 'static_route_2', 'static_route_3',
'ipv6_static_route_1', 'ipv6_static_route_2', 'ipv6_static_route_3']
@@ -1556,6 +1616,7 @@ class Ilo(object):
dir_kerberos_enabled=None,dir_kerberos_realm=None,
dir_kerberos_kdc_address=None,dir_kerberos_kdc_port=None,
dir_kerberos_keytab=None,
+ dir_generic_ldap_enabled=None,
dir_grpacct1_name=None,dir_grpacct1_sid=None,
dir_grpacct1_priv=None,dir_grpacct2_name=None,
dir_grpacct2_sid=None,dir_grpacct2_priv=None,
diff --git a/hpilo_cli b/hpilo_cli
index 144aad8..fce19e0 100755
--- a/hpilo_cli
+++ b/hpilo_cli
@@ -1,6 +1,6 @@
#!/usr/bin/python
#
-# (c) 2011-2018 Dennis Kaarsemaker <dennis@kaarsemaker.net>
+# (c) 2011-2020 Dennis Kaarsemaker <dennis@kaarsemaker.net>
# see COPYING for license details
import hpilo
diff --git a/hpilo_fw.py b/hpilo_fw.py
index e7df8c2..c7df6fd 100644
--- a/hpilo_fw.py
+++ b/hpilo_fw.py
@@ -1,12 +1,13 @@
-# Downloader / extracter for latest iLO2 / iLO3 / iLO4 firmware
+# Downloader / extracter for latest iLO2 / iLO3 / iLO4 / iLO5 firmware
#
-# (c) 2011-2018 Dennis Kaarsemaker <dennis@kaarsemaker.net>
+# (c) 2011-2020 Dennis Kaarsemaker <dennis@kaarsemaker.net>
# see COPYING for license details
import tarfile
import io
import os
import sys
+from zipfile import ZipFile
PY3 = sys.version_info[0] >= 3
if PY3:
@@ -25,7 +26,7 @@ def config(mirror=None):
if mirror:
conf = _download(mirror + 'firmware.conf')
else:
- conf = _download('https://raw.githubusercontent.com/seveas/python-hpilo/master/firmware.conf')
+ conf = _download('https://seveas.github.io/python-hpilo/firmware.conf')
conf = conf.decode('ascii')
parser = ConfigParser.ConfigParser()
parser.readfp(io.StringIO(conf))
@@ -48,8 +49,11 @@ def download(ilo, path=None, progress = lambda txt: None):
progress(msg)
data = _download(conf[ilo]['url'], lambda txt: progress('%s %s' % (msg, txt)))
if conf[ilo]['url'].endswith('.bin'):
- with open(os.path.join(path, conf[ilo]['file']), 'w') as fd:
+ with open(os.path.join(path, conf[ilo]['file']), 'wb') as fd:
fd.write(data)
+ elif conf[ilo]['url'].endswith('.fwpkg'):
+ with ZipFile(io.BytesIO(data)) as zipObj:
+ zipObj.extract(conf[ilo]['file'], path)
else:
_parse(data, path, conf[ilo]['file'])
return True
diff --git a/python_hpilo.egg-info/PKG-INFO b/python_hpilo.egg-info/PKG-INFO
new file mode 100644
index 0000000..10b978d
--- /dev/null
+++ b/python_hpilo.egg-info/PKG-INFO
@@ -0,0 +1,20 @@
+Metadata-Version: 1.1
+Name: python-hpilo
+Version: 4.4.3
+Summary: iLO automation from python or shell
+Home-page: http://github.com/seveas/python-hpilo
+Author: Dennis Kaarsemaker
+Author-email: dennis@kaarsemaker.net
+License: UNKNOWN
+Description: UNKNOWN
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Topic :: System :: Hardware
+Classifier: Topic :: System :: Systems Administration
+Classifier: Topic :: System :: Networking
diff --git a/python_hpilo.egg-info/SOURCES.txt b/python_hpilo.egg-info/SOURCES.txt
new file mode 100644
index 0000000..fca5c21
--- /dev/null
+++ b/python_hpilo.egg-info/SOURCES.txt
@@ -0,0 +1,125 @@
+CHANGES
+COPYING
+MANIFEST.in
+README.md
+hpilo.py
+hpilo_cli
+hpilo_fw.py
+ilo.conf.example
+setup.py
+docs/Makefile
+docs/ahs.rst
+docs/authentication.rst
+docs/autofirmware.rst
+docs/boot.rst
+docs/ca.rst
+docs/conf.py
+docs/contributing.rst
+docs/elasticsearch.rst
+docs/federation.rst
+docs/firmware.rst
+docs/health.rst
+docs/ilodoc.py
+docs/index.rst
+docs/info.rst
+docs/input.rst
+docs/install.rst
+docs/license.rst
+docs/log.rst
+docs/media.rst
+docs/networksettings.rst
+docs/power.rst
+docs/profile.rst
+docs/puppet.rst
+docs/python.rst
+docs/security.rst
+docs/shell.rst
+docs/snmp.rst
+docs/troubleshooting.rst
+docs/xmldata.rst
+docs/_static/kibana.png
+docs/_static/python-hpilo.png
+docs/output/get_ahs_status
+docs/output/get_all_languages
+docs/output/get_all_licenses
+docs/output/get_all_user_info
+docs/output/get_all_users
+docs/output/get_asset_tag
+docs/output/get_asset_tag_1
+docs/output/get_cert_subject_info
+docs/output/get_critical_temp_remain_off
+docs/output/get_current_boot_mode
+docs/output/get_dir_config
+docs/output/get_dir_test_results
+docs/output/get_embedded_health
+docs/output/get_encrypt_settings
+docs/output/get_ers_settings
+docs/output/get_federation_all_groups
+docs/output/get_federation_all_groups_info
+docs/output/get_federation_group
+docs/output/get_federation_multicast
+docs/output/get_fips_status
+docs/output/get_fw_version
+docs/output/get_global_settings
+docs/output/get_host_data
+docs/output/get_host_power_saver_status
+docs/output/get_host_power_status
+docs/output/get_host_pwr_micro_ver
+docs/output/get_hotkey_config
+docs/output/get_ilo_event_log
+docs/output/get_language
+docs/output/get_network_settings
+docs/output/get_oa_info
+docs/output/get_one_time_boot
+docs/output/get_pending_boot_mode
+docs/output/get_pers_mouse_keyboard_enabled
+docs/output/get_persistent_boot
+docs/output/get_power_cap
+docs/output/get_power_readings
+docs/output/get_product_name
+docs/output/get_pwreg
+docs/output/get_rack_settings
+docs/output/get_sdcard_status
+docs/output/get_security_msg
+docs/output/get_server_auto_pwr
+docs/output/get_server_event_log
+docs/output/get_server_fqdn
+docs/output/get_server_name
+docs/output/get_server_power_on_time
+docs/output/get_smh_fqdn
+docs/output/get_snmp_im_settings
+docs/output/get_spatial
+docs/output/get_sso_settings
+docs/output/get_supported_boot_mode
+docs/output/get_tpm_status
+docs/output/get_twofactor_settings
+docs/output/get_uid_status
+docs/output/get_user
+docs/output/get_vm_status
+docs/output/xmldata
+docs/output/xmldata_1
+examples/ca/hpilo_ca
+examples/elasticsearch/hpilo_es_dump
+examples/elasticsearch/hpilo_es_import
+examples/elasticsearch/kibana-dashboard.json
+examples/elasticsearch/servers.py.example
+examples/firmwareupdater/hpilo_firmware_update
+examples/puppet/modules/ilo/lib/puppet/provider/ilo.rb
+examples/puppet/modules/ilo/lib/puppet/provider/ilo_firmware/ilo_firmware.rb
+examples/puppet/modules/ilo/lib/puppet/provider/ilo_license/ilo_license.rb
+examples/puppet/modules/ilo/lib/puppet/provider/ilo_settings/ilo_settings.rb
+examples/puppet/modules/ilo/lib/puppet/provider/ilo_user/ilo_user.rb
+examples/puppet/modules/ilo/lib/puppet/type/ilo_firmware.rb
+examples/puppet/modules/ilo/lib/puppet/type/ilo_license.rb
+examples/puppet/modules/ilo/lib/puppet/type/ilo_settings.rb
+examples/puppet/modules/ilo/lib/puppet/type/ilo_user.rb
+examples/puppet/modules/ilo/lib/puppet/util/network_device/ilo.rb
+examples/puppet/modules/ilo/lib/puppet/util/network_device/ilo/device.rb
+examples/puppet/modules/ilo/lib/puppet/util/network_device/ilo/facts.rb
+examples/puppet/modules/ilo/lib/puppet/util/network_device/ilo/transport.rb
+examples/puppet/modules/ilo/manifests/init.pp
+examples/puppet/modules/ilo/templates/ilo-device.erb
+python_hpilo.egg-info/PKG-INFO
+python_hpilo.egg-info/SOURCES.txt
+python_hpilo.egg-info/dependency_links.txt
+python_hpilo.egg-info/top_level.txt
\ No newline at end of file
diff --git a/python_hpilo.egg-info/dependency_links.txt b/python_hpilo.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/python_hpilo.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/python_hpilo.egg-info/top_level.txt b/python_hpilo.egg-info/top_level.txt
new file mode 100644
index 0000000..8fd83f0
--- /dev/null
+++ b/python_hpilo.egg-info/top_level.txt
@@ -0,0 +1,2 @@
+hpilo
+hpilo_fw
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..8bfd5a1
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,4 @@
+[egg_info]
+tag_build =
+tag_date = 0
+
diff --git a/setup.py b/setup.py
index 6831500..eb2e9ba 100755
--- a/setup.py
+++ b/setup.py
@@ -1,9 +1,9 @@
#!/usr/bin/python
-from distutils.core import setup
+from setuptools import setup
setup(name = "python-hpilo",
- version = "4.3",
+ version = "4.4.3",
author = "Dennis Kaarsemaker",
author_email = "dennis@kaarsemaker.net",
url = "http://github.com/seveas/python-hpilo",