def __init__(self): self.Logs = Logs(self) self.Configs = Configs(self) self.DataUnits = DataUnits(self) self.HttpClient = HttpClient(self) self.HttpServer = HttpServer(self) self.Manipulator = Manipulator(self)
def default(): configs = Configs() channel = request.args.get('channel_id') print 'Channel: ' + str(channel) # if has slack channels on configs, validates slack channel id flag = True if len(configs.get_slack_channels()) > 0: flag = False for slack_channel in configs.get_slack_channels(): if slack_channel == channel: flag = True break if not flag: print 'Not a valid slack channel!' if configs.get_print_to_slack(): return jsonify(print_error_to_slack()) else: return jsonify(print_error()), 401 url = get_random_image(configs) if len(url) == 0: if configs.get_print_to_slack(): return jsonify(print_error_to_slack()) else: return jsonify(print_error()), 404 if configs.get_print_to_slack(): slack_resp = { 'response_type': 'in_channel', 'text': '<' + url + '>', 'unfurl_links': 'true', } return jsonify(slack_resp) else: return jsonify({'url': url})
def init_configs(self, args, logger, cat_patterns): # 以前の設定が保存されている場合はリストアする. # 存在しない場合は新規に作成する. Cfg = Configs(logger) Cfg.makeConfig(cat_patterns) # BAttM/UKF のパラメータを更新する. bam_cfg = BAttMConfigs() bam_cfg.r = args.bam_r bam_cfg.rambda = args.bam_rambda bam_cfg.q = args.bam_q ukf_cfg = UKFConfigs() ukf_cfg.alpha = args.ukf_alpha ukf_cfg.beta = args.ukf_beta ukf_cfg.kappa = args.ukf_kappa Cfg.updateParams(args.level, args.bam_s, bam_cfg, ukf_cfg) return Cfg
url = get_random_image(configs) if len(url) == 0: if configs.get_print_to_slack(): return jsonify(print_error_to_slack()) else: return jsonify(print_error()), 404 if configs.get_print_to_slack(): slack_resp = { 'response_type': 'in_channel', 'text': '<' + url + '>', 'unfurl_links': 'true', } return jsonify(slack_resp) else: return jsonify({'url': url}) @app.route('/status') def status(): return jsonify({'success': True}), 200, {'ContentType': 'application/json'} if __name__ == "__main__": CONFIGS = Configs() PORT = int(os.environ.get('PORT', CONFIGS.get_server_port())) app.run(host='0.0.0.0', port=PORT)
class Ticket(BaseClass): FIELDS_KEY = 'fields' PROJECT_KEY = 'project' SUMMARY_KEY = 'summary' DESCRIPTION_KEY = 'description' ISSUETYPE_KEY = 'issuetype' LABELS_KEY = 'labels' CONFIGS = Configs.get() def __init__(self, data, is_lambda): self.data = data if 'subject' in data: self.summary = self.get_summary(data) self.ticket_data = {self.FIELDS_KEY: {}} self.jira_auth = self.get_jira_auth() self.ticket_url = None super(Ticket, self).__init__(is_lambda) if 'key' in data: self._load_ticket_from_key(data['key']) else: self.set_ticket_data() def _load_ticket_from_key(self, key): try: find_ticket_url = '{0}/rest/api/2/issue/{1}'.format( self.CONFIGS['jira_url'], key) headers = {'Content-Type': 'application/json'} request = requests.get(find_ticket_url, headers=headers, auth=self.jira_auth) if request.status_code == 200: self.load_ticket(request.json()) except Exception as e: super(Ticket, self).print_error('Error occurred while creating ticket', e) def load_ticket(self, ticket_data): self.key = ticket_data['key'] self.ticket_type = ticket_data['fields']['issuetype'] self.fixVersions = ticket_data['fields']['fixVersions'] self.created = ticket_data['fields']['created'] self.priority = ticket_data['fields']['priority'] self.labels = ticket_data['fields']['labels'] self.assignee = ticket_data['fields']['assignee'] self.updated = ticket_data['fields']['updated'] self.status = ticket_data['fields']['status'] self.description = ticket_data['fields']['description'] self.creator = ticket_data['fields']['creator'] self.project = ticket_data['fields']['project'] self.subject = ticket_data['fields']['summary'] def set_ticket_data(self): self.update_ticket(self.get_project_field()) self.update_ticket(self.get_summary_field()) self.update_ticket(self.get_description_field()) self.update_ticket(self.get_issuetype_field()) self.update_ticket(self.get_labels_field()) self.set_custom_fields() def create(self): try: headers = {'Content-Type': 'application/json'} create_ticket_url = '{0}/rest/api/2/issue/'.format( self.CONFIGS['jira_url']) request = requests.post(create_ticket_url, headers=headers, auth=self.jira_auth, data=json.dumps(self.ticket_data)) # Printing below will help determine why ticket creation failed. e.g. "custom_fields" your ticket requires self._load_ticket_from_key(request.json()['key']) except Exception as e: super(Ticket, self).print_error('Error occurred while creating ticket', e) def update(self): pass #todo def move_to_sprint(self, sprint_id): try: headers = {'Content-Type': 'application/json'} create_ticket_url = '{0}/rest/api/2/issue/{1}'.format( self.CONFIGS['jira_url'], self.key) body = {"update": {"customfield_10010": [{"set": sprint_id}]}} request = requests.put(create_ticket_url, headers=headers, auth=self.jira_auth, data=json.dumps(body)) # Printing below will help determine why ticket creation failed. e.g. "custom_fields" your ticket requires self.load_ticket(request.json()) except Exception as e: super(Ticket, self).print_error('Error occurred while creating ticket', e) def change_status(self, status): try: headers = {'Content-Type': 'application/json'} status_change_ticket_url = '{0}/rest/api/2/issue/{1}/transitions'.format( self.CONFIGS['jira_url'], self.key) status = status.lower() status_hash = {"todo": "11", "in_progress": "21", "done": "31"} if status not in status_hash: return False body = {"transition": {"id": status_hash[status]}} request = requests.post(status_change_ticket_url, headers=headers, auth=self.jira_auth, data=json.dumps(body)) print request # Printing below will help determine why ticket creation failed. e.g. "custom_fields" your ticket requires self.load_ticket(request.json()) except Exception as e: super(Ticket, self).print_error('Error occurred while creating ticket', e) def set_custom_fields(self): try: custom_fields = self.CONFIGS['custom_fields'] if custom_fields: for custom_field, value in custom_fields.iteritems(): self.update_ticket({custom_field: value}) except Exception as e: super(Ticket, self).print_error( 'Could not set custom fields. Please refer to documentation', e) def get_issuetype_field(self): issue_type = self.data.get(self.ISSUETYPE_KEY, self.CONFIGS['issuetype']) if issue_type.lower() == "bug": issue_type = "Bug" elif issue_type.lower() == "story": issue_type = "Story" return {self.ISSUETYPE_KEY: {'name': issue_type}} def get_project_field(self): return {self.PROJECT_KEY: {'key': self.CONFIGS['jira_project']}} def get_labels_field(self): return {self.LABELS_KEY: self.data.get(self.LABELS_KEY, None)} def get_summary_field(self): return {self.SUMMARY_KEY: self.summary} def get_description_field(self): return {self.DESCRIPTION_KEY: "Ticket created by Alexa"} def update_ticket(self, data): if data is not None: self.ticket_data[self.FIELDS_KEY].update(data) def get_summary(self, data): return data['subject'] @classmethod def get_jira_auth(_self): return HTTPBasicAuth(_self.CONFIGS['jira_username'], _self.CONFIGS['jira_password']) def to_hash(self): return { 'key': self.key, 'type': self.ticket_type['name'], 'project': self.project['key'], 'description': self.description, 'subject': self.summary, 'priority': self.priority['name'] }
return result_population def phase_elitism(actual_population, base_population): min = inf max = -inf best_subject = None worst_subject = None index_to_change = 0 for subject in base_population: if subject.fitness_value <= min: best_subject = subject min = subject.fitness_value for i in range(len(actual_population)): subject = actual_population[i] if subject.fitness_value >= max: worst_subject = subject max = subject.fitness_value index_to_change = i actual_population[index_to_change] = best_subject #print_phase_result(5, "Elitismo", actual_population) return actual_population #################### global configs configs = Configs() main()
class Ticket(BaseClass): FIELDS_KEY = 'fields' PROJECT_KEY = 'project' SUMMARY_KEY = 'summary' DESCRIPTION_KEY = 'description' ISSUETYPE_KEY = 'issuetype' LABELS_KEY = 'labels' CONFIGS = Configs.get() def __init__(self, data, is_lambda): self.incident_number = self.get_incident_number(data) self.summary = self.get_summary(data) self.ticket_data = {self.FIELDS_KEY: {}} self.jira_auth = self.get_jira_auth() self.ticket_url = None self.pager_duty_link = self.get_pager_duty_link(data) super(Ticket, self).__init__(is_lambda) self.set_ticket_data() def set_ticket_data(self): self.update_ticket(self.get_project_field()) self.update_ticket(self.get_summary_field()) self.update_ticket(self.get_description_field()) self.update_ticket(self.get_issuetype_field()) self.update_ticket(self.get_labels_field()) self.set_custom_fields() def create(self): try: headers = {'Content-Type': 'application/json'} create_ticket_url = '{0}/rest/api/2/issue/'.format( self.CONFIGS['jira_url']) request = requests.post(create_ticket_url, headers=headers, auth=self.jira_auth, data=json.dumps(self.ticket_data)) # Printing below will help determine why ticket creation failed. e.g. "custom_fields" your ticket requires print request.text self.ticket_url = request.json()['key'] except Exception as e: super(Ticket, self).print_error('Error occurred while creating ticket', e) @classmethod def exists(_self, data): try: incident_number = _self.get_incident_number(data) jira_url = _self.CONFIGS['jira_url'] project = _self.CONFIGS['jira_project'] search_ticket_url = "{0}/rest/api/2/search?jql=project={1}+and+text~'pagerduty+{2}'".format( jira_url, project, incident_number) request = requests.get(search_ticket_url, auth=_self.get_jira_auth()) total_tickets = request.json()['total'] if total_tickets > 0: print 'A ticket for incident #{0} already exists in JIRA'.format( incident_number) return True return False except Exception as e: print 'Failed to determine if ticket exists in JIRA. {0}'.format(e) return True def set_custom_fields(self): try: custom_fields = self.CONFIGS['custom_fields'] if custom_fields: for custom_field, value in custom_fields.iteritems(): self.update_ticket({custom_field: value}) except Exception as e: super(Ticket, self).print_error( 'Could not set custom fields. Please refer to documentation', e) def get_issuetype_field(self): return {self.ISSUETYPE_KEY: {'name': self.CONFIGS['issuetype']}} def get_project_field(self): return {self.PROJECT_KEY: {'key': self.CONFIGS['jira_project']}} def get_labels_field(self): return {self.LABELS_KEY: self.CONFIGS['labels']} def get_summary_field(self): return { self.SUMMARY_KEY: "[PagerDuty] {0}: {1}".format(self.incident_number, self.summary) } def get_description_field(self): return { self.DESCRIPTION_KEY: "*CURRENTLY*\nPagerDuty has triggered an alert\n{0}\n\n*PROBLEM*\n{1}\n\n*SOLUTION*\n* Investigate the alert.\n* Resolve the PagerDuty ticket\n* Create future tickets as necessary" .format(self.pager_duty_link, self.summary) } def update_ticket(self, data): self.ticket_data[self.FIELDS_KEY].update(data) @classmethod def get_incident_number(_self, data): return data['incident']['incident_number'] def get_summary(self, data): return data['incident']['trigger_summary_data']['subject'] def get_pager_duty_link(self, data): return data['incident']['html_url'] @classmethod def get_jira_auth(_self): return HTTPBasicAuth(_self.CONFIGS['jira_username'], _self.CONFIGS['jira_password'])
from Engine import Trainer from Configs import Configs as Cfg if __name__ == '__main__': cfg = Cfg.load_configs() t = Trainer.COMTrainer(cfg) t.train()
ap.add_argument("-r", "--raspberry", type=int, default=0,help="# runnning on Raspberry Pi? Y=1 N=0") ap.add_argument("-s", "--send", type=int, default=0,help="#Send commands to ESP? Y=1 N=0") args = vars(ap.parse_args()) flag_display = args["display"] flag_raspberry = args["raspberry"] flag_send = args["send"] # Raspberry pi mode initialization if flag_raspberry > 0: from pivideostream import PiVideoStream from picamera.array import PiRGBArray from picamera import PiCamera # Configure file JSON path configs = Configs(os.path.dirname(os.path.realpath(__file__))+'/Configs.json') # Socket initialization if flag_send > 0: import socket HOST = configs.get("host") PORT = configs.get("port") tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) dest = (HOST, PORT) tcp.settimeout(0.0) print "Sending commands to "+str(dest) try: tcp.connect(dest) except socket.error as msg: if msg[0] != 115: print "Socket Error "+str(msg[0])
def get_config_obj(self, buildscript, build_root_top, project_ini, output_top): return Configs(buildscript, build_root_top, project_ini, output_top)