Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Ghe Rivero
Quoting Morgan Fainberg (2015-04-04 02:55:59)
 I am looking forward to the Liberty cycle and seeing the special casing we do
 for SQLite in our migrations (and elsewhere). My inclination is that we should
 (similar to the deprecation of eventlet) deprecate support for SQLite in
 Keystone. In Liberty we will have a full functional test suite that can (and
 will) be used to validate everything against much more real environments
 instead of in-process ?eventlet-like? test-keystone-services; the ?Restful 
 test
 cases? will no longer be part of the standard unit tests (as they are
 functional testing). With this change I?m inclined to say SQLite (being the
 non-production usable DB) what it is we should look at dropping migration
 support for SQLite and the custom work-arounds.
 
 Most deployers and developers (as far as I know) use devstack and MySQL or
 Postgres to really suss out DB interactions.
 
 I am looking for feedback from the community on the general stance for SQLite,
 and more specifically the benefit (if any) of supporting it in Keystone.
 
 -- 
 Morgan Fainberg

+1

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Mike Bayer



On 4/6/15 2:52 PM, Morgan Fainberg wrote:



On Apr 6, 2015, at 11:41, Mike Bayer mba...@redhat.com 
mailto:mba...@redhat.com wrote:





On 4/6/15 12:49 PM, David Stanek wrote:


Exactly. This is the direction I have been going. Functional tests 
are written using the public APIs using the client.


I would also add that I don't like that the Keystone unit tests are 
so database heavy. I would not want MySQL or ant RDBMS to be a 
requirement for running the tests.


is that because you'd prefer that the unit tests were more isolated, 
or just that an external service is being used?


I've done some work with extensive mocking of SQL databases; 
specifically mocking at the ORM level.  It is nice when you get it to 
run, but it's also a much bigger job to write fine-grained mocks like 
that, the mocks can be brittle in relation to the code they're 
targeting, and you also need to come up with some solution to 
actually functional test your database access code.


I tend to think that having a mysqld service running is the lesser of 
two evils and you get a lot more code coverage by going all the way 
out to the DB.




What David is specifically referencing is that we want our functional 
tests to only require direct API access. There is almost no reason to 
need access to the DB backend. We have many ways to perform isolation 
where needed (tempest does a lot of this today).


The goal is to allow the functional test suite to run against any 
keystone deployment (be agnostic to db, non-db, etc driver used). This 
makes environment setup a separate concern the tests don't need to be 
involved in/aware of. It makes our functional tests more useful for 
validating a driver or configuration passes muster.


ah.  for sure.  I would think functional tests could run against a 
backend that was entirely mock / file-based.




If there are legitimately cases we need to test a specific db function 
in isolation we will make specific efforts to support it. Those are 
apt to be the exception to the rule.


--Morgan
Sent via mobile






On Mon, Apr 6, 2015, 12:42 Morgan Fainberg 
morgan.fainb...@gmail.com mailto:morgan.fainb...@gmail.com wrote:




 On Apr 6, 2015, at 09:20, Mike Bayer mba...@redhat.com wrote:



 On 4/6/15 12:06 PM, Clint Byrum wrote:
 Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08
-0700:
 On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
 I am looking forward to the Liberty cycle and seeing the
special casing we
 do for SQLite in our migrations (and elsewhere). My
inclination is that we
 should (similar to the deprecation of eventlet) deprecate
support for
 SQLite in Keystone. In Liberty we will have a full
functional test suite
 that can (and will) be used to validate everything against
much more real
 environments instead of in-process “eventlet-like”
test-keystone-services;
 the “Restful test cases” will no longer be part of the
standard unit tests
 (as they are functional testing). With this change I’m
inclined to say
 SQLite (being the non-production usable DB) what it is we
should look at
 dropping migration support for SQLite and the custom
work-arounds.

 Most deployers and developers (as far as I know) use
devstack and MySQL or
 Postgres to really suss out DB interactions.

 I am looking for feedback from the community on the general
stance for
 SQLite, and more specifically the benefit (if any) of
supporting it in
 Keystone.
 +1. Drop it and clean up tons of code used for support of
sqlite only.

 Doing tests with mysql is as easy, as with sqlite
(mysqladmin drop -f;
 mysqladmin create for reset), and using it by default
will finally make
 people test their code on real rdbmses.
 Please please please be careful with that and make sure the
database
 name is _always_ random in tests... or even better, write a
fixture to
 spin up a mysqld inside a private tempdir. That would be a
really cool
 thing for oslo.db to provide actually.

 I'm just thinking some poor sap runs the test suite with the
wrong
 .my.cnf in the wrong place and poof there went keystone's db.
 The standard approach here is that tests based on the oslo.db
approach by default connect using a username openstack_citest on
localhost, which is then used to create databases of random
names. If you base your database tests on oslo.db, you get that
right now.  This username/host/etc is also configurable through
environment variables.  I don't see how my.cnf is involved in
this nor how it would impact someone's keystone database, unless
we're talking about tests that happen to load down and/or crash
the whole database server.

 spinning up a whole mysqld seems really heavy-handed and
unnecessary.  Not to mention the tests run on other 

Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Morgan Fainberg


 On Apr 6, 2015, at 11:41, Mike Bayer mba...@redhat.com wrote:
 
 
 
 On 4/6/15 12:49 PM, David Stanek wrote:
 Exactly. This is the direction I have been going. Functional tests are 
 written using the public APIs using the client.
 
 I would also add that I don't like that the Keystone unit tests are so 
 database heavy. I would not want MySQL or ant RDBMS to be a requirement for 
 running the tests.
 
 is that because you'd prefer that the unit tests were more isolated, or just 
 that an external service is being used?
 
 I've done some work with extensive mocking of SQL databases; specifically 
 mocking at the ORM level.  It is nice when you get it to run, but it's also a 
 much bigger job to write fine-grained mocks like that, the mocks can be 
 brittle in relation to the code they're targeting, and you also need to come 
 up with some solution to actually functional test your database access code.
 
 I tend to think that having a mysqld service running is the lesser of two 
 evils and you get a lot more code coverage by going all the way out to the DB.
 

What David is specifically referencing is that we want our functional tests to 
only require direct API access. There is almost no reason to need access to the 
DB backend. We have many ways to perform isolation where needed (tempest does a 
lot of this today). 

The goal is to allow the functional test suite to run against any keystone 
deployment (be agnostic to db, non-db, etc driver used). This makes environment 
setup a separate concern the tests don't need to be involved in/aware of. It 
makes our functional tests more useful for validating a driver or configuration 
passes muster. 

If there are legitimately cases we need to test a specific db function in 
isolation we will make specific efforts to support it. Those are apt to be the 
exception to the rule. 

--Morgan
Sent via mobile 

 
 
 
 On Mon, Apr 6, 2015, 12:42 Morgan Fainberg morgan.fainb...@gmail.com 
 wrote:
 
 
  On Apr 6, 2015, at 09:20, Mike Bayer mba...@redhat.com wrote:
 
 
 
  On 4/6/15 12:06 PM, Clint Byrum wrote:
  Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08 -0700:
  On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
  I am looking forward to the Liberty cycle and seeing the special 
  casing we
  do for SQLite in our migrations (and elsewhere). My inclination is 
  that we
  should (similar to the deprecation of eventlet) deprecate support for
  SQLite in Keystone. In Liberty we will have a full functional test 
  suite
  that can (and will) be used to validate everything against much more 
  real
  environments instead of in-process “eventlet-like” 
  test-keystone-services;
  the “Restful test cases” will no longer be part of the standard unit 
  tests
  (as they are functional testing). With this change I’m inclined to say
  SQLite (being the non-production usable DB) what it is we should look 
  at
  dropping migration support for SQLite and the custom work-arounds.
 
  Most deployers and developers (as far as I know) use devstack and 
  MySQL or
  Postgres to really suss out DB interactions.
 
  I am looking for feedback from the community on the general stance for
  SQLite, and more specifically the benefit (if any) of supporting it in
  Keystone.
  +1. Drop it and clean up tons of code used for support of sqlite only.
 
  Doing tests with mysql is as easy, as with sqlite (mysqladmin drop -f;
  mysqladmin create for reset), and using it by default will finally 
  make
  people test their code on real rdbmses.
  Please please please be careful with that and make sure the database
  name is _always_ random in tests... or even better, write a fixture to
  spin up a mysqld inside a private tempdir. That would be a really cool
  thing for oslo.db to provide actually.
 
  I'm just thinking some poor sap runs the test suite with the wrong
  .my.cnf in the wrong place and poof there went keystone's db.
  The standard approach here is that tests based on the oslo.db approach by 
  default connect using a username openstack_citest on localhost, which is 
  then used to create databases of random names. If you base your database 
  tests on oslo.db, you get that right now.   This username/host/etc is 
  also configurable through environment variables.  I don't see how my.cnf 
  is involved in this nor how it would impact someone's keystone database, 
  unless we're talking about tests that happen to load down and/or crash 
  the whole database server.
 
  spinning up a whole mysqld seems really heavy-handed and unnecessary.  
  Not to mention the tests run on other backends as well such as Postgresql.
 
 
 The reasons outlined by both Clint and Mike are why we won't be attempting 
 this until we are happy with our functional test suite. But once we are 
 happy dropping SQLite is on the table. The way I see it the functional 
 tests should be performed against a real keystone server, even if it is one 
 spun up for testing specifically.
 
 Per test db 

Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Mike Bayer



On 4/6/15 12:49 PM, David Stanek wrote:


Exactly. This is the direction I have been going. Functional tests are 
written using the public APIs using the client.


I would also add that I don't like that the Keystone unit tests are so 
database heavy. I would not want MySQL or ant RDBMS to be a 
requirement for running the tests.


is that because you'd prefer that the unit tests were more isolated, or 
just that an external service is being used?


I've done some work with extensive mocking of SQL databases; 
specifically mocking at the ORM level.  It is nice when you get it to 
run, but it's also a much bigger job to write fine-grained mocks like 
that, the mocks can be brittle in relation to the code they're 
targeting, and you also need to come up with some solution to actually 
functional test your database access code.


I tend to think that having a mysqld service running is the lesser of 
two evils and you get a lot more code coverage by going all the way out 
to the DB.






On Mon, Apr 6, 2015, 12:42 Morgan Fainberg morgan.fainb...@gmail.com 
mailto:morgan.fainb...@gmail.com wrote:




 On Apr 6, 2015, at 09:20, Mike Bayer mba...@redhat.com
mailto:mba...@redhat.com wrote:



 On 4/6/15 12:06 PM, Clint Byrum wrote:
 Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08 -0700:
 On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
 I am looking forward to the Liberty cycle and seeing the
special casing we
 do for SQLite in our migrations (and elsewhere). My
inclination is that we
 should (similar to the deprecation of eventlet) deprecate
support for
 SQLite in Keystone. In Liberty we will have a full functional
test suite
 that can (and will) be used to validate everything against
much more real
 environments instead of in-process “eventlet-like”
test-keystone-services;
 the “Restful test cases” will no longer be part of the
standard unit tests
 (as they are functional testing). With this change I’m
inclined to say
 SQLite (being the non-production usable DB) what it is we
should look at
 dropping migration support for SQLite and the custom
work-arounds.

 Most deployers and developers (as far as I know) use devstack
and MySQL or
 Postgres to really suss out DB interactions.

 I am looking for feedback from the community on the general
stance for
 SQLite, and more specifically the benefit (if any) of
supporting it in
 Keystone.
 +1. Drop it and clean up tons of code used for support of
sqlite only.

 Doing tests with mysql is as easy, as with sqlite (mysqladmin
drop -f;
 mysqladmin create for reset), and using it by default will
finally make
 people test their code on real rdbmses.
 Please please please be careful with that and make sure the
database
 name is _always_ random in tests... or even better, write a
fixture to
 spin up a mysqld inside a private tempdir. That would be a
really cool
 thing for oslo.db to provide actually.

 I'm just thinking some poor sap runs the test suite with the wrong
 .my.cnf in the wrong place and poof there went keystone's db.
 The standard approach here is that tests based on the oslo.db
approach by default connect using a username openstack_citest on
localhost, which is then used to create databases of random names.
If you base your database tests on oslo.db, you get that right
now.   This username/host/etc is also configurable through
environment variables.  I don't see how my.cnf is involved in this
nor how it would impact someone's keystone database, unless we're
talking about tests that happen to load down and/or crash the
whole database server.

 spinning up a whole mysqld seems really heavy-handed and
unnecessary.  Not to mention the tests run on other backends as
well such as Postgresql.


The reasons outlined by both Clint and Mike are why we won't be
attempting this until we are happy with our functional test suite.
But once we are happy dropping SQLite is on the table. The way I
see it the functional tests should be performed against a real
keystone server, even if it is one spun up for testing specifically.

Per test db creation / other such stuff will be part of that
discussion.
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe:
openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 

Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread David Stanek
On Mon, Apr 6, 2015 at 2:41 PM, Mike Bayer mba...@redhat.com wrote:



 On 4/6/15 12:49 PM, David Stanek wrote:

 Exactly. This is the direction I have been going. Functional tests are
 written using the public APIs using the client.

 I would also add that I don't like that the Keystone unit tests are so
 database heavy. I would not want MySQL or ant RDBMS to be a requirement for
 running the tests.

 is that because you'd prefer that the unit tests were more isolated, or
 just that an external service is being used?


There are two types of testing that I'm interested in really promoting in
Keystone. I want to see functional tests that only use the published APIs
to trigger and observe behavior. I also want to see unit tests that are
small, fast and that test the business logic of the system.

I started working[1] on functional testing in the Kilo cycle. The spec[2]
talks about standing up Keystone in different configurations (MySQL, LDAP,
Federated, etc.) and then running a set of tests against that instance.
This will allow us the test any backend we want and confirm it works the
way we expect Keystone to work.

On the other hand I want the unit tests to be smaller and faster. The job
of the unit tests should be to test small isolated bits of code and help
guide/evaluate the code design. Except to test the SQL backends I don't see
a need for using a database and even then I'd like to get by without it.


 I've done some work with extensive mocking of SQL databases; specifically
 mocking at the ORM level.  It is nice when you get it to run, but it's also
 a much bigger job to write fine-grained mocks like that, the mocks can be
 brittle in relation to the code they're targeting, and you also need to
 come up with some solution to actually functional test your database access
 code.

 I tend to think that having a mysqld service running is the lesser of two
 evils and you get a lot more code coverage by going all the way out to the
 DB.



The simplicity of the Keystone design is actually very good for dealing
with this (controller - manager - backend). Since backends are where the
actually query work happens we can easily provide a fake for each subsystem
that we want to test. This would allow us the test the business rules in
the manager without a database. The reason that is good is that we'd
probably be better off requiring LDAP (if anything) for some of the
subsystems since that is what they are typically configured to use. I would
rather just leave that level of detail to the functional tests.

1.
https://review.openstack.org/#/q/status:open+project:openstack/keystone+branch:master+topic:functonal-testing,n,z
2. https://review.openstack.org/#/c/153300/l


-- 
David
blog: http://www.traceback.org
twitter: http://twitter.com/dstanek
www: http://dstanek.com
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Chen, Wei D
I am the another one who like the idea, let SQLite goes where it belongs to, we 
have already knew there is couples of limitation in SQLite, actually, it hides 
some issues in some cases. As to functional testing, MySQL or other popular 
RDBMS is the better candidate.

 

+1

 

Best Regards,

Dave Chen

 

From: Rodrigo Duarte [mailto:rodrigodso...@gmail.com] 
Sent: Sunday, April 05, 2015 2:47 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Keystone] SQLite support (migrations, 
work-arounds, and more), is it worth it?

 

yes please [2]

 

On Sat, Apr 4, 2015 at 1:07 PM, Raildo Mascena rail...@gmail.com wrote:

I totally agree, since this is not used in production and make the dev job more 
complicated.

@Henry If you want help with this, I would be glad to work with you to make 
this clean up.

 

On Sat, Apr 4, 2015 at 2:55 AM Henry Nash hen...@linux.vnet.ibm.com wrote:

Fully support this.  I, for one, volunteer to take on a lot of the work needed 
to clean up any our tests/environment to allow this to a happen. Hardly a month 
goes by without a fix having to be re-applied to our sql code to get round some 
problem that didn’t show up in original testing because SQLite is too 
promiscuous.

 

Henry

 

On 4 Apr 2015, at 01:55, Morgan Fainberg morgan.fainb...@gmail.com wrote:

 

I am looking forward to the Liberty cycle and seeing the special casing we do 
for SQLite in our migrations (and elsewhere). My inclination is that we should 
(similar to the deprecation of eventlet) deprecate support for SQLite in 
Keystone. In Liberty we will have a full functional test suite that can (and 
will) be used to validate everything against much more real environments 
instead of in-process “eventlet-like” test-keystone-services; the “Restful test 
cases” will no longer be part of the standard unit tests (as they are 
functional testing). With this change I’m inclined to say SQLite (being the 
non-production usable DB) what it is we should look at dropping migration 
support for SQLite and the custom work-arounds.

 

Most deployers and developers (as far as I know) use devstack and MySQL or 
Postgres to really suss out DB interactions.

 

I am looking for feedback from the community on the general stance for SQLite, 
and more specifically the benefit (if any) of supporting it in Keystone.

 

-- 
Morgan Fainberg

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

 

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 

Rodrigo Duarte Sousa

Senior Software Engineer at Advanced OpenStack Brazil

Distributed Systems Laboratory
MSc in Computer Science

Federal University of Campina Grande
Campina Grande, PB - Brazil
http:// http://lsd.ufcg.edu.br/%7Erodrigods rodrigods.com



smime.p7s
Description: S/MIME cryptographic signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Morgan Fainberg


 On Apr 6, 2015, at 09:20, Mike Bayer mba...@redhat.com wrote:
 
 
 
 On 4/6/15 12:06 PM, Clint Byrum wrote:
 Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08 -0700:
 On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
 I am looking forward to the Liberty cycle and seeing the special casing we
 do for SQLite in our migrations (and elsewhere). My inclination is that we
 should (similar to the deprecation of eventlet) deprecate support for
 SQLite in Keystone. In Liberty we will have a full functional test suite
 that can (and will) be used to validate everything against much more real
 environments instead of in-process “eventlet-like” test-keystone-services;
 the “Restful test cases” will no longer be part of the standard unit tests
 (as they are functional testing). With this change I’m inclined to say
 SQLite (being the non-production usable DB) what it is we should look at
 dropping migration support for SQLite and the custom work-arounds.
 
 Most deployers and developers (as far as I know) use devstack and MySQL or
 Postgres to really suss out DB interactions.
 
 I am looking for feedback from the community on the general stance for
 SQLite, and more specifically the benefit (if any) of supporting it in
 Keystone.
 +1. Drop it and clean up tons of code used for support of sqlite only.
 
 Doing tests with mysql is as easy, as with sqlite (mysqladmin drop -f;
 mysqladmin create for reset), and using it by default will finally make
 people test their code on real rdbmses.
 Please please please be careful with that and make sure the database
 name is _always_ random in tests... or even better, write a fixture to
 spin up a mysqld inside a private tempdir. That would be a really cool
 thing for oslo.db to provide actually.
 
 I'm just thinking some poor sap runs the test suite with the wrong
 .my.cnf in the wrong place and poof there went keystone's db.
 The standard approach here is that tests based on the oslo.db approach by 
 default connect using a username openstack_citest on localhost, which is then 
 used to create databases of random names. If you base your database tests on 
 oslo.db, you get that right now.   This username/host/etc is also 
 configurable through environment variables.  I don't see how my.cnf is 
 involved in this nor how it would impact someone's keystone database, unless 
 we're talking about tests that happen to load down and/or crash the whole 
 database server.
 
 spinning up a whole mysqld seems really heavy-handed and unnecessary.  Not to 
 mention the tests run on other backends as well such as Postgresql.
 

The reasons outlined by both Clint and Mike are why we won't be attempting this 
until we are happy with our functional test suite. But once we are happy 
dropping SQLite is on the table. The way I see it the functional tests should 
be performed against a real keystone server, even if it is one spun up for 
testing specifically. 

Per test db creation / other such stuff will be part of that discussion. 
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Mike Bayer



On 4/6/15 12:06 PM, Clint Byrum wrote:

Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08 -0700:

On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:

I am looking forward to the Liberty cycle and seeing the special casing we
do for SQLite in our migrations (and elsewhere). My inclination is that we
should (similar to the deprecation of eventlet) deprecate support for
SQLite in Keystone. In Liberty we will have a full functional test suite
that can (and will) be used to validate everything against much more real
environments instead of in-process “eventlet-like” test-keystone-services;
the “Restful test cases” will no longer be part of the standard unit tests
(as they are functional testing). With this change I’m inclined to say
SQLite (being the non-production usable DB) what it is we should look at
dropping migration support for SQLite and the custom work-arounds.

Most deployers and developers (as far as I know) use devstack and MySQL or
Postgres to really suss out DB interactions.

I am looking for feedback from the community on the general stance for
SQLite, and more specifically the benefit (if any) of supporting it in
Keystone.

+1. Drop it and clean up tons of code used for support of sqlite only.

Doing tests with mysql is as easy, as with sqlite (mysqladmin drop -f;
mysqladmin create for reset), and using it by default will finally make
people test their code on real rdbmses.


Please please please be careful with that and make sure the database
name is _always_ random in tests... or even better, write a fixture to
spin up a mysqld inside a private tempdir. That would be a really cool
thing for oslo.db to provide actually.

I'm just thinking some poor sap runs the test suite with the wrong
.my.cnf in the wrong place and poof there went keystone's db.
The standard approach here is that tests based on the oslo.db approach 
by default connect using a username openstack_citest on localhost, which 
is then used to create databases of random names. If you base your 
database tests on oslo.db, you get that right now.   This 
username/host/etc is also configurable through environment variables.  I 
don't see how my.cnf is involved in this nor how it would impact 
someone's keystone database, unless we're talking about tests that 
happen to load down and/or crash the whole database server.


spinning up a whole mysqld seems really heavy-handed and unnecessary.  
Not to mention the tests run on other backends as well such as Postgresql.







__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread David Stanek
Exactly. This is the direction I have been going. Functional tests are
written using the public APIs using the client.

I would also add that I don't like that the Keystone unit tests are so
database heavy. I would not want MySQL or ant RDBMS to be a requirement for
running the tests.

On Mon, Apr 6, 2015, 12:42 Morgan Fainberg morgan.fainb...@gmail.com
wrote:



  On Apr 6, 2015, at 09:20, Mike Bayer mba...@redhat.com wrote:
 
 
 
  On 4/6/15 12:06 PM, Clint Byrum wrote:
  Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08 -0700:
  On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
  I am looking forward to the Liberty cycle and seeing the special
 casing we
  do for SQLite in our migrations (and elsewhere). My inclination is
 that we
  should (similar to the deprecation of eventlet) deprecate support for
  SQLite in Keystone. In Liberty we will have a full functional test
 suite
  that can (and will) be used to validate everything against much more
 real
  environments instead of in-process “eventlet-like”
 test-keystone-services;
  the “Restful test cases” will no longer be part of the standard unit
 tests
  (as they are functional testing). With this change I’m inclined to say
  SQLite (being the non-production usable DB) what it is we should look
 at
  dropping migration support for SQLite and the custom work-arounds.
 
  Most deployers and developers (as far as I know) use devstack and
 MySQL or
  Postgres to really suss out DB interactions.
 
  I am looking for feedback from the community on the general stance for
  SQLite, and more specifically the benefit (if any) of supporting it in
  Keystone.
  +1. Drop it and clean up tons of code used for support of sqlite only.
 
  Doing tests with mysql is as easy, as with sqlite (mysqladmin drop -f;
  mysqladmin create for reset), and using it by default will finally
 make
  people test their code on real rdbmses.
  Please please please be careful with that and make sure the database
  name is _always_ random in tests... or even better, write a fixture to
  spin up a mysqld inside a private tempdir. That would be a really cool
  thing for oslo.db to provide actually.
 
  I'm just thinking some poor sap runs the test suite with the wrong
  .my.cnf in the wrong place and poof there went keystone's db.
  The standard approach here is that tests based on the oslo.db approach
 by default connect using a username openstack_citest on localhost, which is
 then used to create databases of random names. If you base your database
 tests on oslo.db, you get that right now.   This username/host/etc is also
 configurable through environment variables.  I don't see how my.cnf is
 involved in this nor how it would impact someone's keystone database,
 unless we're talking about tests that happen to load down and/or crash the
 whole database server.
 
  spinning up a whole mysqld seems really heavy-handed and unnecessary.
 Not to mention the tests run on other backends as well such as Postgresql.
 

 The reasons outlined by both Clint and Mike are why we won't be attempting
 this until we are happy with our functional test suite. But once we are
 happy dropping SQLite is on the table. The way I see it the functional
 tests should be performed against a real keystone server, even if it is one
 spun up for testing specifically.

 Per test db creation / other such stuff will be part of that discussion.
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-06 Thread Clint Byrum
Excerpts from Boris Bobrov's message of 2015-04-03 18:29:08 -0700:
 On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
  I am looking forward to the Liberty cycle and seeing the special casing we
  do for SQLite in our migrations (and elsewhere). My inclination is that we
  should (similar to the deprecation of eventlet) deprecate support for
  SQLite in Keystone. In Liberty we will have a full functional test suite
  that can (and will) be used to validate everything against much more real
  environments instead of in-process “eventlet-like” test-keystone-services;
  the “Restful test cases” will no longer be part of the standard unit tests
  (as they are functional testing). With this change I’m inclined to say
  SQLite (being the non-production usable DB) what it is we should look at
  dropping migration support for SQLite and the custom work-arounds.
  
  Most deployers and developers (as far as I know) use devstack and MySQL or
  Postgres to really suss out DB interactions.
  
  I am looking for feedback from the community on the general stance for
  SQLite, and more specifically the benefit (if any) of supporting it in
  Keystone.
 
 +1. Drop it and clean up tons of code used for support of sqlite only.
 
 Doing tests with mysql is as easy, as with sqlite (mysqladmin drop -f; 
 mysqladmin create for reset), and using it by default will finally make 
 people test their code on real rdbmses.
 

Please please please be careful with that and make sure the database
name is _always_ random in tests... or even better, write a fixture to
spin up a mysqld inside a private tempdir. That would be a really cool
thing for oslo.db to provide actually.

I'm just thinking some poor sap runs the test suite with the wrong
.my.cnf in the wrong place and poof there went keystone's db.

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-04 Thread Raildo Mascena
I totally agree, since this is not used in production and make the dev job
more complicated.

@Henry If you want help with this, I would be glad to work with you to make
this clean up.

On Sat, Apr 4, 2015 at 2:55 AM Henry Nash hen...@linux.vnet.ibm.com wrote:

 Fully support this.  I, for one, volunteer to take on a lot of the work
 needed to clean up any our tests/environment to allow this to a happen.
 Hardly a month goes by without a fix having to be re-applied to our sql
 code to get round some problem that didn’t show up in original testing
 because SQLite is too promiscuous.

 Henry

 On 4 Apr 2015, at 01:55, Morgan Fainberg morgan.fainb...@gmail.com
 wrote:

 I am looking forward to the Liberty cycle and seeing the special casing we
 do for SQLite in our migrations (and elsewhere). My inclination is that we
 should (similar to the deprecation of eventlet) deprecate support for
 SQLite in Keystone. In Liberty we will have a full functional test suite
 that can (and will) be used to validate everything against much more real
 environments instead of in-process “eventlet-like” test-keystone-services;
 the “Restful test cases” will no longer be part of the standard unit tests
 (as they are functional testing). With this change I’m inclined to say
 SQLite (being the non-production usable DB) what it is we should look at
 dropping migration support for SQLite and the custom work-arounds.

 Most deployers and developers (as far as I know) use devstack and MySQL or
 Postgres to really suss out DB interactions.

 I am looking for feedback from the community on the general stance for
 SQLite, and more specifically the benefit (if any) of supporting it in
 Keystone.

 --
 Morgan Fainberg
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-04 Thread Rodrigo Duarte
yes please [2]

On Sat, Apr 4, 2015 at 1:07 PM, Raildo Mascena rail...@gmail.com wrote:

 I totally agree, since this is not used in production and make the dev job
 more complicated.

 @Henry If you want help with this, I would be glad to work with you to
 make this clean up.

 On Sat, Apr 4, 2015 at 2:55 AM Henry Nash hen...@linux.vnet.ibm.com
 wrote:

 Fully support this.  I, for one, volunteer to take on a lot of the work
 needed to clean up any our tests/environment to allow this to a happen.
 Hardly a month goes by without a fix having to be re-applied to our sql
 code to get round some problem that didn’t show up in original testing
 because SQLite is too promiscuous.

 Henry

 On 4 Apr 2015, at 01:55, Morgan Fainberg morgan.fainb...@gmail.com
 wrote:

 I am looking forward to the Liberty cycle and seeing the special casing
 we do for SQLite in our migrations (and elsewhere). My inclination is that
 we should (similar to the deprecation of eventlet) deprecate support for
 SQLite in Keystone. In Liberty we will have a full functional test suite
 that can (and will) be used to validate everything against much more real
 environments instead of in-process “eventlet-like” test-keystone-services;
 the “Restful test cases” will no longer be part of the standard unit tests
 (as they are functional testing). With this change I’m inclined to say
 SQLite (being the non-production usable DB) what it is we should look at
 dropping migration support for SQLite and the custom work-arounds.

 Most deployers and developers (as far as I know) use devstack and MySQL
 or Postgres to really suss out DB interactions.

 I am looking for feedback from the community on the general stance for
 SQLite, and more specifically the benefit (if any) of supporting it in
 Keystone.

 --
 Morgan Fainberg
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org
 ?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:
 unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Rodrigo Duarte Sousa
Senior Software Engineer at Advanced OpenStack Brazil
Distributed Systems Laboratory
MSc in Computer Science
Federal University of Campina Grande
Campina Grande, PB - Brazil
http://rodrigods.com http://lsd.ufcg.edu.br/%7Erodrigods
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-03 Thread Boris Bobrov
On Saturday 04 April 2015 03:55:59 Morgan Fainberg wrote:
 I am looking forward to the Liberty cycle and seeing the special casing we
 do for SQLite in our migrations (and elsewhere). My inclination is that we
 should (similar to the deprecation of eventlet) deprecate support for
 SQLite in Keystone. In Liberty we will have a full functional test suite
 that can (and will) be used to validate everything against much more real
 environments instead of in-process “eventlet-like” test-keystone-services;
 the “Restful test cases” will no longer be part of the standard unit tests
 (as they are functional testing). With this change I’m inclined to say
 SQLite (being the non-production usable DB) what it is we should look at
 dropping migration support for SQLite and the custom work-arounds.
 
 Most deployers and developers (as far as I know) use devstack and MySQL or
 Postgres to really suss out DB interactions.
 
 I am looking for feedback from the community on the general stance for
 SQLite, and more specifically the benefit (if any) of supporting it in
 Keystone.

+1. Drop it and clean up tons of code used for support of sqlite only.

Doing tests with mysql is as easy, as with sqlite (mysqladmin drop -f; 
mysqladmin create for reset), and using it by default will finally make 
people test their code on real rdbmses.

-- 
С наилучшими пожеланиями,
Boris

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-03 Thread Monty Taylor
On 04/03/2015 08:55 PM, Morgan Fainberg wrote:
 I am looking forward to the Liberty cycle and seeing the special
 casing we do for SQLite in our migrations (and elsewhere). My
 inclination is that we should (similar to the deprecation of
 eventlet) deprecate support for SQLite in Keystone. In Liberty we
 will have a full functional test suite that can (and will) be used to
 validate everything against much more real environments instead of
 in-process “eventlet-like” test-keystone-services; the “Restful test
 cases” will no longer be part of the standard unit tests (as they are
 functional testing). With this change I’m inclined to say SQLite
 (being the non-production usable DB) what it is we should look at
 dropping migration support for SQLite and the custom work-arounds.
 
 Most deployers and developers (as far as I know) use devstack and
 MySQL or Postgres to really suss out DB interactions.
 
 I am looking for feedback from the community on the general stance
 for SQLite, and more specifically the benefit (if any) of supporting
 it in Keystone.

Killstabstabstabdiekillkill

(yes please)

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Keystone] SQLite support (migrations, work-arounds, and more), is it worth it?

2015-04-03 Thread Henry Nash
Fully support this.  I, for one, volunteer to take on a lot of the work needed 
to clean up any our tests/environment to allow this to a happen. Hardly a month 
goes by without a fix having to be re-applied to our sql code to get round some 
problem that didn’t show up in original testing because SQLite is too 
promiscuous.

Henry
 On 4 Apr 2015, at 01:55, Morgan Fainberg morgan.fainb...@gmail.com wrote:
 
 I am looking forward to the Liberty cycle and seeing the special casing we do 
 for SQLite in our migrations (and elsewhere). My inclination is that we 
 should (similar to the deprecation of eventlet) deprecate support for SQLite 
 in Keystone. In Liberty we will have a full functional test suite that can 
 (and will) be used to validate everything against much more real environments 
 instead of in-process “eventlet-like” test-keystone-services; the “Restful 
 test cases” will no longer be part of the standard unit tests (as they are 
 functional testing). With this change I’m inclined to say SQLite (being the 
 non-production usable DB) what it is we should look at dropping migration 
 support for SQLite and the custom work-arounds.
 
 Most deployers and developers (as far as I know) use devstack and MySQL or 
 Postgres to really suss out DB interactions.
 
 I am looking for feedback from the community on the general stance for 
 SQLite, and more specifically the benefit (if any) of supporting it in 
 Keystone.
 
 -- 
 Morgan Fainberg
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev