Skip to content

Commit 6228649

Browse files
committed
Fix correct use of base use in charmhub charmorigins in bundles
1 parent aec5669 commit 6228649

2 files changed

Lines changed: 28 additions & 7 deletions

File tree

juju/bundle.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,10 +356,14 @@ async def _resolve_charms(self):
356356

357357
charm_url = URL.parse(spec['charm'])
358358
channel = None
359+
series = spec.get('series', None)
359360
track, risk = '', ''
360361
if 'channel' in spec:
361362
channel = Channel.parse(spec['channel'])
362363
track, risk = channel.track, channel.risk
364+
365+
# if not track and series:
366+
# track = utils.get_series_version(series)
363367
if self.charms_facade is not None:
364368
if cons is not None and cons['arch'] != '':
365369
architecture = cons['arch']
@@ -370,6 +374,9 @@ async def _resolve_charms(self):
370374
architecture=architecture,
371375
risk=risk,
372376
track=track)
377+
if not self.model.connection().is_using_old_client and series:
378+
origin.base = client.Base(
379+
channel=utils.get_series_version(series), name='ubuntu')
373380
charm_url, charm_origin, _ = await self.model._resolve_charm(charm_url, origin)
374381
spec['charm'] = str(charm_url)
375382
else:
@@ -750,6 +757,10 @@ async def run(self, context):
750757
architecture=arch,
751758
risk=ch.risk,
752759
track=ch.track)
760+
if not context.model.connection().is_using_old_client and self.series:
761+
origin.base = client.Base(
762+
channel=utils.get_series_version(self.series),
763+
name='ubuntu')
753764
identifier, origin, _ = await context.model._resolve_charm(url, origin)
754765

755766
if identifier is None:
@@ -835,7 +846,12 @@ async def run(self, context):
835846

836847
params['constraints'] = parse_constraints(self.constraints)
837848
params['jobs'] = params.get('jobs', ['JobHostUnits'])
838-
params['series'] = self.series
849+
if not context.model.connection().is_using_old_client:
850+
params['base'] = client.Base(
851+
channel=utils.get_series_version(self.series),
852+
name='ubuntu')
853+
else:
854+
params['series'] = self.series
839855

840856
if self.container_type == 'lxc':
841857
log.warning('Juju 2.0 does not support lxc containers. '

juju/model.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1860,14 +1860,19 @@ async def _resolve_charm(self, url, origin):
18601860
source = "charm-store"
18611861
else:
18621862
source = "charm-hub"
1863+
1864+
resolve_origin = {
1865+
'source': source,
1866+
'architecture': origin.architecture,
1867+
'track': origin.track,
1868+
'risk': origin.risk,
1869+
}
1870+
1871+
if not self.connection().is_using_old_client:
1872+
resolve_origin['base'] = origin.base
18631873
resp = await charms_facade.ResolveCharms(resolve=[{
18641874
'reference': str(url),
1865-
'charm-origin': {
1866-
'source': source,
1867-
'architecture': origin.architecture,
1868-
'track': origin.track,
1869-
'risk': origin.risk,
1870-
}
1875+
'charm-origin': resolve_origin
18711876
}])
18721877
if len(resp.results) != 1:
18731878
raise JujuError("expected one result, received {}".format(resp.results))

0 commit comments

Comments
 (0)