From de0241ab0f1595c0b4ed8ae193e15ff86c96ffc1 Mon Sep 17 00:00:00 2001 From: Junaid Ali Date: Sun, 10 Apr 2016 17:05:36 +0500 Subject: [PATCH 1/6] Leader check for posting plumgrid license --- hooks/pg_dir_hooks.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hooks/pg_dir_hooks.py b/hooks/pg_dir_hooks.py index ee07e9f..40e1d16 100755 --- a/hooks/pg_dir_hooks.py +++ b/hooks/pg_dir_hooks.py @@ -17,7 +17,8 @@ from charmhelpers.core.hookenv import ( config, relation_set, relation_ids, - status_set + status_set, + is_leader ) from charmhelpers.fetch import ( @@ -97,7 +98,7 @@ def config_changed(): if add_lcm_key(): log("PLUMgrid LCM Key added") if charm_config.changed('plumgrid-license-key'): - if post_pg_license(): + if is_leader() and post_pg_license(): log("PLUMgrid License Posted") if charm_config.changed('fabric-interfaces'): if not fabric_interface_changed(): From 516246f57d82311044dcfb606cf5f1aac8332543 Mon Sep 17 00:00:00 2001 From: Junaid Ali Date: Fri, 20 May 2016 16:52:33 +0200 Subject: [PATCH 2/6] configuring plumgrid install sources --- hooks/pg_dir_hooks.py | 5 ++++- hooks/pg_dir_utils.py | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/hooks/pg_dir_hooks.py b/hooks/pg_dir_hooks.py index 81f9013..add2a4d 100755 --- a/hooks/pg_dir_hooks.py +++ b/hooks/pg_dir_hooks.py @@ -40,7 +40,8 @@ from pg_dir_utils import ( fabric_interface_changed, load_iptables, restart_on_change, - director_cluster_ready + director_cluster_ready, + configure_pg_sources ) hooks = Hooks() @@ -135,6 +136,8 @@ def config_changed(): charm_config.changed('iovisor-build')): status_set('maintenance', 'Upgrading apt packages') stop_pg() + if charm_config.changed('install_sources'): + configure_pg_sources() configure_sources(update=True) pkgs = determine_packages() for pkg in pkgs: diff --git a/hooks/pg_dir_utils.py b/hooks/pg_dir_utils.py index 48f462d..4401fc7 100644 --- a/hooks/pg_dir_utils.py +++ b/hooks/pg_dir_utils.py @@ -42,6 +42,7 @@ from charmhelpers.contrib.openstack.utils import ( os_release, ) +SOURCES_LIST = '/etc/apt/sources.list' LXC_CONF = '/etc/libvirt/lxc.conf' TEMPLATES = 'templates/' PG_LXC_DATA_PATH = '/var/lib/libvirt/filesystems/plumgrid-data' @@ -88,6 +89,23 @@ BASE_RESOURCE_MAP = OrderedDict([ ]) +def configure_pg_sources(): + ''' + Returns true if install sources is updated in sources.list file + ''' + try: + with open(SOURCES_LIST, 'r+') as sources: + all_lines = sources.readlines() + sources.seek(0) + for i in (line for line in all_lines if "plumgrid" not in line): + sources.write(i) + sources.truncate() + sources.close() + return True + except IOError: + return False + + def determine_packages(): ''' Returns list of packages required by PLUMgrid director as specified From 80f799d1cadf781eed51b1aac8d03767f4f672fa Mon Sep 17 00:00:00 2001 From: Junaid Ali Date: Fri, 20 May 2016 16:58:24 +0200 Subject: [PATCH 3/6] logging IOError for sources.list --- hooks/pg_dir_hooks.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hooks/pg_dir_hooks.py b/hooks/pg_dir_hooks.py index add2a4d..7703d6b 100755 --- a/hooks/pg_dir_hooks.py +++ b/hooks/pg_dir_hooks.py @@ -137,7 +137,8 @@ def config_changed(): status_set('maintenance', 'Upgrading apt packages') stop_pg() if charm_config.changed('install_sources'): - configure_pg_sources() + if not configure_pg_sources(): + log('IOError: sources.list couldn\'t be updated') configure_sources(update=True) pkgs = determine_packages() for pkg in pkgs: From 6c06eaedcbae9e2c76ebd3288ce75c9f26957a22 Mon Sep 17 00:00:00 2001 From: Junaid Ali Date: Sat, 21 May 2016 16:06:28 +0500 Subject: [PATCH 4/6] Updated templates --- templates/kilo/00-pg.conf | 3 ++- templates/kilo/plumgrid.conf | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/templates/kilo/00-pg.conf b/templates/kilo/00-pg.conf index e744a27..ac09811 100644 --- a/templates/kilo/00-pg.conf +++ b/templates/kilo/00-pg.conf @@ -1,2 +1,3 @@ $template ls_json,"{{'{'}}{{'%'}}timestamp:::date-rfc3339,jsonf:@timestamp%,%source:::jsonf:@source_host%,%msg:::json%}" -:syslogtag,isequal,"pg:" @{{ opsvm_ip }}:6000;ls_json +if $syslogtag == 'pg:' and not ($msg contains 'dht_cli_') then @{{ opsvm_ip }}:6000;ls_json +:msg, contains, "VM Interface Stats" ~ diff --git a/templates/kilo/plumgrid.conf b/templates/kilo/plumgrid.conf index acb8e9b..f56f11f 100644 --- a/templates/kilo/plumgrid.conf +++ b/templates/kilo/plumgrid.conf @@ -5,6 +5,9 @@ label={{ label}} plumgrid_rsync_port=2222 plumgrid_rest_addr=0.0.0.0:9180 fabric_mode={{ fabric_mode }} +plumgrid_syslog_ng_ip={{ plumgrid_syslog_ng_ip }} +plumgrid_syslog_ng_port={{ plumgrid_syslog_ng_port }} +plumgrid_monitor_interval={{ plumgrid_monitor_interval }} start_plumgrid_iovisor=yes start_plumgrid=`/opt/pg/scripts/pg_is_director.sh $plumgrid_ip` location= From faff1653ec85cfd3ad239d96b6e15e5b36cb36f4 Mon Sep 17 00:00:00 2001 From: Junaid Ali Date: Sun, 22 May 2016 11:17:41 -0400 Subject: [PATCH 5/6] Updated configure_pg_sources --- hooks/pg_dir_hooks.py | 3 +-- hooks/pg_dir_utils.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/hooks/pg_dir_hooks.py b/hooks/pg_dir_hooks.py index 037cb9d..add2a4d 100755 --- a/hooks/pg_dir_hooks.py +++ b/hooks/pg_dir_hooks.py @@ -137,8 +137,7 @@ def config_changed(): status_set('maintenance', 'Upgrading apt packages') stop_pg() if charm_config.changed('install_sources'): - if not configure_pg_sources(): - log('IOError: /etc/apt/sources.list couldn\'t be updated') + configure_pg_sources() configure_sources(update=True) pkgs = determine_packages() for pkg in pkgs: diff --git a/hooks/pg_dir_utils.py b/hooks/pg_dir_utils.py index 4401fc7..aaa0f03 100644 --- a/hooks/pg_dir_utils.py +++ b/hooks/pg_dir_utils.py @@ -101,9 +101,8 @@ def configure_pg_sources(): sources.write(i) sources.truncate() sources.close() - return True except IOError: - return False + raise IOError('Unable to access /etc/apt/sources.list') def determine_packages(): From 90211b4bd9c7d1e00d5598ee9a6fac5cf96722d0 Mon Sep 17 00:00:00 2001 From: Junaid Ali Date: Mon, 23 May 2016 06:29:42 -0400 Subject: [PATCH 6/6] logging IOError for sources.list --- hooks/pg_dir_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hooks/pg_dir_utils.py b/hooks/pg_dir_utils.py index aaa0f03..a9ba277 100644 --- a/hooks/pg_dir_utils.py +++ b/hooks/pg_dir_utils.py @@ -102,7 +102,7 @@ def configure_pg_sources(): sources.truncate() sources.close() except IOError: - raise IOError('Unable to access /etc/apt/sources.list') + log('Unable to update /etc/apt/sources.list') def determine_packages():