X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fapplication.py;h=5a30235f7843f6ee9a9689ab8dbe8407412d93e1;hb=132f5ea91d63a915b2d892fc5a54429a8dc92bba;hp=272268d3aee93372776c1f6065e3624b7d246a3b;hpb=bea85caae65ac8d28b87feec5c7a1b6d5dbce070;p=osm%2FN2VC.git diff --git a/juju/application.py b/juju/application.py index 272268d..5a30235 100644 --- a/juju/application.py +++ b/juju/application.py @@ -49,6 +49,10 @@ class Application(model.ModelEntity): """ return self.data['status']['message'] + @property + def tag(self): + return 'application-%s' % self.name + async def add_relation(self, local_relation, remote_relation): """Add a relation to another application. @@ -213,14 +217,27 @@ class Application(model.ModelEntity): """ pass - def run(self, command, timeout=None): + async def run(self, command, timeout=None): """Run command on all units for this application. :param str command: The command to run :param int timeout: Time to wait before command is considered failed """ - pass + action = client.ActionFacade() + action.connect(self.connection) + + log.debug( + 'Running `%s` on all units of %s', command, self.name) + + # TODO this should return a list of Actions + return await action.Run( + [self.name], + command, + [], + timeout, + [], + ) async def set_annotations(self, annotations): """Set annotations on this application. @@ -324,3 +341,6 @@ class Application(model.ModelEntity): """ pass + + async def get_metrics(self): + return await self.model.get_metrics(self.tag)