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