cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugo Trippaers <h...@trippaers.nl>
Subject Re: developers and mysql
Date Thu, 27 Feb 2014 08:25:58 GMT

On 27 feb. 2014, at 09:09, Alex Huang <Alex.Huang@citrix.com> wrote:

> Abhi,
> 
> It's not licensing issue that troubles me.  It's the fact that mysql's been made a compile
dependency when it wasn't before.  It encourages people to adopt more mysql functionality
into the cloudstack code.  Eventually that means we get more and more tied in with mysql once
the trend has started.

Agreed, that is a risk. We need to keep paying attention that new additions don’t introduce
something we are not comfortable with. We maybe could make a jenkins check that will alert
if the dependency list changes from a previous compile. Should be possible with a little creative
scripting.

> 
> I would prefer the entire file is not in CloudStack as it really has nothing to do with
CloudStack itself.  But, I'm fine with Hugo suggestion of this being put into pluginin enabled
by noredist and mysql is only dependent upon in that plugin's pom.xml.    

My reasoning here is that somebody took the time and effort to write something to either improve
cloudstack or fix a problem. We should try to include this if we reasonably can, every contribution
is valuable. That said i would be curious to know if anyone is relying on this at the moment.

> 
> --Alex
> 
>> -----Original Message-----
>> From: Abhinandan Prateek [mailto:Abhinandan.Prateek@citrix.com]
>> Sent: Wednesday, February 26, 2014 9:54 PM
>> To: dev@cloudstack.apache.org; Damoder Reddy
>> Subject: Re: developers and mysql
>> 
>> Immediately if there are no specific licensing issues we should maintain the
>> status-quo.
>> The fact is that some other HA solutions will not work as all the schema
>> related scripts are mysql engine specific.
>> 
>> When we decide to move the mysql dependency out of cloudstack we
>> should do it for all such dependencies.
>> If there is an agreement here we can file a ticket to track this.
>> 
>> -abhi
>> 
>> 
>> On 27/02/14 11:16 am, "Abhinandan Prateek"
>> <Abhinandan.Prateek@citrix.com>
>> wrote:
>> 
>>> StaticStrategy is overriding the Mysql¹s HA Strategy. So it is more a
>>> part of the mysql jdbc driver providing a specific strategy that works
>>> as per the documented HA procedure.
>>> 
>>> I think moving it to a separate github project that generates the
>>> additional mysql connector jar should be ok (any licensing issues).
>>> We can then document that anyone configuring DB-HA as per the
>> suggested
>>> procedure should download this and add it to the classpath.
>>> 
>>> -abhi
>>> 
>>> 
>>> On 27/02/14 10:54 am, "Alex Huang" <Alex.Huang@citrix.com> wrote:
>>> 
>>>> Hi Damoder,
>>>> 
>>>> I don't think I follow.  There's clearly compile dependency on mysql
>>>> in StaticStrategy.
>>>> 
>>>> To me, when I look at StaticStartegy, it makes sense to move that into
>>>> separate project in github and reference people to it if they want to
>>>> use the specific setup outlined in the DB HA wiki.  That to me would
>>>> make it a runtime dependency only.
>>>> 
>>>> --Alex
>>>> 
>>>>> -----Original Message-----
>>>>> From: Damoder Reddy
>>>>> Sent: Wednesday, February 26, 2014 9:20 PM
>>>>> To: Alex Huang; dev@cloudstack.apache.org
>>>>> Subject: RE: developers and mysql
>>>>> 
>>>>> Hi Alex,
>>>>> 
>>>>> 	The mysql dependency is on for only " StaticStrategy.java" as
>>>>> mentioned by you. And this is not used anywhere in the code base as a
>>>>> compile time dependency rather used as a run time dependency in
>>>>> db.properties. this will be passed to mysql driver as part of mysql
>>>>> Database  URL construction.
>>>>> 
>>>>> This StaticStrategy.java will become mute if we move out of mysql
>>>>> driver as it  has only runtime dependency.
>>>>> 
>>>>> Thanks & Regards
>>>>> Damodar/
>>>>> 
>>>>> -----Original Message-----
>>>>> From: Alex Huang
>>>>> Sent: Thursday, February 27, 2014 4:13 AM
>>>>> To: dev@cloudstack.apache.org
>>>>> Cc: Damoder Reddy
>>>>> Subject: RE: developers and mysql
>>>>> 
>>>>> @Hugo
>>>>> 
>>>>> The mysql scripts is a legacy of we used to dump the mysql db to
>>>>> create the  create-schema sql but it is at worst still a runtime
>>>>> dependency.  We should fix  it but I don't think it's as high a
>>>>> priority as the compile time dependency that  has been introduced.
>>>>> 
>>>>> @Damoder,
>>>>> 
>>>>> Can you take a look at StaticStrategy.java?  This is the only file
>>>>> that requires  mysql but I couldn't find anywhere in the code that
>>>>> references this class.  I  then looked at the bug and wiki and it
>>>>> also doesn't mentioned that  dependency on mysql has been added.  It
>>>>> doesn't make sense for  CloudStack to include this automatically.
>>>>> There are many ways to provide DB  HA and incorporate it into our
>>>>> code just limits the possibilities.  We can for  example document
>>>>> this as a way to do it in on the wiki for example but I just  don't
>>>>> see why we would use code to limit it.
>>>>> 
>>>>> Thanks.
>>>>> 
>>>>> --Alex
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: Hugo Trippaers [mailto:trippie@gmail.com]
>>>>>> Sent: Tuesday, February 25, 2014 2:02 PM
>>>>>> To: dev@cloudstack.apache.org
>>>>>> Cc: dev@cloudstack.apache.org
>>>>>> Subject: Re: developers and mysql
>>>>>> 
>>>>>> We are already pretty much locked in as all our database scripts
>>>>>> are MySQL specific. If we want to be neutral we should fix that.
>>>>>> 
>>>>>> Cheers,
>>>>>> 
>>>>>> Hugo
>>>>>> 
>>>>>> Sent from my iPhone
>>>>>> 
>>>>>>> On 25 feb. 2014, at 22:57, David Nalley <david@gnsa.us>
wrote:
>>>>>>> 
>>>>>>> git blame showed that it came from the HA/replication work from
>>>>> Damoder.
>>>>>>> I didn't speak up at the time, but I am really reluctant for
>>>>>>> mysql-specific features to sneak in and lock us in.
>>>>>>> 
>>>>>>>> On Tue, Feb 25, 2014 at 4:44 PM, Alex Huang
>>>>> <Alex.Huang@citrix.com>
>>>>>> wrote:
>>>>>>>> Who added the dependency on mysql for framework-db?  We
>>>>>>>> actually
>>>>>> worked hard to keep that depending on jdbc only.  It should not
>>>>> depend
>>>>>> on mysql.  We need to fix that.
>>>>>>>> 
>>>>>>>> --Alex
>>>>>>>> 
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Trippie [mailto:trippie@gmail.com] On Behalf Of
Hugo
>>>>>>>>> Trippaers
>>>>>>>>> Sent: Tuesday, February 25, 2014 3:34 AM
>>>>>>>>> To: <dev@cloudstack.apache.org>
>>>>>>>>> Subject: Re: developers and mysql
>>>>>>>>> 
>>>>>>>>> Heya,
>>>>>>>>> 
>>>>>>>>> Just pushed a change that will make the database work
again.
>>>>>>>>> :-)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> @Alex. The mysql jar used to be pulled in as a dependency
from
>>>>>>>>> framework- db. As the client target is responsible for
>>>>>>>>> building the war file for the packages including this
in the
>>>>>>>>> client pom would also put it in the war file and in the
packages.
>>>>>>>>> 
>>>>>>>>> I think i have an elegant solution, its now included
as a
>>>>>>>>> dependency for both the database deploy and the jetty:run
target.
>>>>>>>>> Which makes it effectively a "provided" library for the
>>>>>>>>> purpose
>>>>> of
>>>>>>>>> our maven build. See commit
>>>>>>>>> 8e6b86ae23dce802044388c5420ff61511d7115b and
>>>>> e883877c7a6f9df04b572afd4ee5f10d265bcc3a.
>>>>>>>>> 
>>>>>>>>> I can deploy a database and start the jetty:run target
now
>>>>> without
>>>>>>>>> any trouble (at least not more trouble than usual ;-)
)
>>>>>>>>> 
>>>>>>>>> My next step is to clean up some of the dependencies.
I think
>>>>> that
>>>>>>>>> only cloud-framework-db should have a provided dependency
on
>>>>> mysql.
>>>>>>>>> It's the only piece of source code that actually needs
the
>>>>>>>>> mysql driver to be present during compilation for the
optional
>>>>>>>>> HA configuration. There are some test classes that depend
on
>>>>> database
>>>>>>>>> functionally but those should be moved to an integration
test
>>>>>>>>> profile that could include the database driver, those
tests
>>>>>>>>> are disabled
>>>>>> anyway so they don't cause any trouble now.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Cheers,
>>>>>>>>> 
>>>>>>>>> Hugo
>>>>>>>>> 
>>>>>>>>>> On 25 feb. 2014, at 06:39, Rajani Karuturi
>>>>>>>>>> <Rajani.Karuturi@citrix.com>
>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Can we move the mysql-connector-java dependency to
the
>> parent
>>>>>>>>> POM(SOURCE-ROOT/pom.xml) and define it different scopes
for
>>>>>>>>> each
>>>>>> profile?
>>>>>>>>>> 
>>>>>>>>>> ie)
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> <profile>
>>>>>>>>>> <id>developer</id>
>>>>>>>>>>  <dependencies>
>>>>>>>>>>      <dependency>
>>>>>>>>>>        <groupId>mysql</groupId>
>>>>>>>>>>        <artifactId>mysql-connector-java</artifactId>
>>>>>>>>>>        <scope>compile</scope>
>>>>>>>>>>      </dependency>
>>>>>>>>>>  </dependencies>
>>>>>>>>>> </profile>
>>>>>>>>>> <profile>
>>>>>>>>>>  <id>production</id>
>>>>>>>>>>  <dependencies>
>>>>>>>>>>      <dependency>
>>>>>>>>>>        <groupId>mysql</groupId>
>>>>>>>>>>        <artifactId>mysql-connector-java</artifactId>
>>>>>>>>>>        <scope>provided</scope>
>>>>>>>>>>      </dependency>
>>>>>>>>>>  </dependencies>
>>>>>>>>>> </profile>
>>>>>>>>>> 
>>>>>>>>>> Thanks,
>>>>>>>>>> ~Rajani
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 24-Feb-2014, at 11:41 pm, Hugo Trippaers
>>>>>>>>> <trippie@gmail.com<mailto:trippie@gmail.com>>
wrote:
>>>>>>>>>> 
>>>>>>>>>> Indeed,
>>>>>>>>>> 
>>>>>>>>>> I've been fighting with maven all day to get the
development
>>>>>>>>>> profile to include MySql. No luck yet, will give
it another
>>>>>>>>>> shot tomorrow :-)
>>>>>>>>>> 
>>>>>>>>>> Hugo
>>>>>>>>>> 
>>>>>>>>>> Sent from my iPhone
>>>>>>>>>> 
>>>>>>>>>> On 24 feb. 2014, at 18:21, David Nalley
>>>>>>>>> <david@gnsa.us<mailto:david@gnsa.us>> wrote:
>>>>>>>>>> 
>>>>>>>>>> So it should be ok to include the jar in non-default
builds.
>>>>>>>>>> developer and deploydb are not what we'd expect a
normal user
>>>>>>>>>> to
>>>>>> consume.
>>>>>>>>>> (Anyone else's head spinning?)
>>>>>>>>>> 
>>>>>>>>>> --David
>>>>>>>>>> 
>>>>>>>>>> On Mon, Feb 24, 2014 at 11:44 AM, John Kinsella
>>>>>>>>> <jlk@stratosec.co<mailto:jlk@stratosec.co>>
wrote:
>>>>>>>>>> I created CLOUDSTACK-6157 over the weekend to track
this. Not
>>>>>>>>>> sure
>>>>>>>>> adding the jar after compile will help the deploydb target,
>>>>>>>>> but will give it a try this morning.
>>>>>>>>>> 
>>>>>>>>>> Could we set up the pom.xmls to use the jar for execution
if
>>>>> it's
>>>>>>>>>> found in
>>>>>>>>> the user/system classpaths while respecting the legal
>>>>> requirements?
>>>>>>>>>> 
>>>>>>>>>> Rayees' suggestion for cloud.spec makes sense for
the RPM
>>>>> builds,
>>>>>>>>>> but
>>>>>>>>> doesn't affect the developer issues.
>>>>>>>>>> 
>>>>>>>>>> -He who needs more maven experience
>>>>>>>>>> 
>>>>>>>>>> On Feb 24, 2014, at 7:36 AM, Hugo Trippaers
>>>>>>>>> <hugo@trippaers.nl<mailto:hugo@trippaers.nl>>
wrote:
>>>>>>>>>> 
>>>>>>>>>> Heya,
>>>>>>>>>> 
>>>>>>>>>> as the mysql dependency is now set to provided in
all the
>>>>>>>>>> poms
>>>>> to
>>>>>>>>>> fix our
>>>>>>>>> license compliancy the jetty target and the deployed
targets
>>>>>>>>> are not
>>>>>> working.
>>>>>>>>>> 
>>>>>>>>>> I'm trying to configure an optional profile to enable
those
>>>>>>>>>> targets to include
>>>>>>>>> the mysql dependency while executing, but so far no luck.
If
>>>>>>>>> anyone has some bright ideas on how to do this i'm all
ears.
>>>>>>>>> In the meantime the best solutions i've found to continue
>>>>>>>>> working is to copy the mysql jar file into the directory
>>>>>>>>> client/target/cloud-client-ui-4.4.0-SNAPSHOT/WEB-INF/lib/
by
>>>>>>>>> hand after running mvm install and before running the
jetty
>>>>>>>>> target (just don't
>>>>>> run mvn clean).
>>>>>>>>>> 
>>>>>>>>>> Hopefully a better solution in the near future.
>>>>>>>>>> 
>>>>>>>>>> Cheers,
>>>>>>>>>> 
>>>>>>>>>> Hugo
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>> 
>>> 
> 


Mime
View raw message