async def connect_model(cls, model, loop=None):
"""Connect to a model by name.
- :param str model: <controller>:<model>
+ :param str model: [<controller>:]<model>
"""
- controller_name, model_name = model.split(':')
-
jujudata = JujuData()
+
+ if ':' in model:
+ controller_name, model_name = model.split(':')
+ else:
+ controller_name = jujudata.current_controller()
+ model_name = model
+
controller = jujudata.controllers()[controller_name]
endpoint = controller['api-endpoints'][0]
cacert = controller.get('ca-cert')
'Deploying %s', entity_id)
if not is_local:
+ parts = entity_id[3:].split('/')
+ if parts[0].startswith('~'):
+ parts.pop(0)
+ if not application_name:
+ application_name = parts[-1].split('-')[0]
+ if not series:
+ if len(parts) > 1:
+ series = parts[0]
+ else:
+ entity = await self.charmstore.entity(entity_id)
+ ss = entity['Meta']['supported-series']
+ series = ss['SupportedSeries'][0]
await client_facade.AddCharm(channel, entity_id)
elif not entity_id.startswith('local:'):
# We have a local charm dir that needs to be uploaded