projects
/
osm
/
N2VC.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update changelog for 0.4.0
[osm/N2VC.git]
/
juju
/
application.py
diff --git
a/juju/application.py
b/juju/application.py
index
df309b3
..
2733a6c
100644
(file)
--- a/
juju/application.py
+++ b/
juju/application.py
@@
-41,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.
@@
-75,8
+79,7
@@
class Application(model.ModelEntity):
If None, a new machine is provisioned.
"""
If None, a new machine is provisioned.
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Adding %s unit%s to %s',
log.debug(
'Adding %s unit%s to %s',
@@
-84,7
+87,7
@@
class Application(model.ModelEntity):
result = await app_facade.AddUnits(
application=self.name,
result = await app_facade.AddUnits(
application=self.name,
- placement=
[parse_placement(to)]
,
+ placement=
parse_placement(to) if to else None
,
num_units=count,
)
num_units=count,
)
@@
-102,7
+105,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.
@@
-111,13
+114,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.
@@
-130,8
+133,7
@@
class Application(model.ModelEntity):
if ':' not in local_relation:
local_relation = '{}:{}'.format(self.name, local_relation)
if ':' not in local_relation:
local_relation = '{}:{}'.format(self.name, local_relation)
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Destroying relation %s <-> %s', local_relation, remote_relation)
log.debug(
'Destroying relation %s <-> %s', local_relation, remote_relation)
@@
-151,8
+153,7
@@
class Application(model.ModelEntity):
"""Remove this application from the model.
"""
"""Remove this application from the model.
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Destroying %s', self.name)
log.debug(
'Destroying %s', self.name)
@@
-164,8
+165,7
@@
class Application(model.ModelEntity):
"""Make this application publicly available over the network.
"""
"""Make this application publicly available over the network.
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Exposing %s', self.name)
log.debug(
'Exposing %s', self.name)
@@
-176,8
+176,7
@@
class Application(model.ModelEntity):
"""Return the configuration settings dict for this application.
"""
"""Return the configuration settings dict for this application.
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Getting config for %s', self.name)
log.debug(
'Getting config for %s', self.name)
@@
-188,8
+187,7
@@
class Application(model.ModelEntity):
"""Return the machine constraints dict for this application.
"""
"""Return the machine constraints dict for this application.
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Getting constraints for %s', self.name)
log.debug(
'Getting constraints for %s', self.name)
@@
-203,7
+201,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.
@@
-212,7
+210,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.
@@
-221,8
+219,7
@@
class Application(model.ModelEntity):
:param int timeout: Time to wait before command is considered failed
"""
:param int timeout: Time to wait before command is considered failed
"""
- action = client.ActionFacade()
- action.connect(self.connection)
+ action = client.ActionFacade.from_connection(self.connection)
log.debug(
'Running `%s` on all units of %s', command, self.name)
log.debug(
'Running `%s` on all units of %s', command, self.name)
@@
-245,11
+242,11
@@
class Application(model.ModelEntity):
"""
log.debug('Updating annotations on application %s', self.name)
"""
log.debug('Updating annotations on application %s', self.name)
- self.ann_facade = client.AnnotationsFacade
()
-
self.ann_facade.connect(
self.connection)
+ self.ann_facade = client.AnnotationsFacade
.from_connection(
+
self.connection)
ann = client.EntityAnnotations(
ann = client.EntityAnnotations(
- entity=self.
name
,
+ entity=self.
tag
,
annotations=annotations,
)
return await self.ann_facade.Set([ann])
annotations=annotations,
)
return await self.ann_facade.Set([ann])
@@
-261,8
+258,7
@@
class Application(model.ModelEntity):
:param bool to_default: Set application options to default values
"""
:param bool to_default: Set application options to default values
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Setting config for %s: %s', self.name, config)
log.debug(
'Setting config for %s: %s', self.name, config)
@@
-275,8
+271,7
@@
class Application(model.ModelEntity):
:param dict constraints: Dict of machine constraints
"""
:param dict constraints: Dict of machine constraints
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Setting constraints for %s: %s', self.name, constraints)
log.debug(
'Setting constraints for %s: %s', self.name, constraints)
@@
-290,7
+285,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.
@@
-298,14
+293,13
@@
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.
"""
- app_facade = client.ApplicationFacade()
- app_facade.connect(self.connection)
+ app_facade = client.ApplicationFacade.from_connection(self.connection)
log.debug(
'Unexposing %s', self.name)
log.debug(
'Unexposing %s', self.name)
@@
-318,7
+312,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,
@@
-337,4
+331,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)