diff --git a/apps/ops/inventory.py b/apps/ops/inventory.py index 59179b5c7..b0fe5f8ef 100644 --- a/apps/ops/inventory.py +++ b/apps/ops/inventory.py @@ -92,7 +92,7 @@ class JMSInventory(JMSBaseInventory): for asset in assets: host = self.convert_to_ansible(asset, run_as_admin=run_as_admin) - if run_as: + if run_as is not None: run_user_info = self.get_run_user_info(host) host.update(run_user_info) if become_info and asset.is_unixlike(): @@ -104,7 +104,7 @@ class JMSInventory(JMSBaseInventory): def get_run_user_info(self, host): from assets.backends import AssetUserManager - if not self.run_as: + if self.run_as is None: return {} try: diff --git a/apps/ops/models/command.py b/apps/ops/models/command.py index 53aeff2b9..662131bc5 100644 --- a/apps/ops/models/command.py +++ b/apps/ops/models/command.py @@ -33,7 +33,12 @@ class CommandExecution(OrgModelMixin): @property def inventory(self): - return JMSInventory(self.hosts.all(), run_as=self.run_as.username) + if self.run_as.username_same_with_user: + username = self.user.username + else: + username = self.run_as.username + inv = JMSInventory(self.hosts.all(), run_as=username) + return inv @property def result(self):