コード例 #1
0
 def handle(self, namespace):
     desc = ""
     if namespace.keytype:
         keytype = namespace.keytype
         desc = " ".join(namespace.key[1:])
     else:
         if len(namespace.key) == 1:
             keytype = 'single'
         else:
             keytype = namespace.key[1]
         desc = " ".join(namespace.key[2:])
     key = namespace.key[0].lower()
     keytype = self.validateKeytype(keytype)
     try:
         AllowedKey.objects.get(key=key)
     except:
         newak = AllowedKey(
             key=key, validtype=keytype, desc=desc,
             restrictedFlag=namespace.restricted,
             readonlyFlag=namespace.readonly,
             auditFlag=namespace.audit)
         newak.save()
     else:
         raise HostinfoException("Key already exists with that name: %s" % key)
     return None, 0
コード例 #2
0
    def handleKey(self, key):
        """
          <key>
            <name>appsla</name>
            <type>single</type>
            <readonlyFlag>True</readonlyFlag>
            <auditFlag>False</auditFlag>
            <restricted>
                <value>Foo</value>
            </restricted>
            <docpage>None</docpage>
            <desc>Application SLA</desc>
          </key>
        """

        name = ''
        keytype = ''
        restrictedKid = None
        restrictedFlag = False
        readonlyFlag = False
        auditFlag = True
        numericFlag = False
        docpage = ''
        desc = ''
        for kid in key.getchildren():
            if kid.tag == 'name':
                name = kid.text
            if kid.tag == 'type':
                keytype = self.validateKeytype(kid.text)
            if kid.tag == 'restricted':
                restrictedKid = kid
                restrictedFlag = True
            if kid.tag == 'readonlyFlag':
                readonlyFlag = (kid.text == 'True')
            if kid.tag == 'auditFlag':
                auditFlag = (kid.text == 'True')
            if kid.tag == 'numericFlag':
                numericFlag = (kid.text == 'True')
            if kid.tag == 'docpage':
                if kid.text:
                    docpage = kid.text.strip()
                if docpage == 'None':
                    docpage = None
            if kid.tag == 'desc':
                if kid.text:
                    desc = kid.text.strip()
        if not name:
            raise HostinfoException("No name specified for key")

        try:
            ak = AllowedKey.objects.get(key=name)
        except ObjectDoesNotExist:
            ak = AllowedKey(
                key=name, validtype=keytype, restrictedFlag=restrictedFlag,
                readonlyFlag=readonlyFlag, auditFlag=auditFlag,
                numericFlag=numericFlag,
                docpage=docpage, desc=desc)
            self.verbose("New key %s" % repr(ak))
            if not self.namespace.kiddingFlag:
                ak.save()
        else:
            change = False
            if ak.validtype != keytype:
                sys.stderr.write("Changing key types currently unsupported: %s\n" % name)
                sys.exit(1)
            if ak.restrictedFlag != restrictedFlag:
                self.verbose("Changing %s: restrictedFlag from %s to %s" % (name, ak.restrictedFlag, restrictedFlag))
                ak.restrictedFlag = restrictedFlag
                change = True
            if ak.readonlyFlag != readonlyFlag:
                self.verbose("Changing %s: readonlyFlag from %s to %s" % (name, ak.readonlyFlag, readonlyFlag))
                ak.readonlyFlag = readonlyFlag
                change = True
            if ak.auditFlag != auditFlag:
                self.verbose("Changing %s: auditFlag from %s to %s" % (name, ak.auditFlag, auditFlag))
                ak.auditFlag = auditFlag
                change = True
            if ak.docpage != docpage:
                self.verbose("Changing %s: docpage from '%s' to '%s'" % (name, ak.docpage, docpage))
                ak.docpage = docpage
                change = True
            if ak.desc != desc:
                self.verbose("Changing %s: desc from '%s' to '%s'" % (name, ak.desc, desc))
                ak.desc = desc
                change = True
            if change and not self.namespace.kiddingFlag:
                ak.save()

        if restrictedKid is not None:
            self.handleRestrictedKey(restrictedKid, ak)
コード例 #3
0
    def handleKey(self, key):
        """
          <key>
            <name>appsla</name>
            <type>single</type>
            <readonlyFlag>1</readonlyFlag>
            <auditFlag>1</auditFlag>
            <restricted>
                <value>Foo</value>
            </restricted>
            <docpage>None</docpage>
            <desc>Application SLA</desc>
          </key>
        """

        name = ''
        keytype = ''
        restrictedKid = None
        restrictedFlag = False
        readonlyFlag = False
        auditFlag = True
        docpage = ''
        desc = ''
        for kid in key.getchildren():
            if kid.tag == 'name':
                name = kid.text
            if kid.tag == 'type':
                keytype = self.validateKeytype(kid.text)
            if kid.tag == 'restricted':
                restrictedKid = kid
                restrictedFlag = True
            if kid.tag == 'readonlyFlag':
                readonlyFlag = (kid.text == '1')
            if kid.tag == 'auditFlag':
                auditFlag = (kid.text == '0')
            if kid.tag == 'docpage':
                if kid.text:
                    docpage = kid.text.strip()
                if docpage == 'None':
                    docpage = None
            if kid.tag == 'desc':
                if kid.text:
                    desc = kid.text.strip()
        if not name:
            raise HostinfoException("No name specified for key")

        try:
            ak = AllowedKey.objects.get(key=name)
        except ObjectDoesNotExist:
            ak = AllowedKey(key=name,
                            validtype=keytype,
                            restricted=restrictedFlag,
                            readonlyFlag=readonlyFlag,
                            auditFlag=auditFlag,
                            docpage=docpage,
                            desc=desc)
            self.verbose("New key %s" % repr(ak))
            if not self.namespace.kiddingFlag:
                ak.save()
        else:
            change = False
            if ak.validtype != keytype:
                self.verbose("Changing %s: keytype from %s to %s" %
                             (name, ak.get_validtype_display(ak.validtype),
                              ak.get_validtype_display(keytype)))
                ak.validtype = keytype
                change = True
            if ak.restrictedFlag != restrictedFlag:
                self.verbose("Changing %s: restrictedFlag from %s to %s" %
                             (name, ak.restrictedFlag, restrictedFlag))
                ak.restrictedFlag = restrictedFlag
                change = True
            if ak.readonlyFlag != readonlyFlag:
                self.verbose("Changing %s: readonlyFlag from %s to %s" %
                             (name, ak.readonlyFlag, readonlyFlag))
                ak.readonlyFlag = readonlyFlag
                change = True
            if ak.auditFlag != auditFlag:
                self.verbose("Changing %s: auditFlag from %s to %s" %
                             (name, ak.auditFlag, auditFlag))
                ak.auditFlag = auditFlag
                change = True
            if ak.docpage != docpage:
                self.verbose("Changing %s: docpage from '%s' to '%s'" %
                             (name, ak.docpage, docpage))
                ak.docpage = docpage
                change = True
            if ak.desc != desc:
                self.verbose("Changing %s: desc from '%s' to '%s'" %
                             (name, ak.desc, desc))
                ak.desc = desc
                change = True
            if change and not self.namespace.kiddingFlag:
                ak.save()

        if restrictedKid:
            self.handleRestrictedKey(restrictedKid, ak)