Search in sources :

Example 26 with Project

use of org.openstack4j.model.identity.v3.Project in project camel by apache.

the class ProjectProducer method doCreate.

private void doCreate(Exchange exchange) {
    final Project in = messageToProject(exchange.getIn());
    final Project out = osV3Client.identity().projects().create(in);
    exchange.getIn().setBody(out);
}
Also used : Project(org.openstack4j.model.identity.v3.Project)

Example 27 with Project

use of org.openstack4j.model.identity.v3.Project in project camel by apache.

the class UserProducer method messageToUser.

private User messageToUser(Message message) {
    User project = message.getBody(User.class);
    if (project == null) {
        Map headers = message.getHeaders();
        UserBuilder builder = Builders.user();
        ObjectHelper.notEmpty(message.getHeader(OpenstackConstants.NAME, String.class), "Name");
        builder.name(message.getHeader(OpenstackConstants.NAME, String.class));
        if (headers.containsKey(KeystoneConstants.DOMAIN_ID)) {
            builder.domainId(message.getHeader(KeystoneConstants.DOMAIN_ID, String.class));
        }
        if (headers.containsKey(KeystoneConstants.DESCRIPTION)) {
            builder.description(message.getHeader(KeystoneConstants.DESCRIPTION, String.class));
        }
        if (headers.containsKey(KeystoneConstants.PASSWORD)) {
            builder.password(message.getHeader(KeystoneConstants.PASSWORD, String.class));
        }
        if (headers.containsKey(KeystoneConstants.EMAIL)) {
            builder.email(message.getHeader(KeystoneConstants.EMAIL, String.class));
        }
        project = builder.build();
    }
    return project;
}
Also used : User(org.openstack4j.model.identity.v3.User) Map(java.util.Map) UserBuilder(org.openstack4j.model.identity.v3.builder.UserBuilder)

Example 28 with Project

use of org.openstack4j.model.identity.v3.Project in project camel by apache.

the class ProjectProducerTest method updateTest.

@Test
public void updateTest() throws Exception {
    final String id = "myID";
    msg.setHeader(OpenstackConstants.OPERATION, OpenstackConstants.UPDATE);
    final String newName = "newName";
    when(testOSproject.getId()).thenReturn(id);
    when(testOSproject.getName()).thenReturn(newName);
    when(testOSproject.getDescription()).thenReturn("desc");
    when(projectService.update(any(Project.class))).thenReturn(testOSproject);
    msg.setBody(testOSproject);
    producer.process(exchange);
    ArgumentCaptor<Project> captor = ArgumentCaptor.forClass(Project.class);
    verify(projectService).update(captor.capture());
    assertEqualsProject(testOSproject, captor.getValue());
    assertNotNull(captor.getValue().getId());
    assertEquals(newName, msg.getBody(Project.class).getName());
}
Also used : Project(org.openstack4j.model.identity.v3.Project) Matchers.anyString(org.mockito.Matchers.anyString) Test(org.junit.Test)

Example 29 with Project

use of org.openstack4j.model.identity.v3.Project in project wildfly-camel by wildfly-extras.

the class OpenstackIntegrationTest method createKeystoneProject.

@Test
public void createKeystoneProject() throws Exception {
    CamelContext camelContext = Mockito.mock(CamelContext.class);
    when(camelContext.getHeadersMapFactory()).thenReturn(new DefaultHeadersMapFactory());
    Message msg = new DefaultMessage(camelContext);
    Exchange exchange = Mockito.mock(Exchange.class);
    when(exchange.getIn()).thenReturn(msg);
    msg.setHeader(OpenstackConstants.OPERATION, OpenstackConstants.CREATE);
    msg.setHeader(OpenstackConstants.NAME, dummyProject.getName());
    msg.setHeader(KeystoneConstants.DESCRIPTION, dummyProject.getDescription());
    msg.setHeader(KeystoneConstants.DOMAIN_ID, dummyProject.getDomainId());
    msg.setHeader(KeystoneConstants.PARENT_ID, dummyProject.getParentId());
    KeystoneEndpoint endpoint = Mockito.mock(KeystoneEndpoint.class);
    Producer producer = new ProjectProducer(endpoint, client);
    producer.process(exchange);
    ArgumentCaptor<Project> captor = ArgumentCaptor.forClass(Project.class);
    verify(projectService).create(captor.capture());
    assertEqualsProject(dummyProject, captor.getValue());
}
Also used : DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) CamelContext(org.apache.camel.CamelContext) DefaultMessage(org.apache.camel.impl.DefaultMessage) Exchange(org.apache.camel.Exchange) Project(org.openstack4j.model.identity.v3.Project) Message(org.apache.camel.Message) DefaultMessage(org.apache.camel.impl.DefaultMessage) VolumeProducer(org.apache.camel.component.openstack.cinder.producer.VolumeProducer) ProjectProducer(org.apache.camel.component.openstack.keystone.producer.ProjectProducer) ContainerProducer(org.apache.camel.component.openstack.swift.producer.ContainerProducer) GlanceProducer(org.apache.camel.component.openstack.glance.GlanceProducer) KeypairProducer(org.apache.camel.component.openstack.nova.producer.KeypairProducer) Producer(org.apache.camel.Producer) NetworkProducer(org.apache.camel.component.openstack.neutron.producer.NetworkProducer) ProjectProducer(org.apache.camel.component.openstack.keystone.producer.ProjectProducer) DefaultHeadersMapFactory(org.apache.camel.impl.DefaultHeadersMapFactory) KeystoneEndpoint(org.apache.camel.component.openstack.keystone.KeystoneEndpoint) Test(org.junit.Test)

Example 30 with Project

use of org.openstack4j.model.identity.v3.Project in project TrakEM2 by trakem2.

the class Compare method compareAllToAll.

/**
 * Gets pipes for all open projects, and generates a matrix of dissimilarities, which gets passed on to the Worker thread and also to a file, if desired.
 *
 * @param to_file Whether to save the results to a file and popup a save dialog for it or not. In any case the results are stored in the worker's load, which you can retrieve like:
 * <pre>
 * Bureaucrat bu = Compare.compareAllToAll(true, null, null);
 * Object result = bu.getWorker().getResult();
 * float[][] scores = (float[][])result[0];
 * ArrayList&lt;Compare.Chain&gt; chains = (ArrayList&lt;Compare.Chain&gt;)result[1];
 * </pre>
 */
public static Bureaucrat compareAllToAll(final boolean to_file, final String regex, final String[] ignore, final Project[] projects, final boolean crop, final boolean from_end, final int max_n_elements, final String outgroup) {
    // gather all open projects
    final Project[] p = null == projects ? Project.getProjects().toArray(new Project[0]) : projects;
    final Worker worker = new Worker("Comparing all to all") {

        @Override
        public void run() {
            startedWorking();
            try {
                final CATAParameters cp = new CATAParameters();
                if (!cp.setup(to_file, regex, false, false)) {
                    finishedWorking();
                    return;
                }
                String filename = null, dir = null;
                if (to_file) {
                    final SaveDialog sd = new SaveDialog("Save matrix", OpenDialog.getDefaultDirectory(), null, ".csv");
                    filename = sd.getFileName();
                    if (null == filename) {
                        finishedWorking();
                        return;
                    }
                    dir = sd.getDirectory().replace('\\', '/');
                    if (!dir.endsWith("/"))
                        dir += "/";
                }
                Object[] ob = gatherChains(p, cp, ignore);
                final ArrayList<Chain> chains = (ArrayList<Chain>) ob[0];
                // to keep track of each project's chains
                final ArrayList[] p_chains = (ArrayList[]) ob[1];
                ob = null;
                if (null == chains) {
                    finishedWorking();
                    return;
                }
                final int n_chains = chains.size();
                // crop chains if desired
                if (crop) {
                    for (final Chain chain : chains) {
                        if (from_end) {
                            final int start = chain.vs.length() - max_n_elements;
                            if (start > 0) {
                                chain.vs = chain.vs.substring(start, chain.vs.length());
                                // BEFORE making it relative
                                chain.vs.resample(cp.delta, cp.with_source);
                            }
                        } else {
                            if (max_n_elements < chain.vs.length()) {
                                chain.vs = chain.vs.substring(0, max_n_elements);
                                // BEFORE making it relative
                                chain.vs.resample(cp.delta, cp.with_source);
                            }
                        }
                    }
                }
                // compare all to all
                final VectorString3D[] vs = new VectorString3D[n_chains];
                for (int i = 0; i < n_chains; i++) vs[i] = chains.get(i).vs;
                final float[][] scores = Compare.scoreAllToAll(vs, cp.distance_type, cp.delta, cp.skip_ends, cp.max_mut, cp.min_chunk, cp.direct, cp.substring_matching, this);
                if (null == scores) {
                    finishedWorking();
                    return;
                }
                // store matrix and chains into the worker
                this.result = new Object[] { scores, chains };
                // write to file
                if (!to_file) {
                    finishedWorking();
                    return;
                }
                final File f = new File(dir + filename);
                // encoding in Latin 1 (for macosx not to mess around
                final OutputStreamWriter dos = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(f)), "8859_1");
                // Normalize matrix to largest value of 1.0
                if (cp.normalize) {
                    float max = 0;
                    for (int i = 0; i < scores.length; i++) {
                        // traverse half matrix ony: it's mirrored
                        for (int j = i; j < scores[0].length; j++) {
                            if (scores[i][j] > max)
                                max = scores[i][j];
                        }
                    }
                    for (int i = 0; i < scores.length; i++) {
                        for (int j = i; j < scores[0].length; j++) {
                            scores[i][j] = scores[j][i] /= max;
                        }
                    }
                }
                // write chain titles, with project prefix
                if (cp.format.equals(cp.formats[0])) {
                    // as csv:
                    try {
                        final StringBuffer[] titles = new StringBuffer[n_chains];
                        int next = 0;
                        for (int i = 0; i < p.length; i++) {
                            final String prefix = Utils.getCharacter(i + 1);
                            // empty upper left corner
                            dos.write("\"\"");
                            for (final Chain chain : (ArrayList<Chain>) p_chains[i]) {
                                dos.write(",");
                                titles[next] = new StringBuffer().append('\"').append(prefix).append(' ').append(chain.getCellTitle()).append('\"');
                                dos.write(titles[next].toString());
                                next++;
                            }
                        }
                        dos.write("\n");
                        for (int i = 0; i < n_chains; i++) {
                            final StringBuffer line = new StringBuffer();
                            line.append(titles[i]);
                            for (int j = 0; j < n_chains; j++) line.append(',').append(scores[i][j]);
                            line.append('\n');
                            dos.write(line.toString());
                        }
                        dos.flush();
                    } catch (final Exception e) {
                        e.printStackTrace();
                    }
                } else if (cp.format.equals(cp.formats[1])) {
                    // as XML:
                    try {
                        final StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>\n<!DOCTYPE ggobidata SYSTEM \"ggobi.dtd\">\n");
                        sb.append("<ggobidata count=\"2\">\n");
                        sb.append("<data name=\"Pipe Chains\">\n");
                        sb.append("<description />\n");
                        // ggobi: what a crappy XML parser it has
                        sb.append("<variables count=\"0\">\n</variables>\n");
                        sb.append("<records count=\"").append(chains.size()).append("\" glyph=\"fr 1\" color=\"3\">\n");
                        int next = 0;
                        for (int i = 0; i < p.length; i++) {
                            final String prefix = Utils.getCharacter(i + 1);
                            final String color = new StringBuffer("color=\"").append(i + 1).append('\"').toString();
                            for (final Chain chain : (ArrayList<Chain>) p_chains[i]) {
                                sb.append("<record id=\"").append(next + 1).append("\" label=\"").append(prefix).append(' ').append(chain.getCellTitle()).append("\" ").append(color).append("></record>\n");
                                next++;
                            }
                        }
                        sb.append("</records>\n</data>\n");
                        sb.append("<data name=\"distances\">\n");
                        sb.append("<description />\n");
                        sb.append("<variables count=\"1\">\n<realvariable name=\"D\" />\n</variables>\n");
                        sb.append("<records count=\"").append(n_chains * (n_chains - 1)).append("\" glyph=\"fr 1\" color=\"0\">\n");
                        for (int i = 0; i < n_chains; i++) {
                            for (int j = 0; j < n_chains; j++) {
                                if (i == j)
                                    continue;
                                sb.append("<record source=\"").append(i + 1).append("\" destination=\"").append(j + 1).append("\">").append(scores[i][j]).append("</record>\n");
                            }
                        }
                        sb.append("</records>\n</data>\n");
                        sb.append("</ggobidata>");
                        dos.write(sb.toString());
                        dos.flush();
                    } catch (final Exception e) {
                        e.printStackTrace();
                    }
                } else if (cp.format.equals(cp.formats[2])) {
                    // as Phylip .dis
                    try {
                        // collect different projects
                        final ArrayList<Project> projects = new ArrayList<Project>();
                        for (final Chain chain : chains) {
                            final Project p = chain.getRoot().getProject();
                            if (!projects.contains(p))
                                projects.add(p);
                        }
                        final HashSet names = new HashSet();
                        final StringBuffer sb = new StringBuffer();
                        sb.append(scores.length).append('\n');
                        dos.write(sb.toString());
                        // unique ids, since phylip cannot handle long names
                        final AtomicInteger ids = new AtomicInteger(0);
                        final File ftags = new File(dir + filename + ".tags");
                        // encoding in Latin 1 (for macosx not to mess around
                        final OutputStreamWriter dostags = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(ftags)), "8859_1");
                        for (int i = 0; i < scores.length; i++) {
                            sb.setLength(0);
                            // String title = chains.get(i).getShortCellTitle().replace(' ', '_').replace('\t', '_').replace('[', '-').replace(']', '-');
                            final int id = ids.incrementAndGet();
                            final String sid = Utils.getCharacter(id);
                            String name = chains.get(i).getShortCellTitle();
                            // If sid.length() > 10 chars, trouble!
                            if (sid.length() > 10) {
                                Utils.log2("Ignoring " + name + " : id longer than 10 chars: " + id);
                                continue;
                            }
                            final int k = 1;
                            // Prepend a project char identifier to the name
                            String project_name = "";
                            if (projects.size() > 1) {
                                project_name = Utils.getCharacter(projects.indexOf(chains.get(i).getRoot().getProject()) + 1).toLowerCase();
                                name = project_name + name;
                            }
                            dostags.write(new StringBuilder().append(sid).append('\t').append(name).append('\n').toString());
                            if (null != outgroup && -1 != name.indexOf(outgroup)) {
                                Utils.logAll("Outgroup 0-based index is " + id + ", with id " + sid + ", with name " + name);
                            }
                            // 
                            final int len = 12;
                            sb.append(sid);
                            // pad with spaces up to len
                            for (int j = len - sid.length(); j > 0; j--) sb.append(' ');
                            int count = 0;
                            for (int j = 0; j < scores[0].length; j++) {
                                sb.append(' ').append(scores[i][j]);
                                count++;
                                if (7 == count && j < scores[0].length - 1) {
                                    sb.append('\n');
                                    count = 0;
                                    while (++count < len) sb.append(' ');
                                    sb.append(' ');
                                    count = 0;
                                }
                            }
                            sb.append('\n');
                            dos.write(sb.toString());
                        }
                        dos.flush();
                        dostags.flush();
                        dostags.close();
                    } catch (final Exception e) {
                        e.printStackTrace();
                    }
                }
                dos.close();
            } catch (final Exception e) {
                e.printStackTrace();
            } finally {
                finishedWorking();
            }
        }
    };
    return Bureaucrat.createAndStart(worker, p);
}
Also used : CATAParameters(ini.trakem2.analysis.Compare.CATAParameters) ArrayList(java.util.ArrayList) Worker(ini.trakem2.utils.Worker) SaveDialog(ij.io.SaveDialog) BufferedOutputStream(java.io.BufferedOutputStream) HashSet(java.util.HashSet) Project(ini.trakem2.Project) VectorString3D(ini.trakem2.vector.VectorString3D) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) FileOutputStream(java.io.FileOutputStream) OutputStreamWriter(java.io.OutputStreamWriter) File(java.io.File)

Aggregations

Project (ini.trakem2.Project)26 ArrayList (java.util.ArrayList)13 Project (org.openstack4j.model.identity.v3.Project)9 File (java.io.File)7 HashMap (java.util.HashMap)7 ImagePlus (ij.ImagePlus)6 Worker (ini.trakem2.utils.Worker)6 Map (java.util.Map)6 LayerSet (ini.trakem2.display.LayerSet)5 ProjectThing (ini.trakem2.tree.ProjectThing)5 HashSet (java.util.HashSet)5 DBObject (ini.trakem2.persistence.DBObject)4 VectorString3D (ini.trakem2.vector.VectorString3D)4 GenericDialog (ij.gui.GenericDialog)3 Patch (ini.trakem2.display.Patch)3 Rectangle (java.awt.Rectangle)3 ImageJ (ij.ImageJ)2 Roi (ij.gui.Roi)2 YesNoCancelDialog (ij.gui.YesNoCancelDialog)2 DirectoryChooser (ij.io.DirectoryChooser)2