You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by GitBox <gi...@apache.org> on 2018/12/27 03:21:44 UTC
[GitHub] nvazquez closed pull request #1593: CLOUDSTACK-9417: Usage module
refactoring
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:
users@infra.apache.org
With regards,
Apache Git Services