From da81414714ba562e1d40335815a26d6ae30783de Mon Sep 17 00:00:00 2001
From: Mark Mandel
Date: Mon, 29 Jul 2019 15:01:01 +0900
Subject: [PATCH] Remove GameServer UpdateStatus() since its not being used.
Also included documentation on why we don't provide a status
subresource.
---
pkg/apis/agones/v1/gameserver.go | 7 ++++++-
.../typed/agones/v1/fake/fake_gameserver.go | 12 ------------
.../versioned/typed/agones/v1/gameserver.go | 17 -----------------
.../Reference/agones_crd_api_reference.html | 6 +++++-
4 files changed, 11 insertions(+), 31 deletions(-)
diff --git a/pkg/apis/agones/v1/gameserver.go b/pkg/apis/agones/v1/gameserver.go
index e38f035841..8e69cd7e25 100644
--- a/pkg/apis/agones/v1/gameserver.go
+++ b/pkg/apis/agones/v1/gameserver.go
@@ -92,9 +92,14 @@ var (
)
// +genclient
+// +genclient:noStatus
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-// GameServer is the data structure for a GameServer resource
+// GameServer is the data structure for a GameServer resource.
+// It is worth noting that while there is a `GameServerStatus` Status entry for the `GameServer`, it is not
+// defined as a subresource - unlike `Fleet` and other Agones resources.
+// This is so that we can retain the ability to change multiple aspects of a `GameServer` in a single atomic operation,
+// which is particularly useful for operations such as allocation.
type GameServer struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
diff --git a/pkg/client/clientset/versioned/typed/agones/v1/fake/fake_gameserver.go b/pkg/client/clientset/versioned/typed/agones/v1/fake/fake_gameserver.go
index 532a303197..c6b16a498e 100644
--- a/pkg/client/clientset/versioned/typed/agones/v1/fake/fake_gameserver.go
+++ b/pkg/client/clientset/versioned/typed/agones/v1/fake/fake_gameserver.go
@@ -100,18 +100,6 @@ func (c *FakeGameServers) Update(gameServer *agonesv1.GameServer) (result *agone
return obj.(*agonesv1.GameServer), err
}
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeGameServers) UpdateStatus(gameServer *agonesv1.GameServer) (*agonesv1.GameServer, error) {
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceAction(gameserversResource, "status", c.ns, gameServer), &agonesv1.GameServer{})
-
- if obj == nil {
- return nil, err
- }
- return obj.(*agonesv1.GameServer), err
-}
-
// Delete takes name of the gameServer and deletes it. Returns an error if one occurs.
func (c *FakeGameServers) Delete(name string, options *v1.DeleteOptions) error {
_, err := c.Fake.
diff --git a/pkg/client/clientset/versioned/typed/agones/v1/gameserver.go b/pkg/client/clientset/versioned/typed/agones/v1/gameserver.go
index db23cde42a..c6eeb6d1a3 100644
--- a/pkg/client/clientset/versioned/typed/agones/v1/gameserver.go
+++ b/pkg/client/clientset/versioned/typed/agones/v1/gameserver.go
@@ -37,7 +37,6 @@ type GameServersGetter interface {
type GameServerInterface interface {
Create(*v1.GameServer) (*v1.GameServer, error)
Update(*v1.GameServer) (*v1.GameServer, error)
- UpdateStatus(*v1.GameServer) (*v1.GameServer, error)
Delete(name string, options *metav1.DeleteOptions) error
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
Get(name string, options metav1.GetOptions) (*v1.GameServer, error)
@@ -121,22 +120,6 @@ func (c *gameServers) Update(gameServer *v1.GameServer) (result *v1.GameServer,
return
}
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-
-func (c *gameServers) UpdateStatus(gameServer *v1.GameServer) (result *v1.GameServer, err error) {
- result = &v1.GameServer{}
- err = c.client.Put().
- Namespace(c.ns).
- Resource("gameservers").
- Name(gameServer.Name).
- SubResource("status").
- Body(gameServer).
- Do().
- Into(result)
- return
-}
-
// Delete takes name of the gameServer and deletes it. Returns an error if one occurs.
func (c *gameServers) Delete(name string, options *metav1.DeleteOptions) error {
return c.client.Delete().
diff --git a/site/content/en/docs/Reference/agones_crd_api_reference.html b/site/content/en/docs/Reference/agones_crd_api_reference.html
index 00246095b2..7eaf7a517a 100644
--- a/site/content/en/docs/Reference/agones_crd_api_reference.html
+++ b/site/content/en/docs/Reference/agones_crd_api_reference.html
@@ -2497,7 +2497,11 @@ Fleet
GameServer
-
GameServer is the data structure for a GameServer resource
+GameServer is the data structure for a GameServer resource.
+It is worth noting that while there is a GameServerStatus
Status entry for the GameServer
, it is not
+defined as a subresource - unlike Fleet
and other Agones resources.
+This is so that we can retain the ability to change multiple aspects of a GameServer
in a single atomic operation,
+which is particularly useful for operations such as allocation.