Skip to content

Commit ea151b3

Browse files
author
Sam Stelle
committed
Merge branch 'develop' into feature/storage_passwords
2 parents acbe411 + 8778bf7 commit ea151b3

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

splunklib/client.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -517,25 +517,22 @@ def restart(self, timeout=None):
517517
:param timeout: A timeout period, in seconds.
518518
:type timeout: ``integer``
519519
"""
520+
msg = { "value": "Restart requested by " + self.username + "via the Splunk SDK for Python"}
521+
# This message will be deleted once the server actually restarts.
522+
self.messages.create(name="restart_required", **msg)
520523
result = self.post("server/control/restart")
521-
if timeout is None: return result
522-
start = datetime.now()
523-
diff = timedelta(seconds=10)
524-
while datetime.now() - start < diff:
525-
try:
526-
self.login() # Has the server gone down yet?
527-
sleep(0.3)
528-
except Exception:
529-
break # Server is down. Move on.
524+
if timeout is None:
525+
return result
530526
start = datetime.now()
531527
diff = timedelta(seconds=timeout)
532528
while datetime.now() - start < diff:
533529
try:
534-
self.login() # Awake yet?
535-
return result
530+
self.login()
531+
if not self.restart_required:
532+
return result
536533
except Exception, e:
537-
sleep(2)
538-
raise Exception, "Operation timed out."
534+
sleep(1)
535+
raise Exception, "Operation time out."
539536

540537
@property
541538
def restart_required(self):
@@ -2051,12 +2048,12 @@ def __getitem__(self, key):
20512048
if len(entries) > 1:
20522049
raise AmbiguousReferenceException("Found multiple inputs of kind %s named %s." % (kind, key))
20532050
elif len(entries) == 0:
2054-
raise KeyError((kind,key))
2051+
raise KeyError((key, kind))
20552052
else:
20562053
return entries[0]
20572054
except HTTPError as he:
20582055
if he.status == 404: # No entity matching kind and key
2059-
raise KeyError((kind,key))
2056+
raise KeyError((key, kind))
20602057
else:
20612058
raise
20622059
else:

splunklib/modularinput/argument.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class Argument(object):
4848
data_type_string = "STRING"
4949

5050
def __init__(self, name, description=None, validation=None,
51-
data_type=data_type_string, required_on_edit=False, required_on_create=False):
51+
data_type=data_type_string, required_on_edit=False, required_on_create=False, title=None):
5252
"""
5353
:param name: ``string``, identifier for this argument in Splunk.
5454
:param description: ``string``, human-readable description of the argument.
@@ -58,13 +58,15 @@ def __init__(self, name, description=None, validation=None,
5858
"data_type_boolean", "data_type_number", or "data_type_string".
5959
:param required_on_edit: ``Boolean``, whether this arg is required when editing an existing modular input of this kind.
6060
:param required_on_create: ``Boolean``, whether this arg is required when creating a modular input of this kind.
61+
:param title: ``String``, a human-readable title for the argument.
6162
"""
6263
self.name = name
6364
self.description = description
6465
self.validation = validation
6566
self.data_type = data_type
6667
self.required_on_edit = required_on_edit
6768
self.required_on_create = required_on_create
69+
self.title = title
6870

6971
def add_to_document(self, parent):
7072
"""Adds an ``Argument`` object to this ElementTree document.

tests/modularinput/test_scheme.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,15 @@ def test_generate_xml_from_scheme(self):
5353
validation="is_pos_int('some_name')",
5454
data_type=Argument.data_type_number,
5555
required_on_edit=True,
56-
required_on_create=True
56+
required_on_create=True,
57+
title="Argument for ``test_scheme``"
5758
)
5859
scheme.add_argument(arg2)
5960

6061
constructed = scheme.to_xml()
62+
6163
expected = ET.parse(data_open("data/scheme_without_defaults.xml")).getroot()
64+
self.assertEqual("Argument for ``test_scheme``", arg2.title)
6265

6366
self.assertTrue(xml_compare(expected, constructed))
6467

0 commit comments

Comments
 (0)