def create(self, request): """Create a group. One POST parameter required, the group identifier (a string) --- # YAML omit_serializer: true parameters: - name: gid description: Group identifier required: true type: string paramType: form """ telnet = request.telnet telnet.sendline('group -a') telnet.expect(r'Adding a new Group(.+)\n' + INTERACTIVE_PROMPT) if not 'gid' in request.data: raise MissingKeyError('Missing gid (group identifier)') telnet.sendline('gid ' + request.data['gid'] + '\n') telnet.expect(INTERACTIVE_PROMPT) telnet.sendline('ok\n') matched_index = telnet.expect([ r'.+Successfully added(.+)\[(.+)\][\n\r]+' + STANDARD_PROMPT, r'.+Error: (.+)[\n\r]+' + INTERACTIVE_PROMPT, r'.+(.*)(' + INTERACTIVE_PROMPT + '|' + STANDARD_PROMPT + ')', ]) if matched_index == 0: gid = telnet.match.group(2).strip() telnet.sendline('persist\n') return JsonResponse({'name': gid}) else: raise ActionFailed(telnet.match.group(1))
def simple_group_action(self, telnet, action, gid): telnet.sendline('group -%s %s' % (action, gid)) matched_index = telnet.expect([ r'.+Successfully(.+)' + STANDARD_PROMPT, r'.+Unknown Group: (.+)' + STANDARD_PROMPT, r'.+(.*)' + STANDARD_PROMPT, ]) if matched_index == 0: telnet.sendline('persist\n') return JsonResponse({'name': gid}) elif matched_index == 1: raise ObjectNotFoundError('Unknown group: %s' % gid) else: raise ActionFailed(telnet.match.group(1))
def simple_smppccm_action(self, telnet, action, cid): telnet.sendline('smppccm -%s %s' % (action, cid)) matched_index = telnet.expect([ r'.+Successfully(.+)' + STANDARD_PROMPT, r'.+Unknown connector: (.+)' + STANDARD_PROMPT, r'(.*)' + STANDARD_PROMPT, ]) if matched_index == 0: telnet.sendline('persist\n') return JsonResponse({'name': cid}) elif matched_index == 1: raise ObjectNotFoundError('Unknown SMPP Connector: %s' % cid) else: raise ActionFailed(telnet.match.group(1))
def simple_httpccm_action(self, telnet, telnet_list, action, cid): telnet.sendline('httpccm -%s %s' % (action, cid)) matched_index = telnet.expect([ r'.+Successfully(.+)' + STANDARD_PROMPT, r'.+Unknown connector: (.+)' + STANDARD_PROMPT, r'(.*)' + STANDARD_PROMPT, ]) if matched_index == 0: telnet.sendline('persist\n') if settings.JASMIN_DOCKER or settings.JASMIN_K8S: sync_conf_instances(telnet_list) return JsonResponse({'name': cid}) elif matched_index == 1: raise ObjectNotFoundError('Unknown HTTP Connector: %s' % cid) else: raise ActionFailed(telnet.match.group(1))