cool.  :)

*Will STEVENS*
Lead Developer

*CloudOps* *| *Cloud Solutions Experts
420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6
w cloudops.com *|* tw @CloudOps_

On Wed, May 25, 2016 at 9:45 PM, Syed Mushtaq <syed1.mush...@gmail.com>
wrote:

> Nope. I think they should all be XenServer (they were Citrix earlier) I
> plan to clean that up too.
>
> -Syed
>
> On Wed, May 25, 2016 at 9:43 PM, Will Stevens <williamstev...@gmail.com>
> wrote:
>
> > Is there a reason some are prefixed with 'Xs' and others are prefixed
> with
> > 'XenServer'?
> > On May 25, 2016 9:41 PM, "Will Stevens" <williamstev...@gmail.com>
> wrote:
> >
> > > Ya. I didn't know either and made the same mistake. :)
> > > On May 25, 2016 9:40 PM, "Syed Mushtaq" <syed1.mush...@gmail.com>
> wrote:
> > >
> > >> Aah I did not know that. Thanks Will .. here is the link
> > >> http://i.imgur.com/5B55XMB.png
> > >>
> > >> On Wed, May 25, 2016 at 6:37 PM, Will Stevens <
> williamstev...@gmail.com
> > >
> > >> wrote:
> > >>
> > >> > Attachments don't work. You will have to host it publicly and then
> > post
> > >> a
> > >> > link to it.
> > >> > On May 25, 2016 4:28 PM, "Syed Ahmed" <sah...@cloudops.com> wrote:
> > >> >
> > >> > > Forgot to attach screenshot
> > >> > >
> > >> > > On Wed, May 25, 2016 at 4:09 PM, Syed Ahmed <sah...@cloudops.com>
> > >> wrote:
> > >> > >
> > >> > >> Thanks Rafael,
> > >> > >>
> > >> > >> Here is how I am doing. You can see the tree in the screenshot
> > >> attached.
> > >> > >> I have started with storage and extracted the storage commands
> out
> > of
> > >> > >> CitrixResourceBase (I've renamed it to XenServerResourceBase).
> This
> > >> is
> > >> > the
> > >> > >> file for refrence. Let me know what you think.
> > >> > >>
> > >> > >>
> > >> > >>
> > >> >
> > >>
> >
> https://github.com/syed/cloudstack/blob/ca2d1469f991727515d9b71a790411d36eb60fdc/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/storage/XenServerStorageResource.java
> > >> > >>
> > >> > >> It is a non-trivial refactor so may take some time but I think
> the
> > >> end
> > >> > >> result would be very good for everyone.
> > >> > >>
> > >> > >>
> > >> > >>
> > >> > >> On Wed, May 25, 2016 at 11:22 AM, Rafael Weingärtner <
> > >> > >> rafaelweingart...@gmail.com> wrote:
> > >> > >>
> > >> > >>> Hi Syed,
> > >> > >>> That is a great job.
> > >> > >>> I would only suggest breaking the commons a little bit more
> > between
> > >> > >>> “monitoring” and “common”. On the monitoring side, we could have
> > >> host
> > >> > >>> monitoring, VMs monitoring, VMs' status checks (running,
> stopped,
> > >> and
> > >> > >>> others) and maybe other tasks that aim to monitor/check a
> resource
> > >> > >>> state/information.
> > >> > >>>
> > >> > >>> About the singletons you extracted, I do not see a need for an
> > >> > interface
> > >> > >>> right now (maybe I am overlooking the need); in the future if
> the
> > >> need
> > >> > >>> for
> > >> > >>> interfaces appears, we can create some interfaces and use them
> > into
> > >> the
> > >> > >>> singletons you created.
> > >> > >>>
> > >> > >>>
> > >> > >>> On Wed, May 25, 2016 at 12:10 PM, Syed Mushtaq <
> > >> > syed1.mush...@gmail.com>
> > >> > >>> wrote:
> > >> > >>>
> > >> > >>> > Hey Guys,
> > >> > >>> >
> > >> > >>> > To give you an update, I've identified and categorized the
> > >> functions
> > >> > in
> > >> > >>> > CitrixResourceBase into 4 categories
> > >> > >>> >
> > >> > >>> > 1) common: These deal with the host as a whole (example
> > >> getHostInfo,
> > >> > >>> > callPlugin, connection pool  etc)
> > >> > >>> > 2) compute: Dealing with operations on VMs (start,stop,
> reboot,
> > >> > update
> > >> > >>> etc)
> > >> > >>> > 3) storage: Dealing with storage operations (creating VDI,
> > >> attaching
> > >> > >>> to VM,
> > >> > >>> > SR operations)
> > >> > >>> > 4) network: OVS / PIF / VIF operations
> > >> > >>> >
> > >> > >>> > I've created singleton classes for each and slowly moving the
> > >> > >>> functionality
> > >> > >>> > there. These singletons don't have a base class nor do they
> > >> implement
> > >> > >>> an
> > >> > >>> > interface. I don't know what the best practice is. One
> question
> > >> that
> > >> > I
> > >> > >>> have
> > >> > >>> > is, should I create an interface for them or use some existing
> > >> > >>> interface?
> > >> > >>> >
> > >> > >>> > Thanks,
> > >> > >>> > -Syed
> > >> > >>> >
> > >> > >>> >
> > >> > >>> > On Fri, May 20, 2016 at 9:58 AM, Syed Mushtaq <
> > >> > syed1.mush...@gmail.com
> > >> > >>> >
> > >> > >>> > wrote:
> > >> > >>> >
> > >> > >>> > > Thanks guys for the Ideas. I will open a JIRA ticket and
> start
> > >> > >>> working on
> > >> > >>> > > it.
> > >> > >>> > >
> > >> > >>> > > -Syed
> > >> > >>> > >
> > >> > >>> > >
> > >> > >>> > > On Thu, May 19, 2016 at 7:57 PM, Rafael Weingärtner <
> > >> > >>> > > rafaelweingart...@gmail.com> wrote:
> > >> > >>> > >
> > >> > >>> > >> Hi Syed,
> > >> > >>> > >> That is a great idea; however, it is a very hard task.
> > >> > >>> > >> The idea of Tim is great; actually, we already have some
> sort
> > >> of
> > >> > >>> > hierarchy
> > >> > >>> > >> that is used in “CitrixResourceBase.java”.
> > >> > >>> > >> I would suggest you first removing the unused code, unused
> > >> > >>> variable, and
> > >> > >>> > >> duplicate methods; that would be one PR. You can use a tool
> > >> called
> > >> > >>> > >> UCdetector to find unused code. To find duplicated code you
> > can
> > >> > use
> > >> > >>> PMD.
> > >> > >>> > >>
> > >> > >>> > >> One very good example of code duplicity are the methods
> > called
> > >> > >>> > >>
> > >> > >>> > >>
> > >> > >>> >
> > >> > >>>
> > >> >
> > >>
> >
> “com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.callHostPluginAsync(…)”.
> > >> > >>> > >>
> > >> > >>> > >> After you have cleaned the class, I suggest you analyzing
> > where
> > >> > each
> > >> > >>> > >> remaining method is used and then look for the proper place
> > to
> > >> put
> > >> > >>> them.
> > >> > >>> > >> It might be a good idea on separating between singletons
> that
> > >> are
> > >> > >>> > >> responsible for well-defined tasks such as managing
> storage,
> > >> > >>> networking,
> > >> > >>> > >> VMs creating and deletion, VMs monitoring and others.
> > >> > >>> > >>
> > >> > >>> > >> If you need any help, please do not hesitate on asking for
> > our
> > >> > help.
> > >> > >>> > >>
> > >> > >>> > >>
> > >> > >>> > >> On Thu, May 19, 2016 at 4:50 PM, Daan Hoogland <
> > >> > >>> daan.hoogl...@gmail.com
> > >> > >>> > >
> > >> > >>> > >> wrote:
> > >> > >>> > >>
> > >> > >>> > >> > Syed,
> > >> > >>> > >> >
> > >> > >>> > >> > gogogo. actually it has shrunk to 5k lines since 2012 ;)
> > >> > >>> > >> >
> > >> > >>> > >> > I like your initiative and initial direction. A lot of
> > small
> > >> > >>> steps to
> > >> > >>> > >> > improve the blob have been taken and I would sugest to
> keep
> > >> > going
> > >> > >>> in
> > >> > >>> > >> small
> > >> > >>> > >> > steps.
> > >> > >>> > >> >
> > >> > >>> > >> > On Thu, May 19, 2016 at 9:44 PM, Tim Mackey <
> > >> tmac...@gmail.com>
> > >> > >>> > wrote:
> > >> > >>> > >> >
> > >> > >>> > >> > > +1
> > >> > >>> > >> > >
> > >> > >>> > >> > > When I went through this last time, not only was it
> hard
> > to
> > >> > >>> > understand
> > >> > >>> > >> > the
> > >> > >>> > >> > > flows, but the XenServer version management was a pain.
> > >> Would
> > >> > >>> > suggest
> > >> > >>> > >> > > creating a base class which always works (i.e. is
> > >> independent
> > >> > of
> > >> > >>> > >> > XenServer
> > >> > >>> > >> > > version) for core functions. Then add in that which
> > exists
> > >> > for a
> > >> > >>> > >> specific
> > >> > >>> > >> > > version. Should help greatly with testing IMO.
> > >> > >>> > >> > >
> > >> > >>> > >> > > -tim
> > >> > >>> > >> > >
> > >> > >>> > >> > > On Thu, May 19, 2016 at 2:37 PM, Syed Mushtaq <
> > >> > >>> > >> syed1.mush...@gmail.com>
> > >> > >>> > >> > > wrote:
> > >> > >>> > >> > >
> > >> > >>> > >> > > > Hi All,
> > >> > >>> > >> > > >
> > >> > >>> > >> > > > I would like to refactor CitrixResourceBase class
> which
> > >> is
> > >> > >>> > >> responsible
> > >> > >>> > >> > > for
> > >> > >>> > >> > > > communicating with Xenserver. It has grown too long
> > (>5K
> > >> > >>> lines)
> > >> > >>> > and
> > >> > >>> > >> has
> > >> > >>> > >> > > > absolutely no testing.
> > >> > >>> > >> > > >
> > >> > >>> > >> > > > In my first pass I want to separate out the
> > functionality
> > >> > buy
> > >> > >>> the
> > >> > >>> > >> > > subsystem
> > >> > >>> > >> > > > it targets (compute, storage, network etc) and will
> go
> > on
> > >> > from
> > >> > >>> > >> there.
> > >> > >>> > >> > > What
> > >> > >>> > >> > > > do you think? Is anyone working on this currently?
> > >> > >>> > >> > > >
> > >> > >>> > >> > > > Thanks,
> > >> > >>> > >> > > > -Syed
> > >> > >>> > >> > > >
> > >> > >>> > >> > >
> > >> > >>> > >> >
> > >> > >>> > >> >
> > >> > >>> > >> >
> > >> > >>> > >> > --
> > >> > >>> > >> > Daan
> > >> > >>> > >> >
> > >> > >>> > >>
> > >> > >>> > >>
> > >> > >>> > >>
> > >> > >>> > >> --
> > >> > >>> > >> Rafael Weingärtner
> > >> > >>> > >>
> > >> > >>> > >
> > >> > >>> > >
> > >> > >>> >
> > >> > >>>
> > >> > >>>
> > >> > >>>
> > >> > >>> --
> > >> > >>> Rafael Weingärtner
> > >> > >>>
> > >> > >>
> > >> > >>
> > >> > >
> > >> >
> > >>
> > >
> >
>

Reply via email to