mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Added chat_max_results variable to gam.cfg.
This commit is contained in:
@@ -1,3 +1,15 @@
|
|||||||
|
7.23.00
|
||||||
|
|
||||||
|
Added `chat_max_results` variable to `gam.cfg`.
|
||||||
|
```
|
||||||
|
chat_max_results
|
||||||
|
When retrieving lists of Chat items from API,
|
||||||
|
how many should be retrieved in each API call
|
||||||
|
Default: 100
|
||||||
|
Range: 1 - 1000
|
||||||
|
```
|
||||||
|
Previously, this vaule was always set to 1000 which could cause errors.
|
||||||
|
|
||||||
7.22.07
|
7.22.07
|
||||||
|
|
||||||
Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
|
Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||||
__version__ = '7.22.07'
|
__version__ = '7.23.00'
|
||||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
#pylint: disable=wrong-import-position
|
#pylint: disable=wrong-import-position
|
||||||
@@ -26579,7 +26579,7 @@ def printShowChatEmojis(users):
|
|||||||
pageMessage=_getChatPageMessage(Ent.CHAT_EMOJI, user, i, count, pfilter),
|
pageMessage=_getChatPageMessage(Ent.CHAT_EMOJI, user, i, count, pfilter),
|
||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
pageSize=CHAT_PAGE_SIZE, filter=pfilter)
|
pageSize=GC.Values[GC.CHAT_MAX_RESULTS], filter=pfilter)
|
||||||
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
||||||
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
||||||
continue
|
continue
|
||||||
@@ -26649,7 +26649,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
|
|||||||
|
|
||||||
CHAT_MEMBER_ROLE_MAP = {
|
CHAT_MEMBER_ROLE_MAP = {
|
||||||
'member': 'ROLE_MEMBER',
|
'member': 'ROLE_MEMBER',
|
||||||
'manager': 'ROLE_MANAGER'
|
'manager': 'ROLE_MANAGER',
|
||||||
|
'owner': 'ROLE_OWNER',
|
||||||
|
}
|
||||||
|
|
||||||
|
CHAT_ROLE_ENTITY_TYPE_MAP = {
|
||||||
|
'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
|
||||||
|
'ROLE_MANAGER': Ent.CHAT_MANAGER_USER,
|
||||||
|
'ROLE_OWNER': Ent.CHAT_OWNER_USER,
|
||||||
}
|
}
|
||||||
|
|
||||||
CHAT_MEMBER_TYPE_MAP = {
|
CHAT_MEMBER_TYPE_MAP = {
|
||||||
@@ -27006,7 +27013,6 @@ def _getChatSpaceSearchParms(myarg, queries, queryTimes, OBY):
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
CHAT_PAGE_SIZE = 1000
|
|
||||||
CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
|
CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
|
||||||
'createtime': 'createTime',
|
'createtime': 'createTime',
|
||||||
'lastactivetime': 'lastActiveTime',
|
'lastactivetime': 'lastActiveTime',
|
||||||
@@ -27086,7 +27092,7 @@ def printShowChatSpaces(users):
|
|||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
||||||
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsCS)
|
fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsCS)
|
||||||
if showAccessSettings:
|
if showAccessSettings:
|
||||||
for space in spaces:
|
for space in spaces:
|
||||||
if space['spaceType'] == 'SPACE':
|
if space['spaceType'] == 'SPACE':
|
||||||
@@ -27152,7 +27158,7 @@ def _getChatSpaceMembers(cd, chatSpace, ciGroupName):
|
|||||||
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, 0, 0, qfilter),
|
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, 0, 0, qfilter),
|
||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
parent=chatSpace, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsUAA)
|
parent=chatSpace, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsUAA)
|
||||||
for member in members:
|
for member in members:
|
||||||
_getChatMemberEmail(cd, member)
|
_getChatMemberEmail(cd, member)
|
||||||
gmember = {}
|
gmember = {}
|
||||||
@@ -27289,7 +27295,7 @@ def createChatMember(users):
|
|||||||
missingArgumentExit('space')
|
missingArgumentExit('space')
|
||||||
if not userList and not groupList:
|
if not userList and not groupList:
|
||||||
missingArgumentExit('user|members|group|groups')
|
missingArgumentExit('user|members|group|groups')
|
||||||
userEntityType = Ent.CHAT_MEMBER_USER if role == 'ROLE_MEMBER' else Ent.CHAT_MANAGER_USER
|
userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
|
||||||
userMembers = []
|
userMembers = []
|
||||||
for user in userList:
|
for user in userList:
|
||||||
userMembers.append({'member': {'name': f'users/{user}', 'type': mtype}})
|
userMembers.append({'member': {'name': f'users/{user}', 'type': mtype}})
|
||||||
@@ -27546,7 +27552,7 @@ def syncChatMembers(users):
|
|||||||
unknownArgumentExit()
|
unknownArgumentExit()
|
||||||
if not parent:
|
if not parent:
|
||||||
missingArgumentExit('space')
|
missingArgumentExit('space')
|
||||||
userEntityType = Ent.CHAT_MEMBER_USER if role == 'ROLE_MEMBER' else Ent.CHAT_MANAGER_USER
|
userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
|
||||||
userMembers = {}
|
userMembers = {}
|
||||||
syncUsersSet = set()
|
syncUsersSet = set()
|
||||||
for user in userList:
|
for user in userList:
|
||||||
@@ -27576,7 +27582,7 @@ def syncChatMembers(users):
|
|||||||
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, i, count, qfilter),
|
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, i, count, qfilter),
|
||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
parent=parent, showGroups=groupsSpecified, pageSize=CHAT_PAGE_SIZE, **kwargs, **kwargsUAA)
|
parent=parent, showGroups=groupsSpecified, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
|
||||||
for member in members:
|
for member in members:
|
||||||
if 'member' in member:
|
if 'member' in member:
|
||||||
if member['member']['type'] == mtype and member['role'] == role:
|
if member['member']['type'] == mtype and member['role'] == role:
|
||||||
@@ -27777,7 +27783,7 @@ def printShowChatMembers(users):
|
|||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
||||||
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=CHAT_PAGE_SIZE,
|
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
|
||||||
**kwargsCS)
|
**kwargsCS)
|
||||||
for space in sorted(spaces, key=lambda k: k[sortName]):
|
for space in sorted(spaces, key=lambda k: k[sortName]):
|
||||||
if space['spaceType'] == 'SPACE' and 'membershipCount' in space:
|
if space['spaceType'] == 'SPACE' and 'membershipCount' in space:
|
||||||
@@ -27794,7 +27800,7 @@ def printShowChatMembers(users):
|
|||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
||||||
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=CHAT_PAGE_SIZE,
|
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
|
||||||
**kwargsCS)
|
**kwargsCS)
|
||||||
for space in sorted(spaces, key=lambda k: k[sortName]):
|
for space in sorted(spaces, key=lambda k: k[sortName]):
|
||||||
# if 'membershipCount' in space:
|
# if 'membershipCount' in space:
|
||||||
@@ -27825,7 +27831,7 @@ def printShowChatMembers(users):
|
|||||||
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, j, jcount, qfilter),
|
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, j, jcount, qfilter),
|
||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
parent=parentName, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargs, **kwargsUAA)
|
parent=parentName, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
|
||||||
for member in members:
|
for member in members:
|
||||||
_getChatMemberEmail(cd, member)
|
_getChatMemberEmail(cd, member)
|
||||||
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
||||||
@@ -28139,7 +28145,7 @@ def printShowChatMessages(users):
|
|||||||
pageMessage=_getChatPageMessage(Ent.CHAT_MESSAGE, user, i, count, qfilter),
|
pageMessage=_getChatPageMessage(Ent.CHAT_MESSAGE, user, i, count, qfilter),
|
||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
pageSize=CHAT_PAGE_SIZE, parent=parentName, filter=pfilter, showDeleted=showDeleted,
|
pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter, showDeleted=showDeleted,
|
||||||
fields=fields)
|
fields=fields)
|
||||||
for message in messages:
|
for message in messages:
|
||||||
if 'sender' in message:
|
if 'sender' in message:
|
||||||
@@ -28257,7 +28263,7 @@ def printShowChatEvents(users):
|
|||||||
pageMessage=_getChatPageMessage(Ent.CHAT_EVENT, user, i, count, qfilter),
|
pageMessage=_getChatPageMessage(Ent.CHAT_EVENT, user, i, count, qfilter),
|
||||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
||||||
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
||||||
pageSize=CHAT_PAGE_SIZE, parent=parentName, filter=pfilter)
|
pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter)
|
||||||
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
||||||
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ CACHE_DISCOVERY_ONLY = 'cache_discovery_only'
|
|||||||
CHANNEL_CUSTOMER_ID = 'channel_customer_id'
|
CHANNEL_CUSTOMER_ID = 'channel_customer_id'
|
||||||
# Character set of batch, csv, data files
|
# Character set of batch, csv, data files
|
||||||
CHARSET = 'charset'
|
CHARSET = 'charset'
|
||||||
|
# When retrieving lists of Chat items from API, how many should be retrieved in each chunk
|
||||||
|
CHAT_MAX_RESULTS = 'chat_max_results'
|
||||||
# When retrieving lists of Google Classroom items from API, how many should be retrieved in each chunk
|
# When retrieving lists of Google Classroom items from API, how many should be retrieved in each chunk
|
||||||
CLASSROOM_MAX_RESULTS = 'classroom_max_results'
|
CLASSROOM_MAX_RESULTS = 'classroom_max_results'
|
||||||
# Path to client_secrets.json
|
# Path to client_secrets.json
|
||||||
@@ -335,6 +337,7 @@ Defaults = {
|
|||||||
CACHE_DISCOVERY_ONLY: TRUE,
|
CACHE_DISCOVERY_ONLY: TRUE,
|
||||||
CHARSET: DEFAULT_CHARSET,
|
CHARSET: DEFAULT_CHARSET,
|
||||||
CHANNEL_CUSTOMER_ID: '',
|
CHANNEL_CUSTOMER_ID: '',
|
||||||
|
CHAT_MAX_RESULTS: '100',
|
||||||
CLASSROOM_MAX_RESULTS: '0',
|
CLASSROOM_MAX_RESULTS: '0',
|
||||||
CLIENT_SECRETS_JSON: FN_CLIENT_SECRETS_JSON,
|
CLIENT_SECRETS_JSON: FN_CLIENT_SECRETS_JSON,
|
||||||
CLOCK_SKEW_IN_SECONDS: '10',
|
CLOCK_SKEW_IN_SECONDS: '10',
|
||||||
@@ -502,6 +505,7 @@ VAR_INFO = {
|
|||||||
CACHE_DISCOVERY_ONLY: {VAR_TYPE: TYPE_BOOLEAN, VAR_SIGFILE: 'allcache.txt', VAR_SFFT: (TRUE, FALSE)},
|
CACHE_DISCOVERY_ONLY: {VAR_TYPE: TYPE_BOOLEAN, VAR_SIGFILE: 'allcache.txt', VAR_SFFT: (TRUE, FALSE)},
|
||||||
CHARSET: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'GAM_CHARSET', VAR_LIMITS: (1, None)},
|
CHARSET: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'GAM_CHARSET', VAR_LIMITS: (1, None)},
|
||||||
CHANNEL_CUSTOMER_ID: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
|
CHANNEL_CUSTOMER_ID: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
|
||||||
|
CHAT_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (1, 1000)},
|
||||||
CLASSROOM_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (0, 1000)},
|
CLASSROOM_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (0, 1000)},
|
||||||
CLIENT_SECRETS_JSON: {VAR_TYPE: TYPE_FILE, VAR_ENVVAR: 'CLIENTSECRETS', VAR_ACCESS: os.R_OK},
|
CLIENT_SECRETS_JSON: {VAR_TYPE: TYPE_FILE, VAR_ENVVAR: 'CLIENTSECRETS', VAR_ACCESS: os.R_OK},
|
||||||
CLOCK_SKEW_IN_SECONDS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (10, 3600)},
|
CLOCK_SKEW_IN_SECONDS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (10, 3600)},
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ class GamEntity():
|
|||||||
CHAT_MEMBER_USER = 'chmu'
|
CHAT_MEMBER_USER = 'chmu'
|
||||||
CHAT_MESSAGE = 'chms'
|
CHAT_MESSAGE = 'chms'
|
||||||
CHAT_MESSAGE_ID = 'chmi'
|
CHAT_MESSAGE_ID = 'chmi'
|
||||||
|
CHAT_OWNER_USER = 'chou'
|
||||||
CHAT_SPACE = 'chsp'
|
CHAT_SPACE = 'chsp'
|
||||||
CHAT_THREAD = 'chth'
|
CHAT_THREAD = 'chth'
|
||||||
CHILD_ORGANIZATIONAL_UNIT = 'corg'
|
CHILD_ORGANIZATIONAL_UNIT = 'corg'
|
||||||
@@ -462,6 +463,7 @@ class GamEntity():
|
|||||||
CHAT_MEMBER: ['Chat Members', 'Chat Member'],
|
CHAT_MEMBER: ['Chat Members', 'Chat Member'],
|
||||||
CHAT_MEMBER_GROUP: ['Chat Group Members', 'Chat Group Member'],
|
CHAT_MEMBER_GROUP: ['Chat Group Members', 'Chat Group Member'],
|
||||||
CHAT_MEMBER_USER: ['Chat User Members', 'Chat User Member'],
|
CHAT_MEMBER_USER: ['Chat User Members', 'Chat User Member'],
|
||||||
|
CHAT_OWNER_USER: ['Chat User Owners', 'Chat User Owner'],
|
||||||
CHAT_SPACE: ['Chat Spaces', 'Chat Space'],
|
CHAT_SPACE: ['Chat Spaces', 'Chat Space'],
|
||||||
CHAT_THREAD: ['Chat Threads', 'Chat Thread'],
|
CHAT_THREAD: ['Chat Threads', 'Chat Thread'],
|
||||||
CHILD_ORGANIZATIONAL_UNIT: ['Child Organizational Units', 'Child Organizational Unit'],
|
CHILD_ORGANIZATIONAL_UNIT: ['Child Organizational Units', 'Child Organizational Unit'],
|
||||||
|
|||||||
Reference in New Issue
Block a user