2
* Copyright 2008 The Apache Software Foundation
4
* Licensed to the Apache Software Foundation (ASF) under one
5
* or more contributor license agreements. See the NOTICE file
6
* distributed with this work for additional information
7
* regarding copyright ownership. The ASF licenses this file
8
* to you under the Apache License, Version 2.0 (the
9
* "License"); you may not use this file except in compliance
10
* with the License. You may obtain a copy of the License at
12
* http://www.apache.org/licenses/LICENSE-2.0
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
20
package org.apache.hadoop.hbase.rest;
22
import java.io.IOException;
24
import org.apache.commons.logging.Log;
25
import org.apache.commons.logging.LogFactory;
26
import org.apache.hadoop.hbase.HBaseConfiguration;
27
import org.apache.hadoop.hbase.HTableDescriptor;
28
import org.apache.hadoop.hbase.client.HBaseAdmin;
29
import org.apache.hadoop.hbase.rest.exception.HBaseRestException;
30
import org.apache.hadoop.hbase.rest.serializer.IRestSerializer;
31
import org.apache.hadoop.hbase.rest.serializer.ISerializable;
33
public class DatabaseModel extends AbstractModel {
35
@SuppressWarnings("unused")
36
private Log LOG = LogFactory.getLog(DatabaseModel.class);
38
public DatabaseModel(HBaseConfiguration conf, HBaseAdmin admin) {
39
super.initialize(conf, admin);
42
public static class DatabaseMetadata implements ISerializable {
43
protected boolean master_running;
44
protected HTableDescriptor[] tables;
46
public DatabaseMetadata(HBaseAdmin a) throws IOException {
47
master_running = a.isMasterRunning();
48
tables = a.listTables();
51
public boolean isMasterRunning() {
52
return master_running;
55
public HTableDescriptor[] getTables() {
59
public void restSerialize(IRestSerializer serializer)
60
throws HBaseRestException {
61
serializer.serializeDatabaseMetadata(this);
65
// Serialize admin ourselves to json object
66
// rather than returning the admin object for obvious reasons
67
public DatabaseMetadata getMetadata() throws HBaseRestException {
68
return getDatabaseMetadata();
71
protected DatabaseMetadata getDatabaseMetadata() throws HBaseRestException {
72
DatabaseMetadata databaseMetadata = null;
74
databaseMetadata = new DatabaseMetadata(this.admin);
75
} catch (IOException e) {
76
throw new HBaseRestException(e);
79
return databaseMetadata;