コード例 #1
0
def main():
    parser = argparse.ArgumentParser(add_help=True, description='Usage')
    parser.add_argument('-a', '--appliance', dest='host', required=True,
                        help='HP OneView Appliance hostname or IP')
    parser.add_argument('-u', '--user', dest='user', required=False,
                        default='Administrator', help='HP OneView Username')
    parser.add_argument('-p', '--pass', dest='passwd', required=False,
                        help='HP OneView Password')
    parser.add_argument('-c', '--certificate', dest='cert', required=False,
                        help='Trusted SSL Certificate Bundle in PEM '
                        '(Base64 Encoded DER) Format')
    parser.add_argument('-r', '--proxy', dest='proxy', required=False,
                        help='Proxy (host:port format')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    getcatactions(sec)
コード例 #2
0
def main():
    parser = argparse.ArgumentParser(
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
        description='''
    Display Users

    Usage: ''')
    parser.add_argument('-a',
                        dest='host',
                        required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p',
                        dest='passwd',
                        required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c',
                        dest='cert',
                        required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y',
                        dest='proxy',
                        required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j',
                        dest='domain',
                        required=False,
                        default='Local',
                        help='''
    HP OneView Authorized Login Domain''')

    args = parser.parse_args()
    credential = {
        'authLoginDomain': args.domain.upper(),
        'userName': args.user,
        'password': args.passwd
    }

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    getuser(sec)
コード例 #3
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Define User Roles

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HPE OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HPE OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HPE OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HPE OneView Authorized Login Domain''')
    parser.add_argument('-x', dest='upass', required=False,
                        help='''
    New user password''')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-g', dest='getrole', action='store_true',
                       help='''
    Display the users and exit''')
    group.add_argument('-n', dest='name',
                       help='''
    Username to add''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.getrole:
        getrole(sec)
        sys.exit()

    setrole(sec, args.name, 'Read only')
コード例 #4
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Define User Roles

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HPE OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HPE OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HPE OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HPE OneView Authorized Login Domain''')
    parser.add_argument('-x', dest='upass', required=False,
                        help='''
    New user password''')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-g', dest='getrole', action='store_true',
                       help='''
    Display the users and exit''')
    group.add_argument('-n', dest='name',
                       help='''
    Username to add''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.getrole:
        getrole(sec)
        sys.exit()

    setrole(sec, args.name, 'Read only')
コード例 #5
0
def main():
    parser = argparse.ArgumentParser(add_help=True, description='Usage')
    parser.add_argument('-a',
                        '--appliance',
                        dest='host',
                        required=True,
                        help='HP OneView Appliance hostname or IP')
    parser.add_argument('-u',
                        '--user',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='HP OneView Username')
    parser.add_argument('-p',
                        '--pass',
                        dest='passwd',
                        required=False,
                        help='HP OneView Password')
    parser.add_argument('-c',
                        '--certificate',
                        dest='cert',
                        required=False,
                        help='Trusted SSL Certificate Bundle in PEM '
                        '(Base64 Encoded DER) Format')
    parser.add_argument('-r',
                        '--proxy',
                        dest='proxy',
                        required=False,
                        help='Proxy (host:port format')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-g',
                       dest='getstr',
                       action='store_true',
                       help='Display the community read string and exit')
    group.add_argument('-s', dest='string', help='Community Read String')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.getstr:
        getstring(sts)
        sys.exit()

    defstring(sts, args.string)
コード例 #6
0
def main():
    parser = argparse.ArgumentParser(
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
        description='''
    Set the SNMP read community string

    Usage: ''')
    parser.add_argument('-a',
                        dest='host',
                        required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p',
                        dest='passwd',
                        required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c',
                        dest='cert',
                        required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y',
                        dest='proxy',
                        required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-s',
                        dest='string',
                        required=True,
                        help='''
    Community Read String''')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    define_string(sts, args.string)
コード例 #7
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Set the service access state

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-e', dest='ena', action='store_true',
                       help='''
    Enable service access''')
    group.add_argument('-d', dest='dis', action='store_true',
                       help='''
    Disable service access''')
    group.add_argument('-g', dest='gets', action='store_true',
                       help='''
    Get current service access state''')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.gets:
        getsa(sts)
    elif args.ena:
        setsa(sts, 'true')
    elif args.dis:
        setsa(sts, 'false')
コード例 #8
0
ファイル: keys.py プロジェクト: keithsharp/slack-oneview
def get_certificate_pair(con, dir):
    sec = hpov.security(con)
    cert = sec.get_rabbitmq_kp()
    ca = open(os.path.join(dir, 'cert.pem'), 'w+')
    ca.write(cert['base64SSLCertData'])
    ca.close()
    ca = open(os.path.join(dir, 'key.pem'), 'w+')
    ca.write(cert['base64SSLKeyData'])
    ca.close()
コード例 #9
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Set the service access state

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-e', dest='ena', action='store_true',
                       help='''
    Enable service access''')
    group.add_argument('-d', dest='dis', action='store_true',
                       help='''
    Disable service access''')
    group.add_argument('-g', dest='gets', action='store_true',
                       help='''
    Get current service access state''')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.gets:
        getsa(sts)
    elif args.ena:
        setsa(sts, 'true')
    elif args.dis:
        setsa(sts, 'false')
コード例 #10
0
ファイル: del-user.py プロジェクト: awellock/python-hpOneView
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Delete individual or ALL Users

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HP OneView Authorized Login Domain''')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-d', dest='delete_all', action='store_true',
                        help='''
    Delete ALL users, except for the required Administrator account''')
    group.add_argument('-n', dest='name',
                        help='''
    User name to delete''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.delete_all:
        del_all_users(sec)
        sys.exit()

    del_user_by_name(sec, args.name)
コード例 #11
0
def main():
    parser = argparse.ArgumentParser(
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
        description='''
    Download the SCMB (RabbitMq) base-64 encoded certificate and keypair from
    the HP OneView appliance. NOTE: This requires that the keypair has been
    previously generated (generate-scmb-ca-cert.py).

    Usage: ''')
    parser.add_argument('-a',
                        dest='host',
                        required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p',
                        dest='passwd',
                        required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c',
                        dest='cert',
                        required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y',
                        dest='proxy',
                        required=False,
                        help='''
    Proxy (host:port format''')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    get_rabbit_kp(sec)
コード例 #12
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Set the SNMP read community string

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HP OneView Authorized Login Domain''')
    parser.add_argument('-s', dest='string', required=True,
                        help='''
    Community Read String''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    define_string(sts, args.string)
コード例 #13
0
def main():
    parser = argparse.ArgumentParser(add_help=True, description='Usage')
    parser.add_argument('-a',
                        '--appliance',
                        dest='host',
                        required=True,
                        help='HP OneView Appliance hostname or IP')
    parser.add_argument('-u',
                        '--user',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='HP OneView Username')
    parser.add_argument('-p',
                        '--pass',
                        dest='passwd',
                        required=False,
                        help='HP OneView Password')
    parser.add_argument('-c',
                        '--certificate',
                        dest='cert',
                        required=False,
                        help='Trusted SSL Certificate Bundle in PEM '
                        '(Base64 Encoded DER) Format')
    parser.add_argument('-r',
                        '--proxy',
                        dest='proxy',
                        required=False,
                        help='Proxy (host:port format')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    getaus(sec)
コード例 #14
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Delete resource by URI

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HPE OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HPE OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HPE OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HPE OneView Authorized Login Domain''')
    parser.add_argument('-i', dest='uri', required=False,
                        help='''
    URI of the resource to delete''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    deluri(con, args.uri)
コード例 #15
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Download the SCMB (RabbitMq) base-64 encoded certificate and keypair from
    the HP OneView appliance. NOTE: This requires that the keypair has been
    previously generated (generate-scmb-ca-cert.py).

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HP OneView Authorized Login Domain''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    get_rabbit_kp(sec)
コード例 #16
0
def main():
    parser = argparse.ArgumentParser(add_help=True, description='Usage')
    parser.add_argument('-a', '--appliance', dest='host', required=True,
                        help='HP OneView Appliance hostname or IP')
    parser.add_argument('-u', '--user', dest='user', required=False,
                        default='Administrator', help='HP OneView Username')
    parser.add_argument('-p', '--pass', dest='passwd', required=False,
                        help='HP OneView Password')
    parser.add_argument('-c', '--certificate', dest='cert', required=False,
                        help='Trusted SSL Certificate Bundle in PEM '
                        '(Base64 Encoded DER) Format')
    parser.add_argument('-r', '--proxy', dest='proxy', required=False,
                        help='Proxy (host:port format')
    parser.add_argument('-x', dest='upass', required=False,
                        help='New user password')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-g', dest='getrole', action='store_true',
                       help='Display the users and exit')
    group.add_argument('-n', dest='name', help='Username to add')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.getrole:
        getrole(sec)
        sys.exit()

    setrole(sec, args.name, 'Read only')
コード例 #17
0
def main():
    parser = argparse.ArgumentParser(add_help=True, description='Usage')
    parser.add_argument('-a', '--appliance', dest='host', required=True,
                        help='HP OneView Appliance hostname or IP')
    parser.add_argument('-u', '--user', dest='user', required=False,
                        default='Administrator', help='HP OneView Username')
    parser.add_argument('-p', '--pass', dest='passwd', required=False,
                        help='HP OneView Password')
    parser.add_argument('-c', '--certificate', dest='cert', required=False,
                        help='Trusted SSL Certificate Bundle in PEM '
                        '(Base64 Encoded DER) Format')
    parser.add_argument('-r', '--proxy', dest='proxy', required=False,
                        help='Proxy (host:port format')
    parser.add_argument('-x', dest='upass', required=False,
                        help='New user password')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-g', dest='getuser', action='store_true',
                       help='Display the users and exit')
    group.add_argument('-n', dest='name', help='Username to add')

    args = parser.parse_args()
    if args.name and not args.upass:
        print("Error, user password is required with the -x option")
        sys.exit()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.getuser:
        getuser(sec)
        sys.exit()

    defuser(sec, args.name, args.upass)
コード例 #18
0
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Display active user sessions

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')

    args = parser.parse_args()
    credential = {'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    srv = hpov.servers(con)
    net = hpov.networking(con)
    sec = hpov.security(con)
    sts = hpov.settings(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    getaus(sec)
コード例 #19
0
def main():
    #    con = connect(newApp1Ipv4Addr)    # just here for debugging...
    con = connect(applianceIP)

    # Get the appliance MAC address
    data = con.get_appliance_network_interfaces()
    macAddress = data['applianceNetworks'][0]['macAddress']
    hostName = data['applianceNetworks'][0]['hostname']

    # Try changing appliance to static ip...
    if newApp1Ipv4Addr:
        quit = False
        if (not newIpv4Subnet):
            print("newIpv4Subnet required if newApp1Ipv4Addr supplied.")
            quit = True
        if (not newDomainName):
            print("newDomainName required if newApp1Ipv4Addr supplied.")
            quit = True
        if (not newIpv4Subnet):
            print("newIpv4Subnet required if newApp1Ipv4Addr supplied.")
            quit = True
        if (not newIpv4Gateway):
            print("newIpv4Gateway required if newApp1Ipv4Addr supplied.")
            quit = True
        if (quit):
            exit(2)
        print("Setting ipv4...")
        interfaceConfig = hpOneView.common.make_appliance_network_config_dict(
            newDomainName,
            macAddress,
            newApp1Ipv4Addr,
            newIpv4Subnet,
            newIpv4Gateway,
            newSearchDomain1,
            newSearchDomain2,
            ipv4Type='STATIC',
            ipv6Type='UNCONFIGURE',
        )
        con.set_appliance_network_interface(interfaceConfig)
        print("Network set to static ip: " + newApp1Ipv4Addr)

        # Connect via the new IP...
        con = connect(newApp1Ipv4Addr)

        print('Sleep for 60 seconds before reverting back to DHCP...')
        time.sleep(60)

        print('Sleep for 60 seconds before reverting back to DHCP...')
        time.sleep(60)

    # Change appliance to DHCP...
    interfaceConfig = hpOneView.common.make_appliance_network_config_dict(
        hostName, macAddress, ipv4Type='DHCP', ipv6Type='DHCP')
    con.set_appliance_network_interface(interfaceConfig)
    print("Network set to DHCP: " + applianceIP)

    con = connect(applianceIP)

    # IP should not change anymore--set variables from con:
    srv = hpOneView.servers(con)
    net = hpOneView.networking(con)
    sec = hpOneView.security(con)
    settings = hpOneView.settings(con)
    act = hpOneView.activity(con)
    sear = hpOneView.search(con)

    try:
        settings.add_license(licenseKey)
    except hpOneView.exceptions.HPOneViewException as ex:
        print('WARNING: License failed to add. Check message.')
        print('Message: ' + ex.message)
    licenses = settings.get_licenses()
    print(str(len(licenses)) + ' licenses installed')

    if doRackConfiguration is True:
        # Rack based support
        serverdict = hpOneView.common.make_add_server_dict(
            hostname=rackiLOIp,
            username=rackiLOUser,
            password=rackiLOPassword,
            force=False,
            licensingIntent='OneView')
        print('Adding rack server...')
        server = srv.add_server(serverdict)
        print('Removing rack server...')
        srv.delete_server(server)

    readCommunityString = insecure_random_string_generator()
    response = settings.set_dev_read_comm_string(readCommunityString)
    if response != readCommunityString:
        raise Exception("Community string not set")
    newCommString = settings.get_dev_read_comm_string()
    if newCommString != readCommunityString:
        raise Exception("Community strings differ")

    print('Generating Appliance Dump')
    dumpInfo = settings.generate_support_dump()
    print('Downloading Appliance Dump')
    settings.download_support_dump(dumpInfo)

    version = settings.get_version()
    print('Minimum API Version: ' + str(version['minimumVersion']))
    print('Current API Version: ' + str(version['currentVersion']))

    status = settings.get_health_status()
    for member in status:
        print(member['available'] + ' available ' + member['resourceType'])

    # Clean up everything before we start in case of aborted previous run
    servers = srv.get_servers()
    for server in servers:
        if server['powerState'] == 'On':
            srv.set_server_powerstate(server, 'Off', force=True)
    profiles = srv.get_server_profiles()
    for profile in profiles:
        print(("Removing Profile %s" % profile['name']))
        srv.remove_server_profile(profile)
    enclosures = srv.get_enclosures()
    for enclosure in enclosures:
        print(("Removing Enclosure %s" % enclosure['serialNumber']))
        srv.remove_enclosure(enclosure)
    egroups = srv.get_enclosure_groups()
    for egroup in egroups:
        srv.delete_enclosure_group(egroup)
    ligs = net.get_ligs()
    for lig in ligs:
        net.delete_lig(lig)
    networksets = net.get_networksets()
    for networkset in networksets:
        net.delete_networkset(networkset)
    fcnets = net.get_fc_networks()
    for fcnet in fcnets:
        net.delete_network(fcnet)
    enets = net.get_enet_networks()
    for enet in enets:
        net.delete_network(enet)

    # Check how many non-cleared alerts we have
    alerts = act.get_alerts('Active')
    startNumAlerts = len(alerts)
    print(("%d active alerts" % startNumAlerts))
    # Clear (or Delete) active alerts so we start clean
    if startNumAlerts > 0:
        for alert in alerts:
            alertMap = hpOneView.common.make_update_alert_dict(
                alertState='Cleared', assignedToUser='******')
            act.update_alert(alert, alertMap)
            # or Delete it - act.delete_alert(alert)
    alerts = act.get_alerts('Active')
    startNumAlerts = len(alerts)
    print(("%d active alerts" % startNumAlerts))
    # Delete active alerts so we start clean
    if startNumAlerts > 0:
        raise Exception("Still have active alerts")

    if doSppTests is True:
        print("Getting current SPPs")
        spps = settings.get_spps()
        startNumSpps = len(spps)
        print("Uploading SPP")
        spp = settings.upload_spp(firmwareBundlePath, firmwareBundleFileName)
        spps = settings.get_spps()
        if len(spps) == startNumSpps:
            raise Exception('Same number of SPPs found %d' % (len(spps)))
        print("Deleting SPP")
        settings.delete_spp(spp)
    con.set_service_access('false')

    roles = sec.get_roles()
    print(str(len(roles)) + " user roles")
    users = sec.get_users()
    numUsers = len(users)
    print(('Current Users (' + str(numUsers) + '):'))
    for user in users:
        print((' ' + (user['userName'])))
    testUser = insecure_random_string_generator()
    testPassword = insecure_random_string_generator()
    print(('Adding User ' + testUser))
    user = hpOneView.common.make_user_dict(
        testUser,
        testPassword,
        enabled=True,
        fullName='Test User',
        emailAddress='*****@*****.**',
        roles=['Infrastructure administrator'])
    sec.create_user(user)
    users = sec.get_users()
    if len(users) != numUsers + 1:
        raise Exception('User not added')
    con.logout()
    print(('Testing user ' + testUser))
    testCredential = {'userName': testUser, 'password': testPassword}
    con.login(testCredential)
    con.logout()
    con.login(credential)
    print('Modifying User')
    updateUser = hpOneView.common.make_user_modify_dict(
        userName=testUser, fullName='Renamed Test User')
    updatedUser = sec.update_user(updateUser)
    updatedUser = sec.get_user(testUser)
    if updatedUser['fullName'] != 'Renamed Test User':
        raise Exception('User not renamed')
    print(('Deleting User ' + testUser))
    sec.delete_user(testUser)
    users = sec.get_users()
    if len(users) != numUsers:
        raise Exception('User not deleted')
    pool = srv.get_vsn_pool()
    print(('Current SN Pool Type: ' + (pool['poolType'])))
    pool = srv.get_vwwn_pool()
    print(('Current WWN Pool Type: ' + (pool['poolType'])))
    pool = srv.get_vmac_pool()
    print(('Current MAC Pool Type: ' + (pool['poolType'])))
    roles = sec.get_user_roles('administrator')
    print('Roles:')
    for role in roles:
        print((' ' + (role['roleName'])))
    user = sec.get_user('administrator')
    print('User Properties:')
    pprint(user, indent=4)
    # Create Network
    bandDict = hpOneView.common.make_bw_dict(maxbw=10000, minbw=1000)
    print('Creating Ethernet Network')
    enet = net.create_enet_network('RDP',
                                   1,
                                   smartLink=True,
                                   privateNetwork=False,
                                   bw=bandDict)
    print('Creating FC Networks')
    fcneta = net.create_fc_network('SAN-A', bw=bandDict)
    fcnetb = net.create_fc_network('SAN-B', bw=bandDict)
    print('Creating Network Set')
    nset = net.create_networkset('RDP Network Set',
                                 nets=[enet['uri']],
                                 bw=bandDict)
    print('Creating Logical Interconnect Group')
    lig = hpOneView.common.make_lig_dict('Test LIG')
    swtype = con.get_entity_byfield(hpOneView.common.uri['ictype'],
                                    'partNumber', '571956-B21')
    hpOneView.common.set_iobay_occupancy(lig['interconnectMapTemplate'],
                                         [1, 2], swtype['uri'])
    net_uris = [enet['uri']]
    uplinkSet = hpOneView.common.make_uplink_set_dict("RDPUplinkSet", net_uris)
    # Get Port Number
    pnum = -1
    for port in swtype['portInfos']:
        if port['portName'] == 'X5':
            pnum = port['portNumber']
            break
    uplinkSet['logicalPortConfigInfos'].append(
        hpOneView.common.make_port_config_info(1, 1, pnum))
    lig['uplinkSets'].append(uplinkSet)

    net_uris = [fcneta['uri']]
    uplinkSet = hpOneView.common.make_uplink_set_dict("SanAUplinkSet",
                                                      net_uris, 'FibreChannel')
    # Get Port Number
    pnum = -1
    for port in swtype['portInfos']:
        if port['portName'] == 'X1':
            pnum = port['portNumber']
            break
    uplinkSet['logicalPortConfigInfos'].append(
        hpOneView.common.make_port_config_info(1, 1, pnum))
    lig['uplinkSets'].append(uplinkSet)

    net_uris = [fcnetb['uri']]
    uplinkSet = hpOneView.common.make_uplink_set_dict("SanBUplinkSet",
                                                      net_uris, 'FibreChannel')
    # Use same port number
    uplinkSet['logicalPortConfigInfos'].append(
        hpOneView.common.make_port_config_info(1, 2, pnum))
    lig['uplinkSets'].append(uplinkSet)

    lig = net.create_lig(lig)
    print('Creating Enclosure Group')
    egroup = hpOneView.common.make_egroup_dict("Enclosure Group", lig['uri'])
    egroup = srv.create_enclosure_group(egroup)
    print('Renaming Enclosure Group')
    egroup['name'] = 'Renamed Enclosure Group'
    egroup = srv.update_enclosure_group(egroup)
    print('Adding Enclosure')
    # Find the first Firmware Baseline
    spp = settings.get_spps()[0]
    add_enclosure = hpOneView.common.make_add_enclosure_dict(
        enclosureIP,
        enclosureUser,
        enclosurePassword,
        egroup['uri'],
        firmwareBaseLineUri=spp['uri'])
    enclosure = srv.add_enclosure(add_enclosure)
    print('Creating Profiles')
    # See if we need to turn any servers off
    servers = srv.get_servers()
    for server in servers:
        if server['powerState'] == 'On':
            srv.set_server_powerstate(server, 'Off', force=True)
    g7server = srv.get_server_by_bay(7)
    gen8server = srv.get_server_by_bay(13)
    connection1 = hpOneView.common.make_profile_connection_dict(
        enet,
        boot=hpOneView.common.make_profile_connection_boot_dict(
            priority='Primary'))
    connection2 = hpOneView.common.make_profile_connection_dict(
        fcneta,
        functionType='FibreChannel',
        boot=hpOneView.common.make_profile_connection_boot_dict(
            priority='Primary', arrayWwpn='5001438004C8E7F8', lun='1'))
    connection3 = hpOneView.common.make_profile_connection_dict(
        fcnetb,
        functionType='FibreChannel',
        boot=hpOneView.common.make_profile_connection_boot_dict(
            priority='Secondary', arrayWwpn='5001438004C8E7FC', lun='1'))
    connections = [connection1, connection2, connection3]
    firmwareBaseline = hpOneView.common.make_profile_firmware_baseline(
        spp['uri'])
    print('Creating G7 Profile')
    g7profile = hpOneView.common.make_add_profile_dict('G7 Profile',
                                                       g7server,
                                                       connections=connections)
    print('Creating Gen8 Profile')
    gen8profile = hpOneView.common.make_add_profile_dict(
        'Gen8 Profile',
        gen8server,
        connections=connections,
        firmwareBaseline=firmwareBaseline)
    g7profile = srv.create_server_profile(g7profile)
    gen8profile = srv.create_server_profile(gen8profile)
    g7profile['name'] = 'Renamed G7 Profile'
    g7profile = srv.update_server_profile(g7profile)
    gen8profile['name'] = 'Renamed Gen8 Profile'
    gen8profile = srv.update_server_profile(gen8profile)

    # Try searching now that we have resources
    resources = sear.get_resources('category=interconnect-types')
    print(('%s Interconnect Types' % len(resources)))
    resources = sear.get_resources({'category': 'interconnect-types'})
    print(('%s Interconnect Types' % len(resources)))
    assoc = sear.get_associations('category=interconnect-types')
    print(('%s Associations' % len(assoc)))
    trees = sear.get_trees('category=interconnect-types')
    print(('%s Trees' % len(trees)))
    sugg = sear.get_search_suggestions('Flex')
    print(('%s Suggestions' % len(sugg['suggestions'])))

    #print('Generating LI Dump')
    #li = net.get_interconnects()
    #dumpInfo = settings.generate_support_dump(logicalInterconnect=li[0])
    #print('Downloading LI Dump')
    #settings.download_support_dump(dumpInfo)

    print('Generating appliance backup')
    backup = settings.generate_backup()
    print('Downloading appliance backup')
    settings.download_backup(backup)

    # Check and see if we have any new alerts
    alerts = act.get_alerts('Active')
    if len(alerts) > 0:
        print(('WARNING: You have %d active alerts' % (len(alerts))))
        for alert in alerts:
            print(('- ' + alert['description']))

    # Events
    events = act.get_events('filter="eventTypeID=\'Demo.Event\'"')
    numEvents = len(events)
    eventDetail = hpOneView.common.make_event_detail_dict(
        'ipv4Address', enclosureIP)
    eventRecord = hpOneView.common.make_event_dict(description='Test',
                                                   eventTypeID='Demo.Event',
                                                   eventDetails=[eventDetail])
    act.create_event(eventRecord)
    events = act.get_events('filter="eventTypeID=\'Demo.Event\'"')
    if len(events) is numEvents:
        print('WARNING: Event record not created')

    # Audit Logs
    logs = act.get_audit_logs('filter="componentId=\'Test\'"')
    numLogs = len(logs)
    auditRecord = hpOneView.common.make_audit_log_dict(componentId='Test',
                                                       userId='Administrator',
                                                       domain='Local',
                                                       objectType='SERVER',
                                                       msg='Test Log')
    act.create_audit_log(auditRecord)
    logs = act.get_audit_logs('filter="componentId=\'Test\'"')
    if len(logs) is numLogs:
        print('WARNING: Audit log not created')

    # Paging example
    #pages = hpOneView.common.pages(act.get_alerts(), act._con)
    #firstPage = pages.currentPage
    #firstRecord = firstPage[0]
    #for page in pages:
    #    for record in page:
    #        pass  # OR print(record)
    #lastPage = pages.currentPage
    #lastRecord = lastPage[len(lastPage) - 1]

    print()
    print('We have now created everything. Check the UI and if all is good.'
          ' Press Enter to clean up.')
    input()

    # Clean Up
    print('Removing Profiles')
    srv.remove_server_profile(g7profile)
    srv.remove_server_profile(gen8profile)
    print('Removing Enclosure')
    srv.remove_enclosure(enclosure)
    print('Deleting Enclosure Group')
    srv.delete_enclosure_group(egroup)
    print('Deleting Logical Interconnect Group')
    net.delete_lig(lig)
    print('Deleting Network Set')
    net.delete_networkset(nset)
    print('Deleting FC Network')
    net.delete_network(fcneta)
    net.delete_network(fcnetb)
    print('Deleting Ethernet Network')
    net.delete_network(enet)
    # Check and see if we have any new alerts
    alerts = act.get_alerts('Active')
    if len(alerts) > 0:
        print(('WARNING: You have %d active alerts' % (len(alerts))))
        for alert in alerts:
            print((alert['description']))
    con.logout()
コード例 #20
0
ファイル: add-user.py プロジェクト: kwheaton/python-hpOneView
def main():
    parser = argparse.ArgumentParser(
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
        description='''
    Add new user

    Usage: ''')
    parser.add_argument('-a',
                        dest='host',
                        required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p',
                        dest='passwd',
                        required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c',
                        dest='cert',
                        required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y',
                        dest='proxy',
                        required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j',
                        dest='domain',
                        required=False,
                        default='Local',
                        help='''
    HP OneView Authorized Login Domain''')
    parser.add_argument('-n',
                        dest='name',
                        required=True,
                        help='''
    The name of the new user account to be created''')
    parser.add_argument('-x',
                        dest='user_pass',
                        required=True,
                        help='''
    The initial password to be assigned to the new user.

    Passwords must be at least 8 characters and not contain any of these
    characters:
              < > ; , \" ' & \\/ | + : = and space ''')
    parser.add_argument('-o',
                        dest='roles',
                        required=True,
                        nargs='+',
                        help='''
    A list of roles to assign the user to. Allowed values are:

        * Full = Full Infrastructure Administrator
        * RO = Read Only
        * Specialized (select one or more roles):
            - Backup = Backup Administrator
            - Network = Network Administrator
            - Server = Server Administrator
            - Storage = Storage Administrator

    For example the user can be assigned as the Infrastructure Administrator
    with full access OR as a user with Read Only access OR as a Specialized
    user with one for more of the specialized roles listed above, encapsulated
    with quotes and seperated by spaces. For example to assign the user to
    the Storage and Network administrator roles it would be specified as:

        -o "Network" "Storage"

    To assign the user to the Infrastructure Administrator role it would be
    specified as:

        -o "Full"''')
    parser.add_argument('-l',
                        dest='full_name',
                        required=False,
                        help='''
    Full name for the user''')
    parser.add_argument('-e',
                        dest='email',
                        required=False,
                        help='''
    Email address of the user''')
    parser.add_argument('-z',
                        dest='ophone',
                        required=False,
                        help='''
    Office phone number''')
    parser.add_argument('-m',
                        dest='mphone',
                        required=False,
                        help='''
    Mobile phone number''')
    parser.add_argument('-d',
                        dest='disable',
                        required=False,
                        action='store_true',
                        help='''
    Disable the account, preventing the user from logging into the
    appliance''')

    args = parser.parse_args()
    credential = {
        'authLoginDomain': args.domain.upper(),
        'userName': args.user,
        'password': args.passwd
    }

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    add_user(sec, args.name, args.user_pass, args.roles, args.full_name,
             args.email, args.ophone, args.mphone, args.disable)
コード例 #21
0
ファイル: keys.py プロジェクト: keithsharp/slack-oneview
def get_root_ca_bundle(con, dir):
    sec = hpov.security(con)
    cert = sec.get_cert_ca()
    ca = open(os.path.join(dir, 'caroot.pem'), 'w+')
    ca.write(cert)
    ca.close()
コード例 #22
0
def main():
    parser = argparse.ArgumentParser(
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
        description="""
    Download the SCMB (RabbitMq) base-64 encoded certificate and keypair from
    the HP OneView appliance. NOTE: This requires that the keypair has been
    previously generated (generate-scmb-ca-cert.py).

    Usage: """,
    )
    parser.add_argument(
        "-a",
        dest="host",
        required=True,
        help="""
    HP OneView Appliance hostname or IP address""",
    )
    parser.add_argument(
        "-u",
        dest="user",
        required=False,
        default="Administrator",
        help="""
    HP OneView Username""",
    )
    parser.add_argument(
        "-p",
        dest="passwd",
        required=True,
        help="""
    HP OneView Password""",
    )
    parser.add_argument(
        "-c",
        dest="cert",
        required=False,
        help="""
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format""",
    )
    parser.add_argument(
        "-y",
        dest="proxy",
        required=False,
        help="""
    Proxy (host:port format""",
    )

    args = parser.parse_args()
    credential = {"userName": args.user, "password": args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(":")[0], args.proxy.split(":")[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    get_rabbit_kp(sec)
コード例 #23
0
def main():
    parser = argparse.ArgumentParser(
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
        description='''
    Delete individual or ALL Users

    Usage: ''')
    parser.add_argument('-a',
                        dest='host',
                        required=True,
                        help='''
    HPE OneView Appliance hostname or IP address''')
    parser.add_argument('-u',
                        dest='user',
                        required=False,
                        default='Administrator',
                        help='''
    HPE OneView Username''')
    parser.add_argument('-p',
                        dest='passwd',
                        required=True,
                        help='''
    HPE OneView Password''')
    parser.add_argument('-c',
                        dest='cert',
                        required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y',
                        dest='proxy',
                        required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j',
                        dest='domain',
                        required=False,
                        default='Local',
                        help='''
    HPE OneView Authorized Login Domain''')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('-d',
                       dest='delete_all',
                       action='store_true',
                       help='''
    Delete ALL users, except for the required Administrator account''')
    group.add_argument('-n', dest='name', help='''
    User name to delete''')

    args = parser.parse_args()
    credential = {
        'authLoginDomain': args.domain.upper(),
        'userName': args.user,
        'password': args.passwd
    }

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    if args.delete_all:
        del_all_users(sec)
        sys.exit()

    del_user_by_name(sec, args.name)
コード例 #24
0
ファイル: add-user.py プロジェクト: awellock/python-hpOneView
def main():
    parser = argparse.ArgumentParser(add_help=True,
                        formatter_class=argparse.RawTextHelpFormatter,
                                     description='''
    Add new user

    Usage: ''')
    parser.add_argument('-a', dest='host', required=True,
                        help='''
    HP OneView Appliance hostname or IP address''')
    parser.add_argument('-u', dest='user', required=False,
                        default='Administrator',
                        help='''
    HP OneView Username''')
    parser.add_argument('-p', dest='passwd', required=True,
                        help='''
    HP OneView Password''')
    parser.add_argument('-c', dest='cert', required=False,
                        help='''
    Trusted SSL Certificate Bundle in PEM (Base64 Encoded DER) Format''')
    parser.add_argument('-y', dest='proxy', required=False,
                        help='''
    Proxy (host:port format''')
    parser.add_argument('-j', dest='domain', required=False,
                        default='Local',
                        help='''
    HP OneView Authorized Login Domain''')
    parser.add_argument('-n', dest='name',
                        required=True,
                        help='''
    The name of the new user account to be created''')
    parser.add_argument('-x', dest='user_pass',
                        required=True,
                        help='''
    The initial password to be assigned to the new user.

    Passwords must be at least 8 characters and not contain any of these
    characters:
              < > ; , \" ' & \\/ | + : = and space ''')
    parser.add_argument('-o', dest='roles',
                        required=True, nargs='+',
                        help='''
    A list of roles to assign the user to. Allowed values are:

        * Full = Full Infrastructure Administrator
        * RO = Read Only
        * Specialized (select one or more roles):
            - Backup = Backup Administrator
            - Network = Network Administrator
            - Server = Server Administrator
            - Storage = Storage Administrator

    For example the user can be assigned as the Infrastructure Administrator
    with full access OR as a user with Read Only access OR as a Specialized
    user with one for more of the specialized roles listed above, encapsulated
    with quotes and seperated by spaces. For example to assign the user to
    the Storage and Network administrator roles it would be specified as:

        -o "Network" "Storage"

    To assign the user to the Infrastructure Administrator role it would be
    specified as:

        -o "Full"''')
    parser.add_argument('-l', dest='full_name', required=False,
                        help='''
    Full name for the user''')
    parser.add_argument('-e', dest='email', required=False,
                        help='''
    Email address of the user''')
    parser.add_argument('-z', dest='ophone', required=False,
                        help='''
    Office phone number''')
    parser.add_argument('-m', dest='mphone', required=False,
                        help='''
    Mobile phone number''')
    parser.add_argument('-d', dest='disable', required=False,
                        action='store_true',
                        help='''
    Disable the account, preventing the user from logging into the
    appliance''')

    args = parser.parse_args()
    credential = {'authLoginDomain': args.domain.upper(), 'userName': args.user, 'password': args.passwd}

    con = hpov.connection(args.host)
    sec = hpov.security(con)

    if args.proxy:
        con.set_proxy(args.proxy.split(':')[0], args.proxy.split(':')[1])
    if args.cert:
        con.set_trusted_ssl_bundle(args.cert)

    login(con, credential)
    acceptEULA(con)

    add_user(sec, args.name, args.user_pass, args.roles, args.full_name,
             args.email, args.ophone, args.mphone, args.disable)
コード例 #25
0
def main():
    con = hpOneView.connection(applianceIP)
    srv = hpOneView.servers(con)
    net = hpOneView.networking(con)
    sec = hpOneView.security(con)
    settings = hpOneView.settings(con)
    act = hpOneView.activity(con)
    sear = hpOneView.search(con)

    if applianceProxy:
        con.set_proxy(applianceProxy.split(':')[0],
                        applianceProxy.split(':')[1])
    if applianceCerts:
        con.set_trusted_ssl_bundle(applianceCerts)
    # See if we need to accept the EULA before we try to log in
    con.get_eula_status()
    try:
        if con.get_eula_status() is True:
            print("EULA display needed")
            con.set_eula('no')
        else:
            print("EULA display NOT needed")
    except Exception as e:
        print('EXCEPTION:')
        print(e)
    # First try to log in with the initial credentials
    try:
        credential = {'userName': applianceUser, 'password': '******'}
        con.login(credential)
    except hpOneView.exceptions.HPOneViewException as ex:
        if ex.errorCode == 'PASSWORD_CHANGE_REQUIRED':
            con.change_initial_password('password')
        elif ex.errorCode == 'AUTHN_AUTH_FAUL':
            print('Initial login failed so assume password already changed')
    credential = {'userName': applianceUser, 'password': appliancePassword}
    con.login(credential)

    # Get the appliance MAC address
    data = con.get_appliance_network_interfaces()
    macAddress = data['applianceNetworks'][0]['macAddress']
    hostName = data['applianceNetworks'][0]['hostname']

    interfaceConfig = hpOneView.common.make_appliance_network_config_dict(
                                        hostName,
                                        macAddress,
                                        ipv4Type='DHCP',
                                        ipv6Type='DHCP')
    con.set_appliance_network_interface(interfaceConfig)
    print("Network set")
    print('Sleep for 30 seconds in case we changed the IP')
    time.sleep(30)

    try:
        settings.add_license(licenseKey)
    except hpOneView.exceptions.HPOneViewException as ex:
        print('WARNING: License failed to add. Check message.')
        print('Message: ' + ex.message)
    licenses = settings.get_licenses()
    print(str(len(licenses)) + ' licenses installed')

    if doRackConfiguration is True:
        # Rack based support
        serverdict = hpOneView.common.make_add_server_dict(
                                        hostname=rackiLOIp,
                                        username=rackiLOUser,
                                        password=rackiLOPassword,
                                        force=False,
                                        licensingIntent='OneView')
        print('Adding rack server...')
        server = srv.add_server(serverdict)
        print('Removing rack server...')
        srv.delete_server(server)

    readCommunityString = insecure_random_string_generator()
    response = settings.set_dev_read_comm_string(readCommunityString)
    if response != readCommunityString:
        raise Exception("Community string not set")
    newCommString = settings.get_dev_read_comm_string()
    if newCommString != readCommunityString:
        raise Exception("Community strings differ")

    print('Generating Appliance Dump')
    dumpInfo = settings.generate_support_dump()
    print('Downloading Appliance Dump')
    settings.download_support_dump(dumpInfo)

    version = settings.get_version()
    print('Minimum API Version: ' + str(version['minimumVersion']))
    print('Current API Version: ' + str(version['currentVersion']))

    status = settings.get_health_status()
    for member in status:
        print(member['available'] + ' available ' + member['resourceType'])

    # Clean up everything before we start in case of aborted previous run
    servers = srv.get_servers()
    for server in servers:
        if server['powerState'] == 'On':
            srv.set_server_powerstate(server, 'Off', force=True)
    profiles = srv.get_server_profiles()
    for profile in profiles:
        print(("Removing Profile %s" % profile['name']))
        srv.remove_server_profile(profile)
    enclosures = srv.get_enclosures()
    for enclosure in enclosures:
        print(("Removing Enclosure %s" % enclosure['serialNumber']))
        srv.remove_enclosure(enclosure)
    egroups = srv.get_enclosure_groups()
    for egroup in egroups:
        srv.delete_enclosure_group(egroup)
    ligs = net.get_ligs()
    for lig in ligs:
        net.delete_lig(lig)
    networksets = net.get_networksets()
    for networkset in networksets:
        net.delete_networkset(networkset)
    fcnets = net.get_fc_networks()
    for fcnet in fcnets:
        net.delete_network(fcnet)
    enets = net.get_enet_networks()
    for enet in enets:
        net.delete_network(enet)

    # Check how many non-cleared alerts we have
    alerts = act.get_alerts('Active')
    startNumAlerts = len(alerts)
    print(("%d active alerts" % startNumAlerts))
    # Clear (or Delete) active alerts so we start clean
    if startNumAlerts > 0:
        for alert in alerts:
            alertMap = hpOneView.common.make_update_alert_dict(
                                            alertState='Cleared',
                                            assignedToUser='******')
            act.update_alert(alert, alertMap)
            # or Delete it - act.delete_alert(alert)
    alerts = act.get_alerts('Active')
    startNumAlerts = len(alerts)
    print(("%d active alerts" % startNumAlerts))
    # Delete active alerts so we start clean
    if startNumAlerts > 0:
        raise Exception("Still have active alerts")

    if doSppTests is True:
        print("Getting current SPPs")
        spps = settings.get_spps()
        startNumSpps = len(spps)
        print("Uploading SPP")
        spp = settings.upload_spp(firmwareBundlePath, firmwareBundleFileName)
        spps = settings.get_spps()
        if len(spps) == startNumSpps:
            raise Exception('Same number of SPPs found %d' % (len(spps)))
        print("Deleting SPP")
        settings.delete_spp(spp)
    con.set_service_access('false')

    roles = sec.get_roles()
    print(str(len(roles)) + " user roles")
    users = sec.get_users()
    numUsers = len(users)
    print(('Current Users (' + str(numUsers) + '):'))
    for user in users:
        print((' ' + (user['userName'])))
    testUser = insecure_random_string_generator()
    testPassword = insecure_random_string_generator()
    print(('Adding User ' + testUser))
    user = hpOneView.common.make_user_dict(testUser,
                            testPassword,
                            enabled=True,
                            fullName='Test User',
                            emailAddress='*****@*****.**',
                            roles=['Infrastructure administrator'])
    sec.create_user(user)
    users = sec.get_users()
    if len(users) != numUsers + 1:
        raise Exception('User not added')
    con.logout()
    print(('Testing user ' + testUser))
    testCredential = {'userName': testUser, 'password': testPassword}
    con.login(testCredential)
    con.logout()
    con.login(credential)
    print('Modifying User')
    updateUser = hpOneView.common.make_user_modify_dict(
                        userName=testUser,
                        fullName='Renamed Test User')
    updatedUser = sec.update_user(updateUser)
    updatedUser = sec.get_user(testUser)
    if updatedUser['fullName'] != 'Renamed Test User':
        raise Exception('User not renamed')
    print(('Deleting User ' + testUser))
    sec.delete_user(testUser)
    users = sec.get_users()
    if len(users) != numUsers:
        raise Exception('User not deleted')
    pool = srv.get_vsn_pool()
    print(('Current SN Pool Type: ' + (pool['poolType'])))
    pool = srv.get_vwwn_pool()
    print(('Current WWN Pool Type: ' + (pool['poolType'])))
    pool = srv.get_vmac_pool()
    print(('Current MAC Pool Type: ' + (pool['poolType'])))
    roles = sec.get_user_roles('administrator')
    print('Roles:')
    for role in roles:
        print((' ' + (role['roleName'])))
    user = sec.get_user('administrator')
    print('User Properties:')
    pprint(user, indent=4)
    # Create Network
    bandDict = hpOneView.common.make_bw_dict(maxbw=10000, minbw=1000)
    print('Creating Ethernet Network')
    enet = net.create_enet_network('RDP',
                                    1,
                                    smartLink=True,
                                    privateNetwork=False,
                                    bw=bandDict)
    print('Creating FC Networks')
    fcneta = net.create_fc_network('SAN-A',
                                    bw=bandDict)
    fcnetb = net.create_fc_network('SAN-B',
                                    bw=bandDict)
    print('Creating Network Set')
    nset = net.create_networkset('RDP Network Set',
                                    nets=[enet['uri']],
                                    bw=bandDict)
    print('Creating Logical Interconnect Group')
    lig = hpOneView.common.make_lig_dict('Test LIG')
    swtype = con.get_entity_byfield(hpOneView.common.uri['ictype'],
                                    'partNumber',
                                    '571956-B21')
    hpOneView.common.set_iobay_occupancy(lig['interconnectMapTemplate'],
                            [1, 2], swtype['uri'])
    net_uris = [enet['uri']]
    uplinkSet = hpOneView.common.make_uplink_set_dict(
                                    "RDPUplinkSet",
                                    net_uris)
    # Get Port Number
    pnum = -1
    for port in swtype['portInfos']:
        if port['portName'] == 'X5':
            pnum = port['portNumber']
            break
    uplinkSet['logicalPortConfigInfos'].append(
                                    hpOneView.common.make_port_config_info(
                                                    1, 1, pnum))
    lig['uplinkSets'].append(uplinkSet)

    net_uris = [fcneta['uri']]
    uplinkSet = hpOneView.common.make_uplink_set_dict(
                                            "SanAUplinkSet",
                                            net_uris,
                                            'FibreChannel')
    # Get Port Number
    pnum = -1
    for port in swtype['portInfos']:
        if port['portName'] == 'X1':
            pnum = port['portNumber']
            break
    uplinkSet['logicalPortConfigInfos'].append(
                                    hpOneView.common.make_port_config_info(
                                                    1, 1, pnum))
    lig['uplinkSets'].append(uplinkSet)

    net_uris = [fcnetb['uri']]
    uplinkSet = hpOneView.common.make_uplink_set_dict(
                                            "SanBUplinkSet",
                                            net_uris,
                                            'FibreChannel')
    # Use same port number
    uplinkSet['logicalPortConfigInfos'].append(
                                    hpOneView.common.make_port_config_info(
                                                    1, 2, pnum))
    lig['uplinkSets'].append(uplinkSet)

    lig = net.create_lig(lig)
    print('Creating Enclosure Group')
    egroup = hpOneView.common.make_egroup_dict("Enclosure Group", lig['uri'])
    egroup = srv.create_enclosure_group(egroup)
    print('Renaming Enclosure Group')
    egroup['name'] = 'Renamed Enclosure Group'
    egroup = srv.update_enclosure_group(egroup)
    print('Adding Enclosure')
    # Find the first Firmware Baseline
    spp = settings.get_spps()[0]
    add_enclosure = hpOneView.common.make_add_enclosure_dict(
                                    enclosureIP,
                                    enclosureUser,
                                    enclosurePassword,
                                    egroup['uri'],
                                    firmwareBaseLineUri=spp['uri'])
    enclosure = srv.add_enclosure(add_enclosure)
    print('Creating Profiles')
    # See if we need to turn any servers off
    servers = srv.get_servers()
    for server in servers:
        if server['powerState'] == 'On':
            srv.set_server_powerstate(server, 'Off', force=True)
    g7server = srv.get_server_by_bay(7)
    gen8server = srv.get_server_by_bay(13)
    connection1 = hpOneView.common.make_profile_connection_dict(enet,
                    boot=hpOneView.common.make_profile_connection_boot_dict(
                        priority='Primary'))
    connection2 = hpOneView.common.make_profile_connection_dict(fcneta,
                    functionType='FibreChannel',
                    boot=hpOneView.common.make_profile_connection_boot_dict(
                        priority='Primary',
                        arrayWwpn='5001438004C8E7F8',
                        lun='1'))
    connection3 = hpOneView.common.make_profile_connection_dict(fcnetb,
                    functionType='FibreChannel',
                    boot=hpOneView.common.make_profile_connection_boot_dict(
                        priority='Secondary',
                        arrayWwpn='5001438004C8E7FC',
                        lun='1'))
    connections = [connection1, connection2, connection3]
    firmwareBaseline = hpOneView.common.make_profile_firmware_baseline(
                                                spp['uri'])
    print('Creating G7 Profile')
    g7profile = hpOneView.common.make_add_profile_dict('G7 Profile',
                                                g7server,
                                                connections=connections)
    print('Creating Gen8 Profile')
    gen8profile = hpOneView.common.make_add_profile_dict('Gen8 Profile',
                                            gen8server,
                                            connections=connections,
                                            firmwareBaseline=firmwareBaseline)
    g7profile = srv.create_server_profile(g7profile)
    gen8profile = srv.create_server_profile(gen8profile)
    g7profile['name'] = 'Renamed G7 Profile'
    g7profile = srv.update_server_profile(g7profile)
    gen8profile['name'] = 'Renamed Gen8 Profile'
    gen8profile = srv.update_server_profile(gen8profile)

    # Try searching now that we have resources
    resources = sear.get_resources('category=interconnect-types')
    print(('%s Interconnect Types' % len(resources)))
    resources = sear.get_resources({'category': 'interconnect-types'})
    print(('%s Interconnect Types' % len(resources)))
    assoc = sear.get_associations('category=interconnect-types')
    print(('%s Associations' % len(assoc)))
    trees = sear.get_trees('category=interconnect-types')
    print(('%s Trees' % len(trees)))
    sugg = sear.get_search_suggestions('Flex')
    print(('%s Suggestions' % len(sugg['suggestions'])))

    #print('Generating LI Dump')
    #li = net.get_interconnects()
    #dumpInfo = settings.generate_support_dump(logicalInterconnect=li[0])
    #print('Downloading LI Dump')
    #settings.download_support_dump(dumpInfo)

    print('Generating appliance backup')
    backup = settings.generate_backup()
    print('Downloading appliance backup')
    settings.download_backup(backup)

    # Check and see if we have any new alerts
    alerts = act.get_alerts('Active')
    if len(alerts) > 0:
        print(('WARNING: You have %d active alerts' % (len(alerts))))
        for alert in alerts:
            print(('- ' + alert['description']))

    # Events
    events = act.get_events('filter="eventTypeID=\'Demo.Event\'"')
    numEvents = len(events)
    eventDetail = hpOneView.common.make_event_detail_dict('ipv4Address',
                                                            enclosureIP)
    eventRecord = hpOneView.common.make_event_dict(description='Test',
                                        eventTypeID='Demo.Event',
                                        eventDetails=[eventDetail])
    act.create_event(eventRecord)
    events = act.get_events('filter="eventTypeID=\'Demo.Event\'"')
    if len(events) is numEvents:
        print('WARNING: Event record not created')

    # Audit Logs
    logs = act.get_audit_logs('filter="componentId=\'Test\'"')
    numLogs = len(logs)
    auditRecord = hpOneView.common.make_audit_log_dict(componentId='Test',
                                                        userId='Administrator',
                                                        domain='Local',
                                                        objectType='SERVER',
                                                        msg='Test Log')
    act.create_audit_log(auditRecord)
    logs = act.get_audit_logs('filter="componentId=\'Test\'"')
    if len(logs) is numLogs:
        print('WARNING: Audit log not created')

    # Paging example
    #pages = hpOneView.common.pages(act.get_alerts(), act._con)
    #firstPage = pages.currentPage
    #firstRecord = firstPage[0]
    #for page in pages:
    #    for record in page:
    #        pass  # OR print(record)
    #lastPage = pages.currentPage
    #lastRecord = lastPage[len(lastPage) - 1]

    print()
    print('We have now created everything. Check the UI and if all is good.'
            ' Press Enter to clean up.')
    input()

    # Clean Up
    print('Removing Profiles')
    srv.remove_server_profile(g7profile)
    srv.remove_server_profile(gen8profile)
    print('Removing Enclosure')
    srv.remove_enclosure(enclosure)
    print('Deleting Enclosure Group')
    srv.delete_enclosure_group(egroup)
    print('Deleting Logical Interconnect Group')
    net.delete_lig(lig)
    print('Deleting Network Set')
    net.delete_networkset(nset)
    print('Deleting FC Network')
    net.delete_network(fcneta)
    net.delete_network(fcnetb)
    print('Deleting Ethernet Network')
    net.delete_network(enet)
    # Check and see if we have any new alerts
    alerts = act.get_alerts('Active')
    if len(alerts) > 0:
        print(('WARNING: You have %d active alerts' % (len(alerts))))
        for alert in alerts:
            print((alert['description']))
    con.logout()
コード例 #26
0
def main():
    #    con = connect(newApp1Ipv4Addr)    # just here for debugging...
    con = connect(applianceIP)

    # Get the appliance MAC address
    data = con.get_appliance_network_interfaces()
    macAddress = data["applianceNetworks"][0]["macAddress"]
    hostName = data["applianceNetworks"][0]["hostname"]

    # Try changing appliance to static ip...
    if newApp1Ipv4Addr:
        quit = False
        if not newIpv4Subnet:
            print("newIpv4Subnet required if newApp1Ipv4Addr supplied.")
            quit = True
        if not newDomainName:
            print("newDomainName required if newApp1Ipv4Addr supplied.")
            quit = True
        if not newIpv4Subnet:
            print("newIpv4Subnet required if newApp1Ipv4Addr supplied.")
            quit = True
        if not newIpv4Gateway:
            print("newIpv4Gateway required if newApp1Ipv4Addr supplied.")
            quit = True
        if quit:
            exit(2)
        print("Setting ipv4...")
        interfaceConfig = hpOneView.common.make_appliance_network_config_dict(
            newDomainName,
            macAddress,
            newApp1Ipv4Addr,
            newIpv4Subnet,
            newIpv4Gateway,
            newSearchDomain1,
            newSearchDomain2,
            ipv4Type="STATIC",
            ipv6Type="UNCONFIGURE",
        )
        con.set_appliance_network_interface(interfaceConfig)
        print("Network set to static ip: " + newApp1Ipv4Addr)

        # Connect via the new IP...
        con = connect(newApp1Ipv4Addr)

        print("Sleep for 60 seconds before reverting back to DHCP...")
        time.sleep(60)

        print("Sleep for 60 seconds before reverting back to DHCP...")
        time.sleep(60)

    # Change appliance to DHCP...
    interfaceConfig = hpOneView.common.make_appliance_network_config_dict(
        hostName, macAddress, ipv4Type="DHCP", ipv6Type="DHCP"
    )
    con.set_appliance_network_interface(interfaceConfig)
    print("Network set to DHCP: " + applianceIP)

    con = connect(applianceIP)

    # IP should not change anymore--set variables from con:
    srv = hpOneView.servers(con)
    net = hpOneView.networking(con)
    sec = hpOneView.security(con)
    settings = hpOneView.settings(con)
    act = hpOneView.activity(con)
    sear = hpOneView.search(con)

    try:
        settings.add_license(licenseKey)
    except hpOneView.exceptions.HPOneViewException as ex:
        print("WARNING: License failed to add. Check message.")
        print("Message: " + ex.message)
    licenses = settings.get_licenses()
    print(str(len(licenses)) + " licenses installed")

    if doRackConfiguration is True:
        # Rack based support
        serverdict = hpOneView.common.make_add_server_dict(
            hostname=rackiLOIp, username=rackiLOUser, password=rackiLOPassword, force=False, licensingIntent="OneView"
        )
        print("Adding rack server...")
        server = srv.add_server(serverdict)
        print("Removing rack server...")
        srv.delete_server(server)

    readCommunityString = insecure_random_string_generator()
    response = settings.set_dev_read_comm_string(readCommunityString)
    if response != readCommunityString:
        raise Exception("Community string not set")
    newCommString = settings.get_dev_read_comm_string()
    if newCommString != readCommunityString:
        raise Exception("Community strings differ")

    print("Generating Appliance Dump")
    dumpInfo = settings.generate_support_dump()
    print("Downloading Appliance Dump")
    settings.download_support_dump(dumpInfo)

    version = settings.get_version()
    print("Minimum API Version: " + str(version["minimumVersion"]))
    print("Current API Version: " + str(version["currentVersion"]))

    status = settings.get_health_status()
    for member in status:
        print(member["available"] + " available " + member["resourceType"])

    # Clean up everything before we start in case of aborted previous run
    servers = srv.get_servers()
    for server in servers:
        if server["powerState"] == "On":
            srv.set_server_powerstate(server, "Off", force=True)
    profiles = srv.get_server_profiles()
    for profile in profiles:
        print(("Removing Profile %s" % profile["name"]))
        srv.remove_server_profile(profile)
    enclosures = srv.get_enclosures()
    for enclosure in enclosures:
        print(("Removing Enclosure %s" % enclosure["serialNumber"]))
        srv.remove_enclosure(enclosure)
    egroups = srv.get_enclosure_groups()
    for egroup in egroups:
        srv.delete_enclosure_group(egroup)
    ligs = net.get_ligs()
    for lig in ligs:
        net.delete_lig(lig)
    networksets = net.get_networksets()
    for networkset in networksets:
        net.delete_networkset(networkset)
    fcnets = net.get_fc_networks()
    for fcnet in fcnets:
        net.delete_network(fcnet)
    enets = net.get_enet_networks()
    for enet in enets:
        net.delete_network(enet)

    # Check how many non-cleared alerts we have
    alerts = act.get_alerts("Active")
    startNumAlerts = len(alerts)
    print(("%d active alerts" % startNumAlerts))
    # Clear (or Delete) active alerts so we start clean
    if startNumAlerts > 0:
        for alert in alerts:
            alertMap = hpOneView.common.make_update_alert_dict(alertState="Cleared", assignedToUser="******")
            act.update_alert(alert, alertMap)
            # or Delete it - act.delete_alert(alert)
    alerts = act.get_alerts("Active")
    startNumAlerts = len(alerts)
    print(("%d active alerts" % startNumAlerts))
    # Delete active alerts so we start clean
    if startNumAlerts > 0:
        raise Exception("Still have active alerts")

    if doSppTests is True:
        print("Getting current SPPs")
        spps = settings.get_spps()
        startNumSpps = len(spps)
        print("Uploading SPP")
        spp = settings.upload_spp(firmwareBundlePath, firmwareBundleFileName)
        spps = settings.get_spps()
        if len(spps) == startNumSpps:
            raise Exception("Same number of SPPs found %d" % (len(spps)))
        print("Deleting SPP")
        settings.delete_spp(spp)
    con.set_service_access("false")

    roles = sec.get_roles()
    print(str(len(roles)) + " user roles")
    users = sec.get_users()
    numUsers = len(users)
    print(("Current Users (" + str(numUsers) + "):"))
    for user in users:
        print((" " + (user["userName"])))
    testUser = insecure_random_string_generator()
    testPassword = insecure_random_string_generator()
    print(("Adding User " + testUser))
    user = hpOneView.common.make_user_dict(
        testUser,
        testPassword,
        enabled=True,
        fullName="Test User",
        emailAddress="*****@*****.**",
        roles=["Infrastructure administrator"],
    )
    sec.create_user(user)
    users = sec.get_users()
    if len(users) != numUsers + 1:
        raise Exception("User not added")
    con.logout()
    print(("Testing user " + testUser))
    testCredential = {"userName": testUser, "password": testPassword}
    con.login(testCredential)
    con.logout()
    con.login(credential)
    print("Modifying User")
    updateUser = hpOneView.common.make_user_modify_dict(userName=testUser, fullName="Renamed Test User")
    updatedUser = sec.update_user(updateUser)
    updatedUser = sec.get_user(testUser)
    if updatedUser["fullName"] != "Renamed Test User":
        raise Exception("User not renamed")
    print(("Deleting User " + testUser))
    sec.delete_user(testUser)
    users = sec.get_users()
    if len(users) != numUsers:
        raise Exception("User not deleted")
    pool = srv.get_vsn_pool()
    print(("Current SN Pool Type: " + (pool["poolType"])))
    pool = srv.get_vwwn_pool()
    print(("Current WWN Pool Type: " + (pool["poolType"])))
    pool = srv.get_vmac_pool()
    print(("Current MAC Pool Type: " + (pool["poolType"])))
    roles = sec.get_user_roles("administrator")
    print("Roles:")
    for role in roles:
        print((" " + (role["roleName"])))
    user = sec.get_user("administrator")
    print("User Properties:")
    pprint(user, indent=4)
    # Create Network
    bandDict = hpOneView.common.make_bw_dict(maxbw=10000, minbw=1000)
    print("Creating Ethernet Network")
    enet = net.create_enet_network("RDP", 1, smartLink=True, privateNetwork=False, bw=bandDict)
    print("Creating FC Networks")
    fcneta = net.create_fc_network("SAN-A", bw=bandDict)
    fcnetb = net.create_fc_network("SAN-B", bw=bandDict)
    print("Creating Network Set")
    nset = net.create_networkset("RDP Network Set", nets=[enet["uri"]], bw=bandDict)
    print("Creating Logical Interconnect Group")
    lig = hpOneView.common.make_lig_dict("Test LIG")
    swtype = con.get_entity_byfield(hpOneView.common.uri["ictype"], "partNumber", "571956-B21")
    hpOneView.common.set_iobay_occupancy(lig["interconnectMapTemplate"], [1, 2], swtype["uri"])
    net_uris = [enet["uri"]]
    uplinkSet = hpOneView.common.make_uplink_set_dict("RDPUplinkSet", net_uris)
    # Get Port Number
    pnum = -1
    for port in swtype["portInfos"]:
        if port["portName"] == "X5":
            pnum = port["portNumber"]
            break
    uplinkSet["logicalPortConfigInfos"].append(hpOneView.common.make_port_config_info(1, 1, pnum))
    lig["uplinkSets"].append(uplinkSet)

    net_uris = [fcneta["uri"]]
    uplinkSet = hpOneView.common.make_uplink_set_dict("SanAUplinkSet", net_uris, "FibreChannel")
    # Get Port Number
    pnum = -1
    for port in swtype["portInfos"]:
        if port["portName"] == "X1":
            pnum = port["portNumber"]
            break
    uplinkSet["logicalPortConfigInfos"].append(hpOneView.common.make_port_config_info(1, 1, pnum))
    lig["uplinkSets"].append(uplinkSet)

    net_uris = [fcnetb["uri"]]
    uplinkSet = hpOneView.common.make_uplink_set_dict("SanBUplinkSet", net_uris, "FibreChannel")
    # Use same port number
    uplinkSet["logicalPortConfigInfos"].append(hpOneView.common.make_port_config_info(1, 2, pnum))
    lig["uplinkSets"].append(uplinkSet)

    lig = net.create_lig(lig)
    print("Creating Enclosure Group")
    egroup = hpOneView.common.make_egroup_dict("Enclosure Group", lig["uri"])
    egroup = srv.create_enclosure_group(egroup)
    print("Renaming Enclosure Group")
    egroup["name"] = "Renamed Enclosure Group"
    egroup = srv.update_enclosure_group(egroup)
    print("Adding Enclosure")
    # Find the first Firmware Baseline
    spp = settings.get_spps()[0]
    add_enclosure = hpOneView.common.make_add_enclosure_dict(
        enclosureIP, enclosureUser, enclosurePassword, egroup["uri"], firmwareBaseLineUri=spp["uri"]
    )
    enclosure = srv.add_enclosure(add_enclosure)
    print("Creating Profiles")
    # See if we need to turn any servers off
    servers = srv.get_servers()
    for server in servers:
        if server["powerState"] == "On":
            srv.set_server_powerstate(server, "Off", force=True)
    g7server = srv.get_server_by_bay(7)
    gen8server = srv.get_server_by_bay(13)
    connection1 = hpOneView.common.make_profile_connection_dict(
        enet, boot=hpOneView.common.make_profile_connection_boot_dict(priority="Primary")
    )
    connection2 = hpOneView.common.make_profile_connection_dict(
        fcneta,
        functionType="FibreChannel",
        boot=hpOneView.common.make_profile_connection_boot_dict(
            priority="Primary", arrayWwpn="5001438004C8E7F8", lun="1"
        ),
    )
    connection3 = hpOneView.common.make_profile_connection_dict(
        fcnetb,
        functionType="FibreChannel",
        boot=hpOneView.common.make_profile_connection_boot_dict(
            priority="Secondary", arrayWwpn="5001438004C8E7FC", lun="1"
        ),
    )
    connections = [connection1, connection2, connection3]
    firmwareBaseline = hpOneView.common.make_profile_firmware_baseline(spp["uri"])
    print("Creating G7 Profile")
    g7profile = hpOneView.common.make_add_profile_dict("G7 Profile", g7server, connections=connections)
    print("Creating Gen8 Profile")
    gen8profile = hpOneView.common.make_add_profile_dict(
        "Gen8 Profile", gen8server, connections=connections, firmwareBaseline=firmwareBaseline
    )
    g7profile = srv.create_server_profile(g7profile)
    gen8profile = srv.create_server_profile(gen8profile)
    g7profile["name"] = "Renamed G7 Profile"
    g7profile = srv.update_server_profile(g7profile)
    gen8profile["name"] = "Renamed Gen8 Profile"
    gen8profile = srv.update_server_profile(gen8profile)

    # Try searching now that we have resources
    resources = sear.get_resources("category=interconnect-types")
    print(("%s Interconnect Types" % len(resources)))
    resources = sear.get_resources({"category": "interconnect-types"})
    print(("%s Interconnect Types" % len(resources)))
    assoc = sear.get_associations("category=interconnect-types")
    print(("%s Associations" % len(assoc)))
    trees = sear.get_trees("category=interconnect-types")
    print(("%s Trees" % len(trees)))
    sugg = sear.get_search_suggestions("Flex")
    print(("%s Suggestions" % len(sugg["suggestions"])))

    # print('Generating LI Dump')
    # li = net.get_interconnects()
    # dumpInfo = settings.generate_support_dump(logicalInterconnect=li[0])
    # print('Downloading LI Dump')
    # settings.download_support_dump(dumpInfo)

    print("Generating appliance backup")
    backup = settings.generate_backup()
    print("Downloading appliance backup")
    settings.download_backup(backup)

    # Check and see if we have any new alerts
    alerts = act.get_alerts("Active")
    if len(alerts) > 0:
        print(("WARNING: You have %d active alerts" % (len(alerts))))
        for alert in alerts:
            print(("- " + alert["description"]))

    # Events
    events = act.get_events("filter=\"eventTypeID='Demo.Event'\"")
    numEvents = len(events)
    eventDetail = hpOneView.common.make_event_detail_dict("ipv4Address", enclosureIP)
    eventRecord = hpOneView.common.make_event_dict(
        description="Test", eventTypeID="Demo.Event", eventDetails=[eventDetail]
    )
    act.create_event(eventRecord)
    events = act.get_events("filter=\"eventTypeID='Demo.Event'\"")
    if len(events) is numEvents:
        print("WARNING: Event record not created")

    # Audit Logs
    logs = act.get_audit_logs("filter=\"componentId='Test'\"")
    numLogs = len(logs)
    auditRecord = hpOneView.common.make_audit_log_dict(
        componentId="Test", userId="Administrator", domain="Local", objectType="SERVER", msg="Test Log"
    )
    act.create_audit_log(auditRecord)
    logs = act.get_audit_logs("filter=\"componentId='Test'\"")
    if len(logs) is numLogs:
        print("WARNING: Audit log not created")

    # Paging example
    # pages = hpOneView.common.pages(act.get_alerts(), act._con)
    # firstPage = pages.currentPage
    # firstRecord = firstPage[0]
    # for page in pages:
    #    for record in page:
    #        pass  # OR print(record)
    # lastPage = pages.currentPage
    # lastRecord = lastPage[len(lastPage) - 1]

    print()
    print("We have now created everything. Check the UI and if all is good." " Press Enter to clean up.")
    input()

    # Clean Up
    print("Removing Profiles")
    srv.remove_server_profile(g7profile)
    srv.remove_server_profile(gen8profile)
    print("Removing Enclosure")
    srv.remove_enclosure(enclosure)
    print("Deleting Enclosure Group")
    srv.delete_enclosure_group(egroup)
    print("Deleting Logical Interconnect Group")
    net.delete_lig(lig)
    print("Deleting Network Set")
    net.delete_networkset(nset)
    print("Deleting FC Network")
    net.delete_network(fcneta)
    net.delete_network(fcnetb)
    print("Deleting Ethernet Network")
    net.delete_network(enet)
    # Check and see if we have any new alerts
    alerts = act.get_alerts("Active")
    if len(alerts) > 0:
        print(("WARNING: You have %d active alerts" % (len(alerts))))
        for alert in alerts:
            print((alert["description"]))
    con.logout()