Example #1
0
    def generate_fee_data(cls, item_search_result, awsname):

        result = {}
        # table_head = AWS_FEE_TABEL_HEAD

        row_content_generator = RowContentGeneratorFactory()\
         .produce_generator(awsname)

        assert row_content_generator != None, 'Row type do not exists'

        table_head = row_content_generator.get_head()

        metric_count = 0
        metric_result = []

        for s in item_search_result:
            if s.itemtype.aws != None and s.itemtype.aws.awsname == awsname:

                try:
                    row = row_content_generator.id_2_content(s)
                except Exception, e:
                    continue

                metric_result.append(row)
                metric_count += 1
Example #2
0
    def generate_by_group_result_no_fee(cls,
                                        item_search_result,
                                        asg_name=None):
        result = {}

        row_content_generator = RowContentGeneratorFactory()\
         .produce_generator(BY_GROUP_RESULT)

        assert row_content_generator != None, 'Row type do not exists'

        table_head = row_content_generator.get_head()
        metric_count = 0
        metric_result = []
        for s in item_search_result:
            if s.itemtype.aws != None or s.itemtype.itemunit == None:
                continue

            if s.itemtype.zabbixvaluetype is not None and int(
                    s.itemtype.zabbixvaluetype) not in [0, 3, 15]:
                continue

            if asg_name != None and s.host.service.servicename != asg_name:
                continue

            if s.host.service is None:
                continue

            try:
                tmp_row = row_content_generator.id_2_content(s)
            except Exception, e:
                continue

            if tmp_row not in metric_result:
                metric_result.append(tmp_row)
                metric_count += 1
Example #3
0
    def generate_per_instance_result_no_fee(cls,
                                            item_search_result,
                                            asg_name=None):
        result = {}

        row_content_generator = RowContentGeneratorFactory()\
         .produce_generator(PER_INSTANCE_RESULT)

        assert row_content_generator != None, 'Row type do not exists'

        metric_count = 0
        metric_result = []
        table_head = row_content_generator.get_head()

        for s in item_search_result:
            if s.itemtype.aws != None or s.itemtype.itemunit == None:
                continue

            if s.itemtype.zabbixvaluetype is not None and int(
                    s.itemtype.zabbixvaluetype) not in [0, 3, 15]:
                continue

            if asg_name != None and s.host.service.servicename != asg_name:
                continue

            try:
                row = row_content_generator.id_2_content(s)
            except Exception, e:
                continue

            metric_result.append(row)

            metric_count += 1
Example #4
0
	def save_chart(cls,selected_metrics,chart_config,windowname,user,index,window_type,page):

		if window_type == WINDOW_CHART:
			tmp_window = user.windows.filter_by(windowname=windowname).filter_by(type=window_type).first()
			if tmp_window != None:
				raise Exception('same name for saving is already exists')

		

		window = Window(windowname,window_type,index,user,page)

		db.session.add(window)

		sm = Selectedmetrics(window)

		db.session.add(sm)

		for option_iter in selected_metrics:

			option = Option(option_iter,sm)
			db.session.add(option)

			for table_title_iter in selected_metrics[option_iter]:

				dt = Displaytable(table_title_iter,option)
				db.session.add(dt)

				row_content_generator = RowContentGeneratorFactory().\
					produce_generator(table_title_iter)

				assert row_content_generator != None, 'undefined' + \
					' row_content_generator'
				table_head = row_content_generator.get_head()

				for td_content in selected_metrics[option_iter][table_title_iter]['metric_result']:

					dtr = Displaytablerow(dt)
					db.session.add(dtr)

					assert len(table_head) == len(td_content)

					for i in range(len(td_content)):
						attr = Attr(table_head[i],td_content[i],dtr,None)
						db.session.add(attr)

		cc = Chartconfig(window)
		db.session.add(cc)

		for key in chart_config:
			tmp_attr = Attr(key,chart_config[key],None,cc)
			db.session.add(tmp_attr)

		return window
Example #5
0
	def load_window_chart(cls,windowid):


		result = {}

		window = Window.query.get(windowid)
		if window == None:
			raise Exception('window do not exist')

		selected_metrics = {}
		selectedmetrics = window.selectedmetrics.first()
		chartconfig = window.chartconfig.first()
		chart_config = {}

		if selectedmetrics != None:
			for option in selectedmetrics.options.all():
				selected_metrics[option.optionname] = {}

				for dt in option.displaytables.all():
					selected_metrics[option.optionname][dt.displaytablename] = {}


					row_content_generator = RowContentGeneratorFactory()\
						.produce_generator(dt.displaytablename)

					assert row_content_generator != None, 'not defined ' + \
						'row_content_generator'

					table_head = row_content_generator.get_head()

					if table_head == None:
						raise Exception('unknown table head')

					selected_metrics[option.optionname][dt.displaytablename]['metric_count'] = 0
					selected_metrics[option.optionname][dt.displaytablename]['metric_result'] = []
					selected_metrics[option.optionname][dt.displaytablename]['table_head'] = table_head

					for dtr in dt.rows.all():
						selected_metrics[option.optionname][dt.displaytablename]['metric_count'] += 1
						tmp_arr = list(table_head)
						for attr in dtr.attrs.all():
							tmp_arr[table_head.index(attr.attrname)] = attr.attrvalue

						item_list = row_content_generator.content_2_id(tmp_arr)
						if len(item_list) > 0:
							item = Item.query.get(item_list[0])
							tmp_arr = row_content_generator.id_2_content(item)

						selected_metrics[option.optionname][dt.displaytablename]['metric_result'].append(tmp_arr)

		if chartconfig != None:
			for attr in chartconfig.attrs.all():
				chart_config[attr.attrname] = attr.attrvalue

		if chart_config['use_utc'] == '0':
			chart_config['use_utc'] = False
		elif chart_config['use_utc'] == '1':
			chart_config['use_utc'] = True

		result['selected_metrics'] = selected_metrics
		result['chart_config'] = chart_config
		result['chart_name'] = window.windowname

		return result