def reindex():
    from vars import mime_type_map
    from InformaCamUtils.elasticsearch import Elasticsearch

    elasticsearch = Elasticsearch()
    elasticsearch.createIndex(reindex=True)

    for mode in ["sources", "submissions"]:
        for root_, dirs_, files_ in os.walk(os.path.join(assets_root, mode)):
            for dir_ in dirs_:
                for root, dirs, files in os.walk(
                        os.path.join(assets_root, mode, dir_)):
                    data = {
                        '_id': dir_,
                        'asset_path': os.path.join(assets_root, mode, dir_)
                    }

                    for file in files:
                        if mode == "submissions":
                            if re.match(r'^(low_|med_|thumb_|high_)', file):
                                continue
                            else:
                                comps = file.split(".")
                                if len(comps) == 2 and re.match(
                                        r'(mkv|jpg)', comps[1]):
                                    data['file_name'] = file
                                    for mt, ext in mime_type_map.iteritems():
                                        if ext == comps[1]:
                                            data['mime_type'] = mt
                                            break
                                    break
                        elif mode == "sources":
                            if re.match(r'^(credentials|publicKey|baseImage_)',
                                        file):
                                continue
                            else:
                                data['file_name'] = file
                                break

                    print data

                    try:
                        if mode == "submissions":
                            submission = Submission(inflate=data, reindex=True)
                            print submission.emit()
                        elif mode == "sources":
                            source = Source(inflate=data, reindex=True)
                    except exceptions.ConnectionError as e:
                        print e
                        return
                    except AttributeError as e:
                        continue
def reindex():
	from vars import mime_type_map
	from InformaCamUtils.elasticsearch import Elasticsearch
	
	elasticsearch = Elasticsearch()
	elasticsearch.createIndex(reindex=True)
	
	for mode in ["sources", "submissions"]:
		for root_, dirs_, files_ in os.walk(os.path.join(assets_root, mode)):
			for dir_ in dirs_:
				for root, dirs, files in os.walk(
					os.path.join(assets_root, mode, dir_)):
					data = {
						'_id' : dir_,
						'asset_path' : os.path.join(assets_root, mode, dir_)
					}
					
					for file in files:
						if mode == "submissions":
							if re.match(r'^(low_|med_|thumb_|high_)', file):
								continue
							else:
								comps = file.split(".")
								if len(comps) == 2 and re.match(r'(mkv|jpg)', comps[1]):
									data['file_name'] = file
									for mt, ext in mime_type_map.iteritems():
										if ext == comps[1]:
											data['mime_type'] = mt
											break
									break
						elif mode == "sources":
							if re.match(r'^(credentials|publicKey|baseImage_)', file):
								continue
							else:
								data['file_name'] = file
								break
					
					print data

					try:
						if mode == "submissions":
							submission = Submission(inflate=data, reindex=True)
							print submission.emit()
						elif mode == "sources":
							source = Source(inflate=data, reindex=True)
					except exceptions.ConnectionError as e:
						print e
						sys.exit()
					except AttributeError as e:
						continue
Exemple #3
0
	def get(self, submission_id):
		"""Returns the specified Submission.
		
		required:
			_id
		"""
		res = ServerResponse()
		
		if passesParameterFilter(submission_id):
			submission = ICSubmission(_id = submission_id)
			
			if not hasattr(submission, 'invalid'):
				res.data = submission.emit()
				res.result = 200
			else:
				res.reason = submission.invalid
				
			if len(self.request.query) > 3:
				with_query = submission.search(parseRequest(self.request.query))
				res.data['refined_search'] = {}
				
				if hasattr(with_query, 'annotations'):
					res.data['refined_search']['annotations'] = with_query.annotations

		self.write(res.emit())
Exemple #4
0
	def post(self):
		"""Add a new Submission to the database.
		
		Only the server may utilize this method.
		
		required parameters in post:
			_id
			package_name
			package_content
		"""
		
		res = ServerResponse()		
		params = parseRequest(self.request.body)

		if params is not None:
			submission = ICSubmission(inflate={'_id' : params['_id']})
			if submission.addFile(params['package_name'], params['package_content']):
				if submission.importAssets(params['package_name']):
					submission.setMimeType(params['mime_type'])
					
					res.result = 200
					res.data = submission.emit()
				else:
					submission.invalidate(
						invalidate['codes']['asset_non_existent'],
						invalidate['reasons']['asset_non_existent']
					)
					res.reason = submission.invalid
		
		self.write(res.emit())
Exemple #5
0
	def get(self, _id):
		res = Res()
		
		if passesParameterFilter(_id):
			submission = ICSubmission(_id=_id)
			
			if not hasattr(submission, "invalid"):
				res.data = submission.emit()
				res.result = 200
			else:
				res.reason = submission.invalid
				
		self.finish(res.emit())
Exemple #6
0
	def get(self, _id):
		res = Res()
		
		if passesParameterFilter(_id):
			submission = ICSubmission(_id=_id)
			
			if not hasattr(submission, "invalid"):
				res.data = submission.emit()
				res.result = 200
			else:
				res.reason = submission.invalid
				
		self.finish(res.emit())
Exemple #7
0
	def post(self, _id):
		res = Res()
		
		if passesParameterFilter(_id):
			submission = ICSubmission(_id=_id)
			
			if not hasattr(submission, "invalid"):
				for k,v in parseRequest(self.request.body).iteritems():
					if k not in submission.locked_fields:
						setattr(source, k, v)
				
				if submission.save():
					res.data = submission.emit()
					res.result = 200
			
		self.finish(res.emit())
Exemple #8
0
	def post(self, _id):
		res = Res()
		
		if passesParameterFilter(_id):
			submission = ICSubmission(_id=_id)
			
			if not hasattr(submission, "invalid"):
				for k,v in parseRequest(self.request.body).iteritems():
					if k not in submission.locked_fields:
						setattr(source, k, v)
				
				if submission.save():
					res.data = submission.emit()
					res.result = 200
			
		self.finish(res.emit())