def delete(self, agent_id): username = self.get_current_user() customer_name = ( get_user_property(username, UserKeys.CurrentCustomer) ) uri = self.request.uri method = self.request.method try: agent = AgentManager(agent_id, customer_name=customer_name) delete_oper = StorePatchingOperation(username, customer_name, uri, method) delete_oper.uninstall_agent(agent_id) results = agent.delete_agent(uri, method) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4)) except Exception as e: results = ( GenericResults( username, uri, method ).something_broke(agent_id, 'delete agent', e) ) logger.exception(e) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4))
def put(self, app_id): username = self.get_current_user().encode('utf-8') customer_name = (get_user_property(username, UserKeys.CurrentCustomer)) uri = self.request.uri method = self.request.method try: agent_ids = self.arguments.get('agent_ids') epoch_time = self.arguments.get('time', None) label = self.arguments.get('label', None) restart = self.arguments.get('restart', 'none') cpu_throttle = self.arguments.get('cpu_throttle', 'normal') net_throttle = self.arguments.get('net_throttle', 0) if not epoch_time and not label and app_id: operation = (StorePatchingOperation(username, customer_name, uri, method)) results = (operation.install_supported_apps( [app_id], cpu_throttle, net_throttle, restart, agentids=agent_ids)) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4)) elif epoch_time and label and agent_ids: date_time = datetime.fromtimestamp(int(epoch_time)) sched = self.application.scheduler job = ({ 'operation': 'install', 'cpu_throttle': cpu_throttle, 'net_throttle': net_throttle, 'restart': restart, 'pkg_type': 'supported_apps', 'app_ids': [app_id] }) add_install_job = (schedule_once(sched, customer_name, username, agent_ids=[agent_ids], operation='install', name=label, date=date_time, uri=uri, method=method, job_extra=job)) result = add_install_job self.set_header('Content-Type', 'application/json') self.write(json.dumps(result)) except Exception as e: results = (GenericResults(username, uri, method).something_broke( app_id, 'install_supported_apps', e)) logger.exception(e) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4))
def post(self, agent_id): username = self.get_current_user() customer_name = (get_user_property(username, UserKeys.CurrentCustomer)) uri = self.request.uri method = self.request.method try: reboot = self.arguments.get('reboot', None) shutdown = self.arguments.get('shutdown', None) apps_refresh = self.arguments.get('apps_refresh', None) operation = (StoreAgentOperations(username, customer_name, uri, method)) if reboot: granted, status_code = (verify_permission_for_user( username, Permissions.REBOOT)) if granted: results = (operation.reboot([agent_id])) else: results = (return_results_for_permissions( username, granted, status_code, Permissions.REBOOT, uri, method)) elif shutdown: granted, status_code = (verify_permission_for_user( username, Permissions.SHUTDOWN)) if granted: results = (operation.shutdown([agent_id])) else: results = (return_results_for_permissions( username, granted, status_code, Permissions.SHUTDOWN, uri, method)) elif apps_refresh: operation = (StorePatchingOperation(username, customer_name, uri, method)) results = (operation.apps_refresh([agent_id])) else: results = (GenericResults(username, uri, method).incorrect_arguments()) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4)) except Exception as e: results = (GenericResults(username, uri, method).something_broke(agent_id, '', e)) logger.exception(e) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4))
def delete(self, agent_id): username = self.get_current_user() customer_name = (get_user_property(username, UserKeys.CurrentCustomer)) uri = self.request.uri method = self.request.method try: agent = AgentManager(agent_id, customer_name=customer_name) delete_oper = StorePatchingOperation(username, customer_name, uri, method) delete_oper.uninstall_agent(agent_id) results = agent.delete_agent(uri, method) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4)) except Exception as e: results = (GenericResults(username, uri, method).something_broke( agent_id, 'delete agent', e)) logger.exception(e) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4))
def delete(self): username = self.get_current_user() customer_name = (get_user_property(username, UserKeys.CurrentCustomer)) uri = self.request.uri method = self.request.method try: agent_ids = self.arguments.get('agent_ids') if not isinstance(agent_ids, list): agent_ids = agent_ids.split() agentids_deleted = [] agentids_not_deleted = [] for agent_id in agent_ids: agent = AgentManager(agent_id, customer_name=customer_name) results = agent.delete_agent(uri, method) if results['http_status'] == 200: delete_oper = (StorePatchingOperation( username, customer_name, uri, method)) delete_oper.uninstall_agent(agent_id) agentids_deleted.append(agent_id) else: agentids_not_deleted.append(agent_id) results['data'] = { 'agentids_deleted': agentids_deleted, 'agentids_not_deleted': agentids_not_deleted } self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4)) except Exception as e: results = (GenericResults(username, uri, method).something_broke( 'agent_ids', 'delete agentids', e)) logger.exception(e) self.set_status(results['http_status']) self.set_header('Content-Type', 'application/json') self.write(json.dumps(results, indent=4))