def test_create_user_in_shared_instance_with_public_host(self): settings.SHARED_SERVER = "localhost" settings.SHARED_SERVER_PUBLIC_HOST = "10.10.10.10" instance = Instance.objects.create( name="inside_out", shared=True, state="running", ) try: request = RequestFactory().post("/", {"unit-host": "192.168.1.10"}) response = CreateUser.as_view()(request, "inside_out") self.assertEqual(201, response.status_code) content = json.loads(response.content) expected = { u"MYSQL_HOST": u"10.10.10.10", u"MYSQL_PORT": u"3306", u"MYSQL_DATABASE_NAME": "inside_out", u"MYSQL_USER": u"inside_out", u"MYSQL_PASSWORD": content["MYSQL_PASSWORD"], } self.assertEqual(expected, content) sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertIsNotNone(row) finally: db = DatabaseManager("inside_out") db.drop_user("inside_out", "%") instance.delete()
def test_create_user_in_a_custom_service_host(self): instance = Instance.objects.create( name="ciclops", host="127.0.0.1", ec2_id="i-009", state="running", ) try: request = RequestFactory().post("/", {"hostname": "192.168.1.1", "service_host": "127.0.0.1"}) response = CreateUser.as_view()(request, "ciclops") self.assertEqual(201, response.status_code) content = json.loads(response.content) expected = { u"MYSQL_USER": u"ciclops", u"MYSQL_PASSWORD": content["MYSQL_PASSWORD"], } self.assertDictEqual(expected, content) self.cursor.execute("select User, Host FROM mysql.user WHERE User='******' AND Host='192.168.1.1'") row = self.cursor.fetchone() self.assertEqual("ciclops", row[0]) self.assertEqual("192.168.1.1", row[1]) finally: db = DatabaseManager("ciclops") db.drop_user("ciclops", "192.168.1.1") instance.delete()
def test_create_user(self): instance = Instance.objects.create( name="ciclops", host="127.0.0.1", ec2_id="i-009", state="running", ) try: request = RequestFactory().post("/", {"unit-host": "192.168.1.1"}) response = CreateUser.as_view()(request, "ciclops") self.assertEqual(201, response.status_code) content = json.loads(response.content) expected = { u"MYSQL_HOST": u"127.0.0.1", u"MYSQL_PORT": u"3306", u"MYSQL_DATABASE_NAME": "ciclops", u"MYSQL_USER": u"ciclops", u"MYSQL_PASSWORD": content["MYSQL_PASSWORD"], } self.assertDictEqual(expected, content) sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertEqual("ciclops", row[0]) finally: db = DatabaseManager("ciclops") db.drop_user("ciclops", "%") instance.delete()
def test_create_user_in_shared_instance_with_public_host(self): settings.SHARED_SERVER = "localhost" settings.SHARED_SERVER_PUBLIC_HOST = "10.10.10.10" instance = Instance.objects.create( name="inside_out", shared=True, state="running", ) try: request = RequestFactory().post("/", {"unit-host": "192.168.1.10"}) response = CreateUser.as_view()(request, "inside_out") self.assertEqual(201, response.status_code) content = json.loads(response.content) expected = { u"MYSQL_HOST": u"10.10.10.10", u"MYSQL_PORT": u"3306", u"MYSQL_DATABASE_NAME": "inside_out", u"MYSQL_USER": u"inside_out", u"MYSQL_PASSWORD": content["MYSQL_PASSWORD"], } self.assertEqual(expected, content) sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertIsNotNone(row) finally: db = DatabaseManager("inside_out") db.drop_user("inside_out", "%") instance.delete()
def test_drop_user(self): db = DatabaseManager("magneto") db.create_user("magneto", "localhost") db.drop_user("magneto", "localhost") self.cursor.execute("select User, Host FROM mysql.user WHERE User='******' AND Host='localhost'") row = self.cursor.fetchone() self.assertFalse(row)
def drop_user(request, name, hostname): host = _get_service_host(request.GET) db = DatabaseManager(name, host) try: db.drop_user(name, hostname) except Exception, e: return HttpResponse(e[1], status=500)
def test_create_user(self): instance = Instance.objects.create( name="ciclops", host="127.0.0.1", ec2_id="i-009", state="running", ) try: request = RequestFactory().post("/", {"unit-host": "192.168.1.1"}) response = CreateUser.as_view()(request, "ciclops") self.assertEqual(201, response.status_code) content = json.loads(response.content) expected = { u"MYSQL_HOST": u"127.0.0.1", u"MYSQL_PORT": u"3306", u"MYSQL_DATABASE_NAME": "ciclops", u"MYSQL_USER": u"ciclops", u"MYSQL_PASSWORD": content["MYSQL_PASSWORD"], } self.assertDictEqual(expected, content) sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertEqual("ciclops", row[0]) finally: db = DatabaseManager("ciclops") db.drop_user("ciclops", "%") instance.delete()
def test_create_user(self): db = DatabaseManager("wolverine") db.create_user("wolverine", "localhost") self.cursor.execute("select User, Host FROM mysql.user WHERE User='******' AND Host='localhost'") row = self.cursor.fetchone() self.assertEqual("wolverine", row[0]) self.assertEqual("localhost", row[1]) db.drop_user("wolverine", "localhost")
def test_create_user_should_generate_an_username_when_username_length_is_greater_than_16(self): db = DatabaseManager("usernamegreaterthan16") username, password = db.create_user("usernamegreaterthan16", "localhost") self.cursor.execute("select User, Host FROM mysql.user WHERE User like 'usernamegrea%' AND Host='localhost'") row = self.cursor.fetchone() self.assertEqual("usernamegrea", row[0][:12]) db = DatabaseManager(row[0]) db.drop_user(username, "localhost")
def test_drop_user(self): db = DatabaseManager("magneto") db.create_user("magneto", "%") db.drop_user("magneto", "%") sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertFalse(row)
def test_create__and_drop_user_username_greater_than_16_chars(self): db = DatabaseManager("anusernamegreaterthan16") db.create_user("anusernamegreaterthan16", "%") db.drop_user("anusernamegreaterthan16", "%") sql = "select User, Host FROM mysql.user " + \ "WHERE User LIKE 'anusernamegr%' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertFalse(row)
def test_create__and_drop_user_username_greater_than_16_chars(self): db = DatabaseManager("anusernamegreaterthan16") db.create_user("anusernamegreaterthan16", "%") db.drop_user("anusernamegreaterthan16", "%") sql = "select User, Host FROM mysql.user " + \ "WHERE User LIKE 'anusernamegr%' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertFalse(row)
def test_drop_user(self): db = DatabaseManager("magneto") db.create_user("magneto", "%") db.drop_user("magneto", "%") sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertFalse(row)
def test_create_user_generates_username_for_dbs_grater_than_16_chars(self): db = DatabaseManager("usernamegreaterthan16") username, password = db.create_user("usernamegreaterthan16", "%") sql = "select User, Host FROM mysql.user " +\ "WHERE User like 'usernamegrea%' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertEqual("usernamegrea", row[0][:12]) db = DatabaseManager(row[0]) db.drop_user(username, "%")
def test_create_user(self): db = DatabaseManager("wolverine") db.create_user("wolverine", "%") sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertEqual("wolverine", row[0]) self.assertEqual("%", row[1]) db.drop_user("wolverine", "%")
def test_create_user_generates_username_for_dbs_grater_than_16_chars(self): db = DatabaseManager("usernamegreaterthan16") username, password = db.create_user("usernamegreaterthan16", "%") sql = "select User, Host FROM mysql.user " +\ "WHERE User like 'usernamegrea%' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertEqual("usernamegrea", row[0][:12]) db = DatabaseManager(row[0]) db.drop_user(username, "%")
def test_create_user(self): db = DatabaseManager("wolverine") db.create_user("wolverine", "%") sql = "select User, Host FROM mysql.user " +\ "WHERE User='******' AND Host='%'" self.cursor.execute(sql) row = self.cursor.fetchone() self.assertEqual("wolverine", row[0]) self.assertEqual("%", row[1]) db.drop_user("wolverine", "%")
def test_export(self): db = DatabaseManager("magneto") db.create_database() db.create_user("magneto", "localhost") self.cursor.execute("create table magneto.foo ( test varchar(255) );") expected = """/*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `foo` ( `test` varchar(255) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; """ result = db.export() self.assertEqual(expected, result.replace("InnoDB", "MyISAM")) db.drop_database() db.drop_user("magneto", "localhost")
def test_export(self): db = DatabaseManager("magneto") db.create_database() db.create_user("magneto", "%") self.cursor.execute("create table magneto.foo ( test varchar(255) );") expected = """\ /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `foo` ( `test` varchar(255) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; """ result = db.export() self.assertEqual(expected, result.replace("InnoDB", "MyISAM")) db.drop_database() db.drop_user("magneto", "%")
def test_export_from_a_custom_service_host(self): db = DatabaseManager("magneto", host="127.0.0.1") db.create_database() db.create_user("magneto", "localhost") self.cursor.execute("create table magneto.foo ( test varchar(255) );") expected = """/*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `foo` ( `test` varchar(255) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; """ request = RequestFactory().get("/", {"service_host": "127.0.0.1"}) result = export(request, "magneto") self.assertEqual(200, result.status_code) self.assertEqual(expected, result.content.replace("InnoDB", "MyISAM")) db.drop_database() db.drop_user("magneto", "localhost")
def test_export_from_a_custom_service_host(self): db = DatabaseManager("magneto", host="127.0.0.1") db.create_database() db.create_user("magneto", "%") self.cursor.execute("create table magneto.foo ( test varchar(255) );") expected = """\ /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `foo` ( `test` varchar(255) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; """ request = RequestFactory().get("/", {"service_host": "127.0.0.1"}) result = export(request, "magneto") self.assertEqual(200, result.status_code) self.assertEqual(expected, result.content.replace("InnoDB", "MyISAM")) db.drop_database() db.drop_user("magneto", "%")