Skip to content

Commit ed5c7d7

Browse files
committed
Set CharmOrigin fields correctly based on client version
1 parent 13c6bc5 commit ed5c7d7

1 file changed

Lines changed: 20 additions & 13 deletions

File tree

juju/bundle.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -281,20 +281,27 @@ async def _download_bundle(self, charm_url, origin):
281281
if self.charms_facade is None:
282282
raise JujuError('unable to download bundle for {} using the new charms facade. Upgrade controller to proceed.'.format(charm_url))
283283

284+
id = origin.id_ if origin.id_ else ''
285+
hash = origin.hash_ if origin.hash_ else ''
286+
charm_origin = {
287+
'source': origin.source,
288+
'type': origin.type_,
289+
'id': id,
290+
'hash': hash,
291+
'revision': origin.revision,
292+
'risk': origin.risk,
293+
'track': origin.track,
294+
'architecture': origin.architecture,
295+
}
296+
if self.model.connection().is_using_old_client:
297+
charm_origin['os'] = origin.os
298+
charm_origin['series'] = origin.series
299+
else:
300+
charm_origin['base'] = origin.base
301+
284302
resp = await self.charms_facade.GetDownloadInfos(entities=[{
285303
'charm-url': str(charm_url),
286-
'charm-origin': {
287-
'source': origin.source,
288-
'type': origin.type_,
289-
'id': origin.id_,
290-
'hash': origin.hash_,
291-
'revision': origin.revision,
292-
'risk': origin.risk,
293-
'track': origin.track,
294-
'architecture': origin.architecture,
295-
'os': origin.os,
296-
'series': origin.series,
297-
}
304+
'charm-origin': charm_origin
298305
}])
299306
if len(resp.results) != 1:
300307
raise JujuError("expected one result, received {}".format(resp.results))
@@ -356,7 +363,7 @@ async def _resolve_charms(self):
356363
risk=risk,
357364
track=track)
358365
charm_url, charm_origin, _ = await self.model._resolve_charm(charm_url, origin)
359-
366+
# import pdb;pdb.set_trace()
360367
spec['charm'] = str(charm_url)
361368
else:
362369
results = await self.model.charmstore.entity(str(charm_url))

0 commit comments

Comments
 (0)