summaryrefslogtreecommitdiffstats
path: root/nova-client/src/main/java/com/woorea/openstack/nova/Nova.java
blob: 0125179e3fe8a0be241a692c2c3fcd523ecf556e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*-
 * ============LICENSE_START=======================================================
 * 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.
 * ============LICENSE_END=========================================================
 */

package com.woorea.openstack.nova;


import com.woorea.openstack.base.client.OpenStackClient;
import com.woorea.openstack.base.client.OpenStackClientConnector;
import com.woorea.openstack.nova.api.ExtensionsResource;
import com.woorea.openstack.nova.api.FlavorsResource;
import com.woorea.openstack.nova.api.ImagesResource;
import com.woorea.openstack.nova.api.QuotaSetsResource;
import com.woorea.openstack.nova.api.ServersResource;
import com.woorea.openstack.nova.api.extensions.AggregatesExtension;
import com.woorea.openstack.nova.api.extensions.FloatingIpsExtension;
import com.woorea.openstack.nova.api.extensions.HostsExtension;
import com.woorea.openstack.nova.api.extensions.KeyPairsExtension;
import com.woorea.openstack.nova.api.extensions.SecurityGroupsExtension;
import com.woorea.openstack.nova.api.extensions.SnapshotsExtension;
import com.woorea.openstack.nova.api.extensions.VolumesExtension;

public class Nova extends OpenStackClient {

    private final ExtensionsResource extensions;

    private final ServersResource servers;

    private final ImagesResource images;

    private final FlavorsResource flavors;

    private final KeyPairsExtension keyPairs;

    private final FloatingIpsExtension floatingIps;

    private final SecurityGroupsExtension securityGroups;

    private final SnapshotsExtension snapshots;

    private final VolumesExtension volumes;

    private final AggregatesExtension aggregates;

    private final QuotaSetsResource quotaSets;

    private final HostsExtension hosts;

    public Nova(String endpoint, OpenStackClientConnector connector) {
        super(endpoint, connector);
        extensions = new ExtensionsResource(this);
        servers = new ServersResource(this);
        images = new ImagesResource(this);
        flavors = new FlavorsResource(this);
        keyPairs = new KeyPairsExtension(this);
        floatingIps = new FloatingIpsExtension(this);
        securityGroups = new SecurityGroupsExtension(this);
        snapshots = new SnapshotsExtension(this);
        volumes = new VolumesExtension(this);
        aggregates = new AggregatesExtension(this);
        quotaSets = new QuotaSetsResource(this);
        hosts = new HostsExtension(this);
    }

    public Nova(String endpoint) {
        this(endpoint, null);
    }

    public ExtensionsResource extensions() {
        return extensions;
    }

    public ServersResource servers() {
        return servers;
    }

    public ImagesResource images() {
        return images;
    }

    public FlavorsResource flavors() {
        return flavors;
    }

    public KeyPairsExtension keyPairs() {
        return keyPairs;
    }

    public FloatingIpsExtension floatingIps() {
        return floatingIps;
    }

    public SecurityGroupsExtension securityGroups() {
        return securityGroups;
    }

    public SnapshotsExtension snapshots() {
        return snapshots;
    }

    public VolumesExtension volumes() {
        return volumes;
    }

    public AggregatesExtension aggregates() {
        return aggregates;
    }

    public QuotaSetsResource quotaSets() {
        return quotaSets;
    }

    public HostsExtension hosts() {
        return hosts;
    }
}