You are probably getting this error because you are trying to call:
Host.enableMaintenance(client)

Check my examples above for how to call it.

Sorry I am on my phone, so I am not very efficient with my phone and cant
civet you better details. :)
On Apr 30, 2016 8:23 AM, "Will Stevens" <williamstev...@gmail.com> wrote:

> Here is a pretty good explanation.
>
>
> http://stackoverflow.com/questions/136097/what-is-the-difference-between-staticmethod-and-classmethod-in-python
>
> I am guessing that both exist because the function is called both with a
> host instance and with the class itself.
>
> Class instance example: `h.enableMaintenance(client)`
>
> Class example: `Host.enableMaintenance(client, 1)`
>
> In both cases the first parameter is implicitly `h` and `Host`
> respectively.
>
> I am not sure why we need both (because I am not familiar with how this
> code is called), but method overloading is definitely valid in python.
>
> On Apr 30, 2016 1:08 AM, "Tutkowski, Mike" <mike.tutkow...@netapp.com>
> wrote:
> >
> > Hi everyone,
> >
> >
> > I received an error when trying to invoke the instance version of
> enableMaintenance (below).
> >
> >
> > 'TypeError: enableMaintenance() takes exactly 3 arguments (2 given)\n']
> >
> >
> > I looked at base.py and it has the following with regards to maintenance
> mode for hosts:
> >
> >
> >     def enableMaintenance(self, apiclient):
> >
> >         """enables maintenance mode Host"""
> >
> >
> >         cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd()
> >
> >         cmd.id = self.id
> >
> >         return apiclient.prepareHostForMaintenance(cmd)
> >
> >
> >     @classmethod
> >
> >     def enableMaintenance(cls, apiclient, id):
> >
> >         """enables maintenance mode Host"""
> >
> >
> >         cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd()
> >
> >         cmd.id = id
> >
> >         return apiclient.prepareHostForMaintenance(cmd)
> >
> >
> > Now, I definitely have a lot more Java experience than Python, but - as
> far as I know - having two methods with the same name such as this (even if
> one is an instance method and the other is a class method) is not really
> "permitted" in Python.
> >
> >
> > I mean, technically it's permitted, but the second one will override the
> first one.
> >
> >
> > Can any of our Python people comment on this?
> >
> >
> > I was thinking I'd remove the class method (assuming my knowledge here
> regarding this topic is correct).
> >
> >
> > Thanks!
> >
> > Mike
> >
> >
> >
>

Reply via email to