Skip to content

Commit 95ef305

Browse files
committed
chore(helmbroker): support addon archive or not
1 parent 3e36826 commit 95ef305

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

rootfs/helmbroker/broker.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
from .utils import get_instance_path, get_chart_path, get_plan_path, \
1818
get_addon_path, get_addon_updateable, get_addon_bindable, InstanceLock, \
1919
load_instance_meta, load_binding_meta, dump_instance_meta, \
20-
load_addons_meta, get_addon_allow_paras, verify_parameters
20+
load_addons_meta, get_addon_allow_paras, verify_parameters, \
21+
get_addon_archive
2122
from .tasks import provision, bind, deprovision, update
2223

2324
logger = logging.getLogger(__name__)
@@ -46,6 +47,9 @@ def provision(self,
4647
raise ErrInstanceAlreadyExists()
4748
if not async_allowed:
4849
raise ErrAsyncRequired()
50+
if get_addon_archive(details.service_id):
51+
raise ErrBadRequest(
52+
msg="This addon has archived.")
4953
allow_paras = get_addon_allow_paras(details.service_id)
5054
not_allow_keys = verify_parameters(allow_paras, details.parameters)
5155
if not_allow_keys:

rootfs/helmbroker/loader.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,14 @@ def load_addons(repository):
103103
save_file(remote_index, ADDONS_PATH, index_name)
104104
remote_index = yaml.load(remote_index, Loader=yaml.Loader)
105105
# save index.yaml addons
106-
for _, v in remote_index.get('entries', {}).items():
106+
for addon_name, v in remote_index.get('entries', {}).items():
107107
for _ in v:
108108
url = "/".join(repository["url"].split("/")[0:-1])
109-
tgz_name = f'{_["name"]}-{_["version"]}'
109+
tgz_name = f'{addon_name}-{_["version"]}'
110110
addon_tgz_url = f'{url}/{tgz_name}.tgz'
111111
download_file(addon_tgz_url, ADDONS_PATH)
112112
extract_tgz(f'{ADDONS_PATH}/{tgz_name}.tgz',
113-
f'{ADDONS_PATH}')
113+
f'{ADDONS_PATH}/{tgz_name}')
114114
addons_meta_file()
115115

116116

rootfs/helmbroker/utils.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,11 @@ def get_addon_allow_paras(service_id):
233233
return service.get('allow_parameters', [])
234234

235235

236+
def get_addon_archive(service_id):
237+
service = get_addon_meta(service_id)
238+
return service.get('archive', False)
239+
240+
236241
def get_cred_value(ns, source):
237242
if source.get('serviceRef'):
238243
return get_service_key_value(ns, source['serviceRef'])

0 commit comments

Comments
 (0)