47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
|
import click
|
||
|
from zope import component
|
||
|
|
||
|
from ceo_common.interfaces import IConfig
|
||
|
|
||
|
from ..utils import http_post
|
||
|
from .utils import handle_sync_response
|
||
|
|
||
|
|
||
|
@click.group(short_help='Perform operations on the CSC cloud')
|
||
|
def cloud():
|
||
|
pass
|
||
|
|
||
|
|
||
|
@cloud.group(short_help='Manage your cloud account')
|
||
|
def account():
|
||
|
pass
|
||
|
|
||
|
|
||
|
@account.command(short_help='Activate your cloud account')
|
||
|
def activate():
|
||
|
cfg = component.getUtility(IConfig)
|
||
|
base_domain = cfg.get('base_domain')
|
||
|
|
||
|
resp = http_post('/api/cloud/accounts/create')
|
||
|
handle_sync_response(resp)
|
||
|
lines = [
|
||
|
'Congratulations! Your cloud account has been activated.',
|
||
|
f'You may now login into https://cloud.{base_domain} with your CSC credentials.',
|
||
|
"Make sure to enter 'Members' for the domain (no quotes).",
|
||
|
]
|
||
|
for line in lines:
|
||
|
click.echo(line)
|
||
|
|
||
|
|
||
|
@cloud.group(short_help='Manage cloud accounts')
|
||
|
def accounts():
|
||
|
pass
|
||
|
|
||
|
|
||
|
@accounts.command(short_help='Purge expired cloud accounts')
|
||
|
def purge():
|
||
|
resp = http_post('/api/cloud/accounts/purge')
|
||
|
result = handle_sync_response(resp)
|
||
|
click.echo('Accounts to be deleted: ' + ','.join(result['accounts_to_be_deleted']))
|
||
|
click.echo('Accounts which were deleted: ' + ','.join(result['accounts_deleted']))
|