summaryrefslogtreecommitdiffstats
path: root/mod/onboardingapi/dcae_cli/commands/profiles/commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'mod/onboardingapi/dcae_cli/commands/profiles/commands.py')
-rw-r--r--mod/onboardingapi/dcae_cli/commands/profiles/commands.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/mod/onboardingapi/dcae_cli/commands/profiles/commands.py b/mod/onboardingapi/dcae_cli/commands/profiles/commands.py
new file mode 100644
index 0000000..df34b5c
--- /dev/null
+++ b/mod/onboardingapi/dcae_cli/commands/profiles/commands.py
@@ -0,0 +1,87 @@
+# ============LICENSE_START=======================================================
+# org.onap.dcae
+# ================================================================================
+# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+# -*- coding: utf-8 -*-
+"""
+Provides profiles commands
+"""
+import json
+
+import click
+
+from dcae_cli.util.exc import DcaeException
+from dcae_cli.util.profiles import (get_profiles, activate_profile, get_active_name, update_profile,
+ delete_profile, create_profile)
+
+
+@click.group()
+def profiles():
+ pass
+
+
+@profiles.command()
+@click.argument('name')
+def activate(name):
+ '''Sets profile (name) as the active profile'''
+ activate_profile(name)
+
+
+@profiles.command(name='list')
+def list_profiles():
+ '''Lists available profiles'''
+ profiles = get_profiles(include_active=False)
+ active = get_active_name()
+ names = sorted(profiles.keys())
+ outputs = ("{} {}".format(' ' if not name == active else '* ', name) for name in names)
+ click.echo('\n'.join(outputs))
+
+
+@profiles.command()
+@click.argument('name')
+def show(name):
+ '''Provides more information about a Profile'''
+ profiles = get_profiles()
+ try:
+ click.echo(json.dumps(profiles[name], sort_keys=True, indent=4))
+ except KeyError as e:
+ raise DcaeException("Profile '{}' does not exist.".format(e))
+
+
+@profiles.command()
+@click.argument('name', type=click.STRING)
+def create(name):
+ '''Creates new profile (name), with defaults'''
+ create_profile(name)
+
+
+@profiles.command(name='set')
+@click.argument('name')
+@click.argument('key')
+@click.argument('value')
+def update(name, key, value):
+ '''Updates profile (name) for specific Key/Value'''
+ update_profile(name, **{key: value})
+
+
+@profiles.command()
+@click.argument('name')
+def delete(name):
+ '''Deletes profile (name)'''
+ delete_profile(name)