def copyFrom(self, srcobj, _ignore_atts=None): if _ignore_atts is None: _ignore_atts = [] _srcobj = srcobj # Check if this object is derived from the source object, then the copy # will not throw away information if not hasattr(_srcobj, '__class__') and not inspect.isclass(_srcobj.__class__): raise GangaValueError("Can't copyFrom a non-class object: %s isclass: %s" % (str(_srcobj), str(inspect.isclass(_srcobj)))) if not isinstance(self, _srcobj.__class__) and not isinstance(_srcobj, self.__class__): raise GangaValueError("copyFrom: Cannot copy from %s to %s!" % (getName(_srcobj), getName(self))) if not hasattr(self, '_schema'): logger.debug("No Schema found for myself") return if self._schema is None and _srcobj._schema is None: logger.debug("Schema object for one of these classes is None!") return if _srcobj._schema is None: self._schema = None return self._actually_copyFrom(_srcobj, _ignore_atts) ## Fix some objects losing parent knowledge src_dict = srcobj.__dict__ for key, val in src_dict.iteritems(): this_attr = getattr(srcobj, key) if isinstance(this_attr, Node) and key not in Node._ref_list: #logger.debug("k: %s Parent: %s" % (str(key), (srcobj))) this_attr._setParent(srcobj)
def __init__(self, **kwargs): """ Constructs a dirac proxy requirement and assigns the default group if none is provided """ super(DiracProxy, self).__init__(**kwargs) if self.group is None: raise GangaValueError('DIRAC Proxy `group` is not set. Set this in ~/.gangarc in `[defaults_DiracProxy]/group`')
_schema.datadict['encodeDefaultProxyFileName'] = \ SimpleItem(defvalue=True, doc='Should the proxy be generated with the group encoded onto the end of the proxy filename') _category = 'CredentialRequirement' info_class = DiracProxyInfo def __init__(self, **kwargs): """ Constructs a dirac proxy requirement and assigns the default group if none is provided """ super(DiracProxy, self).__init__(**kwargs) if self.group is None: raise GangaValueError('DIRAC Proxy `group` is not set. Set this in ~/.gangarc in `[defaults_DiracProxy]/group`') def encoded(self): """ This returns the encoding used to store a unique DIRAC proxy for each group """ my_config = getConfig('defaults_DiracProxy') default_group = my_config['group'] if (my_config['encodeDefaultProxyFileName'] and self.group == default_group) or self.group != default_group: return ':'.join(requirement for requirement in [self.group] if requirement) # filter out the empties else: return '' # A single global check for the DIRAC group setting. This will bail out early and safely during plugin loading. if getConfig('defaults_DiracProxy')['group'] is None: raise GangaValueError('DIRAC Proxy `group` is not set. Set this in ~/.gangarc in `[defaults_DiracProxy]/group`')