def _calculate_summary(self): summary = db.get_data("SELECT parameter, value FROM digin_usage_summary " "WHERE user_id = '{0}' AND tenant = '{1}'".format(self.user_id, self.tenant)) if summary['rows'] == (): db.insert_data(self.insert_obj,'digin_usage_summary') else: update_obj = [] residue_insert = [] for i in self.insert_obj: for j in summary['rows']: if i['parameter'] == j[0]: if self.is_increment: update_obj.append({i['parameter']:str(int(j[1])+int(i['value']))}) else: update_obj.append({i['parameter']: str(int(j[1])-int(i['value']))}) break else: residue_insert.append({'parameter':i['parameter'],'value':i['value'],'user_id':self.user_id,'tenant':self.tenant}) continue if update_obj: for record in update_obj: db.update_data('digin_usage_summary',"WHERE parameter = '{0}' AND user_id = '{1}' AND tenant = '{2}' " .format(list(record.keys())[0], self.user_id,self.tenant), value = record.itervalues().next(), modifieddatetime=datetime.datetime.now()) if residue_insert: db.insert_data(residue_insert,'digin_usage_summary')
def MEMcache_insert(result,query, id, expiry): logger.info("Cache insertion started...") class ExtendedJSONEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, decimal.Decimal): return str(obj) if isinstance(obj, datetime) or isinstance(obj, datetime.date): return obj.isoformat() return super(ExtendedJSONEncoder, self).default(obj) createddatetime = datetime.datetime.now() expirydatetime = createddatetime + datetime.timedelta(seconds=expiry) # to_cache_lst = [] # for k,v in result[0].iteritems(): to_cache = { 'id': id, # 'fieldname': k, # 'value': v, 'data' : json.dumps(result, cls=ExtendedJSONEncoder), 'query' : str(query), 'expirydatetime': expirydatetime, 'createddatetime': createddatetime} # to_cache_lst.append(to_cache) try: CC.insert_data([to_cache],'cache_aggregation') logger.info("Cache insertion successful!") except Exception, err: logger.error("Error inserting to cache!") logger.error(err)
def set_usage(self): for k,v in self.usages.items(): usage_rating = {'user_id':self.user_id, 'tenant':self.tenant, 'parameter':k, 'value':v, 'other_data':self.other_data} self.insert_obj.append(usage_rating) print self.insert_obj db.insert_data(self.insert_obj,'digin_usage_details') self._calculate_summary()
def MEM_insert(id, data, query, cache_timeout): logger.info("Cache insertion started...") createddatetime = datetime.datetime.now() expirydatetime = createddatetime + datetime.timedelta(seconds=cache_timeout) to_cache = [{'id': str(id), 'data': data, 'query': query, 'expirydatetime': expirydatetime, 'createddatetime': createddatetime}] try: CC.insert_data(to_cache,'cache_execute_query') except Exception, err: print err logger.error("Error inserting to cache!") logger.error(err)
def MEM_insert(data,cache_timeout): logger.info("Cache insertion started...") createddatetime = datetime.datetime.now() expirydatetime = createddatetime + datetime.timedelta(seconds=cache_timeout) to_cache_lst = [] for row in data: to_cache = {'id': str(row['ID']), 'level': row['level'], 'value': row['value'], 'expirydatetime': expirydatetime, 'createddatetime': createddatetime} to_cache_lst.append(to_cache) try: CC.insert_data(to_cache_lst,'cache_hierarchy_levels') except Exception, err: logger.error("Error inserting to cache!") logger.error(err) pass
def set_packages(self): time_now = datetime.datetime.now() _, num_days = calendar.monthrange(time_now.year, time_now.month) free_package = conf.get_conf('DefaultConfigurations.ini', 'Package Settings')['Free'] if self.package_id == int(free_package): last_day = time_now + datetime.timedelta(days=30) else: last_day = datetime.datetime(time_now.year, time_now.month, num_days, 23, 59, 59) tenant_package_mapping = [{'tenant_id': self.tenant, 'package_id': self.package_id, 'created_datetime': time_now, 'modified_datetime': time_now, 'expiry_datetime': last_day, 'package_status':'current_package'}] try: db.insert_data(tenant_package_mapping, 'digin_tenant_package_details') except Exception, err: print "Error inserting to cacheDB!" return cmg.format_response(False, err, "Error occurred while inserting.. \n" + str(err), exception=sys.exc_info())
cache_lifetime=int(params['cache_lifetime']), widget_limit=int(params['widget_limit']), query_limit=int(params['query_limit']), logo_path='/digin_user_data/'+user_id+'/'+domain+'/logos/'+params['logo_name'], dp_path='/digin_user_data/'+user_id+'/'+domain+'/DPs/'+params['dp_name'], theme_config=params['theme_config'], modified_date_time=datetime.datetime.now()) return cmg.format_response(True,1,"User settings updated successfully") except Exception, err: logger.error("Error updating user settings") logger.error(err) print "Error updating user settings" print err raise try: CC.insert_data(data_object,'digin_user_settings') except Exception, err: logger.error("Error saving user settings") logger.error(err) print "Error saving user settings" print err raise return cmg.format_response(True,1,"User settings saved successfully") def get_user_settings(user_id, domain): query = "SELECT components, user_role, cache_lifetime, widget_limit, " \ "query_limit, logo_path, dp_path, theme_config, modified_date_time, created_date_time, " \ "domain FROM digin_user_settings WHERE user_id = '{0}' AND domain = '{1}'".format(user_id, domain) logo_path = conf.get_conf('FilePathConfig.ini','User Files')['Path'] document_root = conf.get_conf('FilePathConfig.ini','Document Root')['Path']
def insert_data(dj): date = dt.datetime.now() cache.insert_data([{'d_name': "test1", 'DateTime': date, 'data' : dj}],'wordcloud') logger.info('Inserted results into wordcloud table')
try: db.insert_data(tenant_package_mapping, 'digin_tenant_package_details') except Exception, err: print "Error inserting to cacheDB!" return cmg.format_response(False, err, "Error occurred while inserting.. \n" + str(err), exception=sys.exc_info()) if not self.is_default: package_data = [{'package_id': self.package_id, 'package_name': self.package_name, 'package_attribute': self.package_attribute, 'package_value': self.package_value, 'package_price': self.package_price, 'is_default': False}] try: db.insert_data(package_data, 'digin_packagedetails') except Exception, err: print "Error inserting to DB!" result = cmg.format_response(False, err, "Error occurred while inserting additional_packages.. \n" + str(err), exception=sys.exc_info()) return result return cmg.format_response(True, 0, "Package updated successfully") def deactivate_packages(self): "" if self.is_default: try: db.update_data('digin_tenant_package_details'," WHERE tenant_id = '{0}' AND package_id IN ({1},{2},{3},{4})".format(self.tenant,int(free_package),int(default_1),int(default_2),int(default_3)), package_status = 'deactivated') except Exception, err:
def store_components(params, user_id, domain): data = json.loads(params) pprint.pprint(data) DiginCompDate = datetime.datetime.now() User_id = user_id Domain = domain DiginCompName = data["compName"] DiginCompClass = data["compClass"] DiginCompType = data["compType"] DiginCompCategory = data["compCategory"] RefreshInterval = data["refreshInterval"] pages = data["pages"] deletions = data["deletions"] epoch = datetime.datetime.utcfromtimestamp(0) def unix_time_millis(dt): return (dt - epoch).total_seconds() * 1000.0 if data["compID"] is None: DiginCompID = int(unix_time_millis(datetime.datetime.now())) print DiginCompID try: p1 = threading.Thread(target=CC.insert_data,args=([{ 'digin_comp_id':DiginCompID, 'digin_comp_name':DiginCompName, 'created_date_time':DiginCompDate, 'digin_comp_class':DiginCompClass, 'digin_comp_type':DiginCompType, 'digin_comp_category':DiginCompCategory, 'refresh_interval':RefreshInterval, 'modified_date_time':DiginCompDate, 'last_modified_user':User_id}], 'digin_component_header')) p2 = threading.Thread(target=CC.insert_data, args=([{ 'component_id':DiginCompID,'user_id':User_id, 'type':'dashboard','domain':Domain}], 'digin_component_access_details')) p1.start() p2.start() p1.join() p2.join() _rate_calculation_helper(True,DiginCompID,DiginCompType,User_id,Domain) logger.info("DigIn Component Successfully created") except Exception, err: logger.error("Error in updating cache. %s" % err) return cmg.format_response(False,None,'Error occurred while saving dashboard!',sys.exc_info()) for page in pages: page_id = int(unix_time_millis(datetime.datetime.now())) try: CC.insert_data([{'page_id':page_id, 'digin_comp_id':DiginCompID,'page_name':page["pageName"], 'page_data': json.dumps(page['pageData'])}], 'digin_component_page_detail') logger.info("Component page successfully saved!") except Exception, err: logger.error("Error in updating cache. %s" % err) return cmg.format_response(False,None,'Error occurred while saving dashboard!',sys.exc_info()) widgets = page["widgets"] for widget in widgets: widget_id = int(unix_time_millis(datetime.datetime.now())) widgetData = widget["widgetData"] print widgetData try: CC.insert_data([{ 'widget_id':widget_id, 'widget_name': widget['widgetName'], 'widget_data':json.dumps(widgetData), 'digin_comp_id':DiginCompID, 'version_id':1,'size_x':widget['sizeX'],'size_y':widget['sizeY'],'row':widget['row'],'col':widget['col'], 'comp_page_id': page_id}], 'digin_component_detail') logger.info("Digin Widget Successfully created") except Exception, err: logger.error("Error in updating cache. %s" % err) return cmg.format_response(False,None,'Error occurred while saving dashboard!',sys.exc_info())
logger.info("Digin component successfully updated") except Exception, err: logger.error("Error in updating component. %s" % err) pass for page in pages: try: if page['pageID'] is not None: CC.update_data('digin_component_page_detail','WHERE digin_comp_id ={0} AND page_id ={1}' .format(data["compID"],page['pageID']), page_name=page['pageName'], page_data=json.dumps(page['pageData'])) else: page_id = int(unix_time_millis(datetime.datetime.now())) CC.insert_data([{'page_id':page_id, 'digin_comp_id':data["compID"],'page_name':page["pageName"], 'page_data': json.dumps(page['pageData']) }], 'digin_component_page_detail') logger.info("Component page updated saved!") except Exception, err: logger.error("Error in updating cache. %s" % err) pass widgets = page["widgets"] for widget in widgets: widgetData = widget["widgetData"] print widgetData try: if widget['widgetID'] is not None: CC.update_data('digin_component_detail','WHERE digin_comp_id ={0} AND comp_page_id ={1} AND widget_id ={2}' .format(data["compID"],page['pageID'],widget['widgetID']), widget_name=widget['widgetName'],