Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)