Skip to content
This repository was archived by the owner on Oct 10, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions Atomic/atomic.py
Original file line number Diff line number Diff line change
Expand Up @@ -490,15 +490,27 @@ def stop(self):
pass

def _rpmostree(self, *args):
os.execl("/usr/bin/rpm-ostree", "rpm-ostree", *args)
aargs = self.args.args
if aargs == "--":
aargs = args[1:]
os.execl("/usr/bin/rpm-ostree", "rpm-ostree", *args + aargs)

def host_status(self):
self._rpmostree("status")
argv = ["status"]
if self.args.pretty:
argv.append("--pretty")
self._rpmostree(*argv)

def host_upgrade(self):
argv = ["upgrade"]
if self.args.reboot:
argv.append("--reboot")
if self.args.os:
argv.append("--os=" % self.args.os )
if self.args.diff:
argv.append("--check-diff")
if self.args.downgrade:
argv.append("--allow-downgrade")
self._rpmostree(*argv)

def host_rollback(self):
Expand All @@ -509,6 +521,8 @@ def host_rollback(self):

def host_rebase(self):
argv = ["rebase", self.args.refspec]
if self.args.os:
argv.append("--os=" % self.args.os )
self._rpmostree(*argv)

def uninstall(self):
Expand Down
31 changes: 29 additions & 2 deletions atomic
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class AliasedSubParsersAction(argparse._SubParsersAction):
if aliases:
dest += ' (%s)' % ','.join(aliases)
sup = super(AliasedSubParsersAction._AliasedPseudoAction, self)
sup.__init__(option_strings=[], dest=dest, help=help)
sup.__init__(option_strings=[], dest=dest, help=help)

def add_parser(self, name, **kwargs):
if 'aliases' in kwargs:
Expand All @@ -83,7 +83,7 @@ class AliasedSubParsersAction(argparse._SubParsersAction):
pseudo_action = self._AliasedPseudoAction(name, aliases, help)
self._choices_actions.append(pseudo_action)

return parser
return parser

if __name__ == '__main__':
atomic = Atomic.Atomic()
Expand All @@ -106,10 +106,21 @@ if __name__ == '__main__':
action="store_true",
help=_("initiate a reboot after rollback is "
"prepared"))
rollbackp.add_argument("args", nargs=argparse.REMAINDER,
help=_("Additional arguments appended to the "
"rollback method. Use `-- --OPTION=VAL` if you want to pass additional unsupported arguments to ostree."))


# atomic host status
statusp = host_subparser.add_parser(
"status", help=_("list information about all deployments"))
statusp.add_argument("-p", "--pretty", dest="pretty",
action="store_true",
help=_("Display status in formatted rows"))
statusp.add_argument("args", nargs=argparse.REMAINDER,
help=_("Additional arguments appended to the "
"status method. Use `-- --OPTION=VAL` if you want to pass additional unsupported arguments to ostree."))

statusp.set_defaults(func=atomic.host_status)

# atomic host upgrade
Expand All @@ -121,13 +132,29 @@ if __name__ == '__main__':
action="store_true",
help=_("if an upgrade is available, reboot "
"after deployment is complete"))
upgradep.add_argument("--allow-downgrade", dest="downgrade",
action="store_true",
help=_("Permit deployment of chronologically older trees"))
upgradep.add_argument("--os", dest="os",
help=_("Operate on provided OSNAME"))
upgradep.add_argument("--check-diff", dest="diff",
action="store_true",
help=_("Check for upgrades and print package diff only"))
upgradep.add_argument("args", nargs=argparse.REMAINDER,
help=_("Additional arguments appended to the "
"upgrade method. Use `-- --OPTION=VAL` if you want to pass additional unsupported arguments to ostree."))

# atomic host rebase
rebasep = host_subparser.add_parser(
"rebase", help=_("Download and deploy a new origin refspec"))
rebasep.set_defaults(func=atomic.host_rebase)
rebasep.add_argument("--os", dest="os",
help=_("Operate on provided OSNAME"))
rebasep.add_argument("refspec",
help=_("Origin refspec for new deployment"))
rebasep.add_argument("args", nargs=argparse.REMAINDER,
help=_("Additional arguments appended to the "
"rebase method. Use `-- --OPTION=VAL` if you want to pass additional unsupported arguments to ostree."))

# atomic info
infop = subparser.add_parser(
Expand Down