Code Monkey home page Code Monkey logo

vmware / vic-ui Goto Github PK

View Code? Open in Web Editor NEW
28.0 30.0 25.0 58.38 MB

vSphere Integrated Containers Plug-In for vSphere Client provides information about your VIC setup and allows you to deploy VCHs directly from the vSphere Client.

License: Other

Batchfile 0.40% Shell 1.11% Java 19.40% CSS 0.13% Python 6.27% JavaScript 0.70% HTML 9.55% TypeScript 38.06% RobotFramework 23.29% Ruby 0.36% Makefile 0.19% Dockerfile 0.01% SCSS 0.54%
vmware vic vmware-products vsphere containers docker virtualization clarity ui

vic-ui's Introduction

vic-ui

Overview

vSphere UI plugin for Integrated Containers on vSphere

Related Documentation

http://vmware.github.io/vic/

https://code.vmware.com/web/sdk/65/web-client

Releases & Major Branches

https://github.com/vmware/vic-ui/releases

Contributing

The vic-ui project team welcomes contributions from the community. If you wish to contribute code and you have not signed our contributor license agreement (CLA), our bot will update the issue when you open a Pull Request. For any questions about the CLA process, please refer to our FAQ. For more detailed information, refer to CONTRIBUTING.md.

License

Refer to LICENSE.txt.

vic-ui's People

Contributors

andrewtchin avatar caglar10ur avatar cgtexmex avatar chengwang86 avatar corrieb avatar cristianfalcone avatar dougm avatar emlin avatar fdawg4l avatar frapposelli avatar hickeng avatar hmahmood avatar jak-atx avatar jakedsouza avatar jooskim avatar jzt avatar lcastellano avatar lmalvins avatar maplain avatar matthewavery avatar mdharamadas1 avatar mdubya66 avatar mhagen-vmware avatar npakrasi avatar rajanashok avatar sgairo avatar stuclem avatar vburenin avatar xuelichao avatar zhoumeina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vic-ui's Issues

UI Integration tests (vch create)

@jak-atx commented on Thu Oct 19 2017

Details:
Follow up to vmware/vic#6453 . When the endpoint is ready we need to finish up the current integration test cases to include the request/response from the API and landing page.

Acceptance Criteria:
Verify that the integration tests for VCH create wizard UI are complete end to end from pulling up the wizard to getting a valid of response from vic-machine-service.

UI integration test job on Jenkins should fail if any test case fails

I recently set up a job on our Jenkins server to run UI integration tests nightly. Since setting up the job, we had two runs each of which clearly had some failed cases. However, the failures were not properly accounted for, as the script ended with 0 return code. This behavior should be corrected.

[Future] Make it easier for users to enter datastore paths

We ask users to provide paths to directories on selected datastores when configuring volume and image stores. We do not validate those paths, and will create them if they do not exist. This makes it easy for users to make mistakes, and hard for them to simply select an existing path.

We should explore providing a tree selector, auto-completing paths as they are entered, or something else.

Get over unsigned SSL certs warning while running integration tests on IE11

Running a VIC UI integration test against IE 11 leads to a page warning about the insecure SSL certificate, leading the rest of the test steps to hang and eventually fail. A brief investigation revealed that there does not seem to be a capability that allows bypassing insecure SSL certificates unlike in Firefox. So the only way to get past this screen is to tell Selenium driver to click on the links in the warning page.

Until the issue is addressed, IE tests would remain disabled on our nightly node.

Fix broken H5C plugin integration tests with Firefox on Windows

A Windows box we set up for integration testing for VIC UI has Selenium Grid 3.5.3 running, which has capabilities for IE 11, Chrome and Firefox. Currently when attempting to run a test on Firefox, the test session would end up logging out immediately after successful login. This is because the Selenium binary version used by the HSUIA project (2.53.0) is trying to call a method that no longer exists on a newer version (3.5.3) used for setting up the node.

Logs

# org.openqa.selenium.UnsupportedCommandException: mouseMoveTo
# Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z'
# System info: host: 'MSEDGEWIN10', ip: '10.25.200.225', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
# Driver info: driver.version: RemoteWebDriver
# Command duration or timeout: 17 milliseconds
# Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58'
# System info: host: '93528c527173', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.49-moby', java.version: '1.7.0_131

In order to fix the issue we have to either upgrade the Selenium binary in the HSUIA project, or use a Selenium Node version 2 with a Firefox capability. Neither of which is an easy solution and requires many trials and errors until we can settle on a solution that works best.

Until the issue is addressed, H5C on Firefox tests would remain disabled on our nightly node.

At the end of the plugin installation, instruct the user to re-start client services

In order for a user to access a newly-installed plugin within the H5 client, they need to start a new session. At the end of the H5 Client plugin installation, we should instruct the user that they will need to log out and log back in to see the plugin. We should provide a clear enough explanation that they understand other users (e.g., their colleagues) would need to do the same before they can access the plugin.

Version information in vic-ui should match that of vic repo

Currently the build number of the vic-ui project is not in sync with that of vic, and as per discussions with Manjunath, there doesn't seem to be a straightforward way to sync versions between the two repositories. As such, there should be a manual mechanism that synchronizes the VIC UI version with the version info found in the output of vic-machine version. Files that need to be updated are as follows:

  1. configs.properties file in vic-service.war of the H5 Client plugin
  2. plugin-package.xml file of the H5 Client plugin
  3. plugin-package.xml file of the Flex Client plugin
  4. plugin-manifest file

VCH log endpoint returns results in plain string

After finally making the VCH Create wizard and VCH log work with vic-machine-service I realized the VCH creation log returned by the /container/target/${VC_HOSTNAME_OR_IP}/vch/${VCH_VM_MOID}/log is not in JSON format but plain string, which breaks the VCH log view component.

[Future] Provide a way for the user to view a VCH's settings (inspect)

Currently, there is no easy way for a user to view a VCH's settings after it has been created. We should allow them to view the properties of existing VCHs. This view should reflect the current state of the VCH, not necessarily the values supplied at the time the VCH was created.

This could be a [much smaller] stepping stone to providing reconfiguration functionality.

VCH Delete [UI]

Details:
Collection of issues that pertain to being able to Delete and existing VCH from the vSphere H5C client UI.

Improved VIC appliance lookup service by UI

User Statement:
As the user of the vic-machine-service I want to ensure efficient lookup of VIC appliance VMs on which the service runs.

Details:
In an effort to find an alternative to the CustomFieldValue approach we are using currently, we have been researching different, but efficient ways to look up VIC appliances. After some researches, we seem to have come to a workable solution that would permanently replace the existing approach.

The idea is to use vim.ExtensionManager.QueryManagedBy() which returns an array list of ManagedObjectReferences that are managed by the Extension of the provided extensionKey, in this case "com.vmware.vic". We feed the list into the vim.PropertyCollector.RetrievePropertiesEx() call to get the fields we want for consumption by UI.

For this approach, we need to set the VIC appliance VM configuration's managedBy field to a reference to the H5 Client plugin Extension that was registered with the vCenter Server. The ManagedByInfo object (ref) needs to have two fields set to correctly point to the H5 Client plugin extension - extensionKey and type, which match the key and type properties in the Extension object, respectively.

Before we set the type field, we should create and add an ExtManagedEntityInfo object to the ExtensionManager object's managedEntityInfo field (ref), which basically is a way for us to define custom-typed objects. Only the type field is mandatory and the value of it needs to be unique such as VicApplianceVM. This field will be referenced by the Extension's type field as shown below:

Extension
managedEntityInfo: [ ExtManagedEntityInfo{type: string - uniqueIdentifierForVicAppliance}, ... ]
type: String - should match managedEntityInfo.type

Next, in order to actually associate the VIC appliance VM with the H5 Client plugin Extension, the VM needs to be reconfigured such that VirtualMachineConfigInfo object's managedBy field points to the H5 Client plugin Extension:

ManagedByInfo
managedBy: ManagedByInfo{extensionKey: string - plugin extension key, type: string - value set in the managedEntityInfo field above}

Versioning
Now, as far as the versioning is concerned, we would like to ensure that each VIC appliance VM has the major, minor, patch and build number information available for consumption by UI so that we can later implement proper sorting/filtering mechanisms as necessary. An investigation into this led us to look into the VirtualMachine object's config.product field which is of type VAppProductInfo (ref). Currently the version field does show major, minor and patch info but not build number.

Caveats
There is a chicken-and-egg problem where when a VIC appliance VM is deployed with the aforementioned configs to be set, there is a good chance that the VIC UI plugin is not installed especially when this is a fresh installation. @jzt is currently looking into this issue.

Further work
This idea could be extended to improve looking up all VCHs and Container VMs in the vSphere inventory as well as to support a custom icon. This could be considered post 1.3 work.

Add signpost text explaining the implications of the base image size

The text below the input warning the user that the value cannot be changed is helpful. Adding signpost text to explain the purpose of the value may further assist users.

Again, explaining this in terms familiar to a VI Admin may be valuable.

Additionally, it may be helpful to clarify that the setting is the base container VM image size.

User group detection is no longer available on vSphere Client 6.5u1

VIC version:
Any recent build that has the VCH Creation Wizard

Steps to reproduce:

  1. Deploy the latest VIC OVA from GCP against vSphere 6.5u1
  2. Finish installing the VIC appliance
  3. Download the VIC engine tar ball file and install the UI plugin
  4. Log out and into vSphere Client and open "vSphere Integrated Containers"
  5. Open the "Virtual Container Hosts" tab

Actual behavior:
Angular app is broken; the data grid loading indefinitely and the New Virtual Container Host button does not show up

Expected behavior:
It should show the list of VCHs as well as the Clarity button to open the VCH Creation Wizard

Additional details as necessary:
It turns out that there were some changes made to the response to
the WEB_PLATFORM.getUserSession() call in the H5 Client between 6.5 and 6.5u1. The Virtual Container Hosts Angular component has been using the response's groups property, which is an array of groups in string format that the current session user belongs to, to determine whether this user is a vSphere admin or not. Starting from 6.5u1, however, the property is gone, and this breaks the application. I have not yet found a solid workaround to this issue and it needs to be solved as soon as possible.

Logs:
image
image

VIC test kickoff script needs to be updated

Test kickoff script used to run under the vic repo, and there was a logic that enforces that the script always be called under the root folder of the repo. Since VIC UI has branched off the main repo with a new name, this needs to be addressed, otherwise the test always fails to start. See the following log for details:

==============================================================================
Kickoff-Tests :: vSphere Integrated Containers UI Integration Tests Runner
==============================================================================
Launch Installer Tests                                                | FAIL |
Test execution stopped due to a fatal error.
------------------------------------------------------------------------------
Kickoff-Tests :: vSphere Integrated Containers UI Integration Test... | FAIL |
Suite setup failed:
Test script should be run from vic/

Also suite teardown failed:
Variable '${LATEST_VIC_ENGINE_TARBALL}' not found.

1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================

Re-organize the networking tab

Public/Bridge/Management/Client networks and proxy settings are for the Endpoint VM (i.e., the VCH itself), but the Container Networks are for the Container VMs. However, the container network settings are placed between the other two, making it unclear which settings are used by each entity.

Additionally, things with the same label might not actually be the same; "Static" for a network on the VCH is for the (single) address to assign to the Endpoint VM, but "Static" for a Container Network is actually an IP range that the VCH will assign to the Container VMs it creates.

Match the compute configuration, where there are sub-sections for container settings and endpoint settings.

plugin-manifest might be incorrectly set

The correct format of the plugin-manifest file should be as follows:

key_flex="com.vmware.vic.ui"
name="vSphere Integrated Containers"
version="1.2.0.14548"
summary="Flex Client Plugin for vSphere Integrated Containers Engine"
company="VMware"
key_h5c="com.vmware.vic"

However, I started to notice in recent nightly failures that the key_h5c key was being omitted, causing the installer, uninstaller and upgrader scripts to fail.

Implement OVA lookup from the Java service

@jak-atx commented on Thu Oct 19 2017

Details:
We need to implement the findings from this issue vmware/vic#6551 regarding the H5C VCH wizard being able find the correct IP of vic-machine-service.

Acceptance Criteria:
Demonstrate ability to deploy OVA with vic-machine-service and have the H5C vch wizard be able to find the correct API endpoint and get a successful response.


@andrewtchin commented on Tue Oct 24 2017

need to find an API that can view a VM's tags https://github.com/vmware/vic-product/blob/master/installer/tagvm/tagvm.go
alternatively, find some other way the appliance can identify itself that is visible to the H5C


@jooskim commented on Wed Nov 01 2017

After a discussion with @andrewtchin, it seems that we can use the value property as another way of tagging of VIC OVA appliance. This functionality is tracked in vmware/vic-product#1018, and once available, I could modify the vic-service Java project to discover VIC OVA VM based on that information, and expose the IP address of it through a REST endpoint so the Angular app can consume it.

Provide explanatory/introductory text on plugin summary tab

On the summary page, first page of the wizard, or wherever the "?" button links (see #62), it may be helpful to provide some basic information and terminology: what is a VCH? what is a container VM? how does all of this relate to docker + containers?

[Future] Help users avoid misconfiguring their bridge network

There are a variety of common mistakes users can make when configuring their bridge network. We should help users avoid these.

We may be able to validate that the selected bridge network is a VXLAN or has a VLAN ID configured.

We may be able to validate a bridge network used by one VCH is not selected for use, in any role, by any other VCH.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.