예제 #1
0
def server_list(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    vhList = []
    if lName:
        if tName and token:
            serverList = nova.server_list(token,
                                          daobase.getTenantOSIDByName(tName))
            for s in serverList:
                s.setdefault(
                    'flavorInfo',
                    nova.flavor_detail(token,
                                       daobase.getTenantOSIDByName(tName),
                                       s['flavor']['id']))
            return render_to_response('vh/server/server_list.html', locals(),
                                      RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #2
0
def floating_ip_associate(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            try:
                ip = request.GET['ip']
                ip = int(ip)
            except:
                ip = ''
            try:
                server = request.GET['server']
            except:
                server = ''
            serverList = nova.server_list(token, daobase.getTenantOSIDByName(tName))
            floatingIpList = nova.get_floating_ip_list(token, daobase.getTenantOSIDByName(tName))
            for i in floatingIpList:
                if i['instance_id']:
                    floatingIpList.remove(i)
            return render_to_response('vh/access/floatingIp_associate.html',
                                      locals(), RequestContext(request))
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #3
0
def floating_ip_associate(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            try:
                ip = request.GET['ip']
                ip = int(ip)
            except:
                ip = ''
            try:
                server = request.GET['server']
            except:
                server = ''
            serverList = nova.server_list(token,
                                          daobase.getTenantOSIDByName(tName))
            floatingIpList = nova.get_floating_ip_list(
                token, daobase.getTenantOSIDByName(tName))
            for i in floatingIpList:
                if i['instance_id']:
                    floatingIpList.remove(i)
            return render_to_response('vh/access/floatingIp_associate.html',
                                      locals(), RequestContext(request))
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #4
0
def folder_delete_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if(request.method == 'POST'):
                container = request.POST['containerName']
                path = request.POST['folderPath']
                if path:
                    folder_all = request.POST['folderPath'] + '/' + request.POST['folderName']
                else:
                    folder_all = request.POST['folderName']
                l1, l2 = swift.get_fileList(token, daobase.getTenantOSIDByName(tName), container, folder_all)
                if (len(l1) + len(l2)) > 0:
                    status = 404
                    reason = 'not empty'
                else:
                    status, reason = swift.folder_delete(token, daobase.getTenantOSIDByName(tName),
                    container, folder_all)
                if(status == 204):
                    messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, 'delete successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status, 'ERROR')
                    messages.add_message(request, messages.ERROR, reason, 'ERROR')
                return redirect('/cloudStorage/display/%s' % (container + '/' + path))
            else:
                return redirect('/cloudStorage/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #5
0
def server_creat(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            sourceTypeList = [{
                'key': 'Image',
                'value': 'Image'
            }, {
                'key': 'Snapshot',
                'value': 'Snapshot'
            }]
            imageList = glance.get_image_list(token)
            snapshotList = glance.get_server_snapshot_list(token)
            flavorList = nova.get_flavor_list(
                token, daobase.getTenantOSIDByName(tName))
            keypairList = nova.get_keypair_list(
                token, daobase.getTenantOSIDByName(tName))
            securityGroupList = nova.get_security_group_list(
                token, daobase.getTenantOSIDByName(tName))
            return render_to_response('vh/server/server_create.html', locals(),
                                      RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #6
0
def server_creat_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if (request.method == 'POST'):
                serverNmae = request.POST['serverName']
                if (request.POST['sourceType'] == 'Image'):
                    imageURL = 'http://192.168.0.50:9292/v2/images/' + request.POST[
                        'sourceImageSelect']
                if (request.POST['sourceType'] == 'Snapshot'):
                    imageURL = 'http://192.168.0.50:9292/v2/images/' + request.POST[
                        'sourceSnapshotSelect']
                flavorURL = "http://192.168.0.51:8774/v2/%s/flavor/%s" % (
                    daobase.getTenantOSIDByName(tName),
                    request.POST['sourceFlavorSelect'])
                metadata = {}
                # print imageURL
                # print flavorURL
                code, message = nova.server_create(
                    token, daobase.getTenantOSIDByName(tName), serverNmae,
                    imageURL, flavorURL, metadata)
                securityGropURL = "http://192.168.0.51:8774/v2/%s/os-security-groups/%s" % (
                    daobase.getTenantOSIDByName(tName),
                    request.POST['sourceSecurityGropSelect'])
                # print 'securityGroup'
                # print securityGropURL

                # print 'sourceKeypairSelect'
                # print request.POST['sourceKeypairSelect']

                # nova.server_create(token, daobase.getTenantOSIDByName(tName), server_name, imageRef, flavorRef, metadata)
                if (code == 200):
                    messages.add_message(request, messages.SUCCESS, code,
                                         'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, message,
                                         'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, code,
                                         'ERROR')
                    messages.add_message(request, messages.ERROR, message,
                                         'ERROR')
                return redirect('/virtualHost/server/list/')
            else:
                return redirect('/virtualHost/server/create/')
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #7
0
def algorithm_select(request, path):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            current_path = path + '/'
            temp = path + '/'
            parrent_path = []
            while(temp.find('/') > -1):
                if(len(parrent_path) > 0):
                    parrent_path.append({'k':parrent_path[len(parrent_path) - 1]['k'] + 
                                          temp[:temp.find('/') + 1],
                                         'v':temp[:temp.find('/')]})
                else:
                    parrent_path.append({'k':'/dataProcessing/algorithm/' + 
                                         current_path[:current_path.find('/') + 1],
                                         'v':temp[:temp.find('/')]})
                # print parrent_path
                temp = temp[temp.find('/') + 1:]
                # print temp
            # print path
            i = path.find('/')
            if(i > -1):
                container_name = path[:i]
                path = path[i + 1:]
            else:
                container_name = path
                path = ''
            # print container_name
            # print path
            files = request.session.get('col_algo', False)
            if files:
                fileList = files.split(';')
                fileList.remove('')
            else:
                fileList = []
            count = len(fileList)
            folder_list, file_list, = swift.get_fileList(token,
                daobase.getTenantOSIDByName(tName), container_name, path)
            container_list = swift.get_containerList(token,
                daobase.getTenantOSIDByName(tName))
            container_metadata = swift.get_ContainerMetadata(token,
                daobase.getTenantOSIDByName(tName), container_name)
            return render_to_response('dp/collection_file_selecta.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #8
0
def displsy(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            metadata = swift.get_metadata(token, daobase.getTenantOSIDByName(tName))
            container_list = swift.get_containerList(token, daobase.getTenantOSIDByName(tName))
            return render_to_response('cs/display.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #9
0
def floating_ip_associate_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if (request.method == 'POST'):
                ip = request.POST['ip']
                server = request.POST['server']
                status, reason = nova.floating_ip_associate(
                    token, daobase.getTenantOSIDByName(tName), ip, server)
                if (status == 202):
                    messages.add_message(request, messages.SUCCESS, status,
                                         'SUCCESS')
                    messages.add_message(request, messages.SUCCESS,
                                         'associate successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status,
                                         'ERROR')
                    messages.add_message(request, messages.ERROR, reason,
                                         'ERROR')
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #10
0
def floating_ip_deallocate(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            status, reason = nova.floating_ip_deallocate(
                token, daobase.getTenantOSIDByName(tName), id)
            if (status == 202):
                messages.add_message(request, messages.SUCCESS, status,
                                     'SUCCESS')
                messages.add_message(request, messages.SUCCESS,
                                     'deallocate successful', 'SUCCESS')
            else:
                messages.add_message(request, messages.ERROR, status, 'ERROR')
                messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #11
0
def data_process_launch(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            files = request.session.get('col_cart', False)
            if files:
                fileList = files.split(';')
                fileList.remove('')
            else:
                fileList = []
            count = len(fileList)
            files = request.session.get('col_algo', False)
            if files:
                fileList = files.split(';')
                fileList.remove('')
            else:
                fileList = []
            counta = len(fileList)
            project = tName
            flavorList = nova.get_flavor_list(token, daobase.getTenantOSIDByName(tName))
            return render_to_response('dp/process_launch.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/dataProcessing/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #12
0
def folder_create_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if request.method == 'POST':
                container = request.POST['container']
                path = request.POST['folderPath']
                folder_full = path[len(container) + 1:] + request.POST['folderName']
                # print type(folder_full)
                # print folder_full
                status, reason = swift.folder_create(token, daobase.getTenantOSIDByName(tName),
                    container, folder_full)
                if status == 201:
                    messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, reason, 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status, 'ERROR')
                    messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/cloudStorage/display/%s' % (path))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #13
0
def floating_ip_unassociate(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            try:
                ip = request.GET['ip']
            except:
                ip = False
            try:
                server = request.GET['server']
            except:
                server = False
            if(ip and server):
                status, reason = nova.floating_ip_unassociate(token,
                                daobase.getTenantOSIDByName(tName), ip, server)
                if(status == 202):
                    messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, 'unassociate successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status, 'ERROR')
                    messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #14
0
def volume_create_snapshot_submit(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if (request.method == 'POST'):
                s_name = request.POST['snapshotName']
                s_desc = request.POST['snapshotDesc']
                status, reason = nova.volume_create_snapshot(
                    token, daobase.getTenantOSIDByName(tName), s_name, s_desc,
                    id)
                if (status == 200):
                    messages.add_message(request, messages.SUCCESS, status,
                                         'SUCCESS')
                    messages.add_message(request, messages.SUCCESS,
                                         'create successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status,
                                         'ERROR')
                    messages.add_message(request, messages.ERROR, reason,
                                         'ERROR')
            return redirect('/virtualHost/snapshot/list/')
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #15
0
def server_list(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    vhList = []
    if lName:
        if tName and token:
            serverList = nova.server_list(token, daobase.getTenantOSIDByName(tName))
            for s in serverList:
                s.setdefault('flavorInfo', nova.flavor_detail(token,
                            daobase.getTenantOSIDByName(tName), s['flavor']['id']))
            return render_to_response('vh/server/server_list.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #16
0
def container(request, path):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            current_path = path + '/'
            temp = path + '/'
            parrent_path = []
            while(temp.find('/') > -1):
                if(len(parrent_path) > 0):
                    parrent_path.append({'k':parrent_path[len(parrent_path) - 1]['k'] + 
                                          temp[:temp.find('/') + 1],
                                         'v':temp[:temp.find('/')]})
                else:
                    parrent_path.append({'k':'/cloudStorage/display/' + 
                                         current_path[:current_path.find('/') + 1],
                                         'v':temp[:temp.find('/')]})
                # print parrent_path
                temp = temp[temp.find('/') + 1:]
                # print temp
            # print path
            i = path.find('/')
            if(i > -1):
                container_name = path[:i]
                path = path[i + 1:]
            else:
                container_name = path
                path = ''
            # print container_name
            # print path
            folder_list, file_list, = swift.get_fileList(token,
                daobase.getTenantOSIDByName(tName), container_name, path)
            container_list = swift.get_containerList(token,
                daobase.getTenantOSIDByName(tName))
            container_metadata = swift.get_ContainerMetadata(token,
                daobase.getTenantOSIDByName(tName), container_name)
            return render_to_response('cs/display_container.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #17
0
def server_creat_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if (request.method == 'POST'):
                serverNmae = request.POST['serverName']
                if (request.POST['sourceType'] == 'Image'):
                    imageURL = 'http://192.168.0.50:9292/v2/images/' + request.POST['sourceImageSelect']
                if (request.POST['sourceType'] == 'Snapshot'):
                    imageURL = 'http://192.168.0.50:9292/v2/images/' + request.POST['sourceSnapshotSelect']
                flavorURL = "http://192.168.0.51:8774/v2/%s/flavor/%s" % (
                    daobase.getTenantOSIDByName(tName), request.POST['sourceFlavorSelect'])
                metadata = {}
                # print imageURL
                # print flavorURL
                code, message = nova.server_create(token, daobase.getTenantOSIDByName(tName),
                        serverNmae, imageURL, flavorURL, metadata)
                securityGropURL = "http://192.168.0.51:8774/v2/%s/os-security-groups/%s" % (
                    daobase.getTenantOSIDByName(tName), request.POST['sourceSecurityGropSelect'])
                # print 'securityGroup'
                # print securityGropURL

                # print 'sourceKeypairSelect'
                # print request.POST['sourceKeypairSelect']
                
                # nova.server_create(token, daobase.getTenantOSIDByName(tName), server_name, imageRef, flavorRef, metadata)
                if(code == 200):
                    messages.add_message(request, messages.SUCCESS, code, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, message, 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, code, 'ERROR')
                    messages.add_message(request, messages.ERROR, message, 'ERROR')
                return redirect('/virtualHost/server/list/')
            else:
                return redirect('/virtualHost/server/create/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #18
0
def tenant_select(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        master = daozo.getMasterOfAccount(lName)
        if tName and token:
            currentTenant = tName
            currentToken = token
        else:
            currrentTenant = None
            currentToken = None
        projectList = []
        res = daozo.getTenantList(lName)
        if master:
            for i in range(len(res)):
                url_s = '/cloudStorage/project/select/submit/?s=' + res[i][0]
                tenant = {
                          'name':res[i][0],
                          'role':res[i][1],
                          'desc':res[i][2],
                          'time':res[i][3],
                          'url_s':url_s,
                          }
                projectList.append(tenant)
        else:
            for i in range(len(res)):
                url_s = '/cloudStorage/project/select/submit/?s=' + res[i][0]
                tenant = {
                          'name':res[i][0],
                          'role':res[i][1],
                          'desc':res[i][2],
                          'time':res[i][3],
                          'url_s':url_s,
                          }
                projectList.append(tenant)
        metadata = swift.get_metadata(token, daobase.getTenantOSIDByName(tName))
        container_list = swift.get_containerList(token, daobase.getTenantOSIDByName(tName))
        return render_to_response('cs/project_select.html', locals(), RequestContext(request))
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #19
0
def server_creat(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            sourceTypeList = [{'key':'Image', 'value':'Image'},
                          {'key':'Snapshot', 'value':'Snapshot'}]
            imageList = glance.get_image_list(token)
            snapshotList = glance.get_server_snapshot_list(token)
            flavorList = nova.get_flavor_list(token, daobase.getTenantOSIDByName(tName))
            keypairList = nova.get_keypair_list(token, daobase.getTenantOSIDByName(tName))
            securityGroupList = nova.get_security_group_list(token, daobase.getTenantOSIDByName(tName))
            return render_to_response('vh/server/server_create.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #20
0
def data_process_status(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            dpDetail = daozo.data_processing_detail(id)
            try:
                status = dpDetail['status']
            except:
                messages.add_message(request, messages.ERROR, 'select a data processing.')
                return redirect('/dataProcessing/history/')
            else:
                if status == 'building':
                    serverList = nova.server_list(token, daobase.getTenantOSIDByName(tName))
                    for s in serverList:
                        if s['name'].find(daobase.getDataProcessingServerNameByID(int(id)))>-1:
                            s.setdefault('flavorInfo', nova.flavor_detail(token,
                                        daobase.getTenantOSIDByName(tName), s['flavor']['id']))
                        else:
                            serverList.remove(s)                        
                    return render_to_response('dp/_step_building.html',
                                          locals(), RequestContext(request))
                if status == 'setting':
                    return render_to_response('dp/_step_setting.html',
                                          locals(), RequestContext(request))
                if status == 'running':
                    return render_to_response('dp/_step_running.html',
                                          locals(), RequestContext(request))
                if status == 'releasing':
                    return render_to_response('dp/_step_releasing.html',
                                          locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/dataProcessing/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #21
0
def folder_create(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            path = request.GET['p']
            i = path.find('/')
            if(i > -1):
                container_name = path[:i]
            else:
                container_name = path
            container_list = swift.get_containerList(token,
                daobase.getTenantOSIDByName(tName))
            container_metadata = swift.get_ContainerMetadata(token,
                daobase.getTenantOSIDByName(tName), container_name)
            return render_to_response('cs/folder_create.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #22
0
def security_list(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            securityGroupList = nova.get_security_group_list(token, daobase.getTenantOSIDByName(tName))
            return render_to_response('vh/security/security_list.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #23
0
def volume_detail(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            volumeDetail = nova.volume_detail(token, daobase.getTenantOSIDByName(tName), id)
            return render_to_response('vh/volume/volume_detail.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #24
0
def floating_ip_allocate(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            floatingIpPoolList = nova.get_floating_ip_pool(token, daobase.getTenantOSIDByName(tName))
            return render_to_response('vh/access/floatingIp_allocate.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #25
0
def summary(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if request.method == 'POST':
                t1 = request.POST['sDate1']
                t2 = request.POST['sDate2']
                # print t1
                # year = t1[:t1.find('-')]
                # print year
                # left = t1[len(year) + 1:]
                # print left
                # month = t1[len(year) + 1:][:t1[len(year) + 1:].find('-')]
                # print month
                # date = t1[len(year) + 1:][t1[len(year) + 1:].find('-') + 1:]
                # print date
                start = datetime.datetime(
                    int(t1[:t1.find('-')]),
                    int(t1[len(t1[:t1.find('-')]) +
                           1:][:t1[len(t1[:t1.find('-')]) + 1:].find('-')]),
                    int(t1[len(t1[:t1.find('-')]) +
                           1:][t1[len(t1[:t1.find('-')]) + 1:].find('-') +
                               1:]), 0, 0, 0, 0).isoformat()
                end = datetime.datetime(
                    int(t2[:t2.find('-')]),
                    int(t2[len(t2[:t2.find('-')]) +
                           1:][:t2[len(t2[:t2.find('-')]) + 1:].find('-')]),
                    int(t2[len(t2[:t2.find('-')]) +
                           1:][t2[len(t2[:t2.find('-')]) + 1:].find('-') +
                               1:]), 23, 59, 59, 999999.99).isoformat()
            else:
                now = datetime.datetime.now()
                start = datetime.datetime(now.year, now.month, 1, 0, 0, 0,
                                          0).isoformat()
                end = now.isoformat()
            projectUsage, serverUsageList = nova.tenant_usage(
                token, daobase.getTenantOSIDByName(tName), start, end)
            return render_to_response('vh/summary/summary.html', locals(),
                                      RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #26
0
def tenant_select_submit(request):
    lName = request.session.get('name', False)
    lPass = request.session.get('pass', False)
    if lName and lPass:
        tenant_name = request.GET['s']
        tenant_id = daobase.getTenantOSIDByName(tenant_name)
        token, mes = tokenApi.get_tenant_token(lName, lPass, tenant_id)
        request.session['tenant'] = tenant_name
        request.session['token'] = token
        currentTenant = tenant_name
        currentToken = token
        messages.add_message(request, messages.INFO, 'peoject changed', 'INFO')
        return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #27
0
def container_create_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            status, reason = swift.container_create(token,
                daobase.getTenantOSIDByName(tName), request.POST['containerName'])
            messages.add_message(request, messages.INFO, status, 'INFO')
            messages.add_message(request, messages.INFO, reason, 'INFO')
            return redirect('/cloudStorage/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #28
0
def security_list(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            securityGroupList = nova.get_security_group_list(
                token, daobase.getTenantOSIDByName(tName))
            return render_to_response('vh/security/security_list.html',
                                      locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #29
0
def volume_detail(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            volumeDetail = nova.volume_detail(
                token, daobase.getTenantOSIDByName(tName), id)
            return render_to_response('vh/volume/volume_detail.html', locals(),
                                      RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #30
0
def floating_ip_allocate(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            floatingIpPoolList = nova.get_floating_ip_pool(
                token, daobase.getTenantOSIDByName(tName))
            return render_to_response('vh/access/floatingIp_allocate.html',
                                      locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR,
                                 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.',
                             'WARNING')
        return redirect('/login/')
예제 #31
0
def floating_ip_deallocate(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            status, reason = nova.floating_ip_deallocate(token, daobase.getTenantOSIDByName(tName), id)
            if(status == 202):
                messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                messages.add_message(request, messages.SUCCESS, 'deallocate successful', 'SUCCESS')
            else:
                messages.add_message(request, messages.ERROR, status, 'ERROR')
                messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #32
0
def floating_ip_allocate_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if (request.method == 'POST'):
                pool = request.POST['sourcePool']
                status, reason = nova.floating_ip_allocate(token, daobase.getTenantOSIDByName(tName), pool)
                if(status == 200):
                    messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, 'allocate successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status, 'ERROR')
                    messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/virtualHost/access/list/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #33
0
def algorithm_set(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            container_list = swift.get_containerList(token,
                daobase.getTenantOSIDByName(tName))
            algos = request.session.get('col_algo', False)
            if algos:
                fileList = algos.split(';')
                fileList.remove('')
            else:
                fileList = []
            count = len(fileList)
            return render_to_response('dp/collection_container_selecta.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/dataProcessing/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #34
0
def container_delete_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if(request.method == 'POST'):
                status, reason = swift.container_delete(token, daobase.getTenantOSIDByName(tName),
                    request.POST['containerName'])
                if(status == 204):
                    messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, 'delete successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status, 'ERROR')
                    messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/cloudStorage/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/cloudStorage/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #35
0
def summary(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if request.method == 'POST':
                t1 = request.POST['sDate1']
                t2 = request.POST['sDate2']
                # print t1
                # year = t1[:t1.find('-')]
                # print year
                # left = t1[len(year) + 1:]
                # print left
                # month = t1[len(year) + 1:][:t1[len(year) + 1:].find('-')]
                # print month
                # date = t1[len(year) + 1:][t1[len(year) + 1:].find('-') + 1:]
                # print date
                start = datetime.datetime(int(t1[:t1.find('-')]),
                                          int(t1[len(t1[:t1.find('-')]) + 1:][:t1[len(t1[:t1.find('-')]) + 1:].find('-')]),
                                          int(t1[len(t1[:t1.find('-')]) + 1:][t1[len(t1[:t1.find('-')]) + 1:].find('-') + 1:]),
                                          0, 0, 0, 0).isoformat()
                end = datetime.datetime(int(t2[:t2.find('-')]),
                                        int(t2[len(t2[:t2.find('-')]) + 1:][:t2[len(t2[:t2.find('-')]) + 1:].find('-')]),
                                        int(t2[len(t2[:t2.find('-')]) + 1:][t2[len(t2[:t2.find('-')]) + 1:].find('-') + 1:]),
                                        23, 59, 59, 999999.99).isoformat()
            else:
                now = datetime.datetime.now()
                start = datetime.datetime(now.year, now.month, 1, 0, 0, 0, 0).isoformat()
                end = now.isoformat()
            projectUsage, serverUsageList = nova.tenant_usage(token, daobase.getTenantOSIDByName(tName), start, end)
            return render_to_response('vh/summary/summary.html', locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #36
0
def server_create_snapshot_submit(request, id):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            if (request.method == 'POST'):
                s_name = request.POST['snapshotName']
                status, reason = nova.server_create_image(token,
                        daobase.getTenantOSIDByName(tName), id, s_name)
                if(status == 202):
                    messages.add_message(request, messages.SUCCESS, status, 'SUCCESS')
                    messages.add_message(request, messages.SUCCESS, 'create successful', 'SUCCESS')
                else:
                    messages.add_message(request, messages.ERROR, status, 'ERROR')
                    messages.add_message(request, messages.ERROR, reason, 'ERROR')
            return redirect('/virtualHost/snapshot/list/')
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/virtualHost/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')
예제 #37
0
def data_process_launch_submit(request):
    lName = request.session.get('name', False)
    tName = request.session.get('tenant', False)
    token = request.session.get('token', False)
    if lName:
        if tName and token:
            files = request.session.get('col_cart', False)
            if files:
                fileList = files.split(';')
                fileList.remove('')
            else:
                fileList = []
            algos = request.session.get('col_algo', False)
            if algos:
                algoList = algos.split(';')
                algoList.remove('')
            else:
                algoList = []
            output = request.POST['processOutput']
            processName = request.POST['processName']
            image = "http://192.168.0.50:9292/v2/images/be5823fe-d2bd-4de1-af40-7d09733fab5c"
            flavorURL = "http://192.168.0.51:8774/v2/%s/flavor/%s" % (
                    daobase.getTenantOSIDByName(tName), request.POST['serverFlavor'])
            serverCount = request.POST['serverCount']
            serverLabel = request.POST['serverLabel']
            serverMeta = 'defaultServerMeta'
            hadoopMeta = 'defaultHadoopMeta'
            if(algos and files):
                flag = daozo.data_processing_launch(processName, tName, lName,
                    algos, files, output, serverLabel, int(serverCount),
                    flavorURL, serverMeta, hadoopMeta)
            else:
                messages.add_message(request, messages.ERROR, 'please check datas and algos.')
                flag = False
            if flag:
                processid = daobase.getDataProcessingIDByName(processName)
                hadoopController.hadoop(token, daobase.getTenantOSIDByName(tName), 
                                        processid, processName, int(serverCount),
                                        serverLabel, image, flavorURL, 
                                        files, algos, output,
                                        serverMeta, hadoopMeta)
                try:
                    del request.session['col_cart']
                    del request.session['col_algo']
                    messages.add_message(request, messages.SUCCESS,
                                         'data processing launch successful.')
                    return redirect('/dataProcessing/monitor/%s/' % (processid))
                except:
                    messages.add_message(request, messages.ERROR,
                                         'data processing launch failedddd.')
                    return redirect('/dataProcessing/launch/')
            else:
                count = len(fileList)
                counta = len(algoList)
                project = tName
                flavorList = nova.get_flavor_list(token, daobase.getTenantOSIDByName(tName))
                messages.add_message(request, messages.ERROR, 'something wrong.')
                return render_to_response('dp/process_launch.html',
                                          locals(), RequestContext(request))
        else:
            messages.add_message(request, messages.ERROR, 'select your project.')
            return redirect('/dataProcessing/project/select/')
    else:
        messages.add_message(request, messages.WARNING, 'Please login first.', 'WARNING')
        return redirect('/login/')