def rename_driver_script(driver, script_rename=None): # noqa: E501 """Rename a script Rename a script # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :param script_rename: The data needed to rename this script :type script_rename: dict | bytes :rtype: Response """ if connexion.request.is_json: script_rename = ScriptRename.from_dict( connexion.request.get_json()) # noqa: E501 response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) if not driver.renameDriverScript(script_rename.original.name, script_rename.new.name): return ErrorResponse(status=500, message='Cannot rename to an existing file.') return Response(status=200, body=response.getResponseBody())
def delete_driver_script(driver, script_delete=None): # noqa: E501 """Delete a script Delete a script # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :param script_delete: The data needed to delete this script :type script_delete: dict | bytes :rtype: Response """ if connexion.request.is_json: script_delete = ScriptDelete.from_dict( connexion.request.get_json()) # noqa: E501 response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) driver.deleteDriverScript(script_delete.script.name) return Response(status=200, body=response.getResponseBody())
def get_driver_script(name, name2=None): # noqa: E501 """Retrieve the contents of a script Retrieve the contents of a script # noqa: E501 :param name2: Get status of a driver with this name :type name2: str :param name: The script name. :type name: str :rtype: Response """ response = errorIfUnauthorized(role='user') if response: return response else: response = ApitaxResponse() print(name) print(name2) driver: Driver = LoadedDrivers.getDriver(name2) response.body.add({'content': driver.getDriverScript(name)}) return Response(status=200, body=response.getResponseBody())
def get_driver_status(name): # noqa: E501 """Retrieve the status of a loaded driver Retrieve the status of a loaded driver # noqa: E501 :param name: Get status of a driver with this name :type name: str :rtype: Response """ response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) response.body.add({'name': driver.getDriverName()}) response.body.add({'description': driver.getDriverDescription()}) response.body.add({'tips': driver.getDriverTips()}) response.body.add({'help': driver.getDriverHelpEndpoint()}) response.body.add({'minimum-role': driver.getDriverMinimumRole()}) options = {} options['configurable'] = driver.isDriverConfigurable() options['authenticatable'] = driver.isDriverAuthenticatable() options['role-restricted'] = driver.isDriverRoleRestricted() options['whitelisted'] = driver.isDriverWhitelisted() options['blacklisted'] = driver.isDriverBlacklisted() response.body.add({'options': options}) return Response(status=200, body=response.getResponseBody())
def rename_driver_script(name, rename=None): # noqa: E501 """Rename a script Rename a script # noqa: E501 :param name: Get status of a driver with this name :type name: str :param rename: The data needed to save this script :type rename: dict | bytes :rtype: Response """ if connexion.request.is_json: rename = Rename.from_dict(connexion.request.get_json()) # noqa: E501 response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) if not driver.renameDriverScript(rename.original.name, rename.new.name): return ErrorResponse(status=500, message='Cannot rename to an existing file.') return Response(status=200, body=response.getResponseBody())
def delete_driver_script(name, delete=None): # noqa: E501 """Delete a script Delete a script # noqa: E501 :param name: Get status of a driver with this name :type name: str :param delete: The data needed to delete this script :type delete: dict | bytes :rtype: Response """ if connexion.request.is_json: delete = Delete1.from_dict(connexion.request.get_json()) # noqa: E501 response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) driver.deleteDriverScript(delete.script.name) return Response(status=200, body=response.getResponseBody())
def delete_user(user, driver, user_delete=None): # noqa: E501 """Delete a user Delete a user # noqa: E501 :param user: Delete user with this name :type user: str :param driver: The driver to use for the request. ie. github :type driver: str :param user_delete: The data needed to delete this user :type user_delete: dict | bytes :rtype: Response """ if connexion.request.is_json: user_delete = UserDelete.from_dict( connexion.request.get_json()) # noqa: E501 response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) if driver.deleteApitaxUser(User(username=user)): return Response(status=200, body=response.getResponseBody()) return ErrorResponse(status=500, message='Failed to create user')
def create_user(user, name, create=None): # noqa: E501 """Create a new script Create a new script # noqa: E501 :param user: Get user with this name :type user: str :param name: Get status of a driver with this name :type name: str :param create: The data needed to create this user :type create: dict | bytes :rtype: Response """ if connexion.request.is_json: create = Create.from_dict(connexion.request.get_json()) # noqa: E501 response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) user: User = mapUserToUser(create.script) if driver.createApitaxUser(user): return Response(status=200, body=response.getResponseBody()) return ErrorResponse(status=500, message='Failed to create user')
def get_driver_list(): # noqa: E501 """Retrieve the catalog of drivers Retrieve the catalog of drivers # noqa: E501 :rtype: Response """ response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() response.body.add({'drivers': LoadedDrivers.drivers}) return Response(status=200, body=response.getResponseBody())
def get_driver_config(name): # noqa: E501 """Retrieve the config of a loaded driver Retrieve the config of a loaded driver # noqa: E501 :param name: Get status of a driver with this name :type name: str :rtype: Response """ response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() # TODO: This needs an implementation, but likely requires a change to configs in apitaxcore return Response(status=200, body=response.getResponseBody())
def get_user(user, name): # noqa: E501 """Retrieve a user Retrieve a user # noqa: E501 :param user: Get user with this name :type user: str :param name: Get status of a driver with this name :type name: str :rtype: Response """ response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) user: User = driver.getApitaxUser(User(username=user)) response.body.add({'user': {'username': user.username, 'role': user.role}}) return Response(status=200, body=response.getResponseBody())
def get_user(user, driver): # noqa: E501 """Retrieve a user Retrieve a user # noqa: E501 :param user: Get user with this name :type user: str :param driver: The driver to use for the request. ie. github :type driver: str :rtype: Response """ response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) user: User = driver.getApitaxUser(User(username=user)) response.body.add({'user': {'username': user.username, 'role': user.role}}) return Response(status=200, body=response.getResponseBody())
def get_driver_api_catalog(name): # noqa: E501 """Retrieve the api catalog Retrieve the api catalog # noqa: E501 :param name: Get status of a driver with this name :type name: str :rtype: Response """ response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) response.body.add(driver.getApiEndpointCatalog()) return Response(status=200, body=response.getResponseBody())
def get_driver_api_catalog(driver): # noqa: E501 """Retrieve the api catalog Retrieve the api catalog # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :rtype: Response """ response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) response.body.add(driver.getApiEndpointCatalog()) return Response(status=200, body=response.getResponseBody())
def get_driver_config(driver): # noqa: E501 """Retrieve the config of a loaded driver Retrieve the config of a loaded driver # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :rtype: Response """ response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() # TODO: This needs an implementation, but likely requires a change to configs in apitaxcore return Response(status=200, body=response.getResponseBody())
def get_driver_blacklist(name): # noqa: E501 """Retrieve the blacklist in the driver Retrieve the blacklist in the driver # noqa: E501 :param name: Get status of a driver with this name :type name: str :rtype: Response """ response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) response.body.add({'blacklist': driver.getDriverBlacklist()}) return Response(status=200, body=response.getResponseBody())
def get_driver_blacklist(driver): # noqa: E501 """Retrieve the blacklist in the driver Retrieve the blacklist in the driver # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :rtype: Response """ response = errorIfUnauthorized(role='admin') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) response.body.add({'blacklist': driver.getDriverBlacklist()}) return Response(status=200, body=response.getResponseBody())
def get_driver_api_status(name): # noqa: E501 """Retrieve the status of an api Retrieve the status of an api # noqa: E501 :param name: Get status of a driver with this name :type name: str :rtype: Response """ response = errorIfUnauthorized(role='developer') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(name) response.body.add({"format": driver.getApiFormat()}) response.body.add({"description": driver.getApiDescription()}) response.body.add({"status": driver.getApiStatus()}) response.body.add({"auth-type": driver.getApiAuthType()}) endpoints = {} endpoints['base'] = driver.getApiBaseEndpoint() endpoints['catalog'] = driver.getApiCatalogEndpoint() endpoints['auth'] = driver.getApiAuthEndpoint() response.body.add({'endpoints': endpoints}) options = {} options['authenticatable'] = driver.isApiAuthenticated() options[ 'authentication-separate'] = driver.isApiAuthenticationSeparateRequest( ) options['cataloggable'] = driver.isApiCataloggable() options['tokenable'] = driver.isApiTokenable() response.body.add({'options': options}) return Response(status=200, body=response.getResponseBody())
def get_driver_script(driver, script=None): # noqa: E501 """Retrieve the contents of a script Retrieve the contents of a script # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :param script: The script name. :type script: str :rtype: Response """ response = errorIfUnauthorized(role='user') if response: return response else: response = ApitaxResponse() driver: Driver = LoadedDrivers.getDriver(driver) response.body.add({'content': driver.getDriverScript(script)}) return Response(status=200, body=response.getResponseBody())
def command(driver, execute=None): # noqa: E501 """Execute a Command Execute a command # noqa: E501 :param driver: The driver to use for the request. ie. github :type driver: str :param execute: The data needed to execute this command :type execute: dict | bytes :rtype: Response """ if connexion.request.is_json: execute = Execute.from_dict(connexion.request.get_json()) # noqa: E501 # TODO: Utilize the driver passed rather than the first string component response = errorIfUnauthorized(role='user') if response: return response try: parameters = {} if execute.command.parameters: parameters = execute.command.parameters credentials = Credentials() options = Options() if execute.command.options: if 'debug' in execute.command.options: options.debug = execute.command.options['debug'] if 'sensitive' in execute.command.options: options.sensitive = execute.command.options['sensitive'] if execute.auth: credentials = mapUserAuthToCredentials(execute.auth, credentials) if not execute.auth.api_token: options.sensitive = True connector = Connector(options=options, credentials=credentials, command=driver + " " + execute.command.command, parameters=parameters) response: ApitaxResponse = connector.execute() response = Response(status=response.getResponseStatusCode(), body=response.getResponseBody()) if options.debug: response.log = connector.logBuffer return response except: State.log.error(traceback.format_exc()) State.log.getLoggerDriver().outputLog() if 'debug' in execute.command.options and execute.command.options['debug']: return ErrorResponse(status=500, message="Uncaught exception occured during processing. To get a larger stack trace, visit the logs.", state=traceback.format_exc()) else: return ErrorResponse(status=500, message="")