X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Fjuju%2Ftag.py;fp=modules%2Flibjuju%2Fjuju%2Ftag.py;h=282e0a6edb2f5da1bb187b6c25bf31a3b725e364;hp=0000000000000000000000000000000000000000;hb=e2051cca7dac12aa09f6ed33555dcc4548c4b52b;hpb=9d18c22a0dc9e295adda50601fc5e2f45d2c9b8a diff --git a/modules/libjuju/juju/tag.py b/modules/libjuju/juju/tag.py new file mode 100644 index 0000000..282e0a6 --- /dev/null +++ b/modules/libjuju/juju/tag.py @@ -0,0 +1,40 @@ +# TODO: Tags should be a proper class, so that we can distinguish whether +# something is already a tag or not. For example, 'user-foo' is a valid +# username, but is ambiguous with the already-tagged username 'foo'. + + +def _prefix(prefix, s): + if s and not s.startswith(prefix): + return '{}{}'.format(prefix, s) + return s + + +def untag(prefix, s): + if s and s.startswith(prefix): + return s[len(prefix):] + return s + + +def cloud(cloud_name): + return _prefix('cloud-', cloud_name) + + +def credential(cloud, user, credential_name): + credential_string = '{}_{}_{}'.format(cloud, user, credential_name) + return _prefix('cloudcred-', credential_string) + + +def model(cloud_name): + return _prefix('model-', cloud_name) + + +def user(username): + return _prefix('user-', username) + + +def application(app_name): + return _prefix('application-', app_name) + + +def action(action_uuid): + return _prefix('action-', action_uuid)