def _validate_args(self): CliCommand._validate_args(self) if ('hosts' in self.args and self.args.hosts and len(self.args.hosts) == 1): # check if a file and read in values try: self.args.hosts = read_in_file(self.args.hosts[0]) except ValueError: pass if ('exclude_hosts' in self.args and self.args.exclude_hosts and len(self.args.exclude_hosts) == 1): # check if a file and read in values try: self.args.exclude_hosts = \ read_in_file(self.args.exclude_hosts[0]) except ValueError: pass # check for valid cred values cred_list = ','.join(self.args.cred) response = request(parser=self.parser, method=GET, path=cred.CREDENTIAL_URI, params={'name': cred_list}, payload=None) if response.status_code == codes.ok: # pylint: disable=no-member json_data = response.json() count = json_data.get('count', 0) results = json_data.get('results', []) if count == len(self.args.cred): self.args.credentials = [] results_by_name_dict = {cred['name']: cred for cred in results} for cred_name in self.args.cred: self.args.credentials.append( results_by_name_dict[cred_name]['id']) else: for cred_entry in results: cred_name = cred_entry['name'] self.args.cred.remove(cred_name) not_found_str = ','.join(self.args.cred) print( _(messages.SOURCE_ADD_CREDS_NOT_FOUND % (not_found_str, self.args.name))) sys.exit(1) else: print(_(messages.SOURCE_ADD_CRED_PROCESS_ERR % self.args.name)) sys.exit(1)
def test_read_input(self): """Test the input reading mechanism.""" vals = read_in_file(TMP_HOSTFILE) expected = ['1.2.3.4', '1.2.3.[1:10]'] self.assertEqual(expected, vals)
def _validate_args(self): CliCommand._validate_args(self) if not (self.args.hosts or self.args.exclude_hosts or self.args.cred or self.args.port or self.args.use_paramiko or self.args.ssl_cert_verify or self.args.disable_ssl or self.args.ssl_protocol): print(_(messages.SOURCE_EDIT_NO_ARGS % (self.args.name))) self.parser.print_help() sys.exit(1) if ('hosts' in self.args and self.args.hosts and len(self.args.hosts) == 1): # check if a file and read in values try: self.args.hosts = read_in_file(self.args.hosts[0]) except ValueError: pass if ('exclude_hosts' in self.args and self.args.exclude_hosts and len(self.args.exclude_hosts) == 1): # check if a file and read in values try: self.args.exclude_hosts = \ read_in_file(self.args.exclude_hosts[0]) except ValueError: pass # check for existence of source response = request(parser=self.parser, method=GET, path=source.SOURCE_URI, params={'name': self.args.name}, payload=None) if response.status_code == codes.ok: # pylint: disable=no-member json_data = response.json() count = json_data.get('count', 0) results = json_data.get('results', []) if count == 1: source_entry = results[0] self.req_path = self.req_path + str(source_entry['id']) + '/' else: print(_(messages.SOURCE_DOES_NOT_EXIST % self.args.name)) sys.exit(1) else: print(_(messages.SOURCE_DOES_NOT_EXIST % self.args.name)) sys.exit(1) # check for valid cred values if len(self.args.cred) > 0: # pylint: disable=len-as-condition cred_list = ','.join(self.args.cred) response = request(parser=self.parser, method=GET, path=cred.CREDENTIAL_URI, params={'name': cred_list}, payload=None) if response.status_code == codes.ok: # pylint: disable=no-member json_data = response.json() count = json_data.get('count', 0) results = json_data.get('results', []) if count == len(self.args.cred): self.args.credentials = [] for cred_entry in results: self.args.credentials.append(cred_entry['id']) else: for cred_entry in results: cred_name = cred_entry['name'] self.args.cred.remove(cred_name) not_found_str = ','.join(self.args.cred) print( _(messages.SOURCE_EDIT_CREDS_NOT_FOUND % (not_found_str, self.args.name))) sys.exit(1) else: print(_(messages.SOURCE_EDIT_CRED_PROCESS_ERR % self.args.name)) sys.exit(1)