Пример #1
0
def gather_data_from_dynamo():
    global g_dpa_dynamo_data  # Index (dpa), combination priorities
    dy_obj = DynamoDB("us-west-2")
    for idx in range(1, NUM_DPA_S):
        query_item = {"Index": idx}  # Index is of each dpa
        val = dy_obj.get_item("dpa_configuration_with_index", query_item)
        g_dpa_dynamo_data[idx] = copy(val)
Пример #2
0
def fetch_sensor_id_mapping():
    global g_sensor_site_mapping  # sensorID (key), deployStatus, siteID, techName
    dy_obj = DynamoDB("us-west-2")
    for idx in range(84800101, 84800392):
        query_item = {"sensorID": idx}
        val = dy_obj.get_item("sensor_site_id_mapping", query_item)
        if val is not None:
            g_sensor_site_mapping[idx] = copy(val)
Пример #3
0
 def atomic_add_value(self, key, value):
     cmp_key = LPCMKey(self.name, key)
     try:
         item = DynamoDB.get_item(cmp_key)
     except DynamoDBKeyNotFoundError:
         item = DynamoDB.create_item(cmp_key)
     item.add_attribute('value', value)
     item.save()
Пример #4
0
 def atomic_add_value(self, key, value):
   cmp_key = LPCMKey(self.name, key)
   try:
     item = DynamoDB.get_item(cmp_key)
   except DynamoDBKeyNotFoundError:
     item = DynamoDB.create_item(cmp_key)
   item.add_attribute('value', value)
   item.save()
Пример #5
0
 def delete(self, key):
     "Deletes a key-value map from dynamodb. Ignores it if item does not exist"
     cmp_key = LPCMKey(self.name, key)
     try:
         item = DynamoDB.get_item(cmp_key)
     except DynamoDBKeyNotFoundError:
         return  # delete fails silently
     item.delete()
Пример #6
0
 def delete(self, key):
   "Deletes a key-value map from dynamodb. Ignores it if item does not exist"
   cmp_key = LPCMKey(self.name, key)
   try:
     item = DynamoDB.get_item(cmp_key)
   except DynamoDBKeyNotFoundError:
     return  # delete fails silently
   item.delete()
Пример #7
0
 def atomic_delete_values(self, key, values):
     """Deletes a set of values from an item. Fails silently if item does not exist"""
     cmp_key = LPCMKey(self.name, key)
     try:
         item = DynamoDB.get_item(cmp_key)
     except DynamoDBKeyNotFoundError:
         return  # Nothing to do
     item.delete_attribute('value', values)
     item.save()
Пример #8
0
 def atomic_delete_values(self, key, values):
   """Deletes a set of values from an item. Fails silently if item does not exist"""
   cmp_key = LPCMKey(self.name, key)
   try:
     item = DynamoDB.get_item(cmp_key)
   except DynamoDBKeyNotFoundError:
     return # Nothing to do
   item.delete_attribute('value', values)
   item.save()
Пример #9
0
 def __getitem__(self, key):
   cmp_key = LPCMKey(self.name, key)
   try:
     item = DynamoDB.get_item(cmp_key)
   except DynamoDBKeyNotFoundError:
     raise KeyError(u"{name}:{key}".format(name = self.name, key = cmp_key.original_key_obj))
   value = item['value']
   value = self._postprocess_value_after_ddb_load(value)
   return value
Пример #10
0
 def __getitem__(self, key):
     cmp_key = LPCMKey(self.name, key)
     try:
         item = DynamoDB.get_item(cmp_key)
     except DynamoDBKeyNotFoundError:
         raise KeyError(u"{name}:{key}".format(
             name=self.name, key=cmp_key.original_key_obj))
     value = item['value']
     value = self._postprocess_value_after_ddb_load(value)
     return value
Пример #11
0
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        session['password'] = request.form['password']

        db = DynamoDB(region=cfg['region'])
        user_table = cfg['db_tbl']['user']

        if not db._isTable_exists(user_table):
            db.create_table(table_name=user_table,
                            attr_dict={'hash_name': "username"})

        try:
            user = db.get_item(user_table, {'username': session['username']})
            if user and user['password'] == session['password']:
                return redirect(url_for('home', user=session['username']))
        except:
            flash('Username or Password does not exist')
            return redirect(request.url)

    return render_template('login.html')
Пример #12
0
def monthlywork(event, context):
    try:
        logging.info('lambda_handler start')
        logging.info('Event: {}'.format(json.dumps(event)))

        # BackLogクラス生成
        backlog = BackLog(space_name, project_key, api_key)
        # DynamoDBクラス作成
        dynamodb = DynamoDB(dynamo_tbl)

        #----- Step1
        logging.info('[Step1]DynamoDBにカラムを追加する')

        index_record = dynamodb.get_item('No', 1)
        logging.info('index_record: {}'.format(index_record))
        if index_record is None:
            logging.info('index_recordが存在しないためカラムを登録します')
            index_record = dynamodb.put_item(column_fmt)
            logging.info('index_record: {}'.format(index_record))
            logging.info('カラム登録が完了したため処理を終了します')
            return
        else:
            logging.info('index_recordが存在したため処理をスキップします')

        #----- Step2
        logging.info('[Step2]DynamoDBの全データを抽出します')
        records = dynamodb.scan_all()

        #----- Step3
        logging.info('[Step3]各レコード情報を元にバックログに起票します')
        for record in records:
            logging.info('record: {}'.format(record))

            # 日付情報の取得
            start_date = schedule.get_day_of_nth_dow(
                int(record.get('start_day')),
                int(record.get('start_dow_nth')),
                str(record.get('start_dow_dow')),
            )
            logging.info('start_date: {}'.format(start_date))

            due_date = schedule.get_day_of_nth_dow(
                int(record.get('due_day')),
                int(record.get('due_dow_nth')),
                str(record.get('due_dow_dow')),
            )
            logging.info('due_date: {}'.format(due_date))

            # ----- Issuetype
            issuetype_name = record.get('issuetype_name')
            issuetype_id = backlog.get_issuetype_id(issuetype_name)
            logging.info('The {0} IssuetypeID: {1}.'.format(
                issuetype_name, issuetype_id))

            # ----- Assignee
            mailaddress = record.get('mailaddress')
            assignee_id = backlog.get_user_id(mailaddress)
            logging.info('The {0} AssigneeId: {1}'.format(
                mailaddress, assignee_id))

            # ----- Category(複数指定が可能なのでちょっと面倒)
            # 引っ張ってきたデータをカンマ区切りで配列に詰め、それぞれの要素に対して先頭末尾の空白を削除
            category_names = list(
                map(str.strip,
                    record.get('category_names').split(',')))

            # カテゴリIDリストの作成
            category_ids = []
            for category_name in category_names:
                category_id = backlog.get_category_id(category_name)
                logging.info('The {0} CategoryID: {1}.'.format(
                    category_name, category_id))
                #指定されたカテゴリが無ければ作成する
                if category_id is None:
                    logging.info(
                        'a new category create because The specified category do not define.'
                    )
                    res = backlog.create_category(category_name)
                    logging.info('create category result: {}'.format(res))
                    category_id = res.get('id')
                    logging.info('The {0} CategoryID: {1}.'.format(
                        category_name, category_id))
                category_ids.append(category_id)
            logging.info('category_ids: {}.'.format(category_ids))

            # ----- MileStone(複数指定が可能なのでちょっと面倒)
            # 引っ張ってきたデータをカンマ区切りで配列に詰め、それぞれの要素に対して先頭末尾の空白を削除
            milestone_names = list(
                map(str.strip,
                    record.get('milestone_names').split(',')))

            # マイルストンIDリストの作成
            milestone_ids = []
            for milestone_name in milestone_names:
                milestone_id = backlog.get_milestone_id(milestone_name)
                logging.info('The {0} milestoneID: {1}.'.format(
                    milestone_name, milestone_id))
                #指定されたマイルストンが無ければ作成する
                if milestone_id is None:
                    logging.info(
                        'a new milestone create because The specified milestone do not define.'
                    )
                    res = backlog.create_milestone(milestone_name)
                    logging.info('create milestone result: {}'.format(res))
                    milestone_id = res.get('id')
                    logging.info('The {0} milestoneID: {1}.'.format(
                        milestone_name, milestone_id))
                milestone_ids.append(milestone_id)
            logging.info('milestone_ids: {}.'.format(milestone_ids))

            # 課題登録API実行
            logging.info('Execute the issue registration API.')
            res = backlog.add_issue(record.get('summary'), issuetype_id,
                                    record.get('description'), start_date,
                                    due_date, assignee_id, category_ids,
                                    milestone_ids, [])
            logging.info(
                'Execute the issue registration API Result: {}'.format(res))

        logging.info('lambda_handler Normal end')
        return 'lambda_handler Normal end'

    except Exception as error:
        logging.info('lambda_handler Abnormal end')
        logging.error(error)
        raise error
Пример #13
0
                    data = kill_char(val, 2)
                    data1 = kill_char(data, len(data) - 1)
                    data2 = data1.split(' ')
                    temp.append(data2[1])
                if len(val) == 10:
                    data = kill_char(val, 3)
                    data1 = kill_char(data, len(data) - 1)
                    data2 = data1.split(' ')
                    temp.append(data2[1])

    final_list.append(copy.copy(temp))
    del temp[:]

# got the data into this list
counter = 0
new_data_dict = defaultdict(list)
new_data_dict["Index"] = 3
for val in final_list:
    index = 0
    if len(val) > 0:
        for item in val:
            if item is not None:
                new_data_dict[str(index)].append(item)
                index = index + 1
            else:
                index = index + 1

# print(new_data_dict)
query_item = {"Index": 3}
print(dy_obj.get_item("Test", query_item))