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
2556e011
Commit
2556e011
authored
Jan 17, 2018
by
Bowei Du
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update InstanceGroup to use generated code
parent
271935d7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
51 deletions
+26
-51
gce_instancegroup.go
pkg/cloudprovider/providers/gce/gce_instancegroup.go
+26
-51
No files found.
pkg/cloudprovider/providers/gce/gce_instancegroup.go
View file @
2556e011
...
...
@@ -16,7 +16,14 @@ limitations under the License.
package
gce
import
compute
"google.golang.org/api/compute/v1"
import
(
"context"
compute
"google.golang.org/api/compute/v1"
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
)
func
newInstanceGroupMetricContext
(
request
string
,
zone
string
)
*
metricContext
{
return
newGenericMetricContext
(
"instancegroup"
,
request
,
unusedMetricLabel
,
zone
,
computeV1Version
)
...
...
@@ -26,43 +33,29 @@ func newInstanceGroupMetricContext(request string, zone string) *metricContext {
// instances. It is the callers responsibility to add named ports.
func
(
gce
*
GCECloud
)
CreateInstanceGroup
(
ig
*
compute
.
InstanceGroup
,
zone
string
)
error
{
mc
:=
newInstanceGroupMetricContext
(
"create"
,
zone
)
op
,
err
:=
gce
.
service
.
InstanceGroups
.
Insert
(
gce
.
projectID
,
zone
,
ig
)
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
}
return
gce
.
waitForZoneOp
(
op
,
zone
,
mc
)
return
mc
.
Observe
(
gce
.
c
.
InstanceGroups
()
.
Insert
(
context
.
Background
(),
meta
.
ZonalKey
(
ig
.
Name
,
zone
),
ig
))
}
// DeleteInstanceGroup deletes an instance group.
func
(
gce
*
GCECloud
)
DeleteInstanceGroup
(
name
string
,
zone
string
)
error
{
mc
:=
newInstanceGroupMetricContext
(
"delete"
,
zone
)
op
,
err
:=
gce
.
service
.
InstanceGroups
.
Delete
(
gce
.
projectID
,
zone
,
name
)
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
}
return
gce
.
waitForZoneOp
(
op
,
zone
,
mc
)
return
mc
.
Observe
(
gce
.
c
.
InstanceGroups
()
.
Delete
(
context
.
Background
(),
meta
.
ZonalKey
(
name
,
zone
)))
}
// ListInstanceGroups lists all InstanceGroups in the project and
// zone.
func
(
gce
*
GCECloud
)
ListInstanceGroups
(
zone
string
)
(
*
compute
.
InstanceGroupList
,
error
)
{
func
(
gce
*
GCECloud
)
ListInstanceGroups
(
zone
string
)
(
[]
*
compute
.
InstanceGroup
,
error
)
{
mc
:=
newInstanceGroupMetricContext
(
"list"
,
zone
)
// TODO: use PageToken to list all not just the first 500
v
,
err
:=
gce
.
service
.
InstanceGroups
.
List
(
gce
.
projectID
,
zone
)
.
Do
()
v
,
err
:=
gce
.
c
.
InstanceGroups
()
.
List
(
context
.
Background
(),
zone
,
filter
.
None
)
return
v
,
mc
.
Observe
(
err
)
}
// ListInstancesInInstanceGroup lists all the instances in a given
// instance group and state.
func
(
gce
*
GCECloud
)
ListInstancesInInstanceGroup
(
name
string
,
zone
string
,
state
string
)
(
*
compute
.
InstanceGroupsListInstance
s
,
error
)
{
func
(
gce
*
GCECloud
)
ListInstancesInInstanceGroup
(
name
string
,
zone
string
,
state
string
)
(
[]
*
compute
.
InstanceWithNamedPort
s
,
error
)
{
mc
:=
newInstanceGroupMetricContext
(
"list_instances"
,
zone
)
// TODO: use PageToken to list all not just the first 500
v
,
err
:=
gce
.
service
.
InstanceGroups
.
ListInstances
(
gce
.
projectID
,
zone
,
name
,
&
compute
.
InstanceGroupsListInstancesRequest
{
InstanceState
:
state
})
.
Do
()
req
:=
&
compute
.
InstanceGroupsListInstancesRequest
{
InstanceState
:
state
}
v
,
err
:=
gce
.
c
.
InstanceGroups
()
.
ListInstances
(
context
.
Background
(),
meta
.
ZonalKey
(
name
,
zone
),
req
,
filter
.
None
)
return
v
,
mc
.
Observe
(
err
)
}
...
...
@@ -70,58 +63,40 @@ func (gce *GCECloud) ListInstancesInInstanceGroup(name string, zone string, stat
// instance group.
func
(
gce
*
GCECloud
)
AddInstancesToInstanceGroup
(
name
string
,
zone
string
,
instanceRefs
[]
*
compute
.
InstanceReference
)
error
{
mc
:=
newInstanceGroupMetricContext
(
"add_instances"
,
zone
)
// TODO: should cull operation above this layer.
if
len
(
instanceRefs
)
==
0
{
return
nil
}
op
,
err
:=
gce
.
service
.
InstanceGroups
.
AddInstances
(
gce
.
projectID
,
zone
,
name
,
&
compute
.
InstanceGroupsAddInstancesRequest
{
Instances
:
instanceRefs
,
})
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
req
:=
&
compute
.
InstanceGroupsAddInstancesRequest
{
Instances
:
instanceRefs
,
}
return
gce
.
waitForZoneOp
(
op
,
zone
,
mc
)
return
mc
.
Observe
(
gce
.
c
.
InstanceGroups
()
.
AddInstances
(
context
.
Background
(),
meta
.
ZonalKey
(
name
,
zone
),
req
))
}
// RemoveInstancesFromInstanceGroup removes the given instances from
// the instance group.
func
(
gce
*
GCECloud
)
RemoveInstancesFromInstanceGroup
(
name
string
,
zone
string
,
instanceRefs
[]
*
compute
.
InstanceReference
)
error
{
mc
:=
newInstanceGroupMetricContext
(
"remove_instances"
,
zone
)
// TODO: should cull operation above this layer.
if
len
(
instanceRefs
)
==
0
{
return
nil
}
op
,
err
:=
gce
.
service
.
InstanceGroups
.
RemoveInstances
(
gce
.
projectID
,
zone
,
name
,
&
compute
.
InstanceGroupsRemoveInstancesRequest
{
Instances
:
instanceRefs
,
})
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
req
:=
&
compute
.
InstanceGroupsRemoveInstancesRequest
{
Instances
:
instanceRefs
,
}
return
gce
.
waitForZoneOp
(
op
,
zone
,
mc
)
return
mc
.
Observe
(
gce
.
c
.
InstanceGroups
()
.
RemoveInstances
(
context
.
Background
(),
meta
.
ZonalKey
(
name
,
zone
),
req
))
}
// SetNamedPortsOfInstanceGroup sets the list of named ports on a given instance group
func
(
gce
*
GCECloud
)
SetNamedPortsOfInstanceGroup
(
igName
,
zone
string
,
namedPorts
[]
*
compute
.
NamedPort
)
error
{
mc
:=
newInstanceGroupMetricContext
(
"set_namedports"
,
zone
)
op
,
err
:=
gce
.
service
.
InstanceGroups
.
SetNamedPorts
(
gce
.
projectID
,
zone
,
igName
,
&
compute
.
InstanceGroupsSetNamedPortsRequest
{
NamedPorts
:
namedPorts
})
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
}
return
gce
.
waitForZoneOp
(
op
,
zone
,
mc
)
req
:=
&
compute
.
InstanceGroupsSetNamedPortsRequest
{
NamedPorts
:
namedPorts
}
return
mc
.
Observe
(
gce
.
c
.
InstanceGroups
()
.
SetNamedPorts
(
context
.
Background
(),
meta
.
ZonalKey
(
igName
,
zone
),
req
))
}
// GetInstanceGroup returns an instance group by name.
func
(
gce
*
GCECloud
)
GetInstanceGroup
(
name
string
,
zone
string
)
(
*
compute
.
InstanceGroup
,
error
)
{
mc
:=
newInstanceGroupMetricContext
(
"get"
,
zone
)
v
,
err
:=
gce
.
service
.
InstanceGroups
.
Get
(
gce
.
projectID
,
zone
,
name
)
.
Do
(
)
v
,
err
:=
gce
.
c
.
InstanceGroups
()
.
Get
(
context
.
Background
(),
meta
.
ZonalKey
(
name
,
zone
)
)
return
v
,
mc
.
Observe
(
err
)
}
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