示例#1
0
 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()
示例#2
0
    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()
示例#3
0
 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()
示例#4
0
 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()
示例#5
0
 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)
示例#6
0
文件: views.py 项目: agnhesi/mysqlapi
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)
示例#7
0
 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()
示例#8
0
 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")
示例#9
0
 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")
示例#10
0
 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)
示例#11
0
 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", "%")
示例#16
0
 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, "%")
示例#17
0
 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", "%")
示例#18
0
    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")
示例#19
0
    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", "%")
示例#20
0
    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")
示例#21
0
    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", "%")