Пример #1
0
 def set_param(self, name, value):
     param_spec = self.get_param_spec(name)
     if param_spec:
         value_spec = param_spec.value_spec
         if value_spec == "<password>":
             passwords_realm = conf_name + "_" + self._stanza.name
             storage_password_name = UrlEncoded(
                 passwords_realm, encode_slash=True) + ":" + UrlEncoded(
                     name, encode_slash=True)
             if storage_password_name in self.splunk.storage_passwords:
                 storage_password = self.splunk.storage_passwords[
                     storage_password_name]
             else:
                 storage_password = None
             if value:
                 if storage_password:
                     if storage_password.clear_password != value:
                         self.splunk.storage_passwords.delete(
                             name, passwords_realm)
                         storage_password = self.splunk.storage_passwords.create(
                             value, name, passwords_realm)
                 else:
                     storage_password = self.splunk.storage_passwords.create(
                         value, name, passwords_realm)
             else:
                 if storage_password:
                     self.splunk.storage_passwords.delete(
                         name, passwords_realm)
             value = " "
             # TODO fix value = something so that key exists!
     self._stanza.submit({name: value})
     self._stanza.refresh()
Пример #2
0
 def get_param(self, name, inherit=True):
     if name in self._stanza.content:
         v = self._stanza[name]
         if v is None:
             v = ""
         param_spec = self.get_param_spec(name)
         if param_spec:
             value_spec = param_spec.value_spec
             if value_spec == "<password>":
                 passwords_realm = conf_name + "_" + self._stanza.name
                 storage_password_name = UrlEncoded(
                     passwords_realm, encode_slash=True) + ":" + UrlEncoded(
                         name, encode_slash=True)
                 if storage_password_name in self.splunk.storage_passwords:
                     storage_password = self.splunk.storage_passwords[
                         storage_password_name]
                     v = storage_password.clear_password
             return v
     if inherit:
         return self.connector.get_param(name)
     return None
Пример #3
0
    def mask_secret(self, field):
        inputs_kind_path = self._service.inputs.kindpath(self._input_type)
        inputs_path_for_kind = "{0}/{1}".format("data/inputs",
                                                inputs_kind_path)
        input_path = "{0}/{1}".format(
            inputs_path_for_kind,
            UrlEncoded(self._input_name, encode_slash=True))
        input = self._service.input(input_path)

        # the change we are explicitly making
        input_changes = {
            field: self._masked_secret,
        }

        # add fields that are required on edit
        for field_name in self._required_on_edit_fields:
            if not field_name in input_changes:
                input_changes[field_name] = input.content[field_name]

        # this causes the input config to refresh, resulting in this input instance ending and being started again
        input.update(**input_changes)
Пример #4
0
 def test_context_with_owner_as_email(self):
     context = binding.connect(owner="*****@*****.**", **self.kwargs)
     path = context._abspath("foo")
     self.assertTrue(isinstance(path, UrlEncoded))
     self.assertEqual(path, "/servicesNS/me%40me.com/system/foo")
     self.assertEqual(path, UrlEncoded("/servicesNS/[email protected]/system/foo"))
Пример #5
0
 def test_repr(self):
     self.assertEqual(repr(UrlEncoded('% %')), "UrlEncoded('% %')")
Пример #6
0
 def test_chars(self):
     for char, code in [(' ', '%20'), ('"', '%22'), ('%', '%25')]:
         self.assertEqual(UrlEncoded(char),
                          UrlEncoded(code, skip_encode=True))
Пример #7
0
 def test_interpolation_fails(self):
     self.assertRaises(TypeError, lambda: UrlEncoded('%s') % 'boris')
Пример #8
0
 def test_append_to_string(self):
     self.assertEqual('%' + UrlEncoded('a'), UrlEncoded('%a'))
Пример #9
0
 def test_append_string(self):
     self.assertEqual(UrlEncoded('a') + '%', UrlEncoded('a%'))
Пример #10
0
 def test_append(self):
     self.assertEqual(UrlEncoded('a') + UrlEncoded('b'), UrlEncoded('ab'))
Пример #11
0
 def test_idempotent(self):
     a = UrlEncoded('abc')
     self.assertEqual(a, UrlEncoded(a))
Пример #12
0
 def _get_entity(self, service):
     return Entity(service,
                   UrlEncoded(self._entity_path, skip_encode=True))