mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
add vendor code
This commit is contained in:
parent
0b7cb5f2ae
commit
799c54fb20
4
Godeps/Godeps.json
generated
4
Godeps/Godeps.json
generated
@ -1907,6 +1907,10 @@
|
|||||||
"ImportPath": "github.com/prometheus/procfs",
|
"ImportPath": "github.com/prometheus/procfs",
|
||||||
"Rev": "454a56f35412459b5e684fd5ec0f9211b94f002a"
|
"Rev": "454a56f35412459b5e684fd5ec0f9211b94f002a"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/quobyte/api",
|
||||||
|
"Rev": "bf713b5a4333f44504fa1ce63690de45cfed6413"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/rackspace/gophercloud",
|
"ImportPath": "github.com/rackspace/gophercloud",
|
||||||
"Comment": "v1.0.0-920-g934dbf8",
|
"Comment": "v1.0.0-920-g934dbf8",
|
||||||
|
36
Godeps/LICENSES
generated
36
Godeps/LICENSES
generated
@ -60578,6 +60578,42 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
= vendor/github.com/quobyte/api licensed under: =
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (c) 2016, Quobyte Inc.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of quobyte-automation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
= vendor/github.com/quobyte/api/LICENSE beacc5ea3bcda24bdcec545022dbb0b4 -
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
= vendor/github.com/rackspace/gophercloud licensed under: =
|
= vendor/github.com/rackspace/gophercloud licensed under: =
|
||||||
|
|
||||||
|
28
vendor/github.com/quobyte/api/LICENSE
generated
vendored
Normal file
28
vendor/github.com/quobyte/api/LICENSE
generated
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
Copyright (c) 2016, Quobyte Inc.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of quobyte-automation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
35
vendor/github.com/quobyte/api/README.md
generated
vendored
Normal file
35
vendor/github.com/quobyte/api/README.md
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Quobyte API Clients
|
||||||
|
|
||||||
|
Get the quoybte api client
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go get github.com/quobyte/api
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
quobyte_api "github.com/quobyte/api"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
client := quobyte_api.NewQuobyteClient("http://apiserver:7860", "user", "password")
|
||||||
|
req := &quobyte_api.CreateVolumeRequest{
|
||||||
|
Name: "MyVolume",
|
||||||
|
RootUserID: "root",
|
||||||
|
RootGroupID: "root",
|
||||||
|
ConfigurationName: "base",
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_uuid, err := client.CreateVolume(req)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Error:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Printf("%s", volume_uuid)
|
||||||
|
}
|
||||||
|
```
|
79
vendor/github.com/quobyte/api/quobyte.go
generated
vendored
Normal file
79
vendor/github.com/quobyte/api/quobyte.go
generated
vendored
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
// Package quobyte represents a golang API for the Quobyte Storage System
|
||||||
|
package quobyte
|
||||||
|
|
||||||
|
import "net/http"
|
||||||
|
|
||||||
|
type QuobyteClient struct {
|
||||||
|
client *http.Client
|
||||||
|
url string
|
||||||
|
username string
|
||||||
|
password string
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewQuobyteClient creates a new Quobyte API client
|
||||||
|
func NewQuobyteClient(url string, username string, password string) *QuobyteClient {
|
||||||
|
return &QuobyteClient{
|
||||||
|
client: &http.Client{},
|
||||||
|
url: url,
|
||||||
|
username: username,
|
||||||
|
password: password,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateVolume creates a new Quobyte volume. Its root directory will be owned by given user and group
|
||||||
|
func (client QuobyteClient) CreateVolume(request *CreateVolumeRequest) (string, error) {
|
||||||
|
var response volumeUUID
|
||||||
|
if err := client.sendRequest("createVolume", request, &response); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.VolumeUUID, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResolveVolumeNameToUUID resolves a volume name to a UUID
|
||||||
|
func (client *QuobyteClient) ResolveVolumeNameToUUID(volumeName, tenant string) (string, error) {
|
||||||
|
request := &resolveVolumeNameRequest{
|
||||||
|
VolumeName: volumeName,
|
||||||
|
TenantDomain: tenant,
|
||||||
|
}
|
||||||
|
var response volumeUUID
|
||||||
|
if err := client.sendRequest("resolveVolumeName", request, &response); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.VolumeUUID, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteVolume deletes a Quobyte volume
|
||||||
|
func (client *QuobyteClient) DeleteVolume(UUID string) error {
|
||||||
|
return client.sendRequest(
|
||||||
|
"deleteVolume",
|
||||||
|
&volumeUUID{
|
||||||
|
VolumeUUID: UUID,
|
||||||
|
},
|
||||||
|
nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteVolumeByName deletes a volume by a given name
|
||||||
|
func (client *QuobyteClient) DeleteVolumeByName(volumeName, tenant string) error {
|
||||||
|
uuid, err := client.ResolveVolumeNameToUUID(volumeName, tenant)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return client.DeleteVolume(uuid)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetClientList returns a list of all active clients
|
||||||
|
func (client *QuobyteClient) GetClientList(tenant string) (GetClientListResponse, error) {
|
||||||
|
request := &getClientListRequest{
|
||||||
|
TenantDomain: tenant,
|
||||||
|
}
|
||||||
|
|
||||||
|
var response GetClientListResponse
|
||||||
|
if err := client.sendRequest("getClientListRequest", request, &response); err != nil {
|
||||||
|
return response, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return response, nil
|
||||||
|
}
|
108
vendor/github.com/quobyte/api/rpc_client.go
generated
vendored
Normal file
108
vendor/github.com/quobyte/api/rpc_client.go
generated
vendored
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
package quobyte
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"io"
|
||||||
|
"math/rand"
|
||||||
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
emptyResponse string = "Empty result and no error occured"
|
||||||
|
)
|
||||||
|
|
||||||
|
type request struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Version string `json:"jsonrpc"`
|
||||||
|
Method string `json:"method"`
|
||||||
|
Params interface{} `json:"params"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type response struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Version string `json:"jsonrpc"`
|
||||||
|
Result *json.RawMessage `json:"result"`
|
||||||
|
Error *json.RawMessage `json:"error"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type rpcError struct {
|
||||||
|
Code int64 `json:"code"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (err *rpcError) decodeErrorCode() string {
|
||||||
|
switch err.Code {
|
||||||
|
case -32600:
|
||||||
|
return "ERROR_CODE_INVALID_REQUEST"
|
||||||
|
case -32603:
|
||||||
|
return "ERROR_CODE_JSON_ENCODING_FAILED"
|
||||||
|
case -32601:
|
||||||
|
return "ERROR_CODE_METHOD_NOT_FOUND"
|
||||||
|
case -32700:
|
||||||
|
return "ERROR_CODE_PARSE_ERROR"
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func encodeRequest(method string, params interface{}) ([]byte, error) {
|
||||||
|
return json.Marshal(&request{
|
||||||
|
// Generate random ID and convert it to a string
|
||||||
|
ID: strconv.FormatInt(rand.Int63(), 10),
|
||||||
|
Version: "2.0",
|
||||||
|
Method: method,
|
||||||
|
Params: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func decodeResponse(ioReader io.Reader, reply interface{}) error {
|
||||||
|
var resp response
|
||||||
|
if err := json.NewDecoder(ioReader).Decode(&resp); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if resp.Error != nil {
|
||||||
|
var rpcErr rpcError
|
||||||
|
if err := json.Unmarshal(*resp.Error, &rpcErr); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if rpcErr.Message != "" {
|
||||||
|
return errors.New(rpcErr.Message)
|
||||||
|
}
|
||||||
|
|
||||||
|
respError := rpcErr.decodeErrorCode()
|
||||||
|
if respError != "" {
|
||||||
|
return errors.New(respError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if resp.Result != nil && reply != nil {
|
||||||
|
return json.Unmarshal(*resp.Result, reply)
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors.New(emptyResponse)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client QuobyteClient) sendRequest(method string, request interface{}, response interface{}) error {
|
||||||
|
message, err := encodeRequest(method, request)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
req, err := http.NewRequest("POST", client.url, bytes.NewBuffer(message))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
req.SetBasicAuth(client.username, client.password)
|
||||||
|
resp, err := client.client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
|
return decodeResponse(resp.Body, &response)
|
||||||
|
}
|
34
vendor/github.com/quobyte/api/types.go
generated
vendored
Normal file
34
vendor/github.com/quobyte/api/types.go
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package quobyte
|
||||||
|
|
||||||
|
// CreateVolumeRequest represents a CreateVolumeRequest
|
||||||
|
type CreateVolumeRequest struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
RootUserID string `json:"root_user_id,omitempty"`
|
||||||
|
RootGroupID string `json:"root_group_id,omitempty"`
|
||||||
|
ReplicaDeviceIDS []uint64 `json:"replica_device_ids,string,omitempty"`
|
||||||
|
ConfigurationName string `json:"configuration_name,omitempty"`
|
||||||
|
AccessMode uint32 `json:"access_mode,string,omitempty"`
|
||||||
|
TenantID string `json:"tenant_id,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type resolveVolumeNameRequest struct {
|
||||||
|
VolumeName string `json:"volume_name,omitempty"`
|
||||||
|
TenantDomain string `json:"tenant_domain,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type volumeUUID struct {
|
||||||
|
VolumeUUID string `json:"volume_uuid,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type getClientListRequest struct {
|
||||||
|
TenantDomain string `json:"tenant_domain,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetClientListResponse struct {
|
||||||
|
Clients []Client `json:"client,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
MountedUserName string `json:"mount_user_name,omitempty"`
|
||||||
|
MountedVolumeUUID string `json:"mounted_volume_uuid,omitempty"`
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user