From 466c5632ee5861818170a298bfc187010eabae7d Mon Sep 17 00:00:00 2001 From: mischa Date: Mon, 20 Jun 2022 20:37:55 +0200 Subject: [PATCH] wrong logging.debug in clean.py --- clean.py | 2 +- users-wip.py | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100755 users-wip.py diff --git a/clean.py b/clean.py index b8fd388..a97ee30 100755 --- a/clean.py +++ b/clean.py @@ -123,7 +123,7 @@ s = alkira_login() logging.debug(s) # Get TenantID -logging.info('=== Fetching Credentials') +logging.info('=== Fetching Tenant Info') r = alkira_get(s, '/tenantnetworks') data = r.json() tenantNetworkId = data[0]['id'] diff --git a/users-wip.py b/users-wip.py new file mode 100755 index 0000000..35caf44 --- /dev/null +++ b/users-wip.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +# +# Copyright 2022, Mischa Peters , Alkira. +# wip-users.py +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +import os +import sys +import re +import json +import time +import logging +import requests +import configparser + +############################################### + +CONFIG_FILE = "/Users/mischa/Alkira/xDev/alkira.cnf" +if not os.path.isfile(CONFIG_FILE): + logging.error(f"The config file {CONFIG_FILE} doesn't exist") + sys.exit(1) +config = configparser.RawConfigParser() +config.read(CONFIG_FILE) + +ALKIRA_TENANT = config.get('alkira', 'ALKIRA_TENANT') +ALKIRA_USERNAME = config.get('alkira', 'ALKIRA_USERNAME') +ALKIRA_PASSWORD = config.get('alkira', 'ALKIRA_PASSWORD') +ALKIRA_BASE_URI = f'https://{ALKIRA_TENANT}/api' + +############################################### + +# Set default headers +headers = {'Content-Type': "application/json"} + +# Set logging.INFO to logging.DEBUG for debug information +logging.basicConfig(level=logging.DEBUG) +logging = logging.getLogger('AlkiraAPI') + +def alkira_login(): + body = {'userName': ALKIRA_USERNAME, + 'password': ALKIRA_PASSWORD} + session = requests.session() + response = alkira_post(session, '/login', body) + return session + +def alkira_post(session, uri, body): + url = f'{ALKIRA_BASE_URI}{uri}' + try: + response = session.post(url, data=json.dumps(body), headers=headers) + response.raise_for_status() + except Exception as e: + logging.error(f'Error: {str(e)}') + sys.exit(1) + return response + +def alkira_get(session, uri): + url = f'{ALKIRA_BASE_URI}{uri}' + try: + response = session.get(url, headers=headers) + response.raise_for_status() + except Exception as e: + logging.error(f'Error: {str(e)}') + sys.exit(1) + return response + +def alkira_delete(session, uri): + url = f'{ALKIRA_BASE_URI}{uri}' + try: + response = session.delete(url, headers=headers) + response.raise_for_status() + except Exception as e: + logging.error(f'Error: {str(e)}') + sys.exit(1) + return response + +s = alkira_login() +logging.debug(s) + +r = alkira_get(s, '/tenantnetworks') +#logging.debug(r.text) +data = r.json() +print(data[0]['name']) +print(data[0]['id']) + +#body = {userName": "john", "email": "john@abcde.com", "firstName": "John", "lastName": "Doe", "password": "string", "roles": ["netadmin"], "userName": "john2"} +#r = alkira_post(s, '/users', body) +#print(r.status_code) + +r = alkira_get(s, '/users') +data = r.json() +#print(json.dumps(data, indent=4)) +for item in data: + if re.match(r'john', item.get('userName')): + user_id = item.get('id') + username = item.get('userName') + firstname = item.get('firstName') + lastname = item.get('lastName') + #print(f"First: {firstname}\n Last: {lastname}\n Login: {username}\n ID: {user_id}") + print(f'Deleting {username}') + r = alkira_delete(s, f'/users/{user_id}') + print(r.status_code) +