Search in sources :

Example 6 with KubevirtApiConfig

use of org.onosproject.kubevirtnode.api.KubevirtApiConfig in project onos by opennetworkinglab.

the class KubevirtApiConfigCodecTest method getKubevirtApiConfig.

private KubevirtApiConfig getKubevirtApiConfig(String resourceName) throws IOException {
    InputStream jsonStream = KubevirtNodeCodecTest.class.getResourceAsStream(resourceName);
    JsonNode json = context.mapper().readTree(jsonStream);
    assertThat(json, notNullValue());
    KubevirtApiConfig config = kubevirtApiConfigCodec.decode((ObjectNode) json, context);
    assertThat(config, notNullValue());
    return config;
}
Also used : InputStream(java.io.InputStream) JsonNode(com.fasterxml.jackson.databind.JsonNode) KubevirtApiConfig(org.onosproject.kubevirtnode.api.KubevirtApiConfig) DefaultKubevirtApiConfig(org.onosproject.kubevirtnode.api.DefaultKubevirtApiConfig) KubevirtApiConfigJsonMatcher.matchesKubevirtApiConfig(org.onosproject.kubevirtnode.codec.KubevirtApiConfigJsonMatcher.matchesKubevirtApiConfig)

Example 7 with KubevirtApiConfig

use of org.onosproject.kubevirtnode.api.KubevirtApiConfig in project onos by opennetworkinglab.

the class KubevirtApiConfigWebResource method deleteApiConfig.

/**
 * Removes a KubeVirt API config.
 *
 * @param endpoint KubeVirt API endpoint
 * @return 204 NO_CONTENT, 400 BAD_REQUEST if the JSON is malformed
 */
@DELETE
@Path("{endpoint : .+}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response deleteApiConfig(@PathParam("endpoint") String endpoint) {
    log.trace(String.format(MESSAGE_CONFIG, REMOVE));
    KubevirtApiConfigAdminService service = get(KubevirtApiConfigAdminService.class);
    KubevirtApiConfig existing = service.apiConfig();
    if (existing == null) {
        log.warn("There is no API configuration to delete");
        return Response.notModified().build();
    } else {
        if (endpoint.equals(endpoint(existing))) {
            service.removeApiConfig(endpoint);
        } else {
            log.warn("There is no API configuration to delete for endpoint {}", endpoint);
        }
    }
    return Response.noContent().build();
}
Also used : KubevirtApiConfigAdminService(org.onosproject.kubevirtnode.api.KubevirtApiConfigAdminService) KubevirtApiConfig(org.onosproject.kubevirtnode.api.KubevirtApiConfig) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces)

Example 8 with KubevirtApiConfig

use of org.onosproject.kubevirtnode.api.KubevirtApiConfig in project onos by opennetworkinglab.

the class KubevirtApiConfigWebResource method readApiConfig.

private KubevirtApiConfig readApiConfig(InputStream input) {
    KubevirtApiConfig config;
    try {
        JsonNode jsonTree = readTreeFromStream(mapper().enable(INDENT_OUTPUT), input);
        ObjectNode objectNode = jsonTree.deepCopy();
        config = codec(KubevirtApiConfig.class).decode(objectNode, this);
    } catch (Exception e) {
        throw new IllegalArgumentException(e);
    }
    return config;
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) JsonNode(com.fasterxml.jackson.databind.JsonNode) KubevirtApiConfig(org.onosproject.kubevirtnode.api.KubevirtApiConfig)

Example 9 with KubevirtApiConfig

use of org.onosproject.kubevirtnode.api.KubevirtApiConfig in project onos by opennetworkinglab.

the class KubevirtListApiConfigsCommand method doExecute.

@Override
protected void doExecute() throws Exception {
    KubevirtApiConfigService service = get(KubevirtApiConfigService.class);
    KubevirtApiConfig config = service.apiConfig();
    if (outputJson()) {
        print("%s", json(config));
    } else {
        print(FORMAT, "Scheme", "Server IP", "Port", "Controller IP", "State");
        String controllerIp = "N/A";
        if (config != null) {
            if (config.controllerIp() != null) {
                controllerIp = config.controllerIp().toString();
            }
            print(FORMAT, config.scheme().name(), config.ipAddress().toString(), config.port(), controllerIp, config.state().name());
        } else {
            print("Kubevirt config not found!");
        }
    }
}
Also used : KubevirtApiConfig(org.onosproject.kubevirtnode.api.KubevirtApiConfig) KubevirtApiConfigService(org.onosproject.kubevirtnode.api.KubevirtApiConfigService)

Example 10 with KubevirtApiConfig

use of org.onosproject.kubevirtnode.api.KubevirtApiConfig in project onos by opennetworkinglab.

the class KubevirtNodeWebResource method healthz.

/**
 * Returns the health check result.
 *
 * @return 200 OK with health check result, 404 not found
 */
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("healthz")
public Response healthz() {
    KubevirtApiConfigService configService = get(KubevirtApiConfigService.class);
    KubevirtNodeService nodeService = get(KubevirtNodeService.class);
    // TODO: we need to add more health check items
    boolean allInit = true;
    KubevirtApiConfig config = configService.apiConfig();
    if (nodeService.nodes().size() == 0) {
        allInit = false;
    } else {
        for (KubevirtNode node : nodeService.nodes()) {
            if (node.state() != INIT) {
                allInit = false;
            }
        }
    }
    String result = ERROR;
    if (config != null && !allInit) {
        result = OK;
    }
    ObjectNode jsonResult = mapper().createObjectNode();
    jsonResult.put(API_CONFIG, result);
    return ok(jsonResult).build();
}
Also used : KubevirtNodeService(org.onosproject.kubevirtnode.api.KubevirtNodeService) KubevirtNode(org.onosproject.kubevirtnode.api.KubevirtNode) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) KubevirtApiConfig(org.onosproject.kubevirtnode.api.KubevirtApiConfig) KubevirtApiConfigService(org.onosproject.kubevirtnode.api.KubevirtApiConfigService) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Aggregations

KubevirtApiConfig (org.onosproject.kubevirtnode.api.KubevirtApiConfig)14 DefaultKubevirtApiConfig (org.onosproject.kubevirtnode.api.DefaultKubevirtApiConfig)4 JsonNode (com.fasterxml.jackson.databind.JsonNode)3 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)3 Produces (javax.ws.rs.Produces)3 KubevirtApiConfigService (org.onosproject.kubevirtnode.api.KubevirtApiConfigService)3 KubevirtApiConfigJsonMatcher.matchesKubevirtApiConfig (org.onosproject.kubevirtnode.codec.KubevirtApiConfigJsonMatcher.matchesKubevirtApiConfig)3 KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)2 Consumes (javax.ws.rs.Consumes)2 Path (javax.ws.rs.Path)2 Test (org.junit.Test)2 IpAddress (org.onlab.packet.IpAddress)2 KubevirtApiConfigAdminService (org.onosproject.kubevirtnode.api.KubevirtApiConfigAdminService)2 DefaultKubernetesClient (io.fabric8.kubernetes.client.DefaultKubernetesClient)1 InputStream (java.io.InputStream)1 DELETE (javax.ws.rs.DELETE)1 GET (javax.ws.rs.GET)1 POST (javax.ws.rs.POST)1 UriBuilder (javax.ws.rs.core.UriBuilder)1 KubevirtNode (org.onosproject.kubevirtnode.api.KubevirtNode)1