Beispiel #1
0
def add_supported_app_to_agents(username,
                                customer_name,
                                uri,
                                method,
                                agent_id=None):

    if agent_id:
        agent_info = get_agent_info(agent_id)
        apps_info = (get_apps_data(customer_name,
                                   table=SupportedAppsCollection,
                                   os_code=agent_info[AgentKey.OsCode]))
        if len(apps_info) > 0:
            for app_info in apps_info:
                app_id = app_info.get(SupportedAppsKey.AppId)
                file_data = get_file_data(app_id)
                update_file_data(app_id, agent_id, file_data)
                agent_info_to_insert = ({
                    SupportedAppsPerAgentKey.AgentId:
                    agent_id,
                    SupportedAppsPerAgentKey.AppId:
                    app_id,
                    SupportedAppsPerAgentKey.Status:
                    AVAILABLE,
                    SupportedAppsPerAgentKey.CustomerName:
                    customer_name,
                    SupportedAppsPerAgentKey.InstallDate:
                    r.epoch_time(0.0)
                })
                apps_to_insert_per_agent(username,
                                         uri,
                                         method,
                                         agent_info_to_insert,
                                         table=SupportedAppsPerAgentCollection)
Beispiel #2
0
def add_supported_app_to_agents(username, customer_name, uri, method, agent_id=None):

    if agent_id:
        agent_info = get_agent_info(agent_id)
        apps_info = (
            get_apps_data(
                customer_name,
                table=SupportedAppsCollection,
                os_code=agent_info[AgentKey.OsCode]
            )
        )
        if len(apps_info) > 0:
            for app_info in apps_info:
                app_id = app_info.get(SupportedAppsKey.AppId)
                file_data = get_file_data(app_id)
                update_file_data(
                    app_id,
                    agent_id, file_data
                )
                agent_info_to_insert = (
                    {
                        SupportedAppsPerAgentKey.AgentId: agent_id,
                        SupportedAppsPerAgentKey.AppId: app_id,
                        SupportedAppsPerAgentKey.Status: AVAILABLE,
                        SupportedAppsPerAgentKey.CustomerName: customer_name,
                        SupportedAppsPerAgentKey.InstallDate: r.epoch_time(0.0)
                    }
                )
                apps_to_insert_per_agent(
                    username, uri, method, agent_info_to_insert,
                    table=SupportedAppsPerAgentCollection
                )
Beispiel #3
0
def add_custom_app_to_agents(username,
                             customer_name,
                             uri,
                             method,
                             file_data,
                             agent_id=None,
                             app_id=None):

    if app_id and not agent_id:
        app_info = (get_app_data(app_id, table=CustomAppsCollection))

        agent_ids = get_all_agent_ids(customer_name,
                                      agent_os=app_info[AgentKey.OsCode])
        if len(agent_ids) > 0:
            for agentid in agent_ids:
                update_file_data(app_id, agentid, file_data)
                agent_info_to_insert = ({
                    CustomAppsPerAgentKey.AgentId:
                    agentid,
                    CustomAppsPerAgentKey.AppId:
                    app_id,
                    CustomAppsPerAgentKey.Status:
                    AVAILABLE,
                    CustomAppsPerAgentKey.CustomerName:
                    customer_name,
                    CustomAppsPerAgentKey.InstallDate:
                    r.epoch_time(0.0)
                })
                apps_to_insert_per_agent(username, uri, method,
                                         agent_info_to_insert)

    if agent_id and not app_id:
        agent_info = get_agent_info(agent_id)
        apps_info = get_apps_data(customer_name,
                                  os_code=agent_info[AgentKey.OsCode])
        if len(apps_info) > 0:
            for app_info in apps_info:
                app_id = app_info.get(CustomAppsKey.AppId)
                file_data = get_file_data(app_id)
                update_file_data(app_id, agent_id, file_data)
                agent_info_to_insert = ({
                    CustomAppsPerAgentKey.AgentId:
                    agent_id,
                    CustomAppsPerAgentKey.AppId:
                    app_id,
                    CustomAppsPerAgentKey.Status:
                    AVAILABLE,
                    CustomAppsPerAgentKey.CustomerName:
                    customer_name,
                    CustomAppsPerAgentKey.InstallDate:
                    r.epoch_time(0.0)
                })
                apps_to_insert_per_agent(username, uri, method,
                                         agent_info_to_insert)
    def get_by_app_id(self, stats=False, conn=None):
        """
        """
        try:
            pkg = list(
                r
                .table(self.CurrentAppsCollection, use_outdated=True)
                .get_all(self.app_id, index=self.CurrentAppsIndexes.AppId)
                .map(self.map_hash)
                .run(conn)
            )
            if pkg:
                pkg[0][self.CurrentAppsKey.FileData] = get_file_data(self.app_id)

                if stats:
                    pkg[0]['agent_stats'] = (
                        get_all_stats_by_appid(
                            self.username, self.customer_name,
                            self.uri, self.method, self.app_id,
                            table=self.CurrentAppsPerAgentCollection
                        )['data']
                    )

                status = (
                    GenericResults(
                        self.username, self.uri, self.method
                    ).information_retrieved(pkg[0], 1)
                )

            else:
                status = (
                    GenericResults(
                        self.username, self.uri, self.method
                    ).invalid_id(self.app_id, 'package')
                )

        except Exception as e:
            status = (
                GenericResults(
                    self.username, self.uri, self.method
                ).something_broke(self.app_id, 'package', e)
            )
            logger.exception(e)

        return(status)