Skip to content

Commit

Permalink
Abdul/environments actions (#5898)
Browse files Browse the repository at this point in the history
* added env iam actions

Signed-off-by: Abdul-Az <aazeez@progress.com>

* ui changes for IAM

Signed-off-by: Abdul-Az <aazeez@progress.com>

* added env test cases

Signed-off-by: Abdul-Az <aazeez@progress.com>

* environments test cases added

Signed-off-by: Abdul-Az <aazeez@progress.com>

* added environments api docs

Signed-off-by: Abdul-Az <aazeez@progress.com>
  • Loading branch information
iamazzeez committed Nov 15, 2021
1 parent 65de363 commit 59a4522
Show file tree
Hide file tree
Showing 7 changed files with 1,017 additions and 398 deletions.
683 changes: 345 additions & 338 deletions api/external/infra_proxy/infra_proxy.pb.go

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions api/external/infra_proxy/infra_proxy.pb.policy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions api/external/infra_proxy/infra_proxy.proto
Original file line number Diff line number Diff line change
Expand Up @@ -232,34 +232,34 @@ service InfraProxy {
rpc GetEnvironments (infra_proxy.request.Environments) returns (infra_proxy.response.Environments) {
option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:environments";
option (chef.automate.api.iam.policy).action = "infra:infraServers:get";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsEnvironments:list";
};
rpc GetEnvironment (infra_proxy.request.Environment) returns (infra_proxy.response.Environment) {
option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:environments";
option (chef.automate.api.iam.policy).action = "infra:infraServers:get";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsEnvironments:get";
};
rpc CreateEnvironment (infra_proxy.request.CreateEnvironment) returns (infra_proxy.response.Environment) {
option (google.api.http).post = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments";
option (google.api.http).body = "*";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:environments";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsEnvironments:create";
};
rpc DeleteEnvironment (infra_proxy.request.Environment) returns (infra_proxy.response.Environment) {
option (google.api.http).delete = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:environments";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsEnvironments:delete";
};
rpc UpdateEnvironment (infra_proxy.request.UpdateEnvironment) returns (infra_proxy.response.Environment) {
option (google.api.http).put = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}";
option (google.api.http).body = "*";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:environments";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsEnvironments:update";
};
rpc GetEnvironmentRecipes (infra_proxy.request.Environment) returns (infra_proxy.response.EnvironmentRecipesList) {
option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}/recipes";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:environments";
option (chef.automate.api.iam.policy).action = "infra:infraServers:get";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsEnvironments:get";
};

rpc GetNodes (infra_proxy.request.Nodes) returns (infra_proxy.response.Nodes) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@
</label>
<div class="constraint-table">
<div class="edit">
<chef-button tertiary class="right-button-box" tabindex="1"
(click)="openEditAttributeModal(environment?.default_attributes, 'Constraints')">
<span class="material-icons edit-item">mode_edit</span>
<span class="edit-text">Edit</span>
</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}', 'put', [serverId, orgId, environment?.name]]">
<chef-button tertiary class="right-button-box" tabindex="1"
(click)="openEditAttributeModal(environment?.default_attributes, 'Constraints')">
<span class="material-icons edit-item">mode_edit</span>
<span class="edit-text">Edit</span>
</chef-button>
</app-authorized>
</div>
<hr class="divider-constraint" />
<div class="constraint-container" *ngIf="hasCookbookConstraints">
Expand Down Expand Up @@ -88,13 +90,15 @@
<chef-icon>remove_circle</chef-icon>
<span>Collapse All</span>
</chef-button>
<chef-button
tertiary
class="right-button-box"
(click)="openEditAttributeModal(environment?.default_attributes, 'Default')">
<span class="material-icons edit-item">mode_edit</span>
<span class="edit-text">Edit</span>
</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}', 'put', [serverId, orgId, environment?.name]]">
<chef-button
tertiary
class="right-button-box"
(click)="openEditAttributeModal(environment?.default_attributes, 'Default')">
<span class="material-icons edit-item">mode_edit</span>
<span class="edit-text">Edit</span>
</chef-button>
</app-authorized>
</div>
<hr class="divider-constraints" />
<div class="json-container">
Expand Down Expand Up @@ -129,13 +133,15 @@
<chef-icon>remove_circle</chef-icon>
<span>Collapse All</span>
</chef-button>
<chef-button
tertiary
class="right-button-box"
(click)="openEditAttributeModal(environment?.override_attributes, 'Override')">
<span class="material-icons edit-item">mode_edit</span>
<span class="edit-text">Edit</span>
</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}', 'put', [serverId, orgId, environment?.name]]">
<chef-button
tertiary
class="right-button-box"
(click)="openEditAttributeModal(environment?.override_attributes, 'Override')">
<span class="material-icons edit-item">mode_edit</span>
<span class="edit-text">Edit</span>
</chef-button>
</app-authorized>
</div>
<hr class="divider-constraints" />
<div class="json-container">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
<ng-container *ngIf="!environmentsListLoading && !authFailure">
<div class="search-create-container">
<app-infra-search-bar (searchButtonClick)="searchEnvironment($event)" placeHolder="environments by name..."></app-infra-search-bar>
<chef-button id="env-create" primary (click)="openCreateModal()">Create Environment</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments', 'post', [serverId, orgId]]">
<chef-button id="env-create" primary (click)="openCreateModal()">Create Environment</chef-button>
</app-authorized>
</div>
<chef-loading-spinner class="full-screen-spinner" *ngIf="searching || deleting" size="50" fixed></chef-loading-spinner>
<div *ngIf="!authFailure">
Expand All @@ -29,34 +31,38 @@
<p *ngIf="searchValue === ''">No environment available.</p>
</div>
</div>
<chef-table *ngIf="environments.length">
<chef-thead>
<chef-tr class="no_border_tr">
<chef-th class="no_border_th">Name</chef-th>
<chef-th class="no_border_th">Description</chef-th>
<chef-th class="no_border_th"></chef-th>
<chef-th class="no_border_th"></chef-th>
<chef-th class="no_border_th three-dot-column"></chef-th>
</chef-tr>
</chef-thead>
<chef-tbody>
<chef-tr *ngFor="let environment of environments">
<chef-td>
<a [routerLink]="['/infrastructure','chef-servers', serverId, 'organizations', orgId, 'environments', environment.name]">{{ environment.name }}</a>
</chef-td>
<chef-td>
{{ (environment.description.length &gt; 30)? (environment.description | slice:0:30)+'...' : environment.description }}
</chef-td>
<chef-td></chef-td>
<chef-td></chef-td>
<chef-td class="three-dot-column">
<mat-select panelClass="chef-control-menu" id="menu-{{environment.id}}">
<mat-option data-cy="delete" (onSelectionChange)="startEnvironmentDelete(environment)">Delete</mat-option>
</mat-select>
</chef-td>
</chef-tr>
</chef-tbody>
</chef-table>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments', 'get', [serverId, orgId]]">
<chef-table *ngIf="environments.length">
<chef-thead>
<chef-tr class="no_border_tr">
<chef-th class="no_border_th">Name</chef-th>
<chef-th class="no_border_th">Description</chef-th>
<chef-th class="no_border_th"></chef-th>
<chef-th class="no_border_th"></chef-th>
<chef-th class="no_border_th three-dot-column"></chef-th>
</chef-tr>
</chef-thead>
<chef-tbody>
<chef-tr *ngFor="let environment of environments">
<chef-td>
<a [routerLink]="['/infrastructure','chef-servers', serverId, 'organizations', orgId, 'environments', environment.name]">{{ environment.name }}</a>
</chef-td>
<chef-td>
{{ (environment.description.length &gt; 30)? (environment.description | slice:0:30)+'...' : environment.description }}
</chef-td>
<chef-td></chef-td>
<chef-td></chef-td>
<chef-td class="three-dot-column">
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}', 'delete', [serverId, orgId, environment.name]]">
<mat-select panelClass="chef-control-menu" id="menu-{{environment.id}}">
<mat-option data-cy="delete" (onSelectionChange)="startEnvironmentDelete(environment)">Delete</mat-option>
</mat-select>
</app-authorized>
</chef-td>
</chef-tr>
</chef-tbody>
</chef-table>
</app-authorized>
<app-page-picker
*ngIf="!searching"
class="environment-list-paging"
Expand Down
5 changes: 5 additions & 0 deletions dev-docs/infra-server-iam.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,8 @@ example_fqdn "automate" >}}/api/v0/infra/servers/{id} |
| Create Roles | POST | infra:infraServersOrgsRoles:create | /api/v0/infra/servers/{id}/orgs/{org_id}/roles | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/roles |
| Update Roles | PUT | infra:infraServersOrgsRoles:update | /api/v0/infra/servers/{id}/orgs/{org_id}/roles/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/roles/{name} |
| Delete Roles | DELETE | infra:infraServersOrgsRoles:delete | /api/v0/infra/servers/{id}/orgs/{org_id}/roles/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/roles/{name} |
| List Environments | GET | infra:infraServersOrgsEnvironments:list | /api/v0/infra/servers/{id}/orgs/{org_id}/environments | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments |
| Get Environments | GET | infra:infraServersOrgsEnvironments:get | /api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} |
| Create Environments | POST | infra:infraServersOrgsEnvironments:create | /api/v0/infra/servers/{id}/orgs/{org_id}/environments | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments |
| Update Environments | PUT | infra:infraServersOrgsEnvironments:update | /api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} |
| Delete Environments | DELETE | infra:infraServersOrgsEnvironments:delete | /api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} |
Loading

0 comments on commit 59a4522

Please sign in to comment.