这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions console/cypress/helpers/eventHelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export const getTableName = (i, testName = '') =>
export const getWebhookURL = () => 'http://httpbin.org/post';
export const getNoOfRetries = () => '5';
export const getIntervalSeconds = () => '10';
export const getTimeoutSeconds = () => '25';
export const getElementFromAlias = alias => `[data-test=${alias}]`;
export const makeDataAPIUrl = dataApiUrl => `${dataApiUrl}/v1/query`;
export const makeDataAPIOptions = (dataApiUrl, key, body) => ({
Expand Down
4 changes: 3 additions & 1 deletion console/cypress/integration/events/create-trigger/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
getWebhookURL,
getNoOfRetries,
getIntervalSeconds,
getTimeoutSeconds,
baseUrl,
} from '../../../helpers/eventHelpers';
import { getColName } from '../../../helpers/dataHelpers';
Expand Down Expand Up @@ -91,6 +92,7 @@ export const passCT = () => {
// retry configuration
cy.get(getElementFromAlias('no-of-retries')).type(getNoOfRetries());
cy.get(getElementFromAlias('interval-seconds')).type(getIntervalSeconds());
cy.get(getElementFromAlias('timeout-seconds')).type(getTimeoutSeconds());

// Click on create
cy.get(getElementFromAlias('trigger-create')).click();
Expand Down Expand Up @@ -163,7 +165,7 @@ export const deleteCTTestTrigger = () => {
// Match the URL
cy.url().should('eq', `${baseUrl}/events/manage/triggers`);
// Validate
validateCTrigger(getTriggerName(0, testName), 'success');
validateCTrigger(getTriggerName(0, testName), 'failure');
};

export const deleteCTTestTable = () => {
Expand Down
32 changes: 30 additions & 2 deletions console/cypress/integration/validators/validators.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import { makeDataAPIOptions, getColName } from '../../helpers/dataHelpers';
import { migrateModeUrl } from '../../helpers/common';
import { toggleOnMigrationMode } from '../data/migration-mode/utils';
import {
getNoOfRetries,
getIntervalSeconds,
getTimeoutSeconds,
} from '../../helpers/eventHelpers';

// ***************** UTIL FUNCTIONS **************************

let accessKey;
Expand Down Expand Up @@ -345,16 +351,38 @@ export const validateCTrigger = (triggerName, result) => {
type: 'select',
args: {
table: { name: 'event_triggers', schema: 'hdb_catalog' },
columns: ['table_name'],
columns: ['*'],
where: { name: triggerName },
},
};
const requestOptions = makeDataAPIOptions(dataApiUrl, accessKey, reqBody);
cy.request(requestOptions).then(response => {
if (result === 'success') {
expect(response.status === 200).to.be.true;
expect(response.body.length === 1).to.be.true;
const trigger = response.body[0];
expect(trigger.configuration.definition.insert.columns.length === 3).to.be
.true;
expect(trigger.configuration.definition.update.columns.length === 3).to.be
.true;
expect(trigger.configuration.definition.delete.columns.length === 3).to.be
.true;
expect(
trigger.configuration.retry_conf.interval_sec ===
parseInt(getIntervalSeconds(), 10)
).to.be.true;
expect(
trigger.configuration.retry_conf.num_retries ===
parseInt(getNoOfRetries(), 10)
).to.be.true;
expect(
trigger.configuration.retry_conf.timeout_sec ===
parseInt(getTimeoutSeconds(), 10)
).to.be.true;
expect(trigger.schema_name === 'public').to.be.true;
expect(trigger.table_name === 'apic_test_table_ctr_0').to.be.true;
} else {
expect(response.status === 200).to.be.false;
expect(response.body.length === 0).to.be.true;
}
});
};
5 changes: 1 addition & 4 deletions console/src/components/ApiExplorer/ApiRequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,7 @@ class ApiRequest extends Component {
value={this.props.url}
type="text"
readOnly
className={
styles.inputGroupInput +
' form-control '
}
className={styles.inputGroupInput + ' form-control '}
/>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,17 @@ class ModifyCustomFunction extends React.Component {
}
componentWillReceiveProps(nextProps) {
const { functionName, schema } = this.props.params;
if (functionName !== nextProps.params.functionName || schema !== nextProps.params.schema) {
if (
functionName !== nextProps.params.functionName ||
schema !== nextProps.params.schema
) {
Promise.all([
this.props.dispatch(fetchCustomFunction(nextProps.params.functionName, nextProps.params.schema)),
this.props.dispatch(
fetchCustomFunction(
nextProps.params.functionName,
nextProps.params.schema
)
),
]);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,7 @@ const PageContainer = ({
className={styles.padd_remove_full}
to={'/data/schema/' + schemaName + '/table/add'}
>
<Button
size="xs"
color="white"
data-test="sidebar-add-table"
>
<Button size="xs" color="white" data-test="sidebar-add-table">
Add Table
</Button>
</Link>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
.ReactTable
{
.ReactTable {
border: 0;
}
.ReactTable .-pagination .-btn {
Expand Down Expand Up @@ -56,7 +55,7 @@

.ReactTable .rt-table .rt-tbody {
margin-bottom: 10px;
border: solid 1px rgba(0,0,0,0.05);
border: solid 1px rgba(0, 0, 0, 0.05);
min-width: fit-content !important;
min-width: -moz-fit-content !important;
min-width: -webkit-fit-content !important;
Expand All @@ -71,7 +70,7 @@
border-left: solid 1px #f2f2f2;
}
.ReactTable .rt-tbody .rt-tr-group:last-child {
border-bottom: solid 1px rgba(0,0,0,0.05);
border-bottom: solid 1px rgba(0, 0, 0, 0.05);
}

.ReactTable .rt-table .rt-tbody .rt-tr-group .rt-tr.-even:hover {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,10 @@ class PermissionBuilder extends React.Component {
} else if (isNotOperator(operator)) {
const newPath = pathSplit.slice(1).join('.');
_missingSchemas = findMissingSchemas(newPath, currTable);
} else if (isColumnOperator(operator) || isArrayColumnOperator(operator)) {
} else if (
isColumnOperator(operator) ||
isArrayColumnOperator(operator)
) {
// no missing schemas
} else {
const { allTableSchemas } = this.props;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,10 @@ export function getRefTable(rel, tableSchema) {
const fkConstraint = tableSchema.foreign_key_constraints[i];
const fkConstraintCol = Object.keys(fkConstraint.column_mapping)[0];
if (fkCol === fkConstraintCol) {
_refTable = getTableDef(fkConstraint.ref_table, fkConstraint.ref_table_table_schema);
_refTable = getTableDef(
fkConstraint.ref_table,
fkConstraint.ref_table_table_schema
);
break;
}
}
Expand Down
30 changes: 28 additions & 2 deletions console/src/components/Services/EventTrigger/Add/AddActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const SET_SCHEMANAME = 'AddTrigger/SET_SCHEMANAME';
const SET_WEBHOOK_URL = 'AddTrigger/SET_WEBHOOK_URL';
const SET_RETRY_NUM = 'AddTrigger/SET_RETRY_NUM';
const SET_RETRY_INTERVAL = 'AddTrigger/SET_RETRY_INTERVAL';
const SET_RETRY_TIMEOUT = 'AddTrigger/SET_RETRY_TIMEOUT';
const MAKING_REQUEST = 'AddTrigger/MAKING_REQUEST';
const REQUEST_SUCCESS = 'AddTrigger/REQUEST_SUCCESS';
const REQUEST_ERROR = 'AddTrigger/REQUEST_ERROR';
Expand All @@ -40,6 +41,7 @@ const setSchemaName = value => ({ type: SET_SCHEMANAME, value });
const setWebhookURL = value => ({ type: SET_WEBHOOK_URL, value });
const setRetryNum = value => ({ type: SET_RETRY_NUM, value });
const setRetryInterval = value => ({ type: SET_RETRY_INTERVAL, value });
const setRetryTimeout = value => ({ type: SET_RETRY_TIMEOUT, value });
const setDefaults = () => ({ type: SET_DEFAULTS });
const addHeader = () => ({ type: ADD_HEADER });
const removeHeader = i => ({ type: REMOVE_HEADER, index: i });
Expand Down Expand Up @@ -113,6 +115,21 @@ const createTrigger = () => {
payload.args.retry_conf = currentState.retryConf;
}

payload.args.retry_conf = {
num_retries:
currentState.retryConf.num_retries === ''
? 0
: parseInt(currentState.retryConf.num_retries, 10),
interval_sec:
currentState.retryConf.interval_sec === ''
? 10
: parseInt(currentState.retryConf.interval_sec, 10),
timeout_sec:
currentState.retryConf.timeout_sec === ''
? 60
: parseInt(currentState.retryConf.timeout_sec, 10),
};

// create header payload
const headers = [];
currentState.headers.map(header => {
Expand Down Expand Up @@ -331,15 +348,23 @@ const addTriggerReducer = (state = defaultState, action) => {
...state,
retryConf: {
...state.retryConf,
num_retries: parseInt(action.value, 10),
num_retries: action.value,
},
};
case SET_RETRY_INTERVAL:
return {
...state,
retryConf: {
...state.retryConf,
interval_sec: parseInt(action.value, 10),
interval_sec: action.value,
},
};
case SET_RETRY_TIMEOUT:
return {
...state,
retryConf: {
...state.retryConf,
timeout_sec: action.value,
},
};
case SET_TABLENAME:
Expand Down Expand Up @@ -383,6 +408,7 @@ export {
setWebhookURL,
setRetryNum,
setRetryInterval,
setRetryTimeout,
createTrigger,
fetchTableListBySchema,
operationToggleColumn,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ const defaultState = {
selectedOperations: { insert: false, update: false, delete: false },
webhookURL: '',
webhookUrlType: 'url',
retryConf: null,
retryConf: {
num_retries: 0,
interval_sec: 10,
timeout_sec: 60,
},
ongoingRequest: false,
lastError: null,
internalError: null,
Expand Down
Loading