projects
/
osm
/
N2VC.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use config-yaml by default when deploying a bundle.
[osm/N2VC.git]
/
juju
/
application.py
diff --git
a/juju/application.py
b/juju/application.py
index
4a98622
..
9863d88
100644
(file)
--- a/
juju/application.py
+++ b/
juju/application.py
@@
-3,6
+3,7
@@
import logging
from . import model
from .client import client
from . import model
from .client import client
+from .placement import parse as parse_placement
log = logging.getLogger(__name__)
log = logging.getLogger(__name__)
@@
-40,14
+41,18
@@
class Application(model.ModelEntity):
"""Get the application status, as set by the charm's leader.
"""
"""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.
"""
@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):
+ return 'application-%s' % self.name
async def add_relation(self, local_relation, remote_relation):
"""Add a relation to another application.
async def add_relation(self, local_relation, remote_relation):
"""Add a relation to another application.
@@
-83,7
+88,7
@@
class Application(model.ModelEntity):
result = await app_facade.AddUnits(
application=self.name,
result = await app_facade.AddUnits(
application=self.name,
- placement=
to
,
+ placement=
parse_placement(to) if to else None
,
num_units=count,
)
num_units=count,
)
@@
-101,7
+106,7
@@
class Application(model.ModelEntity):
:param int value: Budget limit
"""
:param int value: Budget limit
"""
- pass
+ raise NotImplementedError()
def attach(self, resource_name, file_path):
"""Upload a file as a resource for this application.
def attach(self, resource_name, file_path):
"""Upload a file as a resource for this application.
@@
-110,13
+115,13
@@
class Application(model.ModelEntity):
:param str file_path: Path to the file to upload
"""
:param str file_path: Path to the file to upload
"""
- pass
+ raise NotImplementedError()
def collect_metrics(self):
"""Collect metrics on this application.
"""
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.
async def destroy_relation(self, local_relation, remote_relation):
"""Remove a relation to another application.
@@
-202,7
+207,7
@@
class Application(model.ModelEntity):
:param bool schema: Return the full action schema
"""
:param bool schema: Return the full action schema
"""
- pass
+ raise NotImplementedError()
def get_resources(self, details=False):
"""Return resources for this application.
def get_resources(self, details=False):
"""Return resources for this application.
@@
-211,7
+216,7
@@
class Application(model.ModelEntity):
unit
"""
unit
"""
- pass
+ raise NotImplementedError()
async def run(self, command, timeout=None):
"""Run command on all units for this application.
async def run(self, command, timeout=None):
"""Run command on all units for this application.
@@
-289,7
+294,7
@@
class Application(model.ModelEntity):
:param str info: Extra info message
"""
:param str info: Extra info message
"""
- pass
+ raise NotImplementedError()
def set_plan(self, plan_name):
"""Set the plan for this application, effective immediately.
def set_plan(self, plan_name):
"""Set the plan for this application, effective immediately.
@@
-297,7
+302,7
@@
class Application(model.ModelEntity):
:param str plan_name: Name of plan
"""
:param str plan_name: Name of plan
"""
- pass
+ raise NotImplementedError()
async def unexpose(self):
"""Remove public availability over the network for this application.
async def unexpose(self):
"""Remove public availability over the network for this application.
@@
-317,7
+322,7
@@
class Application(model.ModelEntity):
:param int allocation: The allocation to set
"""
:param int allocation: The allocation to set
"""
- pass
+ raise NotImplementedError()
def upgrade_charm(
self, channel=None, force_series=False, force_units=False,
def upgrade_charm(
self, channel=None, force_series=False, force_units=False,
@@
-336,4
+341,12
@@
class Application(model.ModelEntity):
:param str switch: Crossgrade charm url
"""
: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)