diff --git a/README.md b/README.md index d5f6ebd..31f2c7f 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,9 @@ Here is a Web UI for this API - [adminio-ui](https://github.com/rzrbld/adminio-u ![Docker hub stats](https://img.shields.io/docker/pulls/rzrbld/adminio-api?style=flat-square) ![GitHub License](https://img.shields.io/github/license/rzrbld/adminio-api?style=flat-square) +## OpenAPI v3 -### Breaking changes in 0.9 version - - - env renamed: API_HOST_PORT > ADMINIO_HOST_PORT - - API version v1 is depicated and soon will be removed. +see OpenAPI v3 specs at `openAPI/openapi_v3.yaml` or [html version](https://rzrbld.github.io/openapi/) ### Run full stack demo obtain [docker-compose.yml](https://raw.githubusercontent.com/rzrbld/adminio-ui/master/docker-compose.yml) from [adminio-ui](https://github.com/rzrbld/adminio-ui) repository. And run it: @@ -34,6 +32,9 @@ docker run -d \ ``` +### Monitoring +Adminio-API expose metrics for [Prometheus](https://prometheus.io/) at `/metrics` if `ADMINIO_METRICS_ENABLE` is set to `true`. + ### Run manually - [start](https://docs.min.io/) minio server - set env variables @@ -78,6 +79,7 @@ docker run -d \ - slack - wso2 - ### example config + + ### Example config - prometheus config for adminio metrics: `examples/prometheus.yml` - bucket lifecycle: `examples/lifecycle.xml` diff --git a/examples/lifecycle.xml b/examples/lifecycle.xml index e596988..70e2fc0 100644 --- a/examples/lifecycle.xml +++ b/examples/lifecycle.xml @@ -4,7 +4,10 @@ Enabled - + + Key + Value + 1 diff --git a/openAPI/openapi.html b/openAPI/openapi.html new file mode 100644 index 0000000..99e9b04 --- /dev/null +++ b/openAPI/openapi.html @@ -0,0 +1,380 @@ + + + + + + Adminio API + + + + + + + + + +

Adminio API (2.0.0)

Download OpenAPI specification:Download

Adminio API

+

bucket

List all buckets

Responses

200

List all buckets

+
default

unexpected error

+
get/buckets/list
http://localhost:8080/api/v2/buckets/list

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
[
  • {
    }
]

List all buckets with ARN's and Quota's

Responses

200

List all buckets plus ARN and Quota

+
default

unexpected error

+
get/buckets/list-extended
http://localhost:8080/api/v2/buckets/list-extended

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
[
  • {
    }
]

Create a bucket

Request Body schema: multipart/form-data
newBucket
string <string>
newBucketRegion
string <string>

Responses

200

Success

+
default

unexpected error

+
post/bucket/create
http://localhost:8080/api/v2/bucket/create

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Delete bucket

Request Body schema: multipart/form-data
bucketName
string <string>

Responses

200

Success

+
default

unexpected error

+
post/bucket/delete
http://localhost:8080/api/v2/bucket/delete

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

remove bucket events notifications

Request Body schema: multipart/form-data
bucket
string <string>

Responses

200

Success

+
default

unexpected error

+
post/bucket/remove-events
http://localhost:8080/api/v2/bucket/remove-events

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Set bucket events

Request Body schema: multipart/form-data
bucket
string <string>
eventTypes
string <string>
filterPrefix
string <string>
filterSuffix
string <string>

Responses

200

lifecycle XML string or empty string if lifecycle does not exist

+
default

unexpected error

+
post/bucket/set-events
http://localhost:8080/api/v2/bucket/set-events

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Get bucket events

Request Body schema: multipart/form-data
bucket
string <string>

Responses

200

return bucket event

+
default

unexpected error

+
post/bucket/get-events
http://localhost:8080/api/v2/bucket/get-events

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "XMLname":
    {
    },
  • "LambdaConfigs": { },
  • "TopicConfigs": { },
  • "QueueConfigs": { }
}

Get bucket lifecycle

Request Body schema: multipart/form-data
bucketName
string <string>

Responses

200

lifecycle XML string or empty string if lifecycle does not exist

+
default

unexpected error

+
post/bucket/get-lifecycle
http://localhost:8080/api/v2/bucket/get-lifecycle

Response samples

Content type
application/json
Copy
Expand all Collapse all
"string"

Set bucket lifecycle

Request Body schema: multipart/form-data
bucketName
string <string>
lifecycle
string <string>

lifecycle XML string

+

Responses

200

Success

+
default

unexpected error

+
post/bucket/set-lifecycle
http://localhost:8080/api/v2/bucket/set-lifecycle

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Set bucket quota

Request Body schema: multipart/form-data
bucketName
string <string>
quotaType
string <string>
quotaValue
string <string>

quota size in bytes

+

Responses

200

Success

+
default

unexpected error

+
post/bucket/set-quota
http://localhost:8080/api/v2/bucket/set-quota

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Get bucket quota

Request Body schema: multipart/form-data
bucketName
string <string>

Responses

200

bucket quota

+
default

unexpected error

+
post/bucket/get-quota
http://localhost:8080/api/v2/bucket/get-quota

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "quota": 0,
  • "quotatype": "string"
}

Remove bucket quota

Request Body schema: multipart/form-data
bucketName
string <string>

Responses

200

Success

+
default

unexpected error

+
post/bucket/remove-quota
http://localhost:8080/api/v2/bucket/remove-quota

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

user

List all users

Responses

200

List all users

+
default

unexpected error

+
get/users/list
http://localhost:8080/api/v2/users/list

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
{
  • "name":
    {
    }
}

Set User status

Request Body schema: multipart/form-data
accessKey
string <string>
status
string <string>
Enum: "enabled" "disabled"

Responses

200

Success

+
default

unexpected error

+
post/user/set-status
http://localhost:8080/api/v2/user/set-status

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Delete User

Request Body schema: multipart/form-data
accessKey
string <string>

Responses

200

Success

+
default

unexpected error

+
post/user/delete
http://localhost:8080/api/v2/user/delete

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Create User

Request Body schema: multipart/form-data
accessKey
string <string>
secretKey
string <string>

Responses

200

Success

+
default

unexpected error

+
post/user/create
http://localhost:8080/api/v2/user/create

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Create User with bounded policy

Request Body schema: multipart/form-data
accessKey
string <string>
secretKey
string <string>
policyName
string <string>

Responses

200

Success

+
default

unexpected error

+
post/user/create-extended
http://localhost:8080/api/v2/user/create-extended

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Update User - change policy or status

Request Body schema: multipart/form-data
accessKey
string <string>
secretKey
string <string>
policyName
string <string>
status
string <string>
Enum: "enabled" "disabled"

Responses

200

Success

+
default

unexpected error

+
post/user/update
http://localhost:8080/api/v2/user/update

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

policy

List all policies

Responses

200

List all policies

+
default

unexpected error

+
get/policies/list
http://localhost:8080/api/v2/policies/list

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
{
  • "name":
    {
    }
}

Create policy

Request Body schema: multipart/form-data
policyName
string <string>
policyString
string <string>

Responses

200

Success

+
default

unexpected error

+
post/policy/create
http://localhost:8080/api/v2/policy/create

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Delete policy

Request Body schema: multipart/form-data
policyName
string <string>

Responses

200

Success

+
default

unexpected error

+
post/policy/delete
http://localhost:8080/api/v2/policy/delete

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Bound policy to user or group

Request Body schema: multipart/form-data
policyName
string <string>

Ploicy Name

+
entityName
string <string>

Group or User name

+
isGroup
boolean <boolean>
Enum: true false

Responses

200

Success

+
default

unexpected error

+
post/policy/update
http://localhost:8080/api/v2/policy/update

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

group

Group set status

Request Body schema: multipart/form-data
group
string <string>

Group Name

+
status
boolean <boolean>
Enum: "enabled" "disabled"

Responses

200

Success

+
default

unexpected error

+
post/group/set-status
http://localhost:8080/api/v2/group/set-status

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

Group get description

Request Body schema: multipart/form-data
group
string <string>

Group Name

+

Responses

200

Success

+
default

unexpected error

+
post/group/get-description
http://localhost:8080/api/v2/group/get-description

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "string",
  • "status": "string",
  • "members":
    [
    ],
  • "policy": "string"
}

Update Group members

Request Body schema: multipart/form-data
group
string <string>

Group Name

+
members
string <string>

multiple usernames with comma delimiter

+
IsRemove
boolean <boolean>
Enum: true false

set false if you need remove members from group

+

Responses

200

Success

+
default

unexpected error

+
post/group/update-members
http://localhost:8080/api/v2/group/update-members

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Success": "OK"
}

List all groups

Responses

200

List all groups

+
default

unexpected error

+
get/groups/list
http://localhost:8080/api/v2/groups/list

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
[
  • "string"
]

server

Server basic info

Responses

200

Server Info

+
default

unexpected error

+
get/server/common-info
http://localhost:8080/api/v2/server/common-info

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
{
  • "mode": "string",
  • "sqsARN":
    [
    ],
  • "deploymentID": "string",
  • "buckets":
    {
    },
  • "objects":
    {
    },
  • "usage":
    {
    },
  • "services":
    {
    },
  • "backend":
    {
    },
  • "servers":
    [
    ]
}

Server disk info

Responses

200

Server Disk Info

+
default

unexpected error

+
get/server/disk-info
http://localhost:8080/api/v2/server/disk-info

Response samples

Content type
application/json; charset=UTF-8
Copy
Expand all Collapse all
{
  • "lastUpdate": "string",
  • "objectsCount": 0,
  • "objectsTotalSize": 0,
  • "objectsSizesHistogram":
    {
    },
  • "bucketsCount": 0,
  • "bucketsSizes": { }
}

kv

get value by key

Request Body schema: multipart/form-data
keyString
string <string>

Group Name

+

Responses

200

base64 string

+
default

unexpected error

+
post/kv/get
http://localhost:8080/api/v2/kv/get

Response samples

Content type
application/json
Copy
Expand all Collapse all
"string"
+ + + + \ No newline at end of file diff --git a/openAPI/openapi_v3.yaml b/openAPI/openapi_v3.yaml new file mode 100644 index 0000000..c516013 --- /dev/null +++ b/openAPI/openapi_v3.yaml @@ -0,0 +1,1071 @@ +openapi: "3.0.0" +info: + description: "Adminio API" + version: "2.0.0" + title: "Adminio API" + contact: + name: "rzrbld at github.com" + url: "https://github.com/rzrbld/adminio-api/issues" + license: + name: "MIT" + url: "https://github.com/rzrbld/adminio-api/blob/master/LICENSE" +servers: + - url: http://localhost:8080/api/v2 +paths: + /buckets/list: + get: + summary: List all buckets + operationId: listBuckets + tags: + - bucket + responses: + '200': + description: List all buckets + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/BucketList" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /buckets/list-extended: + get: + summary: List all buckets with ARN's and Quota's + operationId: listBucketsExtended + tags: + - bucket + responses: + '200': + description: List all buckets plus ARN and Quota + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/BucketListExtended" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/create: + post: + summary: Create a bucket + operationId: createBucket + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + newBucket: + type: string + format: string + newBucketRegion: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/delete: + post: + summary: Delete bucket + operationId: deleteBucket + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucketName: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/remove-events: + post: + summary: remove bucket events notifications + operationId: removeBucketEvents + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucket: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/set-events: + post: + summary: Set bucket events + operationId: setBucketEvents + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucket: + type: string + format: string + eventTypes: + type: string + format: string + filterPrefix: + type: string + format: string + filterSuffix: + type: string + format: string + responses: + '200': + description: lifecycle XML string or empty string if lifecycle does not exist + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/get-events: + post: + summary: Get bucket events + operationId: getBucketEvents + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucket: + type: string + format: string + responses: + '200': + description: return bucket event + content: + application/json: + schema: + $ref: "#/components/schemas/BucketEvent" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/get-lifecycle: + post: + summary: Get bucket lifecycle + operationId: getBucketLifecycle + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucketName: + type: string + format: string + responses: + '200': + description: lifecycle XML string or empty string if lifecycle does not exist + content: + application/json: + schema: + $ref: "#/components/schemas/BucketLifecycle" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/set-lifecycle: + post: + summary: Set bucket lifecycle + operationId: setBucketLifecycle + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucketName: + type: string + format: string + lifecycle: + description: lifecycle XML string + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/set-quota: + post: + summary: Set bucket quota + operationId: setBucketQuota + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucketName: + type: string + format: string + quotaType: + type: string + format: string + quotaValue: + description: quota size in bytes + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/get-quota: + post: + summary: Get bucket quota + operationId: getBucketQuota + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucketName: + type: string + format: string + responses: + '200': + description: bucket quota + content: + application/json: + schema: + $ref: "#/components/schemas/BucketQuota" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /bucket/remove-quota: + post: + summary: Remove bucket quota + operationId: removeBucketQuota + tags: + - bucket + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bucketName: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /users/list: + get: + summary: List all users + operationId: listUsers + tags: + - user + responses: + '200': + description: List all users + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/UserList" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /user/set-status: + post: + summary: Set User status + operationId: setUserStatus + tags: + - user + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + accessKey: + type: string + format: string + status: + enum: [enabled, disabled] + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /user/delete: + post: + summary: Delete User + operationId: deleteUser + tags: + - user + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + accessKey: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /user/create: + post: + summary: Create User + operationId: createUser + tags: + - user + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + accessKey: + type: string + format: string + secretKey: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /user/create-extended: + post: + summary: Create User with bounded policy + operationId: createUserWPolicy + tags: + - user + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + accessKey: + type: string + format: string + secretKey: + type: string + format: string + policyName: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /user/update: + post: + summary: Update User - change policy or status + operationId: updateUser + tags: + - user + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + accessKey: + type: string + format: string + secretKey: + type: string + format: string + policyName: + type: string + format: string + status: + type: string + format: string + enum: [enabled, disabled] + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /policies/list: + get: + summary: List all policies + operationId: listPolicy + tags: + - policy + responses: + '200': + description: List all policies + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/PolicyList" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /policy/create: + post: + summary: Create policy + operationId: createPolicy + tags: + - policy + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + policyName: + type: string + format: string + policyString: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /policy/delete: + post: + summary: Delete policy + operationId: deletePolicy + tags: + - policy + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + policyName: + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /policy/update: + post: + summary: Bound policy to user or group + operationId: setPolicy + tags: + - policy + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + policyName: + description: Ploicy Name + type: string + format: string + entityName: + description: Group or User name + type: string + format: string + isGroup: + type: boolean + format: boolean + enum: [true,false] + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /group/set-status: + post: + summary: Group set status + operationId: groupSetStatus + tags: + - group + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + group: + description: Group Name + type: string + format: string + status: + type: boolean + format: boolean + enum: [enabled,disabled] + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /group/get-description: + post: + summary: Group get description + operationId: groupGetDescription + tags: + - group + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + group: + description: Group Name + type: string + format: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/GroupInfo" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /group/update-members: + post: + summary: Update Group members + operationId: groupUpdateMembers + tags: + - group + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + group: + description: Group Name + type: string + format: string + members: + description: multiple usernames with comma delimiter + type: string + format: string + IsRemove: + description: set false if you need remove members from group + type: boolean + format: boolean + enum: [true,false] + + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/Success" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /groups/list: + get: + summary: List all groups + operationId: groupsList + tags: + - group + responses: + '200': + description: List all groups + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/GroupList" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /server/common-info: + get: + summary: Server basic info + operationId: serverCommonInfo + tags: + - server + responses: + '200': + description: Server Info + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/ServerInfo" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /server/disk-info: + get: + summary: Server disk info + operationId: serverDiskInfo + tags: + - server + responses: + '200': + description: Server Disk Info + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/ServerDisk" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /kv/get: + post: + summary: get value by key + operationId: kvGet + tags: + - kv + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + keyString: + description: Group Name + type: string + format: string + responses: + '200': + description: base64 string + content: + application/json: + schema: + $ref: "#/components/schemas/GetKV" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + +components: + schemas: + GetKV: + type: string + ServerDisk: + type: object + properties: + lastUpdate: + type: string + objectsCount: + type: integer + objectsTotalSize: + type: integer + objectsSizesHistogram: + type: object + properties: + BETWEEN_1024_B_AND_1_MB: + type: integer + BETWEEN_10_MB_AND_64_MB: + type: integer + BETWEEN_128_MB_AND_512_MB: + type: integer + BETWEEN_1_MB_AND_10_MB: + type: integer + BETWEEN_64_MB_AND_128_MB: + type: integer + GREATER_THAN_512_MB: + type: integer + LESS_THAN_1024_B: + type: integer + bucketsCount: + type: integer + bucketsSizes: + type: object + ServerInfo: + type: object + properties: + mode: + type: string + sqsARN: + type: array + items: + type: string + deploymentID: + type: string + buckets: + type: object + properties: + count: + type: integer + objects: + type: object + properties: + count: + type: integer + usage: + type: object + properties: + size: + type: integer + services: + type: object + properties: + vault: + type: object + properties: + status: + type: string + ldap: + type: object + notifications: + type: array + items: + type: object + properties: + kafka: + type: array + items: + type: object + backend: + type: object + properties: + backendType: + type: string + servers: + type: array + items: + type: object + properties: + state: + type: string + endpoint: + type: string + uptime: + type: string + version: + type: string + commitID: + type: string + network: + type: object + disks: + type: array + items: + type: object + properties: + path: + type: string + state: + type: string + totalspace: + type: string + usedspace: + type: string + UserInfo: + properties: + name: + type: object + properties: + policyName: + type: string + status: + type: string + GroupInfo: + properties: + name: + type: string + status: + type: string + members: + type: array + items: + type: string + policy: + type: string + PolicyInfo: + properties: + name: + type: object + properties: + Version: + type: string + Statement: + type: array + items: + type: object + properties: + Effect: + type: string + Action: + type: array + items: + type: string + Resource: + type: array + items: + type: string + UserList: + type: object + $ref: "#/components/schemas/UserInfo" + PolicyList: + type: object + $ref: "#/components/schemas/PolicyInfo" + GroupList: + type: array + items: + type: string + + BucketEvent: + type: object + properties: + XMLname: + type: object + properties: + Space: + type: string + Local: + type: string + LambdaConfigs: + type: object + TopicConfigs: + type: object + QueueConfigs: + type: object + BucketQuota: + type: object + properties: + quota: + type: integer + quotatype: + type: string + BucketInfo: + type: object + properties: + name: + type: string + creationDate: + type: string + BucketList: + type: array + items: + $ref: "#/components/schemas/BucketInfo" + BucketListExtended: + type: array + items: + type: object + properties: + events: + $ref: "#/components/schemas/BucketEvent" + info: + $ref: "#/components/schemas/BucketInfo" + quota: + $ref: "#/components/schemas/BucketQuota" + BucketLifecycle: + type: string + Error: + type: object + required: + - error + properties: + error: + type: string + Success: + type: object + example: {"Success":"OK"} + required: + - Success + properties: + Success: + type: string + diff --git a/src/go.mod b/src/go.mod index a984599..b799658 100644 --- a/src/go.mod +++ b/src/go.mod @@ -4,35 +4,54 @@ go 1.14 require ( github.com/ajg/form v1.5.1 // indirect - github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5 // indirect - github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072 // indirect + github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/go-check/check v0.0.0-20200227125254-8fa46927fb4f // indirect + github.com/golang/protobuf v1.4.2 // indirect github.com/google/go-querystring v1.0.0 // indirect + github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect github.com/gorilla/securecookie v1.1.1 + github.com/gorilla/websocket v1.4.2 // indirect github.com/imkira/go-interpol v1.1.0 // indirect + github.com/iris-contrib/jade v1.1.4 // indirect github.com/iris-contrib/middleware/cors v0.0.0-20191219204441-78279b78a367 github.com/iris-contrib/middleware/prometheus v0.0.0-20191219204441-78279b78a367 github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 // indirect + github.com/kataras/golog v0.0.15 // indirect github.com/kataras/iris/v12 v12.1.8 - github.com/markbates/goth v1.62.0 - github.com/mattn/go-isatty v0.0.8 // indirect - github.com/minio/minio v0.0.0-20200422230658-6817c5ea58fb - github.com/minio/minio-go/v6 v6.0.53 + github.com/klauspost/compress v1.10.5 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/markbates/goth v1.64.0 + github.com/mattn/go-colorable v0.1.6 // indirect + github.com/minio/minio v0.0.0-20200518183557-a3f41c70498c + github.com/minio/minio-go/v6 v6.0.55 + github.com/montanaflynn/stats v0.6.3 // indirect github.com/moul/http2curl v1.0.0 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/onsi/ginkgo v1.12.0 // indirect - github.com/onsi/gomega v1.9.0 // indirect - github.com/prometheus/client_golang v1.2.1 - github.com/rzrbld/goth-provider-wso2 v0.0.0-20200321083654-32bbe73a67d4 - github.com/satori/go.uuid v1.2.0 // indirect + github.com/onsi/gomega v1.10.0 // indirect + github.com/prometheus/client_golang v1.6.0 + github.com/prometheus/common v0.10.0 // indirect + github.com/rzrbld/goth-provider-wso2 v0.0.0-20200321130802-e588ec0a9128 + github.com/secure-io/sio-go v0.3.1 // indirect github.com/sergi/go-diff v1.1.0 // indirect + github.com/shirou/gopsutil v2.20.4+incompatible // indirect github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - github.com/skyrings/skyring-common v0.0.0-20160929130248-d1c0bb1cbd5e // indirect - github.com/valyala/fasthttp v1.9.0 // indirect + github.com/smartystreets/assertions v1.1.0 // indirect + github.com/smartystreets/goconvey v1.6.4 // indirect + github.com/valyala/fasthttp v1.12.0 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 // indirect github.com/yudai/gojsondiff v1.0.0 // indirect github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect github.com/yudai/pp v2.0.1+incompatible // indirect - golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect - gopkg.in/yaml.v2 v2.2.8 // indirect + golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37 // indirect + golang.org/x/net v0.0.0-20200513185701-a91f0712d120 // indirect + golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9 // indirect + google.golang.org/appengine v1.6.6 // indirect + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect + gopkg.in/ini.v1 v1.56.0 // indirect + gopkg.in/yaml.v2 v2.3.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20200506231410-2ff61e1afc86 // indirect ) diff --git a/src/go.sum b/src/go.sum index 4ce4f00..d6bfff9 100644 --- a/src/go.sum +++ b/src/go.sum @@ -29,12 +29,10 @@ github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrU github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/alecthomas/participle v0.2.1/go.mod h1:SW6HZGeZgSIpcUWX3fXpfZhuaWHnmoD5KCVaqSaNTkk= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= @@ -42,7 +40,6 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/aws/aws-sdk-go v1.20.21/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible h1:Ppm0npCCsmuR9oQaBtRuZcmILVE74aXE+AmrJj8L2ns= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= -github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/bcicen/jstream v0.0.0-20190220045926-16c1f8af81c2/go.mod h1:RDu/qcrnpEdJC/p8tx34+YBFqqX71lB7dOX9QE+ZC4M= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= @@ -72,6 +69,7 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -102,6 +100,8 @@ github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60 github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/gavv/httpexpect v2.0.0+incompatible h1:1X9kcRshkSKEjNJJxX9Y9mQ5BRfbxU5kORdjhlA1yX8= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -109,6 +109,8 @@ github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ER github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-check/check v0.0.0-20200227125254-8fa46927fb4f h1:tbYkvK0CuMDlW7nrz4u/f5WBxOcuBfHks7OGQjFyrPE= +github.com/go-check/check v0.0.0-20200227125254-8fa46927fb4f/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= @@ -133,6 +135,13 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= @@ -141,16 +150,21 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190328170749-bb2674552d8f h1:4Gslotqbs16iAg+1KR/XdabIfq8TlAWHdwS5QJFksLc= github.com/gopherjs/gopherjs v0.0.0-20190328170749-bb2674552d8f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0= +github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.4.0/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= @@ -162,6 +176,8 @@ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+ github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -206,6 +222,8 @@ github.com/iris-contrib/go.uuid v2.0.0+incompatible h1:XZubAYg61/JwnJNbZilGjf3b3 github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/jade v1.1.3 h1:p7J/50I0cjo0wq/VWVCDFd8taPJbuFC+bq23SniRFX0= github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/jade v1.1.4 h1:WoYdfyJFfZIUgqNAeOyRfTNQZOksSlZ6+FnXR3AEpX0= +github.com/iris-contrib/jade v1.1.4/go.mod h1:EDqR+ur9piDl6DUgs6qRrlfzmlx/D5UybogqrXvJTBE= github.com/iris-contrib/middleware/cors v0.0.0-20191219204441-78279b78a367 h1:8sqPsO9g8khKdBGu9jJ1O7EgOblntuv1sLra6UVpuNY= github.com/iris-contrib/middleware/cors v0.0.0-20191219204441-78279b78a367/go.mod h1:2p74oN7zAlsFSyDjs23eCuG4lzouZycTEg9nHGe0cnM= github.com/iris-contrib/middleware/prometheus v0.0.0-20191219204441-78279b78a367 h1:VvQdoH+6VUc8KTPXCHg6akE5ABVUnqTWR5bNKHtd3LE= @@ -233,6 +251,10 @@ github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQ github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kataras/golog v0.0.10 h1:vRDRUmwacco/pmBAm8geLn8rHEdc+9Z4NAr5Sh7TG/4= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/golog v0.0.13 h1:zWzk56eWBkdV4kPq3Koh8PS4pUfNQUfHuLc3YACpM7c= +github.com/kataras/golog v0.0.13/go.mod h1:lMz0gaBYitlMKvVn2Ykw0WpRoqHrq1kjWId/iLrH67I= +github.com/kataras/golog v0.0.15 h1:NPpVJt7Usc741IahumyieIj6j4q0WbwCq+YaLcBWTqc= +github.com/kataras/golog v0.0.15/go.mod h1:lMz0gaBYitlMKvVn2Ykw0WpRoqHrq1kjWId/iLrH67I= github.com/kataras/iris/v12 v12.1.2/go.mod h1:x8XU9FcsqdBvFyDA9brryw7Px8UZ8lquXwVaYKRzBBc= github.com/kataras/iris/v12 v12.1.8 h1:O3gJasjm7ZxpxwTH8tApZsvf274scSGQAUpNe47c37U= github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= @@ -240,6 +262,8 @@ github.com/kataras/neffos v0.0.12/go.mod h1:V8lRtjUHJWfwwoJHI0Pv/AYnJa3gvr6TPBTQ github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= github.com/kataras/pio v0.0.2 h1:6NAi+uPJ/Zuid6mrAKlgpbI11/zK/lV4B2rxWaJN98Y= github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/pio v0.0.6 h1:Fk21upgXuB6VKHuH/sY13g6fzA5Gn+rKjV0ReXST484= +github.com/kataras/pio v0.0.6/go.mod h1:NFfMp2kVP1rmV4N6gH6qgWpuoDKlrOeYi3VrAIWCGsE= github.com/kataras/sitemap v0.0.5 h1:4HCONX5RLgVy6G4RkYOV3vKNcma9p236LdGOipJsaFE= github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= @@ -251,11 +275,14 @@ github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0 github.com/klauspost/compress v1.10.1/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.3 h1:OP96hzwJVBIHYU52pVTI6CczrxPvrGfgqF9N5eTO0Q8= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/compress v1.10.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.10.5 h1:7q6vHIqubShURwQz8cQK6yIe/xC3IF0Vm7TGfqjewrc= +github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/cpuid v1.2.2/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.2.4/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/readahead v1.3.1/go.mod h1:AH9juHzNH7xqdqFHrMRSHeH2Ps+vFf+kblDqzPFiLJg= -github.com/klauspost/reedsolomon v1.9.3/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4= +github.com/klauspost/reedsolomon v1.9.7/go.mod h1:+8WD025Xpby8/kG5h/HDPIFhiiuGEtZOKw+5Y4drAD8= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= @@ -263,8 +290,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kurin/blazer v0.5.4-0.20190613185654-cf2f27cc0be3/go.mod h1:4FCXMUWo9DllR2Do4TtBd377ezyAJ51vB5uTBjt0pGU= -github.com/kurin/blazer v0.5.4-0.20200327014341-8f90a40f8af7/go.mod h1:4FCXMUWo9DllR2Do4TtBd377ezyAJ51vB5uTBjt0pGU= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lestrrat-go/jwx v0.9.0/go.mod h1:iEoxlYfZjvoGpuWwxUz+eR5e6KTJGsaRcy/YNA/UnBk= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -272,17 +299,21 @@ github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5/go.mod h1:C1wdFJiN github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA= github.com/markbates/goth v1.62.0 h1:8gyLomXU/bbVcee1zbHmV+S2ieh4sFssPuydNVYmPmg= github.com/markbates/goth v1.62.0/go.mod h1:qh2QfwZoWRucQ+DR5KVKC6dUGkNCToWh4vS45GIzFsY= +github.com/markbates/goth v1.64.0 h1:TXmIGRrY3Rf/a5qbx8MIGnz1rD9SkIn0UzRoDqHyJLs= +github.com/markbates/goth v1.64.0/go.mod h1:qh2QfwZoWRucQ+DR5KVKC6dUGkNCToWh4vS45GIzFsY= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-ieproxy v0.0.0-20190805055040-f9202b1cfdeb/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7 h1:UvyT9uN+3r7yLEYSlJsbQGdsaB/a0DlgWP3pql6iwOc= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= @@ -298,16 +329,15 @@ github.com/minio/gokrb5/v7 v7.2.5/go.mod h1:z6fE6twrvMN004M+KRTHnmtfpxsBIztP0PVs github.com/minio/hdfs/v3 v3.0.1/go.mod h1:6ALh9HsAwG9xAXdpdrZJcSY0vR6z3K+9XIz6Y9pQG/c= github.com/minio/highwayhash v1.0.0/go.mod h1:xQboMTeM9nY9v/LlAOxFctujiv5+Aq2hR5dxBpaMbdc= github.com/minio/lsync v1.0.1/go.mod h1:tCFzfo0dlvdGl70IT4IAK/5Wtgb0/BrTmo/jE8pArKA= -github.com/minio/minio v0.0.0-20200315185552-c9212819afbf h1:srtxK7j7Pl46viXLDRGYcr+hQP/pNf5zqIQsPcpZ5bU= -github.com/minio/minio v0.0.0-20200315185552-c9212819afbf/go.mod h1:QbCnTGb/blyNjrkyxB9ecKxtuWWUdcHShqED1bItwa0= -github.com/minio/minio v0.0.0-20200422230658-6817c5ea58fb h1:qDqH+rGTsORP1Y7M8JSswlWPl5L35C9fuz9VR2qhe8Y= -github.com/minio/minio v0.0.0-20200422230658-6817c5ea58fb/go.mod h1:zBua5AiljGs1Irdl2XEyiJjvZVCVDIG8gjozzRBcVlw= -github.com/minio/minio-go/v6 v6.0.45/go.mod h1:qD0lajrGW49lKZLtXKtCB4X/qkMf0a5tBvN2PaZg7Gg= -github.com/minio/minio-go/v6 v6.0.50-0.20200306231101-b882ba63d570 h1:GLTZoRC6rhCTucnkJAQ63LhMU2S4CM71MRc9gfX7ohE= -github.com/minio/minio-go/v6 v6.0.50-0.20200306231101-b882ba63d570/go.mod h1:qD0lajrGW49lKZLtXKtCB4X/qkMf0a5tBvN2PaZg7Gg= +github.com/minio/minio v0.0.0-20200514221824-fe8d33452bb9 h1:dFEqJyuuwQ+VeUm9pJ0w1UoxyrcQMxrLgyKRaZwk3FI= +github.com/minio/minio v0.0.0-20200514221824-fe8d33452bb9/go.mod h1:wymaytM/HELuwdz7BGZHmQ3XKq2SxPsLeGxyOCaCLiA= +github.com/minio/minio v0.0.0-20200518183557-a3f41c70498c h1:D1oiteaehouuJUb6xEw7+dBiHFF+iKZp+nzGN7BEFXw= +github.com/minio/minio v0.0.0-20200518183557-a3f41c70498c/go.mod h1:wymaytM/HELuwdz7BGZHmQ3XKq2SxPsLeGxyOCaCLiA= github.com/minio/minio-go/v6 v6.0.53 h1:8jzpwiOzZ5Iz7/goFWqNZRICbyWYShbb5rARjrnSCNI= github.com/minio/minio-go/v6 v6.0.53/go.mod h1:DIvC/IApeHX8q1BAMVCXSXwpmrmM+I+iBvhvztQorfI= -github.com/minio/parquet-go v0.0.0-20200125064549-a1e49702e174/go.mod h1:PXYM9yI2l0YPmxHUXe6mFTmkQcyaVasDshAPTbGpDoo= +github.com/minio/minio-go/v6 v6.0.55-0.20200425081427-89eebdef2af0/go.mod h1:KQMM+/44DSlSGSQWSfRrAZ12FVMmpWNuX37i2AX0jfI= +github.com/minio/minio-go/v6 v6.0.55 h1:Hqm41952DdRNKXM+6hCnPXCsHCYSgLf03iuYoxJG2Wk= +github.com/minio/minio-go/v6 v6.0.55/go.mod h1:KQMM+/44DSlSGSQWSfRrAZ12FVMmpWNuX37i2AX0jfI= github.com/minio/parquet-go v0.0.0-20200414234858-838cfa8aae61/go.mod h1:4trzEJ7N1nBTd5Tt7OCZT5SEin+WiAXpdJ/WgPkESA8= github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= @@ -331,6 +361,8 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/montanaflynn/stats v0.5.0 h1:2EkzeTSqBB4V4bJwWrt5gIIrZmpJBcoIRGS2kWLgzmk= github.com/montanaflynn/stats v0.5.0/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/montanaflynn/stats v0.6.3 h1:F8446DrvIF5V5smZfZ8K9nrmmix0AFgevPdLruGOmzk= +github.com/montanaflynn/stats v0.6.3/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/moul/http2curl v1.0.0 h1:dRMWoAtb+ePxMlLkrCbAqh4TlPHXvoGUSQ323/9Zahs= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= @@ -352,14 +384,16 @@ github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OS github.com/nats-io/stan.go v0.4.5/go.mod h1:Ji7mK6gRZJSH1nc3ZJH6vi7zn/QnZhpR9Arm4iuzsUQ= github.com/ncw/directio v1.0.5 h1:JSUBhdjEvVaJvOoyPAbcW0fnd0tvRXD76wEfZ1KcQz4= github.com/ncw/directio v1.0.5/go.mod h1:rX/pKEYkOXBGOggmcyJeJGloCkleSvphPx2eV3t6ROk= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nsqio/go-nsq v1.0.7/go.mod h1:XP5zaUs3pqf+Q71EqUJs3HYfBIqfK6G83WQMdNN+Ito= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0 h1:R1uwffexN6Pr340GtYRIdZmAiN4J+iw6WG4wog1DUXg= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.0 h1:Gwkk+PTu/nfOwNMtUB/mRUv0X7ewW5dO4AERT1ThVKo= +github.com/onsi/gomega v1.10.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/getopt v0.0.0-20180729010549-6fdd0a2c7117/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -379,18 +413,25 @@ github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.2.1 h1:JnMpQc6ppsNgw9QPAGF6Dod479itz7lvlsMzzNayLOI= github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= +github.com/prometheus/client_golang v1.6.0 h1:YVPodQOcK15POxhgARIvnDRVpLcuK8mglnMrWfyrw6A= +github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVwNU= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1 h1:/K3IL0Z1quvmJ7X0A1AwNEK7CRkVK3YwfOU/QAL4WGg= @@ -398,44 +439,50 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.11 h1:DhHlBtkHWPYi8O2y31JkK0TF+DGM+51OopZjH/Ia5qI= +github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20190704165056-9c2d0518ed81/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/ryanuber/columnize v2.1.0+incompatible h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/rzrbld/goth v1.62.3 h1:EKGvHbyU4IEPbMRpwOSyDmILV9FZqMKdkYfOlJCrU/Y= -github.com/rzrbld/goth v1.62.3/go.mod h1:hqgGa9cYUCo/mzJdZK3zyHPftrI2fS7Le8rgyjFw8S0= -github.com/rzrbld/goth-provider-wso2 v0.0.0-20200321083654-32bbe73a67d4 h1:HoI5blpd/i1X1eJZv6iFxMV0mrs1+zNSsESLLwc2y9A= -github.com/rzrbld/goth-provider-wso2 v0.0.0-20200321083654-32bbe73a67d4/go.mod h1:xOQjs3CZLeZPuO0TM+cmiIGA+HPVln0XT8u/pIx5dxs= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/rzrbld/goth-provider-wso2 v0.0.0-20200321130802-e588ec0a9128 h1:n7seLexs1XAEcK+cnw6zFilhzwt4VbpzOAJa5mvitFE= +github.com/rzrbld/goth-provider-wso2 v0.0.0-20200321130802-e588ec0a9128/go.mod h1:08qch4PIgDe6P5BnaHEoE/91ZXCg4bDoHDw9v7gUyUg= github.com/schollz/closestmatch v2.1.0+incompatible h1:Uel2GXEpJqOWBrlyI+oY9LTiyyjYS17cCYRqP13/SHk= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/secure-io/sio-go v0.3.0 h1:QKGb6rGJeiExac9wSWxnWPYo8O8OFN7lxXQvHshX6vo= github.com/secure-io/sio-go v0.3.0/go.mod h1:D3KmXgKETffyYxBdFRN+Hpd2WzhzqS0EQwT3XWsAcBU= +github.com/secure-io/sio-go v0.3.1 h1:dNvY9awjabXTYGsTF1PiCySl9Ltofk9GA3VdWlo7rRc= +github.com/secure-io/sio-go v0.3.1/go.mod h1:+xbkjDzPjwh4Axd07pRKSNriS9SCiYksWnZqdnfpQxs= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= -github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v2.20.3-0.20200314133625-53cec6b37e6a+incompatible h1:YiKUe2ZOmfpDBH4OSyxwkx/mjNqHHnNhOtZ2mPyRme8= github.com/shirou/gopsutil v2.20.3-0.20200314133625-53cec6b37e6a+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v2.20.4+incompatible h1:cMT4rxS55zx9NVUnCkrmXCsEB/RNfG9SwHY9evtX8Ng= +github.com/shirou/gopsutil v2.20.4+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= -github.com/skyrings/skyring-common v0.0.0-20160929130248-d1c0bb1cbd5e/go.mod h1:d8hQseuYt4rJoOo21lFzYJdhMjmDqLY++ayArbgYjWI= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 h1:hBSHahWMEgzwRyS6dRpxY0XyjZsHyQ61s084wo5PJe0= github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v1.1.0 h1:MkTeG1DMwsrdH7QtLXy5W+fUxWq+vmb6cLmyJ7aRtF0= +github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -464,13 +511,17 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.9.0 h1:hNpmUdy/+ZXYpGy0OBfm7K0UQTzb73W0T0U4iJIVrMw= -github.com/valyala/fasthttp v1.9.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasthttp v1.12.0 h1:TsB9qkSeiMXB40ELWWSRMjlsE+8IkqXHcs01y2d9aw0= +github.com/valyala/fasthttp v1.12.0/go.mod h1:229t1eWu9UXTPmoUkbpN/fctKPBY4IJoFXQnxHGXy6E= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bloom v2.0.3+incompatible/go.mod h1:MmAltL9pDMNTrvUkxdg0k0q5I0suxmuwp3KbyrZLOZ8= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= @@ -485,11 +536,13 @@ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 h1:BHyfKlQyqbsFN5p3Ifn github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= github.com/yudai/pp v2.0.1+incompatible h1:Q4//iY4pNF6yPLZIigmvcl7k/bPgrcTPIFIcmawg5bI= github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= golang.org/x/arch v0.0.0-20190909030613-46d78d1859ac/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -497,17 +550,25 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37 h1:cg5LA/zNPRzIXIWSCxQW10Rvpy94aQh3LT/ShoCpkHw= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -521,16 +582,16 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200320220750-118fecf932d8 h1:1+zQlQqEEhUeStBTi653GZAnAuivZq/2hz+Iz+OP7rg= -golang.org/x/net v0.0.0-20200320220750-118fecf932d8/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120 h1:EZ3cVSzKOlJxAd8e8YAJ7no8nNypTxexh/YE/xW3ZEY= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -562,13 +623,21 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e h1:N7DeIrjYszNmSW409R3frPPwglRwMkXSBzwVbkOjLLA= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200513112337-417ce2331b5c h1:kISX68E8gSkNYAFRFiDU8rl5RIn1sJYKYb/r2vMLDrU= +golang.org/x/sys v0.0.0-20200513112337-417ce2331b5c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9 h1:YTzHMGlqJu67/uEo1lBv0n3wBXhXNeUbB1XfN2vmTm0= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -586,8 +655,13 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190914235951-31e00f45c22e h1:nOOVVcLC+/3MeovP40q5lCiWmP1Z1DaN8yn8ngU63hw= golang.org/x/tools v0.0.0-20190914235951-31e00f45c22e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200428211428-0c9eba77bc32/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -600,6 +674,8 @@ google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.0 h1:Tfd7cKwKbFRsI8RMAD3oqqw7JPFRrvFlOsfbgVkjOOw= google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -609,6 +685,13 @@ google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmE google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -616,7 +699,10 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -624,6 +710,8 @@ gopkg.in/ini.v1 v1.48.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.56.0 h1:DPMeDvGTM54DXbPkVIZsp19fp/I2K7zwA/itHYHKo8Y= +gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= @@ -642,11 +730,15 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2 h1:XZx7nhd5GMaZpmDaEHFVafUZC7ya0fuo7cSJ3UCKYmM= gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200506231410-2ff61e1afc86 h1:OfFoIUYv/me30yv7XlMy4F9RJw8DEm8WQ6QG1Ph4bH0= +gopkg.in/yaml.v3 v3.0.0-20200506231410-2ff61e1afc86/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/src/handlers/buckets.go b/src/handlers/buckets.go index a12fa73..b2b787b 100644 --- a/src/handlers/buckets.go +++ b/src/handlers/buckets.go @@ -1,12 +1,15 @@ package handlers import ( + "context" "fmt" log "log" + "strconv" "strings" iris "github.com/kataras/iris/v12" minio "github.com/minio/minio-go/v6" + madmin "github.com/minio/minio/pkg/madmin" cnf "github.com/rzrbld/adminio-api/config" resph "github.com/rzrbld/adminio-api/response" ) @@ -23,9 +26,11 @@ var BuckListExtended = func(ctx iris.Context) { for _, bucket := range lb { bn, err := minioClnt.GetBucketNotification(bucket.Name) if err != nil { - log.Print("Error while getting bucket notification") + log.Print("Error while getting bucket notification", err) } - br := iris.Map{"name": bucket.Name, "info": bucket, "events": bn} + bq, _ := madmClnt.GetBucketQuota(context.Background(), bucket.Name) + + br := iris.Map{"name": bucket.Name, "info": bucket, "events": bn, "quota": bq} allBuckets = append(allBuckets, br) } @@ -156,3 +161,43 @@ var BuckRemoveEvents = func(ctx iris.Context) { ctx.JSON(resph.DefaultAuthError()) } } + +var BuckSetQuota = func(ctx iris.Context) { + + var bucket = ctx.FormValue("bucketName") + var quotaType = madmin.QuotaType(strings.ToLower(ctx.FormValue("quotaType"))) + var quotaStr = ctx.FormValue("quotaValue") + var quota, _ = strconv.ParseUint(quotaStr, 10, 64) + + if resph.CheckAuthBeforeRequest(ctx) != false { + err = madmClnt.SetBucketQuota(context.Background(), bucket, quota, quotaType) + var res = resph.DefaultResHandler(ctx, err) + ctx.JSON(res) + } else { + ctx.JSON(resph.DefaultAuthError()) + } +} + +var BuckGetQuota = func(ctx iris.Context) { + var bucket = ctx.FormValue("bucketName") + + if resph.CheckAuthBeforeRequest(ctx) != false { + bq, err := madmClnt.GetBucketQuota(context.Background(), bucket) + var res = resph.BodyResHandler(ctx, err, bq) + ctx.JSON(res) + } else { + ctx.JSON(resph.DefaultAuthError()) + } +} + +var BuckRemoveQuota = func(ctx iris.Context) { + var bucket = ctx.FormValue("bucketName") + + if resph.CheckAuthBeforeRequest(ctx) != false { + err := madmClnt.RemoveBucketQuota(context.Background(), bucket) + var res = resph.DefaultResHandler(ctx, err) + ctx.JSON(res) + } else { + ctx.JSON(resph.DefaultAuthError()) + } +} diff --git a/src/handlers/groups.go b/src/handlers/groups.go index 4eb6c8a..8bb3c19 100644 --- a/src/handlers/groups.go +++ b/src/handlers/groups.go @@ -39,7 +39,9 @@ var GrSetDescription = func(ctx iris.Context) { var GrUpdateMembers = func(ctx iris.Context) { gar := madmin.GroupAddRemove{} gar.Group = ctx.FormValue("group") - gar.Members = strings.Split(ctx.FormValue("members"), ",") + if ctx.FormValue("members") != "" { + gar.Members = strings.Split(ctx.FormValue("members"), ",") + } gar.IsRemove, err = strconv.ParseBool(ctx.FormValue("IsRemove")) if err != nil { diff --git a/src/main.go b/src/main.go index a57e309..afc726e 100644 --- a/src/main.go +++ b/src/main.go @@ -45,7 +45,7 @@ func main() { fmt.Println("\033[31m\r\n ________ ________ _____ ______ ___ ________ ___ ________ \r\n|\\ __ \\ |\\ ___ \\ |\\ _ \\ _ \\ |\\ \\ |\\ ___ \\ |\\ \\ |\\ __ \\ \r\n\\ \\ \\|\\ \\\\ \\ \\_|\\ \\\\ \\ \\\\\\__\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\|\\ \\ \r\n \\ \\ __ \\\\ \\ \\ \\\\ \\\\ \\ \\\\|__| \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\\\ \\ \r\n \\ \\ \\ \\ \\\\ \\ \\_\\\\ \\\\ \\ \\ \\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\ \\ \\\\\\ \\ \r\n \\ \\__\\ \\__\\\\ \\_______\\\\ \\__\\ \\ \\__\\\\ \\__\\\\ \\__\\\\ \\__\\\\ \\__\\\\ \\_______\\\r\n \\|__|\\|__| \\|_______| \\|__| \\|__| \\|__| \\|__| \\|__| \\|__| \\|_______|\r\n \r\n \r\n \033[m") fmt.Println("\033[33mAdmin REST API for http://min.io (minio) s3 server") - fmt.Println("Version : 0.97") + fmt.Println("Version : 1.0") fmt.Println("Authors : rzrbld, 0x003e") fmt.Println("License : MIT") fmt.Println("GitHub : https://github.com/rzrbld/adminio-api") @@ -79,44 +79,6 @@ func main() { v1auth.Get("/callback", hdl.AuthCallback) } - //deprecated, will be removed - v1 := app.Party("/api/v1", crs).AllowMethods(iris.MethodOptions) - { - v1.Get("/list-buckets", hdl.BuckList) - v1.Post("/make-bucket", hdl.BuckMake) - v1.Get("/list-buckets-extended", hdl.BuckListExtended) - v1.Post("/delete-bucket", hdl.BuckDelete) - v1.Post("/get-bucket-lifecycle", hdl.BuckGetLifecycle) - v1.Post("/set-bucket-lifecycle", hdl.BuckSetLifecycle) - v1.Post("/get-bucket-events", hdl.BuckGetEvents) - v1.Post("/set-bucket-events", hdl.BuckSetEvents) - v1.Post("/remove-bucket-events", hdl.BuckRemoveEvents) - - v1.Get("/list-users", hdl.UsrList) - v1.Post("/set-status-user", hdl.UsrSetStats) - v1.Post("/delete-user", hdl.UsrDelete) - v1.Post("/add-user", hdl.UsrAdd) - v1.Post("/create-user-extended", hdl.UsrCreateExtended) - v1.Post("/set-user", hdl.UsrSet) - - v1.Get("/list-policies", hdl.PolList) - v1.Post("/add-policy", hdl.PolAdd) - v1.Post("/delete-policy", hdl.PolDelete) - v1.Post("/set-policy", hdl.PolSet) - - v1.Post("/set-status-group", hdl.GrSetStatus) - v1.Post("/get-description-group", hdl.GrSetDescription) - v1.Post("/update-members-group", hdl.GrUpdateMembers) - v1.Get("/list-groups", hdl.GrList) - - v1.Get("/server-info", hdl.ServerInfo) - v1.Get("/disk-info", hdl.DiskInfo) - - v1.Post("/get-kv", hdl.KvGet) - - } - // ------------------------------------------- - v2 := app.Party("/api/v2", crs).AllowMethods(iris.MethodOptions) { v2.Get("/buckets/list", hdl.BuckList) @@ -128,6 +90,9 @@ func main() { v2.Post("/bucket/get-events", hdl.BuckGetEvents) v2.Post("/bucket/set-events", hdl.BuckSetEvents) v2.Post("/bucket/remove-events", hdl.BuckRemoveEvents) + v2.Post("/bucket/set-quota", hdl.BuckSetQuota) + v2.Post("/bucket/get-quota", hdl.BuckGetQuota) + v2.Post("/bucket/remove-quota", hdl.BuckRemoveQuota) v2.Get("/users/list", hdl.UsrList) v2.Post("/user/set-status", hdl.UsrSetStats)