projects
/
osm
/
N2VC.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add long description for pypi
[osm/N2VC.git]
/
juju
/
model.py
diff --git
a/juju/model.py
b/juju/model.py
index
7897d42
..
a0180a0
100644
(file)
--- a/
juju/model.py
+++ b/
juju/model.py
@@
-14,7
+14,7
@@
from theblues import charmstore
from .client import client
from .client import watcher
from .client import connection
from .client import client
from .client import watcher
from .client import connection
-from .constraints import parse as parse_constraints
+from .constraints import parse as parse_constraints
, normalize_key
from .delta import get_entity_delta
from .delta import get_entity_class
from .exceptions import DeadEntityException
from .delta import get_entity_delta
from .delta import get_entity_class
from .exceptions import DeadEntityException
@@
-914,7
+914,7
@@
class Model(object):
channel=channel,
charm_url=entity_id,
config=config,
channel=channel,
charm_url=entity_id,
config=config,
- constraints=
constraints
,
+ constraints=
parse_constraints(constraints)
,
endpoint_bindings=bind,
num_units=num_units,
placement=placement,
endpoint_bindings=bind,
num_units=num_units,
placement=placement,
@@
-1264,6
+1264,8
@@
class Model(object):
:param str \*tags: Tags of entities from which to retrieve metrics.
No tags retrieves the metrics of all units in the model.
:param str \*tags: Tags of entities from which to retrieve metrics.
No tags retrieves the metrics of all units in the model.
+ :return: Dictionary of unit_name:metrics
+
"""
log.debug("Retrieving metrics for %s",
', '.join(tags) if tags else "all units")
"""
log.debug("Retrieving metrics for %s",
', '.join(tags) if tags else "all units")
@@
-1364,7
+1366,7
@@
class BundleHandler(object):
expects.
container_type: string holding the type of the container (for
expects.
container_type: string holding the type of the container (for
- instance ""lx
c
" or kvm"). It is not specified for top level
+ instance ""lx
d
" or kvm"). It is not specified for top level
machines.
parent_id: string holding a placeholder pointing to another
machines.
parent_id: string holding a placeholder pointing to another
@@
-1375,6
+1377,10
@@
class BundleHandler(object):
"""
params = params or {}
"""
params = params or {}
+ # Normalize keys
+ params = {normalize_key(k): params[k] for k in params.keys()}
+
+ # Fix up values, as necessary.
if 'parent_id' in params:
params['parent_id'] = self.resolve(params['parent_id'])
if 'parent_id' in params:
params['parent_id'] = self.resolve(params['parent_id'])
@@
-1382,6
+1388,12
@@
class BundleHandler(object):
params.get('constraints'))
params['jobs'] = params.get('jobs', ['JobHostUnits'])
params.get('constraints'))
params['jobs'] = params.get('jobs', ['JobHostUnits'])
+ if params.get('container_type') == 'lxc':
+ log.warning('Juju 2.0 does not support lxc containers. '
+ 'Converting containers to lxd.')
+ params['container_type'] = 'lxd'
+
+ # Submit the request.
params = client.AddMachineParams(**params)
results = await self.client_facade.AddMachines([params])
error = results.machines[0].error
params = client.AddMachineParams(**params)
results = await self.client_facade.AddMachines([params])
error = results.machines[0].error
@@
-1450,7
+1462,7
@@
class BundleHandler(object):
series=series,
application=application,
config=options,
series=series,
application=application,
config=options,
- constraints=
constraints
,
+ constraints=
parse_constraints(constraints)
,
storage=storage,
endpoint_bindings=endpoint_bindings,
resources=resources,
storage=storage,
endpoint_bindings=endpoint_bindings,
resources=resources,