foreman_ansible 7.0.4 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/app/controllers/api/v2/ansible_playbooks_controller.rb +66 -0
 - data/app/jobs/sync_playbooks.rb +25 -0
 - data/app/lib/proxy_api/ansible.rb +13 -0
 - data/app/services/foreman_ansible/import_playbooks_error_notification.rb +38 -0
 - data/app/services/foreman_ansible/import_playbooks_success_notification.rb +33 -0
 - data/app/services/foreman_ansible/playbooks_importer.rb +73 -0
 - data/app/services/foreman_ansible/proxy_api.rb +3 -4
 - data/app/views/ansible_roles/index.html.erb +2 -0
 - data/app/views/api/v2/ansible_playbooks/sync.json.rabl +5 -0
 - data/app/views/foreman_ansible/job_templates/ansible_windows_updates.erb +160 -0
 - data/app/views/foreman_ansible/job_templates/configure_cloud_connector_-_ansible_default.erb +37 -0
 - data/config/routes.rb +7 -0
 - data/db/seeds.d/90_notification_blueprints.rb +14 -0
 - data/lib/foreman_ansible/register.rb +3 -1
 - data/lib/foreman_ansible/remote_execution.rb +6 -0
 - data/lib/foreman_ansible/version.rb +1 -1
 - data/test/fixtures/playbooks_example_output.json +1 -0
 - data/test/fixtures/sample_playbooks.json +10 -0
 - data/test/functional/api/v2/ansible_playbooks_controller_test.rb +65 -0
 - data/test/functional/hosts_controller_test.rb +2 -2
 - data/test/unit/import_playbooks_test.rb +51 -0
 - data/test/unit/lib/proxy_api/ansible_test.rb +6 -0
 - data/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTable.js +58 -75
 - data/webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js +44 -58
 - data/webpack/components/AnsibleHostDetail/components/RolesTab/AllRolesModal/AllRolesTable.js +32 -55
 - data/webpack/components/AnsibleHostDetail/components/RolesTab/AllRolesModal/index.js +1 -1
 - data/webpack/components/AnsibleHostDetail/components/RolesTab/RolesTable.js +29 -42
 - data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariables.js +27 -38
 - data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesActions.js +2 -1
 - data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesConstants.js +1 -0
 - data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesSelectors.js +6 -0
 - data/webpack/components/AnsibleRolesAndVariables/index.js +7 -1
 - data/webpack/components/AnsibleRolesSwitcher/components/AvailableRolesList.js +2 -2
 - data/webpack/components/AnsibleRolesSwitcher/components/__snapshots__/AvailableRolesList.test.js.snap +9 -6
 - data/webpack/helpers/pageParamsHelper.js +3 -3
 - metadata +46 -31
 - data/webpack/components/withPagination.js +0 -0
 - data/webpack/helpers/paginationHelper.js +0 -9
 
| 
         @@ -12,9 +12,8 @@ import { 
     | 
|
| 
       12 
12 
     | 
    
         
             
              ToolbarContent,
         
     | 
| 
       13 
13 
     | 
    
         
             
              ToolbarItem,
         
     | 
| 
       14 
14 
     | 
    
         
             
              Checkbox,
         
     | 
| 
       15 
     | 
    
         
            -
              Pagination,
         
     | 
| 
       16 
15 
     | 
    
         
             
            } from '@patternfly/react-core';
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
      
 16 
     | 
    
         
            +
            import Pagination from 'foremanReact/components/Pagination';
         
     | 
| 
       18 
17 
     | 
    
         
             
            import PropTypes from 'prop-types';
         
     | 
| 
       19 
18 
     | 
    
         
             
            import { DEFAULT_PER_PAGE } from './AnsibleRolesAndVariablesConstants';
         
     | 
| 
       20 
19 
     | 
    
         
             
            import './AnsibleRolesAndVariables.scss';
         
     | 
| 
         @@ -25,6 +24,7 @@ const ImportRolesAndVariablesTable = ({ 
     | 
|
| 
       25 
24 
     | 
    
         
             
              proxy,
         
     | 
| 
       26 
25 
     | 
    
         
             
              onSubmit,
         
     | 
| 
       27 
26 
     | 
    
         
             
              onCancel,
         
     | 
| 
      
 27 
     | 
    
         
            +
              isImporting,
         
     | 
| 
       28 
28 
     | 
    
         
             
            }) => {
         
     | 
| 
       29 
29 
     | 
    
         
             
              const columns = columnsData.map(col => ({
         
     | 
| 
       30 
30 
     | 
    
         
             
                ...col,
         
     | 
| 
         @@ -34,10 +34,13 @@ const ImportRolesAndVariablesTable = ({ 
     | 
|
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
              const [isChecked, setIsChecked] = useState(false);
         
     | 
| 
       36 
36 
     | 
    
         
             
              const [selectedRowsCount, setSelectRowsCount] = useState(0);
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
               
     | 
| 
      
 37 
     | 
    
         
            +
              const [pagination, setPagination] = useState({
         
     | 
| 
      
 38 
     | 
    
         
            +
                page: 1,
         
     | 
| 
      
 39 
     | 
    
         
            +
                per_page: DEFAULT_PER_PAGE,
         
     | 
| 
      
 40 
     | 
    
         
            +
              });
         
     | 
| 
      
 41 
     | 
    
         
            +
              const [paginatedRows, setPaginatedRows] = useState(
         
     | 
| 
      
 42 
     | 
    
         
            +
                rows.slice(0, pagination.per_page)
         
     | 
| 
      
 43 
     | 
    
         
            +
              );
         
     | 
| 
       41 
44 
     | 
    
         | 
| 
       42 
45 
     | 
    
         
             
              const onSelect = (event, isSelected, rowId, row) => {
         
     | 
| 
       43 
46 
     | 
    
         
             
                const selectableRowLength = rows.filter(
         
     | 
| 
         @@ -68,43 +71,22 @@ const ImportRolesAndVariablesTable = ({ 
     | 
|
| 
       68 
71 
     | 
    
         
             
                onSelect(null, checked, -1);
         
     | 
| 
       69 
72 
     | 
    
         
             
              };
         
     | 
| 
       70 
73 
     | 
    
         | 
| 
       71 
     | 
    
         
            -
              const handleSetPage =  
     | 
| 
       72 
     | 
    
         
            -
                const startIdx = ( 
     | 
| 
      
 74 
     | 
    
         
            +
              const handleSetPage = args => {
         
     | 
| 
      
 75 
     | 
    
         
            +
                const startIdx = (args.page - 1) * args.per_page;
         
     | 
| 
       73 
76 
     | 
    
         
             
                const endIdx =
         
     | 
| 
       74 
     | 
    
         
            -
                  rows.length <  
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
      
 77 
     | 
    
         
            +
                  rows.length < args.page * args.per_page
         
     | 
| 
      
 78 
     | 
    
         
            +
                    ? rows.length
         
     | 
| 
      
 79 
     | 
    
         
            +
                    : args.page * args.per_page;
         
     | 
| 
      
 80 
     | 
    
         
            +
                setPagination(args);
         
     | 
| 
       76 
81 
     | 
    
         
             
                setPaginatedRows(rows.slice(startIdx, endIdx));
         
     | 
| 
       77 
82 
     | 
    
         
             
              };
         
     | 
| 
       78 
83 
     | 
    
         | 
| 
       79 
     | 
    
         
            -
              const  
     | 
| 
       80 
     | 
    
         
            -
                event,
         
     | 
| 
       81 
     | 
    
         
            -
                newPerPage,
         
     | 
| 
       82 
     | 
    
         
            -
                newPage,
         
     | 
| 
       83 
     | 
    
         
            -
                startIdx,
         
     | 
| 
       84 
     | 
    
         
            -
                endIdx
         
     | 
| 
       85 
     | 
    
         
            -
              ) => {
         
     | 
| 
       86 
     | 
    
         
            -
                setPerPage(newPerPage);
         
     | 
| 
       87 
     | 
    
         
            -
                setPage(newPage);
         
     | 
| 
       88 
     | 
    
         
            -
                setPaginatedRows(rows.slice(startIdx, endIdx));
         
     | 
| 
       89 
     | 
    
         
            -
              };
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
              const renderPagination = (variant = 'top') => (
         
     | 
| 
      
 84 
     | 
    
         
            +
              const renderPagination = () => (
         
     | 
| 
       92 
85 
     | 
    
         
             
                <Pagination
         
     | 
| 
       93 
86 
     | 
    
         
             
                  isCompact
         
     | 
| 
       94 
87 
     | 
    
         
             
                  itemCount={rows.length}
         
     | 
| 
       95 
     | 
    
         
            -
                   
     | 
| 
       96 
     | 
    
         
            -
                   
     | 
| 
       97 
     | 
    
         
            -
                  defaultToFullPage
         
     | 
| 
       98 
     | 
    
         
            -
                  onSetPage={handleSetPage}
         
     | 
| 
       99 
     | 
    
         
            -
                  onPerPageSelect={handlePerPageSelect}
         
     | 
| 
       100 
     | 
    
         
            -
                  perPageOptions={[
         
     | 
| 
       101 
     | 
    
         
            -
                    { title: '3', value: 3 },
         
     | 
| 
       102 
     | 
    
         
            -
                    { title: '5', value: 5 },
         
     | 
| 
       103 
     | 
    
         
            -
                    { title: '10', value: 10 },
         
     | 
| 
       104 
     | 
    
         
            -
                  ]}
         
     | 
| 
       105 
     | 
    
         
            -
                  titles={{
         
     | 
| 
       106 
     | 
    
         
            -
                    paginationTitle: `${variant} pagination`,
         
     | 
| 
       107 
     | 
    
         
            -
                  }}
         
     | 
| 
      
 88 
     | 
    
         
            +
                  perPage={pagination.per_page}
         
     | 
| 
      
 89 
     | 
    
         
            +
                  onChange={args => handleSetPage(args)}
         
     | 
| 
       108 
90 
     | 
    
         
             
                />
         
     | 
| 
       109 
91 
     | 
    
         
             
              );
         
     | 
| 
       110 
92 
     | 
    
         | 
| 
         @@ -131,10 +113,15 @@ const ImportRolesAndVariablesTable = ({ 
     | 
|
| 
       131 
113 
     | 
    
         
             
                <div className="submit-cancel-btns">
         
     | 
| 
       132 
114 
     | 
    
         
             
                  <br />
         
     | 
| 
       133 
115 
     | 
    
         
             
                  <br />
         
     | 
| 
       134 
     | 
    
         
            -
                  <Button 
     | 
| 
      
 116 
     | 
    
         
            +
                  <Button
         
     | 
| 
      
 117 
     | 
    
         
            +
                    variant="primary"
         
     | 
| 
      
 118 
     | 
    
         
            +
                    onClick={() => onSubmit(rows, proxy)}
         
     | 
| 
      
 119 
     | 
    
         
            +
                    isLoading={isImporting}
         
     | 
| 
      
 120 
     | 
    
         
            +
                    isDisabled={isImporting || selectedRowsCount === 0}
         
     | 
| 
      
 121 
     | 
    
         
            +
                  >
         
     | 
| 
       135 
122 
     | 
    
         
             
                    Submit
         
     | 
| 
       136 
123 
     | 
    
         
             
                  </Button>
         
     | 
| 
       137 
     | 
    
         
            -
                  <Button variant="secondary" onClick={onCancel}>
         
     | 
| 
      
 124 
     | 
    
         
            +
                  <Button variant="secondary" onClick={onCancel} isDisabled={isImporting}>
         
     | 
| 
       138 
125 
     | 
    
         
             
                    Cancel
         
     | 
| 
       139 
126 
     | 
    
         
             
                  </Button>
         
     | 
| 
       140 
127 
     | 
    
         
             
                </div>
         
     | 
| 
         @@ -165,6 +152,7 @@ ImportRolesAndVariablesTable.defaultProps = { 
     | 
|
| 
       165 
152 
     | 
    
         
             
              proxy: undefined,
         
     | 
| 
       166 
153 
     | 
    
         
             
              onSubmit: undefined,
         
     | 
| 
       167 
154 
     | 
    
         
             
              onCancel: undefined,
         
     | 
| 
      
 155 
     | 
    
         
            +
              isImporting: false,
         
     | 
| 
       168 
156 
     | 
    
         
             
            };
         
     | 
| 
       169 
157 
     | 
    
         | 
| 
       170 
158 
     | 
    
         
             
            ImportRolesAndVariablesTable.propTypes = {
         
     | 
| 
         @@ -173,6 +161,7 @@ ImportRolesAndVariablesTable.propTypes = { 
     | 
|
| 
       173 
161 
     | 
    
         
             
              proxy: PropTypes.number,
         
     | 
| 
       174 
162 
     | 
    
         
             
              onSubmit: PropTypes.func,
         
     | 
| 
       175 
163 
     | 
    
         
             
              onCancel: PropTypes.func,
         
     | 
| 
      
 164 
     | 
    
         
            +
              isImporting: PropTypes.bool,
         
     | 
| 
       176 
165 
     | 
    
         
             
            };
         
     | 
| 
       177 
166 
     | 
    
         | 
| 
       178 
167 
     | 
    
         
             
            export default ImportRolesAndVariablesTable;
         
     | 
| 
         @@ -4,6 +4,7 @@ import { post } from 'foremanReact/redux/API'; 
     | 
|
| 
       4 
4 
     | 
    
         
             
            import { push } from 'connected-react-router';
         
     | 
| 
       5 
5 
     | 
    
         
             
            import { prepareResult } from './AnsibleRolesAndVariablesHelpers';
         
     | 
| 
       6 
6 
     | 
    
         
             
            import {
         
     | 
| 
      
 7 
     | 
    
         
            +
              IMPORT_ANSIBLE_V_R,
         
     | 
| 
       7 
8 
     | 
    
         
             
              ANSIBLE_ROLE_CONFIRM_IMPORT_PATH,
         
     | 
| 
       8 
9 
     | 
    
         
             
              ANSIBLE_ROLES_INDEX,
         
     | 
| 
       9 
10 
     | 
    
         
             
            } from './AnsibleRolesAndVariablesConstants';
         
     | 
| 
         @@ -14,7 +15,7 @@ export const onSubmit = (rows, proxy) => dispatch => { 
     | 
|
| 
       14 
15 
     | 
    
         
             
              const params = prepareResult(rows);
         
     | 
| 
       15 
16 
     | 
    
         
             
              dispatch(
         
     | 
| 
       16 
17 
     | 
    
         
             
                post({
         
     | 
| 
       17 
     | 
    
         
            -
                  key:  
     | 
| 
      
 18 
     | 
    
         
            +
                  key: IMPORT_ANSIBLE_V_R,
         
     | 
| 
       18 
19 
     | 
    
         
             
                  url: ANSIBLE_ROLE_CONFIRM_IMPORT_PATH,
         
     | 
| 
       19 
20 
     | 
    
         
             
                  params: { changed: params, proxy },
         
     | 
| 
       20 
21 
     | 
    
         
             
                  handleSuccess: () => {
         
     | 
| 
         @@ -1,10 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import React from 'react';
         
     | 
| 
       2 
     | 
    
         
            -
            import { useDispatch } from 'react-redux';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { useDispatch, useSelector } from 'react-redux';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { push } from 'connected-react-router';
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            import { STATUS } from 'foremanReact/constants';
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       5 
7 
     | 
    
         
             
            import ImportRolesAndVariablesTable from './AnsibleRolesAndVariables';
         
     | 
| 
       6 
8 
     | 
    
         
             
            import { onSubmit } from './AnsibleRolesAndVariablesActions';
         
     | 
| 
       7 
9 
     | 
    
         
             
            import { ANSIBLE_ROLES_INDEX } from './AnsibleRolesAndVariablesConstants';
         
     | 
| 
      
 10 
     | 
    
         
            +
            import { selectApiImportStatus } from './AnsibleRolesAndVariablesSelectors';
         
     | 
| 
       8 
11 
     | 
    
         | 
| 
       9 
12 
     | 
    
         
             
            const WrappedImportRolesAndVariables = props => {
         
     | 
| 
       10 
13 
     | 
    
         
             
              const cols = [
         
     | 
| 
         @@ -19,12 +22,15 @@ const WrappedImportRolesAndVariables = props => { 
     | 
|
| 
       19 
22 
     | 
    
         
             
              const onCancel = () => {
         
     | 
| 
       20 
23 
     | 
    
         
             
                dispatch(push(ANSIBLE_ROLES_INDEX));
         
     | 
| 
       21 
24 
     | 
    
         
             
              };
         
     | 
| 
      
 25 
     | 
    
         
            +
              const apiImportStatus = useSelector(selectApiImportStatus);
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       22 
27 
     | 
    
         
             
              return (
         
     | 
| 
       23 
28 
     | 
    
         
             
                <ImportRolesAndVariablesTable
         
     | 
| 
       24 
29 
     | 
    
         
             
                  {...props}
         
     | 
| 
       25 
30 
     | 
    
         
             
                  columnsData={cols}
         
     | 
| 
       26 
31 
     | 
    
         
             
                  onSubmit={submit}
         
     | 
| 
       27 
32 
     | 
    
         
             
                  onCancel={onCancel}
         
     | 
| 
      
 33 
     | 
    
         
            +
                  isImporting={apiImportStatus === STATUS.PENDING}
         
     | 
| 
       28 
34 
     | 
    
         
             
                />
         
     | 
| 
       29 
35 
     | 
    
         
             
              );
         
     | 
| 
       30 
36 
     | 
    
         
             
            };
         
     | 
| 
         @@ -2,7 +2,7 @@ import React from 'react'; 
     | 
|
| 
       2 
2 
     | 
    
         
             
            import PropTypes from 'prop-types';
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            import { ListView, LoadingState } from 'patternfly-react';
         
     | 
| 
       5 
     | 
    
         
            -
            import  
     | 
| 
      
 5 
     | 
    
         
            +
            import Pagination from 'foremanReact/components/Pagination';
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            import AnsibleRole from './AnsibleRole';
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
         @@ -16,7 +16,7 @@ const AvailableRolesList = ({ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            }) => (
         
     | 
| 
       17 
17 
     | 
    
         
             
              <ListView>
         
     | 
| 
       18 
18 
     | 
    
         
             
                <div className="sticky-pagination">
         
     | 
| 
       19 
     | 
    
         
            -
                  < 
     | 
| 
      
 19 
     | 
    
         
            +
                  <Pagination
         
     | 
| 
       20 
20 
     | 
    
         
             
                    viewType="list"
         
     | 
| 
       21 
21 
     | 
    
         
             
                    itemCount={itemCount}
         
     | 
| 
       22 
22 
     | 
    
         
             
                    pagination={pagination}
         
     | 
| 
         @@ -7,21 +7,24 @@ exports[`AvailableRolesList should render 1`] = ` 
     | 
|
| 
       7 
7 
     | 
    
         
             
              <div
         
     | 
| 
       8 
8 
     | 
    
         
             
                className="sticky-pagination"
         
     | 
| 
       9 
9 
     | 
    
         
             
              >
         
     | 
| 
       10 
     | 
    
         
            -
                < 
     | 
| 
       11 
     | 
    
         
            -
                  className= 
     | 
| 
       12 
     | 
    
         
            -
                  disableNext={false}
         
     | 
| 
       13 
     | 
    
         
            -
                  disablePrev={false}
         
     | 
| 
      
 10 
     | 
    
         
            +
                <Pagination
         
     | 
| 
      
 11 
     | 
    
         
            +
                  className={null}
         
     | 
| 
       14 
12 
     | 
    
         
             
                  dropdownButtonId="available-ansible-roles-pagination-row-dropdown"
         
     | 
| 
       15 
13 
     | 
    
         
             
                  itemCount={2}
         
     | 
| 
      
 14 
     | 
    
         
            +
                  noSidePadding={false}
         
     | 
| 
       16 
15 
     | 
    
         
             
                  onChange={[Function]}
         
     | 
| 
       17 
     | 
    
         
            -
                   
     | 
| 
       18 
     | 
    
         
            -
                   
     | 
| 
      
 16 
     | 
    
         
            +
                  onPerPageSelect={null}
         
     | 
| 
      
 17 
     | 
    
         
            +
                  onSetPage={null}
         
     | 
| 
      
 18 
     | 
    
         
            +
                  page={1}
         
     | 
| 
       19 
19 
     | 
    
         
             
                  pagination={
         
     | 
| 
       20 
20 
     | 
    
         
             
                    Object {
         
     | 
| 
       21 
21 
     | 
    
         
             
                      "page": 1,
         
     | 
| 
       22 
22 
     | 
    
         
             
                      "perPage": 25,
         
     | 
| 
       23 
23 
     | 
    
         
             
                    }
         
     | 
| 
       24 
24 
     | 
    
         
             
                  }
         
     | 
| 
      
 25 
     | 
    
         
            +
                  perPage={null}
         
     | 
| 
      
 26 
     | 
    
         
            +
                  updateParamsByUrl={true}
         
     | 
| 
      
 27 
     | 
    
         
            +
                  variant="bottom"
         
     | 
| 
       25 
28 
     | 
    
         
             
                  viewType="list"
         
     | 
| 
       26 
29 
     | 
    
         
             
                />
         
     | 
| 
       27 
30 
     | 
    
         
             
              </div>
         
     | 
| 
         @@ -14,7 +14,7 @@ export const addSearch = (basePath, params) => { 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            export const useCurrentPagination = (
         
     | 
| 
       16 
16 
     | 
    
         
             
              history,
         
     | 
| 
       17 
     | 
    
         
            -
              keys = { page: 'page', perPage: ' 
     | 
| 
      
 17 
     | 
    
         
            +
              keys = { page: 'page', perPage: 'per_page' }
         
     | 
| 
       18 
18 
     | 
    
         
             
            ) => {
         
     | 
| 
       19 
19 
     | 
    
         
             
              const pageParams = parsePageParams(history);
         
     | 
| 
       20 
20 
     | 
    
         
             
              const uiSettings = useForemanSettings();
         
     | 
| 
         @@ -28,7 +28,7 @@ export const useCurrentPagination = ( 
     | 
|
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
            export const pageToVars = (
         
     | 
| 
       30 
30 
     | 
    
         
             
              pagination,
         
     | 
| 
       31 
     | 
    
         
            -
              keys = { page: 'page', perPage: ' 
     | 
| 
      
 31 
     | 
    
         
            +
              keys = { page: 'page', perPage: 'per_page' }
         
     | 
| 
       32 
32 
     | 
    
         
             
            ) => ({
         
     | 
| 
       33 
33 
     | 
    
         
             
              first: pagination[keys.page] * pagination[keys.perPage],
         
     | 
| 
       34 
34 
     | 
    
         
             
              last: pagination[keys.perPage],
         
     | 
| 
         @@ -36,5 +36,5 @@ export const pageToVars = ( 
     | 
|
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
            export const useParamsToVars = (
         
     | 
| 
       38 
38 
     | 
    
         
             
              history,
         
     | 
| 
       39 
     | 
    
         
            -
              keys = { page: 'page', perPage: ' 
     | 
| 
      
 39 
     | 
    
         
            +
              keys = { page: 'page', perPage: 'per_page' }
         
     | 
| 
       40 
40 
     | 
    
         
             
            ) => pageToVars(useCurrentPagination(history, keys), keys);
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: foreman_ansible
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 7.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 7.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Daniel Lobato Garcia
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-03-14 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: acts_as_list
         
     | 
| 
         @@ -81,6 +81,7 @@ files: 
     | 
|
| 
       81 
81 
     | 
    
         
             
            - app/controllers/ansible_variables_controller.rb
         
     | 
| 
       82 
82 
     | 
    
         
             
            - app/controllers/api/v2/ansible_inventories_controller.rb
         
     | 
| 
       83 
83 
     | 
    
         
             
            - app/controllers/api/v2/ansible_override_values_controller.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - app/controllers/api/v2/ansible_playbooks_controller.rb
         
     | 
| 
       84 
85 
     | 
    
         
             
            - app/controllers/api/v2/ansible_roles_controller.rb
         
     | 
| 
       85 
86 
     | 
    
         
             
            - app/controllers/api/v2/ansible_variables_controller.rb
         
     | 
| 
       86 
87 
     | 
    
         
             
            - app/controllers/concerns/foreman/controller/parameters/ansible_override_value.rb
         
     | 
| 
         @@ -113,6 +114,7 @@ files: 
     | 
|
| 
       113 
114 
     | 
    
         
             
            - app/helpers/foreman_ansible/ansible_roles_data_preparations.rb
         
     | 
| 
       114 
115 
     | 
    
         
             
            - app/helpers/foreman_ansible/ansible_roles_helper.rb
         
     | 
| 
       115 
116 
     | 
    
         
             
            - app/helpers/foreman_ansible/hosts_helper_extensions.rb
         
     | 
| 
      
 117 
     | 
    
         
            +
            - app/jobs/sync_playbooks.rb
         
     | 
| 
       116 
118 
     | 
    
         
             
            - app/jobs/sync_roles_and_variables.rb
         
     | 
| 
       117 
119 
     | 
    
         
             
            - app/lib/actions/foreman_ansible/helpers/play_roles_description.rb
         
     | 
| 
       118 
120 
     | 
    
         
             
            - app/lib/proxy_api/ansible.rb
         
     | 
| 
         @@ -131,6 +133,8 @@ files: 
     | 
|
| 
       131 
133 
     | 
    
         
             
            - app/services/foreman_ansible/ansible_report_importer.rb
         
     | 
| 
       132 
134 
     | 
    
         
             
            - app/services/foreman_ansible/ansible_report_scanner.rb
         
     | 
| 
       133 
135 
     | 
    
         
             
            - app/services/foreman_ansible/api_roles_importer.rb
         
     | 
| 
      
 136 
     | 
    
         
            +
            - app/services/foreman_ansible/import_playbooks_error_notification.rb
         
     | 
| 
      
 137 
     | 
    
         
            +
            - app/services/foreman_ansible/import_playbooks_success_notification.rb
         
     | 
| 
       134 
138 
     | 
    
         
             
            - app/services/foreman_ansible/import_roles_and_variables_error_notification.rb
         
     | 
| 
       135 
139 
     | 
    
         
             
            - app/services/foreman_ansible/import_roles_and_variables_success_notification.rb
         
     | 
| 
       136 
140 
     | 
    
         
             
            - app/services/foreman_ansible/insights_notification_builder.rb
         
     | 
| 
         @@ -138,6 +142,7 @@ files: 
     | 
|
| 
       138 
142 
     | 
    
         
             
            - app/services/foreman_ansible/inventory_creator.rb
         
     | 
| 
       139 
143 
     | 
    
         
             
            - app/services/foreman_ansible/override_resolver.rb
         
     | 
| 
       140 
144 
     | 
    
         
             
            - app/services/foreman_ansible/playbook_creator.rb
         
     | 
| 
      
 145 
     | 
    
         
            +
            - app/services/foreman_ansible/playbooks_importer.rb
         
     | 
| 
       141 
146 
     | 
    
         
             
            - app/services/foreman_ansible/proxy_api.rb
         
     | 
| 
       142 
147 
     | 
    
         
             
            - app/services/foreman_ansible/renderer_methods.rb
         
     | 
| 
       143 
148 
     | 
    
         
             
            - app/services/foreman_ansible/roles_importer.rb
         
     | 
| 
         @@ -152,6 +157,7 @@ files: 
     | 
|
| 
       152 
157 
     | 
    
         
             
            - app/views/ansible_variables/new.html.erb
         
     | 
| 
       153 
158 
     | 
    
         
             
            - app/views/api/v2/ansible_override_values/index.json.rabl
         
     | 
| 
       154 
159 
     | 
    
         
             
            - app/views/api/v2/ansible_override_values/show.json.rabl
         
     | 
| 
      
 160 
     | 
    
         
            +
            - app/views/api/v2/ansible_playbooks/sync.json.rabl
         
     | 
| 
       155 
161 
     | 
    
         
             
            - app/views/api/v2/ansible_roles/import.json.rabl
         
     | 
| 
       156 
162 
     | 
    
         
             
            - app/views/api/v2/ansible_roles/index.json.rabl
         
     | 
| 
       157 
163 
     | 
    
         
             
            - app/views/api/v2/ansible_roles/obsolete.json.rabl
         
     | 
| 
         @@ -178,7 +184,9 @@ files: 
     | 
|
| 
       178 
184 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/ansible_roles_-_ansible_default.erb
         
     | 
| 
       179 
185 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/ansible_roles_-_install_from_galaxy.erb
         
     | 
| 
       180 
186 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/ansible_roles_-_install_from_git.erb
         
     | 
| 
      
 187 
     | 
    
         
            +
            - app/views/foreman_ansible/job_templates/ansible_windows_updates.erb
         
     | 
| 
       181 
188 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/capsule_upgrade_-_ansible_default.erb
         
     | 
| 
      
 189 
     | 
    
         
            +
            - app/views/foreman_ansible/job_templates/configure_cloud_connector_-_ansible_default.erb
         
     | 
| 
       182 
190 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/convert_to_rhel.erb
         
     | 
| 
       183 
191 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/maintenance_plan.erb
         
     | 
| 
       184 
192 
     | 
    
         
             
            - app/views/foreman_ansible/job_templates/module_action_-_ansible_default.erb
         
     | 
| 
         @@ -264,12 +272,15 @@ files: 
     | 
|
| 
       264 
272 
     | 
    
         
             
            - test/factories/ansible_variables.rb
         
     | 
| 
       265 
273 
     | 
    
         
             
            - test/factories/host_ansible_enhancements.rb
         
     | 
| 
       266 
274 
     | 
    
         
             
            - test/fixtures/insights_playbook.yaml
         
     | 
| 
      
 275 
     | 
    
         
            +
            - test/fixtures/playbooks_example_output.json
         
     | 
| 
       267 
276 
     | 
    
         
             
            - test/fixtures/report.json
         
     | 
| 
       268 
277 
     | 
    
         
             
            - test/fixtures/sample_facts.json
         
     | 
| 
      
 278 
     | 
    
         
            +
            - test/fixtures/sample_playbooks.json
         
     | 
| 
       269 
279 
     | 
    
         
             
            - test/foreman_ansible/helpers/ansible_roles_helper_test.rb
         
     | 
| 
       270 
280 
     | 
    
         
             
            - test/functional/ansible_roles_controller_test.rb
         
     | 
| 
       271 
281 
     | 
    
         
             
            - test/functional/ansible_variables_controller_test.rb
         
     | 
| 
       272 
282 
     | 
    
         
             
            - test/functional/api/v2/ansible_inventories_controller_test.rb
         
     | 
| 
      
 283 
     | 
    
         
            +
            - test/functional/api/v2/ansible_playbooks_controller_test.rb
         
     | 
| 
       273 
284 
     | 
    
         
             
            - test/functional/api/v2/ansible_roles_controller_test.rb
         
     | 
| 
       274 
285 
     | 
    
         
             
            - test/functional/api/v2/ansible_variables_controller_test.rb
         
     | 
| 
       275 
286 
     | 
    
         
             
            - test/functional/api/v2/hostgroups_controller_test.rb
         
     | 
| 
         @@ -291,6 +302,7 @@ files: 
     | 
|
| 
       291 
302 
     | 
    
         
             
            - test/unit/host_ansible_role_test.rb
         
     | 
| 
       292 
303 
     | 
    
         
             
            - test/unit/hostgroup_ansible_role_test.rb
         
     | 
| 
       293 
304 
     | 
    
         
             
            - test/unit/ignore_roles_test.rb
         
     | 
| 
      
 305 
     | 
    
         
            +
            - test/unit/import_playbooks_test.rb
         
     | 
| 
       294 
306 
     | 
    
         
             
            - test/unit/import_roles_and_variables.rb
         
     | 
| 
       295 
307 
     | 
    
         
             
            - test/unit/lib/proxy_api/ansible_test.rb
         
     | 
| 
       296 
308 
     | 
    
         
             
            - test/unit/services/ansible_report_importer_test.rb
         
     | 
| 
         @@ -352,6 +364,7 @@ files: 
     | 
|
| 
       352 
364 
     | 
    
         
             
            - webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesActions.js
         
     | 
| 
       353 
365 
     | 
    
         
             
            - webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesConstants.js
         
     | 
| 
       354 
366 
     | 
    
         
             
            - webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesHelpers.js
         
     | 
| 
      
 367 
     | 
    
         
            +
            - webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesSelectors.js
         
     | 
| 
       355 
368 
     | 
    
         
             
            - webpack/components/AnsibleRolesAndVariables/__test__/AnsibleRolesAndVariablesHelpers.test.js
         
     | 
| 
       356 
369 
     | 
    
         
             
            - webpack/components/AnsibleRolesAndVariables/__test__/AnsibleRolesAndVariablesImport.test.js
         
     | 
| 
       357 
370 
     | 
    
         
             
            - webpack/components/AnsibleRolesAndVariables/index.js
         
     | 
| 
         @@ -400,7 +413,6 @@ files: 
     | 
|
| 
       400 
413 
     | 
    
         
             
            - webpack/components/ErrorState.js
         
     | 
| 
       401 
414 
     | 
    
         
             
            - webpack/components/ReportJsonViewer.js
         
     | 
| 
       402 
415 
     | 
    
         
             
            - webpack/components/withLoading.js
         
     | 
| 
       403 
     | 
    
         
            -
            - webpack/components/withPagination.js
         
     | 
| 
       404 
416 
     | 
    
         
             
            - webpack/formHelper.js
         
     | 
| 
       405 
417 
     | 
    
         
             
            - webpack/globalIdHelper.js
         
     | 
| 
       406 
418 
     | 
    
         
             
            - webpack/global_index.js
         
     | 
| 
         @@ -418,7 +430,6 @@ files: 
     | 
|
| 
       418 
430 
     | 
    
         
             
            - webpack/graphql/queries/hostVariableOverrides.gql
         
     | 
| 
       419 
431 
     | 
    
         
             
            - webpack/graphql/queries/recurringJobs.gql
         
     | 
| 
       420 
432 
     | 
    
         
             
            - webpack/helpers/pageParamsHelper.js
         
     | 
| 
       421 
     | 
    
         
            -
            - webpack/helpers/paginationHelper.js
         
     | 
| 
       422 
433 
     | 
    
         
             
            - webpack/index.js
         
     | 
| 
       423 
434 
     | 
    
         
             
            - webpack/permissionsHelper.js
         
     | 
| 
       424 
435 
     | 
    
         
             
            - webpack/reducer.js
         
     | 
| 
         @@ -447,50 +458,54 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       447 
458 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       448 
459 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       449 
460 
     | 
    
         
             
            requirements: []
         
     | 
| 
       450 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 461 
     | 
    
         
            +
            rubygems_version: 3.3.4
         
     | 
| 
       451 
462 
     | 
    
         
             
            signing_key:
         
     | 
| 
       452 
463 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       453 
464 
     | 
    
         
             
            summary: Ansible integration with Foreman (theforeman.org)
         
     | 
| 
       454 
465 
     | 
    
         
             
            test_files:
         
     | 
| 
       455 
     | 
    
         
            -
            - test/ 
     | 
| 
       456 
     | 
    
         
            -
            - test/factories/ansible_roles.rb
         
     | 
| 
       457 
     | 
    
         
            -
            - test/factories/ansible_variables.rb
         
     | 
| 
       458 
     | 
    
         
            -
            - test/factories/host_ansible_enhancements.rb
         
     | 
| 
       459 
     | 
    
         
            -
            - test/fixtures/insights_playbook.yaml
         
     | 
| 
       460 
     | 
    
         
            -
            - test/fixtures/sample_facts.json
         
     | 
| 
       461 
     | 
    
         
            -
            - test/fixtures/report.json
         
     | 
| 
      
 466 
     | 
    
         
            +
            - test/functional/ansible_variables_controller_test.rb
         
     | 
| 
       462 
467 
     | 
    
         
             
            - test/functional/ansible_roles_controller_test.rb
         
     | 
| 
       463 
     | 
    
         
            -
            - test/functional/api/v2/ansible_inventories_controller_test.rb
         
     | 
| 
       464 
     | 
    
         
            -
            - test/functional/api/v2/ansible_roles_controller_test.rb
         
     | 
| 
       465 
468 
     | 
    
         
             
            - test/functional/api/v2/ansible_variables_controller_test.rb
         
     | 
| 
      
 469 
     | 
    
         
            +
            - test/functional/api/v2/ansible_roles_controller_test.rb
         
     | 
| 
       466 
470 
     | 
    
         
             
            - test/functional/api/v2/hostgroups_controller_test.rb
         
     | 
| 
      
 471 
     | 
    
         
            +
            - test/functional/api/v2/ansible_playbooks_controller_test.rb
         
     | 
| 
      
 472 
     | 
    
         
            +
            - test/functional/api/v2/ansible_inventories_controller_test.rb
         
     | 
| 
       467 
473 
     | 
    
         
             
            - test/functional/api/v2/hosts_controller_test.rb
         
     | 
| 
       468 
474 
     | 
    
         
             
            - test/functional/ui_ansible_roles_controller_test.rb
         
     | 
| 
       469 
     | 
    
         
            -
            - test/functional/ansible_variables_controller_test.rb
         
     | 
| 
       470 
475 
     | 
    
         
             
            - test/functional/hosts_controller_test.rb
         
     | 
| 
       471 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 476 
     | 
    
         
            +
            - test/graphql/mutations/hosts/assign_ansible_roles_mutation_test.rb
         
     | 
| 
      
 477 
     | 
    
         
            +
            - test/graphql/queries/ansible_roles_query_test.rb
         
     | 
| 
      
 478 
     | 
    
         
            +
            - test/foreman_ansible/helpers/ansible_roles_helper_test.rb
         
     | 
| 
       472 
479 
     | 
    
         
             
            - test/unit/actions/run_ansible_job_test.rb
         
     | 
| 
       473 
480 
     | 
    
         
             
            - test/unit/actions/run_proxy_ansible_command_test.rb
         
     | 
| 
       474 
     | 
    
         
            -
            - test/unit/ 
     | 
| 
       475 
     | 
    
         
            -
            - test/unit/ 
     | 
| 
       476 
     | 
    
         
            -
            - test/unit/concerns/host_managed_extensions_test.rb
         
     | 
| 
       477 
     | 
    
         
            -
            - test/unit/concerns/hostgroup_extensions_test.rb
         
     | 
| 
       478 
     | 
    
         
            -
            - test/unit/helpers/ansible_reports_helper_test.rb
         
     | 
| 
       479 
     | 
    
         
            -
            - test/unit/lib/proxy_api/ansible_test.rb
         
     | 
| 
      
 481 
     | 
    
         
            +
            - test/unit/services/api_roles_importer_test.rb
         
     | 
| 
      
 482 
     | 
    
         
            +
            - test/unit/services/ui_roles_importer_test.rb
         
     | 
| 
       480 
483 
     | 
    
         
             
            - test/unit/services/ansible_report_importer_test.rb
         
     | 
| 
       481 
484 
     | 
    
         
             
            - test/unit/services/insights_plan_runner_test.rb
         
     | 
| 
      
 485 
     | 
    
         
            +
            - test/unit/services/override_resolver_test.rb
         
     | 
| 
       482 
486 
     | 
    
         
             
            - test/unit/services/roles_importer_test.rb
         
     | 
| 
       483 
     | 
    
         
            -
            - test/unit/services/ansible_variables_importer_test.rb
         
     | 
| 
       484 
     | 
    
         
            -
            - test/unit/services/api_roles_importer_test.rb
         
     | 
| 
       485 
487 
     | 
    
         
             
            - test/unit/services/inventory_creator_test.rb
         
     | 
| 
       486 
     | 
    
         
            -
            - test/unit/services/ 
     | 
| 
       487 
     | 
    
         
            -
            - test/unit/ 
     | 
| 
       488 
     | 
    
         
            -
            - test/unit/ 
     | 
| 
      
 488 
     | 
    
         
            +
            - test/unit/services/ansible_variables_importer_test.rb
         
     | 
| 
      
 489 
     | 
    
         
            +
            - test/unit/lib/proxy_api/ansible_test.rb
         
     | 
| 
      
 490 
     | 
    
         
            +
            - test/unit/ansible_role_test.rb
         
     | 
| 
      
 491 
     | 
    
         
            +
            - test/unit/hostgroup_ansible_role_test.rb
         
     | 
| 
       489 
492 
     | 
    
         
             
            - test/unit/ansible_variable_test.rb
         
     | 
| 
       490 
493 
     | 
    
         
             
            - test/unit/host_ansible_role_test.rb
         
     | 
| 
       491 
     | 
    
         
            -
            - test/unit/ 
     | 
| 
      
 494 
     | 
    
         
            +
            - test/unit/helpers/ansible_reports_helper_test.rb
         
     | 
| 
      
 495 
     | 
    
         
            +
            - test/unit/ansible_provider_test.rb
         
     | 
| 
       492 
496 
     | 
    
         
             
            - test/unit/ignore_roles_test.rb
         
     | 
| 
      
 497 
     | 
    
         
            +
            - test/unit/import_playbooks_test.rb
         
     | 
| 
       493 
498 
     | 
    
         
             
            - test/unit/import_roles_and_variables.rb
         
     | 
| 
       494 
     | 
    
         
            -
            - test/ 
     | 
| 
       495 
     | 
    
         
            -
            - test/ 
     | 
| 
       496 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 499 
     | 
    
         
            +
            - test/unit/concerns/config_reports_extensions_test.rb
         
     | 
| 
      
 500 
     | 
    
         
            +
            - test/unit/concerns/host_managed_extensions_test.rb
         
     | 
| 
      
 501 
     | 
    
         
            +
            - test/unit/concerns/hostgroup_extensions_test.rb
         
     | 
| 
      
 502 
     | 
    
         
            +
            - test/factories/ansible_proxy.rb
         
     | 
| 
      
 503 
     | 
    
         
            +
            - test/factories/host_ansible_enhancements.rb
         
     | 
| 
      
 504 
     | 
    
         
            +
            - test/factories/ansible_variables.rb
         
     | 
| 
      
 505 
     | 
    
         
            +
            - test/factories/ansible_roles.rb
         
     | 
| 
      
 506 
     | 
    
         
            +
            - test/fixtures/report.json
         
     | 
| 
      
 507 
     | 
    
         
            +
            - test/fixtures/sample_facts.json
         
     | 
| 
      
 508 
     | 
    
         
            +
            - test/fixtures/insights_playbook.yaml
         
     | 
| 
      
 509 
     | 
    
         
            +
            - test/fixtures/playbooks_example_output.json
         
     | 
| 
      
 510 
     | 
    
         
            +
            - test/fixtures/sample_playbooks.json
         
     | 
| 
      
 511 
     | 
    
         
            +
            - test/test_plugin_helper.rb
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -1,9 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { addSearch } from './pageParamsHelper';
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            export const preparePerPageOptions = opts =>
         
     | 
| 
       4 
     | 
    
         
            -
              opts.map(item => ({ title: item.toString(), value: item }));
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            export const refreshPage = (history, params = {}) => {
         
     | 
| 
       7 
     | 
    
         
            -
              const url = addSearch(history.location.pathname, params);
         
     | 
| 
       8 
     | 
    
         
            -
              history.push(url);
         
     | 
| 
       9 
     | 
    
         
            -
            };
         
     |