From 43b1ec35702758b4f1886458021dcc297b8c5a0f Mon Sep 17 00:00:00 2001
From: Enris Nogare von Tein <ent13@inf.ufpr.br>
Date: Mon, 13 Jun 2016 10:31:59 -0300
Subject: [PATCH] Removed the CRC generator, it will be done by the
 taskmanager.

Signed-off-by: Enris Nogare von Tein <ent13@inf.ufpr.br>
---
 .gitignore                    |   1 +
 useful/stg312/.size.out       |   2 +-
 useful/stg312/.upid.out       |   1 +
 useful/stg312/clone_stage4.sh |   2 +-
 useful/stg312/openslx_gui     | Bin 96516 -> 96540 bytes
 useful/stg312/upload-utils.c  |   4 +-
 useful/stg312/utils.c         | 476 +---------------------------------
 7 files changed, 8 insertions(+), 478 deletions(-)

diff --git a/.gitignore b/.gitignore
index f3557344..5dc86727 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ build/
 .fetched_source
 list*
 test
+scripts/.resut.out
 logs/
 server/local_builds/
 /config
diff --git a/useful/stg312/.size.out b/useful/stg312/.size.out
index 04ddde3e..b2a5411b 100644
--- a/useful/stg312/.size.out
+++ b/useful/stg312/.size.out
@@ -1 +1 @@
-6906932	heuhue.r1.tar.gz
+1725600	testando-sem-crc-2.r1.tar.gz
diff --git a/useful/stg312/.upid.out b/useful/stg312/.upid.out
index e69de29b..c39cab25 100644
--- a/useful/stg312/.upid.out
+++ b/useful/stg312/.upid.out
@@ -0,0 +1 @@
+{"uploadid":"QzD0kFOzZ5W22miyHCooFOsN85ypK4ZsjRp","status":"ok","code":"003","msg":"New upload succesful"}
\ No newline at end of file
diff --git a/useful/stg312/clone_stage4.sh b/useful/stg312/clone_stage4.sh
index b533badf..237689e7 100755
--- a/useful/stg312/clone_stage4.sh
+++ b/useful/stg312/clone_stage4.sh
@@ -35,7 +35,7 @@ else
 					rm -rf  "$4"
 			fi
 			cd "$2"
-			/root/dnbd3/build/dnbd3-server --crc "$5"
+			#/root/dnbd3/build/dnbd3-server --crc "$5"
 			tar cvzf "$5".tar.gz user_data.info "$5" "$5".crc
 			split --verbose -n $7 "$5".tar.gz "$5".tar.gz.
 			du "$5".tar.gz > .size.out
diff --git a/useful/stg312/openslx_gui b/useful/stg312/openslx_gui
index 4b3a28a9778424b8988c0491d134cd3d04757dde..f85970bf66db33352eb881a20c42cd7551632f7a 100755
GIT binary patch
delta 9166
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
CaA9)*

delta 9047
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

diff --git a/useful/stg312/upload-utils.c b/useful/stg312/upload-utils.c
index d80fb824..e9a0785c 100644
--- a/useful/stg312/upload-utils.c
+++ b/useful/stg312/upload-utils.c
@@ -387,7 +387,7 @@ void faz_upload_dummy(GtkWidget *w, gpointer p){
 //função de teste que faz upload da imagem teste.r1
 void faz_upload_teste(GtkWidget *w, gpointer p){
 
-    GtkWidget *loading;
+    GtkWidget *loading, *window_stg4_upload_confirm;
 	GtkBuilder *builder;
     int i;
     struct dados *data = malloc(sizeof(*data));
@@ -402,6 +402,7 @@ void faz_upload_teste(GtkWidget *w, gpointer p){
     builder = gtk_builder_new();
 	gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
     loading = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen"));
+    window_stg4_upload_confirm = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_upload_confirm"));
 
     gtk_widget_show_all(loading);
     strcpy(argv[0], "./upload");
@@ -412,6 +413,7 @@ void faz_upload_teste(GtkWidget *w, gpointer p){
     g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL);
     handler = sai_do_script;
     data->dado6 = loading;
+    data->dado1 = window_stg4_upload_confirm;
     data->pid = pid;
     g_child_watch_add(pid, handler, data);
     stg4_tela_confirmacao_upload(NULL, p);
diff --git a/useful/stg312/utils.c b/useful/stg312/utils.c
index 5a536f30..34370a58 100644
--- a/useful/stg312/utils.c
+++ b/useful/stg312/utils.c
@@ -18,481 +18,6 @@
 #include <sys/types.h>
 #include <signal.h>
 
-/*
-int checa_upload_antigo(){
-
-    FILE *upload_in_progress;
-    char *old_upload;
-    old_upload = malloc(255*sizeof(char));
-
-    upload_in_progress = fopen(".progress.out", "a+");
-    printf("Linha %d\n", __LINE__);
-    rewind(upload_in_progress);
-    fscanf(upload_in_progress, "%s", old_upload);
-    printf("Linha %d\n", __LINE__);
-
-    puts(old_upload);
-    if(!(strcmp(old_upload, "Upload"))){
-        return 1;
-    }
-    return 0;
-}
-
-int calcula_tempo_upload(){
-
-    FILE *velocidade_upload;
-    velocidade_upload = fopen(".speed.out", "r");
-
-    char *velocidade;
-    velocidade =  malloc(255*sizeof(char));
-    int velocidade_f;
-
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    fscanf(velocidade_upload, "%s", velocidade);
-    puts(velocidade);
-    puts("vai calcular");
-    velocidade_f = atoi(velocidade);
-    puts("calculou");
-    puts("chegou aqui");
-    return((1953)/velocidade_f*3); // *3 para levar em conta problemas de rede.
-}
-
-//Função que gera o arquivo de dados do usuario, tanto os que foram recebidos do banco quanto informaçõs de sistema. Esse arquivo
-// sera submetido junto à imagem quando o upload for feito.
-void gera_arquivo_dados_usuario(){
-
-    user_info dados_do_user;
-    pega_dados_do_usuario(&dados_do_user);
-    FILE *user_data_file;
-    user_data_file = fopen("user_data.info", "wr");
-
-    fputs("Nome do criador da imagem: ", user_data_file);
-    fputs(dados_do_user.name, user_data_file);
-    fputs("\nLogin do criador da imagem: ", user_data_file);
-    fputs(dados_do_user.login, user_data_file);
-    fputs("\nEmail do criador da imagem: ", user_data_file);
-    fputs(dados_do_user.email, user_data_file);
-    fputs("\nCidade do criador da imagem: ", user_data_file);
-    fputs(dados_do_user.city, user_data_file);
-
-    time_t timer;
-    time(&timer);
-    fputs("\nData da criação da imagem: ", user_data_file);
-    fputs(ctime(&timer), user_data_file);
-
-    fclose(user_data_file);
-    system("uname -a >> user_data.info");
-    system("lsb_release -a >> user_data.info");
-
-
-
-
-}
-
-//Função que checa o arquivo .login.out para verificar o suceso do login.
-int checa_sucesso_do_login(){
-
-    FILE *login;
-    char *user_data_str;
-    login = fopen(".login.out", "r");;
-    user_data_str = malloc(2550*sizeof(char));
-    fgets(user_data_str,2550*sizeof(char), login );
-
-    printf("%zu tamanho da string\n", strlen(user_data_str));
-    puts(user_data_str);
-
-    json_t *root;
-    json_error_t error;
-    root = json_loads(user_data_str,0, &error);
-    printf("Linha %d\n", __LINE__);
-
-    if(!root){
-        puts("erro ao carregar dados!");
-        //exit(0);
-    }
-    printf("Linha %d\n", __LINE__);
-
-    if(!json_is_object(root))
-    {
-        fprintf(stderr, "error: root is not an array\n");
-        json_decref(root);
-    }
-    printf("Linha %d\n", __LINE__);
-
-    json_t  *sha;
-    printf("Linha %d\n", __LINE__);
-
-    const char *message_text;
-    printf("Linha %d\n", __LINE__);
-
-    sha = json_object_get(root, "status");
-    printf("Linha %d\n", __LINE__);
-
-    if(json_is_string(sha))
-    {
-        printf("Linha %d\n", __LINE__);
-        message_text = json_string_value(sha);
-        printf("Linha %d\n", __LINE__);
-        puts(message_text);
-        printf("Linha %d\n", __LINE__);
-    }else{
-        printf("Linha %d\n", __LINE__);
-        puts("error, not string");
-        return 0;
-        printf("Linha %d\n", __LINE__);
-    }
-
-    if(!(strcmp("ok", message_text))){
-        printf("Linha %d\n", __LINE__);
-        puts(message_text);
-        return 1;
-    }
-
-    printf("Linha %d\n", __LINE__);
-    return 0;
-
-
-}
-
-//Função que utiliza o arquivo gerado pela chamada Curl com os dados do usuario e coloca eles na estrutura user_info *dados
-void pega_dados_do_usuario(user_info *dados){
-
-    FILE *user_data;
-    char *user_data_str;
-    user_data_str = malloc(2550*sizeof(char));
-    user_data = fopen(".data.out", "r");
-    fgets(user_data_str,2550*sizeof(char), user_data );
-    puts("User data: ");
-    puts(user_data_str);
-    puts("User data end ");
-
-    json_t *root;
-    json_error_t error;
-    root = json_loads(user_data_str,0, &error);
-    if(!root){
-        puts("erro ao carregar dados!");
-        //exit(0);
-    }
-
-    if(!json_is_object(root))
-    {
-        fprintf(stderr, "error: root is not an array\n");
-        json_decref(root);
-    }
-
-    json_t  *sha;
-    const char *message_text;
-    sha = json_object_get(root, "name");
-    if(json_is_string(sha))
-    {
-        message_text = json_string_value(sha);
-        puts(message_text);
-        strcpy(dados->name, message_text);
-    }else{
-        dados->name[0] = '\0';
-        puts("error, not string");
-    }
-
-    sha = json_object_get(root, "login");
-    if(json_is_string(sha))
-    {
-        message_text = json_string_value(sha);
-        puts(message_text);
-        strcpy(dados->login, message_text);
-
-    }else{
-        dados->login[0] = '\0';
-        puts("error, not string");
-    }
-
-    sha = json_object_get(root, "email");
-    if(json_is_string(sha))
-    {
-        message_text = json_string_value(sha);
-        puts(message_text);
-        strcpy(dados->email, message_text);
-
-    }else{
-        dados->email[0] = '\0';
-        puts("error, not string");
-    }
-
-    sha = json_object_get(root, "city");
-    if(json_is_string(sha))
-    {
-        message_text = json_string_value(sha);
-        puts(message_text);
-        strcpy(dados->city, message_text);
-
-    }else{
-        dados->city[0] = '\0';
-        puts("error, not string");
-    }
-}
-
-int checa_sucesso_get_info(){
-
-    FILE *user_data;
-    char *user_data_str;
-    user_data_str = malloc(2550*sizeof(char));
-    user_data = fopen(".data.out", "r");
-    fgets(user_data_str,2550*sizeof(char), user_data );
-    puts("User data: ");
-    puts(user_data_str);
-    puts("User data end ");
-
-    json_t *root;
-    json_error_t error;
-    root = json_loads(user_data_str,0, &error);
-    if(!root){
-        puts("erro ao carregar dados!");
-        //exit(0);
-    }
-
-    if(!json_is_object(root))
-    {
-        fprintf(stderr, "error: root is not an array\n");
-        json_decref(root);
-    }
-
-    json_t  *sha;
-    const char *message_text;
-    sha = json_object_get(root, "status");
-    if(json_is_string(sha))
-    {
-        message_text = json_string_value(sha);
-        puts(message_text);
-        if(!(strcmp(message_text, "ok"))){
-            return 1;
-        }
-        return 0;
-    }else{
-        puts("Erro Crítico. Não encontrou a mensagem de erro. Se esse erro persistir, informe o suporte técnico.");
-        return 0;
-    }
-
-
-}
-//Função que faz o Login do usuario no sistema. Utiliza a biblioteca Libcurlc para realizar as requisições http.
-// Guarda as saidas em arquivos para uso posterios. Guarda o cookie para uso posterios tbm
-int faz_login_dummy(GtkWidget *w, gpointer p){
-    dados *data_ant = p;
-    tela_principal(NULL, data_ant);
-    return 1;
-}
-
-int faz_login(GtkWidget *w, gpointer p){
-
-    dados *data_ant = p;
-    CURL *curl;
-    char *data = malloc(255*sizeof(char));
-    strcpy(data, "login=");
-    char * resp;
-    FILE *dados_do_user, *login_out;
-    resp = malloc(255*sizeof(char));
-    puts("teste");
-    puts(gtk_entry_get_text(GTK_ENTRY(data_ant->dado3)));
-    strcat(data, gtk_entry_get_text(GTK_ENTRY(data_ant->dado3)));
-    strcat(data, "&passwd=");
-    strcat(data, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4)));
-    strcat(data, "&request=login");
-    puts(data);
-
-    dados_do_user = fopen(".data.out", "wr");
-    login_out = fopen(".login.out", "wr");
-
-
-    curl = curl_easy_init();
-    if(curl) {
-
-        curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0");
-        curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1 );
-        curl_easy_setopt(curl, CURLOPT_WRITEDATA, login_out);
-        curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie");
-        curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookie");
-
-        curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
-        curl_easy_setopt(curl, CURLOPT_HEADER, 0);
-
-        //curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.6/slx-admin/api.php?do=webservice");
-        curl_easy_setopt(curl, CURLOPT_URL, API_URL);
-        curl_easy_setopt(curl, CURLOPT_POST, 1);
-        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
-        puts("Fazendo login.");
-        curl_easy_perform(curl);
-
-        puts("teste 2");
-        fclose(login_out);
-        printf("Linha antes checagem %d\n", __LINE__);
-        if(checa_sucesso_do_login()){
-
-            printf("Linha %d\n", __LINE__);
-            char *data2="request=getinfo";
-            curl_easy_setopt(curl, CURLOPT_WRITEDATA, dados_do_user);
-            curl_easy_setopt(curl, CURLOPT_POST, 1);
-            curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
-            curl_easy_setopt(curl, CURLOPT_HEADER, 0);
-            curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data2);
-            printf("Linha %d\n", __LINE__);
-            puts("pegando informação.");
-            curl_easy_perform(curl);
-            fclose(dados_do_user);
-            if(!(checa_sucesso_get_info())){ //nao conseguiu pegar informações
-
-                puts("Erro ao carregar informações do usuário. Por favor tente novamente. Se o erro persistir avisse o suporte técnico.");
-
-            }
-            //curl_easy_setopt(curl, CURLOPT_URL, "192.168.0.5/apply/upload");
-            //res = curl_easy_perform(curl);
-
-            if(curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &resp) == CURLE_OK)
-                puts(resp);
-            else
-                puts("Nao pegou dados");
-            curl_easy_cleanup(curl);
-            puts("teste");
-            if(checa_upload_antigo()){
-                tela_upload_antigo(NULL, data_ant);
-            }else{
-                if(data_ant->control == 0){
-                    tela_principal(NULL, data_ant);
-                }
-            }
-            return 1;
-        }
-        printf("Linha %d\n", __LINE__);
-    }
-    printf("Linha %d\n", __LINE__);
-    gtk_label_set_text(GTK_LABEL(data_ant->dado5), "Login nao encontrado!");
-    printf("Linha %d\n", __LINE__);
-    return 0;
-}
-
-void pega_upload_id(char *id){
-
-    FILE *user_data;
-    char *user_data_str;
-    user_data_str = malloc(2550*sizeof(char));
-    user_data = fopen(".upid.out", "r");
-    fgets(user_data_str,2550*sizeof(char), user_data );
-    puts("User data: ");
-    puts(user_data_str);
-    puts("User data end ");
-
-    json_t *root;
-    json_error_t error;
-    root = json_loads(user_data_str,0, &error);
-    if(!root){
-        puts("erro ao carregar dados!");
-        //exit(0);
-    }
-
-    if(!json_is_object(root))
-    {
-        fprintf(stderr, "error: root is not an array\n");
-        json_decref(root);
-    }
-
-    json_t  *sha;
-    const char *message_text;
-    sha = json_object_get(root, "uploadid");
-    if(json_is_string(sha))
-    {
-        message_text = json_string_value(sha);
-        puts(message_text);
-    }else{
-        puts("error, not string");
-    }
-
-    strcpy(id, message_text);
-}
-
-//Função que faz o upload da imagem + dados para a api do site. Atualmente faz upload só de UM arquivo
-void faz_upload_dummy(GtkWidget *w, gpointer p){
-    stg4_tela_confirmacao_upload(NULL, p);
-}//Função de teste dummy
-
-//função de teste que faz upload da imagem teste.r1
-void faz_upload_teste(GtkWidget *w, gpointer p){
-
-    GtkWidget *loading;
-	GtkBuilder *builder;
-    int i;
-    struct dados *data = malloc(sizeof(*data));
-    GPid pid;
-	GChildWatchFunc handler;
-	char **argv;
-	argv = malloc(10*sizeof(char*));
-	for (i=0; i < 10; i++){
-		argv[i] = malloc(255*sizeof(char));
-	}
-
-    builder = gtk_builder_new();
-	gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
-    loading = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen"));
-
-    gtk_widget_show_all(loading);
-    strcpy(argv[0], "./upload");
-    strcpy(argv[1], "/home/ent13/Desktop/pasta-teste");
-    strcpy(argv[2], "teste");
-    strcpy(argv[3], ".r1");
-    argv[4] = NULL;
-    g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL);
-    handler = sai_do_script;
-    data->dado6 = loading;
-    data->pid = pid;
-    g_child_watch_add(pid, handler, data);
-    stg4_tela_confirmacao_upload(NULL, p);
-
-}
-
-void faz_upload(GtkWidget *w, gpointer p){
-
-    GtkWidget *loading;
-	dados *data_ant = p;
-	GtkBuilder *builder;
-    struct dados *data = malloc(sizeof(*data));
-    int i;
-    GPid pid;
-	GChildWatchFunc handler;
-    char **argv;
-	argv = malloc(10*sizeof(char*));
-	for (i=0; i < 10; i++){
-		argv[i] = malloc(255*sizeof(char));
-	}
-
-    builder = gtk_builder_new();
-	gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
-    loading = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen"));
-
-    gtk_widget_show_all(loading);
-    strcpy(argv[0], "./upload");
-    strcpy(argv[1], gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado4)));
-    strcpy(argv[2], gtk_entry_get_text(GTK_ENTRY(data_ant->dado3)));
-    strcpy(argv[3], ".r1");
-    argv[4] = NULL;
-    g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL);
-    handler = sai_do_script;
-    data->dado6 = loading;
-    data->pid = pid;
-    g_child_watch_add(pid, handler, data);
-    stg4_tela_confirmacao_upload(NULL, p);
-
-}
-*/
 //FUnção que acha o caminho para o tm-scripts, utilizada no arquivo clone_stage4.sh
 void acha_tm_scripts(char *path){
 
@@ -773,6 +298,7 @@ void sai_do_script(GPid pid, gint status, gpointer p){
 	loading = data_ant->dado6;
 	pid = data_ant->pid;
 	gtk_widget_hide(loading);
+	//gtk_widget_show(window);
 	checa_sucesso();
 	g_spawn_close_pid(pid);
 
-- 
GitLab