Re: [libvirt] [PATCH 02/16] Current virt-sandbox-service-util only supports service sandbox/containers

2013-04-03 Thread Daniel P. Berrange
On Tue, Apr 02, 2013 at 06:11:18PM -0400, Dan Walsh wrote:
 We need to add support for interactive sandbox/containers for OpenShift.
 
 This patch will create the correct container type based off the 
 /etc/libvirt-sandbox/service/*
 
 Signed-off-by: Dan Walsh dwa...@redhat.com
 ---
  bin/virt-sandbox-service-util.c | 31 +++
  1 file changed, 23 insertions(+), 8 deletions(-)
 
 diff --git a/bin/virt-sandbox-service-util.c b/bin/virt-sandbox-service-util.c
 index 430518f..2630109 100644
 --- a/bin/virt-sandbox-service-util.c
 +++ b/bin/virt-sandbox-service-util.c
 @@ -352,6 +352,7 @@ static gboolean libvirt_lxc_attach(const gchar 
 *option_name,
  
  int main(int argc, char **argv) {
  GMainLoop *loop = NULL;
 +GVirSandboxConfigInteractive *interactive_cfg = NULL;
  GVirSandboxConfigService *cfg = NULL;
  GVirSandboxConfig *config = NULL;

This is rather overkill - just have the single 'GVirSandboxConfig *config'
variable and cast it where needed, removing the intermediate variables.

  GVirSandboxContext *ctx = NULL;
 @@ -360,7 +361,6 @@ int main(int argc, char **argv) {
  int ret = EXIT_FAILURE;
  pid_t pid = 0;
  gchar *buf=NULL;
 -GVirSandboxContextService *service;
  gchar *uri = NULL;
  gchar *command = NULL;
  
 @@ -451,16 +451,28 @@ int main(int argc, char **argv) {
  goto cleanup;
  }
  
 -cfg = GVIR_SANDBOX_CONFIG_SERVICE(config);
 +if (GVIR_SANDBOX_IS_CONFIG_INTERACTIVE(config)) {
 +GVirSandboxContextInteractive *service;
 +interactive_cfg = GVIR_SANDBOX_CONFIG_INTERACTIVE(config);
  
 -if (!(service = gvir_sandbox_context_service_new(hv, cfg))) {
 -g_printerr(_(Unable to create new context service: %s\n),
 -   err  err-message ? err-message : _(unknown));
 -goto cleanup;
 +if (!(service = gvir_sandbox_context_interactive_new(hv, 
 interactive_cfg))) {

Replace 'interactive_cfg' with a direct call to
 GVIR_SANDBOX_CONFIG_INTERACTIVE(config)


 +g_printerr(_(Unable to create new context service: %s\n),
 +   err  err-message ? err-message : 
 _(unknown));
 +goto cleanup;
 +}
 +ctx = GVIR_SANDBOX_CONTEXT(service);
 +} else {
 +GVirSandboxContextService *service;
 +cfg = GVIR_SANDBOX_CONFIG_SERVICE(config);
 +
 +if (!(service = gvir_sandbox_context_service_new(hv, cfg))) {
 +g_printerr(_(Unable to create new context service: %s\n),
 +   err  err-message ? err-message : 
 _(unknown));
 +goto cleanup;
 +}
 +ctx = GVIR_SANDBOX_CONTEXT(service);
  }
  
 -ctx = GVIR_SANDBOX_CONTEXT(service);
 -
  if (command) {
  container_execute(ctx, command, pid);
  }
 @@ -475,6 +487,9 @@ cleanup:
  
  free(buf);
  
 +if (interactive_cfg)
 +g_object_unref(interactive_cfg);
 +
  if (cfg)
  g_object_unref(cfg);

And thus instead of needing these 2 blocks you can now just do

  if (config)
 g_object_unref(config)

Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 02/16] Current virt-sandbox-service-util only supports service sandbox/containers

2013-04-02 Thread Dan Walsh
We need to add support for interactive sandbox/containers for OpenShift.

This patch will create the correct container type based off the 
/etc/libvirt-sandbox/service/*

Signed-off-by: Dan Walsh dwa...@redhat.com
---
 bin/virt-sandbox-service-util.c | 31 +++
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/bin/virt-sandbox-service-util.c b/bin/virt-sandbox-service-util.c
index 430518f..2630109 100644
--- a/bin/virt-sandbox-service-util.c
+++ b/bin/virt-sandbox-service-util.c
@@ -352,6 +352,7 @@ static gboolean libvirt_lxc_attach(const gchar *option_name,
 
 int main(int argc, char **argv) {
 GMainLoop *loop = NULL;
+GVirSandboxConfigInteractive *interactive_cfg = NULL;
 GVirSandboxConfigService *cfg = NULL;
 GVirSandboxConfig *config = NULL;
 GVirSandboxContext *ctx = NULL;
@@ -360,7 +361,6 @@ int main(int argc, char **argv) {
 int ret = EXIT_FAILURE;
 pid_t pid = 0;
 gchar *buf=NULL;
-GVirSandboxContextService *service;
 gchar *uri = NULL;
 gchar *command = NULL;
 
@@ -451,16 +451,28 @@ int main(int argc, char **argv) {
 goto cleanup;
 }
 
-cfg = GVIR_SANDBOX_CONFIG_SERVICE(config);
+if (GVIR_SANDBOX_IS_CONFIG_INTERACTIVE(config)) {
+GVirSandboxContextInteractive *service;
+interactive_cfg = GVIR_SANDBOX_CONFIG_INTERACTIVE(config);
 
-if (!(service = gvir_sandbox_context_service_new(hv, cfg))) {
-g_printerr(_(Unable to create new context service: %s\n),
-   err  err-message ? err-message : _(unknown));
-goto cleanup;
+if (!(service = gvir_sandbox_context_interactive_new(hv, 
interactive_cfg))) {
+g_printerr(_(Unable to create new context service: %s\n),
+   err  err-message ? err-message : _(unknown));
+goto cleanup;
+}
+ctx = GVIR_SANDBOX_CONTEXT(service);
+} else {
+GVirSandboxContextService *service;
+cfg = GVIR_SANDBOX_CONFIG_SERVICE(config);
+
+if (!(service = gvir_sandbox_context_service_new(hv, cfg))) {
+g_printerr(_(Unable to create new context service: %s\n),
+   err  err-message ? err-message : _(unknown));
+goto cleanup;
+}
+ctx = GVIR_SANDBOX_CONTEXT(service);
 }
 
-ctx = GVIR_SANDBOX_CONTEXT(service);
-
 if (command) {
 container_execute(ctx, command, pid);
 }
@@ -475,6 +487,9 @@ cleanup:
 
 free(buf);
 
+if (interactive_cfg)
+g_object_unref(interactive_cfg);
+
 if (cfg)
 g_object_unref(cfg);
 
-- 
1.8.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list