"""
return self.safe_data['workload-status']['message']
+ @property
+ def machine(self):
+ """Get the machine object for this unit.
+
+ """
+ machine_id = self.safe_data['machine-id']
+ if machine_id:
+ return self.model.machines.get(machine_id, None)
+ else:
+ return None
+
@property
def public_address(self):
""" Get the public address.
# action is complete, rather than just being in the model
return await self.model._wait_for_new('action', action_id)
- def scp(
- self, source_path, user=None, destination_path=None, proxy=False,
- scp_opts=None):
+ async def scp_to(self, source, destination, user='ubuntu', proxy=False,
+ scp_opts=''):
"""Transfer files to this unit.
- :param str source_path: Path of file(s) to transfer
+ :param str source: Local path of file(s) to transfer
+ :param str destination: Remote destination of transferred files
:param str user: Remote username
- :param str destination_path: Destination of transferred files on
- remote machine
:param bool proxy: Proxy through the Juju API server
:param str scp_opts: Additional options to the `scp` command
+ """
+ await self.machine.scp_to(source, destination, user=user, proxy=proxy,
+ scp_opts=scp_opts)
+ async def scp_from(self, source, destination, user='ubuntu', proxy=False,
+ scp_opts=''):
+ """Transfer files from this unit.
+
+ :param str source: Remote path of file(s) to transfer
+ :param str destination: Local destination of transferred files
+ :param str user: Remote username
+ :param bool proxy: Proxy through the Juju API server
+ :param str scp_opts: Additional options to the `scp` command
"""
- raise NotImplementedError()
+ await self.machine.scp_from(source, destination, user=user,
+ proxy=proxy, scp_opts=scp_opts)
def set_meter_status(self):
"""Set the meter status on this unit.