Search in sources :

Example 6 with Debuggee

use of com.google.api.services.clouddebugger.v2.model.Debuggee in project google-cloud-intellij by GoogleCloudPlatform.

the class CloudAttachDialogTest method selectProjectWithDebuggableModules.

@SuppressWarnings("unchecked")
private void selectProjectWithDebuggableModules() {
    String projectName = "projectWithDebuggableModules";
    projectSelector.setSelectedProject(CloudProject.create(projectName, projectName, null, "some-user-id"));
    targetSelector.removeAllItems();
    targetSelector.setEnabled(true);
    DebugTarget debugTarget = new DebugTarget(new Debuggee(), projectName);
    targetSelector.addItem(debugTarget);
}
Also used : Debuggee(com.google.api.services.clouddebugger.v2.model.Debuggee)

Example 7 with Debuggee

use of com.google.api.services.clouddebugger.v2.model.Debuggee in project google-cloud-intellij by GoogleCloudPlatform.

the class ProjectDebuggeeBinding method refreshDebugTargetList.

/**
 * Refreshes the list of attachable debug targets based on the project selection.
 */
@SuppressWarnings("FutureReturnValueIgnored")
private void refreshDebugTargetList(CloudProject cloudProject) {
    targetSelector.removeAllItems();
    ApplicationManager.getApplication().executeOnPooledThread(() -> {
        try {
            String projectNumber = Optional.ofNullable(cloudProject.projectNumber()).map(Object::toString).orElse(null);
            if (projectNumber != null && getCloudDebuggerClient() != null) {
                final ListDebuggeesResponse debuggees = getCloudDebuggerClient().debuggees().list().setProject(projectNumber).setClientVersion(ServiceManager.getService(PluginInfoService.class).getClientVersionForCloudDebugger()).execute();
                isCdbQueried = true;
                SwingUtilities.invokeLater(() -> {
                    DebugTarget targetSelection = null;
                    if (debuggees == null || debuggees.getDebuggees() == null || debuggees.getDebuggees().isEmpty()) {
                        disableTargetSelector(GctBundle.getString("clouddebug.nomodulesfound"));
                    } else {
                        targetSelector.setEnabled(true);
                        Map<String, DebugTarget> perModuleCache = new HashMap<>();
                        for (Debuggee debuggee : debuggees.getDebuggees()) {
                            DebugTarget item = new DebugTarget(debuggee, cloudProject.projectId());
                            if (!Strings.isNullOrEmpty(item.getModule()) && !Strings.isNullOrEmpty(item.getVersion())) {
                                // If we already have an existing item for that module+version,
                                // compare the minor versions and only use the latest minor version.
                                String key = String.format("%s:%s", item.getModule(), item.getVersion());
                                DebugTarget existing = perModuleCache.get(key);
                                if (existing != null && existing.getMinorVersion() > item.getMinorVersion()) {
                                    continue;
                                }
                                if (existing != null) {
                                    targetSelector.removeItem(existing);
                                }
                                perModuleCache.put(key, item);
                            }
                            if (inputState != null && !Strings.isNullOrEmpty(inputState.getDebuggeeId())) {
                                if (inputState.getDebuggeeId().equals(item.getId())) {
                                    targetSelection = item;
                                }
                            }
                            targetSelector.addItem(item);
                            okAction.setEnabled(true);
                        }
                    }
                    if (targetSelection != null) {
                        targetSelector.setSelectedItem(targetSelection);
                    }
                });
            }
        } catch (final IOException ex) {
            SwingUtilities.invokeLater(() -> disableTargetSelector(ex));
            LOG.warn("Error listing debuggees from Cloud Debugger API", ex);
        }
    });
}
Also used : HashMap(com.intellij.util.containers.HashMap) Debuggee(com.google.api.services.clouddebugger.v2.model.Debuggee) ListDebuggeesResponse(com.google.api.services.clouddebugger.v2.model.ListDebuggeesResponse) PluginInfoService(com.google.cloud.tools.intellij.service.PluginInfoService) IOException(java.io.IOException)

Aggregations

Debuggee (com.google.api.services.clouddebugger.v2.model.Debuggee)6 IOException (java.io.IOException)4 ListDebuggeesResponse (com.google.api.services.clouddebugger.v2.model.ListDebuggeesResponse)2 GoogleJsonResponseException (com.google.api.client.googleapis.json.GoogleJsonResponseException)1 Clouddebugger (com.google.api.services.clouddebugger.v2.Clouddebugger)1 Debugger (com.google.api.services.clouddebugger.v2.Clouddebugger.Debugger)1 CloudRepoSourceContext (com.google.api.services.clouddebugger.v2.model.CloudRepoSourceContext)1 GerritSourceContext (com.google.api.services.clouddebugger.v2.model.GerritSourceContext)1 GitSourceContext (com.google.api.services.clouddebugger.v2.model.GitSourceContext)1 RegisterDebuggeeRequest (com.google.api.services.clouddebugger.v2.model.RegisterDebuggeeRequest)1 RegisterDebuggeeResponse (com.google.api.services.clouddebugger.v2.model.RegisterDebuggeeResponse)1 SourceContext (com.google.api.services.clouddebugger.v2.model.SourceContext)1 PluginInfoService (com.google.cloud.tools.intellij.service.PluginInfoService)1 VcsException (com.intellij.openapi.vcs.VcsException)1 HashMap (com.intellij.util.containers.HashMap)1 Transient (com.intellij.util.xmlb.annotations.Transient)1 GitRepository (git4idea.repo.GitRepository)1 GitRepositoryManager (git4idea.repo.GitRepositoryManager)1 SocketTimeoutException (java.net.SocketTimeoutException)1 HashMap (java.util.HashMap)1