fix: Change vpn tunnel to ipsec site connection
change vpn tunnel to ipsec site connection Change-Id: Ia59bc87d4e61879b063719c114a02133b7044805
This commit is contained in:
parent
6693b3db92
commit
fff9d8ee02
@ -7,15 +7,18 @@ Because of the consistent use of the front-end framework, when we write related
|
||||
Mainly include: waiting for the list to load
|
||||
|
||||
- `waitTableLoading`
|
||||
|
||||
- Wait for the list to load
|
||||
- During the loading process of the list, there will be a state of `loading`, wait for the end of the state
|
||||
|
||||
![wait-table-loading](images/e2e/table/wait-table-loading.png)
|
||||
|
||||
- `checkTableFirstRow`
|
||||
|
||||
- Verify that the first row of the form contains the specified content, generally used to verify the existence of the created resource after creation
|
||||
- The parameter `name`, the content that needs to be included in the first line, is generally used to verify the existence of the name
|
||||
- Take viewing key pair detail `test/e2e/integration/pages/compute/keypair.spec.js` as an example
|
||||
|
||||
- After creation, check whether the key exists, and enter the details page after successful verification
|
||||
|
||||
```javascript
|
||||
@ -31,10 +34,12 @@ Mainly include: waiting for the list to load
|
||||
![check-first-row](images/e2e/table/check-first-row.png)
|
||||
|
||||
- `tableSearchText`
|
||||
|
||||
- Typing in the search bar above the table, and wait for the search to complete
|
||||
- The parameter `str`, the search content, generally the search name
|
||||
- By searching, the resource to be operated is located in the first row of the table for subsequent operations
|
||||
- Take viewing key pair detail `test/e2e/integration/pages/compute/keypair.spec.js` as an example
|
||||
|
||||
1. After creation, use the name to search for the key and wait for the search to complete
|
||||
2. Check if the first row in the table contains the resource with the specified name
|
||||
3. Go to the detail page and check if the name is consistent with expectations
|
||||
@ -53,6 +58,7 @@ Mainly include: waiting for the list to load
|
||||
![search](images/e2e/table/search.png)
|
||||
|
||||
- `tableSimpleSearchText`
|
||||
|
||||
- Type in the search bar above the form and wait for the search to complete
|
||||
- Some tables use simple search, and the search item only supports text input. At this time, the components used in the search box are different from the search box components in `tableSearchText`
|
||||
- The parameter `str`, the search content, generally the search name
|
||||
@ -68,6 +74,7 @@ Mainly include: waiting for the list to load
|
||||
![simple-search](images/e2e/table/simple-search.png)
|
||||
|
||||
- `tableSearchSelect`
|
||||
|
||||
- Use the options in the search bar above the table to search and wait for the search to complete
|
||||
1. Click the input box and select the search item from the search items to be selected
|
||||
2. Click to select the option under the search category
|
||||
@ -76,6 +83,7 @@ Mainly include: waiting for the list to load
|
||||
- Parameter `value`, the label of the selected item corresponding to the search item
|
||||
- By searching, the resource to be operated is located in the first row of the table for subsequent operations
|
||||
- Take instance attach floating IP `test/e2e/integration/pages/network/floatingip.spec.js` as an example
|
||||
|
||||
1. In the floating IP table, search for the floating IP whose `status` is `stop`
|
||||
2. Click the `associate` operation on the first resource in the table
|
||||
3. Complete the operation of attach instance
|
||||
@ -99,95 +107,100 @@ Mainly include: waiting for the list to load
|
||||
![search-select-3](images/e2e/table/search-select-3.png)
|
||||
|
||||
- `tableSearchSelectText`
|
||||
- Use the search bar above the table to search and wait for the search to complete
|
||||
1. Click the input box and select the search item from the search items to be selected
|
||||
2. Enter the search content and press Enter
|
||||
3. Wait for the search to complete
|
||||
- Enter directly when you don’t select the search item, it is the first search item that supports input
|
||||
- Parameter `name`, the name of the search term
|
||||
- Parameter `value`, the content of the input
|
||||
- By searching, the resource to be operated is located in the first row of the table for subsequent operations
|
||||
- Take the creation of the stack as an example: `test/e2e/integration/pages/heat/stack.spec.js`
|
||||
1. After creation, enter the resource list page
|
||||
2. Search by name on the list page
|
||||
3. Wait for the status of the resource to be available
|
||||
|
||||
```javascript
|
||||
it('successfully create', () => {
|
||||
const volumeJson = {
|
||||
name: volumeName,
|
||||
};
|
||||
cy.clickHeaderButton(1, 2000)
|
||||
.formAttachFile('content', contentFile)
|
||||
.formAttachFile('params', paramFile)
|
||||
.clickStepActionNextButton()
|
||||
.wait(2000)
|
||||
.formInput('name', name)
|
||||
.formJsonInput('volume_name_spec', volumeJson)
|
||||
.clickStepActionNextButton()
|
||||
.waitFormLoading()
|
||||
.wait(5000)
|
||||
.tableSearchSelectText('Name', name)
|
||||
.waitStatusActiveByRefresh();
|
||||
});
|
||||
```
|
||||
- Use the search bar above the table to search and wait for the search to complete
|
||||
1. Click the input box and select the search item from the search items to be selected
|
||||
2. Enter the search content and press Enter
|
||||
3. Wait for the search to complete
|
||||
- Enter directly when you don’t select the search item, it is the first search item that supports input
|
||||
- Parameter `name`, the name of the search term
|
||||
- Parameter `value`, the content of the input
|
||||
- By searching, the resource to be operated is located in the first row of the table for subsequent operations
|
||||
- Take the creation of the stack as an example: `test/e2e/integration/pages/heat/stack.spec.js`
|
||||
1. After creation, enter the resource list page
|
||||
2. Search by name on the list page
|
||||
3. Wait for the status of the resource to be available
|
||||
|
||||
![search-text-1](images/e2e/table/search-text-1.png)
|
||||
```javascript
|
||||
it('successfully create', () => {
|
||||
const volumeJson = {
|
||||
name: volumeName,
|
||||
};
|
||||
cy.clickHeaderButton(1, 2000)
|
||||
.formAttachFile('content', contentFile)
|
||||
.formAttachFile('params', paramFile)
|
||||
.clickStepActionNextButton()
|
||||
.wait(2000)
|
||||
.formInput('name', name)
|
||||
.formJsonInput('volume_name_spec', volumeJson)
|
||||
.clickStepActionNextButton()
|
||||
.waitFormLoading()
|
||||
.wait(5000)
|
||||
.tableSearchSelectText('Name', name)
|
||||
.waitStatusActiveByRefresh();
|
||||
});
|
||||
```
|
||||
|
||||
![search-text-2](images/e2e/table/search-text-2.png)
|
||||
![search-text-1](images/e2e/table/search-text-1.png)
|
||||
|
||||
![search-text-3](images/e2e/table/search-text-3.png)
|
||||
![search-text-2](images/e2e/table/search-text-2.png)
|
||||
|
||||
![search-text-3](images/e2e/table/search-text-3.png)
|
||||
|
||||
- `checkEmptyTable`
|
||||
- Verify that the form is empty
|
||||
- Generally used to verify after deleting resources
|
||||
- Take deleting the router `test/e2e/integration/pages/network/router.spec.js` as an example
|
||||
1. Turn off the external gateway
|
||||
2. Delete
|
||||
3. Search
|
||||
4. Verify that the form is empty, that is, the deletion is successful
|
||||
|
||||
```javascript
|
||||
it('successfully close external gateway and delete', () => {
|
||||
cy.tableSearchText(newname)
|
||||
.clickConfirmActionInMore('Close External Gateway')
|
||||
.clickConfirmActionInMore('Delete')
|
||||
.tableSearchText(newname)
|
||||
.checkEmptyTable();
|
||||
});
|
||||
```
|
||||
- Generally used to verify after deleting resources
|
||||
- Take deleting the router `test/e2e/integration/pages/network/router.spec.js` as an example
|
||||
1. Turn off the external gateway
|
||||
2. Delete
|
||||
3. Search
|
||||
4. Verify that the form is empty, that is, the deletion is successful
|
||||
|
||||
```javascript
|
||||
it('successfully close external gateway and delete', () => {
|
||||
cy.tableSearchText(newname)
|
||||
.clickConfirmActionInMore('Close External Gateway')
|
||||
.clickConfirmActionInMore('Delete')
|
||||
.tableSearchText(newname)
|
||||
.checkEmptyTable();
|
||||
});
|
||||
```
|
||||
|
||||
- `goToDetail`
|
||||
- Visit the detail page of the first row of resources and wait for the detail page to load
|
||||
- Parameter `index`, the subscript of the column where the link is located, the default is `1`
|
||||
- Parameter `waitTime`, the time to wait after loading the details page
|
||||
- Take the image as an example: `test/e2e/integration/pages/compute/image.spec.js`
|
||||
1. Search
|
||||
2. Enter the details page
|
||||
3. Verification details name
|
||||
4. Return to the list page
|
||||
|
||||
```javascript
|
||||
it('successfully detail', () => {
|
||||
cy.tableSearchText(name).goToDetail();
|
||||
cy.checkDetailName(name);
|
||||
cy.goBackToList(listUrl);
|
||||
});
|
||||
```
|
||||
- Parameter `index`, the subscript of the column where the link is located, the default is `1`
|
||||
- Parameter `waitTime`, the time to wait after loading the details page
|
||||
- Take the image as an example: `test/e2e/integration/pages/compute/image.spec.js`
|
||||
1. Search
|
||||
2. Enter the details page
|
||||
3. Verification details name
|
||||
4. Return to the list page
|
||||
|
||||
![detail-1](images/e2e/table/detail-1.png)
|
||||
```javascript
|
||||
it('successfully detail', () => {
|
||||
cy.tableSearchText(name).goToDetail();
|
||||
cy.checkDetailName(name);
|
||||
cy.goBackToList(listUrl);
|
||||
});
|
||||
```
|
||||
|
||||
![detail-2](images/e2e/table/detail-2.png)
|
||||
![detail-1](images/e2e/table/detail-1.png)
|
||||
|
||||
![detail-2](images/e2e/table/detail-2.png)
|
||||
|
||||
- `checkColumnValue`
|
||||
|
||||
- Verify that the content of the specified column in the first row meets expectations
|
||||
- Parameter `columnIndex`, which specifies the index of the column
|
||||
- Parameter `value`, the expected value
|
||||
- Take the instance as an example: `test/e2e/integration/pages/compute/image.spec.js`
|
||||
1. Search
|
||||
2. Stop the instance
|
||||
3. Verify that the status of the instance is `Stop`
|
||||
4. Verify that the `stop` operation in the batch operation is unavailable
|
||||
|
||||
1. Search
|
||||
2. Stop the instance
|
||||
3. Verify that the status of the instance is `Stop`
|
||||
4. Verify that the `stop` operation in the batch operation is unavailable
|
||||
|
||||
```javascript
|
||||
it('successfully stop', () => {
|
||||
@ -205,14 +218,16 @@ Mainly include: waiting for the list to load
|
||||
![check-value](images/e2e/table/check-value.png)
|
||||
|
||||
- `selectFirst`
|
||||
|
||||
- Select the first row in the table for subsequent batch operations
|
||||
- Take instance `test/e2e/integration/pages/compute/image.spec.js` as an example
|
||||
1. Search
|
||||
2. Stop the instance
|
||||
3. Verify that the status of the instance is `Stop`
|
||||
4. Select the first row
|
||||
5. Click the `Stop` button in the batch operation
|
||||
6. An error message pops up
|
||||
|
||||
1. Search
|
||||
2. Stop the instance
|
||||
3. Verify that the status of the instance is `Stop`
|
||||
4. Select the first row
|
||||
5. Click the `Stop` button in the batch operation
|
||||
6. An error message pops up
|
||||
|
||||
```javascript
|
||||
it('successfully stop', () => {
|
||||
@ -230,10 +245,12 @@ Mainly include: waiting for the list to load
|
||||
![select-first](images/e2e/table/select-first.png)
|
||||
|
||||
- `selectAll`
|
||||
|
||||
- Check all the entries in the table, in order to do the follow-up batch operations
|
||||
- Usually used to clear data
|
||||
|
||||
- `waitStatusActiveByRefresh`
|
||||
|
||||
- Click the refresh button above the table every 5 seconds until the resource status becomes available
|
||||
- After a resource is created or changed, it often takes a certain amount of time to become available before subsequent operations can be performed
|
||||
- Take the creation of the stack as an example: `test/e2e/integration/pages/heat/stack.spec.js`
|
||||
@ -256,7 +273,7 @@ Mainly include: waiting for the list to load
|
||||
.tableSearchSelectText('Name', name)
|
||||
.waitStatusActiveByRefresh();
|
||||
});
|
||||
```
|
||||
```
|
||||
|
||||
![wait-1](images/e2e/table/wait-1.png)
|
||||
|
||||
@ -265,31 +282,37 @@ Mainly include: waiting for the list to load
|
||||
## Operation of the button
|
||||
|
||||
Mainly contains
|
||||
- The main button operation (general is creation operation) and batch operation located at the top of the form
|
||||
- Line operations on each line of the form
|
||||
|
||||
- The main button operation (general is creation operation) and batch operation located at the top of the form
|
||||
- Line operations on each line of the form
|
||||
|
||||
### Operation of the buttons above the form
|
||||
|
||||
The buttons above the table generally include: refresh, create, batch operation button, configure table list items, download
|
||||
|
||||
- `clickHeaderButton`
|
||||
- Click the button above the table,
|
||||
- Parameter `buttonIndex`, the subscript of the button above the table
|
||||
- Parameter `waitTime`, the waiting time after clicking, the default is 2 seconds
|
||||
- Generally, the subscript of the created button is 1
|
||||
- Take the creat key pair as an example: `test/e2e/integration/pages/compute/keypair.spec.js`
|
||||
|
||||
```javascript
|
||||
it('successfully create', () => {
|
||||
cy.clickHeaderButton(1)
|
||||
.formInput('name', name)
|
||||
.clickModalActionSubmitButton()
|
||||
.wait(5000);
|
||||
});
|
||||
```
|
||||
- Click the button above the table,
|
||||
- Parameter `buttonIndex`, the subscript of the button above the table
|
||||
- Parameter `waitTime`, the waiting time after clicking, the default is 2 seconds
|
||||
- Generally, the subscript of the created button is 1
|
||||
- Take the creat key pair as an example: `test/e2e/integration/pages/compute/keypair.spec.js`
|
||||
|
||||
![header-btn-index](images/e2e/table/header-btn-index.png)
|
||||
```javascript
|
||||
it('successfully create', () => {
|
||||
cy.clickHeaderButton(1)
|
||||
.formInput('name', name)
|
||||
.clickModalActionSubmitButton()
|
||||
.wait(5000);
|
||||
});
|
||||
```
|
||||
|
||||
![header-btn-index](images/e2e/table/header-btn-index.png)
|
||||
|
||||
- `clickHeaderButtonByTitle`
|
||||
|
||||
- Click the button above the table by name, generally used for batch operation button clicks
|
||||
|
||||
- Parameter `title`, the text on the button above the table
|
||||
- Parameter `waitTime`, the waiting time after clicking, the default is 2 seconds
|
||||
- Take the shut off operation of the instance in the close state as an example: `test/e2e/integration/pages/compute/instance.spec.js`
|
||||
@ -311,9 +334,12 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![header-btn-title](images/e2e/table/header-btn-title.png)
|
||||
|
||||
- `clickHeaderConfirmButtonByTitle`
|
||||
|
||||
- The function will complete
|
||||
1. Click the button at the top of the table by name, the page will pop up a prompt to confirm the operation
|
||||
2. Click the `Confirm` button
|
||||
|
||||
1. Click the button at the top of the table by name, the page will pop up a prompt to confirm the operation
|
||||
2. Click the `Confirm` button
|
||||
|
||||
- Parameter `title`, the text on the button above the table
|
||||
- Parameter `waitTime`, the waiting time after clicking, the default is 2 seconds
|
||||
- Take the release of floating IP as an example: `test/e2e/integration/pages/network/floatingip.spec.js`
|
||||
@ -332,8 +358,9 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
### Row operations on the first row of the form
|
||||
|
||||
- `clickFirstActionButton`
|
||||
- Click the first button in the operation column of the first row of the form, which is generally used for pop-up operation buttons
|
||||
Single-page operation button click
|
||||
|
||||
- Click the first button in the operation column of the first row of the form, which is generally used for pop-up operation buttons
|
||||
Single-page operation button click
|
||||
- Take edit user `test/e2e/integration/pages/identity/user.spec.js` as an example
|
||||
|
||||
```javascript
|
||||
@ -348,10 +375,12 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![click-first](images/e2e/table/click-first.png)
|
||||
|
||||
- `clickActionButtonByTitle`
|
||||
|
||||
- Click the operation in the first row according to the title
|
||||
- Take edit and starting instance `test/e2e/integration/pages/configuration/system.spec.js` as an example
|
||||
- When instance starts, click the `Disable` button
|
||||
- When instance is stopped, click the `Enable` button
|
||||
|
||||
- When instance starts, click the `Disable` button
|
||||
- When instance is stopped, click the `Enable` button
|
||||
|
||||
```javascript
|
||||
it('successfully disable compute services', () => {
|
||||
@ -375,6 +404,7 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![action-by-title-2](images/e2e/table/action-by-title-2.png)
|
||||
|
||||
- `clickActionInMore`
|
||||
|
||||
- Click the operation in `More` in the first row according to the title
|
||||
- Take the create instance button as an example: `test/e2e/integration/pages/compute/image.spec.js`
|
||||
|
||||
@ -390,49 +420,53 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![action-in-more](images/e2e/table/action-in-more.png)
|
||||
|
||||
- `clickActionInMoreSub`
|
||||
|
||||
- Click the operation under the submenu of the first row of operations according to the title
|
||||
- Parameter `title`, the title of the button
|
||||
- Parameter `subMenu`, the title of the submenu
|
||||
- Take the instance and click on the `Attach Interface` `test/e2e/integration/pages/compute/image.spec.js` under `Associated Resources` as an example
|
||||
- Parameter `title`, the title of the button
|
||||
- Parameter `subMenu`, the title of the submenu
|
||||
- Take the instance and click on the `Attach Interface` `test/e2e/integration/pages/compute/image.spec.js` under `Associated Resources` as an example
|
||||
|
||||
```javascript
|
||||
it('successfully attach interface', () => {
|
||||
cy.tableSearchText(name)
|
||||
.clickActionInMoreSub('Attach Interface', 'Related Resources')
|
||||
.wait(5000)
|
||||
.formTableSelect('network')
|
||||
.clickModalActionSubmitButton();
|
||||
});
|
||||
```
|
||||
```javascript
|
||||
it('successfully attach interface', () => {
|
||||
cy.tableSearchText(name)
|
||||
.clickActionInMoreSub('Attach Interface', 'Related Resources')
|
||||
.wait(5000)
|
||||
.formTableSelect('network')
|
||||
.clickModalActionSubmitButton();
|
||||
});
|
||||
```
|
||||
|
||||
![action-in-sub](images/e2e/table/action-in-sub.png)
|
||||
![action-in-sub](images/e2e/table/action-in-sub.png)
|
||||
|
||||
- `checkActionDisabledInFirstRow`
|
||||
|
||||
- Verify that the specified operation of the resource with the specified name is not available
|
||||
1. Search for resources based on specified names
|
||||
2. Verify that the specified operation does not exist in the operation column `More` in the first row of the search result
|
||||
- Parameter `title`, the name of the operation
|
||||
- Parameter `name`, the name of the resource
|
||||
- After the resource is in certain states, some operations need to be disabled, the first operation in the row operation list, if it is not operable, it is in the `disabled` state, and the operations in `more`, if not available , Don’t show
|
||||
- Take the router as an example: `test/e2e/integration/pages/network/router.spec.js`
|
||||
1. Open the public network gateway when creating the router
|
||||
2. Verify that the router cannot be deleted, that is, there is no `Delete` button
|
||||
1. Search for resources based on specified names
|
||||
2. Verify that the specified operation does not exist in the operation column `More` in the first row of the search result
|
||||
- Parameter `title`, the name of the operation
|
||||
- Parameter `name`, the name of the resource
|
||||
- After the resource is in certain states, some operations need to be disabled, the first operation in the row operation list, if it is not operable, it is in the `disabled` state, and the operations in `more`, if not available , Don’t show
|
||||
- Take the router as an example: `test/e2e/integration/pages/network/router.spec.js`
|
||||
1. Open the public network gateway when creating the router
|
||||
2. Verify that the router cannot be deleted, that is, there is no `Delete` button
|
||||
|
||||
```javascript
|
||||
it('successfully disable delete', () => {
|
||||
cy.checkActionDisabledInFirstRow('Delete', name);
|
||||
});
|
||||
```
|
||||
```javascript
|
||||
it('successfully disable delete', () => {
|
||||
cy.checkActionDisabledInFirstRow('Delete', name);
|
||||
});
|
||||
```
|
||||
|
||||
![disable-more-action](images/e2e/table/disable-more-action.png)
|
||||
![disable-more-action](images/e2e/table/disable-more-action.png)
|
||||
|
||||
- `clickFirstActionDisabled`
|
||||
|
||||
- Verify that the first operation in the first row of the table is unavailable
|
||||
- After the resource is in certain states, some operations need to be disabled, the first operation in the row operation list, if it is not operable, it is in the `disabled` state, and the operations in `more`, if not available , Don’t show
|
||||
- Take instance group `test/e2e/integration/pages/compute/server-group.spec.js` as an example
|
||||
1. Create a instance under the instance group
|
||||
2. Verify that the instance group containing instance cannot be deleted
|
||||
3. After deleting instance, the instance group is successfully deleted
|
||||
|
||||
1. Create a instance under the instance group
|
||||
2. Verify that the instance group containing instance cannot be deleted
|
||||
3. After deleting instance, the instance group is successfully deleted
|
||||
|
||||
```javascript
|
||||
it('successfully delete', () => {
|
||||
@ -449,14 +483,16 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![disable-first](images/e2e/table/disable-first.png)
|
||||
|
||||
- `clickConfirmActionInFirst`
|
||||
|
||||
- Complete the operation corresponding to the first operation button in the first row of the table
|
||||
1. Click the first operation button in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
1. Click the first operation button in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
- Parameter `waitTime`, the waiting time after closing the operation successful prompt
|
||||
- Take instance group `test/e2e/integration/pages/compute/server-group.spec.js` as an example
|
||||
1. Create a instance under the instance group
|
||||
2. Verify that the instance group containing instance cannot be deleted
|
||||
3. After deleting the instance, the instance group is successfully deleted
|
||||
|
||||
1. Create a instance under the instance group
|
||||
2. Verify that the instance group containing instance cannot be deleted
|
||||
3. After deleting the instance, the instance group is successfully deleted
|
||||
|
||||
```javascript
|
||||
it('successfully delete', () => {
|
||||
@ -475,9 +511,10 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![first-confirm-2](images/e2e/table/first-confirm-2.png)
|
||||
|
||||
- `clickConfirmActionButton`
|
||||
|
||||
- Complete the corresponding operation in the operation buttons listed in the first row of the table
|
||||
1. Click the specified operation in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
1. Click the specified operation in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
- Parameter `title`, specify the name of the operation
|
||||
- Parameter `waitTime`, the waiting time after closing the operation prompt successfully
|
||||
- Take delet VPN IPsec policy `test/e2e/integration/pages/compute/server-group.spec.js` as an example
|
||||
@ -493,15 +530,17 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![confirm-action](images/e2e/table/confirm-action.png)
|
||||
|
||||
- `clickConfirmActionInMore`
|
||||
|
||||
- Complete the corresponding operation in `More` in the first row of the table
|
||||
1. Click the specified operation in `More` in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
1. Click the specified operation in `More` in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
- Parameter `title`, specify the name of the operation
|
||||
- Parameter `waitTime`, the waiting time after closing the operation prompt successfully
|
||||
- Take deleting the router `test/e2e/integration/pages/network/router.spec.js` as an example
|
||||
|
||||
1. Search
|
||||
2. Complete the operation of `Close public gateway` in `More`
|
||||
2. Complete the `Delete` operation in `More`
|
||||
3. Complete the `Delete` operation in `More`
|
||||
|
||||
```javascript
|
||||
it('successfully close external gateway and delete', () => {
|
||||
@ -518,6 +557,7 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
![confirm-more-2](images/e2e/table/confirm-more-2.png)
|
||||
|
||||
- `clickConfirmActionInMoreSub`
|
||||
|
||||
- Complete the corresponding operation under the specified submenu in `More` in the first row of the table
|
||||
1. Click the specified operation under the specified submenu in `More` in the first row of the table. This operation is a confirmation operation
|
||||
2. Click the `Confirm` button, and wait for the request to complete, close the prompt message that the request is successful
|
||||
@ -544,5 +584,4 @@ The buttons above the table generally include: refresh, create, batch operation
|
||||
|
||||
![confirm-in-sub](images/e2e/table/confirm-in-sub.png)
|
||||
|
||||
|
||||
For the various operations of the table operation, the functions introduced above are mainly used. For the specific writing of the functions, please view `test/e2e/support/table-commands.js`
|
||||
|
@ -347,9 +347,9 @@ const renderMenu = (t) => {
|
||||
level: 1,
|
||||
children: [
|
||||
{
|
||||
path: /^\/network\/vpn-tunnel-admin\/detail\/.[^/]+$/,
|
||||
name: t('VPN Tunnel Detail'),
|
||||
key: 'vpn-tunnel-detail',
|
||||
path: /^\/network\/ipsec-site-connection-admin\/detail\/.[^/]+$/,
|
||||
name: t('IPsec site connection Detail'),
|
||||
key: 'ipsec-site-connection-detail',
|
||||
level: 2,
|
||||
},
|
||||
],
|
||||
|
@ -310,9 +310,9 @@ const renderMenu = (t) => {
|
||||
level: 1,
|
||||
children: [
|
||||
{
|
||||
path: /^\/network\/vpn-tunnel\/detail\/.[^/]+$/,
|
||||
name: t('VPN Tunnel Detail'),
|
||||
key: 'vpn-tunnel-detail',
|
||||
path: /^\/network\/ipsec-site-connection\/detail\/.[^/]+$/,
|
||||
name: t('IPsec site connection Detail'),
|
||||
key: 'ipsec-site-connection-detail',
|
||||
level: 2,
|
||||
},
|
||||
],
|
||||
|
@ -308,6 +308,7 @@
|
||||
"Create Failed": "Create Failed",
|
||||
"Create Flavor": "Create Flavor",
|
||||
"Create Host Aggregate": "Create Host Aggregate",
|
||||
"Create IPsec Site Connection": "Create IPsec Site Connection",
|
||||
"Create Image": "Create Image",
|
||||
"Create In Progress": "Create In Progress",
|
||||
"Create Instance": "Create Instance",
|
||||
@ -341,7 +342,6 @@
|
||||
"Create VPN Endpoint Group": "Create VPN Endpoint Group",
|
||||
"Create VPN IKE Policy": "Create VPN IKE Policy",
|
||||
"Create VPN IPsec Policy": "Create VPN IPsec Policy",
|
||||
"Create VPN Tunnel": "Create VPN Tunnel",
|
||||
"Create Virtual Adapter": "Create Virtual Adapter",
|
||||
"Create Volume": "Create Volume",
|
||||
"Create Volume Type": "Create Volume Type",
|
||||
@ -426,6 +426,7 @@
|
||||
"Delete Flavor": "Delete Flavor",
|
||||
"Delete Group": "Delete Group",
|
||||
"Delete Host Aggregate": "Delete Host Aggregate",
|
||||
"Delete IPsec Site Connection": "Delete IPsec Site Connection",
|
||||
"Delete Image": "Delete Image",
|
||||
"Delete In Progress": "Delete In Progress",
|
||||
"Delete Instance": "Delete Instance",
|
||||
@ -454,7 +455,6 @@
|
||||
"Delete VPN EndPoint Groups": "Delete VPN EndPoint Groups",
|
||||
"Delete VPN IKE Policy": "Delete VPN IKE Policy",
|
||||
"Delete VPN IPsec Policy": "Delete VPN IPsec Policy",
|
||||
"Delete VPN Tunnel": "Delete VPN Tunnel",
|
||||
"Delete Virtual Adapter": "Delete Virtual Adapter",
|
||||
"Delete Volume": "Delete Volume",
|
||||
"Delete Volume Type": "Delete Volume Type",
|
||||
@ -541,6 +541,7 @@
|
||||
"Edit Flavor": "Edit Flavor",
|
||||
"Edit Health Monitor": "Edit Health Monitor",
|
||||
"Edit Host Aggregate": "Edit Host Aggregate",
|
||||
"Edit IPsec Site Connection": "Edit IPsec Site Connection",
|
||||
"Edit Image": "Edit Image",
|
||||
"Edit Instance": "Edit Instance",
|
||||
"Edit Listener": "Edit Listener",
|
||||
@ -561,7 +562,6 @@
|
||||
"Edit VPN EndPoint Groups": "Edit VPN EndPoint Groups",
|
||||
"Edit VPN IKE Policy": "Edit VPN IKE Policy",
|
||||
"Edit VPN IPsec Policy": "Edit VPN IPsec Policy",
|
||||
"Edit VPN Tunnel": "Edit VPN Tunnel",
|
||||
"Edit host aggregate": "Edit host aggregate",
|
||||
"Edit metadata": "Edit metadata",
|
||||
"Edit quota": "Edit quota",
|
||||
@ -744,6 +744,9 @@
|
||||
"IPMITool": "IPMITool",
|
||||
"IPXE": "IPXE",
|
||||
"IPsec Policy": "IPsec Policy",
|
||||
"IPsec Site Connection": "IPsec Site Connection",
|
||||
"IPsec Site Connections": "IPsec Site Connections",
|
||||
"IPsec site connection Detail": "IPsec site connection Detail",
|
||||
"IPv4": "IPv4",
|
||||
"IPv4 Address": "IPv4 Address",
|
||||
"IPv6": "IPv6",
|
||||
@ -1117,7 +1120,7 @@
|
||||
"Peer ID": "Peer ID",
|
||||
"Peer Network": "Peer Network",
|
||||
"Peer Network Segment": "Peer Network Segment",
|
||||
"Peer gateway public address for the VPN tunnel": "Peer gateway public address for the VPN tunnel",
|
||||
"Peer gateway public address for the IPsec site connection": "Peer gateway public address for the IPsec site connection",
|
||||
"Pending": "Pending",
|
||||
"Pending Create": "Pending Create",
|
||||
"Pending Delete": "Pending Delete",
|
||||
@ -1706,8 +1709,6 @@
|
||||
"VPN Gateway": "VPN Gateway",
|
||||
"VPN Service": "VPN Service",
|
||||
"VPN Service ID": "VPN Service ID",
|
||||
"VPN Tunnel": "VPN Tunnel",
|
||||
"VPN Tunnel Detail": "VPN Tunnel Detail",
|
||||
"VRRP": "VRRP",
|
||||
"Valid": "Valid",
|
||||
"Value": "Value",
|
||||
@ -1806,6 +1807,7 @@
|
||||
"create encryption": "create encryption",
|
||||
"create flavor": "create flavor",
|
||||
"create instance snapshot": "create instance snapshot",
|
||||
"create ipsec site connection": "create ipsec site connection",
|
||||
"create network": "create network",
|
||||
"create router": "create router",
|
||||
"create snapshot": "create snapshot",
|
||||
@ -1815,7 +1817,6 @@
|
||||
"create vpn": "create vpn",
|
||||
"create vpn ike policy": "create vpn ike policy",
|
||||
"create vpn ipsec policy": "create vpn ipsec policy",
|
||||
"create vpn tunnel": "create vpn tunnel",
|
||||
"data": "data",
|
||||
"delete": "delete",
|
||||
"delete DNAT rule": "delete DNAT rule",
|
||||
@ -1832,6 +1833,7 @@
|
||||
"delete group": "delete group",
|
||||
"delete image": "delete image",
|
||||
"delete instance": "delete instance",
|
||||
"delete ipsec site connection": "delete ipsec site connection",
|
||||
"delete ironic instance": "delete ironic instance",
|
||||
"delete keypair": "delete keypair",
|
||||
"delete listener": "delete listener",
|
||||
@ -1852,7 +1854,6 @@
|
||||
"delete vpn IKE policy": "delete vpn IKE policy",
|
||||
"delete vpn IPsec policy": "delete vpn IPsec policy",
|
||||
"delete vpn endpoint groups": "delete vpn endpoint groups",
|
||||
"delete vpn tunnel": "delete vpn tunnel",
|
||||
"description": "description",
|
||||
"detach instance": "detach instance",
|
||||
"detach security group": "detach security group",
|
||||
@ -1890,6 +1891,7 @@
|
||||
"instance snapshot": "instance snapshot",
|
||||
"instance: {name}.": "instance: {name}.",
|
||||
"instances": "instances",
|
||||
"ipsec site connection": "ipsec site connection",
|
||||
"jump to the console": "jump to the console",
|
||||
"keypair": "keypair",
|
||||
"keypairs": "keypairs",
|
||||
@ -1988,7 +1990,6 @@
|
||||
"vpn IPsec policy": "vpn IPsec policy",
|
||||
"vpn endpoint groups": "vpn endpoint groups",
|
||||
"vpn services": "vpn services",
|
||||
"vpn tunnel": "vpn tunnel",
|
||||
"{ size } GB": "{ size } GB",
|
||||
"{ size } KB": "{ size } KB",
|
||||
"{ size } MB": "{ size } MB",
|
||||
|
@ -308,6 +308,7 @@
|
||||
"Create Failed": "创建失败",
|
||||
"Create Flavor": "创建云主机类型",
|
||||
"Create Host Aggregate": "创建主机集合",
|
||||
"Create IPsec Site Connection": "创建IPsec站点连接",
|
||||
"Create Image": "创建镜像",
|
||||
"Create In Progress": "正在创建",
|
||||
"Create Instance": "创建云主机",
|
||||
@ -341,7 +342,6 @@
|
||||
"Create VPN Endpoint Group": "创建VPN端点组",
|
||||
"Create VPN IKE Policy": "创建VPN IKE策略",
|
||||
"Create VPN IPsec Policy": "创建VPN IPsec策略",
|
||||
"Create VPN Tunnel": "创建VPN隧道",
|
||||
"Create Virtual Adapter": "创建虚拟网卡",
|
||||
"Create Volume": "创建云硬盘",
|
||||
"Create Volume Type": "创建云硬盘类型",
|
||||
@ -426,6 +426,7 @@
|
||||
"Delete Flavor": "删除云主机类型",
|
||||
"Delete Group": "删除用户组",
|
||||
"Delete Host Aggregate": "删除主机集合",
|
||||
"Delete IPsec Site Connection": "删除IPsec站点连接",
|
||||
"Delete Image": "删除镜像",
|
||||
"Delete In Progress": "正在删除",
|
||||
"Delete Instance": "删除云主机",
|
||||
@ -454,7 +455,6 @@
|
||||
"Delete VPN EndPoint Groups": "删除VPN端点组",
|
||||
"Delete VPN IKE Policy": "删除VPN IKE策略",
|
||||
"Delete VPN IPsec Policy": "删除VPN IPsec策略",
|
||||
"Delete VPN Tunnel": "删除VPN隧道",
|
||||
"Delete Virtual Adapter": "删除虚拟网卡",
|
||||
"Delete Volume": "删除云硬盘",
|
||||
"Delete Volume Type": "删除云硬盘类型",
|
||||
@ -541,6 +541,7 @@
|
||||
"Edit Flavor": "编辑云主机类型",
|
||||
"Edit Health Monitor": "编辑健康检查器",
|
||||
"Edit Host Aggregate": "编辑主机集合",
|
||||
"Edit IPsec Site Connection": "编辑IPsec站点连接",
|
||||
"Edit Image": "编辑镜像",
|
||||
"Edit Instance": "编辑云主机",
|
||||
"Edit Listener": "编辑监听器",
|
||||
@ -561,7 +562,6 @@
|
||||
"Edit VPN EndPoint Groups": "编辑VPN端点组",
|
||||
"Edit VPN IKE Policy": "编辑VPN IKE策略",
|
||||
"Edit VPN IPsec Policy": "编辑VPN IPsec策略",
|
||||
"Edit VPN Tunnel": "编辑VPN隧道",
|
||||
"Edit host aggregate": "编辑主机集合",
|
||||
"Edit metadata": "编辑元数据",
|
||||
"Edit quota": "编辑配额",
|
||||
@ -744,6 +744,9 @@
|
||||
"IPMITool": "",
|
||||
"IPXE": "",
|
||||
"IPsec Policy": "IPsec策略",
|
||||
"IPsec Site Connection": "IPsec站点连接",
|
||||
"IPsec Site Connections": "IPsec站点连接",
|
||||
"IPsec site connection Detail": "IPsec站点连接详情",
|
||||
"IPv4": "",
|
||||
"IPv4 Address": "IPv4 地址",
|
||||
"IPv6": "",
|
||||
@ -1117,7 +1120,7 @@
|
||||
"Peer ID": "对端标识",
|
||||
"Peer Network": "对端网络",
|
||||
"Peer Network Segment": "对端网络",
|
||||
"Peer gateway public address for the VPN tunnel": "对端网络的地址",
|
||||
"Peer gateway public address for the IPsec site connection": "对端网络的地址",
|
||||
"Pending": "等待",
|
||||
"Pending Create": "等待创建",
|
||||
"Pending Delete": "等待删除",
|
||||
@ -1706,8 +1709,6 @@
|
||||
"VPN Gateway": "VPN网关",
|
||||
"VPN Service": "VPN服务",
|
||||
"VPN Service ID": "VPN服务ID",
|
||||
"VPN Tunnel": "VPN隧道",
|
||||
"VPN Tunnel Detail": "VPN隧道详情",
|
||||
"VRRP": "",
|
||||
"Valid": "有效",
|
||||
"Value": "值",
|
||||
@ -1806,6 +1807,7 @@
|
||||
"create encryption": "创建加密",
|
||||
"create flavor": "创建云主机类型",
|
||||
"create instance snapshot": "创建云主机快照",
|
||||
"create ipsec site connection": "创建IPsec站点连接",
|
||||
"create network": "创建网络",
|
||||
"create router": "创建路由",
|
||||
"create snapshot": "创建快照",
|
||||
@ -1815,7 +1817,6 @@
|
||||
"create vpn": "创建VPN",
|
||||
"create vpn ike policy": "创建VPN IKE策略",
|
||||
"create vpn ipsec policy": "创建VPN IPsec策略",
|
||||
"create vpn tunnel": "创建VPN隧道",
|
||||
"data": "数据",
|
||||
"delete": "删除",
|
||||
"delete DNAT rule": "删除DNAT规则",
|
||||
@ -1832,6 +1833,7 @@
|
||||
"delete group": "删除组",
|
||||
"delete image": "删除镜像",
|
||||
"delete instance": "删除云主机",
|
||||
"delete ipsec site connection": "删除IPsec站点连接",
|
||||
"delete ironic instance": "删除裸机",
|
||||
"delete keypair": "删除密钥",
|
||||
"delete listener": "删除监听器",
|
||||
@ -1852,7 +1854,6 @@
|
||||
"delete vpn IKE policy": "删除vpn IKE策略",
|
||||
"delete vpn IPsec policy": "删除vpn IPsec策略",
|
||||
"delete vpn endpoint groups": "删除vpn端点组",
|
||||
"delete vpn tunnel": "删除VPN隧道",
|
||||
"description": "描述",
|
||||
"detach instance": "从云主机解绑",
|
||||
"detach security group": "解绑安全组",
|
||||
@ -1890,6 +1891,7 @@
|
||||
"instance snapshot": "云主机快照",
|
||||
"instance: {name}.": "实例名称:{name}。",
|
||||
"instances": "云主机",
|
||||
"ipsec site connection": "IPsec站点连接",
|
||||
"jump to the console": "跳转到控制台",
|
||||
"keypair": "密钥",
|
||||
"keypairs": "密钥",
|
||||
@ -1988,7 +1990,6 @@
|
||||
"vpn IPsec policy": "VPN IPsec策略",
|
||||
"vpn endpoint groups": "VPN端点组",
|
||||
"vpn services": "VPN网关",
|
||||
"vpn tunnel": "VPN隧道",
|
||||
"{ size } GB": "{ size } GB",
|
||||
"{ size } KB": "{ size } KB",
|
||||
"{ size } MB": "{ size } MB",
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import { ModalAction } from 'containers/Action';
|
||||
import globalVpnIPSecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import {
|
||||
authAlgorithmOptions,
|
||||
encryptionAlgorithmOptions,
|
||||
@ -60,7 +60,7 @@ export default class Create extends ModalAction {
|
||||
},
|
||||
...rest,
|
||||
};
|
||||
return globalVpnIPSecPolicyStore.create(data);
|
||||
return globalVpnIPsecPolicyStore.create(data);
|
||||
};
|
||||
|
||||
get formItems() {
|
@ -14,7 +14,7 @@
|
||||
|
||||
import { ConfirmAction } from 'containers/Action';
|
||||
import { checkPolicyRule } from 'resources/policy';
|
||||
import globalVpnIPSecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecConnectionStore from 'stores/neutron/vpn-ipsec-connection';
|
||||
import globalRootStore from 'stores/root';
|
||||
|
||||
@ -80,6 +80,6 @@ export default class DeleteAction extends ConfirmAction {
|
||||
// eslint-disable-next-line prefer-promise-reject-errors
|
||||
return Promise.reject({ errorMsg: this.confirmErrorMessageBeforeSubmit });
|
||||
}
|
||||
return globalVpnIPSecPolicyStore.delete(data);
|
||||
return globalVpnIPsecPolicyStore.delete(data);
|
||||
};
|
||||
}
|
@ -15,7 +15,7 @@
|
||||
import React from 'react';
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import { ModalAction } from 'containers/Action';
|
||||
import globalVpnIPSecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecConnectionStore from 'stores/neutron/vpn-ipsec-connection';
|
||||
|
||||
@inject('rootStore')
|
||||
@ -64,7 +64,7 @@ export default class Edit extends ModalAction {
|
||||
},
|
||||
...rest,
|
||||
};
|
||||
return globalVpnIPSecPolicyStore.update({ id: this.item.id }, data);
|
||||
return globalVpnIPsecPolicyStore.update({ id: this.item.id }, data);
|
||||
};
|
||||
|
||||
get formItems() {
|
@ -15,7 +15,7 @@
|
||||
import React from 'react';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
import Base from 'containers/List';
|
||||
import { VpnIPSecPolicyStore } from 'stores/neutron/vpn-ipsec-policy';
|
||||
import { VpnIPsecPolicyStore } from 'stores/neutron/vpn-ipsec-policy';
|
||||
import {
|
||||
authAlgorithmOptions,
|
||||
encryptionAlgorithmOptions,
|
||||
@ -29,8 +29,8 @@ import { actionConfigs, adminConfigs } from './actions';
|
||||
@observer
|
||||
export default class Index extends Base {
|
||||
init() {
|
||||
this.store = new VpnIPSecPolicyStore();
|
||||
this.downloadStore = new VpnIPSecPolicyStore();
|
||||
this.store = new VpnIPsecPolicyStore();
|
||||
this.downloadStore = new VpnIPsecPolicyStore();
|
||||
}
|
||||
|
||||
get isFilterByBackend() {
|
@ -20,13 +20,13 @@ import { actionConfigs, adminConfigs } from '../actions';
|
||||
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
export default class VPNTunnelDetail extends Base {
|
||||
export default class IPsecSiteConnection extends Base {
|
||||
init() {
|
||||
this.store = new VpnIPsecConnectionStore();
|
||||
}
|
||||
|
||||
get name() {
|
||||
return t('vpn tunnel');
|
||||
return t('IPsec Site Connection');
|
||||
}
|
||||
|
||||
get policy() {
|
||||
@ -34,7 +34,7 @@ export default class VPNTunnelDetail extends Base {
|
||||
}
|
||||
|
||||
get listUrl() {
|
||||
return `${this.getUrl('/network/vpn')}?tab=ipsec_connections`;
|
||||
return `${this.getUrl('/network/vpn')}?tab=ipsec_site_connections`;
|
||||
}
|
||||
|
||||
get actionConfigs() {
|
@ -18,7 +18,7 @@ import { ModalAction } from 'containers/Action';
|
||||
import { getPasswordOtherRule, ipValidate } from 'utils/validate';
|
||||
import globalVpnServicesStore from 'stores/neutron/vpn-service';
|
||||
import globalVpnIKEPolicyStore from 'stores/neutron/vpn-ike-policy';
|
||||
import globalVpnIPSecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVPNEndPointGroupStore from 'stores/neutron/vpn-endpoint-group';
|
||||
import { Col, Empty, Row } from 'antd';
|
||||
import { merge } from 'lodash';
|
||||
@ -30,12 +30,12 @@ const { isIPv4, isIpv6 } = ipValidate;
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
export default class Create extends ModalAction {
|
||||
static id = 'create-vpn-tunnel';
|
||||
static id = 'create-ipsec-site-connection';
|
||||
|
||||
static title = t('Create VPN Tunnel');
|
||||
static title = t('Create IPsec Site Connection');
|
||||
|
||||
get name() {
|
||||
return t('create vpn tunnel');
|
||||
return t('create ipsec site connection');
|
||||
}
|
||||
|
||||
static buttonText = t('Create');
|
||||
@ -47,7 +47,7 @@ export default class Create extends ModalAction {
|
||||
init() {
|
||||
this.vpnServiceStore = globalVpnServicesStore;
|
||||
this.ikePolicyStore = globalVpnIKEPolicyStore;
|
||||
this.ipsecPolicyStore = globalVpnIPSecPolicyStore;
|
||||
this.ipsecPolicyStore = globalVpnIPsecPolicyStore;
|
||||
this.endpointGroupStore = globalVPNEndPointGroupStore;
|
||||
|
||||
this.fetchData();
|
||||
@ -179,7 +179,7 @@ export default class Create extends ModalAction {
|
||||
name: 'peer_address',
|
||||
type: 'input',
|
||||
label: t('Peer Gateway Public Address'),
|
||||
extra: t('Peer gateway public address for the VPN tunnel'),
|
||||
extra: t('Peer gateway public address for the IPsec site connection'),
|
||||
validator: (rule, value) => {
|
||||
if (!isIPv4(value) && !isIpv6(value)) {
|
||||
return Promise.reject(
|
@ -19,11 +19,11 @@ import globalRootStore from 'stores/root';
|
||||
|
||||
export default class DeleteAction extends ConfirmAction {
|
||||
get id() {
|
||||
return 'delete-vpn-tunnel';
|
||||
return 'delete-ipsec-site-connection';
|
||||
}
|
||||
|
||||
get title() {
|
||||
return t('Delete VPN Tunnel');
|
||||
return t('Delete IPsec Site Connection');
|
||||
}
|
||||
|
||||
get buttonType() {
|
||||
@ -35,7 +35,7 @@ export default class DeleteAction extends ConfirmAction {
|
||||
}
|
||||
|
||||
get actionName() {
|
||||
return t('delete vpn tunnel');
|
||||
return t('delete ipsec site connection');
|
||||
}
|
||||
|
||||
policy = 'delete_ipsec_site_connection';
|
@ -21,9 +21,9 @@ const canEditStatus = ['ACTIVE', 'DOWN'];
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
export default class Edit extends ModalAction {
|
||||
static id = 'edit-vpn-tunnel';
|
||||
static id = 'edit-ipsec-site-connection';
|
||||
|
||||
static title = t('Edit VPN Tunnel');
|
||||
static title = t('Edit IPsec Site Connection');
|
||||
|
||||
static buttonText = t('Edit');
|
||||
|
@ -40,7 +40,7 @@ export default class Index extends Base {
|
||||
}
|
||||
|
||||
get name() {
|
||||
return t('vpn tunnel');
|
||||
return t('ipsec site connection');
|
||||
}
|
||||
|
||||
get adminPageHasProjectFilter() {
|
||||
@ -59,7 +59,7 @@ export default class Index extends Base {
|
||||
title: t('ID/Name'),
|
||||
dataIndex: 'name',
|
||||
isName: true,
|
||||
linkPrefix: `/network/${this.getUrl('vpn-tunnel')}/detail`,
|
||||
linkPrefix: `/network/${this.getUrl('ipsec-site-connection')}/detail`,
|
||||
},
|
||||
{
|
||||
title: t('Project ID/Name'),
|
@ -18,8 +18,8 @@ import { vpnEndpoint } from 'client/client/constants';
|
||||
import VPNGateway from './VPNGateway';
|
||||
import EndPointGroup from './EndpointGroup';
|
||||
import IKEPolicy from './IKEPolicy';
|
||||
import IPsecPolicy from './IPSecPolicy';
|
||||
import VPNTunnel from './VPNTunnel';
|
||||
import IPsecPolicy from './IPsecPolicy';
|
||||
import IPsecSiteConnection from './IPsecSiteConnection';
|
||||
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
@ -59,9 +59,9 @@ export default class VPN extends Base {
|
||||
component: IPsecPolicy,
|
||||
},
|
||||
{
|
||||
title: t('VPN Tunnel'),
|
||||
key: 'ipsec_connections',
|
||||
component: VPNTunnel,
|
||||
title: t('IPsec Site Connections'),
|
||||
key: 'ipsec_site_connections',
|
||||
component: IPsecSiteConnection,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ import StepCreateLoadBalancer from '../containers/LoadBalancers/LoadBalancerInst
|
||||
import LoadBalancerDetail from '../containers/LoadBalancers/LoadBalancerInstance/Detail';
|
||||
import ListenerDetail from '../containers/LoadBalancers/Listener/Detail';
|
||||
import VPN from '../containers/VPN';
|
||||
import VPNTunnelDetail from '../containers/VPN/VPNTunnel/Detail';
|
||||
import IPsecSiteConnectionDetail from '../containers/VPN/IPsecSiteConnection/Detail';
|
||||
import SecurityGroups from '../containers/SecurityGroup';
|
||||
import SecurityGroupDetail from '../containers/SecurityGroup/Detail';
|
||||
|
||||
@ -159,13 +159,13 @@ export default [
|
||||
},
|
||||
{ path: `${PATH}/vpn`, component: VPN, exact: true },
|
||||
{
|
||||
path: `${PATH}/vpn-tunnel/detail/:id`,
|
||||
component: VPNTunnelDetail,
|
||||
path: `${PATH}/ipsec-site-connection/detail/:id`,
|
||||
component: IPsecSiteConnectionDetail,
|
||||
exact: true,
|
||||
},
|
||||
{
|
||||
path: `${PATH}/vpn-tunnel-admin/detail/:id`,
|
||||
component: VPNTunnelDetail,
|
||||
path: `${PATH}/ipsec-site-connection-admin/detail/:id`,
|
||||
component: IPsecSiteConnectionDetail,
|
||||
exact: true,
|
||||
},
|
||||
{ path: `${PATH}/vpn-admin`, component: VPN, exact: true },
|
||||
|
@ -15,7 +15,7 @@
|
||||
import { action } from 'mobx';
|
||||
import { get } from 'lodash';
|
||||
import globalVpnIKEPolicyStore from 'stores/neutron/vpn-ike-policy';
|
||||
import globalVpnIPSecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import globalVpnIPsecPolicyStore from 'stores/neutron/vpn-ipsec-policy';
|
||||
import client from 'client';
|
||||
import Base from 'stores/base';
|
||||
|
||||
@ -43,7 +43,7 @@ export class VpnIPsecConnectionStore extends Base {
|
||||
const ikePolicy = await globalVpnIKEPolicyStore.fetchDetail({
|
||||
id: ikePolicyID,
|
||||
});
|
||||
const ipsecPolicy = await globalVpnIPSecPolicyStore.fetchDetail({
|
||||
const ipsecPolicy = await globalVpnIPsecPolicyStore.fetchDetail({
|
||||
id: ipsecPolicyID,
|
||||
});
|
||||
const originData = get(result, this.responseKey) || result;
|
||||
|
@ -15,7 +15,7 @@
|
||||
import client from 'client';
|
||||
import Base from 'stores/base';
|
||||
|
||||
export class VpnIPSecPolicyStore extends Base {
|
||||
export class VpnIPsecPolicyStore extends Base {
|
||||
get client() {
|
||||
return client.neutron.ipsecPolicies;
|
||||
}
|
||||
@ -29,5 +29,5 @@ export class VpnIPSecPolicyStore extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
const globalVpnIPSecPolicyStore = new VpnIPSecPolicyStore();
|
||||
export default globalVpnIPSecPolicyStore;
|
||||
const globalVpnIPsecPolicyStore = new VpnIPsecPolicyStore();
|
||||
export default globalVpnIPsecPolicyStore;
|
||||
|
@ -34,7 +34,7 @@ onlyOn(vpnServiceEnabled, () => {
|
||||
const endpointPeer = `e2e-endpoint-peer-${uuid}`;
|
||||
const ikePolicy = `e2e-ike-policy-${uuid}`;
|
||||
const ipsecPolicy = `e2e-ipsec-policy-${uuid}`;
|
||||
const tunnel = `e2e-tunnel-${uuid}`;
|
||||
const ipsecSiteConnection = `e2e-ipsec-site-connection-${uuid}`;
|
||||
|
||||
const cidr = '192.168.0.0/24';
|
||||
|
||||
@ -98,12 +98,12 @@ onlyOn(vpnServiceEnabled, () => {
|
||||
.clickModalActionSubmitButton();
|
||||
});
|
||||
|
||||
it('successfully create vpn tunnel', () => {
|
||||
cy.clickTab('VPN Tunnel', 'ipsec_connections')
|
||||
it('successfully create ipsec site connection', () => {
|
||||
cy.clickTab('IPsec Site Connections', 'ipsec_site_connections')
|
||||
.clickHeaderButton(1)
|
||||
.wait(5000)
|
||||
.formInput('name', tunnel)
|
||||
.formText('description', tunnel)
|
||||
.formInput('name', ipsecSiteConnection)
|
||||
.formText('description', ipsecSiteConnection)
|
||||
.formSelect('vpnservice_id', gateway)
|
||||
.formSelect('ikepolicy_id', ikePolicy)
|
||||
.formSelect('ipsecpolicy_id', ipsecPolicy)
|
||||
@ -117,23 +117,23 @@ onlyOn(vpnServiceEnabled, () => {
|
||||
.clickModalActionSubmitButton();
|
||||
});
|
||||
|
||||
it('successfully detail vpn tunnel', () => {
|
||||
cy.clickTab('VPN Tunnel', 'ipsec_connections').tableSearchText(tunnel);
|
||||
it('successfully detail ipsec site connection', () => {
|
||||
cy.clickTab('IPsec Site Connections', 'ipsec_site_connections').tableSearchText(ipsecSiteConnection);
|
||||
cy.goToDetail().wait(30000);
|
||||
cy.goBackToList(listUrl);
|
||||
});
|
||||
|
||||
it('successfully edit tunnel', () => {
|
||||
cy.clickTab('VPN Tunnel')
|
||||
.tableSearchText(tunnel)
|
||||
it('successfully edit ipsec site connection', () => {
|
||||
cy.clickTab('IPsec Site Connections')
|
||||
.tableSearchText(ipsecSiteConnection)
|
||||
.clickFirstActionButton()
|
||||
.formText('description', 'description')
|
||||
.clickModalActionSubmitButton();
|
||||
});
|
||||
|
||||
it('successfully delete tunnel', () => {
|
||||
cy.clickTab('VPN Tunnel')
|
||||
.tableSearchText(tunnel)
|
||||
it('successfully delete ipsec site connection', () => {
|
||||
cy.clickTab('IPsec Site Connections')
|
||||
.tableSearchText(ipsecSiteConnection)
|
||||
.clickConfirmActionButton('Delete');
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user