John Cowen 4c58f9402e
ui: Support for Node Identities (#8137)
* Add all the new data required for NodeIdentities

* Add potential NodeIdentity to the token list component

* Amend the policy-form/selector to allow node identity creation

* Fix up CSS for radio buttons and select label

* Add node-identity policy template component

* Fix up and add acceptance tests for NodeIndentities

* Make sure policy previews take node identities into account

* Only show certain policy markup if those we have those policies

* Potentially temporarily hide dt's that don't have icons yet
2020-06-23 09:59:43 +01:00

153 lines
4.5 KiB
Gherkin

@setupApplicationTest
Feature: dc / acls / policies / as many / add new: Add new policy
Background:
Given 1 datacenter model with the value "datacenter"
And 1 [Model] model from yaml
---
Policies: ~
ServiceIdentities: ~
NodeIdentities: ~
---
When I visit the [Model] page for yaml
---
dc: datacenter
[Model]: key
---
Then the url should be /datacenter/acls/[Model]s/key
And I click policies.create
Scenario: Adding a new policy as a child of [Model]
Then I fill in the policies.form with yaml
---
Name: New-Policy
Description: New Policy Description
Rules: key {}
---
And I click submit on the policies.form
Then a PUT request was made to "/v1/acl/policy?dc=datacenter" from yaml
---
body:
Name: New-Policy
Description: New Policy Description
Namespace: @namespace
Rules: key {}
---
And I submit
Then a PUT request was made to "/v1/acl/[Model]/key?dc=datacenter" from yaml
---
body:
Namespace: @namespace
Policies:
- ID: ee52203d-989f-4f7a-ab5a-2bef004164ca-1
Name: New-Policy
---
Then the url should be /datacenter/acls/[Model]s
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Where:
-------------
| Model |
| token |
| role |
-------------
Scenario: Adding a new service identity as a child of [Model]
Then I fill in the policies.form with yaml
---
Name: New-Service-Identity
---
And I click serviceIdentity on the policies.form
And I click submit on the policies.form
And I submit
Then a PUT request was made to "/v1/acl/[Model]/key?dc=datacenter" from yaml
---
body:
Namespace: @namespace
ServiceIdentities:
- ServiceName: New-Service-Identity
---
Then the url should be /datacenter/acls/[Model]s
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Where:
-------------
| Model |
| token |
| role |
-------------
Scenario: Adding a new node identity as a child of [Model]
Then I fill in the policies.form with yaml
---
Name: New-Node-Identity
---
And I click nodeIdentity on the policies.form
And I click submit on the policies.form
And I submit
Then a PUT request was made to "/v1/acl/[Model]/key?dc=datacenter" from yaml
---
body:
Namespace: @namespace
NodeIdentities:
- NodeName: New-Node-Identity
Datacenter: datacenter
---
Then the url should be /datacenter/acls/[Model]s
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Where:
-------------
| Model |
| token |
| role |
-------------
Scenario: Adding a new policy as a child of [Model] and getting an error
Given the url "/v1/acl/policy" responds with from yaml
---
status: 500
body: |
Invalid service policy: acl.ServicePolicy{Name:"service", Policy:"", Sentinel:acl.Sentinel{Code:"", EnforcementLevel:""}, Intentions:""}
---
Then I fill in the policies.form with yaml
---
Name: New-Policy
Description: New Policy Description
Rules: key {}
---
And I click submit on the policies.form
Then a PUT request was made to "/v1/acl/policy?dc=datacenter" with the body from yaml
---
Name: New-Policy
Description: New Policy Description
Namespace: @namespace
Rules: key {}
---
And I see error on the policies.form.rules like 'Invalid service policy: acl.ServicePolicy{Name:"service", Policy:"", Sentinel:acl.Sentinel{Code:"", EnforcementLevel:""}, Intentions:""}'
Where:
-------------
| Model |
| token |
| role |
-------------
Scenario: Try to edit the Service Identity using the code editor
And I click serviceIdentity on the policies.form
Then I can't fill in the policies.form with yaml
---
Rules: key {}
---
Where:
-------------
| Model |
| token |
| role |
-------------
Scenario: Try to edit the Node Identity using the code editor
And I click nodeIdentity on the policies.form
Then I can't fill in the policies.form with yaml
---
Rules: key {}
---
Where:
-------------
| Model |
| token |
| role |
-------------