X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fapplication.py;h=9863d882b067c9eeb27f0d7bc730fe09d695f5d0;hb=5db9c4c5f0c88c73f06ac285294f9ab688e5bc97;hp=5a30235f7843f6ee9a9689ab8dbe8407412d93e1;hpb=0b9e0ad499afba7c8a3b86a82e3cc5d42da4887d;p=osm%2FN2VC.git diff --git a/juju/application.py b/juju/application.py index 5a30235..9863d88 100644 --- a/juju/application.py +++ b/juju/application.py @@ -3,6 +3,7 @@ import logging from . import model from .client import client +from .placement import parse as parse_placement log = logging.getLogger(__name__) @@ -40,14 +41,14 @@ class Application(model.ModelEntity): """Get the application status, as set by the charm's leader. """ - return self.data['status']['current'] + return self.safe_data['status']['current'] @property def status_message(self): """Get the application status message, as set by the charm's leader. """ - return self.data['status']['message'] + return self.safe_data['status']['message'] @property def tag(self): @@ -87,7 +88,7 @@ class Application(model.ModelEntity): result = await app_facade.AddUnits( application=self.name, - placement=to, + placement=parse_placement(to) if to else None, num_units=count, ) @@ -105,7 +106,7 @@ class Application(model.ModelEntity): :param int value: Budget limit """ - pass + raise NotImplementedError() def attach(self, resource_name, file_path): """Upload a file as a resource for this application. @@ -114,13 +115,13 @@ class Application(model.ModelEntity): :param str file_path: Path to the file to upload """ - pass + raise NotImplementedError() def collect_metrics(self): """Collect metrics on this application. """ - pass + raise NotImplementedError() async def destroy_relation(self, local_relation, remote_relation): """Remove a relation to another application. @@ -206,7 +207,7 @@ class Application(model.ModelEntity): :param bool schema: Return the full action schema """ - pass + raise NotImplementedError() def get_resources(self, details=False): """Return resources for this application. @@ -215,7 +216,7 @@ class Application(model.ModelEntity): unit """ - pass + raise NotImplementedError() async def run(self, command, timeout=None): """Run command on all units for this application. @@ -293,7 +294,7 @@ class Application(model.ModelEntity): :param str info: Extra info message """ - pass + raise NotImplementedError() def set_plan(self, plan_name): """Set the plan for this application, effective immediately. @@ -301,7 +302,7 @@ class Application(model.ModelEntity): :param str plan_name: Name of plan """ - pass + raise NotImplementedError() async def unexpose(self): """Remove public availability over the network for this application. @@ -321,7 +322,7 @@ class Application(model.ModelEntity): :param int allocation: The allocation to set """ - pass + raise NotImplementedError() def upgrade_charm( self, channel=None, force_series=False, force_units=False, @@ -340,7 +341,12 @@ class Application(model.ModelEntity): :param str switch: Crossgrade charm url """ - pass + raise NotImplementedError() async def get_metrics(self): + """Get metrics for this application's units. + + :return: Dictionary of unit_name:metrics + + """ return await self.model.get_metrics(self.tag)