Beispiel #1
0
def GetArgs():
    """
    Gestione degli argomenti
    """
    PARS = VcenterParams()
    parser = getBaseArgs(PARS)

    parser.add_argument(
        '-f',
        '--folder',
        required=False,
        action='store',
        default='/',
        help=
        'Percorso assoluto della cartella sul datacenter contenente le VM per cui elencare tag e categorie.'
    )

    parser.add_argument('-t',
                        '--type',
                        required=False,
                        nargs='?',
                        choices=['json', 'csv'],
                        action='store',
                        default='csv',
                        help='Formato di output da utilizzare.')

    args = parser.parse_args()
    return args
def GetArgs():
    """
    Gestione degli argomenti
    """
    PARS = VcenterParams()
    parser = getBaseArgs(PARS)

    parser.add_argument(
        '-f',
        '--folder',
        required=False,
        action='store',
        default='/',
        help=
        'Percorso assoluto della cartella sul datacenter contenente le VM per cui elencare tag e categorie.'
    )

    parser.add_argument(
        '--autosync',
        required=False,
        action='store',
        choices=['si', 'no'],
        default=None,
        help="Specifica se attivare o disattivare il sync dell'orologio")

    args = parser.parse_args()
    return args
def GetArgs():
    """
    Gestione degli argomenti
    """
    PARS = VcenterParams()
    parser = getBaseArgs(PARS)

    parser.add_argument(
        '-n',
        '--vmname',
        required=True,
        action='store',
        help='Nome della VM per la quale impostare tag e categorie.')

    # type = lambda s : s.upper()
    parser.add_argument(
        '-t',
        '--tags',
        required=True,
        nargs='+',
        action='store',
        help=
        'Elenco dei tag che devono essere associati alla macchina virtuale.')

    args = parser.parse_args()

    if args.user == 'sysadmin':
        args.password = PARS.SYSADMINPASSWORD

    return args
def GetArgs():
    """
    Gestione degli argomenti
    """
    PARS = VcenterParams()
    parser = getBaseArgs(PARS)

    parser.add_argument('-i',
                        '--ip',
                        required=True,
                        action='store',
                        help='Ip da ricercare')

    args = parser.parse_args()
    return args
def GetArgs():
    """
    Gestione degli argomenti
    """
    PARS = VcenterParams()
    parser = getBaseArgs(PARS)

    today = datetime.now()

    def_date = today.strftime(PARS.DATEFORMAT)

    subcommand = parser.add_subparsers(help='comando (help per aiuto)',
                                       dest="command")

    snap_create = subcommand.add_parser(
        'create', help='Creazione snaphost (create help per aiuto)')
    snap_delete = subcommand.add_parser(
        'delete', help='Cancellazione snaphost (delete help per aiuto)')
    snap_revert = subcommand.add_parser(
        'revert', help='Revert snaphost (revert help per aiuto)')

    snap_create.add_argument(
        '-f',
        '--folder',
        required=True,
        action='store',
        help=
        'Percorso assoluto della cartella sul datacenter contenente le VM per cui creare gli snapshot.'
    )

    snap_create.add_argument(
        'date',
        nargs='?',
        action='store',
        type=checkDate,
        default=def_date,
        help='Data da usare come nome degli snapshot (predefinita %s)' %
        def_date)

    snap_delete.add_argument(
        '-f',
        '--folder',
        required=True,
        action='store',
        help=
        'Percorso assoluto della cartella sul datacenter contenente le VM da cui eliminare gli snapshot.'
    )

    snap_delete.add_argument(
        'date',
        action='store',
        type=checkDate,
        help='Data che verrà usata come nome per gli snapshot da eliminare.')

    snap_delete.add_argument(
        '-c',
        '--cascade',
        action='store_true',
        required=False,
        help=
        'Se specificato verrà eliminato lo snapshot specificato e tutti gli snapshot dipendenti.'
    )

    snap_revert.add_argument('date',
                             action='store',
                             type=checkDate,
                             help='Data snapshot da ripristinare')

    snap_revert.add_argument(
        '-f',
        '--folder',
        required=True,
        action='store',
        help=
        'Percorso assoluto della cartella sul datacenter contenente le VM da riportare allo snapshot specificato.'
    )

    args = parser.parse_args()

    if args.user == 'sysadmin':
        args.password = PARS.SYSADMINPASSWORD
    return args
        vms = [
            vm for vm in vmdtc.getVirtualMachineList(folder=args.folder,
                                                     recursive=False)
        ]

    except Exception, e:
        sys.stderr.write(str(e))
        sys.exit(1)

    if not vms:
        sys.stderr.write(
            "Attenzione: nessuna Macchina virtuale trovata nella cartella %s\n"
            % args.folder)
        sys.exit(1)

    snap_name = args.date.strftime(VcenterParams().DATEFORMAT)

    snap_list = getSnapshotsListFromVm(vms, snap_name)

    try:
        if args.command == 'create':

            if len(snap_list) > 0:
                raise RuntimeError(
                    "Lo snapshot %s è già presente su una o più delle VM selezionate.\n"
                    % snap_name)

            vms.sort(key=lambda vm: vm.name, reverse=True)
            powerVm(vms, 'shutdown')
            createSnapshot(vms, snap_name)
            powerVm(vms, 'on')
Beispiel #7
0
def GetArgs():
    """
    Gestione degli argomenti
    """
    PARS = VcenterParams()
    parser = getBaseArgs(PARS)

    parser.add_argument(
        '-f',
        '--folder',
        required=False,
        action='store',
        default='/',
        help=
        'Percorso assoluto della cartella sul datacenter contenente le VM per cui elencare tag e categorie.'
    )

    subcommand = parser.add_subparsers(help='azione (help per aiuto)',
                                       dest="action")

    verify = subcommand.add_parser(
        'verify',
        help=
        'Verifica che le VM abbiano correttamente assegnati i TAG (verify help per aiuto)'
    )
    update = subcommand.add_parser(
        'update',
        help=
        'Aggiorna i file host_vars di Ansible per ciascuna VM (update help per aiuto)'
    )

    verify.add_argument(
        '-t',
        '--tags',
        required=False,
        nargs='+',
        action='store',
        default=MANDATORY_CATEGORY,
        type=lambda s: s.upper(),
        help=
        'Elenco dei tag che devono essere assegnati a ciascuna VM (predefinito %s).'
        % MANDATORY_CATEGORY)

    update.add_argument(
        '-t',
        '--tags',
        required=False,
        nargs='+',
        action='store',
        default=HOST_VARS_CATEGORY,
        type=lambda s: s.upper(),
        help=
        'Elenco dei tag che devono essere inseriti nel file host_vars di Ansible se presenti (predefinito %s).'
        % HOST_VARS_CATEGORY)

    args = parser.parse_args()

    if args.user == 'sysadmin':
        args.password = PARS.SYSADMINPASSWORD

    return args