def slice_info(request, parameter):
    all_values = []

    server_ip = util.SERVER_IP
    server_port = util.SERVER_PORT


    slice_id = parameter
    slivers = getview.get_view_slice_id_all_slivers_most_recent(slice_id)

    count = 0
    for container in slivers:
        sliver= container
        count +=1
        sliver_name = documentparser.get_value(sliver, 'sliver_name')
        sliver_cpu_usage = documentparser.get_value(sliver,'sliver_cpu_usage')
        sliver_slice_name = documentparser.get_value(sliver, 'sliver_slice_name')
        sliver_total_memory = documentparser.get_value(sliver, 'sliver_total_memory')
        sliver_total_memory_free = documentparser.get_value(sliver, 'sliver_total_memory_free')
        sliver_total_memory_percent_used = documentparser.get_value(sliver, 'sliver_total_memory_percent_used')
        nodeid = documentparser.get_value(sliver, "nodeid")

        sliver_total_memory, sliver_total_memory_free = util.convert_bytes_to_human_readable([sliver_total_memory, sliver_total_memory_free])

        all_values.append({'sliver_name': sliver_name, 'sliver_cpu_usage':sliver_cpu_usage, 'sliver_slice_name':sliver_slice_name,
                           'sliver_total_memory':sliver_total_memory, 'sliver_total_memory_free': sliver_total_memory_free,
                           'sliver_total_memory_percent_used':sliver_total_memory_percent_used, 'serial':count, 'nodeid': nodeid})


    # Populate Treemap graph
    values = getview.get_view_slice_most_recent_attribute_treemap( slice_id, 'sliver_cpu_usage')
    values_graph = json.dumps(values)


    return render_to_response('sliceinfo.html',{'server_ip': server_ip, 'server_port': server_port,'all_values':all_values, 'values_graph': values_graph},context_instance=RequestContext(request))
def get_view_all_nodes_most_recent():
    log.debug("Get most recent view for all nodes")

    db = store.get_bucket()

    all_values = {}

    view_by_node_most_recent = db.view('_design/node-mostrecent/_view/get_node-mostrecent', include_docs= True)

    for node in view_by_node_most_recent:

        json_value = node['doc']
        document = json_value['json']
        name = documentparser.get_value(document, "name")
        nodeid = documentparser.get_value(document, "nodeid")
        disk_size = documentparser.get_value(document, "disk_size")
        load_avg_1min = documentparser.get_value(document, "load_avg_1min")
        memory_percent_used = documentparser.get_value(document, "memory_percent_used")
        uptime_secs = documentparser.get_value(document, "uptime")
        last_updated = documentparser.return_server_time(document)
        total_memory = documentparser.get_value(document,"total_memory")
        num_cpu = documentparser.get_value(document, "number_of_cpus")
        cpu_usage = documentparser.get_value(document, "total_cpu_usage")
        data_sent= documentparser.get_value(document, "network_total_bytes_sent_last_sec")
        data_received = documentparser.get_value(document, "network_total_bytes_received_last_sec")

        ## Human readability######
        uptime = util.convert_secs_to_time_elapsed(uptime_secs)
        disk_size,total_memory,data_sent, data_received = util.convert_bytes_to_human_readable([disk_size,total_memory, data_sent, data_received])


        all_values.update({nodeid:{'num_cpu': num_cpu, 'percent_usage': cpu_usage ,
                       'last_updated': last_updated , 'name':name, 'total_memory': total_memory ,
                       'disk_size':disk_size, 'load_avg_1min':load_avg_1min, 'memory_percent_used':memory_percent_used, 'data_sent':data_sent,
                       'data_received':data_received, 'uptime':uptime}})




    return all_values
def node_slivers (request, parameter):

    server_ip = util.SERVER_IP
    server_port = util.SERVER_PORT

    all_values = []
    values_graph = []
    network_values = []
    disk_values = []
    memory_values=[]
    node_in_db = False
    name= parameter

    node_id = parameter
    document = fetchdocument.fetch_most_recent_document(node_id)
    slivers = documentparser.get_value(document, 'slivers')
    print " NODE ID: ", node_id


    count = 0
    if(document):
        node_in_db = True
        if slivers:
            for container in slivers:
                sliver= slivers[container]
                count +=1
                sliver_name = documentparser.get_value(sliver, 'sliver_name')
                sliver_cpu_usage = documentparser.get_value(sliver,'sliver_cpu_usage')
                sliver_slice_name = documentparser.get_value(sliver, 'sliver_slice_name')
                sliver_total_memory = documentparser.get_value(sliver, 'sliver_total_memory')
                sliver_total_memory_free = documentparser.get_value(sliver, 'sliver_total_memory_free')
                sliver_total_memory_percent_used = documentparser.get_value(sliver, 'sliver_total_memory_percent_used')
                sliver_ip = documentparser.get_value(sliver, 'sliver_ip')
                sliver_state = documentparser.get_value(sliver, 'sliver_state')

                sliver_total_memory, sliver_total_memory_free = util.convert_bytes_to_human_readable([sliver_total_memory, sliver_total_memory_free])

                all_values.append({'sliver_name': sliver_name, 'sliver_cpu_usage':sliver_cpu_usage, 'sliver_slice_name':sliver_slice_name,
                               'sliver_total_memory':sliver_total_memory, 'sliver_total_memory_free': sliver_total_memory_free,
                               'sliver_total_memory_percent_used':sliver_total_memory_percent_used, 'sliver_ip':sliver_ip,
                               'sliver_state': sliver_state,'serial':count})


                 # Populate Treemap graph
                values = getview.get_view_sliver_most_recent_attribute_treemap( node_id, 'sliver_cpu_usage')
                values_graph = json.dumps(values)


        #Network Values
        name = documentparser.get_value(document, "name")
        nodeid = documentparser.get_value(document, "nodeid")
        network_values= documentparser.get_set(document, "network")

        #Disk Values
        disk_values= documentparser.get_set(document, "disk")

        #Disk Values
        memory_values= documentparser.get_set(document, "memory")

    return render_to_response('node_slivers.html',{'disk_values':disk_values, 'all_values':all_values,
                                                   'values_graph':values_graph, 'network_values':network_values,'nodeid':node_id,
                                                   'name':name, 'server_ip': server_ip, 'server_port': server_port,
                                                   'numberslivers': count, 'node_in_db':node_in_db, 'memory_values': memory_values},
                                                    context_instance=RequestContext(request))