Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package google-guest-oslogin for 
openSUSE:Factory checked in at 2023-05-10 16:18:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/google-guest-oslogin (Old)
 and      /work/SRC/openSUSE:Factory/.google-guest-oslogin.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "google-guest-oslogin"

Wed May 10 16:18:01 2023 rev:18 rq:1085769 version:20230502.00

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/google-guest-oslogin/google-guest-oslogin.changes    
    2023-02-28 14:24:13.191561711 +0100
+++ 
/work/SRC/openSUSE:Factory/.google-guest-oslogin.new.1533/google-guest-oslogin.changes
      2023-05-10 16:18:03.150807190 +0200
@@ -1,0 +2,19 @@
+Tue May  9 08:10:07 UTC 2023 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to version 20230502.00
+  * Improve the URL in 2fa prompt (#104)
+- from version 20230406.02
+  * Check open files (#101)
+- from version 20230406.01
+  * Initialize variables (#100)
+  * Fix formatting (#102)
+- from version 20230406.00
+  * PAM cleanup: remove duplicates (#97)
+- from version 20230405.00
+  * NSS cleanup (#98)
+- from version 20230403.01
+  * Cleanup Makefiles (#95)
+- from version 20230403.00
+  * Add anandadalton to the owners list (#96)
+
+-------------------------------------------------------------------

Old:
----
  google-guest-oslogin-20230217.00.tar.gz

New:
----
  google-guest-oslogin-20230502.00.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ google-guest-oslogin.spec ++++++
--- /var/tmp/diff_new_pack.Awa036/_old  2023-05-10 16:18:04.630815946 +0200
+++ /var/tmp/diff_new_pack.Awa036/_new  2023-05-10 16:18:04.634815969 +0200
@@ -19,7 +19,7 @@
 %{!?_pam_moduledir: %define _pam_moduledir %{_pamdir}}
 
 Name:           google-guest-oslogin
-Version:        20230217.00
+Version:        20230502.00
 Release:        0
 Summary:        Google Cloud Guest OS Login
 License:        Apache-2.0

++++++ google-guest-oslogin-20230217.00.tar.gz -> 
google-guest-oslogin-20230502.00.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/Makefile 
new/guest-oslogin-20230502.00/Makefile
--- old/guest-oslogin-20230217.00/Makefile      2023-02-17 02:36:35.000000000 
+0100
+++ new/guest-oslogin-20230502.00/Makefile      2023-05-02 20:42:44.000000000 
+0200
@@ -1,20 +1,42 @@
-all install :
+.PHONY: all clean install
+.PHONY: prowbuild prowtest
+.PHONY: alltests non_network_tests network_tests
+
+.DEFAULT_GOAL := all
+
+all install:
        $(MAKE) -C src $@
 
-alltests non_network_tests network_tests :
+alltests non_network_tests network_tests:
        $(MAKE) -C test $@
 
-clean :
+clean:
        $(MAKE) -C src clean
        $(MAKE) -C test clean
+       rm -f debian_deps debian_build_deps debian_test_deps
+       rm -f rhel_deps rhel_build_deps
+
+prowbuild: debian_build_deps all
 
-prowbuild : debian_deps all
+prowtest: debian_deps non_network_tests
+       mv -f test/test_detail.xml ${ARTIFACTS}/junit.xml
 
-prowtest : debian_deps non_network_tests
-       mv test/test_detail.xml ${ARTIFACTS}/junit.xml
+debian_deps: debian_build_deps debian_test_deps
+       touch $@
 
-debian_deps :
+debian_build_deps:
        apt-get -y install g++ libcurl4-openssl-dev libjson-c-dev libpam-dev \
-               googletest && touch $@
+       && touch $@
 
-.PHONY : all clean install prowbuild prowtest alltests non_network_tests 
network_tests
+debian_test_deps:
+       apt-get -y install googletest \
+       && touch $@
+
+rhel_deps: rhel_build_deps
+       touch $@
+
+rhel_build_deps:
+       dnf config-manager --set-enabled crb \
+       && dnf install -y policycoreutils gcc-c++ boost-devel libcurl-devel \
+                                       json-c-devel pam-devel policycoreutils \
+       && touch $@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/OWNERS 
new/guest-oslogin-20230502.00/OWNERS
--- old/guest-oslogin-20230217.00/OWNERS        2023-02-17 02:36:35.000000000 
+0100
+++ new/guest-oslogin-20230502.00/OWNERS        2023-05-02 20:42:44.000000000 
+0200
@@ -2,6 +2,7 @@
 # See the OWNERS docs at https://go.k8s.io/owners
 
 approvers:
+  - anandadalton
   - bkatyl
   - chaitanyakulkarni28
   - dorileo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/src/Makefile 
new/guest-oslogin-20230502.00/src/Makefile
--- old/guest-oslogin-20230217.00/src/Makefile  2023-02-17 02:36:35.000000000 
+0100
+++ new/guest-oslogin-20230502.00/src/Makefile  2023-05-02 20:42:44.000000000 
+0200
@@ -32,38 +32,39 @@
 
 BINARIES = google_oslogin_nss_cache google_authorized_keys 
google_authorized_keys_sk
 
-all : $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN) $(PAM_LOGIN) $(PAM_ADMIN) $(BINARIES)
+.PHONY: all clean install
+.DEFAULT_GOAL := all
 
-clean :
+all: $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN) $(PAM_LOGIN) $(PAM_ADMIN) $(BINARIES)
+
+clean:
        rm -f $(BINARIES)
        find . -type f \( -iname '*.o' -o -iname '*.so' \) -delete
 
-.PHONY : all clean install
-
 # NSS modules.
 
-$(NSS_OSLOGIN) : SONAME = $(NSS_OSLOGIN_SONAME)
-$(NSS_OSLOGIN) : nss/nss_oslogin.o oslogin_utils.o
+$(NSS_OSLOGIN): SONAME = $(NSS_OSLOGIN_SONAME)
+$(NSS_OSLOGIN): nss/nss_oslogin.o oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS)
 
-$(NSS_CACHE_OSLOGIN) : SONAME = $(NSS_CACHE_OSLOGIN_SONAME)
-$(NSS_CACHE_OSLOGIN) : nss/nss_cache_oslogin.o nss/compat/getpwent_r.o 
oslogin_utils.o
+$(NSS_CACHE_OSLOGIN): SONAME = $(NSS_CACHE_OSLOGIN_SONAME)
+$(NSS_CACHE_OSLOGIN): nss/nss_cache_oslogin.o nss/compat/getpwent_r.o 
oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS)
 
 # PAM modules
 
-$(PAM_LOGIN) : pam/pam_oslogin_login.o oslogin_utils.o
+$(PAM_LOGIN): pam/pam_oslogin_login.o oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) -shared $^ -o $@ $(PAMLIBS)
 
-$(PAM_ADMIN) : pam/pam_oslogin_admin.o oslogin_utils.o
+$(PAM_ADMIN): pam/pam_oslogin_admin.o oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) -shared $^ -o $@ $(PAMLIBS)
 
 # Utilities.
 
-google_authorized_keys : authorized_keys/authorized_keys.o oslogin_utils.o
+google_authorized_keys: authorized_keys/authorized_keys.o oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ -o $@ $(LDLIBS)
 
-google_authorized_keys_sk : authorized_keys/authorized_keys_sk.o 
oslogin_utils.o
+google_authorized_keys_sk: authorized_keys/authorized_keys_sk.o oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ -o $@ $(LDLIBS)
 
 google_oslogin_nss_cache: cache_refresh/cache_refresh.o oslogin_utils.o
@@ -85,8 +86,8 @@
        install -m 0755 -t $(DESTDIR)$(BINDIR) $(BINARIES)
        # Manpages
        install -m 0644 -t $(DESTDIR)$(MANDIR)/man8 $(TOPDIR)/man/nss-oslogin.8 
$(TOPDIR)/man/nss-cache-oslogin.8
-       gzip -9 $(DESTDIR)$(MANDIR)/man8/nss-oslogin.8
-       gzip -9 $(DESTDIR)$(MANDIR)/man8/nss-cache-oslogin.8
+       gzip -9f $(DESTDIR)$(MANDIR)/man8/nss-oslogin.8
+       gzip -9f $(DESTDIR)$(MANDIR)/man8/nss-cache-oslogin.8
        ln -sf nss-oslogin.8.gz       
$(DESTDIR)$(MANDIR)/man8/$(NSS_OSLOGIN_SONAME).8.gz
        ln -sf nss-cache-oslogin.8.gz 
$(DESTDIR)$(MANDIR)/man8/$(NSS_CACHE_OSLOGIN_SONAME).8.gz
 ifdef INSTALL_SELINUX
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20230217.00/src/include/oslogin_utils.h 
new/guest-oslogin-20230502.00/src/include/oslogin_utils.h
--- old/guest-oslogin-20230217.00/src/include/oslogin_utils.h   2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/include/oslogin_utils.h   2023-05-02 
20:42:44.000000000 +0200
@@ -220,11 +220,6 @@
 // Parses a JSON users response, storing results in a provided string vector.
 bool ParseJsonToUsers(const string& json, std::vector<string>* users);
 
-// Adds users and associated array of char* to provided buffer and store 
pointer
-// to array in result.gr_mem.
-bool AddUsersToGroup(std::vector<string> users, struct group* result,
-                       BufferManager* buf, int* errnop);
-
 // Gets group matching name.
 bool GetGroupByName(string name, struct group* grp, BufferManager* buf, int* 
errnop);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/src/nss/new_nss_oslogin.c 
new/guest-oslogin-20230502.00/src/nss/new_nss_oslogin.c
--- old/guest-oslogin-20230217.00/src/nss/new_nss_oslogin.c     2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/nss/new_nss_oslogin.c     2023-05-02 
20:42:44.000000000 +0200
@@ -77,7 +77,8 @@
       fprintf (stderr, __VA_ARGS__); \
     } while(0)
 
-int parsepasswd(char *str, struct passwd *result, char *buffer, size_t buflen) 
{
+int
+parsepasswd(char *str, struct passwd *result, char *buffer, size_t buflen) {
   int fields[PW_END+1] = {0};
 
   fields[PW_END] = strlen(str)+1;
@@ -109,7 +110,8 @@
   return 0;
 }
 
-int parsegroup(char *str, struct group *result, char *buffer, size_t buflen) {
+int
+parsegroup(char *str, struct group *result, char *buffer, size_t buflen) {
   int fields[GR_END+1] = {0};
   int members[MAX_GR_MEM] = {0};
   int i, field, len;
@@ -179,7 +181,8 @@
 struct Buffer pwbuf;
 struct Buffer grbuf;
 
-int dial(struct Buffer *const buffer) {
+int
+dial(struct Buffer *const buffer) {
   if (buffer->socket != 0) {
     return 0;
   }
@@ -199,7 +202,8 @@
   return 0;
 }
 
-int recvline(struct Buffer *const buffer) {
+int
+recvline(struct Buffer *const buffer) {
   int res = 0;
   ssize_t recvlen, new_size = 0;
   fd_set fds;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20230217.00/src/nss/nss_cache_oslogin.c 
new/guest-oslogin-20230502.00/src/nss/nss_cache_oslogin.c
--- old/guest-oslogin-20230217.00/src/nss/nss_cache_oslogin.c   2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/nss/nss_cache_oslogin.c   2023-05-02 
20:42:44.000000000 +0200
@@ -46,8 +46,8 @@
  * so that our caller knows to try again with a bigger buffer.
  */
 
-static inline enum nss_status _nss_cache_oslogin_ent_bad_return_code(
-    int errnoval) {
+static inline enum nss_status
+_nss_cache_oslogin_ent_bad_return_code(int errnoval) {
   enum nss_status ret;
 
   switch (errnoval) {
@@ -70,7 +70,8 @@
 // _nss_cache_oslogin_setpwent_locked()
 // Internal setup routine
 
-static enum nss_status _nss_cache_oslogin_setpwent_locked(void) {
+static enum nss_status
+_nss_cache_oslogin_setpwent_locked(void) {
   DEBUG("%s %s\n", "Opening", OSLOGIN_PASSWD_CACHE_PATH);
   if (p_file) {
     fclose(p_file);
@@ -89,7 +90,8 @@
 // Called by NSS to open the passwd file
 // 'stayopen' parameter is ignored.
 
-enum nss_status _nss_cache_oslogin_setpwent(int stayopen) {
+enum nss_status
+_nss_cache_oslogin_setpwent(int stayopen) {
   enum nss_status ret;
   NSS_CACHE_OSLOGIN_LOCK();
   ret = _nss_cache_oslogin_setpwent_locked();
@@ -100,7 +102,8 @@
 // _nss_cache_oslogin_endpwent_locked()
 // Internal close routine
 
-static enum nss_status _nss_cache_oslogin_endpwent_locked(void) {
+static enum nss_status
+_nss_cache_oslogin_endpwent_locked(void) {
   DEBUG("Closing %s\n", OSLOGIN_PASSWD_CACHE_PATH);
   if (p_file) {
     fclose(p_file);
@@ -112,7 +115,8 @@
 // _nss_cache_oslogin_endpwent()
 // Called by NSS to close the passwd file
 
-enum nss_status _nss_cache_oslogin_endpwent(void) {
+enum nss_status
+_nss_cache_oslogin_endpwent(void) {
   enum nss_status ret;
   NSS_CACHE_OSLOGIN_LOCK();
   ret = _nss_cache_oslogin_endpwent_locked();
@@ -123,8 +127,9 @@
 // _nss_cache_oslogin_getpwent_r_locked()
 // Called internally to return the next entry from the passwd file
 
-static enum nss_status _nss_cache_oslogin_getpwent_r_locked(
-    struct passwd *result, char *buffer, size_t buflen, int *errnop) {
+static enum nss_status
+_nss_cache_oslogin_getpwent_r_locked(struct passwd *result, char *buffer,
+                                     size_t buflen, int *errnop) {
   enum nss_status ret = NSS_STATUS_SUCCESS;
 
   if (p_file == NULL) {
@@ -150,9 +155,9 @@
 // _nss_cache_oslogin_getpwent_r()
 // Called by NSS to look up next entry in passwd file
 
-enum nss_status _nss_cache_oslogin_getpwent_r(struct passwd *result,
-                                              char *buffer, size_t buflen,
-                                              int *errnop) {
+enum nss_status
+_nss_cache_oslogin_getpwent_r(struct passwd *result,
+                              char *buffer, size_t buflen, int *errnop) {
   enum nss_status ret;
   NSS_CACHE_OSLOGIN_LOCK();
   ret = _nss_cache_oslogin_getpwent_r_locked(result, buffer, buflen, errnop);
@@ -163,9 +168,9 @@
 // _nss_cache_oslogin_getpwuid_r()
 // Find a user account by uid
 
-enum nss_status _nss_cache_oslogin_getpwuid_r(uid_t uid, struct passwd *result,
-                                              char *buffer, size_t buflen,
-                                              int *errnop) {
+enum nss_status
+_nss_cache_oslogin_getpwuid_r(uid_t uid, struct passwd *result,
+                              char *buffer, size_t buflen, int *errnop) {
   enum nss_status ret;
 
   NSS_CACHE_OSLOGIN_LOCK();
@@ -187,10 +192,9 @@
 // _nss_cache_oslogin_getpwnam_r()
 // Find a user account by name
 
-enum nss_status _nss_cache_oslogin_getpwnam_r(const char *name,
-                                              struct passwd *result,
-                                              char *buffer, size_t buflen,
-                                              int *errnop) {
+enum nss_status
+_nss_cache_oslogin_getpwnam_r(const char *name, struct passwd *result,
+                              char *buffer, size_t buflen, int *errnop) {
   enum nss_status ret;
 
   NSS_CACHE_OSLOGIN_LOCK();
@@ -211,7 +215,8 @@
 // _nss_cache_oslogin_setgrent_locked()
 // Internal setup routine
 
-static enum nss_status _nss_cache_oslogin_setgrent_locked(void) {
+static enum nss_status
+_nss_cache_oslogin_setgrent_locked(void) {
   if (g_file) {
     fclose(g_file);
   }
@@ -229,7 +234,8 @@
 // Called by NSS to open the group file
 // 'stayopen' parameter is ignored.
 
-enum nss_status _nss_cache_oslogin_setgrent(int stayopen) {
+enum nss_status
+_nss_cache_oslogin_setgrent(int stayopen) {
   enum nss_status ret;
   NSS_CACHE_OSLOGIN_LOCK();
   ret = _nss_cache_oslogin_setgrent_locked();
@@ -240,7 +246,8 @@
 // _nss_cache_oslogin_endgrent_locked()
 // Internal close routine
 
-static enum nss_status _nss_cache_oslogin_endgrent_locked(void) {
+static enum nss_status
+_nss_cache_oslogin_endgrent_locked(void) {
   DEBUG("%s %s\n", "Closing", OSLOGIN_GROUP_CACHE_PATH);
   if (g_file) {
     fclose(g_file);
@@ -252,7 +259,8 @@
 // _nss_cache_oslogin_endgrent()
 // Called by NSS to close the group file
 
-enum nss_status _nss_cache_oslogin_endgrent(void) {
+enum nss_status
+_nss_cache_oslogin_endgrent(void) {
   enum nss_status ret;
   NSS_CACHE_OSLOGIN_LOCK();
   ret = _nss_cache_oslogin_endgrent_locked();
@@ -263,9 +271,9 @@
 // _nss_cache_oslogin_getgrent_r_locked()
 // Called internally to return the next entry from the group file
 
-static enum nss_status _nss_cache_oslogin_getgrent_r_locked(struct group 
*result,
-                                                    char *buffer, size_t 
buflen,
-                                                    int *errnop) {
+static enum nss_status
+_nss_cache_oslogin_getgrent_r_locked(struct group *result,
+                                     char *buffer, size_t buflen, int *errnop) 
{
   enum nss_status ret = NSS_STATUS_SUCCESS;
 
   if (g_file == NULL) {
@@ -303,8 +311,9 @@
 // _nss_cache_oslogin_getgrent_r()
 // Called by NSS to look up next entry in group file
 
-enum nss_status _nss_cache_oslogin_getgrent_r(struct group *result, char 
*buffer,
-                                      size_t buflen, int *errnop) {
+enum nss_status
+_nss_cache_oslogin_getgrent_r(struct group *result, char *buffer,
+                              size_t buflen, int *errnop) {
   enum nss_status ret;
   NSS_CACHE_OSLOGIN_LOCK();
   ret = _nss_cache_oslogin_getgrent_r_locked(result, buffer, buflen, errnop);
@@ -315,9 +324,9 @@
 // _nss_cache_oslogin_getgrgid_r()
 // Find a group by gid
 
-enum nss_status _nss_cache_oslogin_getgrgid_r(gid_t gid, struct group *result,
-                                      char *buffer, size_t buflen,
-                                      int *errnop) {
+enum nss_status
+_nss_cache_oslogin_getgrgid_r(gid_t gid, struct group *result,
+                              char *buffer, size_t buflen, int *errnop) {
   enum nss_status ret;
 
   // First check for user whose UID matches requested GID, for self-groups.
@@ -367,9 +376,9 @@
 // _nss_cache_oslogin_getgrnam_r()
 // Find a group by name
 
-enum nss_status _nss_cache_oslogin_getgrnam_r(const char *name, struct group 
*result,
-                                      char *buffer, size_t buflen,
-                                      int *errnop) {
+enum nss_status
+_nss_cache_oslogin_getgrnam_r(const char *name, struct group *result,
+                              char *buffer, size_t buflen, int *errnop) {
   enum nss_status ret;
 
   // First check for user whose name matches request, for self-groups.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/src/nss/nss_oslogin.cc 
new/guest-oslogin-20230502.00/src/nss/nss_oslogin.cc
--- old/guest-oslogin-20230217.00/src/nss/nss_oslogin.cc        2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/nss/nss_oslogin.cc        2023-05-02 
20:42:44.000000000 +0200
@@ -50,19 +50,21 @@
 extern "C" {
 
 // Get a passwd entry by id.
-enum nss_status _nss_oslogin_getpwuid_r(uid_t uid, struct passwd *result,
-                                        char *buffer, size_t buflen,
-                                        int *errnop) {
+enum nss_status
+_nss_oslogin_getpwuid_r(uid_t uid, struct passwd *result,
+                        char *buffer, size_t buflen, int *errnop) {
   BufferManager buffer_manager(buffer, buflen);
   std::stringstream url;
   url << kMetadataServerUrl << "users?uid=" << uid;
+
   string response;
   long http_code = 0;
-  if (!HttpGet(url.str(), &response, &http_code) || http_code != 200 ||
-      response.empty()) {
+  if (!HttpGet(url.str(), &response, &http_code) ||
+      http_code != 200 || response.empty()) {
     *errnop = ENOENT;
     return NSS_STATUS_NOTFOUND;
   }
+
   if (!ParseJsonToPasswd(response, result, &buffer_manager, errnop)) {
     if (*errnop == EINVAL) {
       openlog("nss_oslogin", LOG_PID, LOG_USER);
@@ -76,19 +78,21 @@
 }
 
 // Get a passwd entry by name.
-enum nss_status _nss_oslogin_getpwnam_r(const char *name, struct passwd 
*result,
-                                        char *buffer, size_t buflen,
-                                        int *errnop) {
+enum nss_status
+_nss_oslogin_getpwnam_r(const char *name, struct passwd *result,
+                        char *buffer, size_t buflen, int *errnop) {
   BufferManager buffer_manager(buffer, buflen);
   std::stringstream url;
   url << kMetadataServerUrl << "users?username=" << UrlEncode(name);
+
   string response;
   long http_code = 0;
-  if (!HttpGet(url.str(), &response, &http_code) || http_code != 200 ||
-      response.empty()) {
+  if (!HttpGet(url.str(), &response, &http_code) ||
+      http_code != 200 || response.empty()) {
     *errnop = ENOENT;
     return NSS_STATUS_NOTFOUND;
   }
+
   if (!ParseJsonToPasswd(response, result, &buffer_manager, errnop)) {
     if (*errnop == EINVAL) {
       openlog("nss_oslogin", LOG_PID, LOG_USER);
@@ -103,8 +107,9 @@
 
 // Look for OS Login user with uid matching the requested gid, and craft a
 // self-group for it.
-enum nss_status getselfgrgid(gid_t gid, struct group *grp,
-                             char *buf, size_t buflen, int *errnop) {
+enum nss_status
+getselfgrgid(gid_t gid, struct group *grp, char *buf,
+             size_t buflen, int *errnop) {
   BufferManager buffer_manager(buf, buflen);
 
   // Look for a matching user in cache.
@@ -142,38 +147,43 @@
   // Look for matching user in backend.
   std::stringstream url;
   url << kMetadataServerUrl << "users?uid=" << gid;
+
   string response;
   long http_code = 0;
-  if (!HttpGet(url.str(), &response, &http_code) || http_code != 200 ||
-      response.empty()) {
+  if (!HttpGet(url.str(), &response, &http_code) ||
+      http_code != 200 || response.empty()) {
     return NSS_STATUS_NOTFOUND;
   }
+
   struct passwd result;
-  if (!ParseJsonToPasswd(response, &result, &buffer_manager, errnop))
+  if (!ParseJsonToPasswd(response, &result, &buffer_manager, errnop)) {
     return NSS_STATUS_NOTFOUND;
+  }
 
-  if (result.pw_gid != result.pw_uid)
+  if (result.pw_gid != result.pw_uid) {
     return NSS_STATUS_NOTFOUND;
-
+  }
   // Set the group name to the name of the matching user.
-  if (!buffer_manager.AppendString(result.pw_name, &grp->gr_name, errnop))
+  if (!buffer_manager.AppendString(result.pw_name, &grp->gr_name, errnop)) {
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+  }
 
   grp->gr_gid = result.pw_uid;
 
   // Create a list of only the matching user and add to members list.
   std::vector<string> members;
   members.push_back(string(result.pw_name));
-  if (!AddUsersToGroup(members, grp, &buffer_manager, errnop))
+  if (!AddUsersToGroup(members, grp, &buffer_manager, errnop)) {
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
-
+  }
   return NSS_STATUS_SUCCESS;
 }
 
 // Look for OS Login user with name matching the requested name, and craft a
 // self-group for it.
-enum nss_status getselfgrnam(const char* name, struct group *grp,
-                             char *buf, size_t buflen, int *errnop) {
+enum nss_status
+getselfgrnam(const char* name, struct group *grp,
+             char *buf, size_t buflen, int *errnop) {
   BufferManager buffer_manager(buf, buflen);
 
   // Look for a matching user in cache.
@@ -207,42 +217,48 @@
   // Look for matching user in backend.
   std::stringstream url;
   url << kMetadataServerUrl << "users?username=" << UrlEncode(string(name));
+
   string response;
   long http_code = 0;
-  if (!HttpGet(url.str(), &response, &http_code) || http_code != 200 ||
-      response.empty()) {
+  if (!HttpGet(url.str(), &response, &http_code) ||
+      http_code != 200 || response.empty()) {
     return NSS_STATUS_NOTFOUND;
   }
+
   struct passwd result;
-  if (!ParseJsonToPasswd(response, &result, &buffer_manager, errnop))
+  if (!ParseJsonToPasswd(response, &result, &buffer_manager, errnop)) {
     return NSS_STATUS_NOTFOUND;
+  }
 
-  if (result.pw_gid != result.pw_uid)
+  if (result.pw_gid != result.pw_uid) {
     return NSS_STATUS_NOTFOUND;
-
+  }
   // Set the group name to the name of the matching user.
-  if (!buffer_manager.AppendString(result.pw_name, &grp->gr_name, errnop))
+  if (!buffer_manager.AppendString(result.pw_name, &grp->gr_name, errnop)) {
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+  }
 
   grp->gr_gid = result.pw_uid;
 
   // Create a list of only the matching user and add to members list.
   std::vector<string> members;
   members.push_back(string(result.pw_name));
-  if (!AddUsersToGroup(members, grp, &buffer_manager, errnop))
+  if (!AddUsersToGroup(members, grp, &buffer_manager, errnop)) {
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
-
+  }
   return NSS_STATUS_SUCCESS;
 }
 
 // _nss_olosing_getgrgid_r()
 // Get a group entry by id.
 
-enum nss_status _nss_oslogin_getgrgid_r(gid_t gid, struct group *grp, char 
*buf,
-                                        size_t buflen, int *errnop) {
+enum nss_status
+_nss_oslogin_getgrgid_r(gid_t gid, struct group *grp, char *buf,
+                        size_t buflen, int *errnop) {
   // If there is no cache file, we will assume there are no groups.
-  if (access(OSLOGIN_GROUP_CACHE_PATH, R_OK) != 0)
+  if (access(OSLOGIN_GROUP_CACHE_PATH, R_OK) != 0) {
     return getselfgrgid(gid, grp, buf, buflen, errnop);
+  }
 
   memset(grp, 0, sizeof(struct group));
   BufferManager buffer_manager(buf, buflen);
@@ -254,23 +270,26 @@
   }
 
   std::vector<string> users;
-  if (!GetUsersForGroup(grp->gr_name, &users, errnop))
+  if (!GetUsersForGroup(grp->gr_name, &users, errnop)) {
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+  }
 
-  if (!users.empty() && !AddUsersToGroup(users, grp, &buffer_manager, errnop))
+  if (!users.empty() && !AddUsersToGroup(users, grp, &buffer_manager, errnop)) 
{
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
-
+  }
   return NSS_STATUS_SUCCESS;
 }
 
 // _nss_oslogin_getgrnam_r()
 // Get a group entry by name.
 
-enum nss_status _nss_oslogin_getgrnam_r(const char *name, struct group *grp,
-                                        char *buf, size_t buflen, int *errnop) 
{
+enum nss_status
+_nss_oslogin_getgrnam_r(const char *name, struct group *grp,
+                        char *buf, size_t buflen, int *errnop) {
   // If there is no cache file, we will assume there are no groups.
-  if (access(OSLOGIN_GROUP_CACHE_PATH, R_OK) != 0)
+  if (access(OSLOGIN_GROUP_CACHE_PATH, R_OK) != 0) {
     return getselfgrnam(name, grp, buf, buflen, errnop);
+  }
 
   memset(grp, 0, sizeof(struct group));
   BufferManager buffer_manager(buf, buflen);
@@ -282,26 +301,28 @@
   }
 
   std::vector<string> users;
-  if (!GetUsersForGroup(grp->gr_name, &users, errnop))
+  if (!GetUsersForGroup(grp->gr_name, &users, errnop)) {
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+  }
 
-  if (!users.empty() && !AddUsersToGroup(users, grp, &buffer_manager, errnop))
+  if (!users.empty() && !AddUsersToGroup(users, grp, &buffer_manager, errnop)) 
{
     return *errnop == ERANGE ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
-
+  }
   return NSS_STATUS_SUCCESS;
 }
 
 // _nss_cache_oslogin_initgroups_dyn()
 // Initialize groups for new session.
 
-enum nss_status _nss_oslogin_initgroups_dyn(const char *user, gid_t skipgroup,
-                                            long int *start, long int *size,
-                                            gid_t **groupsp, long int limit,
-                                            int *errnop) {
+enum nss_status
+_nss_oslogin_initgroups_dyn(const char *user, gid_t skipgroup, long int *start,
+                            long int *size, gid_t **groupsp,
+                            long int limit, int *errnop) {
   // check if user exists in local passwd DB
   FILE *p_file = fopen(PASSWD_PATH, "re");
-  if (p_file == NULL)
+  if (p_file == NULL) {
     return NSS_STATUS_NOTFOUND;
+  }
 
   struct passwd *userp;
   while ((userp = fgetpwent(p_file)) != NULL) {
@@ -386,4 +407,5 @@
                           (void *)_nss_oslogin_getgrgid_r}, )
 
 NSS_REGISTER_METHODS(methods)
+
 }  // extern "C"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/src/oslogin_utils.cc 
new/guest-oslogin-20230502.00/src/oslogin_utils.cc
--- old/guest-oslogin-20230217.00/src/oslogin_utils.cc  2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/oslogin_utils.cc  2023-05-02 
20:42:44.000000000 +0200
@@ -17,7 +17,6 @@
 #include <errno.h>
 #include <grp.h>
 #include <json.h>
-#include <grp.h>
 #include <nss.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -91,6 +90,7 @@
     : cache_size_(cache_size),
       entry_cache_(cache_size),
       page_token_(""),
+      index_(0),
       on_last_page_(false) {}
 
 void NssCache::Reset() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20230217.00/src/pam/pam_oslogin_admin.cc 
new/guest-oslogin-20230502.00/src/pam/pam_oslogin_admin.cc
--- old/guest-oslogin-20230217.00/src/pam/pam_oslogin_admin.cc  2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/pam/pam_oslogin_admin.cc  2023-05-02 
20:42:44.000000000 +0200
@@ -43,12 +43,13 @@
 
 extern "C" {
 
-PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc,
-                                const char **argv) {
+PAM_EXTERN int
+pam_sm_acct_mgmt(pam_handle_t* pamh, int flags, int argc, const char** argv) {
   // The return value for this module should generally be ignored. By default 
we
   // will return PAM_SUCCESS.
   int pam_result = PAM_SUCCESS;
   const char *user_name;
+
   if ((pam_result = pam_get_user(pamh, &user_name, NULL)) != PAM_SUCCESS) {
     PAM_SYSLOG(pamh, LOG_INFO, "Could not get pam user.");
     return pam_result;
@@ -77,7 +78,7 @@
   filename.append(user_name);
   struct stat buffer;
   bool file_exists = !stat(filename.c_str(), &buffer);
-  long http_code;
+  long http_code = 0;
   if (HttpGet(url.str(), &response, &http_code) && http_code == 200 &&
       ParseJsonToSuccess(response)) {
     if (!file_exists) {
@@ -86,11 +87,21 @@
                  user_name);
       std::ofstream sudoers_file;
       sudoers_file.open(filename.c_str());
-      sudoers_file << user_name << " ALL=(ALL) NOPASSWD: ALL"
-                   << "\n";
-      sudoers_file.close();
-      chown(filename.c_str(), 0, 0);
-      chmod(filename.c_str(), S_IRUSR | S_IRGRP);
+      // OS Login directories are created by another product, guest-agent
+      // 
https://github.com/GoogleCloudPlatform/guest-agent/blob/56988fa888b46dc0796a958929dceed460f7a3e8/google_guest_agent/oslogin.go#L344
+      // We should be sure a file is opened for writing
+      if (sudoers_file.is_open()) {
+          sudoers_file << user_name << " ALL=(ALL) NOPASSWD: ALL\n";
+          sudoers_file.close();
+
+          chown(filename.c_str(), 0, 0);
+          chmod(filename.c_str(), S_IRUSR | S_IRGRP);
+      } else {
+          PAM_SYSLOG(pamh, LOG_INFO,
+                     "Could not grant sudo permissions to organization user 
%s."
+                     " Sudoers file %s is not writable.",
+                     user_name, filename.c_str());
+      }
     }
   } else if (file_exists) {
     remove(filename.c_str());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20230217.00/src/pam/pam_oslogin_login.cc 
new/guest-oslogin-20230502.00/src/pam/pam_oslogin_login.cc
--- old/guest-oslogin-20230217.00/src/pam/pam_oslogin_login.cc  2023-02-17 
02:36:35.000000000 +0100
+++ new/guest-oslogin-20230502.00/src/pam/pam_oslogin_login.cc  2023-05-02 
20:42:44.000000000 +0200
@@ -45,9 +45,11 @@
 static const char kUsersDir[] = "/var/google-users.d/";
 
 extern "C" {
-PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc,
-                                const char **argv) {
+
+PAM_EXTERN int
+pam_sm_acct_mgmt(pam_handle_t* pamh, int flags, int argc, const char** argv) {
   const char *user_name;
+
   if (pam_get_user(pamh, &user_name, NULL) != PAM_SUCCESS) {
     PAM_SYSLOG(pamh, LOG_INFO, "Could not get pam user.");
     return PAM_AUTH_ERR;
@@ -69,7 +71,8 @@
 
   std::string response;
   long http_code = 0;
-  if (!HttpGet(url.str(), &response, &http_code) || response.empty() || 
http_code != 200) {
+  if (!HttpGet(url.str(), &response, &http_code) || response.empty()
+      || http_code != 200) {
     if (http_code == 404) {
       // This module is only consulted for OS Login users.
       return PAM_IGNORE;
@@ -90,41 +93,63 @@
   }
 
   url.str("");
-  url << kMetadataServerUrl << "authorize?email=" << UrlEncode(email) << 
"&policy=login";
+  url << kMetadataServerUrl << "authorize?email=" << UrlEncode(email)
+      << "&policy=login";
+
   if (!HttpGet(url.str(), &response, &http_code)) {
-    PAM_SYSLOG(pamh, LOG_INFO, "Failed to validate organization user %s has 
login permission.", user_name);
+    PAM_SYSLOG(pamh, LOG_INFO, "Failed to validate organization user %s "
+                               "has login permission.", user_name);
     return PAM_PERM_DENIED;
   }
+
   if (http_code != 200) {
-    PAM_SYSLOG(pamh, LOG_INFO, 
-        "Failed to validate organization user %s has login permission, got 
HTTP response code %d.",
-        user_name, http_code);
+    PAM_SYSLOG(pamh, LOG_INFO, "Failed to validate organization user %s has "
+                               "login permission, got HTTP response code %d.",
+                               user_name, http_code);
     return PAM_PERM_DENIED;
   }
+
   if (!ParseJsonToSuccess(response)) {
-    PAM_SYSLOG(pamh, LOG_INFO, "Organization user %s does not have login 
permission.", user_name);
+    PAM_SYSLOG(pamh, LOG_INFO, "Organization user %s does not have login "
+                               "permission.", user_name);
     if (file_exists) {
       remove(users_filename.c_str());
     }
     return PAM_PERM_DENIED;
   }
 
-  PAM_SYSLOG(pamh, LOG_INFO, "Organization user %s has login permission.", 
user_name);
+  PAM_SYSLOG(pamh, LOG_INFO, "Organization user %s has login permission.",
+             user_name);
   if (!file_exists) {
-    std::ofstream users_file(users_filename.c_str());
-    chown(users_filename.c_str(), 0, 0);
-    chmod(users_filename.c_str(), S_IRUSR | S_IWUSR | S_IRGRP);
+    std::ofstream users_file;
+    users_file.open(users_filename.c_str());
+    // OS Login directories are created by another product, guest-agent
+    // 
https://github.com/GoogleCloudPlatform/guest-agent/blob/56988fa888b46dc0796a958929dceed460f7a3e8/google_guest_agent/oslogin.go#L344
+    // We should be sure a file is opened for writing
+    if (users_file.is_open()) {
+       // this is only for creating an empty file
+       users_file.close();
+
+       chown(users_filename.c_str(), 0, 0);
+       chmod(users_filename.c_str(), S_IRUSR | S_IWUSR | S_IRGRP);
+    } else {
+      PAM_SYSLOG(pamh, LOG_INFO,
+                 "Could not create a user's file %s", users_filename.c_str());
+    }
   }
   return PAM_SUCCESS;
 }
 
-PAM_EXTERN int pam_sm_setcred(pam_handle_t * pamh, int flags, int argc, const 
char **argv) {
+PAM_EXTERN int
+pam_sm_setcred(pam_handle_t* pamh, int flags, int argc, const char** argv) {
   return PAM_SUCCESS;
 }
 
-PAM_EXTERN int pam_sm_authenticate(pam_handle_t * pamh, int flags, int argc, 
const char **argv)
-{
-  const char* user_name;
+PAM_EXTERN int
+pam_sm_authenticate(pam_handle_t* pamh, int flags, int argc,
+                    const char** argv) {
+  const char *user_name;
+
   if (pam_get_user(pamh, &user_name, NULL) != PAM_SUCCESS) {
     PAM_SYSLOG(pamh, LOG_INFO, "Could not get pam user.");
     return PAM_PERM_DENIED;
@@ -153,14 +178,16 @@
 
   response = "";
   if (!StartSession(email, &response)) {
-    PAM_SYSLOG(pamh, LOG_ERR, "Bad response from the two-factor start session 
request: %s",
+    PAM_SYSLOG(pamh, LOG_ERR, "Bad response from the two-factor start session "
+               "request: %s",
                response.empty() ? "empty response" : response.c_str());
     return PAM_PERM_DENIED;
   }
 
   std::string status;
   if (!ParseJsonToKey(response, "status", &status)) {
-    PAM_SYSLOG(pamh, LOG_ERR, "Failed to parse status from start session 
response");
+    PAM_SYSLOG(pamh, LOG_ERR, "Failed to parse status from start session "
+                              "response");
     return PAM_PERM_DENIED;
   }
 
@@ -175,7 +202,8 @@
 
   std::vector<oslogin_utils::Challenge> challenges;
   if (!ParseJsonToChallenges(response, &challenges)) {
-    PAM_SYSLOG(pamh, LOG_ERR, "Failed to parse challenge values from JSON 
response");
+    PAM_SYSLOG(pamh, LOG_ERR, "Failed to parse challenge values from "
+                              "JSON response");
     return PAM_PERM_DENIED;
   }
 
@@ -191,12 +219,14 @@
     std::stringstream prompt;
     prompt << "Please choose from the available authentication methods: ";
     for(vector<oslogin_utils::Challenge>::size_type i = 0;
-        i != challenges.size(); ++i)
+        i != challenges.size(); ++i) {
       prompt << "\n" << i+1 << ": " << user_prompts[challenges[i].type];
+    }
     prompt << "\n\nEnter the number for the authentication method to use: ";
 
     char *choice = NULL;
-    if (pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &choice, "%s", 
prompt.str().c_str()) != PAM_SUCCESS) {
+    if (pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &choice, "%s",
+                   prompt.str().c_str()) != PAM_SUCCESS) {
       pam_error(pamh, "Unable to get user input");
       return PAM_PERM_DENIED;
     }
@@ -206,6 +236,7 @@
       pam_error(pamh, "Error parsing user input");
       return PAM_PERM_DENIED;
     }
+
     if (size_t(choicei) > challenges.size() || choicei <= 0) {
       pam_error(pamh, "Invalid option");
       return PAM_PERM_DENIED;
@@ -218,21 +249,23 @@
   if (challenge.status != "READY") {
     // Call continueSession with the START_ALTERNATE flag.
     if (!ContinueSession(true, email, "", session_id, challenge, &response)) {
-      PAM_SYSLOG(pamh, LOG_ERR, "Bad response from two-factor continue session 
request: %s",
+      PAM_SYSLOG(pamh, LOG_ERR, "Bad response from two-factor continue session 
"
+                 "request: %s",
                  response.empty() ? "empty response" : response.c_str());
       return PAM_PERM_DENIED;
     }
   }
 
-  char* user_token = NULL;
+  char *user_token = NULL;
   if (challenge.type == INTERNAL_TWO_FACTOR) {
-    if (pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &user_token, "Enter your security 
code: ") != PAM_SUCCESS) {
+    if (pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &user_token,
+                   "Enter your security code: ") != PAM_SUCCESS) {
       pam_error(pamh, "Unable to get user input");
       return PAM_PERM_DENIED;
     }
   } else if (challenge.type == SECURITY_KEY_OTP) {
     if (pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &user_token,
-                   "Enter your security code by visiting g.co/sc: ") != 
PAM_SUCCESS) {
+        "Enter your security code by visiting https://g.co/sc: ") != 
PAM_SUCCESS) {
       pam_error(pamh, "Unable to get user input");
       return PAM_PERM_DENIED;
     }
@@ -262,8 +295,10 @@
     return PAM_PERM_DENIED;
   }
 
-  if (!ContinueSession(false, email, user_token, session_id, challenge, 
&response)) {
-      PAM_SYSLOG(pamh, LOG_ERR, "Bad response from two-factor continue session 
request: %s",
+  if (!ContinueSession(false, email, user_token, session_id,
+                       challenge, &response)) {
+      PAM_SYSLOG(pamh, LOG_ERR, "Bad response from two-factor continue "
+                 "session request: %s",
                  response.empty() ? "empty response" : response.c_str());
       return PAM_PERM_DENIED;
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20230217.00/test/Makefile 
new/guest-oslogin-20230502.00/test/Makefile
--- old/guest-oslogin-20230217.00/test/Makefile 2023-02-17 02:36:35.000000000 
+0100
+++ new/guest-oslogin-20230502.00/test/Makefile 2023-05-02 20:42:44.000000000 
+0200
@@ -10,38 +10,40 @@
 CXXFLAGS += -g -Wall -Wextra -std=c++11
 LDLIBS = -lcurl -ljson-c -lpthread
 
-all : test_runner new_test_runner non_network_tests
+.PHONY: all clean alltests ping reset
+.PHONY: gtest prowtest non_network_tests network_tests
+.DEFAULT_GOAL := all
+
+all: test_runner new_test_runner non_network_tests
 
 clean :
-       rm -f test_runner *.o
+       rm -f test_runner new_test_runner test_detail.xml *.o
 
-gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc
+gtest-all.o: $(GTEST_DIR)/src/gtest-all.cc
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $^
 
-test_runner : oslogin_utils_test.o $(TOPDIR)/src/oslogin_utils.o gtest-all.o
+test_runner: oslogin_utils_test.o $(TOPDIR)/src/oslogin_utils.o gtest-all.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ -o $@ $(LDLIBS)
 
-new_test_runner : oslogin_test.o gtest-all.o
+new_test_runner: oslogin_test.o gtest-all.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ -o $@ $(LDLIBS)
 
-new_tests : new_test_runner $(TOPDIR)/src/nss/new_nss_oslogin.c
+new_tests: new_test_runner $(TOPDIR)/src/nss/new_nss_oslogin.c
        $(NEW_TEST_RUNNER) ${GTESTARGS}
 
-non_network_tests : test_runner new_test_runner
+non_network_tests: test_runner new_test_runner
        $(TEST_RUNNER) --gtest_filter=*-GetGroupByTest.*:GetUsersForGroupTest.*
        $(NEW_TEST_RUNNER) --gtest_filter=ParserTest.*
 
-network_tests : test_runner ping reset
+network_tests: test_runner ping reset
        $(TEST_RUNNER) --gtest_filter=GetGroupByTest.*:GetUsersForGroupTest.*
 
 # run as $ make tests GTESTARGS="--gtest_filter=GetGroupByTest.*"
-alltests : test_runner
+alltests: test_runner
        $(TEST_RUNNER) ${GTESTARGS}
 
-ping :
+ping:
        nc -vzw2 169.254.169.254 80 >/dev/null 2>&1
 
-reset :
+reset:
        curl -Ss http://169.254.169.254/reset >/dev/null 2>&1
-
-.PHONY : all clean alltests ping reset gtest prowtest non_network_tests 
network_tests

Reply via email to