Exemplo n.º 1
0
def vspherepage():
    form = vshpereForm()
    dict_yaml = {}
    if request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required.')
            return render_template('vsphere.html', form=form)
        else:
            dict_yaml['host'] = str(form.host._value())
            dict_yaml['port'] = str(form.port._value())
            dict_yaml['user'] = str(form.user._value())
            dict_yaml['password'] = str(form.password._value())
            dict_yaml['operation'] = dict(oper_choices).get(
                form.operation.data)
            dict_yaml['vappname'] = str(form.vappname._value())
            dict_yaml['snapname'] = str(form.snapname._value())
            with open('params.yml', 'w') as outfile:
                outfile.write(yaml.dump(dict_yaml, default_flow_style=False))
            vsphereInstance = vsphere()
            vsphereInstance.start_operation()
            return '%s is kicked off for the VMs inside vApp %s' % (
                dict_yaml['operation'], dict_yaml['vappname'])

    elif request.method == 'GET':
        return render_template('vsphere.html', form=form)
Exemplo n.º 2
0
def start_operation(operation, vappname, snapname, arguments_confirmed=False):
    if not arguments_confirmed:
        raw_input('Press ENTER to confirm vappname: {v}'.format(v=vappname))
        if bool(snapname):
            raw_input('Press ENTER to confirm operation: {o} {s}'.format(o=operation, s=snapname))
            
        else:
            raw_input('Press ENTER to confirm operation: {o}'.format(o=operation))
        raw_input('Press ENTER to start ...')

    with open("params.yml", 'r') as stream:
        params = yaml.load(stream)

    si = SmartConnect(
            host  = params['host'],
            user  = os.getenv('VSPHERE_USER'),
            pwd   = os.getenv('VSPHERE_PASSWORD'),
            port  = int(params['port']))

    atexit.register(Disconnect, si)

    content = si.RetrieveContent()

    vmFolderList = []
    for datacenter in content.rootFolder.childEntity:
        for citem in datacenter.vmFolder.childEntity:
            if type(citem) == pyVmomi.types.vim.Folder:
                vmFolderList = vmFolderList + citem.childEntity
            else:
                vmFolderList.append(citem)

    vs = vsphere.vsphere()

    if operation == 'list':
        vs.getmyList(vmFolderList)
    elif operation == 'ip':
        get_child_vm_ips(vmFolderList, vappname)
    elif operation == 'poweron':
        power_on(vmFolderList, vappname)
    elif operation == 'poweroff':
        power_off(vmFolderList, vappname)
    elif operation == 'revertsnapshot':
        vs.revertSnap_vapp(vmFolderList, vappname, snapname)
    elif operation == 'createsnapshot':
        vs.createSnap_vapp(vmFolderList, vappname, snapname)
    elif operation == 'deletesnapshot':
        vs.removeSnap_vapp(vmFolderList, vappname, snapname)
    else:
        print "operation {o} is not supported".format(o=operation)
Exemplo n.º 3
0
def vspherepage():
  form = vshpereForm()
  dict_yaml = {}
  if request.method == 'POST':
    if form.validate() == False:
        flash('All fields are required.')
        return render_template('vsphere.html', form=form)
    else:
        dict_yaml['host'] = str(form.host._value())
        dict_yaml['port'] = str(form.port._value())
        dict_yaml['user'] = str(form.user._value())
        dict_yaml['password'] = str(form.password._value())
        dict_yaml['operation'] = dict(oper_choices).get(form.operation.data)
        dict_yaml['vappname'] = str(form.vappname._value())
        dict_yaml['snapname'] = str(form.snapname._value())
        with open('params.yml', 'w') as outfile:
            outfile.write( yaml.dump(dict_yaml, default_flow_style=False) )
        vsphereInstance = vsphere()
        vsphereInstance.start_operation()
        return '%s is kicked off for the VMs inside vApp %s'%(dict_yaml['operation'], dict_yaml['vappname'])

  elif request.method == 'GET':
    return render_template('vsphere.html', form=form)