Compare commits

..

41 Commits

Author SHA1 Message Date
Daniel Valdivia
33acf45264 Release v0.9.8 (#1016)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-08 13:38:29 -07:00
jinapurapu
f229fee3ee Added version card to BasicDashboard (#1013)
* Added version card to BasicDashboard

* Added length check for servers array on version card render

Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>
2021-09-08 11:38:32 -07:00
Bian Jiaping
21b3ed67af Eliminate usage of String.prototype.replaceAll to avoid incompatibility with old browsers (#1015) 2021-09-08 10:58:37 -07:00
Alex
90cadc76bb Applied workaround for MIME issue on windows (#1014) 2021-09-07 17:57:00 -07:00
Daniel Valdivia
b13b6db6f7 Share Icon updated (#1008) 2021-09-07 17:48:34 -05:00
adfost
1d88bb491d Disable create service account button if no policy (#1006)
* disable button if no policies

* merge fix

* finding group policies

* fixing style

Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
Co-authored-by: Adam Stafford <adamstafford@Adams-MacBook-Pro.local>
Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>
2021-09-07 15:02:04 -07:00
Daniel Valdivia
13cf3e6fa1 Release v0.9.7 (#1010)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-04 22:58:44 -07:00
Daniel Valdivia
50c1fe8298 Fix NPE on ServerInfoCard (#1009)
* Fix NPE on ServerInfoCard

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

* missing import

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-04 21:37:53 -07:00
Daniel Valdivia
39eeedec2c Add, Preview and Lock icons applied (#1005)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-03 12:37:53 -07:00
Daniel Valdivia
0f2a09d5f1 Release v0.9.6 (#1004)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-01 22:43:45 -05:00
Daniel Valdivia
6cf657a0e1 Add support for additional images (#1003)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-01 20:23:56 -07:00
Daniel Valdivia
1ba2627810 Two Column Basic Dashboard (#1002)
* Two Column Basic Dashboard

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

* Change title

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

* Remove Flex Grow

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-01 19:23:25 -07:00
Minio Trusted
1ab37e0b00 fix: update assets refresh 2021-09-01 17:53:55 -07:00
Alex
63dac87a75 misc small fixes warnings and imports (#1001) 2021-09-01 17:37:53 -07:00
jinapurapu
7bf3a6e3f1 Basic dashboard drives (#998)
* Added Disk properties to admin_info

* Added Disk properties to admin_info

* Created DriveInfo cards

* Fixed drive card formatting

* Added Disk properties to admin_info

Created DriveInfo cards

Added Disk properties to admin_info

Fixed drive card formatting

Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-01 17:07:15 -07:00
Daniel Valdivia
2fd4be91ad Fix Navigation when reloading on a virtual path (#1000)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-09-01 16:56:06 -07:00
Alex
296129db02 File details preview (#997)
* Added support to object browser for file preview

* Added preview file content in object details

* Added support to object browser for file preview (#995)

Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Jill <jill@minio.io>
2021-09-01 15:14:58 -07:00
Daniel Valdivia
5ece5ba8a7 Upscaled Icons (#996) 2021-09-01 17:09:26 -05:00
Lenin Alevski
96e9bce331 fix: Check if console is deployed with external certs for metrics proxy (#999)
Signed-off-by: Lenin Alevski <alevsk.8772@gmail.com>
2021-09-01 13:40:16 -07:00
Alex
ddd4ab54a7 Added support to object browser for file preview (#995) 2021-09-01 10:39:17 -07:00
adfost
849132fa19 Adding accesskey and secretkey for service accounts (#985)
* adding accesskey and secretkey for service accounts

* simplifying functions

Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
Co-authored-by: Adam Stafford <adamstafford@Adams-MacBook-Pro.local>
2021-09-01 11:54:13 -05:00
Kaan Kabalak
d23a7a4fba Fix error not being displayed on faulty upload (#991) 2021-08-30 23:12:53 -05:00
Daniel Valdivia
af2a64d0d2 Fix icon for object browser and download icon (#989)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-08-30 12:43:16 -05:00
Alex
6cb8c51754 Restructured basic dashboard elements (#988)
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2021-08-27 12:59:41 -05:00
Alex
48313d6cd9 Removed prometheus URL from error responses to avoid data leak (#986) 2021-08-26 14:36:57 -07:00
jinapurapu
bb8460a118 Created ServerInfoCard element (#984) 2021-08-26 12:22:46 -07:00
Daniel Valdivia
3e55683c2c Release v0.9.5 (#983) 2021-08-25 22:20:49 -07:00
Alex
d86fc2f73c Add missing slash for some API calls (#982) 2021-08-25 16:27:38 -07:00
Daniel Valdivia
24a2edf6a3 Implement New Icons (#981)
* Implement New Icons

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

* Update portal-ui/src/icons/TenantsOutlineIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/LicenseIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/screens/Console/Common/TableWrapper/TableActionButton.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/StorageIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/screens/Console/Common/TableWrapper/TableActionButton.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/IAMPoliciesIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/IAMPoliciesIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/IAMPoliciesIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/IAMPoliciesIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/icons/IAMPoliciesIcon.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>

* Update portal-ui/src/screens/Console/Common/TableWrapper/TableActionButton.tsx

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>
2021-08-25 14:56:59 -07:00
Lenin Alevski
07bef3280d Remove ConsoleImage references (#980)
Signed-off-by: Lenin Alevski <alevsk.8772@gmail.com>
2021-08-25 11:23:11 -07:00
Daniel Valdivia
fa465d0ef3 Release v0.9.4 (#979)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-08-24 17:01:01 -07:00
adfost
1f1537fd60 access rule delete bug fix (#978)
Co-authored-by: Adam Stafford <adamstafford@Adams-MacBook-Pro.local>
2021-08-24 16:22:47 -07:00
Daniel Valdivia
597855364c Fix Bug Deleting Tenant PVCs (#977)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-08-24 16:01:25 -07:00
jinapurapu
4306d0f661 Added Server Info array to Basic dashboard (#963)
* Added Servers array to admin_info api

* Added TableWrapper, wrap

* Created Server table

* Added Servers array to admin_info api

Added TableWrapper, wrap

Created Server table

* Removed testing element

* Formatted server uptime with niceDays

* Added Servers array to admin_info api

Added TableWrapper, wrap

Created Server table

* Removed testing element

* Formatted server uptime with niceDays

* Formatted uptime using niceDays

* Sorted server table by endpoint

Co-authored-by: Harshavardhana <harsha@minio.io>
2021-08-24 11:13:26 -07:00
Daniel Valdivia
4c01be21ca Release v0.9.3 (#974)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-08-23 23:29:48 -07:00
adfost
7ec391b6e0 Add user service account (#966)
* add user service account

* changing API

Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
Co-authored-by: Adam Stafford <adamstafford@Adams-MacBook-Pro.local>
Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>
2021-08-23 21:36:55 -07:00
Daniel Valdivia
8c82124a57 Prometheus Security Context (#973)
* Prometheus Security Context

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

* Missing files

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-08-23 21:06:32 -07:00
Lenin Alevski
0ae0338a8f Delete Postgres & Prometheus PVCs (#972)
Signed-off-by: Lenin Alevski <alevsk.8772@gmail.com>
2021-08-23 14:09:21 -07:00
Harshavardhana
e05c724553 fix: probe content-type before upload (#968) 2021-08-23 12:59:04 -05:00
Daniel Valdivia
deda36a8b5 Fix Add Buckets button on Object Browser (#970)
* Fix Add Buckets button on Object Browser

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

* Comments

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>

Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>
2021-08-23 10:23:36 -07:00
Daniel Valdivia
d32ab25ffd Add missing Delete Pods roles for console-sa (#969)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2021-08-22 22:14:01 -05:00
193 changed files with 6588 additions and 1209 deletions

View File

@@ -1,12 +0,0 @@
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: console-sa-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: console-sa-role
subjects:
- kind: ServiceAccount
name: console-sa
namespace: default

View File

@@ -1,222 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: console-sa-role
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- watch
- create
- list
- patch
- update
- deletecollection
- apiGroups:
- ""
resources:
- namespaces
- pods
- services
- events
- resourcequotas
- nodes
verbs:
- get
- watch
- create
- list
- patch
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- deletecollection
- list
- get
- watch
- update
- apiGroups:
- "storage.k8s.io"
resources:
- storageclasses
verbs:
- get
- watch
- create
- list
- patch
- apiGroups:
- apps
resources:
- statefulsets
- deployments
verbs:
- get
- create
- list
- patch
- watch
- update
- delete
- apiGroups:
- batch
resources:
- jobs
verbs:
- get
- create
- list
- patch
- watch
- update
- delete
- apiGroups:
- "certificates.k8s.io"
resources:
- "certificatesigningrequests"
- "certificatesigningrequests/approval"
- "certificatesigningrequests/status"
verbs:
- update
- create
- get
- apiGroups:
- minio.min.io
resources:
- "*"
verbs:
- "*"
- apiGroups:
- min.io
resources:
- "*"
verbs:
- "*"
- apiGroups:
- ""
resources:
- persistentvolumes
verbs:
- get
- list
- watch
- create
- delete
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- update
- apiGroups:
- ""
resources:
- events
verbs:
- create
- list
- watch
- update
- patch
- apiGroups:
- snapshot.storage.k8s.io
resources:
- volumesnapshots
verbs:
- get
- list
- apiGroups:
- snapshot.storage.k8s.io
resources:
- volumesnapshotcontents
verbs:
- get
- list
- apiGroups:
- storage.k8s.io
resources:
- csinodes
verbs:
- get
- list
- watch
- apiGroups:
- storage.k8s.io
resources:
- volumeattachments
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
- list
- watch
- create
- update
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- delete
- apiGroups:
- direct.csi.min.io
resources:
- volumes
verbs:
- get
- list
- watch
- create
- update
- delete
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- create
- update
- delete
- apiGroups:
- direct.csi.min.io
resources:
- directcsidrives
- directcsivolumes
verbs:
- get
- list
- watch
- create
- update
- delete
- apiGroups:
- ""
resources:
- pod
verbs:
- get
- list
- watch

View File

@@ -1,7 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: console-env
data:
CONSOLE_PORT: "9090"
CONSOLE_TLS_PORT: "9443"

View File

@@ -1,26 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: console
spec:
replicas: 1
selector:
matchLabels:
app: console
template:
metadata:
labels:
app: console
spec:
serviceAccountName: console-sa
containers:
- name: console
image: minio/console:v0.9.2
imagePullPolicy: "IfNotPresent"
args:
- server
ports:
- containerPort: 9090
name: http
- containerPort: 9433
name: https

View File

@@ -1,5 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: console-sa
namespace: default

View File

@@ -1,14 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: console
labels:
name: console
spec:
ports:
- port: 9090
name: http
- port: 9443
name: https
selector:
app: console

View File

@@ -1,11 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# beginning of customizations
resources:
- console-service-account.yaml
- console-cluster-role.yaml
- console-cluster-role-binding.yaml
- console-configmap.yaml
- console-service.yaml
- console-deployment.yaml
- https://github.com/minio/operator/?ref=v3.0.10

View File

@@ -19,7 +19,6 @@ rules:
- ""
resources:
- namespaces
- pods
- services
- events
- resourcequotas
@@ -30,6 +29,18 @@ rules:
- create
- list
- patch
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- watch
- create
- list
- patch
- delete
- deletecollection
- apiGroups:
- ""
resources:

View File

@@ -15,7 +15,7 @@ spec:
serviceAccountName: console-sa
containers:
- name: console
image: minio/console:v0.9.2
image: minio/console:v0.9.8
imagePullPolicy: "IfNotPresent"
env:
- name: CONSOLE_OPERATOR_MODE

View File

@@ -42,6 +42,9 @@ type AdminInfoResponse struct {
// objects
Objects int64 `json:"objects,omitempty"`
// servers
Servers []*ServerProperties `json:"servers"`
// usage
Usage int64 `json:"usage,omitempty"`
@@ -53,6 +56,10 @@ type AdminInfoResponse struct {
func (m *AdminInfoResponse) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateServers(formats); err != nil {
res = append(res, err)
}
if err := m.validateWidgets(formats); err != nil {
res = append(res, err)
}
@@ -63,6 +70,30 @@ func (m *AdminInfoResponse) Validate(formats strfmt.Registry) error {
return nil
}
func (m *AdminInfoResponse) validateServers(formats strfmt.Registry) error {
if swag.IsZero(m.Servers) { // not required
return nil
}
for i := 0; i < len(m.Servers); i++ {
if swag.IsZero(m.Servers[i]) { // not required
continue
}
if m.Servers[i] != nil {
if err := m.Servers[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("servers" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *AdminInfoResponse) validateWidgets(formats strfmt.Registry) error {
if swag.IsZero(m.Widgets) { // not required
return nil
@@ -91,6 +122,10 @@ func (m *AdminInfoResponse) validateWidgets(formats strfmt.Registry) error {
func (m *AdminInfoResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateServers(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateWidgets(ctx, formats); err != nil {
res = append(res, err)
}
@@ -101,6 +136,24 @@ func (m *AdminInfoResponse) ContextValidate(ctx context.Context, formats strfmt.
return nil
}
func (m *AdminInfoResponse) contextValidateServers(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Servers); i++ {
if m.Servers[i] != nil {
if err := m.Servers[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("servers" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *AdminInfoResponse) contextValidateWidgets(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Widgets); i++ {

View File

@@ -40,6 +40,9 @@ type LogSearchConfiguration struct {
// postgres image
PostgresImage string `json:"postgres_image,omitempty"`
// postgres init image
PostgresInitImage string `json:"postgres_init_image,omitempty"`
// storage class
StorageClass string `json:"storageClass,omitempty"`

67
models/prefix_wrapper.go Normal file
View File

@@ -0,0 +1,67 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// PrefixWrapper prefix wrapper
//
// swagger:model prefixWrapper
type PrefixWrapper struct {
// prefix
Prefix string `json:"prefix,omitempty"`
}
// Validate validates this prefix wrapper
func (m *PrefixWrapper) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this prefix wrapper based on context it is used
func (m *PrefixWrapper) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *PrefixWrapper) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *PrefixWrapper) UnmarshalBinary(b []byte) error {
var res PrefixWrapper
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@@ -25,6 +25,7 @@ package models
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
@@ -37,6 +38,15 @@ type PrometheusConfiguration struct {
// image
Image string `json:"image,omitempty"`
// init image
InitImage string `json:"init_image,omitempty"`
// security context
SecurityContext *SecurityContext `json:"securityContext,omitempty"`
// sidecar image
SidecarImage string `json:"sidecar_image,omitempty"`
// storage class
StorageClass string `json:"storageClass,omitempty"`
@@ -46,11 +56,60 @@ type PrometheusConfiguration struct {
// Validate validates this prometheus configuration
func (m *PrometheusConfiguration) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateSecurityContext(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
// ContextValidate validates this prometheus configuration based on context it is used
func (m *PrometheusConfiguration) validateSecurityContext(formats strfmt.Registry) error {
if swag.IsZero(m.SecurityContext) { // not required
return nil
}
if m.SecurityContext != nil {
if err := m.SecurityContext.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("securityContext")
}
return err
}
}
return nil
}
// ContextValidate validate this prometheus configuration based on the context it is used
func (m *PrometheusConfiguration) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateSecurityContext(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *PrometheusConfiguration) contextValidateSecurityContext(ctx context.Context, formats strfmt.Registry) error {
if m.SecurityContext != nil {
if err := m.SecurityContext.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("securityContext")
}
return err
}
}
return nil
}

139
models/security_context.go Normal file
View File

@@ -0,0 +1,139 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// SecurityContext security context
//
// swagger:model securityContext
type SecurityContext struct {
// fs group
// Required: true
FsGroup *int64 `json:"fsGroup"`
// run as group
// Required: true
RunAsGroup *int64 `json:"runAsGroup"`
// run as non root
// Required: true
RunAsNonRoot *bool `json:"runAsNonRoot"`
// run as user
// Required: true
RunAsUser *int64 `json:"runAsUser"`
}
// Validate validates this security context
func (m *SecurityContext) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateFsGroup(formats); err != nil {
res = append(res, err)
}
if err := m.validateRunAsGroup(formats); err != nil {
res = append(res, err)
}
if err := m.validateRunAsNonRoot(formats); err != nil {
res = append(res, err)
}
if err := m.validateRunAsUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *SecurityContext) validateFsGroup(formats strfmt.Registry) error {
if err := validate.Required("fsGroup", "body", m.FsGroup); err != nil {
return err
}
return nil
}
func (m *SecurityContext) validateRunAsGroup(formats strfmt.Registry) error {
if err := validate.Required("runAsGroup", "body", m.RunAsGroup); err != nil {
return err
}
return nil
}
func (m *SecurityContext) validateRunAsNonRoot(formats strfmt.Registry) error {
if err := validate.Required("runAsNonRoot", "body", m.RunAsNonRoot); err != nil {
return err
}
return nil
}
func (m *SecurityContext) validateRunAsUser(formats strfmt.Registry) error {
if err := validate.Required("runAsUser", "body", m.RunAsUser); err != nil {
return err
}
return nil
}
// ContextValidate validates this security context based on context it is used
func (m *SecurityContext) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *SecurityContext) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *SecurityContext) UnmarshalBinary(b []byte) error {
var res SecurityContext
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

94
models/server_drives.go Normal file
View File

@@ -0,0 +1,94 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// ServerDrives server drives
//
// swagger:model serverDrives
type ServerDrives struct {
// available space
AvailableSpace int64 `json:"availableSpace,omitempty"`
// drive path
DrivePath string `json:"drivePath,omitempty"`
// endpoint
Endpoint string `json:"endpoint,omitempty"`
// healing
Healing bool `json:"healing,omitempty"`
// model
Model string `json:"model,omitempty"`
// root disk
RootDisk bool `json:"rootDisk,omitempty"`
// state
State string `json:"state,omitempty"`
// total space
TotalSpace int64 `json:"totalSpace,omitempty"`
// used space
UsedSpace int64 `json:"usedSpace,omitempty"`
// uuid
UUID string `json:"uuid,omitempty"`
}
// Validate validates this server drives
func (m *ServerDrives) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this server drives based on context it is used
func (m *ServerDrives) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ServerDrives) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ServerDrives) UnmarshalBinary(b []byte) error {
var res ServerDrives
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

150
models/server_properties.go Normal file
View File

@@ -0,0 +1,150 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// ServerProperties server properties
//
// swagger:model serverProperties
type ServerProperties struct {
// commit ID
CommitID string `json:"commitID,omitempty"`
// drives
Drives []*ServerDrives `json:"drives"`
// endpoint
Endpoint string `json:"endpoint,omitempty"`
// network
Network map[string]string `json:"network,omitempty"`
// pool number
PoolNumber int64 `json:"poolNumber,omitempty"`
// state
State string `json:"state,omitempty"`
// uptime
Uptime int64 `json:"uptime,omitempty"`
// version
Version string `json:"version,omitempty"`
}
// Validate validates this server properties
func (m *ServerProperties) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateDrives(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ServerProperties) validateDrives(formats strfmt.Registry) error {
if swag.IsZero(m.Drives) { // not required
return nil
}
for i := 0; i < len(m.Drives); i++ {
if swag.IsZero(m.Drives[i]) { // not required
continue
}
if m.Drives[i] != nil {
if err := m.Drives[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("drives" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// ContextValidate validate this server properties based on the context it is used
func (m *ServerProperties) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateDrives(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ServerProperties) contextValidateDrives(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Drives); i++ {
if m.Drives[i] != nil {
if err := m.Drives[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("drives" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ServerProperties) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ServerProperties) UnmarshalBinary(b []byte) error {
var res ServerProperties
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@@ -0,0 +1,73 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// ServiceAccountRequestCreds service account request creds
//
// swagger:model serviceAccountRequestCreds
type ServiceAccountRequestCreds struct {
// access key
AccessKey string `json:"accessKey,omitempty"`
// policy to be applied to the Service Account if any
Policy string `json:"policy,omitempty"`
// secret key
SecretKey string `json:"secretKey,omitempty"`
}
// Validate validates this service account request creds
func (m *ServiceAccountRequestCreds) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this service account request creds based on context it is used
func (m *ServiceAccountRequestCreds) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ServiceAccountRequestCreds) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ServiceAccountRequestCreds) UnmarshalBinary(b []byte) error {
var res ServiceAccountRequestCreds
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@@ -37,6 +37,9 @@ type User struct {
// access key
AccessKey string `json:"accessKey,omitempty"`
// has policy
HasPolicy bool `json:"hasPolicy,omitempty"`
// member of
MemberOf []string `json:"memberOf"`

View File

@@ -18,10 +18,9 @@ package operatorapi
// list of all console environment constants
const (
ConsoleSubnetLicense = "CONSOLE_SUBNET_LICENSE"
ConsoleOperatorSAToken = "CONSOLE_OPERATOR_SA_TOKEN"
ConsoleOperatorConsoleImage = "CONSOLE_OPERATOR_CONSOLE_IMAGE"
MinIOSubnetLicense = "MINIO_SUBNET_LICENSE"
ConsoleSubnetLicense = "CONSOLE_SUBNET_LICENSE"
ConsoleOperatorSAToken = "CONSOLE_OPERATOR_SA_TOKEN"
MinIOSubnetLicense = "MINIO_SUBNET_LICENSE"
// Constants for prometheus annotations
prometheusPath = "prometheus.io/path"
@@ -31,8 +30,7 @@ const (
// Image versions
const (
KESImageVersion = "minio/kes:v0.15.1"
ConsoleImageDefaultVersion = "minio/console:v0.9.2"
KESImageVersion = "minio/kes:v0.16.1"
)
// K8s

View File

@@ -2058,6 +2058,9 @@ func init() {
"postgres_image": {
"type": "string"
},
"postgres_init_image": {
"type": "string"
},
"storageClass": {
"type": "string",
"default": ""
@@ -2611,6 +2614,16 @@ func init() {
"image": {
"type": "string"
},
"init_image": {
"type": "string"
},
"securityContext": {
"type": "object",
"$ref": "#/definitions/securityContext"
},
"sidecar_image": {
"type": "string"
},
"storageClass": {
"type": "string",
"default": ""
@@ -2680,6 +2693,32 @@ func init() {
}
}
},
"securityContext": {
"type": "object",
"required": [
"runAsUser",
"runAsGroup",
"runAsNonRoot",
"fsGroup"
],
"properties": {
"fsGroup": {
"type": "integer",
"format": "int64"
},
"runAsGroup": {
"type": "integer",
"format": "int64"
},
"runAsNonRoot": {
"type": "boolean"
},
"runAsUser": {
"type": "integer",
"format": "int64"
}
}
},
"subscriptionValidateRequest": {
"type": "object",
"properties": {
@@ -5725,6 +5764,9 @@ func init() {
"postgres_image": {
"type": "string"
},
"postgres_init_image": {
"type": "string"
},
"storageClass": {
"type": "string",
"default": ""
@@ -6143,6 +6185,16 @@ func init() {
"image": {
"type": "string"
},
"init_image": {
"type": "string"
},
"securityContext": {
"type": "object",
"$ref": "#/definitions/securityContext"
},
"sidecar_image": {
"type": "string"
},
"storageClass": {
"type": "string",
"default": ""
@@ -6212,6 +6264,32 @@ func init() {
}
}
},
"securityContext": {
"type": "object",
"required": [
"runAsUser",
"runAsGroup",
"runAsNonRoot",
"fsGroup"
],
"properties": {
"fsGroup": {
"type": "integer",
"format": "int64"
},
"runAsGroup": {
"type": "integer",
"format": "int64"
},
"runAsNonRoot": {
"type": "boolean"
},
"runAsUser": {
"type": "integer",
"format": "int64"
}
}
},
"subscriptionValidateRequest": {
"type": "object",
"properties": {

View File

@@ -264,7 +264,14 @@ func getDeleteTenantResponse(session *models.Principal, params operator_api.Dele
if params.Body != nil {
deleteTenantPVCs = params.Body.DeletePvcs
}
if err = deleteTenantAction(context.Background(), opClient, clientset.CoreV1(), params.Namespace, params.Tenant, deleteTenantPVCs); err != nil {
tenant, err := opClient.TenantGet(params.HTTPRequest.Context(), params.Namespace, params.Tenant, metav1.GetOptions{})
if err != nil {
return prepareError(err)
}
tenant.EnsureDefaults()
if err = deleteTenantAction(params.HTTPRequest.Context(), opClient, clientset.CoreV1(), tenant, deleteTenantPVCs); err != nil {
return prepareError(err)
}
return nil
@@ -277,10 +284,10 @@ func deleteTenantAction(
ctx context.Context,
operatorClient OperatorClientI,
clientset v1.CoreV1Interface,
namespace, tenantName string,
tenant *miniov2.Tenant,
deletePvcs bool) error {
err := operatorClient.TenantDelete(ctx, namespace, tenantName, metav1.DeleteOptions{})
err := operatorClient.TenantDelete(ctx, tenant.Namespace, tenant.Name, metav1.DeleteOptions{})
if err != nil {
// try to delete pvc even if the tenant doesn't exist anymore but only if deletePvcs is set to true,
// else, we return the error
@@ -290,15 +297,37 @@ func deleteTenantAction(
}
if deletePvcs {
// delete MinIO PVCs
opts := metav1.ListOptions{
LabelSelector: fmt.Sprintf("%s=%s", miniov2.TenantLabel, tenantName),
LabelSelector: fmt.Sprintf("%s=%s", miniov2.TenantLabel, tenant.Name),
}
err = clientset.PersistentVolumeClaims(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts)
err = clientset.PersistentVolumeClaims(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts)
if err != nil {
return err
}
// delete postgres PVCs
logOpts := metav1.ListOptions{
LabelSelector: fmt.Sprintf("%s=%s", miniov2.LogDBInstanceLabel, tenant.LogStatefulsetName()),
}
err := clientset.PersistentVolumeClaims(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, logOpts)
if err != nil {
return err
}
// delete prometheus PVCs
promOpts := metav1.ListOptions{
LabelSelector: fmt.Sprintf("%s=%s", miniov2.PrometheusInstanceLabel, tenant.PrometheusStatefulsetName()),
}
if err := clientset.PersistentVolumeClaims(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, promOpts); err != nil {
return err
}
// delete all tenant's secrets only if deletePvcs = true
return clientset.Secrets(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts)
return clientset.Secrets(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts)
}
return nil
}
@@ -369,11 +398,11 @@ func getTenantCreds(ctx context.Context, client K8sClientI, tenant *miniov2.Tena
}
func getTenant(ctx context.Context, operatorClient OperatorClientI, namespace, tenantName string) (*miniov2.Tenant, error) {
minInst, err := operatorClient.TenantGet(ctx, namespace, tenantName, metav1.GetOptions{})
tenant, err := operatorClient.TenantGet(ctx, namespace, tenantName, metav1.GetOptions{})
if err != nil {
return nil, err
}
return minInst, nil
return tenant, nil
}
func isPrometheusEnabled(annotations map[string]string) bool {
@@ -1199,6 +1228,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
logSearchStorageClass := "" // Default is ""
logSearchImage := ""
logSearchPgImage := ""
logSearchPgInitImage := ""
if tenantReq.LogSearchConfiguration != nil {
if tenantReq.LogSearchConfiguration.StorageSize != nil {
@@ -1216,6 +1246,9 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
if tenantReq.LogSearchConfiguration.PostgresImage != "" {
logSearchPgImage = tenantReq.LogSearchConfiguration.PostgresImage
}
if tenantReq.LogSearchConfiguration.PostgresInitImage != "" {
logSearchPgInitImage = tenantReq.LogSearchConfiguration.PostgresInitImage
}
}
logSearchDiskSpace := resource.NewQuantity(diskSpaceFromAPI, resource.DecimalExponent)
@@ -1247,16 +1280,22 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
},
},
}
// set log search images if any
if logSearchImage != "" {
minInst.Spec.Log.Image = logSearchImage
}
if logSearchPgImage != "" {
minInst.Spec.Log.Db.Image = logSearchPgImage
}
if logSearchPgInitImage != "" {
minInst.Spec.Log.Db.InitImage = logSearchPgInitImage
}
prometheusDiskSpace := 5 // Default is 5 by API
prometheusStorageClass := "" // Default is ""
prometheusImage := "" // Default is ""
prometheusDiskSpace := 5 // Default is 5 by API
prometheusStorageClass := "" // Default is ""
prometheusImage := "" // Default is ""
prometheusSidecardImage := "" // Default is ""
prometheusInitImage := "" // Default is ""
if tenantReq.PrometheusConfiguration != nil {
if tenantReq.PrometheusConfiguration.StorageSize != nil {
@@ -1274,6 +1313,12 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
if tenantReq.PrometheusConfiguration.Image != "" {
prometheusImage = tenantReq.PrometheusConfiguration.Image
}
if tenantReq.PrometheusConfiguration.SidecarImage != "" {
prometheusSidecardImage = tenantReq.PrometheusConfiguration.SidecarImage
}
if tenantReq.PrometheusConfiguration.InitImage != "" {
prometheusInitImage = tenantReq.PrometheusConfiguration.InitImage
}
}
minInst.Spec.Prometheus = &miniov2.PrometheusConfig{
@@ -1283,6 +1328,22 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
if prometheusImage != "" {
minInst.Spec.Prometheus.Image = prometheusImage
}
if prometheusSidecardImage != "" {
minInst.Spec.Prometheus.SideCarImage = prometheusSidecardImage
}
if prometheusInitImage != "" {
minInst.Spec.Prometheus.InitImage = prometheusInitImage
}
// if security context for prometheus is present, configure it.
if tenantReq.PrometheusConfiguration != nil && tenantReq.PrometheusConfiguration.SecurityContext != nil {
sc := tenantReq.PrometheusConfiguration.SecurityContext
minInst.Spec.Prometheus.SecurityContext = &corev1.PodSecurityContext{
RunAsUser: sc.RunAsUser,
RunAsGroup: sc.RunAsGroup,
RunAsNonRoot: sc.RunAsNonRoot,
FSGroup: sc.FsGroup,
}
}
// expose services
minInst.Spec.ExposeServices = &miniov2.ExposeServices{

View File

@@ -501,8 +501,7 @@ func Test_deleteTenantAction(t *testing.T) {
type args struct {
ctx context.Context
operatorClient OperatorClientI
nameSpace string
tenantName string
tenant *miniov2.Tenant
deletePvcs bool
objs []runtime.Object
mockTenantDelete func(ctx context.Context, namespace string, tenantName string, options metav1.DeleteOptions) error
@@ -517,9 +516,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "default",
tenantName: "minio-tenant",
deletePvcs: false,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "default",
Namespace: "minio-tenant",
},
},
deletePvcs: false,
mockTenantDelete: func(ctx context.Context, namespace string, tenantName string, options metav1.DeleteOptions) error {
return nil
},
@@ -531,9 +534,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "default",
tenantName: "minio-tenant",
deletePvcs: false,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "default",
Namespace: "minio-tenant",
},
},
deletePvcs: false,
mockTenantDelete: func(ctx context.Context, namespace string, tenantName string, options metav1.DeleteOptions) error {
return errors.New("something happened")
},
@@ -546,9 +553,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "minio-tenant",
tenantName: "tenant1",
deletePvcs: true,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "tenant1",
Namespace: "minio-tenant",
},
},
deletePvcs: true,
objs: []runtime.Object{
&corev1.PersistentVolumeClaim{
ObjectMeta: metav1.ObjectMeta{
@@ -573,9 +584,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "minio-tenant",
tenantName: "tenant1",
deletePvcs: false,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "tenant1",
Namespace: "minio-tenant",
},
},
deletePvcs: false,
objs: []runtime.Object{
&corev1.PersistentVolumeClaim{
ObjectMeta: metav1.ObjectMeta{
@@ -600,9 +615,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "minio-tenant",
tenantName: "tenant1",
deletePvcs: true,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "tenant1",
Namespace: "minio-tenant",
},
},
deletePvcs: true,
objs: []runtime.Object{
&corev1.PersistentVolumeClaim{
ObjectMeta: metav1.ObjectMeta{
@@ -627,9 +646,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "minio-tenant",
tenantName: "tenant1",
deletePvcs: true,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "tenant1",
Namespace: "minio-tenant",
},
},
deletePvcs: true,
objs: []runtime.Object{
&corev1.PersistentVolumeClaim{
ObjectMeta: metav1.ObjectMeta{
@@ -655,9 +678,13 @@ func Test_deleteTenantAction(t *testing.T) {
args: args{
ctx: context.Background(),
operatorClient: opClient,
nameSpace: "minio-tenant",
tenantName: "tenant1",
deletePvcs: false,
tenant: &miniov2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "tenant1",
Namespace: "minio-tenant",
},
},
deletePvcs: false,
objs: []runtime.Object{
&corev1.PersistentVolumeClaim{
ObjectMeta: metav1.ObjectMeta{
@@ -681,7 +708,7 @@ func Test_deleteTenantAction(t *testing.T) {
opClientTenantDeleteMock = tt.args.mockTenantDelete
kubeClient := fake.NewSimpleClientset(tt.args.objs...)
t.Run(tt.name, func(t *testing.T) {
if err := deleteTenantAction(tt.args.ctx, tt.args.operatorClient, kubeClient.CoreV1(), tt.args.nameSpace, tt.args.tenantName, tt.args.deletePvcs); (err != nil) != tt.wantErr {
if err := deleteTenantAction(tt.args.ctx, tt.args.operatorClient, kubeClient.CoreV1(), tt.args.tenant, tt.args.deletePvcs); (err != nil) != tt.wantErr {
t.Errorf("deleteTenantAction() error = %v, wantErr %v", err, tt.wantErr)
}
})

View File

@@ -87,7 +87,7 @@ func serveProxy(responseWriter http.ResponseWriter, req *http.Request) {
tenantSchema := "http"
tenantPort := fmt.Sprintf(":%d", v2.ConsolePort)
if tenant.AutoCert() {
if tenant.AutoCert() || tenant.ExternalCert() {
tenantSchema = "https"
tenantPort = fmt.Sprintf(":%d", v2.ConsoleTLSPort)
}

View File

@@ -1,23 +1,23 @@
{
"files": {
"main.css": "./static/css/main.8cfac526.chunk.css",
"main.js": "./static/js/main.4a80d540.chunk.js",
"main.js.map": "./static/js/main.4a80d540.chunk.js.map",
"main.js": "./static/js/main.ab436313.chunk.js",
"main.js.map": "./static/js/main.ab436313.chunk.js.map",
"runtime-main.js": "./static/js/runtime-main.3fe0c1ac.js",
"runtime-main.js.map": "./static/js/runtime-main.3fe0c1ac.js.map",
"static/css/2.c018cba7.chunk.css": "./static/css/2.c018cba7.chunk.css",
"static/js/2.7cf3e66f.chunk.js": "./static/js/2.7cf3e66f.chunk.js",
"static/js/2.7cf3e66f.chunk.js.map": "./static/js/2.7cf3e66f.chunk.js.map",
"static/css/2.c5a51b70.chunk.css": "./static/css/2.c5a51b70.chunk.css",
"static/js/2.732d4e60.chunk.js": "./static/js/2.732d4e60.chunk.js",
"static/js/2.732d4e60.chunk.js.map": "./static/js/2.732d4e60.chunk.js.map",
"index.html": "./index.html",
"static/css/2.c018cba7.chunk.css.map": "./static/css/2.c018cba7.chunk.css.map",
"static/css/2.c5a51b70.chunk.css.map": "./static/css/2.c5a51b70.chunk.css.map",
"static/css/main.8cfac526.chunk.css.map": "./static/css/main.8cfac526.chunk.css.map",
"static/js/2.7cf3e66f.chunk.js.LICENSE.txt": "./static/js/2.7cf3e66f.chunk.js.LICENSE.txt"
"static/js/2.732d4e60.chunk.js.LICENSE.txt": "./static/js/2.732d4e60.chunk.js.LICENSE.txt"
},
"entrypoints": [
"static/js/runtime-main.3fe0c1ac.js",
"static/css/2.c018cba7.chunk.css",
"static/js/2.7cf3e66f.chunk.js",
"static/css/2.c5a51b70.chunk.css",
"static/js/2.732d4e60.chunk.js",
"static/css/main.8cfac526.chunk.css",
"static/js/main.4a80d540.chunk.js"
"static/js/main.ab436313.chunk.js"
]
}

View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.141" height="23.33" viewBox="0 0 28.141 23.33">
<g id="object-browser-folder-icn" transform="translate(3875.698 1391.955)">
<g id="Grupo_1541" data-name="Grupo 1541" transform="translate(-3866.02 -1382.94)">
<circle id="Elipse_57" data-name="Elipse 57" cx="1.268" cy="1.268" r="1.268" transform="translate(4.275 5.49) rotate(-10.901)"/>
<rect id="Rectángulo_805" data-name="Rectángulo 805" width="2.707" height="2.295" rx="1.148" transform="translate(1.601 2.812)"/>
<path id="Trazado_365" data-name="Trazado 365" d="M-3848.674-1356.694a.267.267,0,0,0-.463,0l-1,1.735a.267.267,0,0,0,.231.4h2a.267.267,0,0,0,.232-.4Z" transform="translate(3851.773 1363.331)"/>
<path id="Trazado_366" data-name="Trazado 366" d="M-3845.066-1368.444a16.588,16.588,0,0,0-.021-1.927,1.119,1.119,0,0,0-.717-1.042,1.734,1.734,0,0,0-.2-.058,4.224,4.224,0,0,0-.807-.073c-.472-.014-.943.015-1.415.013-.945,0-1.889.013-2.834.017h-2.037a.694.694,0,0,0-.693.693v8.874a.694.694,0,0,0,.693.693h7.34a.694.694,0,0,0,.693-.693v-4.421C-3845.065-1367.059-3845.083-1367.754-3845.066-1368.444Zm-.842,5.871a.6.6,0,0,1-.6.6h-5.967a.6.6,0,0,1-.6-.6v-7.621a.6.6,0,0,1,.6-.6h4v1.024a1.52,1.52,0,0,0,1.518,1.518h1.043Zm0-6.34h-1.043a.857.857,0,0,1-.856-.856v-1.024h1.3a.6.6,0,0,1,.6.6Z" transform="translate(3853.792 1371.548)"/>
</g>
<path id="Trazado_367" data-name="Trazado 367" d="M-3864.516-1389.746c.726,0,1.5,2.076,2.283,2.076h9.68a1.041,1.041,0,0,1,1.038,1.038v.519h-19.748v-2.595h-.026a1.041,1.041,0,0,1,1.038-1.038h5.735m13.674,4.9a1.079,1.079,0,0,1,1.076,1.076l-1.1,11.862a1.079,1.079,0,0,1-1.076,1.076h-19.393a1.079,1.079,0,0,1-1.076-1.076l-1.076-11.862a1.079,1.079,0,0,1,1.076-1.076h21.571m-13.674-7.108h-5.735a3.25,3.25,0,0,0-3.247,3.247,2.22,2.22,0,0,0,.026.339v1.487a3.291,3.291,0,0,0-2.227,3.11c0,.067,0,.133.009.2l1.069,11.788a3.288,3.288,0,0,0,3.282,3.158h19.393a3.288,3.288,0,0,0,3.282-3.155l1.1-11.786c.006-.068.009-.136.009-.2a3.288,3.288,0,0,0-1.749-2.9,3.251,3.251,0,0,0-3.247-3.2h-8.959l-.124-.167a3.694,3.694,0,0,0-2.88-1.909Z" transform="translate(0 0)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,6 @@
<svg id="object-browser-icn" xmlns="http://www.w3.org/2000/svg" width="11.502" height="13.542" viewBox="0 0 11.502 13.542">
<circle id="Elipse_55" data-name="Elipse 55" cx="1.667" cy="1.667" r="1.667" transform="translate(5.623 7.221) rotate(-10.901)"/>
<rect id="Rectángulo_797" data-name="Rectángulo 797" width="3.561" height="3.019" rx="1.51" transform="translate(2.105 3.699)"/>
<path id="Trazado_322" data-name="Trazado 322" d="M-4332.738-1202.411a.352.352,0,0,0-.609,0l-1.317,2.282a.352.352,0,0,0,.3.527h2.635a.352.352,0,0,0,.3-.527Z" transform="translate(4336.814 1211.141)"/>
<path id="Trazado_323" data-name="Trazado 323" d="M-4328.313-1219.174a22.083,22.083,0,0,0-.027-2.536,1.472,1.472,0,0,0-.943-1.371,2.294,2.294,0,0,0-.266-.077,5.586,5.586,0,0,0-1.063-.095c-.62-.018-1.24.019-1.86.017-1.243-.005-2.486.017-3.729.022h-2.68a.913.913,0,0,0-.912.912v11.674a.913.913,0,0,0,.912.912h9.656a.912.912,0,0,0,.912-.912v-5.816C-4328.312-1217.353-4328.335-1218.266-4328.313-1219.174Zm-1.107,7.722a.788.788,0,0,1-.787.788h-7.849a.787.787,0,0,1-.787-.788v-10.025a.787.787,0,0,1,.787-.788h5.266v1.347a2,2,0,0,0,2,2h1.373Zm0-8.339h-1.373a1.128,1.128,0,0,1-1.126-1.127v-1.347h1.712a.788.788,0,0,1,.787.788Z" transform="translate(4339.792 1223.257)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="9.836" height="12.646" viewBox="0 0 9.836 12.646">
<g id="trash-icn" transform="translate(2222 1227)">
<path id="Trazado_359" data-name="Trazado 359" d="M-2212.473-1226.3h-2.5v-.395a.308.308,0,0,0-.308-.308h-3.6a.308.308,0,0,0-.308.308v.395h-2.5a.309.309,0,0,0-.309.309v.787a.309.309,0,0,0,.309.309h9.218a.309.309,0,0,0,.309-.309v-.787A.309.309,0,0,0-2212.473-1226.3Z"/>
<path id="Trazado_360" data-name="Trazado 360" d="M-2221-1214.585a1.425,1.425,0,0,0,1.42,1.421h5.59a1.425,1.425,0,0,0,1.42-1.421V-1223H-2221Z" transform="translate(-0.297 -1.19)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 623 B

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="MinIO Console"/><link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;500;700;900&display=swap" rel="stylesheet"/><link href="./styles/root-styles.css" rel="stylesheet"/><link rel="apple-touch-icon" sizes="180x180" href="./apple-icon-180x180.png"/><link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png"/><link rel="icon" type="image/png" sizes="96x96" href="./favicon-96x96.png"/><link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png"/><link rel="manifest" href="./manifest.json"/><link rel="mask-icon" href="./safari-pinned-tab.svg" color="#3a4e54"/><title>MinIO Console</title><link href="./static/css/2.c018cba7.chunk.css" rel="stylesheet"><link href="./static/css/main.8cfac526.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="loader-block"><svg class="loader-svg-container" viewBox="22 22 44 44"><circle class="loader-style MuiCircularProgress-circle MuiCircularProgress-circleIndeterminate" cx="44" cy="44" r="20.2" fill="none" stroke-width="3.6"></circle></svg></div></div><script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="./";var i=this["webpackJsonpportal-ui"]=this["webpackJsonpportal-ui"]||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var f=a;t()}([])</script><script src="./static/js/2.7cf3e66f.chunk.js"></script><script src="./static/js/main.4a80d540.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="MinIO Console"/><link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;500;700;900&display=swap" rel="stylesheet"/><link href="./styles/root-styles.css" rel="stylesheet"/><link rel="apple-touch-icon" sizes="180x180" href="./apple-icon-180x180.png"/><link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png"/><link rel="icon" type="image/png" sizes="96x96" href="./favicon-96x96.png"/><link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png"/><link rel="manifest" href="./manifest.json"/><link rel="mask-icon" href="./safari-pinned-tab.svg" color="#3a4e54"/><title>MinIO Console</title><link href="./static/css/2.c5a51b70.chunk.css" rel="stylesheet"><link href="./static/css/main.8cfac526.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="loader-block"><svg class="loader-svg-container" viewBox="22 22 44 44"><circle class="loader-style MuiCircularProgress-circle MuiCircularProgress-circleIndeterminate" cx="44" cy="44" r="20.2" fill="none" stroke-width="3.6"></circle></svg></div></div><script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="./";var i=this["webpackJsonpportal-ui"]=this["webpackJsonpportal-ui"]||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var f=a;t()}([])</script><script src="./static/js/2.732d4e60.chunk.js"></script><script src="./static/js/main.ab436313.chunk.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -23,7 +23,7 @@
"@types/react-router-dom": "^5.1.2",
"@types/react-virtualized": "^9.21.10",
"@types/recharts": "^1.8.19",
"@types/superagent": "^4.1.4",
"@types/superagent": "^4.1.12",
"@types/webpack-env": "^1.14.1",
"@types/websocket": "^1.0.0",
"ansi-to-react": "^6.0.5",
@@ -52,7 +52,7 @@
"recharts": "^2.0.3",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"superagent": "^5.1.0",
"superagent": "^6.1.0",
"typeface-roboto": "^0.0.75",
"use-debounce": "^5.0.1",
"websocket": "^1.0.31"

View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.141" height="23.33" viewBox="0 0 28.141 23.33">
<g id="object-browser-folder-icn" transform="translate(3875.698 1391.955)">
<g id="Grupo_1541" data-name="Grupo 1541" transform="translate(-3866.02 -1382.94)">
<circle id="Elipse_57" data-name="Elipse 57" cx="1.268" cy="1.268" r="1.268" transform="translate(4.275 5.49) rotate(-10.901)"/>
<rect id="Rectángulo_805" data-name="Rectángulo 805" width="2.707" height="2.295" rx="1.148" transform="translate(1.601 2.812)"/>
<path id="Trazado_365" data-name="Trazado 365" d="M-3848.674-1356.694a.267.267,0,0,0-.463,0l-1,1.735a.267.267,0,0,0,.231.4h2a.267.267,0,0,0,.232-.4Z" transform="translate(3851.773 1363.331)"/>
<path id="Trazado_366" data-name="Trazado 366" d="M-3845.066-1368.444a16.588,16.588,0,0,0-.021-1.927,1.119,1.119,0,0,0-.717-1.042,1.734,1.734,0,0,0-.2-.058,4.224,4.224,0,0,0-.807-.073c-.472-.014-.943.015-1.415.013-.945,0-1.889.013-2.834.017h-2.037a.694.694,0,0,0-.693.693v8.874a.694.694,0,0,0,.693.693h7.34a.694.694,0,0,0,.693-.693v-4.421C-3845.065-1367.059-3845.083-1367.754-3845.066-1368.444Zm-.842,5.871a.6.6,0,0,1-.6.6h-5.967a.6.6,0,0,1-.6-.6v-7.621a.6.6,0,0,1,.6-.6h4v1.024a1.52,1.52,0,0,0,1.518,1.518h1.043Zm0-6.34h-1.043a.857.857,0,0,1-.856-.856v-1.024h1.3a.6.6,0,0,1,.6.6Z" transform="translate(3853.792 1371.548)"/>
</g>
<path id="Trazado_367" data-name="Trazado 367" d="M-3864.516-1389.746c.726,0,1.5,2.076,2.283,2.076h9.68a1.041,1.041,0,0,1,1.038,1.038v.519h-19.748v-2.595h-.026a1.041,1.041,0,0,1,1.038-1.038h5.735m13.674,4.9a1.079,1.079,0,0,1,1.076,1.076l-1.1,11.862a1.079,1.079,0,0,1-1.076,1.076h-19.393a1.079,1.079,0,0,1-1.076-1.076l-1.076-11.862a1.079,1.079,0,0,1,1.076-1.076h21.571m-13.674-7.108h-5.735a3.25,3.25,0,0,0-3.247,3.247,2.22,2.22,0,0,0,.026.339v1.487a3.291,3.291,0,0,0-2.227,3.11c0,.067,0,.133.009.2l1.069,11.788a3.288,3.288,0,0,0,3.282,3.158h19.393a3.288,3.288,0,0,0,3.282-3.155l1.1-11.786c.006-.068.009-.136.009-.2a3.288,3.288,0,0,0-1.749-2.9,3.251,3.251,0,0,0-3.247-3.2h-8.959l-.124-.167a3.694,3.694,0,0,0-2.88-1.909Z" transform="translate(0 0)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,6 @@
<svg id="object-browser-icn" xmlns="http://www.w3.org/2000/svg" width="11.502" height="13.542" viewBox="0 0 11.502 13.542">
<circle id="Elipse_55" data-name="Elipse 55" cx="1.667" cy="1.667" r="1.667" transform="translate(5.623 7.221) rotate(-10.901)"/>
<rect id="Rectángulo_797" data-name="Rectángulo 797" width="3.561" height="3.019" rx="1.51" transform="translate(2.105 3.699)"/>
<path id="Trazado_322" data-name="Trazado 322" d="M-4332.738-1202.411a.352.352,0,0,0-.609,0l-1.317,2.282a.352.352,0,0,0,.3.527h2.635a.352.352,0,0,0,.3-.527Z" transform="translate(4336.814 1211.141)"/>
<path id="Trazado_323" data-name="Trazado 323" d="M-4328.313-1219.174a22.083,22.083,0,0,0-.027-2.536,1.472,1.472,0,0,0-.943-1.371,2.294,2.294,0,0,0-.266-.077,5.586,5.586,0,0,0-1.063-.095c-.62-.018-1.24.019-1.86.017-1.243-.005-2.486.017-3.729.022h-2.68a.913.913,0,0,0-.912.912v11.674a.913.913,0,0,0,.912.912h9.656a.912.912,0,0,0,.912-.912v-5.816C-4328.312-1217.353-4328.335-1218.266-4328.313-1219.174Zm-1.107,7.722a.788.788,0,0,1-.787.788h-7.849a.787.787,0,0,1-.787-.788v-10.025a.787.787,0,0,1,.787-.788h5.266v1.347a2,2,0,0,0,2,2h1.373Zm0-8.339h-1.373a1.128,1.128,0,0,1-1.126-1.127v-1.347h1.712a.788.788,0,0,1,.787.788Z" transform="translate(4339.792 1223.257)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="9.836" height="12.646" viewBox="0 0 9.836 12.646">
<g id="trash-icn" transform="translate(2222 1227)">
<path id="Trazado_359" data-name="Trazado 359" d="M-2212.473-1226.3h-2.5v-.395a.308.308,0,0,0-.308-.308h-3.6a.308.308,0,0,0-.308.308v.395h-2.5a.309.309,0,0,0-.309.309v.787a.309.309,0,0,0,.309.309h9.218a.309.309,0,0,0,.309-.309v-.787A.309.309,0,0,0-2212.473-1226.3Z"/>
<path id="Trazado_360" data-name="Trazado 360" d="M-2221-1214.585a1.425,1.425,0,0,0,1.42,1.421h5.59a1.425,1.425,0,0,0,1.42-1.421V-1223H-2221Z" transform="translate(-0.297 -1.19)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 623 B

View File

@@ -22,7 +22,7 @@ import { ErrorResponseHandler } from "../types";
export class API {
invoke(method: string, url: string, data?: object) {
const targetURL = `${baseUrl}${url}`.replaceAll("//", "/");
const targetURL = `${baseUrl}${url}`.replace(/\/\//g, "/");
return request(method, targetURL)
.send(data)
.then((res) => res.body)

View File

@@ -25,7 +25,6 @@ export interface ITenant {
deletion_date: string;
currentState: string;
image: string;
console_image: string;
instance_count: string;
name: string;
namespace?: string;
@@ -59,7 +58,6 @@ export interface ITenantCreator {
access_keys: string[];
secret_keys: string[];
image: string;
console_image: string;
expose_minio: boolean;
expose_console: boolean;
pools: IPoolModel[];
@@ -371,12 +369,15 @@ export interface LogSearchConfiguration {
storageSize?: number;
image: string;
postgres_image: string;
postgres_init_image: string;
}
export interface PrometheusConfiguration {
storageClass?: string;
storageSize?: number;
image: string;
sidecar_image: string;
init_image: string;
}
export interface AffinityConfiguration {

View File

@@ -0,0 +1,95 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const AccountIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g transform="translate(4343.797 1174.239)">
<path
data-name="Trazado 391"
d="M-4243.896-1049.602c26.662 0 48.334-22.564 48.334-50.314s-21.672-50.318-48.334-50.318c-26.633 0-48.32 22.571-48.32 50.318s21.687 50.314 48.32 50.314zm0-84.9c18.283 0 33.168 15.521 33.168 34.59s-14.885 34.587-33.168 34.587-33.133-15.518-33.133-34.587 14.863-34.598 33.133-34.598z"
/>
<path
data-name="Trazado 391 - Contorno"
d="M-4243.896-1049.502c-26.7 0-48.42-22.616-48.42-50.414s21.721-50.418 48.42-50.418 48.434 22.618 48.434 50.418-21.728 50.414-48.434 50.414zm0-100.633c-26.589 0-48.22 22.528-48.22 50.218s21.631 50.214 48.22 50.214 48.234-22.526 48.234-50.214-21.642-50.222-48.234-50.222zm0 84.905c-18.325 0-33.233-15.56-33.233-34.687s14.908-34.69 33.233-34.69c18.344 0 33.268 15.562 33.268 34.69s-14.924 34.684-33.268 34.684zm0-69.177c-18.214 0-33.033 15.472-33.033 34.49s14.818 34.487 33.033 34.487c18.234 0 33.068-15.471 33.068-34.487s-14.834-34.493-33.068-34.493z"
/>
<path
data-name="Trazado 392"
d="M-4304.551-986.731a21.435 21.435 0 0019.545 12.09h77.879a21.139 21.139 0 0019.518-12.263 26.16 26.16 0 00-2.566-26.32 70.472 70.472 0 00-26.475-21.938 68 68 0 00-33.158-6.836 69.928 69.928 0 00-51.76 28.227c-.408.544-.779 1.1-1.162 1.656a25.64 25.64 0 00-1.821 25.384zm103.941-6.824a6.644 6.644 0 01-6.518 3.9h-77.879a7.062 7.062 0 01-6.662-3.962 9.972 9.972 0 01.816-9.871v-.011c.264-.417.574-.836.879-1.25a55.189 55.189 0 0140.912-22.239c.871-.052 1.752-.07 2.625-.07a56.234 56.234 0 0144.684 22.885 10.7 10.7 0 011.143 10.618z"
/>
<path
data-name="Trazado 392 - Contorno"
d="M-4207.127-974.541h-77.879a21.532 21.532 0 01-19.634-12.145 25.743 25.743 0 011.827-25.485c.1-.149.205-.3.307-.445.274-.4.559-.815.858-1.215a70.024 70.024 0 0151.834-28.266 63.11 63.11 0 013.514-.1 66.24 66.24 0 0115.073 1.766 71.123 71.123 0 0114.621 5.178 70.591 70.591 0 0126.512 21.97 26.265 26.265 0 012.576 26.422 21.26 21.26 0 01-19.609 12.32zm-39.173-67.456c-1.167 0-2.346.033-3.5.1a69.821 69.821 0 00-51.685 28.185c-.3.4-.581.81-.854 1.209-.1.149-.2.3-.307.445a25.54 25.54 0 00-1.813 25.283 21.337 21.337 0 0019.456 12.034h77.879a21.064 21.064 0 0019.427-12.206 26.062 26.062 0 00-2.557-26.218 70.383 70.383 0 00-26.437-21.907 70.932 70.932 0 00-14.579-5.163 66.044 66.044 0 00-15.031-1.763zm39.173 52.437h-77.879a7.486 7.486 0 01-4.64-1.447 7.372 7.372 0 01-2.112-2.569 10.072 10.072 0 01.806-9.947v-.009l.016-.025c.253-.4.551-.805.84-1.2l.043-.058a55.311 55.311 0 0140.987-22.28c.8-.047 1.658-.07 2.63-.07a56.34 56.34 0 0144.765 22.926 10.8 10.8 0 011.152 10.725 6.738 6.738 0 01-6.608 3.954zm-83.625-13.915v.012l-.018.026a9.868 9.868 0 00-.809 9.77 7.162 7.162 0 002.054 2.5 7.29 7.29 0 004.519 1.407h77.879a6.551 6.551 0 006.427-3.839 10.594 10.594 0 00-1.133-10.521 56.137 56.137 0 00-44.6-22.844c-.968 0-1.825.023-2.619.07a55.108 55.108 0 00-40.837 22.2l-.043.059c-.284.38-.574.774-.82 1.161z"
/>
<path
data-name="Trazado 393"
d="M-4118.988-1128.356h-54.7a7.428 7.428 0 00-7.434 7.431 7.432 7.432 0 007.434 7.427h54.7a16.332 16.332 0 0116.313 16.32v124.74a16.331 16.331 0 01-16.312 16.32h-193.631a16.342 16.342 0 01-16.324-16.32v-124.74a16.343 16.343 0 0116.324-16.32 7.443 7.443 0 007.426-7.427 7.439 7.439 0 00-7.426-7.431 31.207 31.207 0 00-31.178 31.178v124.74a31.211 31.211 0 0031.178 31.181h193.631a31.218 31.218 0 0031.191-31.181v-124.74a31.214 31.214 0 00-31.192-31.178z"
/>
<path
data-name="Trazado 393 - Contorno"
d="M-4312.619-1128.456a7.537 7.537 0 017.526 7.531 7.535 7.535 0 01-7.526 7.527 16.24 16.24 0 00-16.224 16.22v124.74a16.24 16.24 0 0016.224 16.22h193.631a16.235 16.235 0 0016.212-16.22v-124.74a16.235 16.235 0 00-16.212-16.22h-54.7a7.539 7.539 0 01-7.534-7.527 7.48 7.48 0 012.2-5.325 7.485 7.485 0 015.329-2.205h54.7a31.32 31.32 0 0131.292 31.278v124.74a31.322 31.322 0 01-31.292 31.281h-193.631a31.315 31.315 0 01-31.278-31.281v-124.74a31.313 31.313 0 0131.283-31.279zm193.631 172.438h-193.631a16.441 16.441 0 01-16.424-16.42v-124.74a16.441 16.441 0 0116.424-16.42 7.334 7.334 0 007.326-7.327 7.336 7.336 0 00-7.326-7.331 31.113 31.113 0 00-31.078 31.078v124.74a31.114 31.114 0 0031.078 31.081h193.631a31.121 31.121 0 0031.091-31.081v-124.74a31.12 31.12 0 00-31.091-31.078h-54.7a7.288 7.288 0 00-5.188 2.147 7.282 7.282 0 00-2.146 5.184 7.338 7.338 0 007.333 7.327h54.7a16.435 16.435 0 0116.413 16.42v124.74a16.435 16.435 0 01-16.412 16.42z"
/>
<rect
data-name="Rect\xE1ngulo 809"
width={50.961}
height={43.41}
rx={1.024}
transform="translate(-4172.15 -1093.01)"
/>
<path
data-name="Rect\xE1ngulo 809 - Contorno"
d="M-4171.126-1093.11h48.913a1.125 1.125 0 011.124 1.124v41.363a1.125 1.125 0 01-1.124 1.124h-48.913a1.125 1.125 0 01-1.124-1.124v-41.363a1.125 1.125 0 011.124-1.124zm48.913 43.41a.925.925 0 00.924-.924v-41.362a.925.925 0 00-.924-.924h-48.913a.925.925 0 00-.924.924v41.363a.925.925 0 00.924.924z"
/>
<rect
data-name="Rect\xE1ngulo 810"
width={50.961}
height={20.864}
rx={1.615}
transform="translate(-4172.15 -1031.303)"
/>
<path
data-name="Rect\xE1ngulo 810 - Contorno"
d="M-4170.535-1031.403h47.731a1.717 1.717 0 011.715 1.715v17.634a1.717 1.717 0 01-1.715 1.715h-47.731a1.717 1.717 0 01-1.715-1.715v-17.634a1.717 1.717 0 011.715-1.715zm47.731 20.864a1.516 1.516 0 001.515-1.515v-17.634a1.516 1.516 0 00-1.515-1.515h-47.731a1.516 1.516 0 00-1.515 1.515v17.634a1.516 1.516 0 001.515 1.515z"
/>
<rect
data-name="Rect\xE1ngulo 811"
width={50.961}
height={20.864}
rx={1.615}
transform="translate(-4172.15 -995.506)"
/>
<path
data-name="Rect\xE1ngulo 811 - Contorno"
d="M-4170.535-995.606h47.731a1.717 1.717 0 011.715 1.715v17.634a1.717 1.717 0 01-1.715 1.715h-47.731a1.717 1.717 0 01-1.715-1.715v-17.634a1.717 1.717 0 011.715-1.715zm47.731 20.864a1.516 1.516 0 001.515-1.515v-17.634a1.516 1.516 0 00-1.515-1.515h-47.731a1.516 1.516 0 00-1.515 1.515v17.634a1.516 1.516 0 001.515 1.515z"
/>
</g>
</g>
</svg>
</SvgIcon>
);
};
export default AccountIcon;

View File

@@ -0,0 +1,46 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const AddFolderIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g data-name="Add Folder" clipPath="url(#prefix__a)">
<g data-name="add folder-icn">
<path
data-name="Trazado 368"
d="M239.148 69.847a29.456 29.456 0 00-29.418-29.036h-81.186l-1.119-1.512c-5.078-6.886-12.756-17.3-26.105-17.3H49.357A29.455 29.455 0 0019.935 51.42a19.768 19.768 0 00.236 3.081v13.472A29.818 29.818 0 00-.001 96.157c0 .6.023 1.205.076 1.806l9.691 106.824a29.8 29.8 0 0029.742 28.62h175.73a29.8 29.8 0 0029.746-28.593l9.926-106.806c.059-.619.09-1.235.09-1.852a29.791 29.791 0 00-15.852-26.309zM49.357 42.018h51.963c6.586 0 13.645 18.813 20.7 18.813h87.709a9.429 9.429 0 019.4 9.4v4.7H40.176V51.416h-.229a9.431 9.431 0 019.41-9.398zM224.994 203.64a9.78 9.78 0 01-9.754 9.748H39.51a9.779 9.779 0 01-9.75-9.748L20.014 96.157a9.782 9.782 0 019.746-9.755h195.471a9.787 9.787 0 019.758 9.755z"
/>
<path
data-name="Trazado 369"
d="M204.192 136.08h-17.605v-17.605a7.148 7.148 0 00-7.125-7.126h-12.729a7.152 7.152 0 00-7.135 7.126v17.605h-17.605a7.148 7.148 0 00-7.125 7.127v12.733a7.148 7.148 0 007.125 7.125h17.605v17.606a7.153 7.153 0 007.135 7.127h12.729a7.149 7.149 0 007.125-7.127v-17.606h17.605a7.147 7.147 0 007.127-7.125v-12.733a7.147 7.147 0 00-7.127-7.127z"
/>
</g>
</g>
</svg>
</SvgIcon>
);
};
export default AddFolderIcon;

View File

@@ -14,17 +14,15 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
const AddIcon = () => {
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const AddIcon = (props: SvgIconProps) => {
return (
<SvgIcon viewBox="0 0 12 12">
<path
fill="#081c42"
className="a"
d="M-13160.269,1885.114h-3.235v-4.381h-4.382V1877.5h4.382v-4.381h3.235v4.381h4.383v3.238h-4.383v4.38Z"
transform="translate(13167.886 -1873.114)"
/>
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256.003 256">
<path d="M232.138 92.816h-68.953V23.863A23.937 23.937 0 00139.327.001h-22.623a23.948 23.948 0 00-23.891 23.862v68.953H23.86A23.936 23.936 0 00.001 116.681v22.639a23.934 23.934 0 0023.859 23.859h68.953v68.957a23.951 23.951 0 0023.891 23.865h22.623a23.94 23.94 0 0023.858-23.865v-68.957h68.953a23.931 23.931 0 0023.865-23.859v-22.639a23.933 23.933 0 00-23.865-23.865z" />
</svg>
</SvgIcon>
);
};

View File

@@ -14,18 +14,25 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
interface IBucketsIcon {
width?: number;
}
const BucketsIcon = ({ width = 20 }: IBucketsIcon) => {
const BucketsIcon = (props: SvgIconProps) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
<path d="M8.392,10H1.608L0,0H10Z" />
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path d="M244.998 90.474l.049-.243 10.563-61.472a25.8 25.8 0 00-4.748-19.986A21.518 21.518 0 00233.739 0H22.255A21.507 21.507 0 005.138 8.773 25.862 25.862 0 00.384 28.759c5.223 30.384 16.209 94.421 25 145.533l.014.1c4.457 26 8.338 48.644 10.617 61.787 1.965 11.487 11.148 19.819 21.854 19.819h140.264c10.713 0 19.875-8.332 21.861-19.819l10.592-61.711.076-.375zm-203.928 72.5c-3.6-20.981-7.479-43.648-11.148-65.015H226.09l-11.168 65.015zm197.482-137.7l-9.2 53.735h-202.7c-3.7-21.626-7-40.758-9.221-53.735a5.736 5.736 0 011.041-4.394 4.738 4.738 0 013.764-1.934h211.5a4.732 4.732 0 013.775 1.939 5.691 5.691 0 011.042 4.387zm-26.893 156.649l-8.709 50.763a5.048 5.048 0 01-4.824 4.37H57.862a5.047 5.047 0 01-4.816-4.361c-1.93-11.25-5.066-29.464-8.717-50.771z" />
<path
data-name="buckets-icn - Contorno"
d="M22.254-.1h211.484a21.631 21.631 0 0117.2 8.812 25.9 25.9 0 014.767 20.064l-10.562 61.472-.049.245-14.341 83.618-.077.378-10.591 61.708a25.812 25.812 0 01-2.758 7.974 23.938 23.938 0 01-4.931 6.3 21.9 21.9 0 01-6.577 4.139 20.59 20.59 0 01-7.693 1.489H57.862c-10.748 0-19.979-8.37-21.952-19.9a38105 38105 0 01-9.73-56.615l-.887-5.172-.014-.106c-5.118-29.766-10.909-63.5-16.019-93.258-3.647-21.24-6.8-39.584-8.977-52.271A25.964 25.964 0 015.056 8.713 21.609 21.609 0 0122.254-.1zm175.873 256a20.389 20.389 0 007.619-1.474 21.694 21.694 0 006.517-4.1 23.741 23.741 0 004.891-6.248 25.615 25.615 0 002.736-7.912l10.592-61.711.077-.378L244.9 90.459l.049-.245 10.562-61.469a25.7 25.7 0 00-4.729-19.909A21.432 21.432 0 00233.739.102H22.255A21.41 21.41 0 005.217 8.836 25.762 25.762 0 00.482 28.745c2.181 12.687 5.33 31.031 8.977 52.271 5.11 29.76 10.9 63.492 16.019 93.262l.014.106.886 5.168c4.08 23.8 7.6 44.352 9.73 56.615 1.956 11.436 11.105 19.736 21.755 19.736zM22.242 18.845h211.5a4.828 4.828 0 013.855 1.979 5.793 5.793 0 011.058 4.464l-9.211 53.818H26.577l-.014-.083a36273.993 36273.993 0 00-5.487-31.976c-1.45-8.434-2.7-15.717-3.734-21.759a5.839 5.839 0 011.06-4.471 4.828 4.828 0 013.841-1.972zm207.029 60.062l9.183-53.652a5.593 5.593 0 00-1.02-4.31 4.63 4.63 0 00-3.7-1.9h-211.5a4.628 4.628 0 00-3.684 1.894 5.637 5.637 0 00-1.022 4.317 21347.9 21347.9 0 003.734 21.758c1.641 9.548 3.5 20.366 5.473 31.893zM29.803 97.862h196.405l-.02.117-11.182 65.1H40.985l-.014-.083-1.711-9.985c-3.119-18.2-6.343-37.015-9.437-55.03zm196.168.2H30.04c3.088 17.98 6.306 36.754 9.417 54.913l1.7 9.9H214.84zm-181.76 83.759h167.566l-.02.117-8.709 50.763a5.157 5.157 0 01-4.923 4.453H57.861a5.138 5.138 0 01-4.915-4.444c-.7-4.082-1.559-9.08-2.544-14.811a67263.85 67263.85 0 01-6.173-35.961zm167.33.2H44.448c2.318 13.531 4.444 25.9 6.153 35.844.985 5.731 1.844 10.729 2.544 14.811a4.939 4.939 0 004.718 4.278h140.264a4.958 4.958 0 004.726-4.287z"
/>
</g>
</svg>
</SvgIcon>
);

View File

@@ -0,0 +1,30 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const circleIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<circle data-name="circle-icn" cx={128} cy={128} r={128} />
</svg>
</SvgIcon>
);
};
export default circleIcon;

View File

@@ -21,7 +21,7 @@ interface IClusterIcon {
width?: number;
}
const ClustersIcon = ({ width = 20 }: IClusterIcon) => {
const ClustersIcon = ({ width = 24 }: IClusterIcon) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg

View File

@@ -21,7 +21,7 @@ interface ICreateIcon {
width?: number;
}
const CreateIcon = ({ width = 20 }: ICreateIcon) => {
const CreateIcon = ({ width = 24 }: ICreateIcon) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12">

View File

@@ -14,30 +14,46 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const DashboardIcon = () => {
const DashboardIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
<g transform="translate(249 720)">
<rect
width="6"
height="5"
transform="translate(-244 -720) rotate(90)"
/>
<rect width="4" height="4" transform="translate(-243 -720)" />
<rect
width="5"
height="4"
transform="translate(-239 -715) rotate(90)"
/>
<rect
width="5"
height="3"
transform="translate(-244 -710) rotate(180)"
/>
<SvgIcon {...props}>
<svg
xmlns="http://www.w3.org/2000/svg"
//
//
viewBox="0 0 256 256"
>
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g stroke="#000" strokeWidth={0.1}>
<path
data-name="Trazado 317"
d="M238.72 0H17.28A17.318 17.318 0 000 17.28V238.7a17.325 17.325 0 0017.28 17.28h221.44A17.318 17.318 0 00256 238.7V17.3A17.312 17.312 0 00238.72 0zm-.7 223.072a14.938 14.938 0 01-14.931 14.938H32.928a14.938 14.938 0 01-14.938-14.938V32.928A14.938 14.938 0 0132.928 17.99h190.15a14.938 14.938 0 0114.932 14.938z"
/>
<path
data-name="Trazado 318"
d="M105.746 114.442H56.899c-8.525 0-15.456 6.355-15.456 14.169v74.24c0 7.808 6.931 14.17 15.456 14.17h48.851c8.525 0 15.456-6.362 15.456-14.17v-74.24c-.007-7.814-6.935-14.169-15.46-14.169z"
/>
<path
data-name="Trazado 319"
d="M56.899 38.955h48.845a15.462 15.462 0 0115.455 15.462v22.88a15.462 15.462 0 01-15.462 15.462H56.899a15.456 15.456 0 01-15.46-15.455V54.411a15.456 15.456 0 0115.46-15.456z"
/>
<path
data-name="Trazado 320"
d="M204.825 38.955h-48.844c-8.525 0-15.456 6.355-15.456 14.169v74.24c0 7.814 6.931 14.17 15.456 14.17h48.844c8.525 0 15.463-6.355 15.463-14.17v-74.24c0-7.814-6.937-14.169-15.463-14.169z"
/>
<path
data-name="Trazado 321"
d="M155.981 163.25h48.851a15.456 15.456 0 0115.456 15.456v22.88a15.456 15.456 0 01-15.456 15.456h-48.851a15.462 15.462 0 01-15.462-15.462v-22.874a15.456 15.456 0 0115.462-15.456z"
/>
</g>
</g>
</svg>
</SvgIcon>

View File

@@ -16,19 +16,20 @@
import React from "react";
import { SvgIcon } from "@material-ui/core";
import { IIcon } from "./props";
interface IDeleteIcon {
width?: number;
}
const DeleteIcon = ({ width = 20 }: IDeleteIcon) => {
const DeleteIcon = ({ width = 24 }: IIcon) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10.402 13">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.836 12.646">
<path
d="M6.761 1V0H3.64v1H.004v1h10.4V1zM.004 2.998l1.672 10h7.052l1.673-10zm3.412 8.243l-.552-6.478h.653l.553 6.472zm3.569 0h-.653l.551-6.472h.654z"
className="a"
></path>
data-name="Trazado 359"
d="M9.527.7h-2.5V.305a.308.308 0 00-.308-.308h-3.6a.308.308 0 00-.308.308V.7h-2.5a.309.309 0 00-.309.309v.787a.309.309 0 00.309.309h9.218a.309.309 0 00.309-.309v-.787A.309.309 0 009.527.7z"
/>
<path
data-name="Trazado 360"
d="M.703 11.225a1.425 1.425 0 001.42 1.421h5.59a1.425 1.425 0 001.42-1.421V2.81H.703z"
/>
</svg>
</SvgIcon>
);

View File

@@ -0,0 +1,41 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const DiagnosticIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
d="M244.838 117.683a10.454 10.454 0 00-10.453 10.462 106.36 106.36 0 01-106.238 106.229 106.335 106.335 0 01-106.219-106.23 106.368 106.368 0 0195.766-105.717v31.075a75.511 75.511 0 00-65.008 74.643 75.557 75.557 0 0075.461 75.469 75.559 75.559 0 0075.469-75.469 75.518 75.518 0 00-64.992-74.643v-52.5h-10.477A127.289 127.289 0 00.999 128.148a127.291 127.291 0 00127.148 127.153 127.293 127.293 0 00127.156-127.156 10.466 10.466 0 00-10.465-10.462zm-62.156 10.462a54.6 54.6 0 01-54.539 54.544 54.62 54.62 0 01-54.547-54.544 54.607 54.607 0 0144.094-53.476v30.374a25.355 25.355 0 00-14.953 23.1 25.407 25.407 0 0025.406 25.415 25.409 25.409 0 0025.414-25.415 25.379 25.379 0 00-14.937-23.1V74.674a54.6 54.6 0 0144.066 53.471z"
stroke="#000"
strokeWidth={0.1}
/>
</g>
</svg>
</SvgIcon>
);
};
export default DiagnosticIcon;

View File

@@ -0,0 +1,35 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import { IIcon } from "./props";
const DiagnosticsIcon = ({ width = 24 }: IIcon) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10.405 10.405">
<path
d="M9.932 4.778a.424.424 0 00-.424.424 4.31 4.31 0 01-4.305 4.3 4.309 4.309 0 01-4.3-4.3A4.311 4.311 0 014.784.918v1.259A3.06 3.06 0 002.15 5.202 3.062 3.062 0 005.208 8.26a3.062 3.062 0 003.058-3.058 3.06 3.06 0 00-2.634-3.025V.049h-.424A5.158 5.158 0 00.055 5.201a5.158 5.158 0 005.153 5.153 5.158 5.158 0 005.153-5.153.424.424 0 00-.429-.423zm-2.519.424a2.213 2.213 0 01-2.21 2.21 2.213 2.213 0 01-2.21-2.21A2.213 2.213 0 014.78 3.035v1.231a1.028 1.028 0 00-.606.936 1.03 1.03 0 001.03 1.03 1.03 1.03 0 001.03-1.03 1.028 1.028 0 00-.605-.936V3.035a2.212 2.212 0 011.784 2.167z"
stroke="#000"
strokeWidth={0.1}
/>
</svg>
</SvgIcon>
);
};
export default DiagnosticsIcon;

View File

@@ -0,0 +1,67 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const DocumentationIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g transform="translate(0 41)">
<rect
data-name="Rect\xE1ngulo 801"
width={117.064}
height={25.116}
rx={0.908}
transform="translate(93.838)"
/>
<rect
data-name="Rect\xE1ngulo 821"
width={117.064}
height={25.116}
rx={0.908}
transform="translate(93.838 105)"
/>
<rect
data-name="Rect\xE1ngulo 822"
width={117.064}
height={25.116}
rx={0.908}
transform="translate(93.838 53)"
/>
<path
data-name="Trazado 357"
d="M143.734 189.393H24.57V36.448a8.842 8.842 0 00-8.648-8.961H8.633A8.844 8.844 0 000 36.448V206.04a8.844 8.844 0 008.633 8.961h135.1a8.847 8.847 0 008.648-8.961v-7.685a8.847 8.847 0 00-8.647-8.962z"
/>
</g>
<path
data-name="Rect\xE1ngulo 818"
d="M66 20v170h170V20H66M61 0h180a15 15 0 0115 15v180a15 15 0 01-15 15H61a15 15 0 01-15-15V15A15 15 0 0161 0z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default DocumentationIcon;

View File

@@ -14,19 +14,24 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import SvgIcon from "@material-ui/core/SvgIcon";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
interface IDownloadIcon {
width?: number;
}
const DownloadIcon = ({ width = 20 }: IDownloadIcon) => {
const DownloadIcon = (props: SvgIconProps) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 12.996">
<path d="M11.05 9.096v1.95h-9.1v-1.95H0v3.9h13v-3.9z"></path>
<path d="M6.5 9.75L9 6.672H7.475V0h-1.95v6.672H4z"></path>
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 362"
d="M0 104.121c0-21.583 32.822-21.583 32.822 0v117.917h190.356V104.121c0-21.583 32.822-21.583 32.822 0v134.338a16.416 16.416 0 01-16.4 16.413H16.415A16.421 16.421 0 01.002 238.459V104.121zm144.415-85.112c0-21.574-32.826-21.574-32.826 0v137.162l-18.591-18.6c-15.263-15.267-38.474 7.945-23.211 23.211l46.51 46.518a16.427 16.427 0 0023.406 0l46.507-46.518c15.266-15.266-7.945-38.478-23.208-23.211l-18.587 18.6V19.009z"
/>
</g>
</svg>
</SvgIcon>
);

View File

@@ -0,0 +1,54 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const drivesIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 207.229">
<rect
data-name="Rect\xE1ngulo 823"
width={200.184}
height={13.282}
rx={6.641}
transform="translate(27.909 164.281)"
/>
<circle
data-name="Elipse 61"
cx={10.385}
cy={10.385}
r={10.385}
transform="translate(28.182 138.693)"
/>
<circle
data-name="Elipse 62"
cx={10.385}
cy={10.385}
r={10.385}
transform="rotate(-9.25 900.786 -279.68)"
/>
<path
data-name="Trazado 405"
d="M255.699 130.149a37.6 37.6 0 00-2.994-12.568l-41.95-104.219C207.537 5.62 199.33 0 191.241 0H64.759c-8.089 0-16.3 5.62-19.514 13.362L3.295 117.581a37.61 37.61 0 00-2.994 12.568 22.107 22.107 0 00-.3 3.612v51.4a22.089 22.089 0 0022.065 22.064h211.87a22.09 22.09 0 0022.065-22.064v-51.4a22.134 22.134 0 00-.302-3.612zM65.754 22.413h124.491l36.053 89.283H30.013zm167.833 162.4H22.412v-50.708h211.175z"
/>
</svg>
</SvgIcon>
);
};
export default drivesIcon;

View File

@@ -0,0 +1,37 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const EditIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path d="M202.19 0a56.615 56.615 0 00-38.958 15.872L18.945 160.159a13.233 13.233 0 00-3.848 7.214L.188 239.998a13.364 13.364 0 003.848 12.5 14.606 14.606 0 0010.1 3.848 6.1 6.1 0 002.886-.481l72.144-13.948a13.233 13.233 0 007.214-3.848L240.666 93.788c21.162-21.162 21.162-56.272 0-77.434A53.11 53.11 0 00202.19 0zM51.65 221.24a29.925 29.925 0 00-6.733-9.138 40.721 40.721 0 00-9.138-6.733l5.291-25.01a46.19 46.19 0 0123.567 12.024 42.742 42.742 0 0112.024 23.567zm169.3-147.173L92.532 202.002a56.341 56.341 0 00-14.91-23.086 65.746 65.746 0 00-23.086-14.91L182.952 35.588a26.488 26.488 0 0119.238-7.7 28.6 28.6 0 0119.238 7.7 27.744 27.744 0 01-.481 38.479z" />
</g>
</svg>
</SvgIcon>
);
};
export default EditIcon;

View File

@@ -0,0 +1,37 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const FolderIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path d="M102.027 42.952c6.566 0 13.6 18.758 20.637 18.758h87.441a9.408 9.408 0 019.379 9.379v4.689H41.07V52.33h-.234a9.409 9.409 0 019.383-9.378h51.809m123.539 44.255a9.744 9.744 0 019.707 9.725l-9.949 107.158a9.754 9.754 0 01-9.727 9.716h-175.2a9.747 9.747 0 01-9.719-9.716L20.956 96.932a9.747 9.747 0 019.723-9.725h194.883M102.023 23H50.214a29.366 29.366 0 00-29.34 29.33 20.266 20.266 0 00.234 3.063v13.438a29.741 29.741 0 00-20.113 28.1c0 .6.031 1.2.09 1.8l9.656 106.5a29.714 29.714 0 0029.656 28.532h175.2a29.72 29.72 0 0029.656-28.5l9.891-106.484a17.216 17.216 0 00.09-1.847 29.7 29.7 0 00-15.8-26.229 29.371 29.371 0 00-29.328-28.949h-80.941c-.395-.529-.781-1.05-1.109-1.5-5.066-6.87-12.727-17.248-26.027-17.248z" />
</g>
</svg>
</SvgIcon>
);
};
export default FolderIcon;

View File

@@ -14,22 +14,80 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const GroupsIcon = () => {
const GroupsIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 9.787">
<g transform="translate(177 719.787)">
<g transform="translate(-105 -720)">
<path d="M-65,5a3,3,0,0,0-1.131.224A3.981,3.981,0,0,1-65,8v2h3V8A3,3,0,0,0-65,5Z" />
<path d="M-72,10h6V8a3,3,0,0,0-3-3,3,3,0,0,0-3,3Z" />
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g data-name="Grupo 1486">
<g data-name="Grupo 1484">
<path
data-name="Trazado 333"
d="M70.255 122.248a31.622 31.622 0 01-11.457 2.213 31.969 31.969 0 01-31.937-31.947 31.977 31.977 0 0131.938-31.956 30.936 30.936 0 013.1.319 69.8 69.8 0 015.221-11.8 44.418 44.418 0 00-8.32-.811 44.293 44.293 0 00-44.236 44.251A44.29 44.29 0 0058.8 136.762a44.025 44.025 0 0019.6-4.629 71.644 71.644 0 01-8.145-9.885z"
/>
<path
data-name="Trazado 333 - Contorno"
d="M58.798 136.858a44.391 44.391 0 01-44.336-44.345 44.394 44.394 0 0144.336-44.351 44.185 44.185 0 018.339.813l.137.026-.068.121a69.972 69.972 0 00-5.213 11.787l-.025.075-.079-.008a26.67 26.67 0 01-1.074-.135 14.644 14.644 0 00-2.016-.184 31.883 31.883 0 00-31.837 31.856 31.878 31.878 0 0031.837 31.847 31.575 31.575 0 0011.421-2.206l.074-.029.045.065a71.777 71.777 0 008.133 9.868l.1.1-.124.061a43.942 43.942 0 01-19.65 4.639zm0-88.5a44.194 44.194 0 00-44.136 44.151 44.191 44.191 0 0044.136 44.145 43.728 43.728 0 0019.433-4.557 71.981 71.981 0 01-8.014-9.732 31.755 31.755 0 01-11.419 2.191A32.079 32.079 0 0126.76 92.509a32.083 32.083 0 0132.038-32.056 14.8 14.8 0 012.043.186c.323.045.655.091.987.126a70.243 70.243 0 015.135-11.624 43.9 43.9 0 00-8.165-.779z"
/>
</g>
<g data-name="Grupo 1485">
<path
data-name="Trazado 334"
d="M40.481 194.909H20.674a7.792 7.792 0 01-7.361-4.223 9.965 9.965 0 01.834-10.2c.3-.407.6-.813.879-1.213 9.295-12.311 24.939-20.463 40.781-21.269a47.36 47.36 0 012.637-.067 54.753 54.753 0 017.471.577 102.612 102.612 0 0114.035-9.3 67.547 67.547 0 00-24.754-3.491c-19.41.991-38.561 11.009-49.98 26.154-.377.5-.762 1.02-1.107 1.529a22.374 22.374 0 00-1.729 22.942 20.213 20.213 0 0018.295 10.858h19.52a43.187 43.187 0 01.286-12.297z"
/>
<path
data-name="Trazado 334 - Contorno"
d="M40.307 207.307H20.675a20.3 20.3 0 01-18.384-10.912 22.476 22.476 0 011.736-23.046c.345-.509.737-1.037 1.109-1.532 11.435-15.164 30.615-25.2 50.056-26.194a63.675 63.675 0 013.216-.082 68.1 68.1 0 0121.574 3.578l.217.072-.2.11a102.735 102.735 0 00-14.021 9.293l-.034.026-.042-.006a54.006 54.006 0 00-7.457-.576c-.956 0-1.817.022-2.631.067-15.83.805-31.428 8.94-40.707 21.229-.21.3-.44.615-.663.918l-.215.294a9.864 9.864 0 00-.826 10.092 7.665 7.665 0 007.272 4.169H40.6l-.02.117a43.109 43.109 0 00-.287 12.27zm18.1-61.565a63.32 63.32 0 00-3.207.081c-19.383.99-38.506 11-49.905 26.114a34.524 34.524 0 00-1.1 1.525 22.275 22.275 0 00-1.722 22.84 20.105 20.105 0 0018.206 10.8h19.407a43.3 43.3 0 01.281-12.1H20.679a8.5 8.5 0 01-5.127-1.539 7.782 7.782 0 01-2.323-2.738 10.064 10.064 0 01.841-10.3l.217-.3c.222-.3.451-.615.662-.917 9.316-12.338 24.971-20.5 40.858-21.311a47.775 47.775 0 012.642-.068 54.084 54.084 0 017.442.572 102.986 102.986 0 0113.815-9.175 67.852 67.852 0 00-21.298-3.484z"
/>
</g>
</g>
<g data-name="Grupo 1489">
<g data-name="Grupo 1487">
<path
data-name="Trazado 335"
d="M197.327 48.262a44.156 44.156 0 00-8.262.805 69.345 69.345 0 015.189 11.8c1.041-.1 2.023-.312 3.072-.312a32 32 0 0131.967 31.956 31.99 31.99 0 01-31.967 31.947 31.7 31.7 0 01-11.428-2.206 69.08 69.08 0 01-8.129 9.882 43.772 43.772 0 0019.557 4.622 44.3 44.3 0 0044.258-44.245 44.3 44.3 0 00-44.257-44.249z"
/>
<path
data-name="Trazado 335 - Contorno"
d="M197.327 48.162a44.4 44.4 0 0144.358 44.351 44.4 44.4 0 01-44.358 44.345 43.706 43.706 0 01-10.226-1.213 44.459 44.459 0 01-9.375-3.419l-.124-.061.1-.1a69.067 69.067 0 008.117-9.867l.044-.066.074.029a31.727 31.727 0 0011.392 2.2 31.893 31.893 0 0031.867-31.847 31.9 31.9 0 00-31.867-31.856 14.1 14.1 0 00-1.941.175c-.364.05-.741.1-1.122.136l-.079.007-.025-.075a69.406 69.406 0 00-5.182-11.785l-.067-.121.136-.026a44.373 44.373 0 018.278-.807zm0 88.5a44.2 44.2 0 0044.158-44.145 44.2 44.2 0 00-44.158-44.151 44.114 44.114 0 00-8.107.778 69.667 69.667 0 015.1 11.623c.349-.034.7-.082 1.034-.128a14.45 14.45 0 011.968-.177 32.1 32.1 0 0132.067 32.056 32.093 32.093 0 01-32.067 32.047 31.9 31.9 0 01-11.389-2.184 69.229 69.229 0 01-8 9.732 44.268 44.268 0 009.209 3.342 43.514 43.514 0 0010.185 1.204z"
/>
</g>
<g data-name="Grupo 1488">
<path
data-name="Trazado 336"
d="M251.293 172.396a67.438 67.438 0 00-25.553-20.339 68.486 68.486 0 00-32.018-6.333 66.456 66.456 0 00-17.867 3.549 102.608 102.608 0 0114.25 9.189c1.41-.184 2.826-.384 4.236-.454a48.142 48.142 0 012.637-.067c17.061 0 34.314 8.4 44.518 21.881a10.587 10.587 0 011.211 10.905c-.937 1.908-2.961 4.18-7.236 4.18h-19.963a43.424 43.424 0 01.318 12.3h19.645a19.845 19.845 0 0018.25-11 22.858 22.858 0 00-2.428-23.811z"
/>
<path
data-name="Trazado 336 - Contorno"
d="M196.993 145.541a67.292 67.292 0 0114.615 1.628 70.577 70.577 0 0114.176 4.8 67.561 67.561 0 0125.59 20.37 22.966 22.966 0 012.438 23.913 19.929 19.929 0 01-18.339 11.059h-19.757l.013-.111a43.365 43.365 0 00-.318-12.271l-.02-.117h20.082c4.232 0 6.222-2.243 7.146-4.124a10.484 10.484 0 00-1.2-10.8 55.017 55.017 0 00-19.652-15.966 56.7 56.7 0 00-24.786-5.876c-.934 0-1.819.023-2.631.067-1.252.062-2.531.23-3.767.393l-.462.061-.042.005-.033-.026a102 102 0 00-14.236-9.18l-.2-.109.216-.073a66.568 66.568 0 0117.895-3.554 58.345 58.345 0 013.272-.089zm38.482 61.567a19.734 19.734 0 0018.16-10.948 22.765 22.765 0 00-2.417-23.7 67.358 67.358 0 00-25.515-20.309 70.378 70.378 0 00-14.136-4.783 67.089 67.089 0 00-14.572-1.624c-1.086 0-2.183.028-3.261.083a66.243 66.243 0 00-17.623 3.471 101.92 101.92 0 0114.03 9.063l.42-.055c1.24-.163 2.522-.331 3.782-.394.815-.045 1.7-.067 2.642-.067a56.9 56.9 0 0124.875 5.9 55.22 55.22 0 0119.723 16.024 10.687 10.687 0 011.221 11.01c-.949 1.932-2.991 4.235-7.326 4.235h-19.845a43.562 43.562 0 01.313 12.1z"
/>
</g>
</g>
<g data-name="Grupo 1490">
<path
className="a"
d="M-65,.213a1.993,1.993,0,0,0-1.384.561A2.967,2.967,0,0,1-66,2.213a2.964,2.964,0,0,1-.384,1.439A1.989,1.989,0,0,0-65,4.213a2,2,0,0,0,2-2A2,2,0,0,0-65,.213Z"
data-name="Trazado 337"
d="M128.094 139.18a56.158 56.158 0 01-56.092-56.091A56.157 56.157 0 01128.094 27a56.151 56.151 0 0156.08 56.089 56.151 56.151 0 01-56.08 56.091zm0-96.589a40.546 40.546 0 00-40.5 40.5 40.545 40.545 0 0040.5 40.5 40.545 40.545 0 0040.5-40.5 40.547 40.547 0 00-40.5-40.5z"
/>
<path
data-name="Trazado 337 - Contorno"
d="M128.094 139.28a56.255 56.255 0 01-56.192-56.191A56.254 56.254 0 01128.094 26.9a56.248 56.248 0 0156.18 56.189 56.249 56.249 0 01-56.18 56.191zm0-112.18a56.054 56.054 0 00-55.992 55.989 56.055 56.055 0 0055.992 55.991 56.049 56.049 0 0055.98-55.991 56.048 56.048 0 00-55.98-55.989zm0 96.587a40.645 40.645 0 01-40.6-40.6 40.645 40.645 0 0140.6-40.6 40.646 40.646 0 0140.6 40.6 40.646 40.646 0 01-40.6 40.6zm0-81a40.445 40.445 0 00-40.4 40.4 40.444 40.444 0 0040.4 40.4 40.445 40.445 0 0040.4-40.4 40.446 40.446 0 00-40.4-40.396z"
/>
<path
data-name="Trazado 338"
d="M176.44 228.467h-96.7a25.515 25.515 0 01-23.166-13.764 28.374 28.374 0 012.162-29.076c.459-.647.932-1.3 1.41-1.941 14.486-19.2 38.752-31.893 63.359-33.147a86.723 86.723 0 0140.559 8.028 85.8 85.8 0 0132.434 25.773 29.035 29.035 0 013.057 30.185c-4.328 8.728-12.98 13.942-23.115 13.942zm-48.83-62.446c-1.1 0-2.215.026-3.314.081-20.117 1.027-39.932 11.362-51.7 26.967-.383.51-.744 1.02-1.113 1.536a12.578 12.578 0 00-1.07 12.919c1.033 2 3.617 5.353 9.33 5.353h96.7c5.4 0 7.965-2.879 9.16-5.292a13.5 13.5 0 00-1.535-13.833c-12.952-17.08-34.812-27.734-56.458-27.734zm-61.238 22.357z"
/>
<path
data-name="Trazado 338 - Contorno"
d="M176.44 228.567h-96.7a25.622 25.622 0 01-23.255-13.818 28.481 28.481 0 012.169-29.179c.516-.727.978-1.363 1.412-1.944 14.5-19.216 38.808-31.932 63.435-33.187 1.367-.07 2.759-.1 4.137-.1a85.181 85.181 0 0118.512 2.063 89.373 89.373 0 0117.957 6.079 85.923 85.923 0 0132.471 25.8 29.131 29.131 0 013.066 30.29c-4.346 8.763-13.021 13.996-23.204 13.996zm-48.8-78.034c-1.375 0-2.763.035-4.127.1-24.568 1.252-48.818 13.939-63.285 33.108a91.64 91.64 0 00-1.408 1.939 28.278 28.278 0 00-2.155 28.972 25.424 25.424 0 0023.077 13.71h96.7c10.106 0 18.714-5.192 23.025-13.888a28.93 28.93 0 00-3.046-30.08 85.723 85.723 0 00-32.4-25.742 89.161 89.161 0 00-17.916-6.066 84.982 84.982 0 00-18.466-2.052zm48.8 62.443h-96.7a9.991 9.991 0 01-9.419-5.407 12.679 12.679 0 011.078-13.023l.122-.171c.32-.449.651-.912.993-1.367 11.788-15.63 31.627-25.978 51.776-27.007a66.38 66.38 0 013.319-.081 72.153 72.153 0 0131.533 7.471 70.07 70.07 0 0125 20.3 13.593 13.593 0 011.545 13.938c-1.206 2.44-3.792 5.348-9.247 5.348zm-48.83-46.856c-1.126 0-2.239.027-3.31.081-20.091 1.026-39.873 11.344-51.626 26.928-.339.453-.67.916-.99 1.363l-.122.171a12.477 12.477 0 00-1.063 12.815 9.8 9.8 0 009.241 5.3h96.7c5.353 0 7.887-2.847 9.07-5.236a13.39 13.39 0 00-1.525-13.728 69.869 69.869 0 00-24.931-20.242 71.95 71.95 0 00-31.444-7.454z"
/>
<circle cx="2" cy="2" r="2" transform="translate(-71 0.213)" />
</g>
</g>
</svg>

View File

@@ -14,20 +14,26 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
const HealIcon = () => {
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const HealIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10.014 9.993">
<path
className="a"
d="M9.162,5.971h0L8.192,5,9.346,3.846a2.257,2.257,0,0,0,0-3.192,2.311,2.311,0,0,0-3.192,0L5,1.808,4.029.837,3.846.654a2.311,2.311,0,0,0-3.192,0,2.257,2.257,0,0,0,0,3.192l.184.183h0L1.808,5,.654,6.154A2.257,2.257,0,0,0,3.846,9.346L5,8.192l.971.971.183.183A2.257,2.257,0,0,0,9.346,6.154Zm-2.29-4.6a1.27,1.27,0,0,1,1.757,0,1.242,1.242,0,0,1,0,1.757L7.475,4.283,5.717,2.525Zm-5.5,1.757A1.243,1.243,0,0,1,3.129,1.371l.183.183L1.555,3.312Zm1.757,5.5a1.27,1.27,0,0,1-1.757,0,1.242,1.242,0,0,1,0-1.757L2.525,5.717,4.283,7.475Zm2.843-.9-.254-.253L2.525,4.283l-.253-.254L4.029,2.272l.254.253L7.475,5.717l.253.254Zm2.657.9a1.271,1.271,0,0,1-1.757,0l-.183-.183L8.446,6.688l.183.183h0a1.241,1.241,0,0,1,0,1.757Z"
transform="translate(0.007 -0.014)"
/>
<circle cx="0.5" cy="0.5" r="0.5" transform="translate(4.507 4.486)" />
<circle cx="0.5" cy="0.5" r="0.5" transform="translate(3.507 3.486)" />
<circle cx="0.5" cy="0.5" r="0.5" transform="translate(5.507 5.486)" />
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="heal-icn"
d="M157.75 238.818l-4.719-4.727-24.812-24.7-29.438 29.427a57.488 57.488 0 01-81.312 0 57.4 57.4 0 010-81.422l29.438-29.422-24.813-24.819-4.625-4.609a57.4 57.4 0 010-81.43c21.719-21.82 59.625-21.82 81.313 0l4.719 4.625 24.719 24.8 29.531-29.43c21.719-21.82 59.594-21.82 81.313 0a57.4 57.4 0 010 81.43l-29.437 29.43 24.813 24.688 4.625 4.734a57.535 57.535 0 11-81.312 81.422zm13.625-22.937l4.563 4.609c12.125 11.977 32.938 11.977 44.938 0a31.782 31.782 0 000-44.766l-4.781-4.727zM35.719 175.724a31.63 31.63 0 000 44.766c11.938 11.977 32.875 11.977 44.875 0L110 191.068l-44.906-44.9zm22.906-72.569l6.469 6.492 81.469 81.422 6.469 6.477 44.875-44.883-6.469-6.492L110 64.88l-6.5-6.492zm117.312-67.7l-29.375 29.43 44.875 44.766 29.438-29.43a31.426 31.426 0 009.219-22.445 31.112 31.112 0 00-9.219-22.32 32.365 32.365 0 00-44.937 0zm-140.219 0a31.045 31.045 0 00-9.281 22.32 31.357 31.357 0 009.281 22.445l4.719 4.735 44.75-44.9-4.593-4.6a31.593 31.593 0 00-44.875 0zm105.344 117.956a12.7 12.7 0 1112.719 12.836 12.775 12.775 0 01-12.719-12.836zM115.5 127.974a12.781 12.781 0 1112.719 12.719 12.707 12.707 0 01-12.719-12.719zm-25.437-25.57a12.719 12.719 0 1112.688 12.844 12.757 12.757 0 01-12.689-12.845z"
stroke="rgba(0,0,0,0)"
strokeMiterlimit={10}
/>
</g>
</svg>
</SvgIcon>
);

View File

@@ -0,0 +1,54 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const HistoryIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 371"
d="M146.3 18.756A109.776 109.776 0 0036.677 127.108l-12.934-12.937c-12.336-12.326-31.08 6.426-18.75 18.752l37.576 37.581a13.267 13.267 0 0018.908 0l37.566-37.581c12.336-12.326-6.412-31.078-18.746-18.752l-14.031 14.038a80.128 80.128 0 0180.033-79.8 80.135 80.135 0 0180.047 80.044 80.135 80.135 0 01-80.047 80.047 14.824 14.824 0 00-14.824 14.819 14.825 14.825 0 0014.824 14.823 109.818 109.818 0 00109.7-109.689A109.824 109.824 0 00146.3 18.756z"
/>
<path
data-name="Trazado 372"
d="M151.643 80.893c-.021-1.539-.109-3.244-1.205-4.326-1.125-1.122-2.9-1.175-4.482-1.151l-7.51.1a5.162 5.162 0 00-3.354.836c-1.105.946-1.187 2.6-1.187 4.05-.012 19.174.035 38.35-.057 57.525v.957l41.027 41.007a4.829 4.829 0 002.322 1.547 4.551 4.551 0 003.41-1.261 36.529 36.529 0 007.16-7.184 4.6 4.6 0 001.271-3.421 4.917 4.917 0 00-1.605-2.415l-30.076-29.895a20.639 20.639 0 01-4.781-6.135c-1.178-2.729-1.125-5.8-1.062-8.768q.424-20.735.129-41.466z"
/>
<g data-name="history-icn">
<path
data-name="Trazado 371"
d="M146.301 18.756A109.776 109.776 0 0036.678 127.108l-12.934-12.937c-12.336-12.326-31.08 6.426-18.75 18.752l37.576 37.581a13.267 13.267 0 0018.908 0l37.566-37.581c12.336-12.326-6.412-31.078-18.746-18.752l-14.031 14.038a80.128 80.128 0 0180.033-79.8 80.135 80.135 0 0180.047 80.044A80.135 80.135 0 01146.3 208.5a14.824 14.824 0 00-14.824 14.819 14.825 14.825 0 0014.824 14.823A109.818 109.818 0 00256 128.453 109.824 109.824 0 00146.301 18.756z"
/>
<path
data-name="Trazado 372"
d="M151.644 80.893c-.021-1.539-.109-3.244-1.205-4.326-1.125-1.122-2.9-1.175-4.482-1.151l-7.51.1a5.162 5.162 0 00-3.354.836c-1.105.946-1.187 2.6-1.187 4.05-.012 19.174.035 38.35-.057 57.525v.957l41.027 41.007a4.829 4.829 0 002.322 1.547 4.551 4.551 0 003.41-1.261 36.529 36.529 0 007.16-7.184 4.6 4.6 0 001.271-3.421 4.917 4.917 0 00-1.605-2.415l-30.076-29.895a20.639 20.639 0 01-4.781-6.135c-1.178-2.729-1.125-5.8-1.062-8.768q.424-20.735.129-41.466z"
/>
</g>
</g>
</svg>
</SvgIcon>
);
};
export default HistoryIcon;

View File

@@ -14,20 +14,39 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const BucketsIcon = () => {
const IAMPoliciesIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8.75 10">
<path
d="M-44.625,10l-4.353-2.419L-53.375,10V0h8.75Z"
transform="translate(53.375)"
/>
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g data-name="IAM Policies" clipPath="url(#prefix__a)">
<path
data-name="Trazado 339"
d="M238.026 44.559v-.074a12.563 12.563 0 00-12.75-11.864c-19.684.308-57.242-3.075-88.8-29.6a12.417 12.417 0 00-16.182-.047C88.663 29.55 51.103 32.944 31.536 32.627a12.513 12.513 0 00-12.855 11.93c-1.846 47.721-1.545 114.939 22.287 147.594 22.289 30.644 66.039 55.739 79.613 62.109a18.165 18.165 0 007.762 1.739 18.159 18.159 0 007.8-1.753c14.566-6.868 57.258-31.421 79.59-62.08 23.834-32.661 24.139-99.886 22.293-147.607zm-34.455 138.74c-20.369 27.982-61.17 51.362-73.861 57.349a3.255 3.255 0 01-2.75 0c-12.654-5.95-53.391-29.247-73.832-57.357C30.316 152.037 32.54 76.032 33.61 47.691h.279c21.967 0 60.824-4.515 94.463-31.857 33.59 27.335 72.461 31.849 94.549 31.849h.184c1.078 28.484 3.287 104.383-19.514 135.615z"
/>
<path
data-name="Trazado 339 - Contorno"
d="M128.337-.095a12.648 12.648 0 018.2 3.045 123.269 123.269 0 0047.012 24.357 145.567 145.567 0 0021.651 4.2 153.2 153.2 0 0017.757 1.038c.771 0 1.549-.006 2.315-.018h.341a12.443 12.443 0 018.574 3.472 12.512 12.512 0 013.936 8.492v.079c1.846 47.733 1.542 114.978-22.316 147.667-22.359 30.7-65.061 55.244-79.628 62.112a18.164 18.164 0 01-7.839 1.763 18.186 18.186 0 01-7.8-1.748c-13.569-6.367-57.329-31.451-79.652-62.141-23.849-32.678-24.152-99.92-22.306-147.656a12.707 12.707 0 013.888-8.538 12.338 12.338 0 018.59-3.5c.16 0 .322 0 .481.009.774.013 1.565.019 2.348.019a151.784 151.784 0 0017.7-1.043 145.24 145.24 0 0021.618-4.209 123.616 123.616 0 0047.024-24.4 12.5 12.5 0 018.106-3zm94.622 32.838a153.41 153.41 0 01-17.78-1.04 145.772 145.772 0 01-21.681-4.2 123.47 123.47 0 01-47.088-24.4 12.449 12.449 0 00-8.073-3 12.3 12.3 0 00-7.979 2.951 123.819 123.819 0 01-47.1 24.436 145.446 145.446 0 01-21.648 4.215 151.971 151.971 0 01-17.723 1.045c-.784 0-1.576-.006-2.353-.019-.16-.006-.319-.009-.476-.009a12.14 12.14 0 00-8.451 3.441 12.5 12.5 0 00-3.827 8.4c-1.845 47.705-1.544 114.9 22.268 147.53 22.3 30.656 66.018 55.716 79.575 62.077a17.988 17.988 0 007.719 1.729 17.966 17.966 0 007.754-1.743c14.554-6.862 57.217-31.385 79.552-62.049 23.821-32.639 24.123-99.839 22.278-147.546v-.078a12.308 12.308 0 00-3.874-8.352 12.243 12.243 0 00-8.437-3.417h-.337c-.766.018-1.541.024-2.318.024zm-94.607-17.036l.063.051a138.835 138.835 0 0051.551 26.156 161.07 161.07 0 0023.579 4.539 167.394 167.394 0 0019.356 1.132h.28v.1c.3 7.964.61 17.617.612 28.82 0 13.686-.473 26.462-1.415 37.971-2.643 32.308-8.945 55.486-18.73 68.89-20.381 28-61.205 51.393-73.9 57.38a3.3 3.3 0 01-1.413.314 3.364 3.364 0 01-1.421-.314c-12.67-5.958-53.437-29.288-73.871-57.389-9.788-13.41-16.091-36.606-18.733-68.943-.941-11.511-1.416-24.285-1.413-37.967 0-11.17.31-20.8.61-28.753v-.1h.375a166.332 166.332 0 0019.285-1.132 160.879 160.879 0 0023.543-4.54 139.159 139.159 0 0051.572-26.163zm94.636 32.078h-.087a167.573 167.573 0 01-19.379-1.133 161.259 161.259 0 01-23.608-4.544 139.037 139.037 0 01-51.562-26.143A139.369 139.369 0 0176.77 42.114a161.087 161.087 0 01-23.573 4.545 166.532 166.532 0 01-19.308 1.133h-.183c-.3 7.93-.6 17.528-.606 28.65 0 13.677.472 26.446 1.412 37.951 2.64 32.3 8.93 55.462 18.7 68.842 20.41 28.067 61.136 51.374 73.794 57.325a3.166 3.166 0 001.337.3 3.107 3.107 0 001.328-.3c12.682-5.982 53.466-29.352 73.823-57.317 9.764-13.374 16.053-36.518 18.693-68.788.941-11.5 1.417-24.274 1.414-37.955-.006-11.158-.312-20.776-.612-28.72z"
/>
<path
data-name="Trazado 340"
d="M156.169 81.703l-7.57-3.791-5.871-2.933-14.434-7.225v12.653l-15.666 6.259 15.666-6.259V67.754L100.407 81.7v9.854l-5.146 2.062v18.685l5.146.6v8.22l12.221-1.219v55.4l7.313 2.927v11.809l8.354 4.175v-88.515l-7.375 1.475V89.254l7.375-2.587v.007l7.363 2.58v17.911l-7.363-1.468v88.515l8.35-4.175v-11.809l13.846-5.493-.025-10.418-13.82 4.1v-11.81l13.846-2.752v-10.224l5.68-.511v-10.133h-12.209v-11.08l5.654.565 6.555.654v-9.854l5.154 1.031V93.618l-5.154-2.062zm3.275 13.188v15.119l-2.9-.581-2.25-.451v10.076l-4.5-.451-5.654-.564-2.066-.21v15.043h12.221v6.537l-3.968.345-1.709.151v10.4l-12.346 2.452-1.508.3v15.873l2.408-.716 11.412-3.393.033 6.627-12.666 5.024-1.187.466v11.931l-4.592 2.295v-83.189l5.113 1.031 2.25.444v-1.92l6.424 1.294V86.665l-7.316-2.933-5.049-2.018-1.422-.564V70.793l11.7 5.851 5.883 2.942 6.541 3.265v9.973l1.18.467z"
/>
<path
data-name="Trazado 340 - Contorno"
d="M128.194 67.595l.1.05.1-.05v.1l14.378 7.195 5.871 2.933 7.625 3.819v9.848l5.154 2.062v18.875l-5.154-1.031v9.842l-12.209-1.219v10.87h12.209v10.325l-5.68.511v10.214l-.081.016-13.765 2.736v11.594l13.82-4.1v.134l.025 10.487-.063.025-13.783 5.468v11.8l-.055.028-8.294 4.148v.1l-.1-.05-.1.05v-.1l-8.354-4.175v-11.8l-7.312-2.927v-55.352l-12.221 1.219v-8.242l-5.146-.6V93.554l.063-.025 5.083-2.036v-9.848l.055-.028 27.832-13.919zm0 12.747V67.919l-27.687 13.846v9.86l-5.146 2.062v18.528l5.146.6v8.2l12.221-1.219v55.438l7.313 2.927v11.814l8.153 4.075v-88.231l-7.375 1.475v-18.11l.067-.023 7.508-2.634v.077l7.363 2.58v18.1l-.12-.024-7.244-1.444v88.238l8.149-4.075v-11.815l.063-.025 13.783-5.468-.025-10.217-13.821 4.1v-12.026l.081-.016 13.765-2.736v-10.233l5.68-.511v-9.942h-12.209v-11.291l12.209 1.219v-9.864l5.154 1.031v-18.5l-5.154-2.062v-9.86L148.553 78l-5.871-2.933-14.289-7.15v12.559l-.063.025-15.666 6.259-.074-.186zm7.363 8.984l-7.273-2.548-7.265 2.548v17.728l7.175-1.435v-.04l.1.02.1-.02v.04l7.163 1.428zm-5.484-18.685l.145.072 17.584 8.794 6.6 3.293v9.967l1.116.442 4.03 1.614v15.308l-5.146-1.031v10.062l-4.61-.462-5.654-.564-1.957-.2v14.833h12.221v6.729l-5.68.5v10.394l-13.854 2.752v15.657l13.819-4.108v.133l.033 6.7-.063.025-12.666 5.024-1.125.441v11.924l-.055.028-4.737 2.367v-83.473l5.233 1.055 2.13.421v-1.92l6.424 1.294V86.744l-7.253-2.908-5.049-2.018-1.485-.589zm24.125 12.282l-6.485-3.237-17.439-8.721v10.128l1.359.539 5.049 2.018 7.379 2.958v22.346l-6.424-1.294v1.919l-2.37-.468-4.994-1.007v82.905l4.392-2.2v-11.937l1.251-.491 12.6-5-.032-6.426-13.821 4.109v-16.08l1.588-.316 12.265-2.436v-10.413l5.68-.5v-6.346h-12.221v-15.254l2.177.222 10.044 1v-10.087l5.146 1.031V94.954l-3.9-1.564-1.243-.492z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default BucketsIcon;
export default IAMPoliciesIcon;

View File

@@ -14,29 +14,51 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const LicenseIcon = () => {
const LicenseIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 11">
<path fill="#fff" d="M11 11H0V2h11v9zM2 8v1h7V8zm0-3v1h5V5z"></path>
<g
fill="#07274a"
stroke="#fdfdfd"
strokeWidth="0.5"
transform="translate(7)"
>
<circle cx="3" cy="3" r="3" stroke="none"></circle>
<circle cx="3" cy="3" r="2.75" fill="none"></circle>
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g transform="translate(0 7)" stroke="#000" strokeWidth={0.2}>
<path
data-name="Trazado 354"
d="M193.942 0a62.108 62.108 0 00-29.748 7.587A62.053 62.053 0 00133.9 46.6L15.083 47.639c-8.315 0-15.086 7.292-15.086 16.252v161.443c0 8.96 6.771 16.244 15.086 16.244h178.659c8.314 0 15.07-7.284 15.07-16.244v-103.09A62.124 62.124 0 00256 62.061 62.134 62.134 0 00193.942 0zm-.8 210.649c0 7.75-5.834 14.033-13.016 14.033h-151.4c-7.2 0-13.039-6.283-13.039-14.033V78.569c0-7.75 5.843-14.026 13.039-14.026h103.282a62.076 62.076 0 0061.133 59.539zm15.677-104.525v-.38a6.578 6.578 0 01-.417.535 46.408 46.408 0 01-14.457 2.327A46.59 46.59 0 01147.4 62.061a46.55 46.55 0 0124.244-40.867 46.566 46.566 0 0122.3-5.679 46.6 46.6 0 0146.55 46.546 46.6 46.6 0 01-31.679 44.063z"
/>
<path
data-name="Trazado 355"
d="M223.044 45.923a6.254 6.254 0 00-8.834.054l-23.551 23.506-9.52-9.526a6.3 6.3 0 00-8.583 0 6.3 6.3 0 00-.315 8.9l13.976 13.971a6.18 6.18 0 004.441 1.854 6.14 6.14 0 004.457-1.854l27.984-27.951.055-.054a6.242 6.242 0 00-.055-8.844z"
/>
<rect
data-name="Rect\xE1ngulo 798"
width={89.868}
height={22.467}
rx={0.908}
transform="translate(44.912 89.868)"
/>
<rect
data-name="Rect\xE1ngulo 799"
width={112.335}
height={22.467}
rx={0.908}
transform="translate(44.912 134.802)"
/>
<rect
data-name="Rect\xE1ngulo 800"
width={112.335}
height={22.467}
rx={0.908}
transform="translate(44.912 179.735)"
/>
</g>
</g>
<path
fill="none"
stroke="#fff"
strokeWidth="0.5"
d="M8.73 2.794l.954.953 1.471-1.471"
></path>
</svg>
</SvgIcon>
);

View File

@@ -0,0 +1,37 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const LockIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 229.038 256">
<path
data-name="Trazado 406"
d="M188.653 75.155h-25.707V48.423A48.48 48.48 0 00114.521-.002a48.48 48.48 0 00-48.425 48.425v26.732h-25.71A40.5 40.5 0 00.001 115.68v85.128a40.506 40.506 0 0039.347 40.512l75.172 14.677 75.172-14.677a40.506 40.506 0 0039.347-40.512V115.68a40.5 40.5 0 00-40.386-40.525zm-102.5-26.732a28.4 28.4 0 0128.364-28.365 28.4 28.4 0 0128.364 28.365v26.732H86.152zm122.822 152.385a20.418 20.418 0 01-20.324 20.465h-.97l-73.164 14.285-73.164-14.285h-.97a20.418 20.418 0 01-20.324-20.465V115.68a20.418 20.418 0 0120.324-20.465h148.269a20.418 20.418 0 0120.324 20.465z"
/>
<path
data-name="Trazado 407"
d="M114.262 140.44a19.085 19.085 0 00-19.085 19.086 19.066 19.066 0 008.4 15.818v15.377a10.1 10.1 0 0010.073 10.073h1.218a10.1 10.1 0 0010.073-10.073v-15.377a19.067 19.067 0 008.4-15.818 19.086 19.086 0 00-19.079-19.086z"
/>
</svg>
</SvgIcon>
);
};
export default LockIcon;

View File

@@ -14,27 +14,22 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
const LogoutIcon = () => {
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const LogoutIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12.122 10.571">
<g transform="translate(0 0.5)">
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
style={{ fill: "none", stroke: "rgba(255,255,255,0.8)" }}
d="M4816.27,3755.205v-2.939h8.539v9.571h-8.539v-2.932"
transform="translate(-4813.187 -3752.266)"
/>
<path
style={{ fill: "none", stroke: "rgba(255,255,255,0.8)" }}
d="M4813.187,3757.052h8.081"
transform="translate(-4813.187 -3752.266)"
/>
<path
style={{ fill: "none", stroke: "rgba(255,255,255,0.8)" }}
d="M4806.5,3756.511l2.265,2.063-2.265,2.063"
transform="translate(-4800.808 -3753.863)"
data-name="Trazado 358"
d="M183.841 0c21.633 0 21.633 32.9 0 32.9H65.693v190.737h118.148c21.633 0 21.633 32.89 0 32.89h-134.6a16.455 16.455 0 01-16.453-16.445V16.445A16.461 16.461 0 0149.241 0zM89.185 111.823c-21.609 0-21.609 32.89 0 32.89h79.539l-18.633 18.626c-15.3 15.3 7.961 38.545 23.242 23.258l46.628-46.616a16.441 16.441 0 000-23.442l-46.625-46.6c-15.281-15.3-38.547 7.952-23.242 23.249l18.633 18.636z"
/>
</g>
</svg>

View File

@@ -0,0 +1,52 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const LogsIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 343"
d="M238.7 0H17.3A17.324 17.324 0 000 17.3v221.4a17.316 17.316 0 0017.3 17.291h221.4A17.316 17.316 0 00256 238.7V17.3A17.324 17.324 0 00238.7 0zm-15.631 238H32.931a14.938 14.938 0 01-14.932-14.938V89.673h220v133.394a14.938 14.938 0 01-14.93 14.938z"
/>
<path
data-name="Trazado 343 - Contorno"
d="M17.3-.1h221.4a17.42 17.42 0 0117.4 17.4v221.4a17.415 17.415 0 01-17.4 17.391H17.3A17.415 17.415 0 01-.1 238.7V17.3A17.42 17.42 0 0117.3-.1zm221.4 255.989a17.215 17.215 0 0017.2-17.19v-221.4a17.22 17.22 0 00-17.2-17.2H17.3a17.22 17.22 0 00-17.2 17.2v221.4a17.215 17.215 0 0017.2 17.19zM17.9 89.573h220.2v133.494a14.944 14.944 0 01-4.4 10.633 14.93 14.93 0 01-10.627 4.4H32.931a14.93 14.93 0 01-10.627-4.4 14.942 14.942 0 01-4.4-10.633zm220 .2H18.1v133.294a14.744 14.744 0 004.346 10.492 14.73 14.73 0 0010.486 4.346h190.139a14.73 14.73 0 0010.486-4.346 14.744 14.744 0 004.346-10.492z"
/>
<path
data-name="Trazado 344"
d="M126.005 123.197H63.948a6.935 6.935 0 00-6.814 7.053v16.317a6.941 6.941 0 006.814 7.06h62.057a6.927 6.927 0 006.793-7.06V130.25a6.921 6.921 0 00-6.793-7.053z"
/>
<path
data-name="Trazado 344 - Contorno"
d="M63.948 123.097h62.057a6.726 6.726 0 014.878 2.1 7.247 7.247 0 012.015 5.057v16.317a7.038 7.038 0 01-6.893 7.16H63.948a7.048 7.048 0 01-6.915-7.16v-16.317a7.045 7.045 0 016.915-7.157zm62.057 30.429a6.838 6.838 0 006.693-6.96v-16.317a7.046 7.046 0 00-1.959-4.919 6.526 6.526 0 00-4.733-2.034H63.949a6.845 6.845 0 00-6.714 6.953v16.317a6.848 6.848 0 006.714 6.96z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default LogsIcon;

View File

@@ -0,0 +1,64 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const ObjectBrowserFolderIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g data-name="Object Browser" clipPath="url(#prefix__a)">
<g data-name="Grupo 1541" transform="translate(87.918 103.898)">
<circle
data-name="Elipse 57"
cx={11.515}
cy={11.515}
r={11.515}
transform="rotate(-10.901 280.738 -178.561)"
/>
<rect
data-name="Rect\xE1ngulo 805"
width={24.592}
height={20.853}
rx={1.35}
transform="translate(14.546 25.545)"
/>
<path
data-name="Trazado 365"
d="M28.151 60.295a2.427 2.427 0 00-4.2 0l-9.1 15.761a2.425 2.425 0 002.1 3.64h18.2a2.43 2.43 0 002.105-3.64z"
/>
<path
data-name="Trazado 366"
d="M79.273 28.199a151.334 151.334 0 00-.187-17.51c-.395-4.294-2.262-7.942-6.512-9.468a15.5 15.5 0 00-1.836-.529 38.335 38.335 0 00-7.332-.658c-4.289-.125-8.57.136-12.855.116-8.582-.036-17.16.116-25.746.152H6.301a6.308 6.308 0 00-6.3 6.3v80.617a6.307 6.307 0 006.3 6.3h66.684a6.3 6.3 0 006.3-6.3V47.054c-.004-6.273-.168-12.584-.012-18.855zm-7.648 53.334a5.435 5.435 0 01-5.434 5.439h-54.2a5.442 5.442 0 01-5.441-5.439V12.3a5.441 5.441 0 015.441-5.442h36.367v9.3a13.809 13.809 0 0013.789 13.794h9.48zm0-57.6h-9.48a7.781 7.781 0 01-7.773-7.777v-9.3h11.82a5.435 5.435 0 015.434 5.442z"
/>
</g>
<path
data-name="Trazado 367"
d="M101.585 42.067c6.6 0 13.672 18.858 20.742 18.858h87.934a9.453 9.453 0 019.426 9.429v4.715H40.292V51.496h-.234a9.455 9.455 0 019.426-9.429h52.1m124.219 44.5a9.8 9.8 0 019.773 9.772L225.56 204.095a9.8 9.8 0 01-9.773 9.771H39.615a9.8 9.8 0 01-9.773-9.771L20.065 96.339a9.806 9.806 0 019.777-9.772h195.961M101.584 21.999h-52.1a29.528 29.528 0 00-29.492 29.5 20.028 20.028 0 00.234 3.081v13.513A29.9 29.9 0 00-.001 96.344c0 .605.031 1.208.086 1.814l9.711 107.089a29.874 29.874 0 0029.82 28.691h176.172a29.873 29.873 0 0029.813-28.663l9.961-107.074c.051-.617.082-1.239.082-1.857a29.875 29.875 0 00-15.887-26.376 29.534 29.534 0 00-29.5-29.106H128.87c-.4-.532-.785-1.059-1.121-1.517-5.094-6.906-12.785-17.342-26.168-17.342z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default ObjectBrowserFolderIcon;

View File

@@ -0,0 +1,60 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const ObjectBrowserIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g data-name="Object Browser" clipPath="url(#prefix__a)">
<g transform="translate(19.001)">
<circle
data-name="Elipse 55"
cx={31.523}
cy={31.523}
r={31.523}
transform="rotate(-10.901 768.453 -488.791)"
/>
<rect
data-name="Rect\xE1ngulo 797"
width={67.32}
height={57.082}
rx={1.895}
transform="translate(39.804 69.922)"
/>
<path
data-name="Trazado 322"
d="M77.056 165.044a6.656 6.656 0 00-11.523 0l-24.893 43.14a6.644 6.644 0 005.758 9.967h49.809a6.649 6.649 0 005.756-9.967z"
/>
<path
data-name="Trazado 323"
d="M217.014 77.196c.375-15.75.949-32.247-.506-47.947-1.1-11.752-6.187-21.735-17.832-25.915a44.135 44.135 0 00-5.014-1.447c-6.561-1.479-13.436-1.6-20.1-1.792-11.725-.342-23.453.361-35.178.313-23.488-.1-46.988.321-70.484.415-2.8.011-5.629.014-8.457.014h-42.2a17.262 17.262 0 00-17.25 17.24v220.688a17.258 17.258 0 0017.25 17.236h182.55a17.246 17.246 0 0017.236-17.236V128.816c0-17.189-.429-34.466-.015-51.62zm-20.93 145.99a14.9 14.9 0 01-14.883 14.893H32.826a14.876 14.876 0 01-14.875-14.893V33.658a14.876 14.876 0 0114.875-14.893h99.549v25.461a37.794 37.794 0 0037.754 37.76h25.955zm0-157.655h-25.955a21.328 21.328 0 01-21.3-21.3V18.77H181.2a14.9 14.9 0 0114.883 14.893z"
/>
</g>
</g>
</svg>
</SvgIcon>
);
};
export default ObjectBrowserIcon;

View File

@@ -0,0 +1,37 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const PreviewIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 255.534 164.865">
<path
data-name="Trazado 408"
d="M250.595 66.052A146.967 146.967 0 00127.767 0 146.965 146.965 0 004.94 66.052a29.628 29.628 0 000 32.76 146.965 146.965 0 00122.827 66.052 146.967 146.967 0 00122.828-66.052 29.63 29.63 0 000-32.76zm-17.648 21.08a125.854 125.854 0 01-105.18 56.57 125.855 125.855 0 01-105.18-56.57 8.5 8.5 0 010-9.4 125.855 125.855 0 01105.18-56.57 125.855 125.855 0 01105.18 56.569 8.5 8.5 0 010 9.401z"
/>
<path
data-name="Trazado 409"
d="M127.767 28.002a54.492 54.492 0 00-54.431 54.43 54.492 54.492 0 0054.431 54.431 54.493 54.493 0 0054.431-54.431 54.493 54.493 0 00-54.431-54.43zm0 87.7a33.305 33.305 0 01-33.268-33.268 33.305 33.305 0 0133.268-33.267 33.305 33.305 0 0133.263 33.265 33.305 33.305 0 01-33.263 33.268z"
/>
</svg>
</SvgIcon>
);
};
export default PreviewIcon;

View File

@@ -0,0 +1,40 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const RedoIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 373"
d="M18 145.888A110.2 110.2 0 01126.767 35.85L113.78 22.869c-12.378-12.378 6.448-31.2 18.822-18.824l37.722 37.72a13.32 13.32 0 010 18.979l-37.722 37.714c-12.374 12.374-31.2-6.442-18.822-18.82l14.085-14.085a80.434 80.434 0 00-80.1 80.335 80.443 80.443 0 0080.349 80.35 80.441 80.441 0 0080.349-80.35 14.878 14.878 0 0114.879-14.877 14.879 14.879 0 0114.882 14.877A110.234 110.234 0 01128.114 256 110.232 110.232 0 0118 145.888z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default RedoIcon;

View File

@@ -0,0 +1,33 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import { IIcon } from "./props";
const RefreshIcon = ({ width = 24 }: IIcon) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.157 21.107">
<path
data-name="Trazado 373"
d="M0 12.028a9.086 9.086 0 018.968-9.073l-1.071-1.07A1.1 1.1 0 019.449.333l3.11 3.11a1.1 1.1 0 010 1.565l-3.11 3.11a1.1 1.1 0 01-1.552-1.552l1.161-1.161a6.632 6.632 0 00-6.6 6.624 6.633 6.633 0 006.625 6.625 6.633 6.633 0 006.625-6.625 1.227 1.227 0 011.227-1.227 1.227 1.227 0 011.227 1.227 9.089 9.089 0 01-9.079 9.079A9.089 9.089 0 010 12.028z"
/>
</svg>
</SvgIcon>
);
};
export default RefreshIcon;

View File

@@ -0,0 +1,40 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const ReportedUsageIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g data-name="Reported Usage" clipPath="url(#prefix__a)">
<path
data-name="Trazado 390"
d="M128.218 1A127.366 127.366 0 00.999 128.219 127.363 127.363 0 00128.218 255.43a127.361 127.361 0 00127.213-127.211A127.364 127.364 0 00128.218 1zm0 221.711a94.6 94.6 0 01-94.5-94.492 94.608 94.608 0 0194.5-94.5v94.5h94.49a94.6 94.6 0 01-94.49 94.492z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default ReportedUsageIcon;

View File

@@ -0,0 +1,40 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const SearchIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 399"
d="M199 179.647a109.961 109.961 0 0023.973-68.662 110.985 110.985 0 10-110.988 110.984 109.957 109.957 0 0065.7-21.605l51.5 51.5a14.865 14.865 0 0010.359 4.439 14.359 14.359 0 0010.359-4.439 14.652 14.652 0 000-21.013zM30.6 110.984a81.389 81.389 0 1181.389 81.389A81.343 81.343 0 0130.6 110.984z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default SearchIcon;

View File

@@ -0,0 +1,47 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const serversIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256.143 255.276">
<path
data-name="Trazado 404"
d="M128.072 0C64.444 0 0 15.224 0 44.289v166.7c0 29.064 64.444 44.289 128.072 44.289s128.072-15.225 128.072-44.289v-166.7C256.143 15.224 191.699 0 128.072 0zm105.8 210.987c0 8.919-37.345 25.835-105.8 25.835s-105.8-17.07-105.8-25.835v-58.744c24.129 11.933 65.187 18.146 105.8 18.146s81.668-6.151 105.8-18.239zm0-84.887c0 8.766-37.345 25.835-105.8 25.835s-105.8-17.069-105.8-25.835V70.339c24.129 12.026 65.187 18.238 105.8 18.238s81.668-6.151 105.8-18.238zm-105.8-55.976c-68.454 0-105.8-17.07-105.8-25.835s37.345-25.835 105.8-25.835 105.8 17.07 105.8 25.835-37.347 25.835-105.8 25.835z"
/>
<circle
data-name="Elipse 59"
cx={15.793}
cy={15.793}
r={15.793}
transform="rotate(-31.72 347.366 44.437)"
/>
<circle
data-name="Elipse 60"
cx={15.793}
cy={15.793}
r={15.793}
transform="rotate(-31.72 206.504 4.417)"
/>
</svg>
</SvgIcon>
);
};
export default serversIcon;

View File

@@ -0,0 +1,44 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const SettingsIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 341"
d="M247.385 99.227l-26.7-3.841a92.362 92.362 0 00-4.166-9.853l16.176-21.584a9.834 9.834 0 00-.9-12.9l-26.889-27.1a9.825 9.825 0 00-12.893-.887l-21.6 16.254a89.085 89.085 0 00-9.857-4.134l-3.83-26.7a9.856 9.856 0 00-9.852-8.476H108.73a9.843 9.843 0 00-9.844 8.476l-3.836 26.7a89.115 89.115 0 00-9.859 4.134L63.53 23.06a9.881 9.881 0 00-12.936.887l-26.881 26.9a9.832 9.832 0 00-.9 12.9l16.27 21.584a87.181 87.181 0 00-4.166 9.851l-26.68 3.843a9.85 9.85 0 00-8.482 9.854v38.036a9.851 9.851 0 008.482 9.854l26.68 3.84a85.76 85.76 0 004.166 9.855l-16.27 21.777a9.848 9.848 0 00.9 12.914l26.881 26.9a9.891 9.891 0 0012.936.879l21.561-16.256a85.986 85.986 0 009.859 4.136l3.844 26.705a9.843 9.843 0 009.857 8.475h38.031a9.867 9.867 0 009.859-8.475l3.842-26.705a90.284 90.284 0 009.859-4.136l21.568 16.157a9.852 9.852 0 0012.906-.878l26.9-26.9a9.856 9.856 0 00.889-12.915l-16.061-21.485a89.562 89.562 0 004.131-9.853l26.709-3.842a9.867 9.867 0 008.475-9.853v-38.133a9.868 9.868 0 00-8.374-9.749zm-11.236 39.413l-24.443 3.549a9.888 9.888 0 00-8.088 7.1 82.022 82.022 0 01-6.875 17.436 9.813 9.813 0 000 10.549l14.764 19.707-14.764 15.072-19.719-15.072a9.863 9.863 0 00-10.461 0 75.566 75.566 0 01-17.711 7.291 9.814 9.814 0 00-7.105 8.085l-3.549 24.034h-20.895l-3.549-24.436a9.8 9.8 0 00-7.092-8.073 76.134 76.134 0 01-17.738-7.294 9.831 9.831 0 00-10.439.393l-19.711 14.777-15.072-14.777 15.072-19.707a9.844 9.844 0 000-10.549 82.861 82.861 0 01-7.3-17.634 9.841 9.841 0 00-8.074-7.095l-24.035-3.55v-20.889l24.443-3.55a9.85 9.85 0 008.074-7.1 82.89 82.89 0 016.891-17.635 9.84 9.84 0 000-10.546l-15.072-19.71 15.072-15.071 19.711 15.071a9.816 9.816 0 0010.439 0 76.209 76.209 0 0117.738-7.291 9.806 9.806 0 007.092-8.074l3.549-24.044h20.895l3.549 24.435a9.839 9.839 0 007.105 8.084 75.193 75.193 0 0117.711 7.291 9.866 9.866 0 0010.461-.4l19.719-14.778 15.057 14.778-15.057 19.71a9.822 9.822 0 00-.7 10.839 82.237 82.237 0 017.3 17.644 9.84 9.84 0 008.074 7.088l24.443 3.547z"
/>
<path
data-name="Trazado 342"
d="M127.742 78.73a49.269 49.269 0 00-49.258 49.275 49.266 49.266 0 0049.258 49.267 49.271 49.271 0 0049.281-49.267 49.274 49.274 0 00-49.281-49.275zm0 78.836a29.553 29.553 0 01-29.547-29.561 29.56 29.56 0 0129.547-29.57 29.555 29.555 0 0129.564 29.57 29.548 29.548 0 01-29.564 29.561z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default SettingsIcon;

View File

@@ -14,25 +14,26 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import SvgIcon from "@material-ui/core/SvgIcon";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
interface IShareIcon {
width?: number;
}
const ShareIcon = ({ width = 20 }: IShareIcon) => {
const ShareIcon = (props: SvgIconProps) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13">
<SvgIcon {...props}>
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 255.999 243.852"
>
<path
d="M11.05 8.617v2.429h-9.1v-9.1h2.429v-1.95H0v13h13V8.617z"
className="a"
></path>
data-name="Trazado 410"
d="M251.315 67.671L207.79 25.459c-14.279-13.851-35.342 7.862-21.063 21.716l12.959 12.567a156.689 156.689 0 00-82.95 23.182 156.774 156.774 0 00-71.051 97.677 15.547 15.547 0 0011.474 18.755 15.62 15.62 0 003.655.438 15.555 15.555 0 0015.1-11.909c14.6-60.586 70.74-100.461 130.9-96.758l-3.335 4.317-15.767 16.248c-13.849 14.285 7.867 35.345 21.719 21.063l42.214-43.518a15.131 15.131 0 00-.33-21.566z"
/>
<path
d="M3.854 9.256h1.95a4.945 4.945 0 013.6-4.74v1.3l.6-.487 2.474-2.012L9.4.817v1.7a6.9 6.9 0 00-5.546 6.739z"
className="a"
></path>
data-name="Trazado 411"
d="M229.501 148.665a14.352 14.352 0 00-14.348 14.351v52.134H28.703V28.703h126.71a14.352 14.352 0 0014.351-14.351A14.353 14.353 0 00155.413.001h-130.1A25.34 25.34 0 00.002 25.314v193.228a25.339 25.339 0 0025.311 25.311h193.23a25.339 25.339 0 0025.311-25.311v-55.526a14.353 14.353 0 00-14.353-14.351z"
/>
</svg>
</SvgIcon>
);

View File

@@ -0,0 +1,71 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const StorageIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g transform="translate(.001)" stroke="#000" strokeWidth={0.2}>
<path
data-name="Trazado 396"
d="M241.464 0H14.521A14.453 14.453 0 00.001 14.342v52.113a14.453 14.453 0 0014.52 14.344h226.943A14.457 14.457 0 00256 66.455V14.342A14.457 14.457 0 00241.464 0zm.285 66.455a.283.283 0 01-.285.281L14.24 66.455l.281-52.393 227.229.279z"
/>
<path
data-name="Trazado 397"
d="M241.464 87.969H14.521a14.452 14.452 0 00-14.52 14.342v52.109a14.453 14.453 0 0014.52 14.346h226.943A14.456 14.456 0 00256 154.42v-52.109a14.456 14.456 0 00-14.536-14.342zm.285 66.451a.282.282 0 01-.285.281L14.24 154.42l.281-52.393 227.229.283z"
/>
<path
data-name="Trazado 398"
d="M241.464 175.934H14.521a14.461 14.461 0 00-14.52 14.352v52.109a14.454 14.454 0 0014.52 14.346h226.943A14.458 14.458 0 00256 242.395v-52.109a14.465 14.465 0 00-14.536-14.352zm.285 66.461a.279.279 0 01-.285.281l-227.224-.281.281-52.4 227.229.287z"
/>
<rect
data-name="Rect\xE1ngulo 813"
width={23.651}
height={15.74}
rx={0.643}
transform="translate(20.301 22.054)"
/>
<rect
data-name="Rect\xE1ngulo 814"
width={23.651}
height={15.741}
rx={0.643}
transform="translate(20.301 111.377)"
/>
<rect
data-name="Rect\xE1ngulo 815"
width={23.651}
height={15.741}
rx={0.643}
transform="translate(20.301 200.594)"
/>
</g>
</g>
</svg>
</SvgIcon>
);
};
export default StorageIcon;

View File

@@ -0,0 +1,44 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const TenantsIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 394"
d="M222.618 87.575a26.021 26.021 0 00-23.281 14.4l-44.307-6.431a74.36 74.36 0 002.892-20.536A74.6 74.6 0 0083.286.439 74.6 74.6 0 008.644 75.008a74.6 74.6 0 0065.415 73.98l-1.38 25.365c-.127-.006-.249-.019-.371-.019a18.408 18.408 0 00-18.42 18.4 18.41 18.41 0 0018.42 18.4 18.411 18.411 0 0018.42-18.4 18.377 18.377 0 00-7.851-15.056l1.535-28.126a74.37 74.37 0 0032.006-7.723l39.5 51.236a36.657 36.657 0 00-10.488 25.695 36.82 36.82 0 0036.84 36.8 36.817 36.817 0 0036.834-36.8 36.817 36.817 0 00-36.834-36.8 36.637 36.637 0 00-18.137 4.794l-38.7-50.2A74.839 74.839 0 00151.4 105.48l45.242 6.568c-.029.517-.078 1.029-.078 1.551a26.037 26.037 0 0026.051 26.022 26.037 26.037 0 0026.05-26.022 26.037 26.037 0 00-26.047-26.024z"
/>
<path
data-name="Trazado 395"
d="M181.396 256a38.679 38.679 0 01-38.636-38.643 38.393 38.393 0 019.576-25.436l-36.435-47.307a74.862 74.862 0 01-28.494 6.932l-1.318 24.217a20.571 20.571 0 017.657 15.975 20.545 20.545 0 01-20.52 20.514 20.54 20.54 0 01-20.518-20.514 20.549 20.549 0 0118.6-20.432l1.125-20.571A75.865 75.865 0 018.2 75.818 75.907 75.907 0 0184.02-.005a75.908 75.908 0 0175.822 75.823 75.76 75.76 0 01-2.229 18.236l39.257 5.7a27.844 27.844 0 0124.216-13.965 28.051 28.051 0 0128.018 28.022 28.051 28.051 0 01-28.018 28.022 28.052 28.052 0 01-28.02-27.48l-40.61-5.9a76.059 76.059 0 01-23.551 28.463l35.308 45.854a38.644 38.644 0 0117.18-4.049 38.678 38.678 0 0138.633 38.634A38.678 38.678 0 01181.396 256zm-64.078-117.413l41.329 53.665-1.453 1.492a33.619 33.619 0 00-9.635 23.618 33.876 33.876 0 0033.837 33.84 33.875 33.875 0 0033.835-33.84 33.874 33.874 0 00-33.835-33.837 33.822 33.822 0 00-16.657 4.409l-1.814 1.027-40.89-53.094 2.092-1.434a71.22 71.22 0 0024.718-29.586l.739-1.65 48.482 7.038-.133 2.2c-.049.739-.073 1.055-.073 1.381a23.253 23.253 0 0023.227 23.225 23.249 23.249 0 0023.222-23.225 23.246 23.246 0 00-23.222-23.224 23.1 23.1 0 00-20.759 12.852l-.776 1.549-48.012-6.975.759-2.639a71.253 71.253 0 002.749-19.559A71.1 71.1 0 0084.022 4.794 71.1 71.1 0 0012.999 75.82a71.061 71.061 0 0062.243 70.465l2.225.273-1.608 29.524-2.318-.043h-.037a15.779 15.779 0 00-16 15.7 15.739 15.739 0 0015.721 15.717 15.741 15.741 0 0015.722-15.717 15.763 15.763 0 00-6.7-12.866l-1.09-.763 1.7-31.26 2.235-.033a70.305 70.305 0 0030.455-7.355z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default TenantsIcon;

View File

@@ -0,0 +1,37 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const TenantsOutlineIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 230.355 244.478"
{...props}
>
<path
data-name="Trazado 395 - Contorno"
d="M163.418 244.477a40.409 40.409 0 01-40.336-40.391 40.334 40.334 0 017.428-23.329l-28.589-37.162a73.171 73.171 0 01-19.721 4.874l-.838 15.423a23.685 23.685 0 016.886 16.732 23.807 23.807 0 01-23.77 23.792 23.808 23.808 0 01-23.77-23.792 23.672 23.672 0 0117.239-22.894l.575-10.549A74.931 74.931 0 01-.002 74.45 74.485 74.485 0 0174.35.001a74.488 74.488 0 0174.359 74.449 74.5 74.5 0 01-1.064 12.52l27.5 4a30.224 30.224 0 0124.579-12.382 30.684 30.684 0 0130.634 30.668 30.682 30.682 0 01-30.631 30.663 30.809 30.809 0 01-30.238-25.79l-29.708-4.319a74.988 74.988 0 01-17.4 21.463l26.916 35a40.4 40.4 0 0114.12-2.573 40.41 40.41 0 0140.343 40.385 40.413 40.413 0 01-40.342 40.392zm-15.989-61.17l-2.571 2.638a25.849 25.849 0 00-7.4 18.141 26.006 26.006 0 0025.956 26 26.007 26.007 0 0025.956-26 26 26 0 00-25.956-25.992 25.883 25.883 0 00-12.765 3.388zm-82.758-12.07a9.4 9.4 0 00-9.571 9.386 9.4 9.4 0 009.38 9.392 9.4 9.4 0 009.379-9.392 9.423 9.423 0 00-4.01-7.7l-2.332-1.635zm9.68-156.843A60.076 60.076 0 0014.39 74.448a60.046 60.046 0 0052.543 59.576l4.164.514 4.162-.063a59.2 59.2 0 0025.7-6.213l3.823-1.9 3.414-2.351a60.156 60.156 0 0020.888-25.027l1.712-3.818 1.2-4.187a60.311 60.311 0 002.32-16.532 60.079 60.079 0 00-59.964-60.053zm109.392 90.51l-.21 3.387c-.055 9.932 7.233 17.231 16.19 17.231a16.275 16.275 0 0016.245-16.269 16.278 16.278 0 00-16.245-16.274 16.145 16.145 0 00-14.51 9.006z"
/>
</svg>
</SvgIcon>
);
};
export default TenantsOutlineIcon;

View File

@@ -0,0 +1,35 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const totalObjectsIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 258.998 259">
<path
data-name="total-objects-icn"
d="M.498 129.502a129.147 129.147 0 01129-129 129.149 129.149 0 01129 129 129.146 129.146 0 01-129 129 129.143 129.143 0 01-129-129zm20 0a109.12 109.12 0 00109 109 109.124 109.124 0 00109-109 109.127 109.127 0 00-109-109 109.124 109.124 0 00-109 109zm27.77 31.828a37.9 37.9 0 0137.857-37.858 37.9 37.9 0 0137.854 37.858 37.9 37.9 0 01-37.854 37.858 37.9 37.9 0 01-37.857-37.86zm108.971 35.211a17.56 17.56 0 01-17.543-17.538v-37.989a17.565 17.565 0 0117.543-17.543h37.984a17.565 17.565 0 0117.543 17.543v37.989a17.56 17.56 0 01-17.543 17.538zm-55.309-81.945a13.4 13.4 0 01-11.566-6.676 13.412 13.412 0 010-13.353l27.07-46.884A13.392 13.392 0 01129 41.002a13.384 13.384 0 0111.564 6.681l27.07 46.884a13.383 13.383 0 010 13.353 13.4 13.4 0 01-11.566 6.676z"
stroke="rgba(0,0,0,0)"
strokeMiterlimit={10}
/>
</svg>
</SvgIcon>
);
};
export default totalObjectsIcon;

View File

@@ -14,36 +14,23 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const TraceIcon = () => {
const TraceIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.998 10">
<g transform="translate(140.999 720)">
<g transform="translate(-105 -720)">
<rect
width="1.114"
height="1.667"
transform="translate(-27.116 8.333)"
/>
<path d="M-28.184,10H-29.3V8.154l2.182-3.037V3.147H-26V5.476l-2.182,3.037Z" />
<rect width="1.114" height="2.963" transform="translate(-31.531)" />
<rect
width="1.114"
height="2.132"
transform="translate(-27.115 0)"
/>
<rect width="1.114" height="5.389" transform="translate(-29.298)" />
<path d="M-30.417,10h-1.114V5.722l-2.233-3V0h1.114V2.353l2.233,3Z" />
<path d="M-32.65,10h-1.114V6.185l-2.234-3V0h1.114V2.815l2.234,3Z" />
<rect
width="1.114"
height="4.463"
transform="translate(-35.999 5.537)"
/>
</g>
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="trace-icn"
d="M28.428 74.199l56.9 62.563v110.667a8.052 8.052 0 01-8.174 7.859H65.065a8.071 8.071 0 01-8.189-7.859v-98.468L.003 82.061v-74.2A8.026 8.026 0 018.16.004h12.105a8.033 8.033 0 018.166 7.857zm56.9-66.34A8.051 8.051 0 0077.154.002H65.065a8.07 8.07 0 00-8.189 7.857v71.116l56.921 66.9v101.554a8.034 8.034 0 008.166 7.859h12.1a8.048 8.048 0 008.157-7.859v-113.75L85.331 71.124zM134.059.002h-12.1a8.033 8.033 0 00-8.166 7.857v38.987a8.034 8.034 0 008.166 7.858h12.1a8.048 8.048 0 008.157-7.858V7.859a8.047 8.047 0 00-8.16-7.86zm44.783 118.525h12.105a8.04 8.04 0 008.166-7.858V7.859a8.038 8.038 0 00-8.166-7.857h-12.105a8.046 8.046 0 00-8.174 7.857v102.81a8.047 8.047 0 008.172 7.856zM247.818-.001h-12.1a8.033 8.033 0 00-8.165 7.857v38.987a8.034 8.034 0 008.165 7.858h12.1A8.048 8.048 0 00256 46.843V7.856a8.048 8.048 0 00-8.182-7.857zm0 173.231h-12.1a8.033 8.033 0 00-8.165 7.859v66.338a8.034 8.034 0 008.165 7.859h12.1a8.049 8.049 0 008.182-7.859v-66.338a8.048 8.048 0 00-8.182-7.858zm0-82.058h-12.1a8.034 8.034 0 00-8.165 7.859v17.678l-56.889 56.521v74.2a8.047 8.047 0 008.174 7.859h12.105a8.039 8.039 0 008.166-7.859v-55.964l56.889-66.9V99.038a8.049 8.049 0 00-8.18-7.864zM20.262 136.759H8.157A8.027 8.027 0 000 144.617v102.81a8.027 8.027 0 008.157 7.859h12.105a8.034 8.034 0 008.166-7.859V144.619a8.034 8.034 0 00-8.166-7.858z"
/>
</g>
</svg>
</SvgIcon>

View File

@@ -0,0 +1,44 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const TrashIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 359"
d="M222.078 14.266h-50.793V6.25a6.248 6.248 0 00-6.25-6.25H91.93a6.248 6.248 0 00-6.25 6.25v8.016H34.887a6.28 6.28 0 00-6.277 6.277v15.982a6.278 6.278 0 006.277 6.275h187.191a6.278 6.278 0 006.277-6.275V20.543a6.28 6.28 0 00-6.277-6.277z"
/>
<path
data-name="Trazado 360"
d="M42.876 227.97a28.933 28.933 0 0028.844 28.848h113.516a28.934 28.934 0 0028.848-28.848V57.07H42.876z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default TrashIcon;

View File

@@ -21,7 +21,7 @@ interface IUploadFile {
width?: number;
}
const UploadFile = ({ width = 20 }: IUploadFile) => {
const UploadFile = ({ width = 24 }: IUploadFile) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 12.996">

View File

@@ -0,0 +1,40 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const UploadIcon = (props: SvgIconProps) => {
return (
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 370"
d="M-.001 109.548c0-20.969 32.832-20.969 32.832 0v114.558h190.344V109.548c0-20.969 32.824-20.969 32.824 0v130.505a16.188 16.188 0 01-16.41 15.945H16.41A16.188 16.188 0 010 240.053V109.548zm111.583 78.131c0 20.973 32.828 20.973 32.828 0V54.437l18.595 18.066c15.263 14.825 38.467-7.724 23.208-22.548L139.696 4.763a16.756 16.756 0 00-23.4 0L69.791 49.955c-15.259 14.823 7.945 37.373 23.208 22.548l18.589-18.066v133.242z"
/>
</g>
</svg>
</SvgIcon>
);
};
export default UploadIcon;

View File

@@ -14,31 +14,27 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
interface IUsersIcon {
width?: number;
}
const UsersIcon = ({ width = 20 }: IUsersIcon) => {
const UsersIcon = (props: SvgIconProps) => {
return (
<SvgIcon style={{ width: width, height: width }}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6.131 10">
<g transform="translate(193 719.787)">
<g transform="translate(-193 -719.787)">
<path
d="M3,0h.131a3,3,0,0,1,3,3V5a0,0,0,0,1,0,0H0A0,0,0,0,1,0,5V3A3,3,0,0,1,3,0Z"
transform="translate(0 5)"
/>
<ellipse
cx="2.065"
cy="2"
rx="2.065"
ry="2"
transform="translate(1 0)"
/>
</g>
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<path
data-name="Trazado 331"
d="M127.715 142.539a71.356 71.356 0 0071.279-71.27A71.356 71.356 0 00127.715 0a71.352 71.352 0 00-71.268 71.27 71.352 71.352 0 0071.268 71.269zm0-122.728a51.516 51.516 0 0151.463 51.458 51.514 51.514 0 01-51.463 51.458A51.5 51.5 0 0176.27 71.269a51.5 51.5 0 0151.445-51.458z"
/>
<path
data-name="Trazado 332"
d="M214.632 199.929a108.81 108.81 0 00-41.184-32.75 110.263 110.263 0 00-51.553-10.2c-31.26 1.594-62.109 17.729-80.5 42.12a115.58 115.58 0 00-1.8 2.467 36.039 36.039 0 00-2.746 36.946c5.68 10.951 16.691 17.49 29.441 17.49h122.867c12.885 0 23.883-6.627 29.4-17.719a36.865 36.865 0 00-3.925-38.354zm-13.812 29.539c-1.529 3.065-4.8 6.726-11.662 6.726H66.286c-7.25 0-10.545-4.264-11.861-6.8a16.032 16.032 0 011.361-16.416c.473-.655.938-1.305 1.43-1.952 14.951-19.828 40.129-32.961 65.688-34.266 1.408-.069 2.816-.1 4.213-.1 27.5 0 55.287 13.533 71.729 35.236a17.146 17.146 0 011.974 17.569z"
/>
</g>
</svg>
</SvgIcon>

View File

@@ -14,40 +14,65 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { SvgIcon } from "@material-ui/core";
import * as React from "react";
import { SvgIcon, SvgIconProps } from "@material-ui/core";
const WatchIcon = () => {
const WatchIcon = (props: SvgIconProps) => {
return (
<SvgIcon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
<g transform="translate(213 720)">
<g transform="translate(-105 -720)">
<rect width="1.5" height="4" transform="translate(-108)" />
<rect width="1.5" height="4" transform="translate(-108 6)" />
<rect width="1.5" height="4" transform="translate(-99.5 6)" />
<rect width="1.5" height="4" transform="translate(-99.5)" />
<rect
width="1.5"
height="4"
transform="translate(-98) rotate(90)"
<SvgIcon {...props}>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="prefix__a">
<path d="M0 0h256v256H0z" />
</clipPath>
</defs>
<g clipPath="url(#prefix__a)">
<g transform="translate(4330.082 461.859)">
<g data-name="Grupo 1495">
<path
data-name="Trazado 345"
d="M-4235.5-461.859h-72.088a22.506 22.506 0 00-22.5 22.5V-365a5.2 5.2 0 005.2 5.2h7.578a5.209 5.209 0 005.219-5.2v-58.731a20.132 20.132 0 0120.125-20.133h56.461a5.2 5.2 0 005.2-5.2v-7.589a5.2 5.2 0 00-5.195-5.206z"
/>
<path
data-name="Trazado 345 - Contorno"
d="M-4307.586-462.009h72.088a5.355 5.355 0 015.345 5.353v7.589a5.355 5.355 0 01-5.345 5.353h-56.461a19.834 19.834 0 00-7.771 1.57 19.914 19.914 0 00-6.35 4.281 19.912 19.912 0 00-4.283 6.352 19.858 19.858 0 00-1.571 7.78V-365a5.367 5.367 0 01-5.369 5.353h-7.578a5.358 5.358 0 01-5.351-5.353v-74.364a22.481 22.481 0 011.781-8.813 22.59 22.59 0 014.856-7.2 22.591 22.591 0 017.2-4.854 22.487 22.487 0 018.809-1.778zm72.088 18a5.055 5.055 0 005.045-5.053v-7.589a5.055 5.055 0 00-5.045-5.053h-72.088a22.185 22.185 0 00-8.693 1.756 22.287 22.287 0 00-7.1 4.79 22.282 22.282 0 00-4.792 7.1 22.181 22.181 0 00-1.758 8.7V-365a5.058 5.058 0 005.051 5.053h7.578a5.067 5.067 0 005.069-5.053v-58.731a20.158 20.158 0 011.595-7.9 20.214 20.214 0 014.347-6.447 20.216 20.216 0 016.445-4.346 20.135 20.135 0 017.888-1.593z"
/>
<path
data-name="Trazado 346"
d="M-4096.572-461.859h-78.979a5.207 5.207 0 00-5.209 5.2v7.589a5.207 5.207 0 005.209 5.2h63.352a20.138 20.138 0 0120.135 20.133V-365a5.2 5.2 0 005.209 5.2h7.574a5.2 5.2 0 005.193-5.2v-74.364a22.492 22.492 0 00-22.484-22.495z"
/>
<path
data-name="Trazado 346 - Contorno"
d="M-4175.551-462.009h78.979a22.478 22.478 0 018.811 1.78 22.558 22.558 0 017.194 4.854 22.568 22.568 0 014.851 7.2 22.5 22.5 0 011.779 8.813V-365a5.354 5.354 0 01-5.343 5.353h-7.574a5.362 5.362 0 01-5.359-5.353v-58.731a19.841 19.841 0 00-1.572-7.78 19.912 19.912 0 00-4.285-6.352 19.932 19.932 0 00-6.353-4.282 19.851 19.851 0 00-7.774-1.57h-63.352a5.362 5.362 0 01-5.359-5.353v-7.589a5.362 5.362 0 015.357-5.352zm96.27 102.063a5.054 5.054 0 005.043-5.053v-74.364a22.211 22.211 0 00-1.755-8.7 22.275 22.275 0 00-4.786-7.1 22.262 22.262 0 00-7.1-4.79 22.18 22.18 0 00-8.693-1.756h-78.979a5.062 5.062 0 00-5.059 5.053v7.589a5.062 5.062 0 005.059 5.053h63.352a20.15 20.15 0 017.891 1.593 20.226 20.226 0 016.448 4.346 20.222 20.222 0 014.35 6.447 20.142 20.142 0 011.6 7.9V-365a5.062 5.062 0 005.059 5.053z"
/>
<path
data-name="Trazado 347"
d="M-4079.281-310.249h-7.574a5.2 5.2 0 00-5.209 5.2v61.06a20.146 20.146 0 01-20.135 20.141h-63.352a5.2 5.2 0 00-5.209 5.199v7.6a5.2 5.2 0 005.209 5.194h78.979a22.486 22.486 0 0022.484-22.5v-76.694a5.194 5.194 0 00-5.193-5.2z"
/>
<path
data-name="Trazado 347 - Contorno"
d="M-4086.86-310.399h7.574a5.354 5.354 0 015.343 5.353v76.692a22.513 22.513 0 01-1.779 8.817 22.559 22.559 0 01-4.851 7.2 22.554 22.554 0 01-7.194 4.852 22.491 22.491 0 01-8.811 1.779h-78.979a5.357 5.357 0 01-5.359-5.344v-7.6a5.358 5.358 0 015.359-5.344h63.352a19.839 19.839 0 007.774-1.571 19.935 19.935 0 006.353-4.285 19.927 19.927 0 004.285-6.355 19.85 19.85 0 001.572-7.781v-61.063a5.362 5.362 0 015.361-5.35zm-9.717 104.39a22.189 22.189 0 008.693-1.755 22.259 22.259 0 007.1-4.788 22.258 22.258 0 004.786-7.1 22.222 22.222 0 001.755-8.7v-76.697a5.054 5.054 0 00-5.043-5.053h-7.574a5.062 5.062 0 00-5.059 5.053v61.06a20.15 20.15 0 01-1.6 7.9 20.236 20.236 0 01-4.35 6.45 20.227 20.227 0 01-6.448 4.349 20.134 20.134 0 01-7.891 1.595h-63.352a5.057 5.057 0 00-5.059 5.044v7.6a5.057 5.057 0 005.059 5.044z"
/>
<path
data-name="Trazado 348"
d="M-4235.5-223.849h-56.461a20.14 20.14 0 01-20.125-20.141v-61.059a5.209 5.209 0 00-5.219-5.2h-7.578a5.2 5.2 0 00-5.2 5.2v76.692a22.5 22.5 0 0022.5 22.5h72.088a5.2 5.2 0 005.2-5.194v-7.6a5.2 5.2 0 00-5.205-5.198z"
/>
<path
data-name="Trazado 348 - Contorno"
d="M-4235.5-205.709h-72.088a22.492 22.492 0 01-8.81-1.779 22.586 22.586 0 01-7.2-4.852 22.582 22.582 0 01-4.856-7.2 22.493 22.493 0 01-1.781-8.817v-76.692a5.358 5.358 0 015.351-5.353h7.578a5.367 5.367 0 015.369 5.353v61.06a19.866 19.866 0 001.571 7.781 19.935 19.935 0 004.283 6.355 19.921 19.921 0 006.35 4.285 19.821 19.821 0 007.771 1.571h56.461a5.351 5.351 0 015.345 5.344v7.6a5.351 5.351 0 01-5.344 5.344zm-89.383-104.39a5.058 5.058 0 00-5.051 5.053v76.692a22.192 22.192 0 001.758 8.7 22.266 22.266 0 004.792 7.1 22.28 22.28 0 007.1 4.788 22.2 22.2 0 008.693 1.755h72.088a5.05 5.05 0 005.045-5.044v-7.6a5.05 5.05 0 00-5.045-5.044h-56.461a20.121 20.121 0 01-7.888-1.595 20.218 20.218 0 01-6.445-4.349 20.228 20.228 0 01-4.347-6.45 20.166 20.166 0 01-1.595-7.9v-61.056a5.067 5.067 0 00-5.069-5.053z"
/>
</g>
<circle
data-name="Elipse 56"
cx={49.548}
cy={49.548}
r={49.548}
transform="translate(-4251.625 -388.701)"
/>
<rect
width="1.5"
height="4"
transform="translate(-104) rotate(90)"
<path
data-name="Elipse 56 - Contorno"
d="M-4202.077-388.851a49.712 49.712 0 0119.345 95.491 49.712 49.712 0 01-38.693-91.585 49.387 49.387 0 0119.348-3.906zm0 99.1a49.412 49.412 0 0019.229-94.918 49.411 49.411 0 00-38.457 91.033 49.089 49.089 0 0019.228 3.882z"
/>
<rect
width="1.5"
height="4"
transform="translate(-104 8.5) rotate(90)"
/>
<rect
width="1.5"
height="4"
transform="translate(-98 8.5) rotate(90)"
/>
<circle cx="2" cy="2" r="2" transform="translate(-105 3)" />
</g>
</g>
</svg>

View File

@@ -13,22 +13,66 @@
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
export { default as PermissionIcon } from "./PermissionIcon";
export { default as CopyIcon } from "./CopyIcon";
export { default as CreateIcon } from "./CreateIcon";
export { default as DeleteIcon } from "./DeleteIcon";
export { default as ServiceAccountIcon } from "./ServiceAccountIcon";
export { default as StorageIcon } from "./StorageIcon";
export { default as RefreshIcon } from "./RefreshIcon";
export { default as ShareIcon } from "./ShareIcon";
export { default as FolderIcon } from "./FolderIcon";
export { default as EditIcon } from "./EditIcon";
export { default as SearchIcon } from "./SearchIcon";
export { default as ObjectBrowserFolderIcon } from "./ObjectBrowserFolderIcon";
export { default as RedoIcon } from "./RedoIcon";
export { default as DashboardIcon } from "./DashboardIcon";
export { default as BucketsIcon } from "./BucketsIcon";
export { default as UsersIcon } from "./UsersIcon";
export { default as ServiceAccountsIcon } from "./ServiceAccountsIcon";
export { default as GroupsIcon } from "./GroupsIcon";
export { default as IAMPoliciesIcon } from "./IAMPoliciesIcon";
export { default as TraceIcon } from "./TraceIcon";
export { default as LambdaNotificationsIcon } from "./LambdaNotificationsIcon";
export { default as ConfigurationsListIcon } from "./ConfigurationsListIcon";
export { default as ClustersIcon } from "./ClustersIcon";
export { default as MirroringIcon } from "./MirroringIcon";
export { default as WarpIcon } from "./WarpIcon";
export { default as ServiceAccountIcon } from "./ServiceAccountIcon";
export { default as ConfigurationsListIcon } from "./ConfigurationsListIcon";
export { default as WatchIcon } from "./WatchIcon";
export { default as HealIcon } from "./HealIcon";
export { default as OperatorLogo } from "./OperatorLogo";
export { default as DeleteIcon } from "./DeleteIcon";
export { default as ReportedUsageIcon } from "./ReportedUsageIcon";
export { default as UsageIcon } from "./UsageIcon";
export { default as PermissionIcon } from "./PermissionIcon";
export { default as AccountIcon } from "./AccountIcon";
export { default as DiagnosticIcon } from "./DiagnosticIcon";
export { default as TenantsOutlineIcon } from "./TenantsOutlineIcon";
export { default as HelpIcon } from "./HelpIcon";
export { default as DiagnosticsIcon } from "./DiagnosticsIcon";
export { default as ObjectBrowser1Icon } from "./ObjectBrowserFolderIcon";
export { default as WarpIcon } from "./WarpIcon";
export { default as CopyIcon } from "./CopyIcon";
export { default as ConsoleLogo } from "./ConsoleLogo";
export { default as TraceIcon } from "./TraceIcon";
export { default as AddIcon } from "./AddIcon";
export { default as LambdaNotificationsIcon } from "./LambdaNotificationsIcon";
export { default as BackSettingsIcon } from "./BackSettingsIcon";
export { default as LicenseIcon } from "./LicenseIcon";
export { default as RemoveIcon } from "./RemoveIcon";
export { default as AddFolderIcon } from "./AddFolderIcon";
export { default as IAMPoliciesIcon } from "./IAMPoliciesIcon";
export { default as UsersIcon } from "./UsersIcon";
export { default as EgressIcon } from "./EgressIcon";
export { default as DocumentationIcon } from "./DocumentationIcon";
export { default as TrashIcon } from "./TrashIcon";
export { default as DownloadIcon } from "./DownloadIcon";
export { default as AllBucketsIcon } from "./AllBucketsIcon";
export { default as GroupsIcon } from "./GroupsIcon";
export { default as TenantsIcon } from "./TenantsIcon";
export { default as UploadFile } from "./UploadFile";
export { default as CreateIcon } from "./CreateIcon";
export { default as SyncIcon } from "./SyncIcon";
export { default as LogoutIcon } from "./LogoutIcon";
export { default as HistoryIcon } from "./HistoryIcon";
export { default as BucketsIcon } from "./BucketsIcon";
export { default as ObjectBrowserIcon } from "./ObjectBrowserIcon";
export { default as SettingsIcon } from "./SettingsIcon";
export { default as UploadIcon } from "./UploadIcon";
export { default as ServiceAccountsIcon } from "./ServiceAccountsIcon";
export { default as LogsIcon } from "./LogsIcon";
export { default as ConsoleIcon } from "./ConsoleIcon";
export { default as ServersIcon } from "./ServersIcon";
export { default as DrivesIcon } from "./DrivesIcon";
export { default as TotalObjectsIcon } from "./TotalObjectsIcon";
export { default as CircleIcon } from "./CircleIcon";
export { default as PreviewIcon } from "./PreviewIcon";
export { default as LockIcon } from "./LockIcon";

View File

@@ -0,0 +1,20 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
export interface IIcon {
width?: number;
active?: boolean;
color?: string;
}

View File

@@ -26,10 +26,9 @@ import { setErrorSnackMessage } from "../../../actions";
import AddServiceAccount from "./AddServiceAccount";
import DeleteServiceAccount from "./DeleteServiceAccount";
import CredentialsPrompt from "../Common/CredentialsPrompt/CredentialsPrompt";
import { CreateIcon } from "../../../icons";
import { AddIcon, CreateIcon, LockIcon } from "../../../icons";
import TextField from "@material-ui/core/TextField";
import InputAdornment from "@material-ui/core/InputAdornment";
import SearchIcon from "@material-ui/icons/Search";
import TableWrapper from "../Common/TableWrapper/TableWrapper";
import { stringSort } from "../../../utils/sortFunctions";
import PageHeader from "../Common/PageHeader/PageHeader";
@@ -39,8 +38,8 @@ import {
searchField,
} from "../Common/FormComponents/common/styleLibrary";
import { ErrorResponseHandler } from "../../../common/types";
import LockIcon from "@material-ui/icons/Lock";
import ChangePasswordModal from "./ChangePasswordModal";
import SearchIcon from "../../../icons/SearchIcon";
const styles = (theme: Theme) =>
createStyles({
@@ -260,7 +259,7 @@ const Account = ({
<Button
variant="contained"
color="primary"
startIcon={<CreateIcon />}
startIcon={<AddIcon />}
onClick={() => {
setAddScreenOpen(true);
setSelectedServiceAccount(null);

View File

@@ -27,6 +27,7 @@ import ModalWrapper from "../Common/ModalWrapper/ModalWrapper";
import api from "../../../common/api";
import CodeMirrorWrapper from "../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper";
import FormSwitchWrapper from "../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
const styles = (theme: Theme) =>
createStyles({
@@ -65,23 +66,43 @@ const AddServiceAccount = ({
}: IAddServiceAccountProps) => {
const [addSending, setAddSending] = useState<boolean>(false);
const [policyDefinition, setPolicyDefinition] = useState<string>("");
const [accessKey, setAccessKey] = useState<string>("");
const [secretKey, setSecretKey] = useState<string>("");
const [isRestrictedByPolicy, setIsRestrictedByPolicy] =
useState<boolean>(false);
const [addCredentials, setAddCredentials] = useState<boolean>(false);
useEffect(() => {
if (addSending) {
api
.invoke("POST", "/api/v1/service-accounts", {
policy: policyDefinition,
})
.then((res) => {
setAddSending(false);
closeModalAndRefresh(res);
})
.catch((err: ErrorResponseHandler) => {
setAddSending(false);
setModalErrorSnackMessage(err);
});
if (addCredentials) {
api
.invoke("POST", `/api/v1/service-account-credentials`, {
policy: policyDefinition,
accessKey: accessKey,
secretKey: secretKey,
})
.then((res) => {
setAddSending(false);
closeModalAndRefresh(res);
})
.catch((err: ErrorResponseHandler) => {
setAddSending(false);
setModalErrorSnackMessage(err);
});
} else {
api
.invoke("POST", `/api/v1/service-accounts`, {
policy: policyDefinition,
})
.then((res) => {
setAddSending(false);
closeModalAndRefresh(res);
})
.catch((err: ErrorResponseHandler) => {
setAddSending(false);
setModalErrorSnackMessage(err);
});
}
}
}, [
addSending,
@@ -89,6 +110,9 @@ const AddServiceAccount = ({
setModalErrorSnackMessage,
policyDefinition,
closeModalAndRefresh,
addCredentials,
accessKey,
secretKey,
]);
const addServiceAccount = (e: React.FormEvent) => {
@@ -139,6 +163,17 @@ const AddServiceAccount = ({
label={"Restrict with policy"}
indicatorLabels={["On", "Off"]}
/>
<FormSwitchWrapper
value="locking"
id="locking"
name="locking"
checked={addCredentials}
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
setAddCredentials(event.target.checked);
}}
label={"Customize Credentials"}
indicatorLabels={["On", "Off"]}
/>
</Grid>
{isRestrictedByPolicy && (
<Grid item xs={12}>
@@ -150,6 +185,30 @@ const AddServiceAccount = ({
/>
</Grid>
)}
{addCredentials && (
<Grid item xs={12}>
<InputBoxWrapper
value={accessKey}
label={"Access Key"}
id={"accessKey"}
name={"accessKey"}
placeholder={"Enter Access Key"}
onChange={(e) => {
setAccessKey(e.target.value);
}}
/>
<InputBoxWrapper
value={secretKey}
label={"Secret Key"}
id={"secretKey"}
name={"secretKey"}
placeholder={"Enter Secret Key"}
onChange={(e) => {
setSecretKey(e.target.value);
}}
/>
</Grid>
)}
</Grid>
<Grid container>
<Grid item xs={12} className={classes.buttonContainer}>

View File

@@ -27,7 +27,7 @@ import api from "../../../../common/api";
import AddAccessRuleModal from "./AddAccessRule";
import DeleteAccessRuleModal from "./DeleteAccessRule";
import EditAccessRuleModal from "./EditAccessRule";
import { CreateIcon } from "../../../../icons";
import { AddIcon, CreateIcon } from "../../../../icons";
import Grid from "@material-ui/core/Grid";
import {
actionsTray,
@@ -222,7 +222,7 @@ const AccessRule = ({
<Button
variant="contained"
color="primary"
startIcon={<CreateIcon />}
startIcon={<AddIcon />}
component="label"
onClick={() => {
setAddAccessRuleOpen(true);

View File

@@ -118,7 +118,7 @@ const AddReplicationModal = ({
};
api
.invoke("POST", "api/v1/buckets-replication", remoteBucketsInfo)
.invoke("POST", "/api/v1/buckets-replication", remoteBucketsInfo)
.then((response: BulkReplicationResponse) => {
setAddLoading(false);

View File

@@ -48,9 +48,9 @@ import ListItemText from "@material-ui/core/ListItemText";
import ScreenTitle from "../../Common/ScreenTitle/ScreenTitle";
import { IconButton, Tooltip } from "@material-ui/core";
import { BucketsIcon, DeleteIcon } from "../../../../icons";
import RefreshIcon from "@material-ui/icons/Refresh";
import DeleteBucket from "../ListBuckets/DeleteBucket";
import AccessRulePanel from "./AccessRulePanel";
import RefreshIcon from "../../../../icons/RefreshIcon";
const styles = (theme: Theme) =>
createStyles({
@@ -118,6 +118,10 @@ const styles = (theme: Theme) =>
},
capitalizeFirst: {
textTransform: "capitalize",
"& .MuiSvgIcon-root": {
width: 16,
height: 16,
},
},
doubleElement: {
display: "flex",

View File

@@ -20,7 +20,7 @@ import { createStyles, Theme, withStyles } from "@material-ui/core/styles";
import { Button } from "@material-ui/core";
import get from "lodash/get";
import Grid from "@material-ui/core/Grid";
import { CreateIcon } from "../../../../icons";
import { AddIcon, CreateIcon } from "../../../../icons";
import { BucketEvent, BucketEventList } from "../types";
import { setErrorSnackMessage } from "../../../../actions";
import { AppState } from "../../../../store";
@@ -133,7 +133,7 @@ const BucketEventsPanel = ({
<Button
variant="contained"
color="primary"
startIcon={<CreateIcon />}
startIcon={<AddIcon />}
size="medium"
onClick={() => {
setAddEventScreenOpen(true);

View File

@@ -22,7 +22,7 @@ import get from "lodash/get";
import * as reactMoment from "react-moment";
import Grid from "@material-ui/core/Grid";
import { LifeCycleItem } from "../types";
import { CreateIcon } from "../../../../icons";
import { AddIcon, CreateIcon } from "../../../../icons";
import {
actionsTray,
searchField,
@@ -181,7 +181,7 @@ const BucketLifecyclePanel = ({
<Button
variant="contained"
color="primary"
startIcon={<CreateIcon />}
startIcon={<AddIcon />}
size="medium"
onClick={() => {
setAddLifecycleOpen(true);

View File

@@ -19,7 +19,7 @@ import { connect } from "react-redux";
import { createStyles, Theme, withStyles } from "@material-ui/core/styles";
import { Button } from "@material-ui/core";
import Grid from "@material-ui/core/Grid";
import { CreateIcon } from "../../../../icons";
import { AddIcon, CreateIcon } from "../../../../icons";
import { setErrorSnackMessage } from "../../../../actions";
import {
actionsTray,
@@ -198,7 +198,7 @@ const BucketReplicationPanel = ({
variant="contained"
color="primary"
disabled={!canPutReplication}
startIcon={<CreateIcon />}
startIcon={<AddIcon />}
size="medium"
onClick={() => {
setOpenReplicationOpen(true);

View File

@@ -47,10 +47,10 @@ import SetAccessPolicy from "./SetAccessPolicy";
import SetRetentionConfig from "./SetRetentionConfig";
import EnableBucketEncryption from "./EnableBucketEncryption";
import EnableVersioningModal from "./EnableVersioningModal";
import UsageIcon from "../../../../icons/UsageIcon";
import GavelIcon from "@material-ui/icons/Gavel";
import EnableQuota from "./EnableQuota";
import { setBucketDetailsLoad } from "../actions";
import ReportedUsageIcon from "../../../../icons/ReportedUsageIcon";
interface IBucketSummaryProps {
classes: any;
@@ -91,6 +91,10 @@ const styles = (theme: Theme) =>
},
capitalizeFirst: {
textTransform: "capitalize",
"& .MuiSvgIcon-root": {
width: 16,
height: 16,
},
},
titleCol: {
width: "25%",
@@ -463,7 +467,7 @@ const BucketSummary = ({
<Grid item xs={4} className={classes.reportedUsage}>
<Grid container direction="row" alignItems="center">
<Grid item className={classes.icon} xs={2}>
<UsageIcon />
<ReportedUsageIcon />
</Grid>
<Grid item xs={10}>
<Typography className={classes.elementTitle}>

Some files were not shown because too many files have changed in this diff Show More