nvazquez closed pull request #1593: CLOUDSTACK-9417: Usage module refactoring
URL: https://github.com/apache/cloudstack/pull/1593
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/debian/cloudstack-usage.install b/debian/cloudstack-usage.install
index c0cc95a80b7..e91a570cd31 100644
--- a/debian/cloudstack-usage.install
+++ b/debian/cloudstack-usage.install
@@ -20,3 +20,5 @@
 /etc/init.d/cloudstack-usage
 /etc/cloudstack/usage/*
 /etc/default/cloudstack-usage
+/var/cache/cloudstack/usage
+
diff --git a/debian/cloudstack-usage.postinst b/debian/cloudstack-usage.postinst
index 95297119d2c..3ed7c4b7305 100644
--- a/debian/cloudstack-usage.postinst
+++ b/debian/cloudstack-usage.postinst
@@ -43,6 +43,10 @@ case "$1" in
             rm -rf /etc/cloudstack/usage/key
             ln -s /etc/cloudstack/management/key /etc/cloudstack/usage/key
         fi
+
+        # Usage cache folder permissions
+        chmod 0770 /var/cache/cloudstack/usage
+        chgrp cloud /var/cache/cloudstack/usage
         ;;
 esac
 
diff --git a/debian/rules b/debian/rules
index 03e9707df70..f9adc2cf0ef 100755
--- a/debian/rules
+++ b/debian/rules
@@ -128,6 +128,7 @@ override_dh_auto_install:
        mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage
        mkdir $(DESTDIR)/usr/share/$(PACKAGE)-usage
        mkdir $(DESTDIR)/usr/share/$(PACKAGE)-usage/plugins
+       mkdir $(DESTDIR)/var/cache/$(PACKAGE)/usage
        install -D usage/target/cloud-usage-$(VERSION).jar 
$(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/$(PACKAGE)-usage.jar
        install -D usage/target/dependencies/* 
$(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/
        cp usage/target/transformed/db.properties 
$(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index abe50bce65e..84d0e34aebc 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -240,6 +240,7 @@ mkdir -p 
${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
@@ -329,6 +330,7 @@ chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 
@@ -572,6 +574,10 @@ fi
 pip install --upgrade 
http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
 pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
 
+if [ -f "/usr/local/libexec/sanity-check-last-id" ]; then
+    cp /usr/local/libexec/sanity-check-last-id 
%{_localstatedir}/cache/%{name}/usage
+fi
+
 #No default permission as the permission setup is complex
 %files management
 %defattr(-,root,root,-)
@@ -670,6 +676,7 @@ pip install --upgrade 
/usr/share/cloudstack-marvin/Marvin-*.tar.gz
 %attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
 %{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
+%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/usage
 
 %files cli
 %attr(0644,root,root) %{python_sitearch}/cloudapis.py
diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec
index cc63f5f5788..c0d80a80230 100644
--- a/packaging/centos7/cloud.spec
+++ b/packaging/centos7/cloud.spec
@@ -208,6 +208,7 @@ mkdir -p 
${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
@@ -301,6 +302,7 @@ chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 
@@ -474,6 +476,10 @@ fi
 pip install --upgrade 
http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
 pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
 
+if [ -f "/usr/local/libexec/sanity-check-last-id" ]; then
+    cp /usr/local/libexec/sanity-check-last-id 
%{_localstatedir}/cache/%{name}/usage
+fi
+
 #No default permission as the permission setup is complex
 %files management
 %defattr(-,root,root,-)
@@ -573,6 +579,7 @@ pip install --upgrade 
/usr/share/cloudstack-marvin/Marvin-*.tar.gz
 %attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
 %{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
+%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/usage
 
 %files cli
 %attr(0644,root,root) %{python_sitearch}/cloudapis.py
diff --git a/packaging/fedora20/cloud.spec b/packaging/fedora20/cloud.spec
index 546e439da2b..39f93a16def 100644
--- a/packaging/fedora20/cloud.spec
+++ b/packaging/fedora20/cloud.spec
@@ -221,6 +221,7 @@ mkdir -p 
${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
@@ -308,6 +309,7 @@ chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 
@@ -625,6 +627,7 @@ fi
 %attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
 %{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
+%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/usage
 
 %files cli
 %attr(0644,root,root) %{python_sitearch}/cloudapis.py
diff --git a/packaging/fedora21/cloud.spec b/packaging/fedora21/cloud.spec
index a79d172eab7..f245f0a9de2 100644
--- a/packaging/fedora21/cloud.spec
+++ b/packaging/fedora21/cloud.spec
@@ -221,6 +221,7 @@ mkdir -p 
${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
@@ -308,6 +309,7 @@ chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
+chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/usage
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 
@@ -625,6 +627,7 @@ fi
 %attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
 %{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
+%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/usage
 
 %files cli
 %attr(0644,root,root) %{python_sitearch}/cloudapis.py
diff --git a/usage/conf/log4j-cloud_usage.xml.in 
b/usage/conf/log4j-cloud_usage.xml.in
index 1f5c7877f0d..964a0f77795 100644
--- a/usage/conf/log4j-cloud_usage.xml.in
+++ b/usage/conf/log4j-cloud_usage.xml.in
@@ -48,7 +48,7 @@ under the License.
       </rollingPolicy>
 
       <layout class="org.apache.log4j.EnhancedPatternLayout">
-         <param name="ConversionPattern" value="%-5p [%c{3}] (%t:%x) 
(logid:%X{logcontextid}) %m%n"/>
+         <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{3}] 
(%t:%x) (logid:%X{logcontextid}) %m%n"/>
       </layout>
    </appender>
 
diff --git a/usage/src/com/cloud/usage/UsageSanityChecker.java 
b/usage/src/com/cloud/usage/UsageSanityChecker.java
index 55d26b6bfa8..3b0f6c7b52c 100644
--- a/usage/src/com/cloud/usage/UsageSanityChecker.java
+++ b/usage/src/com/cloud/usage/UsageSanityChecker.java
@@ -43,9 +43,9 @@
     protected static final int DEFAULT_AGGREGATION_RANGE = 1440;
     protected StringBuilder errors;
     protected List<CheckCase> checkCases;
-    protected String lastCheckFile = "/usr/local/libexec/sanity-check-last-id";
+    protected String lastCheckFile = 
"/var/cache/cloudstack/usage/sanity-check-last-id";
     protected String lastCheckId = "";
-    protected int lastId = -1;
+    protected int lastId = 0;
     protected int maxId = -1;
     protected Connection conn;
 
@@ -72,7 +72,9 @@ protected boolean checkItemCountByPstmt(CheckCase checkCase) 
throws SQLException
         try (PreparedStatement pstmt = 
conn.prepareStatement(checkCase.sqlTemplate)) {
             if(checkCase.checkId) {
                 pstmt.setInt(1, lastId);
-                pstmt.setInt(2, maxId);
+                if (maxId > 0) {
+                    pstmt.setInt(2, maxId);
+                }
             }
             try(ResultSet rs = pstmt.executeQuery();) {
                 if (rs.next() && (rs.getInt(1) > 0)) {
@@ -172,13 +174,14 @@ protected void checkSnapshotUsage() {
     protected void readLastCheckId(){
         try(BufferedReader reader = new BufferedReader(new 
FileReader(lastCheckFile));) {
             String lastIdText = null;
-            lastId = -1;
+            lastId = 0;
             if ((reader != null) && (lastIdText = reader.readLine()) != null) {
                 lastId = Integer.parseInt(lastIdText);
             }
         } catch (Exception e) {
             s_logger.error("readLastCheckId:Exception:"+e.getMessage(),e);
         }
+
     }
 
     protected void readMaxId() throws SQLException {
@@ -209,9 +212,8 @@ protected void updateNewMaxId() {
     public String runSanityCheck() throws SQLException {
 
         readLastCheckId();
-        if (lastId > 0) {
-            lastCheckId = " and cu.id > ?";
-        }
+
+        lastCheckId = " and cu.id > ?";
 
         conn = getConnection();
         readMaxId();
@@ -226,6 +228,8 @@ public String runSanityCheck() throws SQLException {
 
         checkItemCountByPstmt();
 
+        updateNewMaxId();
+
         return errors.toString();
     }
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to