edit.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # pylint: skip-file
  2. class Edit(OpenShiftCLI):
  3. ''' Class to wrap the oc command line tools
  4. '''
  5. # pylint: disable=too-many-arguments
  6. def __init__(self,
  7. kind,
  8. namespace,
  9. resource_name=None,
  10. kubeconfig='/etc/origin/master/admin.kubeconfig',
  11. verbose=False):
  12. ''' Constructor for OpenshiftOC '''
  13. super(Edit, self).__init__(namespace, kubeconfig)
  14. self.namespace = namespace
  15. self.kind = kind
  16. self.name = resource_name
  17. self.kubeconfig = kubeconfig
  18. self.verbose = verbose
  19. def get(self):
  20. '''return a secret by name '''
  21. return self._get(self.kind, self.name)
  22. def update(self, file_name, content, force=False, content_type='yaml'):
  23. '''run update '''
  24. if file_name:
  25. if content_type == 'yaml':
  26. data = yaml.load(open(file_name))
  27. elif content_type == 'json':
  28. data = json.loads(open(file_name).read())
  29. changes = []
  30. yed = Yedit(file_name, data)
  31. for key, value in content.items():
  32. changes.append(yed.put(key, value))
  33. if any([not change[0] for change in changes]):
  34. return {'returncode': 0, 'updated': False}
  35. yed.write()
  36. atexit.register(Utils.cleanup, [file_name])
  37. return self._replace(file_name, force=force)
  38. return self._replace_content(self.kind, self.name, content, force=force)