1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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)
|