ret = self._orch_cmd("device", "ls")
self.assertIn("localhost:", ret)
+ def test_device_ls_refresh(self):
+ ret = self._orch_cmd("device", "ls", "--refresh")
+ self.assertIn("localhost:", ret)
+
def test_device_ls_hoshs(self):
ret = self._orch_cmd("device", "ls", "localhost", "host1")
self.assertIn("localhost:", ret)
self.log.info('Stopping Ansible orchestrator module')
self.run = False
- def get_inventory(self, node_filter=None):
+ def get_inventory(self, node_filter=None, refresh=False):
"""
:param : node_filter instance
+ :param : refresh any cached state
:Return : A AnsibleReadOperation instance (Completion Object)
"""
return True, ""
- def get_inventory(self, node_filter=None):
+ def get_inventory(self, node_filter=None, refresh=False):
"""
Note that this will raise an exception (e.g. if the salt-api is down,
or the username/password is incorret). Same for other methods.
"""
return self.get_inventory()
- def get_inventory(self, node_filter=None):
- # type: (InventoryFilter) -> ReadCompletion[List[InventoryNode]]
+ def get_inventory(self, node_filter=None, refresh=False):
+ # type: (InventoryFilter, bool) -> ReadCompletion[List[InventoryNode]]
"""
Returns something that was created by `ceph-volume inventory`.
@CLIReadCommand('orchestrator device ls',
"name=host,type=CephString,n=N,req=false "
- "name=format,type=CephChoices,strings=json|plain,req=false",
+ "name=format,type=CephChoices,strings=json|plain,req=false "
+ "name=refresh,type=CephBool,req=false",
'List devices on a node')
@handle_exceptions
- def _list_devices(self, host=None, format='plain'):
- # type: (List[str], str) -> HandleCommandResult
+ def _list_devices(self, host=None, format='plain', refresh=False):
+ # type: (List[str], str, bool) -> HandleCommandResult
"""
Provide information about storage devices present in cluster hosts
"""
nf = orchestrator.InventoryFilter(nodes=host) if host else None
- completion = self.get_inventory(node_filter=nf)
+ completion = self.get_inventory(node_filter=nf, refresh=refresh)
self._orchestrator_wait([completion])
# things look a bit out of sync?
@deferred_read
- def get_inventory(self, node_filter=None):
+ def get_inventory(self, node_filter=None, refresh=False):
node_list = None
if node_filter and node_filter.nodes:
# Explicit node list
self._shutdown.wait(5)
@deferred_read
- def get_inventory(self, node_filter=None):
+ def get_inventory(self, node_filter=None, refresh=False):
"""
There is no guarantee which devices are returned by get_inventory.
"""