コード例 #1
0
    def process_task(self, task):

        ##
        scope = Scope().get_instance()
        self.messenger = scope.get_messenger()
        ##

        try:
            plugin_name = task.get_plugin().get_name().lower()
            plugin_ver = task.get_plugin().get_version()

            if self.does_plugin_exist(
                    plugin_name,
                    plugin_ver) and plugin_name in self.plugin_queue_dict:
                self.plugin_queue_dict[plugin_name].put(task, 1)
            else:
                self.logger.warning(
                    '{0} plugin not found. Task was delayed. Ahenk will request plugin from Lider if distribution available'
                    .format(plugin_name, plugin_ver))
                self.delayed_tasks[plugin_name] = task
                msg = self.message_manager.missing_plugin_message(
                    PluginBean(name=plugin_name, version=plugin_ver))
                self.messenger.send_direct_message(msg)
        except Exception as e:
            self.logger.error(
                'Exception occurred while processing task. Error Message: {0}'.
                format(str(e)))
コード例 #2
0
 def get_plugin_by_id(self, plugin_id):
     self.logger.debug('Getting plugin from db.')
     db_plugin = self.db_service.select(
         'plugin', criteria='id={0}'.format(plugin_id))[0]
     return PluginBean(db_plugin[0], db_plugin[1], db_plugin[2],
                       db_plugin[3], db_plugin[4], db_plugin[5],
                       db_plugin[6], db_plugin[7], db_plugin[8],
                       db_plugin[11], db_plugin[9], db_plugin[10],
                       db_plugin[12])
コード例 #3
0
ファイル: execution_manager.py プロジェクト: yunusem/ahenk
 def get_plugin_bean_by_id(self, plugin_id):
     plugin_row = self.db_service.select('plugin',
                                         self.db_service.get_cols('plugin'),
                                         'id={0}'.format(plugin_id))[0]
     plugin = PluginBean(plugin_row[0], plugin_row[1], plugin_row[2],
                         plugin_row[3], plugin_row[4], plugin_row[5],
                         plugin_row[6], plugin_row[7], plugin_row[8],
                         plugin_row[11], plugin_row[9], plugin_row[10],
                         plugin_row[12])
     return plugin
コード例 #4
0
    def json_to_PolicyBean(self, json_data):

        username = json_data['username']
        ahenk_prof_json_arr = json_data['agentPolicyProfiles']
        user_prof_json_arr = json_data['userPolicyProfiles']

        ahenk_prof_arr = []
        user_prof_arr = []
        if ahenk_prof_json_arr is not None:
            for prof in ahenk_prof_json_arr:
                plu = json.loads(json.dumps(prof['plugin']))
                plugin = PluginBean(p_id=plu['id'], active=plu['active'], create_date=plu['createDate'],
                                    deleted=plu['deleted'], description=plu['description'],
                                    machine_oriented=plu['machineOriented'], modify_date=plu['modifyDate'],
                                    name=plu['name'], policy_plugin=plu['policyPlugin'],
                                    user_oriented=plu['userOriented'], version=plu['version'],
                                    task_plugin=plu['taskPlugin'], x_based=plu['xBased'])
                ahenk_prof_arr.append(
                    ProfileBean(prof['id'], prof['createDate'], prof['label'], prof['description'], prof['overridable'],
                                prof['active'], prof['deleted'], json.dumps(prof['profileData']), prof['modifyDate'],
                                plugin, username))

        if user_prof_json_arr is not None:
            for prof in user_prof_json_arr:
                plu = json.loads(json.dumps(prof['plugin']))
                plugin = PluginBean(p_id=plu['id'], active=plu['active'], create_date=plu['createDate'],
                                    deleted=plu['deleted'], description=plu['description'],
                                    machine_oriented=plu['machineOriented'], modify_date=plu['modifyDate'],
                                    name=plu['name'], policy_plugin=plu['policyPlugin'],
                                    user_oriented=plu['userOriented'], version=plu['version'],
                                    task_plugin=plu['taskPlugin'], x_based=plu['xBased'])
                user_prof_arr.append(
                    ProfileBean(prof['id'], prof['createDate'], prof['label'], prof['description'], prof['overridable'],
                                prof['active'], prof['deleted'], json.dumps(prof['profileData']), prof['modifyDate'],
                                plugin, username))

        return PolicyBean(ahenk_policy_version=json_data['agentPolicyVersion'],
                          user_policy_version=json_data['userPolicyVersion'], ahenk_profiles=ahenk_prof_arr,
                          user_profiles=user_prof_arr, timestamp=json_data['timestamp'], username=json_data['username'],
                          agent_execution_id=json_data['agentCommandExecutionId'],
                          user_execution_id=json_data['userCommandExecutionId'],
                          agent_expiration_date=json_data['agentPolicyExpirationDate'],
                          user_expiration_date=json_data['userPolicyExpirationDate'])
コード例 #5
0
 def json_to_task_bean(self, json_data, file_server_conf=None):
     plu = json_data['plugin']
     plugin = PluginBean(p_id=plu['id'], active=plu['active'], create_date=plu['createDate'], deleted=plu['deleted'],
                         description=plu['description'], machine_oriented=plu['machineOriented'],
                         modify_date=plu['modifyDate'], name=plu['name'], policy_plugin=plu['policyPlugin'],
                         user_oriented=plu['userOriented'], version=plu['version'], task_plugin=plu['taskPlugin'],
                         x_based=plu['xBased'])
     return TaskBean(_id=json_data['id'], create_date=json_data['createDate'], modify_date=json_data['modifyDate'],
                     command_cls_id=json_data['commandClsId'], parameter_map=json_data['parameterMap'],
                     deleted=json_data['deleted'], plugin=plugin, cron_str=json_data['cronExpression'],
                     file_server=str(file_server_conf))
コード例 #6
0
    def process_profile(self, profile):

        try:
            plugin = profile.get_plugin()
            plugin_name = plugin.get_name()
            plugin_ver = plugin.get_version()
            if self.does_plugin_exist(
                    plugin_name,
                    plugin_ver) and plugin_name in self.plugin_queue_dict:
                self.plugin_queue_dict[plugin_name].put(profile, 1)
            else:
                self.logger.warning(
                    '{0} plugin  {1} version not found. Profile was delayed. Ahenk will request plugin from Lider if distribution available'
                    .format(plugin_name, plugin_ver))
                self.delayed_profiles[plugin_name] = profile
                msg = self.message_manager.missing_plugin_message(
                    PluginBean(name=plugin_name, version=plugin_ver))
                self.scope.get_messenger().send_direct_message(msg)
        except Exception as e:
            self.logger.error(
                'Exception occurred while processing profile. Error Message: {0}'
                .format(str(e)))
コード例 #7
0
ファイル: execution_manager.py プロジェクト: yunusem/ahenk
    def get_active_policies(self, username):

        try:
            # TODO vt den gecerli son tarihi olani cek
            user_policy = self.db_service.select(
                'policy', ['id', 'version', 'name', 'expiration_date'],
                ' type=\'U\' and name=\'' + username + '\'')
            ahenk_policy = self.db_service.select(
                'policy', ['id', 'version', 'expiration_date'], ' type=\'A\' ')

            plugin_columns = [
                'id', 'active', 'create_date', 'deleted', 'description',
                'machine_oriented', 'modify_date', 'name', 'policy_plugin',
                'user_oriented', 'version', 'task_plugin', 'x_based'
            ]
            profile_columns = [
                'id', 'create_date', 'label', 'description', 'overridable',
                'active', 'deleted', 'profile_data', 'modify_date', 'plugin'
            ]

            policy = PolicyBean(username=username)

            if len(user_policy) > 0 and self.check_expiration(
                    user_policy[0][3]):
                user_policy_version = user_policy[0][0]
                policy.set_user_policy_version(user_policy_version)

                user_profiles = self.db_service.select(
                    'profile', profile_columns,
                    ' id=' + str(user_policy_version) + ' ')
                arr_profiles = []
                if len(user_profiles) > 0:
                    for profile in user_profiles:
                        plu = self.db_service.select(
                            'plugin', plugin_columns,
                            ' id=\'' + profile[9] + '\'')[0]
                        plugin = PluginBean(p_id=plu[0],
                                            active=plu[1],
                                            create_date=plu[2],
                                            deleted=plu[3],
                                            description=plu[4],
                                            machine_oriented=plu[5],
                                            modify_date=plu[6],
                                            name=plu[7],
                                            policy_plugin=plu[8],
                                            user_oriented=plu[9],
                                            version=plu[10],
                                            task_plugin=plu[11],
                                            x_based=plu[12])

                        arr_profiles.append(
                            ProfileBean(profile[0], profile[1], profile[2],
                                        profile[3], profile[4], profile[5],
                                        profile[6], profile[7], profile[8],
                                        plugin, policy.get_username()))
                    policy.set_user_profiles(arr_profiles)

            if len(ahenk_policy) > 0 and self.check_expiration(
                    ahenk_policy[0][2]):
                ahenk_policy_version = ahenk_policy[0][0]
                policy.set_ahenk_policy_version(ahenk_policy_version)
                ahenk_profiles = self.db_service.select(
                    'profile', profile_columns,
                    ' id=' + str(ahenk_policy_version) + ' ')
                arr_profiles = []
                if len(ahenk_profiles) > 0:
                    for profile in ahenk_profiles:
                        plu = self.db_service.select(
                            'plugin', plugin_columns,
                            ' id=\'' + profile[9] + '\'')[0]
                        plugin = PluginBean(p_id=plu[0],
                                            active=plu[1],
                                            create_date=plu[2],
                                            deleted=plu[3],
                                            description=plu[4],
                                            machine_oriented=plu[5],
                                            modify_date=plu[6],
                                            name=plu[7],
                                            policy_plugin=plu[8],
                                            user_oriented=plu[9],
                                            version=plu[10],
                                            task_plugin=plu[11],
                                            x_based=plu[12])

                        arr_profiles.append(
                            ProfileBean(profile[0], profile[1], profile[2],
                                        profile[3], profile[4], profile[5],
                                        profile[6], profile[7], profile[8],
                                        plugin, policy.get_username()))
                    policy.set_ahenk_profiles(arr_profiles)

            return policy
        except Exception as e:
            self.logger.error(
                'A problem occurred while getting active policies. Error Message : {0}'
                .format(str(e)))
コード例 #8
0
    def get_active_policies(self, username):

        user_policy = self.db_service.select(
            'policy', ['id', 'version', 'name'],
            ' type=\'U\' and name=\'' + username + '\'')
        ahenk_policy = self.db_service.select('policy', ['id', 'version'],
                                              ' type=\'A\' ')

        plugin_columns = [
            'id', 'active', 'create_date', 'deleted', 'description',
            'machine_oriented', 'modify_date', 'name', 'policy_plugin',
            'user_oriented', 'version', 'task_plugin', 'x_based'
        ]
        profile_columns = [
            'id', 'create_date', 'label', 'description', 'overridable',
            'active', 'deleted', 'profile_data', 'modify_date', 'plugin'
        ]

        policy = PolicyBean(username=username)

        if len(user_policy) > 0:
            user_policy_version = user_policy[0][0]
            policy.set_user_policy_version(user_policy_version)
            user_profiles = self.db_service.select(
                'profile', profile_columns,
                ' id=' + str(user_policy_version) + ' ')
            arr_profiles = []
            if len(user_profiles) > 0:
                for profile in user_profiles:
                    plu = self.db_service.select('plugin', plugin_columns,
                                                 ' id=\'' + profile[9] +
                                                 '\'')[0]
                    plugin = PluginBean(p_id=plu[0],
                                        active=plu[1],
                                        create_date=plu[2],
                                        deleted=plu[3],
                                        description=plu[4],
                                        machine_oriented=plu[5],
                                        modify_date=plu[6],
                                        name=plu[7],
                                        policy_plugin=plu[8],
                                        user_oriented=plu[9],
                                        version=plu[10],
                                        task_plugin=plu[11],
                                        x_based=plu[12])

                    arr_profiles.append(
                        ProfileBean(profile[0], profile[1], profile[2],
                                    profile[3], profile[4], profile[5],
                                    profile[6], profile[7], profile[8], plugin,
                                    policy.get_username()))
                policy.set_user_profiles(arr_profiles)

        if len(ahenk_policy) > 0:
            ahenk_policy_version = ahenk_policy[0][0]
            policy.set_ahenk_policy_version(ahenk_policy_version)
            ahenk_profiles = self.db_service.select(
                'profile', profile_columns,
                ' id=' + str(ahenk_policy_version) + ' ')
            arr_profiles = []
            if len(ahenk_profiles) > 0:
                for profile in ahenk_profiles:
                    plu = self.db_service.select('plugin', plugin_columns,
                                                 ' id=\'' + profile[9] +
                                                 '\'')[0]
                    plugin = PluginBean(p_id=plu[0],
                                        active=plu[1],
                                        create_date=plu[2],
                                        deleted=plu[3],
                                        description=plu[4],
                                        machine_oriented=plu[5],
                                        modify_date=plu[6],
                                        name=plu[7],
                                        policy_plugin=plu[8],
                                        user_oriented=plu[9],
                                        version=plu[10],
                                        task_plugin=plu[11],
                                        x_based=plu[12])

                    arr_profiles.append(
                        ProfileBean(profile[0], profile[1], profile[2],
                                    profile[3], profile[4], profile[5],
                                    profile[6], profile[7], profile[8], plugin,
                                    policy.get_username()))
                policy.set_ahenk_profiles(arr_profiles)

        return policy