Exemple #1
0
def clone_redis(target, creds=False):
    if not os.path.exists("dump"):
        os.makedirs("dump")
    elif not os.path.exists("dump/redis"):
        os.makedirs("dump/redis")
    print(colored("[-] Clone Module For NoSQL Framework Launched ..", 'blue'))
    try:
        content = redisdl.dumps(str(target), 6379)
        file = open("./dump/redis/" + str(target) + ".rdb", "w")
        file.write(content)
        file.close()
        print(colored(
            "[-] Dumped Successfully Find the logs @ ./dump/redis/" + target + ".rdb", 'green'))
    except redis.exceptions.ResponseError:
        print(colored("[-] Authentication Required \n", 'red'))
        if creds:
            print(colored("[~] Retrying with creds Enabled", 'yellow'))
            content = redisdl.dumps(str(target), 6379, creds)
            file = open("./dump/redis/" + str(target) + ".rdb", "w")
            file.write(content)
            file.close()
            print(colored(
                "[+] Dumped Successfully Find the logs @ ./dump/redis/" + target + ".rdb\n", 'green'))
        else:
            print(colored("[-] Dump Failed \n", 'red'))
Exemple #2
0
def clone_redis(target):
    if not os.path.exists("dump"):
        os.makedirs("dump")
    elif not os.path.exists("dump/redis"):
        os.makedirs("dump/redis")
    print colored("[-] Clone Module For NoSQL Framework Launched ..", 'blue')
    try:
        content = redisdl.dumps(str(target), 6379)
        file = open("./dump/redis/" + str(target) + ".rdb", "w")
        file.write(content)
        file.close()
        print colored(
            "[-] Dumped Successfully Find the logs @ ./dump/redis/" + target +
            ".rdb", 'green')
    except redis.exceptions.ResponseError:
        print colored("[-] Authentication Required \n", 'red')
        choice = raw_input(
            colored("[-] Do u want to enter a password \n", 'yellow'))
        if choice.lower() == 'y':
            passw = raw_input(colored("[-] Enter the password ", 'green'))
            content = redisdl.dumps(str(target), 6379, passw)
            file = open("./dump/redis/" + str(target) + ".rdb", "w")
            file.write(content)
            file.close()
            print colored(
                "[-] Dumped Successfully Find the logs @ ./dump/redis/" +
                target + ".rdb\n", 'green')
        else:
            print colored("[-] Dump Failed \n", 'red')
 def test_dump_latin1(self):
     self.r = redis.Redis(charset='latin1')
     self.r.set('key', util.b('\xa9'))
     dump = redisdl.dumps(encoding='latin1')
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': util.u("\u00a9")}}
     self.assertEqual(expected, actual)
 def test_dump_utf16(self):
     self.r = redis.Redis(charset='utf-16')
     self.r.set(util.u('key'), util.b('\xff\xfeh\x00e\x00l\x00l\x00o\x00'))
     dump = redisdl.dumps(encoding='utf-16')
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': util.u("hello")}}
     self.assertEqual(expected, actual)
 def test_dump_latin1(self):
     self.r = redis.Redis(charset='latin1')
     self.r.set('key', util.b('\xa9'))
     dump = redisdl.dumps(encoding='latin1')
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': util.u("\u00a9")}}
     self.assertEqual(expected, actual)
 def test_dump_utf16(self):
     self.r = redis.Redis(charset='utf-16')
     self.r.set(util.u('key'), util.b('\xff\xfeh\x00e\x00l\x00l\x00o\x00'))
     dump = redisdl.dumps(encoding='utf-16')
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': util.u("hello")}}
     self.assertEqual(expected, actual)
Exemple #7
0
 def test_dump_specified_keys(self):
     self.r.set('key', 'value')
     self.r.set('ignore_key', 'value')
     dump = redisdl.dumps(keys='k*')
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': 'value'}}
     self.assertEqual(expected, actual)
 def test_dump_specified_keys(self):
     self.r.set('key', 'value')
     self.r.set('ignore_key', 'value')
     dump = redisdl.dumps(keys='k*')
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': 'value'}}
     self.assertEqual(expected, actual)
Exemple #9
0
 def test_dump_specified_keys(self):
     self.r.set("key", "value")
     self.r.set("ignore_key", "value")
     dump = redisdl.dumps(keys="k*")
     actual = json.loads(dump)
     expected = {"key": {"type": "string", "value": "value"}}
     self.assertEqual(expected, actual)
Exemple #10
0
    def test_no_ttl_dumps(self):
        self.r.set("a", "aaa")

        dump = redisdl.dumps(keys="a")
        actual = json.loads(dump)

        self.assertTrue("ttl" not in actual["a"])
        self.assertTrue("expireat" not in actual["a"])
Exemple #11
0
    def test_no_ttl_dumps(self):
        self.r.set('a', 'aaa')

        dump = redisdl.dumps(keys='a')
        actual = json.loads(dump)

        self.assertTrue('ttl' not in actual['a'])
        self.assertTrue('expireat' not in actual['a'])
Exemple #12
0
 def test_dump_unicode_value(self):
     self.r.set('key', util.u("\u041c\u043e\u0441\u043a\u0432\u0430"))
     dump = redisdl.dumps()
     actual = json.loads(dump)
     expected = {
         'key': {
             'type': 'string',
             'value': util.u("\u041c\u043e\u0441\u043a\u0432\u0430")
         }
     }
     self.assertEqual(expected, actual)
Exemple #13
0
    def test_ttl_precision(self):
        self.r.set('a', 'aaa')
        self.r.pexpire('a', 3600500)

        start_time = _time.time()
        dump = redisdl.dumps(keys='a')
        end_time = _time.time()
        actual = json.loads(dump)

        ttl = actual['a']['ttl']
        assert int((ttl - int(ttl)) * 1000) > 0
Exemple #14
0
    def test_ttl_precision(self):
        self.r.set("a", "aaa")
        self.r.pexpire("a", 3600500)

        start_time = _time.time()
        dump = redisdl.dumps(keys="a")
        end_time = _time.time()
        actual = json.loads(dump)

        ttl = actual["a"]["ttl"]
        assert int((ttl - int(ttl)) * 1000) > 0
    def check_load(self, cmd, path):
        with open(path) as f:
            dump = f.read()

        subprocess.check_call(cmd)

        redump = redisdl.dumps()

        expected = json.loads(dump)
        actual = json.loads(redump)

        self.assertEqual(expected, actual)
    def check_load(self, cmd, path):
        with open(path) as f:
            dump = f.read()

        subprocess.check_call(cmd)

        redump = redisdl.dumps()

        expected = json.loads(dump)
        actual = json.loads(redump)

        self.assertEqual(expected, actual)
    def test_load_expireat_preference(self):
        path = os.path.join(os.path.dirname(__file__), 'fixtures', 'ttl_and_expireat.json')
        with open(path) as f:
            dump = f.read()

        subprocess.check_call([self.program, '-l', '-A', path])

        redump = redisdl.dumps()

        actual = json.loads(redump)

        self.assertGreater(actual['akey']['ttl'], 36000)
    def test_load_unicode(self):
        path = os.path.join(os.path.dirname(__file__), 'fixtures', 'dump-unicode.json')
        with open(path) as f:
            dump = f.read()

        subprocess.check_call([self.program, '-l', path])

        redump = redisdl.dumps()

        actual = json.loads(redump)

        self.maxDiff = None
        self.assertEqual(unicode_dump, actual)
Exemple #19
0
    def test_roundtrip_pretty(self):
        path = os.path.join(os.path.dirname(__file__), "fixtures", "dump.json")
        with open(path) as f:
            dump = f.read()

        redisdl.loads(dump)

        redump = redisdl.dumps(pretty=True)

        expected = json.loads(dump)
        actual = json.loads(redump)

        self.assertEqual(expected, actual)
    def test_load_unicode(self):
        path = os.path.join(os.path.dirname(__file__), 'fixtures', 'dump-unicode.json')
        with open(path) as f:
            dump = f.read()

        subprocess.check_call([self.program, '-l', path])

        redump = redisdl.dumps()

        actual = json.loads(redump)

        self.maxDiff = None
        self.assertEqual(unicode_dump, actual)
Exemple #21
0
    def test_ttl_dumps(self):
        self.r.set("a", "aaa")
        self.r.expire("a", 3600)

        start_time = _time.time()
        dump = redisdl.dumps(keys="a")
        end_time = _time.time()
        actual = json.loads(dump)

        self.assertGreater(actual["a"]["ttl"], 0)
        self.assertLessEqual(actual["a"]["ttl"], 3600)
        self.assertGreaterEqual(actual["a"]["expireat"], int(start_time) + 3600)
        self.assertLessEqual(actual["a"]["expireat"], int(end_time) + 1 + 3600)
    def test_roundtrip(self):
        path = os.path.join(os.path.dirname(__file__), 'fixtures', 'dump.json')
        with open(path) as f:
            dump = f.read()

        redisdl.loads(dump)

        redump = redisdl.dumps()

        expected = json.loads(dump)
        actual = json.loads(redump)

        self.assertEqual(expected, actual)
Exemple #23
0
    def test_roundtrip_pretty(self):
        path = os.path.join(os.path.dirname(__file__), 'fixtures', 'dump.json')
        with open(path) as f:
            dump = f.read()

        redisdl.loads(dump)

        redump = redisdl.dumps(pretty=True)

        expected = json.loads(dump)
        actual = json.loads(redump)

        self.assertEqual(expected, actual)
Exemple #24
0
    def test_ttl_dumps(self):
        self.r.set('a', 'aaa')
        self.r.expire('a', 3600)

        start_time = _time.time()
        dump = redisdl.dumps(keys='a')
        end_time = _time.time()
        actual = json.loads(dump)

        self.assertGreater(actual['a']['ttl'], 0)
        self.assertLessEqual(actual['a']['ttl'], 3600)
        self.assertGreaterEqual(actual['a']['expireat'],
                                int(start_time) + 3600)
        self.assertLessEqual(actual['a']['expireat'], int(end_time) + 1 + 3600)
def clone_redis(target):
	if not os.path.exists("dump"):
    		os.makedirs("dump")
	elif not os.path.exists("dump/redis"):
   		 os.makedirs("dump/redis")
	print colored("[-] Clone Module For NoSQL Framework Launched ..",'blue')
	try:
		content=redisdl.dumps(str(target),6379)
		file = open("./dump/redis/"+str(target)+".rdb","w")
		file.write(content)
		file.close()
		print colored("[-] Dumped Successfully Find the logs @ ./dump/redis/"+target+".rdb",'green')
	except redis.exceptions.ResponseError:
		print colored("[-] Authentication Required \n",'red')
		choice=raw_input(colored("[-] Do u want to enter a password \n",'yellow'))
		if choice.lower()=='y':
			passw=raw_input(colored("[-] Enter the password ",'green'))
			content=redisdl.dumps(str(target),6379,passw)
			file = open("./dump/redis/"+str(target)+".rdb","w")
			file.write(content)
			file.close()
			print colored("[-] Dumped Successfully Find the logs @ ./dump/redis/"+target+".rdb\n",'green')
		else:
			print colored("[-] Dump Failed \n",'red')
    def check_delete_race(self, suffix):
        bd = big_data.BigData(self.r)
        getattr(bd, 'insert_%s' % suffix)(key_count)

        big_data_path = os.path.join(os.path.dirname(__file__), 'big_data.py')
        self.data_process = subprocess.Popen(
            [sys.executable, big_data_path, 'delete', str(key_count)],
            stdout=subprocess.PIPE,
        )

        _time.sleep(1)
        start = _time.time()
        dump = redisdl.dumps()
        finish = _time.time()

        out, err = self.data_process.communicate()
        delete_start, delete_finish = [int(time) for time in out.decode().split(' ')]

        assert delete_start < start
        assert finish > start + 5
        assert delete_finish > start + 5
    def check_delete_race(self, suffix):
        bd = big_data.BigData(self.r)
        getattr(bd, 'insert_%s' % suffix)(key_count)

        big_data_path = os.path.join(os.path.dirname(__file__), 'big_data.py')
        self.data_process = subprocess.Popen(
            [sys.executable, big_data_path, 'delete',
             str(key_count)],
            stdout=subprocess.PIPE,
        )

        _time.sleep(1)
        start = _time.time()
        dump = redisdl.dumps()
        finish = _time.time()

        out, err = self.data_process.communicate()
        delete_start, delete_finish = [
            int(time) for time in out.decode().split(' ')
        ]

        assert delete_start < start
        assert finish > start + 5
        assert delete_finish > start + 5
Exemple #28
0
 def test_dump_unicode_value(self):
     self.r.set("key", util.u("\u041c\u043e\u0441\u043a\u0432\u0430"))
     dump = redisdl.dumps()
     actual = json.loads(dump)
     expected = {"key": {"type": "string", "value": util.u("\u041c\u043e\u0441\u043a\u0432\u0430")}}
     self.assertEqual(expected, actual)
Exemple #29
0
 def test_dump_string_value(self):
     self.r.set('key', 'value')
     dump = redisdl.dumps()
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': 'value'}}
     self.assertEqual(expected, actual)
Exemple #30
0
 def test_dump_string_value(self):
     self.r.set("key", "value")
     dump = redisdl.dumps()
     actual = json.loads(dump)
     expected = {"key": {"type": "string", "value": "value"}}
     self.assertEqual(expected, actual)
def dump_redis_to_json():
    json_text = redisdl.dumps()

    with open('tmp/dump.json', 'w') as f:
        # streams data
        redisdl.dump(f)
 def test_dump_unicode_value(self):
     self.r.set('key', util.u("\u041c\u043e\u0441\u043a\u0432\u0430"))
     dump = redisdl.dumps()
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': util.u("\u041c\u043e\u0441\u043a\u0432\u0430")}}
     self.assertEqual(expected, actual)
 def test_dump_string_value(self):
     self.r.set('key', 'value')
     dump = redisdl.dumps()
     actual = json.loads(dump)
     expected = {'key': {'type': 'string', 'value': 'value'}}
     self.assertEqual(expected, actual)
Exemple #34
0
# requires pip install redis-dump-load
import redisdl

json_text = redisdl.dumps()

with open('redis-dump.json', 'w') as f:
    redisdl.dump(f)