Example #1
0
def setup_db(username, password, url):
	
	dbname = "spark_data"

	client = Cloudant(username, password, url=url)

	client.connect()

	# Perform client tasks...
	session = client.session()
	print 'Username: {0}'.format(session['userCtx']['name'])
	databases = client.all_dbs()
	
	db = client.create_database(dbname)

	print 'Databases: {0}'.format(client.all_dbs())

	return db
Example #2
0
import credentials
import json
from cloudant.account import Cloudant
from cloudant.query import Query

USERNAME=credentials.cloudant_username
PASSWORD=credentials.cloudant_password
client = Cloudant(USERNAME, PASSWORD, account=USERNAME)
client.connect()
session = client.session()
db = client["taopython"]
db.create_index(fields=["query", "time"])

def store(query,time,content,analysis):
	doc=db.create_document({"query":query,"time":time,"content":content,"analysis":json.dumps(analysis)})
	return doc

def load(id):
	return db[id]

def search(query):
	resp=db.get_query_result(selector={"query":query},fields=["_id", "time"])
	#resp=db.get_query_result(selector={"query":query},fields=["_id", "time"],sort=["time"])
	return resp
from cloudant.account import Cloudant
client = Cloudant('eurisko', 'nox721!carpe', account='eurisko')
# or using url
# client = Cloudant(USERNAME, PASSWORD, url='https://acct.cloudant.com')

# Connect to the account
client.connect()

# Perform client tasks...
session = client.session()
print session['userCtx']['name']
print client.all_dbs()

db = client['eurisko']

inserted_counter = 0


# now connec to local sqlite3
def parse_results(results):
    """
    """
    for result in results:
        print 'parsing result'
        data = {}
        data['customer_id'] = 0
        data['tags'] = []
        data['title'] = result[0]
        data['content'] = result[1]
        data['timestamp'] = result[2]
        insert_to_cloudant(data)
Example #4
0
class CloudantDB:
    
    def upload_file(self, file):
        self.connect_to_db();
        return self.upload_file_to_db(file);
            
    def upload_file_to_db(self, file):
        
        file_name = file.filename;
        file_contenttype = file.content_type
        uploaded_file_content = file.read();
        with open(file_name, 'wb') as f:
            f.write(uploaded_file_content);
        fileEncrypt = security.FileEncryption();
        encrypted_file_path = fileEncrypt.encrypt_file(file_name);
        with open(encrypted_file_path, 'rb') as f:
            uploaded_file_content = f.read();
        hashed_content = hashing.hash_data(uploaded_file_content);
        file_hashed_content, version = self.get_file_if_exists(file_name);
        if(version > 0):
            if(hashed_content == file_hashed_content):
                return "File Already Exists";
        version += 1;
        date = datetime.datetime.now(pytz.timezone("US/Central"));
        fmt = "%Y-%m-%d %H:%M:%S %Z"
        last_modified_time = date.strftime(fmt);
        data = {
            'file_name': file_name,
            'hashed_content': hashed_content,
            'version': version,
            'last_modified_time': last_modified_time
            }
        my_doc = self.database.create_document(data);
        my_doc.put_attachment(file_name, file_contenttype, uploaded_file_content);
        if my_doc.exists():
            print "SUCCESS";
        return "File Uploaded Successfully";
    
    def download_file(self, file_name, version):
        
        selector = {
            "file_name": file_name,
            "version": version
        }
        fields = ["version","_id","last_modified_time"];
        data = self.database.get_query_result(selector=selector, fields=fields)
        for my_doc in data:
            print my_doc;
            id = my_doc["_id"]
            last_modified_time = my_doc["last_modified_time"]
        
        document_val = Document(self.database, id);
        with open(file_name, 'wb') as f:
            document_val.get_attachment(file_name, write_to=file_name, attachment_type='binary')
        fileDecrypt = security.FileEncryption();
        fileDecrypt.decrypt_file(file_name, file_name);
    
    def download_file_test(self, file_name, id):
        
        username = "******";
        password = "******"
        url = "https://f0ebf985-0718-42ab-81c8-d9a4749781fe-bluemix.cloudant.com"
        password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm();
        password_mgr.add_password(None, url, username, password)
        urllib2.install_opener(urllib2.build_opener(urllib2.HTTPBasicAuthHandler(password_mgr)))
        url_to_download = self.URL_TO_DOWNLOAD +"/files_data/"+ id + "/" + file_name;
        request = urllib2.Request(url_to_download)
        f = urllib2.urlopen(request)
        data = f.read();
        return data;
    
    def download_file_from_db(self, file_name, version):
        self.connect_to_db();
        return self.download_file(file_name, version);
    
    def get_file_if_exists(self, file_name):
        
        selector = { "file_name": file_name,
                    "version": {"$gt": 0}
                }
        fields = ["hashed_content", "version"]
        sort = [{"version":"asc"}]
        data = self.database.get_query_result(selector=selector, fields=fields, sort=sort)
        version = 0;
        file_contents = "";
        for doc in data:
            if(version < doc["version"]):
                version = doc["version"];
                file_contents = doc["hashed_content"];
        return file_contents, version;
    
    def connect_to_db(self):
        
        self.file_upload_path = os.path.dirname(__file__) + "\\templates\\file_downloads"
        self.URL_TO_DOWNLOAD = "https://f0ebf985-0718-42ab-81c8-d9a4749781fe-bluemix.cloudant.com"
        self.client = Cloudant()
        self.client.connect();
        self.session = self.client.session();
        self.database = self.client['files_data'];
        
    def disconnect_db(self):
        self.cloudant_account.logout();
        
    def list_all_in_db(self):
        list = []
        for doc in self.database:
            if 'file_name' in doc.keys():
                list.append(doc['file_name'])
        print list
        return list;