def generate_jwks_into_db():
    (keyStoreType, keyStoreFilePath, storePass, keyalias, keyPass, keyalg,
     keysize, validity, dname) = yamlutil.get_jwt_info()
    now = int(time.time())
    validTo = int(validity) * 3600 * 24 + now
    sql = "INSERT INTO sigdb.JWK_INFO (KID,ALIAS,KEYPASS,STATUS,CURRENT_USE,VALID_FROM,VALID_TO) VALUES ('kid_" + keyalias + "','" + keyalias + "','" + keyPass + "','ACTIVE','Y','" + str(
        now) + "','" + str(validTo) + "');"
    cmd = 'mysqlclient -e "' + sql + '"'
    cmdutil.run_cmd_r(cmd)
def get_value_by_cm_cli(key, value):
    cmd = "cm-cli get -k " + ECE_BASE_PATH + "/" + key
    value_c = cmdutil.run_cmd_r(cmd).replace("\n", "").strip()
    if value_c != value:
        print "unmatched value: %s ,it should be set to %s " % (value_c, value)
    else:
        print "value matched"
def get_shared_cm_value(component, item, value):
    cmd = "iam-dp-cli get-key -c " + component + " -V all -k " + item + "|awk -F '|' 'NR==4{print $6}'"
    value_c = cmdutil.run_cmd_r(cmd).replace("\n", "").strip()
    if value_c != value:
        print "unmatched value: %s ,it should be set to %s " % (value_c, value)
    else:
        print "value matched"
def compare_jwks_configuration():

    (keyStoreType, keyStoreFilePath, storePass, keyalias, keyPass, keyalg,
     keysize, validity, dname) = yamlutil.get_jwt_info()
    if os.path.exists(keyStoreFilePath):
        print keyStoreFilePath + " already exist,will not update jwks related configuration again!"
        return
    cmd = 'keytool -genkey -keystore ' + keyStoreFilePath + ' -storetype ' + keyStoreType + ' -storepass ' + storePass + ' -keypass ' + keyPass + ' -keyalg ' + keyalg + ' -alias ' + keyalias + ' -keysize ' + keysize + '  -dname "CN=IAM, OU=IAM, O=Ericsson, C=CN" -noprompt'
    cmdutil.run_cmd_r(cmd)
    generate_jwks_into_db()
    get_shared_cm_value("foundation-shared", "oauth.jwt.keyStoreType",
                        keyStoreType)
    get_shared_cm_value("foundation-shared", "oauth.jwt.keyStoreFilePath",
                        ' file:' + keyStoreFilePath)
    get_shared_cm_value("foundation-shared", "oauth.jwt.storePass", storePass)
    get_shared_cm_value("foundation-shared", "oauth.jwt.keyalias", keyalias)
    get_shared_cm_value("foundation-shared", "oauth.jwt.keyPass", keyPass)