33import yaml
44
55from .utils import command , get_plan_path , get_chart_path , get_cred_value
6- from .meta import dump_instance_meta , dump_binding_meta
6+ from .meta import dump_instance_meta , dump_binding_meta , load_instance_meta
77from openbrokerapi .service_broker import *
88
99
@@ -18,7 +18,7 @@ def provision(instance_id: str, details: ProvisionDetails):
1818 },
1919 "last_operation" : {
2020 "state" : OperationState .IN_PROGRESS ,
21- "description" : "%s in progress at %s" % (instance_id , time .time ())
21+ "description" : "provision %s in progress at %s" % (instance_id , time .time ())
2222 }
2323 }
2424 dump_instance_meta (instance_id , data )
@@ -40,10 +40,10 @@ def provision(instance_id: str, details: ProvisionDetails):
4040 status , output = command ("helm" , * args )
4141 if status != 0 :
4242 data ["last_operation" ]["state" ] = OperationState .FAILED
43- data ["last_operation" ]["description" ] = output
43+ data ["last_operation" ]["description" ] = "provision error: \n %s" % output
4444 else :
4545 data ["last_operation" ]["state" ] = OperationState .SUCCEEDED
46- data ["last_operation" ]["description" ] = "succeeded at %s" % time .time ()
46+ data ["last_operation" ]["description" ] = "provision succeeded at %s" % time .time ()
4747
4848
4949def bind (instance_id : str ,
@@ -97,4 +97,21 @@ def bind(instance_id: str,
9797
9898
9999def deprovision (instance_id : str , details : DeprovisionDetails ):
100- pass
100+ data = load_instance_meta (instance_id )
101+ data ["last_operation" ]["state" ] = OperationState .IN_PROGRESS
102+ data ["last_operation" ]["description" ] = "deprovision %s in progress at %s" % (instance_id , time .time ())
103+ dump_instance_meta (instance_id )
104+ command (
105+ "helm" ,
106+ "uninstall" ,
107+ data ["details" ]["context" ]["instance_name" ],
108+ "--namespace" ,
109+ data ["details" ]["context" ]["namespace" ],
110+ )
111+ status , output = command ("kubectl" , "delete" , "ns" , data ["details" ]["context" ]["namespace" ])
112+ if status != 0 :
113+ data ["last_operation" ]["state" ] = OperationState .FAILED
114+ data ["last_operation" ]["description" ] = "deprovision error:\n %s" % output
115+ else :
116+ data ["last_operation" ]["state" ] = OperationState .SUCCEEDED
117+ data ["last_operation" ]["description" ] = "deprovision succeeded at %s" % time .time ()
0 commit comments