/**
* Copyright (C) 2009-2015 Dell, Inc.
* See annotations for authorship information
*
* ====================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*/
package org.dasein.cloud.util;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* Implements the API JMX interface to provide access to data about Dasein Cloud interaction with underlying cloud
* APIs.
* <p>Created by George Reese: 11/17/12 9:55 AM</p>
* @author George Reese
* @version 2013.01 initial version (Issue #1)
* @since 2013.01
*/
public class API implements APIMBean {
@Override
public @Nonnull String[] getAccounts(@Nonnull String provider, @Nonnull String cloud) {
return APITrace.listAccounts(provider, cloud);
}
@Override
public @Nonnull String[] getApis(@Nonnull String provider, @Nonnull String cloud) {
return APITrace.listApis(provider, cloud);
}
@Override
public long getCallCountByAccount(@Nonnull String provider, @Nonnull String cloud, @Nonnull String account) {
return APITrace.getAPICount(provider, cloud, account);
}
@Override
public long getCallCountByAccountApi(@Nonnull String provider, @Nonnull String cloud, @Nonnull String account, @Nonnull String api) {
return APITrace.getAPICount(provider, cloud, account, api);
}
@Override
public long getCallCountByAccountOperation(@Nonnull String provider, @Nonnull String cloud, @Nonnull String account, @Nonnull String operation) {
return APITrace.getAPICountForOperation(provider, cloud, account, operation);
}
@Override
public long getCallCountByApi(@Nonnull String provider, @Nonnull String cloud, @Nonnull String api) {
return APITrace.getAPICountAcrossAccounts(provider, cloud, api);
}
@Override
public long getCallCountByOperation(@Nonnull String provider, @Nonnull String cloud, @Nonnull String operation) {
return APITrace.getAPICountForOperationAcrossAccounts(provider, cloud, operation);
}
@Override
public @Nonnull String[] getClouds(@Nonnull String provider) {
return APITrace.listClouds(provider);
}
@Override
public long getOperationInvocationCount(@Nonnull String provider, @Nonnull String cloud, @Nonnull String operation) {
return APITrace.getOperationCountAcrossAccounts(provider, cloud, operation);
}
@Override
public long getOperationInvocationCountInAccount(@Nonnull String provider, @Nonnull String cloud, @Nonnull String account, @Nonnull String operation) {
return APITrace.getOperationCount(provider, cloud, account, operation);
}
@Override
public @Nonnull String[] getOperations(@Nonnull String provider, @Nonnull String cloud) {
return APITrace.listOperations(provider, cloud);
}
@Override
public @Nonnull String[] getProviders() {
return APITrace.listProviders();
}
@Override
public @Nullable String getStackTrace(@Nonnull String provider, @Nonnull String cloud, @Nonnull String operation) {
return APITrace.getStackTrace(provider, cloud, operation);
}
@Override
public void report(@Nonnull String prefix) {
APITrace.report(prefix);
}
@Override
public void reset() {
APITrace.reset();
}
}