def test_correlate_management_grp_data(self):

        parquet_file = "TestingCorrelation.parquet"
        xlsx_file = "TestingCorrelation.xlsx"
        with change_dir(OPERATIONSPATH):
            if os.path.isfile(parquet_file):
                os.remove(parquet_file)

        subscription = os.environ["SUB"]
        management_grp = os.environ["MANGRP"]

        credentials = AzureConnections().get_authenticated_client()
        df = EvaluatePolicies(credentials).correlate_management_grp_data(
            management_grp=management_grp, subscription=subscription)

        df = df.drop(columns=['serialize', 'timestamp'])
        df.to_excel(xlsx_file)

        pm = pluggy.PluginManager("Analysis")
        pm.add_hookspecs(DatbasePlugins)
        pm.register(SQLServerDatabase())
        engine_list = pm.hook.get_db_engine(
            driver=self.driver,
            server=self.server,
            database=self.database,
            user=self.user,
            password=self.password,
        )
        engine = engine_list[0]

        df.to_sql('test_noncompliant_002',
                  con=engine,
                  if_exists='append',
                  chunksize=1000)
Пример #2
0
    def __init__(self, credentials=None):
        load_dotenv()
        with change_dir(OPERATIONSPATH):
            self.config = ConfigParser()
            self.config.read(CONFVARIABLES)

        self.credentials = AzureConnections().get_authenticated_client()
    def test_aggregation(self):

        subscription = os.environ["SUB"]
        management_grp = os.environ["MANGRP"]

        credentials = AzureConnections().get_authenticated_client()
        eval_policies = EvaluatePolicies(credentials)
        df = eval_policies.process_management_grp_subscriptions(management_grp)
Пример #4
0
    def __init__(self):
        load_dotenv()
        self.credentials = AzureConnections().get_authenticated_client()
        with change_dir(OPERATIONSPATH):
            self.config = ConfigParser()
            self.config.read(CONFVARIABLES)

        self.subscriptions = Subscriptions().list_displayname_and_id()
        self.resource_cls = Resource()
Пример #5
0
    def __init__(self):
        load_dotenv()
        self.credentials = AzureConnections().get_authenticated_client()
        self.subscription_client = SubscriptionClient(self.credentials, base_url=None)

        with change_dir(OPERATIONSPATH):
            self.config = ConfigParser()
            self.config.read(CONFVARIABLES)

        logging_level = int(self.config['LOGGING']['level'])
        logging.basicConfig(level=logging_level)
Пример #6
0
    def test_subscription_list_displayname_id(self):
        """

        :return:
        """
        credentials = AzureConnections().get_authenticated_client()
        results = Subscriptions().list_displayname_and_id()
        self.assertGreater(len(results), 0)

        for i in results:
            logging.debug(i)
Пример #7
0
    def __init__(self, client_id, key, tenant_id, url, cosmos_key):
        load_dotenv()
        self.url = url
        self.__comos_key = cosmos_key
        self.cosmos_client = cosmos_client.CosmosClient(url, cosmos_key)

        self.credentials = AzureConnections().authenticate_device_code(
            CLIENT=client_id, KEY=key, TENANT_ID=tenant_id)

        with change_dir(OPERATIONSPATH):
            self.config = ConfigParser()
            self.config.read(CONFVARIABLES)
Пример #8
0
    def __init__(self):
        load_dotenv()
        self.credentials = AzureConnections().get_authenticated_client()

        # Not the default path is debug. This exists in order to fail safe.  Production must be explicit.
        if 'mop_debug' is os.environ and os.environ['mop_debug'].lower() in 'false':
            config_file = CONFVARIABLES
        else:
            config_file = TESTVARIABLES

        with change_dir(OPERATIONSPATH):
            self.config = ConfigParser()
            self.config.read(config_file)

        logging_level = int(self.config['LOGGING']['level'])
        logging.basicConfig(level=logging_level)