Exemple #1
0
 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)
Exemple #2
0
 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)))
Exemple #4
0
 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)))
Exemple #5
0
 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)