Skip to content

Commit 447fd69

Browse files
authored
Merge pull request #781 from simonklb/ceilometer-sample-query
Add query capabilities to new ceilometer sample
2 parents c045f8e + c7c75ac commit 447fd69

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

core/src/main/java/org/openstack4j/api/telemetry/SampleService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44

55
import org.openstack4j.common.RestService;
66
import org.openstack4j.model.telemetry.Sample;
7+
import org.openstack4j.model.telemetry.SampleCriteria;
78

89

910
public interface SampleService extends RestService{
1011

1112
List<? extends Sample> list();
13+
14+
List<? extends Sample> list(SampleCriteria criteria);
1215

1316
Sample get(String sampleId);
1417
}

core/src/main/java/org/openstack4j/openstack/telemetry/internal/SampleServiceImpl.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import org.openstack4j.api.telemetry.SampleService;
88
import org.openstack4j.model.telemetry.Sample;
9+
import org.openstack4j.model.telemetry.SampleCriteria;
910
import org.openstack4j.openstack.telemetry.domain.CeiloMeterSample;
1011

1112
/**
@@ -16,6 +17,10 @@
1617

1718
public class SampleServiceImpl extends BaseTelemetryServices implements SampleService {
1819

20+
private static final String FIELD = "q.field";
21+
private static final String OPER = "q.op";
22+
private static final String VALUE = "q.value";
23+
1924
/**
2025
* {@inheritDoc}
2126
*/
@@ -25,6 +30,23 @@ public List<? extends Sample> list() {
2530
return wrapList(samples);
2631
}
2732

33+
/**
34+
* {@inheritDoc}
35+
*/
36+
@Override
37+
public List<? extends Sample> list(SampleCriteria criteria) {
38+
Invocation<CeiloMeterSample[]> invocation = get(CeiloMeterSample[].class, uri("/samples"));
39+
if (criteria != null && !criteria.getCriteriaParams().isEmpty()) {
40+
for (SampleCriteria.NameOpValue c : criteria.getCriteriaParams()) {
41+
invocation.param(FIELD, c.getField());
42+
invocation.param(OPER, c.getOperator().getQueryValue());
43+
invocation.param(VALUE, c.getValue());
44+
}
45+
}
46+
CeiloMeterSample[] samples = invocation.execute();
47+
return wrapList(samples);
48+
}
49+
2850
/**
2951
* {@inheritDoc}
3052
*/

0 commit comments

Comments
 (0)