blob: e963abc3aa3ff835630e6a74b25be4fdccf9d862 [file] [log] [blame]
Jonathan Hart74c83132015-02-02 18:37:57 -08001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Brian O'Connor87ba7a72015-03-11 14:40:09 -070016package org.onosproject.net.intent;
Jonathan Hart74c83132015-02-02 18:37:57 -080017
Brian O'Connor5eb77c82015-03-02 18:09:39 -080018import org.onosproject.cluster.NodeId;
Jonathan Hart5ec32ba2015-02-05 13:33:58 -080019
Jonathan Hart74c83132015-02-02 18:37:57 -080020/**
21 * Service for interacting with the partition-to-instance assignments.
22 */
23public interface PartitionService {
24
25 /**
26 * Returns whether the given intent key is in a partition owned by this
27 * instance or not.
28 *
29 * @param intentKey intent key to query
30 * @return true if the key is owned by this instance, otherwise false
31 */
Jonathan Hart5ec32ba2015-02-05 13:33:58 -080032 boolean isMine(Key intentKey);
Jonathan Hart74c83132015-02-02 18:37:57 -080033
Brian O'Connor5eb77c82015-03-02 18:09:39 -080034 /**
35 * Returns the leader for a particular key.
36 *
37 * @param intentKey intent key to query
38 * @return the leader node
39 */
40 NodeId getLeader(Key intentKey);
41
Jonathan Hart74c83132015-02-02 18:37:57 -080042 // TODO add API for rebalancing partitions
43}