Merge lp:~timkuhlman/python-jujuclient/model-owner into lp:python-jujuclient

Proposed by Tim Kuhlman
Status: Merged
Merged at revision: 95
Proposed branch: lp:~timkuhlman/python-jujuclient/model-owner
Merge into: lp:python-jujuclient
Diff against target: 72 lines (+13/-7)
2 files modified
.bzrignore (+1/-0)
jujuclient/juju2/connector.py (+12/-7)
To merge this branch: bzr merge lp:~timkuhlman/python-jujuclient/model-owner
Reviewer Review Type Date Requested Status
Tim Van Steenburgh (community) Approve
Review via email: mp+306394@code.launchpad.net

Description of the change

Use the model owner in the model name if it is available.

To post a comment you must log in.
Revision history for this message
Tim Van Steenburgh (tvansteenburgh) wrote :

+1, thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2016-07-12 02:28:46 +0000
3+++ .bzrignore 2016-09-21 20:07:41 +0000
4@@ -15,3 +15,4 @@
5 juju-backup-20150709-202028.tar.gz
6 __pycache__
7 .cache
8+.idea
9
10=== modified file 'jujuclient/juju2/connector.py'
11--- jujuclient/juju2/connector.py 2016-08-30 21:54:13 +0000
12+++ jujuclient/juju2/connector.py 2016-09-21 20:07:41 +0000
13@@ -22,7 +22,8 @@
14
15 def _parse_env_name(self, env_name):
16 """Given an environment name such as is returned from `juju switch`,
17- return a tuple of (controller_name, model_name).
18+ return a tuple of (controller_name, model_name, owner). In many cases
19+ owner is set to None.
20
21 Handles any of these formats::
22
23@@ -30,17 +31,18 @@
24 controller:user@local/model
25
26 """
27+ owner = None
28 if ':' in env_name:
29 controller_name, remainder = env_name.split(':')
30 else:
31 raise Exception('Invalid environment name: %s', env_name)
32
33 if '/' in remainder:
34- _, model_name = remainder.split('/')
35+ owner, model_name = remainder.split('/')
36 else:
37 model_name = remainder
38
39- return controller_name, model_name
40+ return controller_name, model_name, owner
41
42 def parse_env(self, env_name):
43 """Provide API and access details for a juju2 model.
44@@ -52,9 +54,9 @@
45 jhome = os.path.expanduser(
46 os.environ.get('JUJU_DATA', '~/.local/share/juju'))
47
48- controller_name, model_name = self._parse_env_name(env_name)
49+ controller_name, model_name, owner = self._parse_env_name(env_name)
50 controller = self.get_controller(controller_name)
51- model = self.get_model(controller_name, model_name)
52+ model = self.get_model(controller_name, model_name, owner)
53 account = self.get_account(jhome, controller_name)
54
55 return jhome, {
56@@ -81,11 +83,14 @@
57 "Controller '{}' not found in `juju list-controllers`".format(
58 controller_name))
59
60- def get_model(self, controller_name, model_name):
61+ def get_model(self, controller_name, model_name, owner):
62 """Return info for the specified or current model.
63
64 """
65- model = '{}:{}'.format(controller_name, model_name)
66+ if owner is None:
67+ model = '{}:{}'.format(controller_name, model_name)
68+ else:
69+ model = '{}:{}/{}'.format(controller_name, owner, model_name)
70 try:
71 # post beta16 format
72 output = utils.check_output(

Subscribers

People subscribed via source and target branches

to all changes: