Skip to content

Commit

Permalink
Better upgrade support
Browse files Browse the repository at this point in the history
  • Loading branch information
joamag committed Jul 25, 2019
1 parent 1a4a748 commit 4e42d54
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
9 changes: 9 additions & 0 deletions src/examples/app.py
Expand Up @@ -93,6 +93,15 @@ def workload_safe(self, cluster, project, id):
workload = api.get_workload_safe(project, id)
return workload

@appier.route("/clusters/<str:cluster>/projects/<str:project>/workloads/<str:id>/upgrade", "GET")
def upgrade_workload(self, cluster, project, id):
api = self.get_api()
cluster = api.get_cluster_safe(cluster)["id"]
project = api.get_project_safe(cluster, project)["id"]
id = api.get_workload_safe(project, id)["id"]
workload = api.upgrade_workload(project, id)
return workload

@appier.route("/stacks", "GET")
def stacks(self):
api = self.get_api()
Expand Down
16 changes: 15 additions & 1 deletion src/rancher/workload.py
Expand Up @@ -37,6 +37,8 @@
__license__ = "Apache License, Version 2.0"
""" The license for the module """

import datetime

class WorkloadAPI(object):
"""
The workload API endpoints used by the Rancher 2.x
Expand All @@ -55,7 +57,7 @@ def list_workloads_name(self, project, name):
data = contents["data"]
return data

def get_workload(self, cluster, project, id):
def get_workload(self, project, id):
url = self.base_url + "projects/%s/workloads/%s" % (project, id)
contents = self.get(url)
return contents
Expand All @@ -64,3 +66,15 @@ def get_workload_safe(self, project, id):
contents = self.list_workloads_name(project, id)
if contents: return contents[0]
return self.get_workload(project, id)

def update_workload(self, project, id, payload = {}):
url = self.base_url + "projects/%s/workloads/%s" % (project, id)
contents = self.put(url, data_j = payload)
return contents

def upgrade_workload(self, project, id):
workload = self.get_workload(project, id)
current_date = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H-%M-%SZ")
workload["annotations"]["cattle.io/timestamp"] = current_date
self.update_workload(project, id, payload = workload)
return workload

0 comments on commit 4e42d54

Please sign in to comment.