class NetControllerConnector(object): def __init__(self): self._properties = {} def _load_prop_dict(self, target, prop): for property in prop: if not target.has_key(property): continue if type(prop[property]) is dict: self._load_prop_dict(target[property], prop[property]) else: target[property] = prop[property] def is_connected(self): return False def connect(self): return def get_properties(self): return self._properties def load_properties(self, properties): self._load_prop_dict(self._properties, properties) def get_vlans_list(self): raise NotImplementedError() def get_entities_on_vlan(self, vlanid): raise NotImplementedError() def deploy_monkey(self, vlanid): raise NotImplementedError() def disconnect(self): return class NetControllerJob(object): connector = NetControllerConnector def __init__(self): self._properties = { # property: [value, enumerating_function] } def get_job_properties(self): return self._properties def set_job_properties(self, properties): return {} def run(self): raise NotImplementedError()