예제 #1
0
    def test_edit_user(self):
        friendly_name = self.get_user_name()

        (tmpFD, outFileName) = tempfile.mkstemp("cumulustests")
        os.close(tmpFD)

        s3id = str(uuid.uuid1())
        s3pw = str(uuid.uuid1())
        rc = nimbus_new_user.main([friendly_name])
        self.assertEqual(rc, 0, "should be 0 %d" % (rc))
        rc = nimbus_edit_user.main(["-b", "-a", s3id, "-p", s3pw, "-r", "access_id,access_secret", "-O", outFileName, friendly_name])
        self.assertEqual(rc, 0, "should be 0 %d" % (rc))
        needle = "%s,%s" % (s3id, s3pw)
        print "--> %s <--" % (needle)
        rc = self.find_in_file(outFileName, needle)
        os.unlink(outFileName)
        self.assertTrue(rc)
        
        rc = nimbus_remove_user.main([friendly_name])
        self.assertEqual(rc, 0, "should be 0 %d" % (rc))
예제 #2
0
    def test_edit_user(self):
        friendly_name = self.get_user_name()

        (tmpFD, outFileName) = tempfile.mkstemp("cumulustests")
        os.close(tmpFD)

        s3id = str(uuid.uuid1())
        s3pw = str(uuid.uuid1())
        rc = nimbus_new_user.main([friendly_name])
        self.assertEqual(rc, 0, "should be 0 %d" % (rc))
        rc = nimbus_edit_user.main(["-b", "-a", s3id, "-p", s3pw, "-r", "access_id,access_secret", "-O", outFileName, friendly_name])
        self.assertEqual(rc, 0, "should be 0 %d" % (rc))
        needle = "%s,%s" % (s3id, s3pw)
        print "--> %s <--" % (needle)
        rc = self.find_in_file(outFileName, needle)
        os.unlink(outFileName)
        self.assertTrue(rc)
        
        rc = nimbus_remove_user.main([friendly_name])
        self.assertEqual(rc, 0, "should be 0 %d" % (rc))
예제 #3
0
def update_user(current, desired, opts):
    args = []
    if current['dn'] != desired['dn']:
        args.extend(['-s', desired['dn']])
    if current['access_id'] != desired['access_id']:
        args.extend(['-a', desired['access_id']])
    if current['access_secret'] != desired['access_secret']:
        args.extend(['-p', desired['access_secret']])
    if current['group'] != desired['group']:
        args.extend(['-g', _fix_group(desired['group'])])

    if current['canonical_id'] != desired['canonical_id']:
        # canonical ID cannot be updated (is used in cumulus paths)
        return "CANNOT_UPDATE"

    if args:
        name = current['display_name']
        args.extend(['-q', name])

        if not opts.update:
            pynimbusauthz.print_msg(
                opts, 2,
                "Not updating mismatched user %s: --update is not specified" %
                name)
            return "MISMATCHED"

        pynimbusauthz.print_msg(
            opts, 2, "Calling nimbus-edit-user with args: " + str(args))

        if opts.dryrun:
            return "UPDATED"

        ok = False
        try:
            ok = nimbus_edit_user.main(args) == 0
        except:
            pynimbusauthz.print_msg(opts, 2,
                                    "Error: " + traceback.format_exc())
        return ok and "UPDATED" or "UPDATE_FAILED"

    return "UNCHANGED"
예제 #4
0
def update_user(current, desired, opts):
    args = []
    if current['dn'] != desired['dn']:
        args.extend(['-s', desired['dn']])
    if current['access_id'] != desired['access_id']:
        args.extend(['-a', desired['access_id']])
    if current['access_secret'] != desired['access_secret']:
        args.extend(['-p', desired['access_secret']])
    if current['group'] != desired['group']:
        args.extend(['-g', _fix_group(desired['group'])])

    if current['canonical_id'] != desired['canonical_id']:
        # canonical ID cannot be updated (is used in cumulus paths)
        return "CANNOT_UPDATE"

    if args:
        name = current['display_name']
        args.extend(['-q', name])

        if not opts.update:
            pynimbusauthz.print_msg(opts, 2, 
                    "Not updating mismatched user %s: --update is not specified" %
                    name)
            return "MISMATCHED"

        pynimbusauthz.print_msg(opts, 2, "Calling nimbus-edit-user with args: " +
                str(args))

        if opts.dryrun:
            return "UPDATED"

        ok = False
        try:
            ok = nimbus_edit_user.main(args) == 0
        except:
            pynimbusauthz.print_msg(opts, 2, "Error: " + traceback.format_exc())
        return ok and "UPDATED" or "UPDATE_FAILED" 

    return "UNCHANGED"