Skip to content
Permalink
Browse files

fix bugs in migrate fetch functions: over

  • Loading branch information
umeshksingla authored and neverpanic committed Aug 19, 2017
1 parent 4bb5dcb commit 20a960ddbce1aef53ec6dd9da942ef321c3b1c8c
Showing with 19 additions and 78 deletions.
  1. +12 −70 src/cregistry/snapshot.c
  2. +4 −6 src/cregistry/snapshot.h
  3. +3 −2 src/registry2.0/snapshotobj.c
@@ -283,7 +283,7 @@ int snapshot_store_port_variants(reg_registry* reg, reg_entry* port_entry,
return result;
}

int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
int reg_snapshot_ports_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {

printf("inside cregistry get snapshot..\n");
reg_registry* reg = snapshot->reg;
@@ -307,7 +307,6 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
int result_space = 10;
int r;

int variant_space = 10;
variant** variants;

sqlite_int64 snapshot_port_id;
@@ -327,30 +326,19 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
if (!current_port) {
return -1;
}

current_port->name = port_name;
current_port->name = strdup(port_name);
current_port->requested = requested;
current_port->state = state;
current_port->state = strdup(state);
current_port->variants = NULL;

// get variants for the current port using its id
printf("\ncurrently on:: %s\n", port_name);
//variant* variants;

variants = (variant**) malloc(variant_space * sizeof(variant*));

variants = (variant**) malloc(sizeof(variant*));
if (!variants) {
return -1;
}

int variant_count = reg_snapshot_port_variants_get(reg, snapshot_port_id, &variants, errPtr);

int variant_count = reg_snapshot_ports_get_helper(reg, snapshot_port_id, &variants, errPtr);
if (variant_count > 0) {
current_port->variants = variants;
printf("v n a m e: %s\n", variants[0]->variant_name);
}
// result[result_count++] = current_port;

if (!reg_listcat((void***)&result, &result_count, &result_space, current_port)) {
r = SQLITE_ERROR;
}
@@ -374,13 +362,7 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
sqlite3_finalize(stmt);

if (r == SQLITE_DONE) {
printf("... reached here ...\n");

*ports = result;

//printf("size of ' %s ' \n", (const char*) result[0]->name);
printf("size of ' %d' \n", (*(*ports + 0))->requested);

return result_count;

} else {
@@ -399,9 +381,8 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
}
}

int reg_snapshot_port_variants_get(reg_registry* reg, sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr) {
int reg_snapshot_ports_get_helper(reg_registry* reg, sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr) {

printf("inside getting variants\n");
sqlite3_stmt* stmt = NULL;

char* query = "SELECT * FROM registry.snapshot_port_variants WHERE snapshot_ports_id=?";
@@ -426,25 +407,19 @@ int reg_snapshot_port_variants_get(reg_registry* reg, sqlite_int64 snapshot_port
switch (r) {
case SQLITE_ROW:

printf("getting the variant\n");
variant_name = (const char*)sqlite3_column_text(stmt, 2);
variant_sign = (const char*)sqlite3_column_text(stmt, 3);

variant_name = (const char*) sqlite3_column_text(stmt, 2);
printf("vname: %s\n", variant_name);
variant_sign = (const char*) sqlite3_column_text(stmt, 3);
printf("vsign: %s\n", variant_sign);

variant* element = (variant*)malloc(sizeof(variant));

if (!element) {
return -1;
}

element->variant_name = variant_name;
element->variant_sign = variant_sign;

element->variant_name = strdup(variant_name);
element->variant_sign = strdup(variant_sign);
if (!reg_listcat((void***)&result, &result_count, &result_space, element)) {
r = SQLITE_ERROR;
}
//free(element);
break;
case SQLITE_DONE:
case SQLITE_BUSY:
@@ -456,15 +431,7 @@ int reg_snapshot_port_variants_get(reg_registry* reg, sqlite_int64 snapshot_port
} while (r == SQLITE_ROW || r == SQLITE_BUSY);

if (r == SQLITE_DONE) {
printf("eveyrhitn done 1\n");
printf("varint rc: %d\n", result_count);
*variants = result;
// if (result_count > 0) {
// variant v = *(variants + result_count - 1);
// printf("s v: %zu\n", sizeof(v));
// printf("v n-a m e: %s\n", v.variant_name);
// }
printf("eveyrhitn done 2\n");
return result_count;
} else {
int i;
@@ -521,7 +488,7 @@ int reg_snapshot_propget(reg_snapshot* snapshot, char* key, char** value,
break;
case SQLITE_DONE:
errPtr->code = REG_INVALID;
errPtr->description = "an invalid snapshot was passed";
errPtr->description = "An invalid snapshot was passed";
errPtr->free = NULL;
break;
case SQLITE_BUSY:
@@ -540,28 +507,3 @@ int reg_snapshot_propget(reg_snapshot* snapshot, char* key, char** value,
sqlite3_free(query);
return result;
}

/**
* Gets all the 'ports' of a snapshot. The property named must be one
* that exists in the table and must not be one with internal meaning
* such as `id` or `state`.
*
* A 'port' here is a row in registry.snapshot_ports table and its
* corresponding variants in registry.snapshot_port_variants table
*
* @param [in] snapshot snapshot to get property from
* @param [in] key property to get
* @param [out] value the value of the property
* @param [out] errPtr on error, a description of the error that occurred
* @return true if success; false if failure
*/
// int reg_snapshot_ports_get(reg_snapshot* snapshot, port** ports,
// reg_error* errPtr) {
// reg_registry* reg = snapshot->reg;
// int result = 0;
// sqlite3_stmt* stmt = NULL;
// char* query;
// const char *text;
// // TODO: get ports and their variants using snapshot->id as Fk
// return result;
// }
@@ -57,23 +57,21 @@ typedef struct {
char* proc; /* name of Tcl proc, if using Tcl */
} reg_snapshot;


int get_parsed_variants(char* variants_str, variant* all_variants,
char* delim, int* variant_count);

reg_snapshot* reg_snapshot_create(reg_registry* reg, char* note,
reg_error* errPtr);
int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr);
int reg_snapshot_port_variants_get(reg_registry* reg,
sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr);

int snapshot_store_ports(reg_registry* reg, reg_snapshot* snapshot,
reg_error* errPtr);
int snapshot_store_port_variants(reg_registry* reg, reg_entry* port_entry,
int snapshot_ports_id, reg_error* errPtr);

int reg_snapshot_propget(reg_snapshot* snapshot, char* key, char** value,
reg_error* errPtr);
int reg_snapshot_ports_get(reg_snapshot* snapshot, port** ports,
reg_error* errPtr);
int reg_snapshot_ports_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr);
int reg_snapshot_ports_get_helper(reg_registry* reg,
sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr);

#endif /* _CSNAPSHOT_H */
@@ -94,7 +94,7 @@ static int snapshot_obj_ports(Tcl_Interp* interp, reg_snapshot* snapshot, int ob
== TCL_OK) {
port** ports;
reg_error error;
int port_count = reg_snapshot_get(snapshot, &ports, &error);
int port_count = reg_snapshot_ports_get(snapshot, &ports, &error);
if (port_count >= 0) {

printf("ports fetched\n");
@@ -104,7 +104,8 @@ static int snapshot_obj_ports(Tcl_Interp* interp, reg_snapshot* snapshot, int ob
int i;
for(i=0; i < port_count; i++){
printf("in it - ");
printf(".. %d .. \n ", ports[i]->requested);
printf("! %s ! ", ports[i]->name);
printf(".. %d .. ", ports[i]->requested);
printf("! %s ! \n", ports[i]->state);
}

0 comments on commit 20a960d

Please sign in to comment.
You can’t perform that action at this time.