Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
deba6937
Commit
deba6937
authored
Nov 22, 2017
by
FengyunPan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update gophercloud for supporting OpenStack Cinder v3
parent
f95ac1c8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
487 additions
and
53 deletions
+487
-53
Godeps.json
Godeps/Godeps.json
+41
-37
LICENSES
Godeps/LICENSES
+0
-0
Godeps.json
staging/src/k8s.io/apiserver/Godeps/Godeps.json
+7
-7
Godeps.json
staging/src/k8s.io/client-go/Godeps/Godeps.json
+7
-7
BUILD
vendor/github.com/gophercloud/gophercloud/openstack/BUILD
+1
-0
BUILD
...cloud/gophercloud/openstack/blockstorage/v3/volumes/BUILD
+32
-0
doc.go
...loud/gophercloud/openstack/blockstorage/v3/volumes/doc.go
+5
-0
requests.go
...gophercloud/openstack/blockstorage/v3/volumes/requests.go
+182
-0
results.go
.../gophercloud/openstack/blockstorage/v3/volumes/results.go
+159
-0
urls.go
...oud/gophercloud/openstack/blockstorage/v3/volumes/urls.go
+23
-0
util.go
...oud/gophercloud/openstack/blockstorage/v3/volumes/util.go
+22
-0
client.go
...or/github.com/gophercloud/gophercloud/openstack/client.go
+6
-2
service_client.go
vendor/github.com/gophercloud/gophercloud/service_client.go
+2
-0
No files found.
Godeps/Godeps.json
View file @
deba6937
...
...
@@ -106,7 +106,7 @@
},
{
"ImportPath"
:
"github.com/Microsoft/go-winio"
,
"Comment"
:
"v0.4.
5
"
,
"Comment"
:
"v0.4.
4-7-g7843996
"
,
"Rev"
:
"78439966b38d69bf38227fbf57ac8a6fee70f69a"
},
{
...
...
@@ -442,32 +442,32 @@
},
{
"ImportPath"
:
"github.com/containernetworking/cni/libcni"
,
"Comment"
:
"v0.6.0"
,
"Comment"
:
"v0.6.0
-rc1-6-ga7885cb
"
,
"Rev"
:
"a7885cb6f8ab03fba07852ded351e4f5e7a112bf"
},
{
"ImportPath"
:
"github.com/containernetworking/cni/pkg/invoke"
,
"Comment"
:
"v0.6.0"
,
"Comment"
:
"v0.6.0
-rc1-6-ga7885cb
"
,
"Rev"
:
"a7885cb6f8ab03fba07852ded351e4f5e7a112bf"
},
{
"ImportPath"
:
"github.com/containernetworking/cni/pkg/types"
,
"Comment"
:
"v0.6.0"
,
"Comment"
:
"v0.6.0
-rc1-6-ga7885cb
"
,
"Rev"
:
"a7885cb6f8ab03fba07852ded351e4f5e7a112bf"
},
{
"ImportPath"
:
"github.com/containernetworking/cni/pkg/types/020"
,
"Comment"
:
"v0.6.0"
,
"Comment"
:
"v0.6.0
-rc1-6-ga7885cb
"
,
"Rev"
:
"a7885cb6f8ab03fba07852ded351e4f5e7a112bf"
},
{
"ImportPath"
:
"github.com/containernetworking/cni/pkg/types/current"
,
"Comment"
:
"v0.6.0"
,
"Comment"
:
"v0.6.0
-rc1-6-ga7885cb
"
,
"Rev"
:
"a7885cb6f8ab03fba07852ded351e4f5e7a112bf"
},
{
"ImportPath"
:
"github.com/containernetworking/cni/pkg/version"
,
"Comment"
:
"v0.6.0"
,
"Comment"
:
"v0.6.0
-rc1-6-ga7885cb
"
,
"Rev"
:
"a7885cb6f8ab03fba07852ded351e4f5e7a112bf"
},
{
...
...
@@ -1012,17 +1012,17 @@
},
{
"ImportPath"
:
"github.com/docker/go-connections/nat"
,
"Comment"
:
"v0.
3.0
"
,
"Comment"
:
"v0.
2.1-30-g3ede32e
"
,
"Rev"
:
"3ede32e2033de7505e6500d6c868c2b9ed9f169d"
},
{
"ImportPath"
:
"github.com/docker/go-connections/sockets"
,
"Comment"
:
"v0.
3.0
"
,
"Comment"
:
"v0.
2.1-30-g3ede32e
"
,
"Rev"
:
"3ede32e2033de7505e6500d6c868c2b9ed9f169d"
},
{
"ImportPath"
:
"github.com/docker/go-connections/tlsconfig"
,
"Comment"
:
"v0.
3.0
"
,
"Comment"
:
"v0.
2.1-30-g3ede32e
"
,
"Rev"
:
"3ede32e2033de7505e6500d6c868c2b9ed9f169d"
},
{
...
...
@@ -1574,111 +1574,115 @@
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes"
,
"Rev"
:
"54086d6c81b90e91e1d52b866ee726baf5cbe2b1"
"Rev"
:
"db5f840b1d1a595280d643defc09ce277996959e"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes"
,
"Rev"
:
"db5f840b1d1a595280d643defc09ce277996959e"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/common/extensions"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/compute/v2/flavors"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/compute/v2/images"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v3/tokens"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/networking/v2/ports"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/utils"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/pagination"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gorilla/context"
,
...
...
Godeps/LICENSES
View file @
deba6937
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/apiserver/Godeps/Godeps.json
View file @
deba6937
...
...
@@ -408,31 +408,31 @@
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v3/tokens"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/utils"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/pagination"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gregjones/httpcache"
,
...
...
staging/src/k8s.io/client-go/Godeps/Godeps.json
View file @
deba6937
...
...
@@ -172,31 +172,31 @@
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/identity/v3/tokens"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/openstack/utils"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gophercloud/gophercloud/pagination"
,
"Rev"
:
"
54086d6c81b90e91e1d52b866ee726baf5cbe2b1
"
"Rev"
:
"
db5f840b1d1a595280d643defc09ce277996959e
"
},
{
"ImportPath"
:
"github.com/gregjones/httpcache"
,
...
...
vendor/github.com/gophercloud/gophercloud/openstack/BUILD
View file @
deba6937
...
...
@@ -33,6 +33,7 @@ filegroup(
"//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions:all-srcs",
"//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes:all-srcs",
"//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes:all-srcs",
"//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes:all-srcs",
"//vendor/github.com/gophercloud/gophercloud/openstack/common/extensions:all-srcs",
"//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces:all-srcs",
"//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach:all-srcs",
...
...
vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/BUILD
0 → 100644
View file @
deba6937
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"doc.go",
"requests.go",
"results.go",
"urls.go",
"util.go",
],
importpath = "github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/gophercloud/gophercloud:go_default_library",
"//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/doc.go
0 → 100644
View file @
deba6937
// Package volumes provides information and interaction with volumes in the
// OpenStack Block Storage service. A volume is a detachable block storage
// device, akin to a USB hard drive. It can only be attached to one instance at
// a time.
package
volumes
vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/requests.go
0 → 100644
View file @
deba6937
package
volumes
import
(
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/pagination"
)
// CreateOptsBuilder allows extensions to add additional parameters to the
// Create request.
type
CreateOptsBuilder
interface
{
ToVolumeCreateMap
()
(
map
[
string
]
interface
{},
error
)
}
// CreateOpts contains options for creating a Volume. This object is passed to
// the volumes.Create function. For more information about these parameters,
// see the Volume object.
type
CreateOpts
struct
{
// The size of the volume, in GB
Size
int
`json:"size" required:"true"`
// The availability zone
AvailabilityZone
string
`json:"availability_zone,omitempty"`
// ConsistencyGroupID is the ID of a consistency group
ConsistencyGroupID
string
`json:"consistencygroup_id,omitempty"`
// The volume description
Description
string
`json:"description,omitempty"`
// One or more metadata key and value pairs to associate with the volume
Metadata
map
[
string
]
string
`json:"metadata,omitempty"`
// The volume name
Name
string
`json:"name,omitempty"`
// the ID of the existing volume snapshot
SnapshotID
string
`json:"snapshot_id,omitempty"`
// SourceReplica is a UUID of an existing volume to replicate with
SourceReplica
string
`json:"source_replica,omitempty"`
// the ID of the existing volume
SourceVolID
string
`json:"source_volid,omitempty"`
// The ID of the image from which you want to create the volume.
// Required to create a bootable volume.
ImageID
string
`json:"imageRef,omitempty"`
// The associated volume type
VolumeType
string
`json:"volume_type,omitempty"`
}
// ToVolumeCreateMap assembles a request body based on the contents of a
// CreateOpts.
func
(
opts
CreateOpts
)
ToVolumeCreateMap
()
(
map
[
string
]
interface
{},
error
)
{
return
gophercloud
.
BuildRequestBody
(
opts
,
"volume"
)
}
// Create will create a new Volume based on the values in CreateOpts. To extract
// the Volume object from the response, call the Extract method on the
// CreateResult.
func
Create
(
client
*
gophercloud
.
ServiceClient
,
opts
CreateOptsBuilder
)
(
r
CreateResult
)
{
b
,
err
:=
opts
.
ToVolumeCreateMap
()
if
err
!=
nil
{
r
.
Err
=
err
return
}
_
,
r
.
Err
=
client
.
Post
(
createURL
(
client
),
b
,
&
r
.
Body
,
&
gophercloud
.
RequestOpts
{
OkCodes
:
[]
int
{
202
},
})
return
}
// Delete will delete the existing Volume with the provided ID.
func
Delete
(
client
*
gophercloud
.
ServiceClient
,
id
string
)
(
r
DeleteResult
)
{
_
,
r
.
Err
=
client
.
Delete
(
deleteURL
(
client
,
id
),
nil
)
return
}
// Get retrieves the Volume with the provided ID. To extract the Volume object
// from the response, call the Extract method on the GetResult.
func
Get
(
client
*
gophercloud
.
ServiceClient
,
id
string
)
(
r
GetResult
)
{
_
,
r
.
Err
=
client
.
Get
(
getURL
(
client
,
id
),
&
r
.
Body
,
nil
)
return
}
// ListOptsBuilder allows extensions to add additional parameters to the List
// request.
type
ListOptsBuilder
interface
{
ToVolumeListQuery
()
(
string
,
error
)
}
// ListOpts holds options for listing Volumes. It is passed to the volumes.List
// function.
type
ListOpts
struct
{
// admin-only option. Set it to true to see all tenant volumes.
AllTenants
bool
`q:"all_tenants"`
// List only volumes that contain Metadata.
Metadata
map
[
string
]
string
`q:"metadata"`
// List only volumes that have Name as the display name.
Name
string
`q:"name"`
// List only volumes that have a status of Status.
Status
string
`q:"status"`
}
// ToVolumeListQuery formats a ListOpts into a query string.
func
(
opts
ListOpts
)
ToVolumeListQuery
()
(
string
,
error
)
{
q
,
err
:=
gophercloud
.
BuildQueryString
(
opts
)
return
q
.
String
(),
err
}
// List returns Volumes optionally limited by the conditions provided in ListOpts.
func
List
(
client
*
gophercloud
.
ServiceClient
,
opts
ListOptsBuilder
)
pagination
.
Pager
{
url
:=
listURL
(
client
)
if
opts
!=
nil
{
query
,
err
:=
opts
.
ToVolumeListQuery
()
if
err
!=
nil
{
return
pagination
.
Pager
{
Err
:
err
}
}
url
+=
query
}
return
pagination
.
NewPager
(
client
,
url
,
func
(
r
pagination
.
PageResult
)
pagination
.
Page
{
return
VolumePage
{
pagination
.
SinglePageBase
(
r
)}
})
}
// UpdateOptsBuilder allows extensions to add additional parameters to the
// Update request.
type
UpdateOptsBuilder
interface
{
ToVolumeUpdateMap
()
(
map
[
string
]
interface
{},
error
)
}
// UpdateOpts contain options for updating an existing Volume. This object is passed
// to the volumes.Update function. For more information about the parameters, see
// the Volume object.
type
UpdateOpts
struct
{
Name
string
`json:"name,omitempty"`
Description
string
`json:"description,omitempty"`
Metadata
map
[
string
]
string
`json:"metadata,omitempty"`
}
// ToVolumeUpdateMap assembles a request body based on the contents of an
// UpdateOpts.
func
(
opts
UpdateOpts
)
ToVolumeUpdateMap
()
(
map
[
string
]
interface
{},
error
)
{
return
gophercloud
.
BuildRequestBody
(
opts
,
"volume"
)
}
// Update will update the Volume with provided information. To extract the updated
// Volume from the response, call the Extract method on the UpdateResult.
func
Update
(
client
*
gophercloud
.
ServiceClient
,
id
string
,
opts
UpdateOptsBuilder
)
(
r
UpdateResult
)
{
b
,
err
:=
opts
.
ToVolumeUpdateMap
()
if
err
!=
nil
{
r
.
Err
=
err
return
}
_
,
r
.
Err
=
client
.
Put
(
updateURL
(
client
,
id
),
b
,
&
r
.
Body
,
&
gophercloud
.
RequestOpts
{
OkCodes
:
[]
int
{
200
},
})
return
}
// IDFromName is a convienience function that returns a server's ID given its name.
func
IDFromName
(
client
*
gophercloud
.
ServiceClient
,
name
string
)
(
string
,
error
)
{
count
:=
0
id
:=
""
pages
,
err
:=
List
(
client
,
nil
)
.
AllPages
()
if
err
!=
nil
{
return
""
,
err
}
all
,
err
:=
ExtractVolumes
(
pages
)
if
err
!=
nil
{
return
""
,
err
}
for
_
,
s
:=
range
all
{
if
s
.
Name
==
name
{
count
++
id
=
s
.
ID
}
}
switch
count
{
case
0
:
return
""
,
gophercloud
.
ErrResourceNotFound
{
Name
:
name
,
ResourceType
:
"volume"
}
case
1
:
return
id
,
nil
default
:
return
""
,
gophercloud
.
ErrMultipleResourcesFound
{
Name
:
name
,
Count
:
count
,
ResourceType
:
"volume"
}
}
}
vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/results.go
0 → 100644
View file @
deba6937
package
volumes
import
(
"encoding/json"
"time"
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/pagination"
)
// Attachment represents a Volume Attachment record
type
Attachment
struct
{
AttachedAt
time
.
Time
`json:"-"`
AttachmentID
string
`json:"attachment_id"`
Device
string
`json:"device"`
HostName
string
`json:"host_name"`
ID
string
`json:"id"`
ServerID
string
`json:"server_id"`
VolumeID
string
`json:"volume_id"`
}
// UnmarshalJSON is our unmarshalling helper
func
(
r
*
Attachment
)
UnmarshalJSON
(
b
[]
byte
)
error
{
type
tmp
Attachment
var
s
struct
{
tmp
AttachedAt
gophercloud
.
JSONRFC3339MilliNoZ
`json:"attached_at"`
}
err
:=
json
.
Unmarshal
(
b
,
&
s
)
if
err
!=
nil
{
return
err
}
*
r
=
Attachment
(
s
.
tmp
)
r
.
AttachedAt
=
time
.
Time
(
s
.
AttachedAt
)
return
err
}
// Volume contains all the information associated with an OpenStack Volume.
type
Volume
struct
{
// Unique identifier for the volume.
ID
string
`json:"id"`
// Current status of the volume.
Status
string
`json:"status"`
// Size of the volume in GB.
Size
int
`json:"size"`
// AvailabilityZone is which availability zone the volume is in.
AvailabilityZone
string
`json:"availability_zone"`
// The date when this volume was created.
CreatedAt
time
.
Time
`json:"-"`
// The date when this volume was last updated
UpdatedAt
time
.
Time
`json:"-"`
// Instances onto which the volume is attached.
Attachments
[]
Attachment
`json:"attachments"`
// Human-readable display name for the volume.
Name
string
`json:"name"`
// Human-readable description for the volume.
Description
string
`json:"description"`
// The type of volume to create, either SATA or SSD.
VolumeType
string
`json:"volume_type"`
// The ID of the snapshot from which the volume was created
SnapshotID
string
`json:"snapshot_id"`
// The ID of another block storage volume from which the current volume was created
SourceVolID
string
`json:"source_volid"`
// Arbitrary key-value pairs defined by the user.
Metadata
map
[
string
]
string
`json:"metadata"`
// UserID is the id of the user who created the volume.
UserID
string
`json:"user_id"`
// Indicates whether this is a bootable volume.
Bootable
string
`json:"bootable"`
// Encrypted denotes if the volume is encrypted.
Encrypted
bool
`json:"encrypted"`
// ReplicationStatus is the status of replication.
ReplicationStatus
string
`json:"replication_status"`
// ConsistencyGroupID is the consistency group ID.
ConsistencyGroupID
string
`json:"consistencygroup_id"`
// Multiattach denotes if the volume is multi-attach capable.
Multiattach
bool
`json:"multiattach"`
}
// UnmarshalJSON another unmarshalling function
func
(
r
*
Volume
)
UnmarshalJSON
(
b
[]
byte
)
error
{
type
tmp
Volume
var
s
struct
{
tmp
CreatedAt
gophercloud
.
JSONRFC3339MilliNoZ
`json:"created_at"`
UpdatedAt
gophercloud
.
JSONRFC3339MilliNoZ
`json:"updated_at"`
}
err
:=
json
.
Unmarshal
(
b
,
&
s
)
if
err
!=
nil
{
return
err
}
*
r
=
Volume
(
s
.
tmp
)
r
.
CreatedAt
=
time
.
Time
(
s
.
CreatedAt
)
r
.
UpdatedAt
=
time
.
Time
(
s
.
UpdatedAt
)
return
err
}
// VolumePage is a pagination.pager that is returned from a call to the List function.
type
VolumePage
struct
{
pagination
.
SinglePageBase
}
// IsEmpty returns true if a ListResult contains no Volumes.
func
(
r
VolumePage
)
IsEmpty
()
(
bool
,
error
)
{
volumes
,
err
:=
ExtractVolumes
(
r
)
return
len
(
volumes
)
==
0
,
err
}
// ExtractVolumes extracts and returns Volumes. It is used while iterating over a volumes.List call.
func
ExtractVolumes
(
r
pagination
.
Page
)
([]
Volume
,
error
)
{
var
s
[]
Volume
err
:=
ExtractVolumesInto
(
r
,
&
s
)
return
s
,
err
}
type
commonResult
struct
{
gophercloud
.
Result
}
// Extract will get the Volume object out of the commonResult object.
func
(
r
commonResult
)
Extract
()
(
*
Volume
,
error
)
{
var
s
Volume
err
:=
r
.
ExtractInto
(
&
s
)
return
&
s
,
err
}
// ExtractInto converts our response data into a volume struct
func
(
r
commonResult
)
ExtractInto
(
v
interface
{})
error
{
return
r
.
Result
.
ExtractIntoStructPtr
(
v
,
"volume"
)
}
// ExtractVolumesInto similar to ExtractInto but operates on a `list` of volumes
func
ExtractVolumesInto
(
r
pagination
.
Page
,
v
interface
{})
error
{
return
r
.
(
VolumePage
)
.
Result
.
ExtractIntoSlicePtr
(
v
,
"volumes"
)
}
// CreateResult contains the response body and error from a Create request.
type
CreateResult
struct
{
commonResult
}
// GetResult contains the response body and error from a Get request.
type
GetResult
struct
{
commonResult
}
// UpdateResult contains the response body and error from an Update request.
type
UpdateResult
struct
{
commonResult
}
// DeleteResult contains the response body and error from a Delete request.
type
DeleteResult
struct
{
gophercloud
.
ErrResult
}
vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/urls.go
0 → 100644
View file @
deba6937
package
volumes
import
"github.com/gophercloud/gophercloud"
func
createURL
(
c
*
gophercloud
.
ServiceClient
)
string
{
return
c
.
ServiceURL
(
"volumes"
)
}
func
listURL
(
c
*
gophercloud
.
ServiceClient
)
string
{
return
c
.
ServiceURL
(
"volumes"
,
"detail"
)
}
func
deleteURL
(
c
*
gophercloud
.
ServiceClient
,
id
string
)
string
{
return
c
.
ServiceURL
(
"volumes"
,
id
)
}
func
getURL
(
c
*
gophercloud
.
ServiceClient
,
id
string
)
string
{
return
deleteURL
(
c
,
id
)
}
func
updateURL
(
c
*
gophercloud
.
ServiceClient
,
id
string
)
string
{
return
deleteURL
(
c
,
id
)
}
vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/util.go
0 → 100644
View file @
deba6937
package
volumes
import
(
"github.com/gophercloud/gophercloud"
)
// WaitForStatus will continually poll the resource, checking for a particular
// status. It will do this for the amount of seconds defined.
func
WaitForStatus
(
c
*
gophercloud
.
ServiceClient
,
id
,
status
string
,
secs
int
)
error
{
return
gophercloud
.
WaitFor
(
secs
,
func
()
(
bool
,
error
)
{
current
,
err
:=
Get
(
c
,
id
)
.
Extract
()
if
err
!=
nil
{
return
false
,
err
}
if
current
.
Status
==
status
{
return
true
,
nil
}
return
false
,
nil
})
}
vendor/github.com/gophercloud/gophercloud/openstack/client.go
View file @
deba6937
...
...
@@ -308,8 +308,12 @@ func NewBlockStorageV2(client *gophercloud.ProviderClient, eo gophercloud.Endpoi
return
initClientOpts
(
client
,
eo
,
"volumev2"
)
}
// NewSharedFileSystemV2 creates a ServiceClient that may be used to access the
// v2 shared file system service.
// NewBlockStorageV3 creates a ServiceClient that may be used to access the v3 block storage service.
func
NewBlockStorageV3
(
client
*
gophercloud
.
ProviderClient
,
eo
gophercloud
.
EndpointOpts
)
(
*
gophercloud
.
ServiceClient
,
error
)
{
return
initClientOpts
(
client
,
eo
,
"volumev3"
)
}
// NewSharedFileSystemV2 creates a ServiceClient that may be used to access the v2 shared file system service.
func
NewSharedFileSystemV2
(
client
*
gophercloud
.
ProviderClient
,
eo
gophercloud
.
EndpointOpts
)
(
*
gophercloud
.
ServiceClient
,
error
)
{
return
initClientOpts
(
client
,
eo
,
"sharev2"
)
}
...
...
vendor/github.com/gophercloud/gophercloud/service_client.go
View file @
deba6937
...
...
@@ -114,6 +114,8 @@ func (client *ServiceClient) setMicroversionHeader(opts *RequestOpts) {
opts
.
MoreHeaders
[
"X-OpenStack-Nova-API-Version"
]
=
client
.
Microversion
case
"sharev2"
:
opts
.
MoreHeaders
[
"X-OpenStack-Manila-API-Version"
]
=
client
.
Microversion
case
"volume"
:
opts
.
MoreHeaders
[
"X-OpenStack-Volume-API-Version"
]
=
client
.
Microversion
}
if
client
.
Type
!=
""
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment