def fix(self, status): if status.must_be_deleted: result = run_local(self._kubectl + ["delete", self.KIND, self.resource_name]) log_error(result) else: result = run_local( self._kubectl + ["apply", "-f", "-"], data_stdin=self.manifest.encode('utf-8'), ) log_error(result)
def fix(self, status): if status.must_be_deleted: result = run_local(self._kubectl + ["delete", self.KIND, self.resource_name]) log_error(result) else: result = run_local( self._kubectl + ["apply", "-f", "-"], data_stdin=self.manifest.encode('utf-8'), ) log_error(result)
def sdict(self): result = run_local([ "kubectl", "--context={}".format(self.node.kubectl_context), "--namespace={}".format(self.namespace), "get", "-o", "json", self.KUBECTL_RESOURCE_TYPE, self.resource_name, ]) if result.return_code == 0: full_json_response = json.loads(result.stdout) if full_json_response.get("status", {}).get("phase") == "Terminating": # this resource is currently being deleted, consider it gone return None return {'manifest': json.dumps(reduce_dict( full_json_response, json.loads(self.manifest), ), indent=4, sort_keys=True)} elif result.return_code == 1 and "NotFound" in result.stderr.decode('utf-8'): return None else: io.debug(result.stdout.decode('utf-8')) io.debug(result.stderr.decode('utf-8')) raise RuntimeError(_("error getting state of {}, check `bw --debug`".format(self.id)))
def sdict(self): result = run_local( self._kubectl + ["get", "-o", "json", self.KIND, self.resource_name]) if result.return_code == 0: full_json_response = json.loads(result.stdout.decode('utf-8')) if full_json_response.get("status", {}).get("phase") == "Terminating": # this resource is currently being deleted, consider it gone return None return { 'manifest': json.dumps(reduce_dict( full_json_response, self.nuke_changing_attributes(json.loads(self.manifest)), ), indent=4, sort_keys=True) } elif result.return_code == 1 and "NotFound" in result.stderr.decode( 'utf-8'): return None else: io.debug(result.stdout.decode('utf-8')) io.debug(result.stderr.decode('utf-8')) raise RuntimeError( _("error getting state of {}, check `bw --debug`".format( self.id)))
def run_local(self, command, **kwargs): result = run_local(command, **kwargs) self._command_results.append({ 'command': command, 'result': result, }) return result
def fix(self, status): if status.must_be_deleted: result = run_local([ "kubectl", "--context={}".format(self.node.kubectl_context), "--namespace={}".format(self.namespace), "delete", self.KUBECTL_RESOURCE_TYPE, self.resource_name, ]) log_error(result) else: result = run_local([ "kubectl", "--context={}".format(self.node.kubectl_context), "--namespace={}".format(self.namespace), "apply", "-f", "-", ], data_stdin=self.manifest.encode('utf-8')) log_error(result)