Hello community, here is the log from the commit of package sysdig for openSUSE:Factory checked in at 2016-07-05 09:52:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sysdig (Old) and /work/SRC/openSUSE:Factory/.sysdig.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysdig" Changes: -------- --- /work/SRC/openSUSE:Factory/sysdig/sysdig.changes 2016-06-20 11:06:45.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.sysdig.new/sysdig.changes 2016-07-05 09:52:40.000000000 +0200 @@ -1,0 +2,6 @@ +Sun Jul 3 20:18:27 UTC 2016 - [email protected] + +- Update to version 0.10.1: + * Minor bugfixes, mostly related to Kubernetes and Mesos parsing + +------------------------------------------------------------------- Old: ---- sysdig-0.10.0.tar.gz New: ---- sysdig-0.10.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sysdig.spec ++++++ --- /var/tmp/diff_new_pack.1HZXW8/_old 2016-07-05 09:52:41.000000000 +0200 +++ /var/tmp/diff_new_pack.1HZXW8/_new 2016-07-05 09:52:41.000000000 +0200 @@ -17,7 +17,7 @@ Name: sysdig -Version: 0.10.0 +Version: 0.10.1 Release: 0 Summary: System-level exploration License: GPL-2.0 @@ -30,11 +30,11 @@ BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: libb64-devel +BuildRequires: lua51-devel BuildRequires: ncurses-devel BuildRequires: pkgconfig BuildRequires: pkgconfig(jsoncpp) BuildRequires: pkgconfig(libcurl) -BuildRequires: pkgconfig(lua-5.1) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(zlib) BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ sysdig-0.10.0.tar.gz -> sysdig-0.10.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/docker/dev/Dockerfile new/sysdig-0.10.1/docker/dev/Dockerfile --- old/sysdig-0.10.0/docker/dev/Dockerfile 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/docker/dev/Dockerfile 2016-06-17 17:55:07.000000000 +0200 @@ -20,7 +20,8 @@ curl \ ca-certificates \ gcc \ - gcc-4.9 && rm -rf /var/lib/apt/lists/* + gcc-4.9 \ + libelf1 && rm -rf /var/lib/apt/lists/* # Terribly terrible hacks: since our base Debian image ships with GCC 5.0 which breaks older kernels, # revert the default to gcc-4.9. Also, since some customers use some very old distributions whose kernel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/docker/stable/Dockerfile new/sysdig-0.10.1/docker/stable/Dockerfile --- old/sysdig-0.10.0/docker/stable/Dockerfile 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/docker/stable/Dockerfile 2016-06-17 17:55:07.000000000 +0200 @@ -20,7 +20,8 @@ curl \ ca-certificates \ gcc \ - gcc-4.9 && rm -rf /var/lib/apt/lists/* + gcc-4.9 \ + libelf1 && rm -rf /var/lib/apt/lists/* # Terribly terrible hacks: since our base Debian image ships with GCC 5.0 which breaks older kernels, # revert the default to gcc-4.9. Also, since some customers use some very old distributions whose kernel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/scripts/boot2docker-kernel-crawler.py new/sysdig-0.10.1/scripts/boot2docker-kernel-crawler.py --- old/sysdig-0.10.0/scripts/boot2docker-kernel-crawler.py 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/scripts/boot2docker-kernel-crawler.py 2016-06-17 17:55:07.000000000 +0200 @@ -17,7 +17,7 @@ version = version[:version.index(':')] # tracepoints only enabled >= 1.7.0 if LooseVersion(version[1:]) >= LooseVersion('1.7'): - dockerFile = urllib2.urlopen('https://raw.githubusercontent.com/boot2docker/boot2docker/%s/Dockerfile'%version, version).read() + dockerFile = urllib2.urlopen('https://raw.githubusercontent.com/boot2docker/boot2docker/%s/Dockerfile' % (version)).read() for line in dockerFile.split('\n'): if re.search('ENV KERNEL_VERSION', line): kernel_version = line.split()[-1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/chisel_api.cpp new/sysdig-0.10.1/userspace/libsinsp/chisel_api.cpp --- old/sysdig-0.10.0/userspace/libsinsp/chisel_api.cpp 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/chisel_api.cpp 2016-06-17 17:55:07.000000000 +0200 @@ -445,6 +445,14 @@ { ch->m_inspector->set_buffer_format(sinsp_evt::PF_EOLS); } + else if(string(fmt) == "base64") + { + ch->m_inspector->set_buffer_format(sinsp_evt::PF_BASE64); + } + else if(string(fmt) == "jsonbase64") + { + ch->m_inspector->set_buffer_format(sinsp_evt::PF_JSONBASE64); + } else { string err = "invalid set_output_format value in chisel " + ch->m_filename; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/cursescomponents.cpp new/sysdig-0.10.1/userspace/libsinsp/cursescomponents.cpp --- old/sysdig-0.10.0/userspace/libsinsp/cursescomponents.cpp 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/cursescomponents.cpp 2016-06-17 17:55:07.000000000 +0200 @@ -195,6 +195,11 @@ m_selct = selct; m_selct_ori = m_selct; m_type = type; + + if(m_selct > (int32_t)(m_h - 1)) + { + m_firstrow = m_selct; + } } curses_table_sidemenu::~curses_table_sidemenu() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/cursesui.cpp new/sysdig-0.10.1/userspace/libsinsp/cursesui.cpp --- old/sysdig-0.10.0/userspace/libsinsp/cursesui.cpp 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/cursesui.cpp 2016-06-17 17:55:07.000000000 +0200 @@ -565,6 +565,11 @@ { uint32_t pv = m_sel_hierarchy.at(j)->m_prev_selected_view; + if(m_sel_hierarchy.at(j)->m_field == "") + { + continue; + } + if(m_views.at(pv)->m_type == sinsp_view_info::T_SPECTRO) { //vs += m_sel_hierarchy.at(j)->m_prev_manual_filter.c_str(); @@ -582,6 +587,11 @@ vs += " and "; } } + + if(vs == "") + { + vs = "whole machine"; + } } else { @@ -1027,6 +1037,17 @@ return m_views.at(m_selected_view); } +sinsp_view_info* sinsp_cursesui::get_prev_selected_view() +{ + if(m_prev_selected_view < 0) + { + return NULL; + } + + ASSERT(m_prev_selected_view < (int32_t)m_views.size()); + return m_views.at(m_prev_selected_view); +} + #ifndef NOCURSESUI void sinsp_cursesui::populate_view_sidemenu(string field, vector<sidemenu_list_entry>* viewlist) { @@ -1271,14 +1292,6 @@ void sinsp_cursesui::switch_view(bool is_spy_switch) { - string field; - - if(m_sel_hierarchy.size() > 0) - { - sinsp_ui_selection_info* psinfo = m_sel_hierarchy.at(m_sel_hierarchy.size() - 1); - field = psinfo->m_field; - } - #ifndef NOCURSESUI if(!m_raw_output) { @@ -1299,6 +1312,35 @@ } } #endif + + // + // Put the current view in the hierarchy stack + // +#if 1 + sinsp_view_info* psv = get_prev_selected_view(); + + if(psv != NULL) + { + if(m_sel_hierarchy.size() > 0) + { + sinsp_ui_selection_info* psinfo = m_sel_hierarchy.at(m_sel_hierarchy.size() - 1); + + m_sel_hierarchy.push_back(psinfo->m_field, psinfo->m_val, + psv->get_key(), psinfo->m_view_filter, + m_prev_selected_view, m_selected_view_sidemenu_entry, + NULL, psv->m_sortingcol, m_manual_filter, m_is_filter_sysdig, + m_datatable->is_sorting_ascending()); + } + else + { + m_sel_hierarchy.push_back("", "", + psv->get_key(), "", + m_prev_selected_view, m_selected_view_sidemenu_entry, + NULL, psv->m_sortingcol, m_manual_filter, m_is_filter_sysdig, + m_datatable->is_sorting_ascending()); + } + } +#endif // // Clear the manual filter, but not if this is a sysdig filter and we're in the same diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/cursesui.h new/sysdig-0.10.1/userspace/libsinsp/cursesui.h --- old/sysdig-0.10.0/userspace/libsinsp/cursesui.h 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/cursesui.h 2016-06-17 17:55:07.000000000 +0200 @@ -88,7 +88,15 @@ m_prev_is_filter_sysdig = prev_is_filter_sysdig; m_prev_is_sorting_ascending = prev_is_sorting_ascending; - m_rowkey = *rowkey; + if(rowkey != NULL) + { + m_rowkey = *rowkey; + } + else + { + m_rowkey.m_len = 0; + m_rowkey.m_val = NULL; + } } string m_field; @@ -377,6 +385,7 @@ void configure(sinsp_view_manager* views); void start(bool is_drilldown, bool is_spy_switch); sinsp_view_info* get_selected_view(); + sinsp_view_info* get_prev_selected_view(); void pause(); bool is_searching() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/k8s_state.cpp new/sysdig-0.10.1/userspace/libsinsp/k8s_state.cpp --- old/sysdig-0.10.0/userspace/libsinsp/k8s_state.cpp 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/k8s_state.cpp 2016-06-17 17:55:07.000000000 +0200 @@ -336,6 +336,10 @@ { return k8s_component::K8S_REPLICATIONCONTROLLERS; } + else if(comp == "Service") + { + return k8s_component::K8S_SERVICES; + } else if(comp == "Event") { return k8s_component::K8S_EVENTS; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/mesos.cpp new/sysdig-0.10.1/userspace/libsinsp/mesos.cpp --- old/sysdig-0.10.0/userspace/libsinsp/mesos.cpp 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/mesos.cpp 2016-06-17 17:55:07.000000000 +0200 @@ -189,7 +189,9 @@ } if(m_state_http) { - const mesos_http::marathon_uri_t& marathon_uris = m_state_http->get_marathon_uris(); + const mesos_http::marathon_uri_t& marathon_uris = m_marathon_uris.empty() ? + m_state_http->get_marathon_uris() : + m_marathon_uris; if(marathon_uris.size()) { m_state.set_marathon_uri(marathon_uris[0]); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/libsinsp/sinsp.cpp new/sysdig-0.10.1/userspace/libsinsp/sinsp.cpp --- old/sysdig-0.10.0/userspace/libsinsp/sinsp.cpp 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/libsinsp/sinsp.cpp 2016-06-17 17:55:07.000000000 +0200 @@ -1608,7 +1608,7 @@ m_marathon_api_server, mesos::default_groups_api, mesos::default_apps_api, - false, // no leader follow + m_marathon_api_server.empty(), // leader auto-follow if no uri mesos::default_timeout_ms, is_live, m_verbose_json); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/sysdig/man/csysdig.8 new/sysdig-0.10.1/userspace/sysdig/man/csysdig.8 --- old/sysdig-0.10.0/userspace/sysdig/man/csysdig.8 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/sysdig/man/csysdig.8 2016-06-17 17:55:07.000000000 +0200 @@ -419,7 +419,19 @@ Enable Mesos support by connecting to the API server specified as argument (e.g. <http://admin:[email protected]:5050>). -Marathon url is optional and defaults to Mesos address, port 8080. +Mesos url is required. +Marathon url is optional, defaulting to auto\-follow \- if Marathon API +server is not provided, csysdig will attempt to retrieve (and +subsequently follow, if it migrates) the location of Marathon API server +from the Mesos master. +Note that, with auto\-follow, csysdig will likely receive a cluster +internal IP address for Marathon API server, so running csysdig with +Marathon auto\-follow from a node that is not part of Mesos cluster may +not work. +Additionally, running csysdig with Mesos support on a node that has no +containers managed by Mesos is of limited use because, although cluster +metadata will be collected, there will be no Mesos/Marathon filtering +capability. The API servers can also be specified via the environment variable SYSDIG_MESOS_API. .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/sysdig/man/csysdig.md new/sysdig-0.10.1/userspace/sysdig/man/csysdig.md --- old/sysdig-0.10.0/userspace/sysdig/man/csysdig.md 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/sysdig/man/csysdig.md 2016-06-17 17:55:07.000000000 +0200 @@ -182,7 +182,7 @@ Print program logs into the given file. **-m** _url[,marathon-url]_, **--mesos-api=**_url[,marathon-url]_ - Enable Mesos support by connecting to the API server specified as argument (e.g. http://admin:[email protected]:5050). Marathon url is optional and defaults to Mesos address, port 8080. The API servers can also be specified via the environment variable SYSDIG_MESOS_API. + Enable Mesos support by connecting to the API server specified as argument (e.g. http://admin:[email protected]:5050). Mesos url is required. Marathon url is optional, defaulting to auto-follow - if Marathon API server is not provided, csysdig will attempt to retrieve (and subsequently follow, if it migrates) the location of Marathon API server from the Mesos master. Note that, with auto-follow, csysdig will likely receive a cluster internal IP address for Marathon API server, so running csysdig with Marathon auto-follow from a node that is not part of Mesos cluster may not work. Additionally, running csysdig with Mesos support on a node that has no containers managed by Mesos is of limited use because, although cluster metadata will be collected, there will be no Mesos/Marathon filtering capability. The API servers can also be specified via the environment variable SYSDIG_MESOS_API. **-N** Don't convert port numbers to names. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/sysdig/man/sysdig.8 new/sysdig-0.10.1/userspace/sysdig/man/sysdig.8 --- old/sysdig-0.10.0/userspace/sysdig/man/sysdig.8 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/sysdig/man/sysdig.8 2016-06-17 17:55:07.000000000 +0200 @@ -397,7 +397,19 @@ Enable Mesos support by connecting to the API server specified as argument (e.g. <http://admin:[email protected]:5050>). -Marathon url is optional and defaults to Mesos address, port 8080. +Mesos url is required. +Marathon url is optional, defaulting to auto\-follow \- if Marathon API +server is not provided, sysdig will attempt to retrieve (and +subsequently follow, if it migrates) the location of Marathon API server +from the Mesos master. +Note that, with auto\-follow, sysdig will likely receive a cluster +internal IP address for Marathon API server, so running sysdig with +Marathon auto\-follow from a node that is not part of Mesos cluster may +not work. +Additionally, running sysdig with Mesos support on a node that has no +containers managed by Mesos is of limited use because, although cluster +metadata will be collected, there will be no Mesos/Marathon filtering +capability. The API servers can also be specified via the environment variable SYSDIG_MESOS_API. .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysdig-0.10.0/userspace/sysdig/man/sysdig.md new/sysdig-0.10.1/userspace/sysdig/man/sysdig.md --- old/sysdig-0.10.0/userspace/sysdig/man/sysdig.md 2016-06-06 12:58:14.000000000 +0200 +++ new/sysdig-0.10.1/userspace/sysdig/man/sysdig.md 2016-06-17 17:55:07.000000000 +0200 @@ -154,7 +154,7 @@ List the fields that can be used for filtering and output formatting. Use -lv to get additional information for each field. **-m** _url[,marathon-url]_, **--mesos-api=**_url[,marathon-url]_ - Enable Mesos support by connecting to the API server specified as argument (e.g. http://admin:[email protected]:5050). Marathon url is optional and defaults to Mesos address, port 8080. The API servers can also be specified via the environment variable SYSDIG_MESOS_API. + Enable Mesos support by connecting to the API server specified as argument (e.g. http://admin:[email protected]:5050). Mesos url is required. Marathon url is optional, defaulting to auto-follow - if Marathon API server is not provided, sysdig will attempt to retrieve (and subsequently follow, if it migrates) the location of Marathon API server from the Mesos master. Note that, with auto-follow, sysdig will likely receive a cluster internal IP address for Marathon API server, so running sysdig with Marathon auto-follow from a node that is not part of Mesos cluster may not work. Additionally, running sysdig with Mesos support on a node that has no containers managed by Mesos is of limited use because, although cluster metadata will be collected, there will be no Mesos/Marathon filtering capability. The API servers can also be specified via the environment variable SYSDIG_MESOS_API. **-N** Don't convert port numbers to names.
