use of org.jboss.tools.openshift.core.connection.Connection in project jbosstools-openshift by jbosstools.
the class NewApplicationWizard method performFinish.
@Override
public boolean performFinish() {
final IResourcesModelJob createJob = isTemplateFlow() ? fromTemplateModel.createFinishJob() : fromImageModel.createFinishJob();
createJob.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
IStatus status = event.getResult();
if (JobUtils.isOk(status) || JobUtils.isWarning(status)) {
Display.getDefault().syncExec(createJob.getSummaryRunnable(getShell()));
OpenShiftUIUtils.showOpenShiftExplorer();
if (model.getEclipseProject() != null) {
// No need to import the project from git, it's already here
return;
}
Collection<IResource> resources = createJob.getResources();
final Map<IProject, Collection<IBuildConfig>> projectsAndBuildConfigs = getBuildConfigs(resources);
if (projectsAndBuildConfigs.isEmpty()) {
return;
}
Connection connection = model.getConnection();
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
ImportApplicationWizard wizard = new ImportApplicationWizard(projectsAndBuildConfigs);
wizard.addImportJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
IService service = getService(resources);
List<org.eclipse.core.resources.IProject> importedProjects = wizard.getImportJob().getImportedProjects();
if (service != null && importedProjects.size() == 1) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if (MessageDialog.openQuestion(getShell(), "Create server adapter", NLS.bind("Would you like to create a server adapter for the imported {0} project?", importedProjects.get(0).getName()))) {
createServerAdapter(importedProjects.get(0), connection, service, getRoute(resources));
}
}
});
}
}
});
new WizardDialog(getShell(), wizard).open();
}
});
}
}
protected Map<IProject, Collection<IBuildConfig>> getBuildConfigs(Collection<IResource> resources) {
Map<IProject, Collection<IBuildConfig>> projects = new LinkedHashMap<>();
for (IResource resource : resources) {
if (resource instanceof IBuildConfig) {
IBuildConfig buildConfig = (IBuildConfig) resource;
if (StringUtils.isNotBlank(buildConfig.getSourceURI())) {
IProject p = buildConfig.getProject();
Collection<IBuildConfig> buildConfigs = projects.get(p);
if (buildConfigs == null) {
buildConfigs = new LinkedHashSet<>();
projects.put(p, buildConfigs);
}
buildConfigs.add(buildConfig);
}
}
}
return projects;
}
protected IService getService(Collection<IResource> resources) {
IResource service = getResourceOfType(resources, IService.class);
return service == null ? null : (IService) service;
}
protected IRoute getRoute(Collection<IResource> resources) {
IResource route = getResourceOfType(resources, IRoute.class);
return route == null ? null : (IRoute) route;
}
private IResource getResourceOfType(Collection<IResource> resources, Class<? extends IResource> type) {
for (IResource resource : resources) {
if (type.isInstance(resource)) {
return resource;
}
}
return null;
}
protected void createServerAdapter(org.eclipse.core.resources.IProject project, Connection connection, IService service, IRoute route) {
try {
IServerWorkingCopy server = OpenShiftServerUtils.create(OpenShiftResourceUniqueId.get(service));
ServerSettingsWizardPageModel serverModel = new ServerSettingsWizardPageModel(service, route, project, connection, server, OCBinary.getInstance().getStatus(connection, new NullProgressMonitor()), RSyncValidator.get().getStatus());
serverModel.loadResources();
serverModel.updateServer();
server.setAttribute(OpenShiftServerUtils.SERVER_START_ON_CREATION, false);
serverModel.saveServer(null);
} catch (CoreException ce) {
OpenShiftUIActivator.getDefault().getLogger().logError("Error occured while creating a server adapter", ce);
return;
}
}
});
boolean success = false;
try {
Job job = new JobChainBuilder(createJob.getJob()).runWhenSuccessfullyDone(new RefreshResourcesJob(createJob, true)).build();
IStatus status = runInWizard(job, createJob.getDelegatingProgressMonitor(), getContainer());
success = isFailed(status);
} catch (InvocationTargetException | InterruptedException e) {
OpenShiftUIActivator.getDefault().getLogger().logError(e);
success = false;
} finally {
UsageStats.getInstance().newV3Application(model.getConnection().getHost(), success);
}
return success;
}
use of org.jboss.tools.openshift.core.connection.Connection in project jbosstools-openshift by jbosstools.
the class ApplicationSourceTreeItems method loadImageStreams.
private Collection<IApplicationSource> loadImageStreams(IProject project, Connection conn) {
final Collection<IImageStream> streams = conn.getResources(ResourceKind.IMAGE_STREAM, project.getNamespaceName());
try {
if (StringUtils.isNotBlank(conn.getClusterNamespace())) {
Collection<IImageStream> commonStreams = conn.getResources(ResourceKind.IMAGE_STREAM, (String) conn.getClusterNamespace());
commonStreams.stream().filter(s -> !streams.contains(s)).forEach(s -> streams.add(s));
}
} catch (OpenShiftException e) {
OpenShiftUIActivator.log(IStatus.ERROR, e.getLocalizedMessage(), e);
}
Collection<IApplicationSource> sources = new ArrayList<>();
for (IImageStream is : streams) {
List<ITagReference> tags = is.getTags().stream().filter(t -> t.isAnnotatedWith(OpenShiftAPIAnnotations.TAGS) && ArrayUtils.contains(t.getAnnotation(OpenShiftAPIAnnotations.TAGS).split(","), BUILDER_TAG)).collect(Collectors.toList());
if (!tags.isEmpty()) {
tags.forEach(t -> sources.add(new ImageStreamApplicationSource(is, t)));
}
}
return sources;
}
use of org.jboss.tools.openshift.core.connection.Connection in project jbosstools-openshift by jbosstools.
the class ApplicationSourceFromImageModel method lookupImageMetadata.
@Override
protected IDockerImageMetadata lookupImageMetadata() {
if (source == null) {
return null;
}
try {
Connection conn = ConnectionsRegistryUtil.getConnectionFor(getProject());
IResource istag = conn.getResource(ResourceKind.IMAGE_STREAM_TAG, source.getNamespace(), source.getName());
return new ImageStreamTagMetaData(istag.toJson(true));
} catch (Exception e) {
OpenShiftUIActivator.getDefault().getLogger().logError(NLS.bind("Unable to retrieve imagestream tag for {0}", getImageName()), e);
}
return null;
}
use of org.jboss.tools.openshift.core.connection.Connection in project jbosstools-openshift by jbosstools.
the class DeployImageJobTest method givenAnImageStreamTo.
private IImageStream givenAnImageStreamTo(String namespace, DockerImageURI uri) {
IImageStream is = mock(IImageStream.class);
when(is.getNamespaceName()).thenReturn(namespace);
when(is.getName()).thenReturn(IMAGE_STREAM_NAME);
when(is.getDockerImageRepository()).thenReturn(uri);
List<IResource> streams = Arrays.asList(is);
Connection conn = mock(Connection.class);
when(conn.getResources(anyString(), eq(namespace))).thenReturn(streams);
when(conn.getClusterNamespace()).thenReturn(ICommonAttributes.COMMON_NAMESPACE);
when(parameters.getConnection()).thenReturn(conn);
return is;
}
use of org.jboss.tools.openshift.core.connection.Connection in project jbosstools-openshift by jbosstools.
the class CDKOpenshiftUtility method createOpenshiftConnection.
public IConnection createOpenshiftConnection(ServiceManagerEnvironment env, ConnectionsRegistry registry) {
// Create the connection
String soughtHost = env.openshiftHost + ":" + env.openshiftPort;
ConnectionsFactoryTracker connectionsFactory = new ConnectionsFactoryTracker();
connectionsFactory.open();
IConnectionFactory factory = connectionsFactory.getById(IConnectionsFactory.CONNECTIONFACTORY_OPENSHIFT_ID);
IConnection con = factory.create(soughtHost);
// Set some defaults
String authScheme = env.getAuthorizationScheme();
String username = env.getUsername();
String password = env.getPassword();
if (authScheme != null && !authScheme.isEmpty()) {
authScheme = new String("" + authScheme.charAt(0)).toUpperCase() + authScheme.substring(1);
}
((Connection) con).setAuthScheme(authScheme);
((Connection) con).setUsername(username);
if (password != null) {
((Connection) con).setPassword(password);
}
((Connection) con).setRememberPassword(true);
String ocLoc = env.get(ServiceManagerEnvironmentLoader.OC_LOCATION_KEY);
if (ocLoc != null) {
((Connection) con).setExtendedProperty(ICommonAttributes.OC_LOCATION_KEY, ocLoc);
((Connection) con).setExtendedProperty(ICommonAttributes.OC_OVERRIDE_KEY, true);
}
updateOpenshiftConnection(env, con, false);
if (registry != null)
registry.add(con);
return con;
}
Aggregations