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 > > > > > > >