|
|
|
@ -21,6 +21,8 @@ import urllib |
|
|
|
|
import yaml |
|
|
|
|
import logging |
|
|
|
|
|
|
|
|
|
from six import string_types |
|
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -89,14 +91,14 @@ def _load_appservice(hostname, as_info, config_filename): |
|
|
|
|
"id", "as_token", "hs_token", "sender_localpart" |
|
|
|
|
] |
|
|
|
|
for field in required_string_fields: |
|
|
|
|
if not isinstance(as_info.get(field), basestring): |
|
|
|
|
if not isinstance(as_info.get(field), string_types): |
|
|
|
|
raise KeyError("Required string field: '%s' (%s)" % ( |
|
|
|
|
field, config_filename, |
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
# 'url' must either be a string or explicitly null, not missing |
|
|
|
|
# to avoid accidentally turning off push for ASes. |
|
|
|
|
if (not isinstance(as_info.get("url"), basestring) and |
|
|
|
|
if (not isinstance(as_info.get("url"), string_types) and |
|
|
|
|
as_info.get("url", "") is not None): |
|
|
|
|
raise KeyError( |
|
|
|
|
"Required string field or explicit null: 'url' (%s)" % (config_filename,) |
|
|
|
@ -128,7 +130,7 @@ def _load_appservice(hostname, as_info, config_filename): |
|
|
|
|
"Expected namespace entry in %s to be an object," |
|
|
|
|
" but got %s", ns, regex_obj |
|
|
|
|
) |
|
|
|
|
if not isinstance(regex_obj.get("regex"), basestring): |
|
|
|
|
if not isinstance(regex_obj.get("regex"), string_types): |
|
|
|
|
raise ValueError( |
|
|
|
|
"Missing/bad type 'regex' key in %s", regex_obj |
|
|
|
|
) |
|
|
|
|