src/pakfire/buffer.h \
src/pakfire/build.c \
src/pakfire/build.h \
- src/pakfire/buildservice.c \
- src/pakfire/buildservice.h \
src/pakfire/cgroup.c \
src/pakfire/cgroup.h \
+ src/pakfire/client.c \
+ src/pakfire/client.h \
src/pakfire/config.c \
src/pakfire/config.h \
src/pakfire/constants.h \
# #
#############################################################################*/
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "auth.h"
#include "command.h"
int cli_auth(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
int r;
// Parse the command line
if (r)
goto ERROR;
- // Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ // Connect to the client
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// Authenticate
- r = pakfire_buildservice_auth_user(service, local_args.username, local_args.password);
+ r = pakfire_client_auth_user(client, local_args.username, local_args.password);
if (r < 0)
goto ERROR;
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
return r;
}
#include <argp.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "client-build.h"
#include "command.h"
break;
case OPT_DISABLE_TESTS:
- args->flags |= PAKFIRE_BUILDSERVICE_DISABLE_TESTS;
+ args->flags |= PAKFIRE_CLIENT_DISABLE_TESTS;
break;
case OPT_REPO:
int cli_client_build(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
char* upload = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// Upload all packages
for (unsigned int i = 0; i < local_args.num_packages; i++) {
- r = pakfire_buildservice_upload(service, local_args.packages[i], NULL, &upload);
+ r = pakfire_client_upload(client, local_args.packages[i], NULL, &upload);
if (r)
goto ERROR;
// Build all the things
for (unsigned int i = 0; i < local_args.num_uploads; i++) {
- r = pakfire_buildservice_build(service, local_args.uploads[i], local_args.repo,
+ r = pakfire_client_build(client, local_args.uploads[i], local_args.repo,
local_args.arches, local_args.flags);
if (r)
goto ERROR;
// Delete & free all uploads that could not be processed
for (unsigned int i = 0; i < local_args.num_uploads; i++) {
if (local_args.uploads[i]) {
- pakfire_buildservice_delete_upload(service, local_args.uploads[i]);
+ pakfire_client_delete_upload(client, local_args.uploads[i]);
free(local_args.uploads[i]);
}
}
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
return r;
}
#include <limits.h>
#include <pakfire/build.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include <pakfire/config.h>
#include <pakfire/pakfire.h>
#include <pakfire/repo.h>
return r;
}
-int cli_setup_buildservice(struct pakfire_buildservice** service, struct cli_global_args* args) {
+int cli_setup_client(struct pakfire_client** client, struct cli_global_args* args) {
struct pakfire_config* config = NULL;
const char* url = NULL;
int r;
url = pakfire_config_get(config, "client", "url", "https://pakfire.ipfire.org/");
// Connect to the build service
- r = pakfire_buildservice_create(service, args->ctx, url);
+ r = pakfire_client_create(client, args->ctx, url);
if (r < 0) {
fprintf(stderr, "Could not setup the build service: %s\n", strerror(-r));
goto ERROR;
#define PAKFIRE_CLI_PAKFIRE_H
#include <pakfire/build.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include <pakfire/config.h>
#include <pakfire/ctx.h>
#include <pakfire/pakfire.h>
int cli_setup_config(struct pakfire_config** config, struct cli_global_args* args);
int cli_setup_pakfire(struct pakfire** pakfire, struct cli_global_args* args);
int cli_setup_build(struct pakfire_build** build, struct cli_global_args* args, int flags);
-int cli_setup_buildservice(struct pakfire_buildservice** service, struct cli_global_args* args);
+int cli_setup_client(struct pakfire_client** client, struct cli_global_args* args);
#endif /* PAKFIRE_CLI_PAKFIRE_H */
#include <json.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "command.h"
#include "dump.h"
int cli_repo_create(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
struct json_object* repo = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// List repos
- r = pakfire_buildservice_create_repo(service,
- local_args.distro, local_args.name, local_args.description, &repo);
+ r = pakfire_client_create_repo(client, local_args.distro, local_args.name,
+ local_args.description, &repo);
if (r)
goto ERROR;
goto ERROR;
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
if (repo)
json_object_put(repo);
#include <json.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "command.h"
#include "dump.h"
int cli_repo_delete(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
struct json_object* repo = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// Delete the repository
- r = pakfire_buildservice_delete_repo(service, local_args.distro, local_args.name);
+ r = pakfire_client_delete_repo(client, local_args.distro, local_args.name);
if (r)
goto ERROR;
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
if (repo)
json_object_put(repo);
#include <json.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "command.h"
#include "dump.h"
int cli_repo_list(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
struct json_object* repos = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// List repos
- r = pakfire_buildservice_list_repos(service, local_args.distro, &repos);
+ r = pakfire_client_list_repos(client, local_args.distro, &repos);
if (r)
goto ERROR;
goto ERROR;
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
if (repos)
json_object_put(repos);
#include <json.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "command.h"
#include "dump.h"
int cli_repo_show(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
struct json_object* repo = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// List repos
- r = pakfire_buildservice_get_repo(service, local_args.distro, local_args.name, &repo);
+ r = pakfire_client_get_repo(client, local_args.distro, local_args.name, &repo);
if (r)
goto ERROR;
goto ERROR;
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
if (repo)
json_object_put(repo);
#include <argp.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "command.h"
#include "pakfire.h"
int cli_upload_create(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
char* uuid = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// List uploads
for (unsigned int i = 0; i < local_args.num_files; i++) {
- r = pakfire_buildservice_upload(service, local_args.files[i], NULL, &uuid);
+ r = pakfire_client_upload(client, local_args.files[i], NULL, &uuid);
if (r)
goto ERROR;
}
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
return r;
}
#include <argp.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include <pakfire/util.h>
#include "command.h"
int cli_upload_delete(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
int r;
// Parse the command line
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// Delete uploads
for (unsigned int i = 0; i < local_args.num_uploads; i++) {
- r = pakfire_buildservice_delete_upload(service, local_args.uploads[i]);
+ r = pakfire_client_delete_upload(client, local_args.uploads[i]);
if (r)
goto ERROR;
}
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
return r;
}
#include <json.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include "command.h"
#include "dump.h"
int cli_upload_list(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
- struct pakfire_buildservice* service = NULL;
+ struct pakfire_client* client = NULL;
struct json_object* uploads = NULL;
int r;
goto ERROR;
// Connect to the build service
- r = cli_setup_buildservice(&service, global_args);
+ r = cli_setup_client(&client, global_args);
if (r < 0)
goto ERROR;
// List uploads
- r = pakfire_buildservice_list_uploads(service, &uploads);
+ r = pakfire_client_list_uploads(client, &uploads);
if (r)
goto ERROR;
goto ERROR;
ERROR:
- if (service)
- pakfire_buildservice_unref(service);
+ if (client)
+ pakfire_client_unref(client);
if (uploads)
json_object_put(uploads);
#include <json.h>
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include <pakfire/config.h>
#include <pakfire/ctx.h>
#include <pakfire/hasher.h>
#include <pakfire/string.h>
#include <pakfire/xfer.h>
-struct pakfire_buildservice {
+struct pakfire_client {
struct pakfire_ctx* ctx;
int nrefs;
time_t refresh_token_expires_at;
};
-static int pakfire_buildservice_xfer_create(struct pakfire_xfer** xfer,
- struct pakfire_buildservice* service, const char* url, ...) __attribute__((format(printf, 3, 4)));
+static int pakfire_client_xfer_create(struct pakfire_xfer** xfer,
+ struct pakfire_client* self, const char* url, ...) __attribute__((format(printf, 3, 4)));
-static int pakfire_buildservice_xfer_create(struct pakfire_xfer** xfer,
- struct pakfire_buildservice* service, const char* url, ...) {
+static int pakfire_client_xfer_create(struct pakfire_xfer** xfer,
+ struct pakfire_client* self, const char* url, ...) {
struct pakfire_xfer* x = NULL;
va_list args;
int r;
// Create a new xfer
va_start(args, url);
- r = pakfire_xfer_create(&x, service->ctx, url, args);
+ r = pakfire_xfer_create(&x, self->ctx, url, args);
va_end(args);
if (r < 0)
goto ERROR;
// Set the base URL
- r = pakfire_xfer_set_baseurl(x, service->url);
+ r = pakfire_xfer_set_baseurl(x, self->url);
if (r < 0)
goto ERROR;
return r;
}
-static int pakfire_buildservice_set_access_token(struct pakfire_buildservice* self, const char* token) {
+static int pakfire_client_set_access_token(struct pakfire_client* self, const char* token) {
char expires_at[1024];
int r;
return 0;
}
-static int pakfire_buildservice_set_refresh_token(struct pakfire_buildservice* self, const char* token) {
+static int pakfire_client_set_refresh_token(struct pakfire_client* self, const char* token) {
char expires_at[1024];
int r;
return 0;
}
-static int pakfire_buildservice_token_has_expired(const time_t t) {
+static int pakfire_client_token_has_expired(const time_t t) {
time_t now = -1;
// Fetch the current time
return (t - now) < 60;
}
-static int pakfire_buildservice_auth_refresh(struct pakfire_buildservice* self) {
+static int pakfire_client_auth_refresh(struct pakfire_client* self) {
struct pakfire_xfer* xfer = NULL;
struct json_object* request = NULL;
struct json_object* response = NULL;
return -ENOTSUP;
// We cannot do this either if the refresh token has expired
- else if (pakfire_buildservice_token_has_expired(self->refresh_token_expires_at))
+ else if (pakfire_client_token_has_expired(self->refresh_token_expires_at))
return -ENOTSUP;
// Create a new transfer
- r = pakfire_buildservice_xfer_create(&xfer, self, "/api/v1/auth/refresh");
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/auth/refresh");
if (r < 0)
goto ERROR;
}
// Store the new access token
- r = pakfire_buildservice_set_access_token(self, access_token);
+ r = pakfire_client_set_access_token(self, access_token);
if (r < 0)
goto ERROR;
return r;
}
-static int pakfire_buildservice_xfer_auth(struct pakfire_buildservice* self, struct pakfire_xfer* xfer) {
+static int pakfire_client_xfer_auth(struct pakfire_client* self, struct pakfire_xfer* xfer) {
int r;
// Fail if not authenticated
return -ENOTSUP;
// Refresh if the access token has expired
- if (pakfire_buildservice_token_has_expired(self->access_token_expires_at)) {
+ if (pakfire_client_token_has_expired(self->access_token_expires_at)) {
DEBUG(self->ctx, "The access token has expired. Trying to refresh...\n");
// Refresh the access token
- r = pakfire_buildservice_auth_refresh(self);
+ r = pakfire_client_auth_refresh(self);
if (r < 0)
return r;
}
return 0;
}
-static void pakfire_buildservice_free(struct pakfire_buildservice* service) {
- if (service->ctx)
- pakfire_ctx_unref(service->ctx);
+static void pakfire_client_free(struct pakfire_client* self) {
+ if (self->ctx)
+ pakfire_ctx_unref(self->ctx);
- free(service);
+ free(self);
}
-int pakfire_buildservice_create(
- struct pakfire_buildservice** service, struct pakfire_ctx* ctx, const char* url) {
- struct pakfire_buildservice* s = NULL;
+int pakfire_client_create(struct pakfire_client** client,
+ struct pakfire_ctx* ctx, const char* url) {
+ struct pakfire_client* self = NULL;
int r;
// Allocate some memory
- s = calloc(1, sizeof(*s));
- if (!s)
+ self = calloc(1, sizeof(*self));
+ if (!self)
return -errno;
// Store a reference to the context
- s->ctx = pakfire_ctx_ref(ctx);
+ self->ctx = pakfire_ctx_ref(ctx);
// Initialize the reference counter
- s->nrefs = 1;
+ self->nrefs = 1;
// Store the URL
- r = pakfire_string_set(s->url, url);
+ r = pakfire_string_set(self->url, url);
if (r < 0)
goto ERROR;
- DEBUG(s->ctx, "Pakfire Build Service initialized for %s\n",
- pakfire_buildservice_get_url(s));
+ DEBUG(self->ctx, "Pakfire Build Service initialized for %s\n",
+ pakfire_client_get_url(self));
// Return the pointer
- *service = s;
+ *client = self;
return 0;
ERROR:
- pakfire_buildservice_free(s);
-
+ pakfire_client_free(self);
return r;
}
-struct pakfire_buildservice* pakfire_buildservice_ref(
- struct pakfire_buildservice* service) {
- ++service->nrefs;
+struct pakfire_client* pakfire_client_ref(struct pakfire_client* self) {
+ ++self->nrefs;
- return service;
+ return self;
}
-struct pakfire_buildservice* pakfire_buildservice_unref(
- struct pakfire_buildservice* service) {
- if (--service->nrefs > 0)
- return service;
+struct pakfire_client* pakfire_client_unref(struct pakfire_client* self) {
+ if (--self->nrefs > 0)
+ return self;
- pakfire_buildservice_free(service);
+ pakfire_client_free(self);
return NULL;
}
-const char* pakfire_buildservice_get_url(struct pakfire_buildservice* service) {
- return service->url;
+const char* pakfire_client_get_url(struct pakfire_client* self) {
+ return self->url;
}
// Authenticate
-int pakfire_buildservice_auth_user(struct pakfire_buildservice* self,
+int pakfire_client_auth_user(struct pakfire_client* self,
const char* username, const char* password) {
struct json_object* response = NULL;
struct pakfire_xfer* xfer = NULL;
const char* refresh_token = NULL;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, self, "/api/v1/auth/user");
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/auth/user");
if (r < 0)
goto ERROR;
}
// Store the access token
- r = pakfire_buildservice_set_access_token(self, access_token);
+ r = pakfire_client_set_access_token(self, access_token);
if (r < 0)
goto ERROR;
// Store the refresh token
- r = pakfire_buildservice_set_refresh_token(self, refresh_token);
+ r = pakfire_client_set_refresh_token(self, refresh_token);
if (r < 0)
goto ERROR;
// Build
-int pakfire_buildservice_build(struct pakfire_buildservice* service, const char* upload,
+int pakfire_client_build(struct pakfire_client* self, const char* upload,
const char* repo, const char** arches, int flags) {
struct pakfire_xfer* xfer = NULL;
struct json_object* request = NULL;
int r;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/builds");
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/builds");
if (r)
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
// Disable tests?
r = pakfire_json_add_boolean(request, "disable_test_builds",
- flags & PAKFIRE_BUILDSERVICE_DISABLE_TESTS);
+ flags & PAKFIRE_CLIENT_DISABLE_TESTS);
if (r < 0)
goto ERROR;
return r;
}
-static int pakfire_buildservice_api_response_string(struct pakfire_buildservice* self,
+static int pakfire_client_api_response_string(struct pakfire_client* self,
struct json_object* response, const char* key, char** value) {
struct json_object* object = NULL;
const char* s = NULL;
// Uploads
-static int pakfire_buildservice_create_upload(struct pakfire_buildservice* service,
+static int pakfire_client_create_upload(struct pakfire_client* self,
const char* path, const char* filename, FILE* f, char** uuid) {
struct pakfire_hashes hashes = {};
struct pakfire_xfer* xfer = NULL;
// Stat the file
r = fstat(fd, &stat);
if (r) {
- ERROR(service->ctx, "Could not stat %s: %s\n", path, strerror(errno));
+ ERROR(self->ctx, "Could not stat %s: %s\n", path, strerror(errno));
r = -errno;
goto ERROR;
}
// Compute the digest
- r = pakfire_hash_file(service->ctx, f, PAKFIRE_HASH_BLAKE2B512, &hashes);
+ r = pakfire_hash_file(self->ctx, f, PAKFIRE_HASH_BLAKE2B512, &hashes);
if (r < 0) {
- ERROR(service->ctx, "Could not compute the checksum of %s: %s\n",
+ ERROR(self->ctx, "Could not compute the checksum of %s: %s\n",
path, strerror(-r));
goto ERROR;
}
goto ERROR;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/uploads");
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/uploads");
if (r < 0)
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r < 0)
goto ERROR;
// Fetch the ID
if (uuid) {
- r = pakfire_buildservice_api_response_string(service, response, "uuid", uuid);
+ r = pakfire_client_api_response_string(self, response, "uuid", uuid);
if (r < 0)
goto ERROR;
}
return r;
}
-static int pakfire_buildservice_upload_payload(struct pakfire_buildservice* service,
+static int pakfire_client_upload_payload(struct pakfire_client* self,
const char* filename, const char* uuid, FILE* f) {
struct pakfire_xfer* xfer = NULL;
int r;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/uploads/%s", uuid);
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/uploads/%s", uuid);
if (r < 0)
goto ERROR;
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
return r;
}
-int pakfire_buildservice_upload(struct pakfire_buildservice* service,
+int pakfire_client_upload(struct pakfire_client* self,
const char* path, const char* filename, char** uuid) {
char basename[NAME_MAX];
FILE* f = NULL;
// Open the source file
f = fopen(path, "r");
if (!f) {
- ERROR(service->ctx, "Could not open file for upload %s: %m\n", path);
+ ERROR(self->ctx, "Could not open file for upload %s: %m\n", path);
return -errno;
}
// Create a new upload
- r = pakfire_buildservice_create_upload(service, path, filename, f, uuid);
+ r = pakfire_client_create_upload(self, path, filename, f, uuid);
if (r < 0) {
- ERROR(service->ctx, "Failed to create upload: %s\n", strerror(-r));
+ ERROR(self->ctx, "Failed to create upload: %s\n", strerror(-r));
goto ERROR;
}
- DEBUG(service->ctx, "Created a new upload (%s)\n", *uuid);
+ DEBUG(self->ctx, "Created a new upload (%s)\n", *uuid);
// Send the payload
- r = pakfire_buildservice_upload_payload(service, filename, *uuid, f);
+ r = pakfire_client_upload_payload(self, filename, *uuid, f);
if (r < 0) {
- ERROR(service->ctx, "Failed to upload the payload for %s: %s\n", *uuid, strerror(-r));
+ ERROR(self->ctx, "Failed to upload the payload for %s: %s\n", *uuid, strerror(-r));
goto ERROR;
}
return r;
}
-int pakfire_buildservice_list_uploads(
- struct pakfire_buildservice* service, struct json_object** p) {
+int pakfire_client_list_uploads(struct pakfire_client* self, struct json_object** p) {
struct pakfire_xfer* xfer = NULL;
struct json_object* response = NULL;
struct json_object* uploads = NULL;
int r;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/uploads");
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/uploads");
if (r)
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
// Fetch the uploads
uploads = json_object_object_get(response, "uploads");
if (!uploads) {
- ERROR(service->ctx, "Malformed response\n");
+ ERROR(self->ctx, "Malformed response\n");
r = -EBADMSG;
goto ERROR;
}
return r;
}
-int pakfire_buildservice_delete_upload(
- struct pakfire_buildservice* service, const char* uuid) {
+int pakfire_client_delete_upload(struct pakfire_client* self, const char* uuid) {
struct pakfire_xfer* xfer = NULL;
struct json_object* response = NULL;
int r;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/uploads/%s", uuid);
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/uploads/%s", uuid);
if (r)
goto ERROR;
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
// Repositories
-int pakfire_buildservice_list_repos(struct pakfire_buildservice* service,
+int pakfire_client_list_repos(struct pakfire_client* self,
const char* distro, struct json_object** p) {
struct pakfire_xfer* xfer = NULL;
struct json_object* response = NULL;
return -EINVAL;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/repos/%s", distro);
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/repos/%s", distro);
if (r)
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
// Fetch the repos
if (!json_object_object_get_ex(response, "repos", &repos)) {
- ERROR(service->ctx, "Malformed response\n");
+ ERROR(self->ctx, "Malformed response\n");
r = -EBADMSG;
goto ERROR;
}
return r;
}
-int pakfire_buildservice_get_repo(struct pakfire_buildservice* service,
+int pakfire_client_get_repo(struct pakfire_client* self,
const char* distro, const char* name, struct json_object** p) {
struct pakfire_xfer* xfer = NULL;
struct json_object* response = NULL;
return -EINVAL;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/repos/%s/%s", distro, name);
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/repos/%s/%s", distro, name);
if (r)
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
return r;
}
-int pakfire_buildservice_create_repo(struct pakfire_buildservice* service,
+int pakfire_client_create_repo(struct pakfire_client* self,
const char* distro, const char* name, const char* description, struct json_object** p) {
struct pakfire_xfer* xfer = NULL;
struct json_object* request = NULL;
return -EINVAL;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/repos/%s", distro);
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/repos/%s", distro);
if (r)
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
return r;
}
-int pakfire_buildservice_delete_repo(struct pakfire_buildservice* service,
+int pakfire_client_delete_repo(struct pakfire_client* self,
const char* distro, const char* name) {
struct pakfire_xfer* xfer = NULL;
int r;
// Create a new xfer
- r = pakfire_buildservice_xfer_create(&xfer, service, "/api/v1/repos/%s/%s", distro, name);
+ r = pakfire_client_xfer_create(&xfer, self, "/api/v1/repos/%s/%s", distro, name);
if (r)
goto ERROR;
goto ERROR;
// Enable authentication
- r = pakfire_buildservice_xfer_auth(service, xfer);
+ r = pakfire_client_xfer_auth(self, xfer);
if (r)
goto ERROR;
# #
#############################################################################*/
-#ifndef PAKFIRE_BUILDSERVICE_H
-#define PAKFIRE_BUILDSERVICE_H
+#ifndef PAKFIRE_CLIENT_H
+#define PAKFIRE_CLIENT_H
-struct pakfire_buildservice;
+struct pakfire_client;
#include <json.h>
#include <pakfire/ctx.h>
-int pakfire_buildservice_create(struct pakfire_buildservice** service,
+int pakfire_client_create(struct pakfire_client** client,
struct pakfire_ctx* ctx, const char* url);
-struct pakfire_buildservice* pakfire_buildservice_ref(struct pakfire_buildservice* service);
-struct pakfire_buildservice* pakfire_buildservice_unref(struct pakfire_buildservice* service);
+struct pakfire_client* pakfire_client_ref(struct pakfire_client* client);
+struct pakfire_client* pakfire_client_unref(struct pakfire_client* client);
-const char* pakfire_buildservice_get_url(struct pakfire_buildservice* service);
+const char* pakfire_client_get_url(struct pakfire_client* client);
// Authentication
-int pakfire_buildservice_auth_user(struct pakfire_buildservice* service,
+int pakfire_client_auth_user(struct pakfire_client* client,
const char* username, const char* password);
// Builds
-typedef enum pakfire_buildservice_build_flags {
- PAKFIRE_BUILDSERVICE_DISABLE_TESTS = (1 << 0),
-} pakfire_buildservice_build_flags_t;
+typedef enum pakfire_client_build_flags {
+ PAKFIRE_CLIENT_DISABLE_TESTS = (1 << 0),
+} pakfire_client_build_flags_t;
-int pakfire_buildservice_build(struct pakfire_buildservice* service, const char* upload,
+int pakfire_client_build(struct pakfire_client* client, const char* upload,
const char* repo, const char** arches, int flags);
// Uploads
-int pakfire_buildservice_upload(struct pakfire_buildservice* service,
+int pakfire_client_upload(struct pakfire_client* client,
const char* path, const char* filename, char** uuid);
-int pakfire_buildservice_list_uploads(
- struct pakfire_buildservice* service, struct json_object** uploads);
-int pakfire_buildservice_delete_upload(
- struct pakfire_buildservice* service, const char* uuid);
+int pakfire_client_list_uploads(struct pakfire_client* client, struct json_object** uploads);
+int pakfire_client_delete_upload(struct pakfire_client* client, const char* uuid);
// Repositories
-int pakfire_buildservice_list_repos(struct pakfire_buildservice* service,
+int pakfire_client_list_repos(struct pakfire_client* client,
const char* distro, struct json_object** repos);
-int pakfire_buildservice_get_repo(struct pakfire_buildservice* service,
+int pakfire_client_get_repo(struct pakfire_client* client,
const char* distro, const char* name, struct json_object** repo);
-int pakfire_buildservice_create_repo(struct pakfire_buildservice* service,
+int pakfire_client_create_repo(struct pakfire_client* client,
const char* distro, const char* name, const char* description, struct json_object** repo);
-int pakfire_buildservice_delete_repo(struct pakfire_buildservice* service,
+int pakfire_client_delete_repo(struct pakfire_client* client,
const char* distro, const char* name);
-#endif /* PAKFIRE_BUILDSERVICE_H */
+#endif /* PAKFIRE_CLIENT_H */
#include <pakfire/arch.h>
#include <pakfire/cgroup.h>
+#include <pakfire/client.h>
#include <pakfire/ctx.h>
#include <pakfire/daemon.h>
#include <pakfire/httpclient.h>
int nrefs;
// HTTP Client
- struct pakfire_httpclient* client;
+ struct pakfire_httpclient* httpclient;
- // Build Service
- struct pakfire_buildservice* service;
+ // Pakfire Client
+ struct pakfire_client* client;
// URL
char url[PATH_MAX];
int r;
// Remove the connection from the client
- r = pakfire_httpclient_dequeue(daemon->client, xfer);
+ r = pakfire_httpclient_dequeue(daemon->httpclient, xfer);
if (r < 0) {
ERROR(daemon->ctx, "Failed to remove the control connection: %s\n", strerror(-r));
return r;
goto ERROR;
// Enqueue the transfer
- r = pakfire_httpclient_enqueue(daemon->client, xfer);
+ r = pakfire_httpclient_enqueue(daemon->httpclient, xfer);
if (r)
goto ERROR;
sd_event_source_unref(daemon->connect_timer);
if (daemon->stats_timer)
sd_event_source_unref(daemon->stats_timer);
- if (daemon->service)
- pakfire_buildservice_unref(daemon->service);
+ if (daemon->httpclient)
+ pakfire_httpclient_unref(daemon->httpclient);
if (daemon->client)
- pakfire_httpclient_unref(daemon->client);
+ pakfire_client_unref(daemon->client);
if (daemon->cgroup)
pakfire_cgroup_unref(daemon->cgroup);
if (daemon->control)
goto ERROR;
// Connect to the build service
- r = pakfire_buildservice_create(&d->service, d->ctx, d->url);
+ r = pakfire_client_create(&d->client, d->ctx, d->url);
if (r < 0)
goto ERROR;
goto ERROR;
// Create the HTTP client
- r = pakfire_httpclient_create(&d->client, d->ctx, d->loop);
+ r = pakfire_httpclient_create(&d->httpclient, d->ctx, d->loop);
if (r < 0)
goto ERROR;
return sd_event_ref(daemon->loop);
}
-struct pakfire_buildservice* pakfire_daemon_buildservice(struct pakfire_daemon* daemon) {
- return pakfire_buildservice_ref(daemon->service);
+struct pakfire_client* pakfire_daemon_client(struct pakfire_daemon* daemon) {
+ return pakfire_client_ref(daemon->client);
}
struct pakfire_httpclient* pakfire_daemon_httpclient(struct pakfire_daemon* daemon) {
- return pakfire_httpclient_ref(daemon->client);
+ return pakfire_httpclient_ref(daemon->httpclient);
}
const char* pakfire_daemon_url(struct pakfire_daemon* daemon) {
struct pakfire_daemon;
-#include <pakfire/buildservice.h>
+#include <pakfire/client.h>
#include <pakfire/ctx.h>
#include <pakfire/job.h>
struct pakfire_daemon* pakfire_daemon_unref(struct pakfire_daemon* daemon);
sd_event* pakfire_daemon_loop(struct pakfire_daemon* daemon);
-struct pakfire_buildservice* pakfire_daemon_buildservice(struct pakfire_daemon* daemon);
+struct pakfire_client* pakfire_daemon_client(struct pakfire_daemon* daemon);
struct pakfire_httpclient* pakfire_daemon_httpclient(struct pakfire_daemon* daemon);
const char* pakfire_daemon_url(struct pakfire_daemon* daemon);
#include <pakfire/base64.h>
#include <pakfire/build.h>
+#include <pakfire/client.h>
#include <pakfire/config.h>
#include <pakfire/constants.h>
#include <pakfire/ctx.h>
// Daemon
struct pakfire_daemon* daemon;
- // Build Service
- struct pakfire_buildservice* service;
+ // Client
+ struct pakfire_client* client;
// Event Loop
sd_event* loop;
if (job->log.stream)
sd_event_source_unref(job->log.stream);
- if (job->service)
- pakfire_buildservice_unref(job->service);
+ if (job->client)
+ pakfire_client_unref(job->client);
if (job->uploads)
pakfire_strings_free(job->uploads);
if (job->config)
}
// Upload the log file
- r = pakfire_buildservice_upload(job->service, path, filename, &logfile);
+ r = pakfire_client_upload(job->client, path, filename, &logfile);
if (r < 0) {
ERROR(job->ctx, "Could not upload the log file: %s\n", strerror(-r));
goto ERROR;
}
// Upload the file
- r = pakfire_buildservice_upload(job->service, path, filename, &uuid);
+ r = pakfire_client_upload(job->client, path, filename, &uuid);
if (r < 0) {
ERROR(job->ctx, "Could not upload %s: %s\n", nevra, strerror(-r));
goto ERROR;
goto ERROR;
}
- // Fetch a reference to the build service
- j->service = pakfire_daemon_buildservice(daemon);
+ // Fetch a reference to the client
+ j->client = pakfire_daemon_client(daemon);
// Initialize the PID file descriptor
j->pidfd = -EBADF;