mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-15 18:12:35 +01:00
- Introduces api/discovery plugin that helps discover apis on the mgmt server
- It's a pluggable service, therefore has it's own api-discovery_commands.properties
where the discovery api, listApi can be blacklisted (by removing it), or it's
role mask can be changed
- By default its response has all the apis
- Changes in other parts of the code to make it work, viz. components.xml, pom.xml,
and in ApiServer where it is used as an adapter to get apiname, cmd mappings
The ApiDiscoveryService interface is a contract that the implementing class will
provide:
1. A means to get all the apis as a list of response, plugin is free to implement
the response class, as long as it extends on the BaseResponse:
ListResponse<? extends BaseResponse> listApis();
2. Provides a map of apiname as the key and cmd class as the value:
Map<String, Class<?>> getApiNameCmdClassMapping();
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
435 lines
16 KiB
XML
435 lines
16 KiB
XML
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
|
license agreements. See the NOTICE file distributed with this work for additional
|
|
information regarding copyright ownership. The ASF licenses this file to
|
|
you 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. -->
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<artifactId>cloud-client-ui</artifactId>
|
|
<name>Apache CloudStack Client UI</name>
|
|
<packaging>war</packaging>
|
|
<parent>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloudstack</artifactId>
|
|
<version>4.1.0-SNAPSHOT</version>
|
|
</parent>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-server</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-acl-static-role-based</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-api-discovery</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-user-authenticator-ldap</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-user-authenticator-md5</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-user-authenticator-plaintext</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-user-authenticator-sha256salted</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-network-nvp</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-network-ovs</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-network-elb</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-hypervisor-xen</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-hypervisor-ovm</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-hypervisor-kvm</artifactId>
|
|
<version>${project.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.mortbay.jetty</groupId>
|
|
<artifactId>servlet-api</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-storage-allocator-random</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-planner-user-dispersing</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-planner-user-concentrated-pod</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-host-allocator-random</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>mysql</groupId>
|
|
<artifactId>mysql-connector-java</artifactId>
|
|
<version>${cs.mysql.version}</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
<build>
|
|
<defaultGoal>install</defaultGoal>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-war-plugin</artifactId>
|
|
<version>2.3</version>
|
|
<configuration>
|
|
<webXml>./WEB-INF/web.xml</webXml>
|
|
<warSourceDirectory>./target/generated-webapp</warSourceDirectory>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.mortbay.jetty</groupId>
|
|
<artifactId>maven-jetty-plugin</artifactId>
|
|
<version>6.1.26</version>
|
|
<configuration>
|
|
<connectors>
|
|
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
|
<port>8080</port>
|
|
<maxIdleTime>60000</maxIdleTime>
|
|
</connector>
|
|
</connectors>
|
|
<contextPath>/client</contextPath>
|
|
<webXml>${basedir}/WEB-INF/web.xml</webXml>
|
|
<webAppSourceDirectory>${project.build.directory}/${project.build.finalName}</webAppSourceDirectory>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.tomcat.maven</groupId>
|
|
<artifactId>tomcat7-maven-plugin</artifactId>
|
|
<configuration>
|
|
<path>/client</path>
|
|
<tomcatWebXml>${basedir}/WEB-INF/web.xml</tomcatWebXml>
|
|
<warSourceDirectory>${project.build.directory}/generated-webapp/</warSourceDirectory>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>1.7</version>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-resource</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<copy
|
|
todir="${basedir}/target/generated-webapp/WEB-INF/classes">
|
|
<fileset dir="${basedir}/WEB-INF/classes">
|
|
<include name="resources/**/*" />
|
|
</fileset>
|
|
</copy>
|
|
<copy
|
|
todir="${basedir}/target/generated-webapp/WEB-INF/classes/scripts">
|
|
<fileset dir="${basedir}/../scripts" />
|
|
</copy>
|
|
<copy
|
|
todir="${basedir}/target/generated-webapp/WEB-INF/classes/vms">
|
|
<fileset dir="${basedir}/../console-proxy/dist">
|
|
<include name="systemvm.zip" />
|
|
<include name="systemvm.iso" />
|
|
</fileset>
|
|
</copy>
|
|
<copy todir="${basedir}/target/generated-webapp">
|
|
<fileset dir="${basedir}/../ui" />
|
|
</copy>
|
|
<copy overwrite="true"
|
|
todir="${basedir}/target/generated-webapp/WEB-INF/classes">
|
|
<fileset dir="${basedir}/tomcatconf">
|
|
<include name="*.in" />
|
|
</fileset>
|
|
<globmapper from="*.in" to="*" />
|
|
<filterchain>
|
|
<filterreader
|
|
classname="org.apache.tools.ant.filters.ReplaceTokens">
|
|
<param type="propertiesfile"
|
|
value="${basedir}/../build/replace.properties" />
|
|
</filterreader>
|
|
</filterchain>
|
|
</copy>
|
|
<copy overwrite="true" todir="${basedir}/target/generated-webapp/WEB-INF/classes">
|
|
<fileset dir="${basedir}/tomcatconf">
|
|
<include name="*.in" />
|
|
</fileset>
|
|
<globmapper from="*.in" to="*" />
|
|
<filterchain>
|
|
<filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
|
|
<param type="propertiesfile" value="${basedir}/../build/replace.properties" />
|
|
</filterreader>
|
|
</filterchain>
|
|
</copy>
|
|
<copy overwrite="true" todir="${basedir}/target/utilities/bin">
|
|
<fileset dir="${basedir}/../setup/bindir">
|
|
<include name="*.in" />
|
|
</fileset>
|
|
<globmapper from="*.in" to="*" />
|
|
<filterchain>
|
|
<filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
|
|
<param type="propertiesfile" value="${basedir}/../build/replace.properties" />
|
|
</filterreader>
|
|
</filterchain>
|
|
</copy>
|
|
<copy overwrite="true" todir="${basedir}/target/utilities/bin">
|
|
<fileset dir="${basedir}/bindir">
|
|
<include name="*.in" />
|
|
</fileset>
|
|
<globmapper from="*.in" to="*" />
|
|
<filterchain>
|
|
<filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
|
|
<param type="propertiesfile" value="${basedir}/../build/replace.properties" />
|
|
</filterreader>
|
|
</filterchain>
|
|
</copy>
|
|
<copy overwrite="true" todir="${basedir}/target/utilities/scripts/db">
|
|
<fileset dir="${basedir}/../setup/db">
|
|
<include name="**/*" />
|
|
</fileset>
|
|
<filterchain>
|
|
<filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
|
|
<param type="propertiesfile" value="${basedir}/../build/replace.properties" />
|
|
</filterreader>
|
|
</filterchain>
|
|
</copy>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>process-nonoss</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target if="${nonoss}">
|
|
<echo>test</echo>
|
|
<replaceregexp
|
|
file="${basedir}/target/generated-webapp/WEB-INF/classes/environment.properties"
|
|
match="cloud-stack-components-specification=.*"
|
|
replace="cloud-stack-components-specification=components-nonoss.xml" byline="true" />
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- there are the jasypt libs requires by some of the python scripts -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>2.5.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>copy</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>copy</goal>
|
|
</goals>
|
|
<configuration>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.jasypt</groupId>
|
|
<artifactId>jasypt</artifactId>
|
|
<version>1.9.0</version>`
|
|
<overWrite>false</overWrite>
|
|
<outputDirectory>${project.build.directory}/pythonlibs</outputDirectory>
|
|
</artifactItem>
|
|
<artifactItem>
|
|
<groupId>org.jasypt</groupId>
|
|
<artifactId>jasypt</artifactId>
|
|
<version>1.8</version>`
|
|
<overWrite>false</overWrite>
|
|
<outputDirectory>${project.build.directory}/pythonlibs</outputDirectory>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<!--This plugin's configuration is used to store Eclipse m2e settings
|
|
only. It has no influence on the Maven build itself. -->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>1.0.0</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>
|
|
org.apache.maven.plugins
|
|
</groupId>
|
|
<artifactId>
|
|
maven-antrun-plugin
|
|
</artifactId>
|
|
<versionRange>[1.7,)</versionRange>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore />
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
<profiles>
|
|
<profile>
|
|
<id>simulator</id>
|
|
<activation>
|
|
<property>
|
|
<name>simulator</name>
|
|
</property>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-hypervisor-simulator</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<profile>
|
|
<id>netapp</id>
|
|
<activation>
|
|
<property>
|
|
<name>nonoss</name>
|
|
</property>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-netapp</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<profile>
|
|
<id>f5</id>
|
|
<activation>
|
|
<property>
|
|
<name>nonoss</name>
|
|
</property>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-network-f5</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<profile>
|
|
<id>netscaler</id>
|
|
<activation>
|
|
<property>
|
|
<name>nonoss</name>
|
|
</property>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-network-netscaler</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<profile>
|
|
<id>srx</id>
|
|
<activation>
|
|
<property>
|
|
<name>nonoss</name>
|
|
</property>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-network-srx</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<profile>
|
|
<id>vmware</id>
|
|
<activation>
|
|
<property>
|
|
<name>nonoss</name>
|
|
</property>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-plugin-hypervisor-vmware</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-vmware-base</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|